remove redundant definition
parent
9ebea7da97
commit
fe9e80aa2d
|
@ -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
|
||||||
|
|
|
@ -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 ;
|
||||||
|
|
|
@ -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 ;
|
||||||
|
|
Loading…
Reference in New Issue