diff options
Diffstat (limited to 'libguile/vm-engine.h')
-rw-r--r-- | libguile/vm-engine.h | 41 |
1 files changed, 1 insertions, 40 deletions
diff --git a/libguile/vm-engine.h b/libguile/vm-engine.h index 3c1bbf681..d69328944 100644 --- a/libguile/vm-engine.h +++ b/libguile/vm-engine.h @@ -107,7 +107,6 @@ ip = vp->ip; \ sp = vp->sp; \ fp = vp->fp; \ - stack_base = fp ? SCM_FRAME_UPPER_ADDRESS (fp) - 1 : vp->stack_base; \ } #define SYNC_REGISTER() \ @@ -256,7 +255,7 @@ goto vm_error_stack_overflow #define CHECK_UNDERFLOW() \ - if (sp < stack_base) \ + if (sp < SCM_FRAME_UPPER_ADDRESS (fp)) \ goto vm_error_stack_underflow; #define PUSH(x) do { sp++; CHECK_OVERFLOW (); *sp = x; } while (0) @@ -336,7 +335,6 @@ do { \ #define FETCH() (*ip++) #define FETCH_LENGTH(len) do { len=*ip++; len<<=8; len+=*ip++; len<<=8; len+=*ip++; } while (0) -#define FETCH_WIDTH(width) do { width=*ip++; } while (0) #undef CLOCK #if VM_USE_CLOCK @@ -361,46 +359,9 @@ do { \ } -/* - * Stack frame - */ - -#define INIT_ARGS() \ -{ \ - if (SCM_UNLIKELY (bp->nrest)) \ - { \ - int n = nargs - (bp->nargs - 1); \ - if (n < 0) \ - goto vm_error_wrong_num_args; \ - /* NB, can cause GC while setting up the \ - stack frame */ \ - POP_LIST (n); \ - } \ - else \ - { \ - if (SCM_UNLIKELY (nargs != bp->nargs)) \ - goto vm_error_wrong_num_args; \ - } \ -} - /* See frames.h for the layout of stack frames */ /* When this is called, bp points to the new program data, and the arguments are already on the stack */ -#define INIT_FRAME() \ -{ \ - int i; \ - \ - /* New registers */ \ - sp += bp->nlocs; \ - CHECK_OVERFLOW (); \ - stack_base = sp; \ - ip = bp->base; \ - \ - /* Init local variables */ \ - for (i=bp->nlocs; i;) \ - sp[-(--i)] = SCM_UNDEFINED; \ -} - #define DROP_FRAME() \ { \ sp -= 3; \ |