remove redundant definition
parent
9ebea7da97
commit
fe9e80aa2d
|
@ -1,5 +1,6 @@
|
|||
+ 0.80:
|
||||
|
||||
- inspector up clashes with interpreter up
|
||||
- make-image leaks memory if there is an error while parsing files
|
||||
- runtime primitives like fopen: check for null input
|
||||
- make = for sequences more efficient
|
||||
|
|
|
@ -6,29 +6,35 @@ USING: alien assembler kernel math ;
|
|||
M: %alien-invoke generate-node ( vop -- )
|
||||
drop 0 input 1 input load-library compile-c-call ;
|
||||
|
||||
GENERIC: store-insn
|
||||
GENERIC: load-insn
|
||||
GENERIC: return-reg
|
||||
GENERIC: store-insn ( from to offset reg-class -- )
|
||||
|
||||
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 load-insn drop 3 + 1 rot stack@ LWZ ;
|
||||
|
||||
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 load-insn
|
||||
>r 1+ 1 rot stack@ r>
|
||||
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 ;
|
||||
|
||||
M: %unbox generate-node ( vop -- )
|
||||
drop
|
||||
1 input f compile-c-call
|
||||
2 input return-reg
|
||||
1 0 input 2 input store-insn ;
|
||||
2 input return-reg 0 input 2 input store-insn ;
|
||||
|
||||
M: %parameter generate-node ( vop -- )
|
||||
drop 0 input 1 input 2 input load-insn ;
|
||||
|
|
|
@ -25,10 +25,6 @@ M: %inc-r generate-node ( vop -- ) drop cs-reg (%inc) ;
|
|||
M: %immediate generate-node ( vop -- )
|
||||
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 -- )
|
||||
#! indirect load of a literal through a table
|
||||
drop 0 output-operand 0 input load-indirect ;
|
||||
|
|
Loading…
Reference in New Issue