fix %set-slot on x86

cvs
Slava Pestov 2005-12-06 00:07:41 +00:00
parent 1337da225a
commit a4478d6bc0
2 changed files with 5 additions and 7 deletions

View File

@ -2,7 +2,7 @@ IN: compiler-backend
USING: assembler compiler-backend kernel sequences ;
! x86 register assignments
! EAX, ECX, EDX, EBP vregs
! EAX, ECX, EDX vregs
! ESI datastack
! EBX callstack

View File

@ -14,10 +14,9 @@ M: %slot generate-node ( vop -- )
0 output-operand dup 1array MOV ;
M: %fast-slot generate-node ( vop -- )
drop
0 output-operand 1 input-operand 0 input 2array MOV ;
drop 0 output-operand 1 input-operand 0 input 2array MOV ;
: card-offset 1 getenv ;
: card-offset 1 getenv ; inline
M: %write-barrier generate-node ( vop -- )
#! Mark the card pointed to by vreg.
@ -33,11 +32,10 @@ M: %set-slot generate-node ( vop -- )
! compute slot address in 2 vop-in
2 input-operand 1 input-operand ADD
! store new slot value
0 input-operand 1array 2 input-operand MOV ;
2 input-operand 1array 0 input-operand MOV ;
M: %fast-set-slot generate-node ( vop -- )
drop
1 input-operand 2 input 2array 0 output-operand MOV ;
drop 1 input-operand 2 input 2array 0 output-operand MOV ;
: userenv@ ( n -- addr ) cell * "userenv" f dlsym + ;