compiler: emit safepoints in optimized prologs
parent
44b608bb22
commit
6498bc65ce
|
@ -57,6 +57,7 @@ GENERIC: emit-node ( node -- )
|
||||||
|
|
||||||
: begin-word ( -- )
|
: begin-word ( -- )
|
||||||
make-kill-block
|
make-kill-block
|
||||||
|
##safepoint,
|
||||||
##prologue,
|
##prologue,
|
||||||
##branch,
|
##branch,
|
||||||
begin-basic-block ;
|
begin-basic-block ;
|
||||||
|
|
|
@ -9,7 +9,7 @@ IN: compiler.cfg.finalization
|
||||||
|
|
||||||
: finalize-cfg ( cfg -- cfg' )
|
: finalize-cfg ( cfg -- cfg' )
|
||||||
select-representations
|
select-representations
|
||||||
schedule-instructions
|
! schedule-instructions
|
||||||
insert-gc-checks
|
insert-gc-checks
|
||||||
eliminate-write-barriers
|
eliminate-write-barriers
|
||||||
dup compute-uninitialized-sets
|
dup compute-uninitialized-sets
|
||||||
|
|
|
@ -60,10 +60,10 @@ M: x86.64 %vm-field-ptr ( dst offset -- )
|
||||||
[ vm-reg ] dip [+] LEA ;
|
[ vm-reg ] dip [+] LEA ;
|
||||||
|
|
||||||
M: x86.64 %prologue ( n -- )
|
M: x86.64 %prologue ( n -- )
|
||||||
R11 -7 [RIP+] LEA
|
RAX 0 MOV rc-absolute-cell rel-this
|
||||||
dup PUSH
|
stack-reg over cell - SUB
|
||||||
R11 PUSH
|
stack-reg over 3 cells - [+] RAX MOV
|
||||||
stack-reg swap 3 cells - SUB ;
|
stack-reg over 2 cells - [+] swap MOV ;
|
||||||
|
|
||||||
M: x86.64 %prepare-jump
|
M: x86.64 %prepare-jump
|
||||||
pic-tail-reg xt-tail-pic-offset [RIP+] LEA ;
|
pic-tail-reg xt-tail-pic-offset [RIP+] LEA ;
|
||||||
|
|
Loading…
Reference in New Issue