bootstrap.assembler.*: convert the other assembly files to the new

jit-define system
db4
Björn Lindqvist 2015-08-11 20:19:59 +02:00 committed by John Benediktsson
parent 9cf36e3dc2
commit 2b3989f3c9
2 changed files with 27 additions and 25 deletions

View File

@ -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
[ [

View File

@ -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