diff --git a/core/cpu/ppc/bootstrap.factor b/core/cpu/ppc/bootstrap.factor index c57a97aed5..d8644e24a6 100644 --- a/core/cpu/ppc/bootstrap.factor +++ b/core/cpu/ppc/bootstrap.factor @@ -24,8 +24,8 @@ big-endian on : next-save stack-frame bootstrap-cell - ; : xt-save stack-frame 2 bootstrap-cells - ; -: scan-save stack-frame 3 bootstrap-cells - ; -: array-save stack-frame 4 bootstrap-cells - ; +: array-save stack-frame 3 bootstrap-cells - ; +: scan-save stack-frame 4 bootstrap-cells - ; [ temp-reg quot-reg quot-array@ LWZ ! load array diff --git a/vm/callstack.c b/vm/callstack.c index 4ac2457dea..62ea3f9040 100644 --- a/vm/callstack.c +++ b/vm/callstack.c @@ -65,7 +65,6 @@ DEFINE_PRIMITIVE(callstack) size = 0; F_CALLSTACK *callstack = allot_callstack(size); - callstack->bottom = (CELL)bottom; memcpy(FIRST_STACK_FRAME(callstack),top,size); dpush(tag_object(callstack)); } diff --git a/vm/callstack.h b/vm/callstack.h index 6bbebfcd34..4d1dac9ffd 100644 --- a/vm/callstack.h +++ b/vm/callstack.h @@ -1,21 +1,3 @@ -typedef struct _F_STACK_FRAME -{ - /* In compiled quotation frames, position within the array. - In compiled word frames, unused. */ - CELL scan; - - /* In compiled quotation frames, the quot->array slot. - In compiled word frames, unused. */ - CELL array; - - /* In all compiled frames, the XT on entry. */ - XT xt; - - /* Pointer to the next stack frame; frames are chained from - the bottom on up */ - struct _F_STACK_FRAME *next; -} F_STACK_FRAME; - F_FASTCALL void save_callstack_bottom(F_STACK_FRAME *callstack_bottom); #define FIRST_STACK_FRAME(stack) (F_STACK_FRAME *)((stack) + 1) diff --git a/vm/layouts.h b/vm/layouts.h index fc59802f36..cd1c242303 100644 --- a/vm/layouts.h +++ b/vm/layouts.h @@ -238,6 +238,21 @@ typedef struct { CELL header; /* tagged */ CELL length; - /* untagged */ - CELL bottom; } F_CALLSTACK; + +typedef struct +{ + /* In compiled quotation frames, position within the array. + In compiled word frames, unused. */ + CELL scan; + + /* In compiled quotation frames, the quot->array slot. + In compiled word frames, unused. */ + CELL array; + + /* In all compiled frames, the XT on entry. */ + XT xt; + + /* Frame size in bytes */ + CELL size; +} F_STACK_FRAME;