4 \ cell set
-: leaf-stack-frame-size ( -- n ) 4 bootstrap-cells ;
: signal-handler-stack-frame-size ( -- n ) 12 bootstrap-cells ;
: stack-frame-size ( -- n ) 8 bootstrap-cells ;
: shift-arg ( -- reg ) ECX ;
sequences ;
IN: bootstrap.x86
-: leaf-stack-frame-size ( -- n ) 2 bootstrap-cells ;
: signal-handler-stack-frame-size ( -- n ) 20 bootstrap-cells ;
: stack-frame-size ( -- n ) 4 bootstrap-cells ;
: nv-regs ( -- seq ) { RBX R12 R13 R14 R15 } ;
DEFER: stack-reg
-: leaf-stack-frame-size ( -- n ) 2 bootstrap-cells ;
: signal-handler-stack-frame-size ( -- n ) 24 bootstrap-cells ;
: stack-frame-size ( -- n ) 8 bootstrap-cells ;
: nv-regs ( -- seq ) { RBX RSI RDI R12 R13 R14 R15 } ;
: hashcode-shift ( -- n )
tag-bits get header-bits get + ;
+: leaf-stack-frame-size ( -- n ) 16 ;
+
! We do this in its own compilation unit so that they can be
! folded below
<<
#define FACTOR_CPU_STRING "x86.32"
-/* Must match the leaf-stack-frame-size, signal-handler-stack-frame-size,
-and stack-frame-size constants in bootstrap/assembler/x86.32.factor */
-static const unsigned LEAF_FRAME_SIZE = 16;
+/* Must match the signal-handler-stack-frame-size and stack-frame-size
+ constants in bootstrap/assembler/x86.32.factor */
static const unsigned SIGNAL_HANDLER_STACK_FRAME_SIZE = 48;
static const unsigned JIT_FRAME_SIZE = 32;
static const cell data_alignment = 16;
+/* Must match leaf-stack-frame-size in core/layouts/layouts.factor */
+#define LEAF_FRAME_SIZE 16
+
#define WORD_SIZE (signed)(sizeof(cell) * 8)
#define TAG_MASK 15
#define FUNCTION_CODE_POINTER(ptr) ptr
#define FUNCTION_TOC_POINTER(ptr) ptr
-/* Must match the leaf-stack-frame-size, signal-handler-stack-frame-size,
-and stack-frame-size constants in bootstrap/assembler/x86.64.unix.factor */
-static const unsigned LEAF_FRAME_SIZE = 16;
+/* Must match the signal-handler-stack-frame-size and stack-frame-size
+ constants in bootstrap/assembler/x86.64.unix.factor */
static const unsigned SIGNAL_HANDLER_STACK_FRAME_SIZE = 160;
static const unsigned JIT_FRAME_SIZE = 32;
mach_clear_fpu_status(UAP_FS(uap));
}
-/* Must match the leaf-stack-frame-size, signal-handler-stack-frame-size,
-and stack-frame-size constants in basis/bootstrap/assembler/x86.64.unix.factor */
-static const unsigned LEAF_FRAME_SIZE = 16;
+/* Must match the signal-handler-stack-frame-size and stack-frame-size
+ constants in basis/bootstrap/assembler/x86.64.unix.factor */
static const unsigned SIGNAL_HANDLER_STACK_FRAME_SIZE = 160;
static const unsigned JIT_FRAME_SIZE = 32;
#define MXCSR(ctx) (ctx)->MxCsr
-/* Must match the leaf-stack-frame-size, signal-handler-stack-frame-size,
-and stack-frame-size constants in basis/bootstap/assembler/x86.64.windows.factor */
-static const unsigned LEAF_FRAME_SIZE = 16;
+/* Must match the signal-handler-stack-frame-size and stack-frame-size
+ constants in basis/bootstap/assembler/x86.64.windows.factor */
static const unsigned SIGNAL_HANDLER_STACK_FRAME_SIZE = 192;
static const unsigned JIT_FRAME_SIZE = 64;
}