mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2025-12-23 17:40:11 +01:00
if we hit RET w/ empty call stack, halt
This commit is contained in:
parent
6b30f3888e
commit
f92083c338
1 changed files with 7 additions and 7 deletions
|
|
@ -2082,6 +2082,13 @@ exec_instruction(
|
|||
if (mach->ExecMask == 0x0) {
|
||||
/* really return now (otherwise, keep executing */
|
||||
|
||||
if (mach->CallStackTop == 0) {
|
||||
/* returning from main() */
|
||||
*pc = -1;
|
||||
return;
|
||||
}
|
||||
*pc = mach->CallStack[--mach->CallStackTop];
|
||||
|
||||
/* pop the Cond, Loop, Cont stacks */
|
||||
assert(mach->CondStackTop > 0);
|
||||
mach->CondMask = mach->CondStack[--mach->CondStackTop];
|
||||
|
|
@ -2089,16 +2096,9 @@ exec_instruction(
|
|||
mach->LoopMask = mach->LoopStack[--mach->LoopStackTop];
|
||||
assert(mach->ContStackTop > 0);
|
||||
mach->ContMask = mach->ContStack[--mach->ContStackTop];
|
||||
|
||||
assert(mach->FuncStackTop > 0);
|
||||
mach->FuncMask = mach->FuncStack[--mach->FuncStackTop];
|
||||
|
||||
assert(mach->CallStackTop >= 0);
|
||||
if (mach->CallStackTop == 0) {
|
||||
/* XXX error? */
|
||||
return;
|
||||
}
|
||||
*pc = mach->CallStack[--mach->CallStackTop];
|
||||
UPDATE_EXEC_MASK(mach);
|
||||
}
|
||||
break;
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue