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