remove redundant definition

cvs
Slava Pestov 2005-12-23 08:05:20 +00:00
parent 9ebea7da97
commit fe9e80aa2d
3 changed files with 15 additions and 12 deletions

View File

@ -1,5 +1,6 @@
+ 0.80: + 0.80:
- inspector up clashes with interpreter up
- make-image leaks memory if there is an error while parsing files - make-image leaks memory if there is an error while parsing files
- runtime primitives like fopen: check for null input - runtime primitives like fopen: check for null input
- make = for sequences more efficient - make = for sequences more efficient

View File

@ -6,29 +6,35 @@ USING: alien assembler kernel math ;
M: %alien-invoke generate-node ( vop -- ) M: %alien-invoke generate-node ( vop -- )
drop 0 input 1 input load-library compile-c-call ; drop 0 input 1 input load-library compile-c-call ;
GENERIC: store-insn GENERIC: store-insn ( from to offset reg-class -- )
GENERIC: load-insn
GENERIC: return-reg GENERIC: load-insn ( elt parameter reg-class -- )
GENERIC: return-reg ( reg-class -- reg )
M: int-regs store-insn drop 1 swap stack@ STW ;
M: int-regs store-insn drop stack@ STW ;
M: int-regs return-reg drop 3 ; M: int-regs return-reg drop 3 ;
M: int-regs load-insn drop 3 + 1 rot stack@ LWZ ; M: int-regs load-insn drop 3 + 1 rot stack@ LWZ ;
M: float-regs store-insn M: float-regs store-insn
>r stack@ r> float-regs-size 4 = [ STFS ] [ STFD ] if ; >r 1 swap stack@ r>
float-regs-size 4 = [ STFS ] [ STFD ] if ;
M: float-regs return-reg drop 1 ; M: float-regs return-reg drop 1 ;
M: float-regs load-insn M: float-regs load-insn
>r 1+ 1 rot stack@ r> >r 1+ 1 rot stack@ r>
float-regs-size 4 = [ LFS ] [ LFD ] if ; float-regs-size 4 = [ LFS ] [ LFD ] if ;
M: stack-params load-insn ( from to reg-class -- ) M: stack-params load-insn
drop >r 0 1 rot stack@ LWZ 0 1 r> stack@ STW ; drop >r 0 1 rot stack@ LWZ 0 1 r> stack@ STW ;
M: %unbox generate-node ( vop -- ) M: %unbox generate-node ( vop -- )
drop drop
1 input f compile-c-call 1 input f compile-c-call
2 input return-reg 2 input return-reg 0 input 2 input store-insn ;
1 0 input 2 input store-insn ;
M: %parameter generate-node ( vop -- ) M: %parameter generate-node ( vop -- )
drop 0 input 1 input 2 input load-insn ; drop 0 input 1 input 2 input load-insn ;

View File

@ -25,10 +25,6 @@ M: %inc-r generate-node ( vop -- ) drop cs-reg (%inc) ;
M: %immediate generate-node ( vop -- ) M: %immediate generate-node ( vop -- )
drop 0 output-operand 0 input address MOV ; drop 0 output-operand 0 input address MOV ;
: load-indirect ( dest literal -- )
add-literal address-operand 1array MOV
rel-absolute-cell 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
drop 0 output-operand 0 input load-indirect ; drop 0 output-operand 0 input load-indirect ;