ppc asm to pass vm pointer: initial bootstrap
parent
3a88d8c49e
commit
6fa0a93498
|
@ -51,8 +51,9 @@ CONSTANT: rs-reg 14
|
|||
0 3 LOAD32 rc-absolute-ppc-2/2 rt-stack-chain jit-rel
|
||||
4 3 0 LWZ
|
||||
1 4 0 STW
|
||||
0 3 LOAD32 rc-absolute-ppc-2/2 rt-primitive jit-rel
|
||||
3 MTCTR
|
||||
4 0 swap LOAD32 rc-absolute-ppc-2/2 rt-vm jit-rel
|
||||
0 5 LOAD32 rc-absolute-ppc-2/2 rt-primitive jit-rel
|
||||
5 MTCTR
|
||||
BCTR
|
||||
] jit-primitive jit-define
|
||||
|
||||
|
@ -254,8 +255,9 @@ CONSTANT: rs-reg 14
|
|||
[
|
||||
3 ds-reg 0 LWZ
|
||||
ds-reg dup 4 SUBI
|
||||
4 3 quot-xt-offset LWZ
|
||||
4 MTCTR
|
||||
4 0 swap LOAD32 rc-absolute-ppc-2/2 rt-vm jit-rel
|
||||
5 3 quot-xt-offset LWZ
|
||||
5 MTCTR
|
||||
BCTR
|
||||
] \ (call) define-sub-primitive
|
||||
|
||||
|
|
|
@ -250,13 +250,15 @@ DEF(void,set_callstack,(F_STACK_FRAME *to, F_STACK_FRAME *from, CELL length, voi
|
|||
mtlr r0 /* prepare to return to restored callstack */
|
||||
blr /* go */
|
||||
|
||||
DEF(void,throw_impl,(CELL quot, F_STACK_FRAME *rewind_to)):
|
||||
DEF(void,throw_impl,(CELL quot, F_STACK_FRAME *rewind_to, void *vm)):
|
||||
mr r1,r4 /* compute new stack pointer */
|
||||
mr r4,r5 /* make vm ptr 2nd arg in case quot_xt = lazy_jit_compile */
|
||||
lwz r0,LR_SAVE(r1) /* we have rewound the stack; load return address */
|
||||
mtlr r0
|
||||
JUMP_QUOT /* call the quotation */
|
||||
|
||||
DEF(void,lazy_jit_compile,(CELL quot)):
|
||||
DEF(void,lazy_jit_compile,(CELL quot, void *vm)):
|
||||
mr r5,r4 /* vm ptr is 3rd arg */
|
||||
mr r4,r1 /* save stack pointer */
|
||||
PROLOGUE
|
||||
bl MANGLE(lazy_jit_compile_impl)
|
||||
|
|
Loading…
Reference in New Issue