bootstrap.assembler.*: convert the other assembly files to the new
jit-define systemdb4
parent
9cf36e3dc2
commit
2b3989f3c9
|
@ -118,7 +118,7 @@ IN: bootstrap.ppc
|
|||
0 1 lr-save jit-load-cell ! Fetch return address
|
||||
0 MTLR ! Set up return
|
||||
BLR ! Branch back
|
||||
] callback-stub jit-define
|
||||
] CALLBACK-STUB jit-define
|
||||
|
||||
: jit-conditional* ( test-quot false-quot -- )
|
||||
[ '[ 4 + @ ] ] dip jit-conditional ; inline
|
||||
|
@ -147,7 +147,7 @@ IN: bootstrap.ppc
|
|||
11 11 compiled-header-size ADDI
|
||||
11 MTCTR
|
||||
BCTR
|
||||
] jit-profiling jit-define
|
||||
] JIT-PROFILING jit-define
|
||||
|
||||
[
|
||||
0 MFLR
|
||||
|
@ -157,12 +157,12 @@ IN: bootstrap.ppc
|
|||
0 stack-frame LI
|
||||
0 1 cell-size 1 * neg jit-save-cell
|
||||
1 1 stack-frame neg jit-save-cell-update
|
||||
] jit-prolog jit-define
|
||||
] JIT-PROLOG jit-define
|
||||
|
||||
[
|
||||
3 jit-load-literal-arg
|
||||
3 ds-reg cell-size jit-save-cell-update
|
||||
] jit-push jit-define
|
||||
] JIT-PUSH-IMMEDIATE jit-define
|
||||
|
||||
[
|
||||
jit-save-context
|
||||
|
@ -172,14 +172,16 @@ IN: bootstrap.ppc
|
|||
jit-load-dlsym-toc-arg ! Restore the TOC/GOT
|
||||
BLRL
|
||||
jit-restore-context
|
||||
] jit-primitive jit-define
|
||||
] JIT-PRIMITIVE jit-define
|
||||
|
||||
[ 0 BL rc-relative-ppc-3-pc rt-entry-point-pic jit-rel ] jit-word-call jit-define
|
||||
[
|
||||
0 BL rc-relative-ppc-3-pc rt-entry-point-pic jit-rel
|
||||
] JIT-WORD-CALL jit-define
|
||||
|
||||
[
|
||||
6 jit-load-here-arg
|
||||
0 B rc-relative-ppc-3-pc rt-entry-point-pic-tail jit-rel
|
||||
] jit-word-jump jit-define
|
||||
] JIT-WORD-JUMP jit-define
|
||||
|
||||
[
|
||||
3 ds-reg 0 jit-load-cell
|
||||
|
@ -187,7 +189,7 @@ IN: bootstrap.ppc
|
|||
0 3 \ f type-number jit-compare-cell-imm
|
||||
[ 0 swap BEQ ] [ 0 B rc-relative-ppc-3-pc rt-entry-point jit-rel ] jit-conditional*
|
||||
0 B rc-relative-ppc-3-pc rt-entry-point jit-rel
|
||||
] jit-if jit-define
|
||||
] JIT-IF jit-define
|
||||
|
||||
: jit->r ( -- )
|
||||
4 ds-reg 0 jit-load-cell
|
||||
|
@ -239,27 +241,27 @@ IN: bootstrap.ppc
|
|||
jit->r
|
||||
0 BL rc-relative-ppc-3-pc rt-entry-point jit-rel
|
||||
jit-r>
|
||||
] jit-dip jit-define
|
||||
] JIT-DIP jit-define
|
||||
|
||||
[
|
||||
jit-2>r
|
||||
0 BL rc-relative-ppc-3-pc rt-entry-point jit-rel
|
||||
jit-2r>
|
||||
] jit-2dip jit-define
|
||||
] JIT-2DIP jit-define
|
||||
|
||||
[
|
||||
jit-3>r
|
||||
0 BL rc-relative-ppc-3-pc rt-entry-point jit-rel
|
||||
jit-3r>
|
||||
] jit-3dip jit-define
|
||||
] JIT-3DIP jit-define
|
||||
|
||||
[
|
||||
1 1 stack-frame ADDI
|
||||
0 1 lr-save jit-load-cell
|
||||
0 MTLR
|
||||
] jit-epilog jit-define
|
||||
] JIT-EPILOG jit-define
|
||||
|
||||
[ BLR ] jit-return jit-define
|
||||
[ BLR ] JIT-RETURN jit-define
|
||||
|
||||
! ! ! Polymorphic inline caches
|
||||
|
||||
|
@ -269,9 +271,9 @@ IN: bootstrap.ppc
|
|||
! Load a value from a stack position
|
||||
[
|
||||
4 ds-reg 0 jit-load-cell rc-absolute-ppc-2 rt-untagged jit-rel
|
||||
] pic-load jit-define
|
||||
] PIC-LOAD jit-define
|
||||
|
||||
[ 4 4 tag-mask get ANDI. ] pic-tag jit-define
|
||||
[ 4 4 tag-mask get ANDI. ] PIC-TAG jit-define
|
||||
|
||||
[
|
||||
3 4 MR
|
||||
|
@ -280,20 +282,20 @@ IN: bootstrap.ppc
|
|||
[ 0 swap BNE ]
|
||||
[ 4 tuple-class-offset LI 4 3 4 jit-load-cell-x ]
|
||||
jit-conditional*
|
||||
] pic-tuple jit-define
|
||||
] PIC-TUPLE jit-define
|
||||
|
||||
[
|
||||
0 4 0 jit-compare-cell-imm rc-absolute-ppc-2 rt-untagged jit-rel
|
||||
] pic-check-tag jit-define
|
||||
] PIC-CHECK-TAG jit-define
|
||||
|
||||
[
|
||||
5 jit-load-literal-arg
|
||||
0 4 5 jit-compare-cell
|
||||
] pic-check-tuple jit-define
|
||||
] PIC-CHECK-TUPLE jit-define
|
||||
|
||||
[
|
||||
[ 0 swap BNE ] [ 0 B rc-relative-ppc-3-pc rt-entry-point jit-rel ] jit-conditional*
|
||||
] pic-hit jit-define
|
||||
] PIC-HIT jit-define
|
||||
|
||||
! Inline cache miss entry points
|
||||
: jit-load-return-address ( -- ) 6 MFLR ;
|
||||
|
@ -360,7 +362,7 @@ IN: bootstrap.ppc
|
|||
]
|
||||
jit-conditional*
|
||||
! fall-through on miss
|
||||
] mega-lookup jit-define
|
||||
] MEGA-LOOKUP jit-define
|
||||
|
||||
! ! ! Sub-primitives
|
||||
|
||||
|
@ -387,7 +389,7 @@ IN: bootstrap.ppc
|
|||
4 word-entry-point-offset LI
|
||||
4 3 4 jit-load-cell-x
|
||||
4 MTCTR BCTR
|
||||
] jit-execute jit-define
|
||||
] JIT-EXECUTE jit-define
|
||||
|
||||
! Special primitives
|
||||
[
|
||||
|
|
|
@ -54,7 +54,7 @@ IN: bootstrap.x86
|
|||
[
|
||||
pic-tail-reg 0 MOV 0 rc-absolute-cell rel-here
|
||||
0 JMP f rc-relative rel-word-pic-tail
|
||||
] jit-word-jump jit-define
|
||||
] JIT-WORD-JUMP jit-define
|
||||
|
||||
: jit-load-vm ( -- )
|
||||
vm-reg 0 MOV 0 rc-absolute-cell rel-vm ;
|
||||
|
@ -83,7 +83,7 @@ IN: bootstrap.x86
|
|||
ESP [] vm-reg MOV
|
||||
0 CALL f f rc-relative rel-dlsym
|
||||
jit-restore-context
|
||||
] jit-primitive jit-define
|
||||
] JIT-PRIMITIVE jit-define
|
||||
|
||||
: jit-jump-quot ( -- )
|
||||
EAX quot-entry-point-offset [+] JMP ;
|
||||
|
@ -189,7 +189,7 @@ IN: bootstrap.x86
|
|||
|
||||
[
|
||||
temp1 0xffffffff CMP f rc-absolute-cell rel-literal
|
||||
] pic-check-tuple jit-define
|
||||
] PIC-CHECK-TUPLE jit-define
|
||||
|
||||
! Inline cache miss entry points
|
||||
: jit-load-return-address ( -- )
|
||||
|
@ -371,7 +371,7 @@ IN: bootstrap.x86
|
|||
|
||||
[
|
||||
0 EAX MOVABS rc-absolute rel-safepoint
|
||||
] \ jit-safepoint jit-define
|
||||
] JIT-SAFEPOINT jit-define
|
||||
|
||||
[
|
||||
jit-start-context-and-delete
|
||||
|
|
Loading…
Reference in New Issue