fix lazy_jit_compile to not abuse stack on x86.32
parent
bbbb207dab
commit
6bb647d308
|
@ -94,12 +94,10 @@ DEF(F_FASTCALL void,throw_impl,(CELL quot, F_STACK_FRAME *rewind_to, void *vm)):
|
||||||
jmp *QUOT_XT_OFFSET(ARG0)
|
jmp *QUOT_XT_OFFSET(ARG0)
|
||||||
|
|
||||||
DEF(F_FASTCALL void,lazy_jit_compile,(CELL quot, void *vm)):
|
DEF(F_FASTCALL void,lazy_jit_compile,(CELL quot, void *vm)):
|
||||||
mov ARG1,NV_TEMP_REG /* stash vm ptr */
|
mov ARG1,ARG2
|
||||||
mov STACK_REG,ARG1 /* Save stack pointer */
|
mov STACK_REG,ARG1 /* Save stack pointer */
|
||||||
sub $STACK_PADDING,STACK_REG
|
sub $STACK_PADDING,STACK_REG
|
||||||
push NV_TEMP_REG /* push vm ptr as arg3 */
|
|
||||||
call MANGLE(lazy_jit_compile_impl)
|
call MANGLE(lazy_jit_compile_impl)
|
||||||
pop NV_TEMP_REG
|
|
||||||
mov RETURN_REG,ARG0 /* No-op on 32-bit */
|
mov RETURN_REG,ARG0 /* No-op on 32-bit */
|
||||||
add $STACK_PADDING,STACK_REG
|
add $STACK_PADDING,STACK_REG
|
||||||
jmp *QUOT_XT_OFFSET(ARG0) /* Call the quotation */
|
jmp *QUOT_XT_OFFSET(ARG0) /* Call the quotation */
|
||||||
|
|
|
@ -368,7 +368,7 @@ cell factor_vm::lazy_jit_compile_impl(cell quot_, stack_frame *stack)
|
||||||
return quot.value();
|
return quot.value();
|
||||||
}
|
}
|
||||||
|
|
||||||
VM_ASM_API cell lazy_jit_compile_impl(cell quot_, stack_frame *stack, factor_vm *myvm)
|
VM_ASM_API_OVERFLOW cell lazy_jit_compile_impl(cell quot_, stack_frame *stack, factor_vm *myvm)
|
||||||
{
|
{
|
||||||
ASSERTVM();
|
ASSERTVM();
|
||||||
return VM_PTR->lazy_jit_compile_impl(quot_,stack);
|
return VM_PTR->lazy_jit_compile_impl(quot_,stack);
|
||||||
|
|
|
@ -27,7 +27,7 @@ PRIMITIVE(jit_compile);
|
||||||
PRIMITIVE(array_to_quotation);
|
PRIMITIVE(array_to_quotation);
|
||||||
PRIMITIVE(quotation_xt);
|
PRIMITIVE(quotation_xt);
|
||||||
|
|
||||||
VM_ASM_API cell lazy_jit_compile_impl(cell quot, stack_frame *stack, factor_vm *myvm);
|
VM_ASM_API_OVERFLOW cell lazy_jit_compile_impl(cell quot, stack_frame *stack, factor_vm *myvm);
|
||||||
|
|
||||||
PRIMITIVE(quot_compiled_p);
|
PRIMITIVE(quot_compiled_p);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue