39 lines
942 B
ArmAsm
Executable File
39 lines
942 B
ArmAsm
Executable File
DEF(F_FASTCALL void,c_to_factor,(CELL quot)):
|
|
PUSH_NONVOLATILE
|
|
mov ARG0,NV_TEMP_REG
|
|
|
|
/* Create register shadow area for Win64 */
|
|
sub $32,STACK_REG
|
|
|
|
/* Save stack pointer */
|
|
lea -CELL_SIZE(STACK_REG),ARG0
|
|
call MANGLE(save_callstack_bottom)
|
|
|
|
/* Call quot-xt */
|
|
mov NV_TEMP_REG,ARG0
|
|
call *QUOT_XT_OFFSET(ARG0)
|
|
|
|
/* Tear down register shadow area */
|
|
add $32,STACK_REG
|
|
|
|
POP_NONVOLATILE
|
|
ret
|
|
|
|
DEF(F_FASTCALL void,throw_impl,(CELL quot, F_STACK_FRAME *rewind_to)):
|
|
/* rewind_to */
|
|
mov ARG1,STACK_REG
|
|
jmp *QUOT_XT_OFFSET(ARG0)
|
|
|
|
DEF(FASTCALL void,lazy_jit_compile,(CELL quot)):
|
|
mov STACK_REG,ARG1 /* Save stack pointer */
|
|
sub $STACK_PADDING,STACK_REG
|
|
call MANGLE(primitive_jit_compile)
|
|
mov RETURN_REG,ARG0 /* No-op on 32-bit */
|
|
add $STACK_PADDING,STACK_REG
|
|
jmp *QUOT_XT_OFFSET(ARG0) /* Call the quotation */
|
|
|
|
#ifdef WINDOWS
|
|
.section .drectve
|
|
.ascii " -export:c_to_factor"
|
|
#endif
|