compiler: emit safepoints in optimized prologs

db4
Joe Groff 2011-11-16 16:50:16 -08:00
parent 44b608bb22
commit 6498bc65ce
3 changed files with 6 additions and 5 deletions

View File

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

View File

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

View File

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