finish elimination of list usage from x86 backend

cvs
Slava Pestov 2005-12-02 08:24:59 +00:00
parent fe991f4aee
commit 895de95355
3 changed files with 6 additions and 6 deletions

View File

@ -43,7 +43,7 @@ M: %dispatch generate-node ( vop -- )
! Add to jump table base ! Add to jump table base
dup HEX: ffff ADD just-compiled >r 0 0 rel-address dup HEX: ffff ADD just-compiled >r 0 0 rel-address
! Jump to jump table entry ! Jump to jump table entry
unit JMP 1array JMP
! Align for better performance ! Align for better performance
compile-aligned compile-aligned
! Fix up jump table pointer ! Fix up jump table pointer

View File

@ -11,7 +11,7 @@ M: %slot generate-node ( vop -- )
! compute slot address in 0 vop-out ! compute slot address in 0 vop-out
dupd ADD dupd ADD
! load slot value in 0 vop-out ! load slot value in 0 vop-out
dup unit MOV ; dup 1array MOV ;
M: %fast-slot generate-node ( vop -- ) M: %fast-slot generate-node ( vop -- )
dup 0 vop-in swap 0 vop-out v>operand tuck >r 2array r> dup 0 vop-in swap 0 vop-out v>operand tuck >r 2array r>
@ -33,7 +33,7 @@ M: %set-slot generate-node ( vop -- )
! compute slot address in 1 vop-in ! compute slot address in 1 vop-in
dupd ADD dupd ADD
! store new slot value ! store new slot value
>r 0 vop-in v>operand r> unit swap MOV ; >r 0 vop-in v>operand r> 1array swap MOV ;
M: %fast-set-slot generate-node ( vop -- ) M: %fast-set-slot generate-node ( vop -- )
dup 2 vop-in over 1 vop-in v>operand dup 2 vop-in over 1 vop-in v>operand
@ -44,9 +44,9 @@ M: %fast-set-slot generate-node ( vop -- )
M: %getenv generate-node ( vop -- ) M: %getenv generate-node ( vop -- )
dup 0 vop-out v>operand swap 0 vop-in dup 0 vop-out v>operand swap 0 vop-in
[ userenv@ unit MOV ] keep 0 rel-userenv ; [ userenv@ 1array MOV ] keep 0 rel-userenv ;
M: %setenv generate-node ( vop -- ) M: %setenv generate-node ( vop -- )
dup 1 vop-in dup 1 vop-in
[ userenv@ unit swap 0 vop-in v>operand MOV ] keep [ userenv@ 1array swap 0 vop-in v>operand MOV ] keep
0 rel-userenv ; 0 rel-userenv ;

View File

@ -27,7 +27,7 @@ M: %immediate generate-node ( vop -- )
dup 0 vop-out v>operand swap 0 vop-in address MOV ; dup 0 vop-out v>operand swap 0 vop-in address MOV ;
: load-indirect ( dest literal -- ) : load-indirect ( dest literal -- )
add-literal unit MOV 0 0 rel-address ; add-literal 1array MOV 0 0 rel-address ;
M: %indirect generate-node ( vop -- ) M: %indirect generate-node ( vop -- )
#! indirect load of a literal through a table #! indirect load of a literal through a table