A little fiddling with store instructions. The PowerPC is not friendly to
iburg.
This commit is contained in:
parent
e93c58dc8d
commit
2be1c51885
|
@ -73,6 +73,7 @@ REGISTERS
|
||||||
DECLARATIONS
|
DECLARATIONS
|
||||||
|
|
||||||
cr;
|
cr;
|
||||||
|
ubyte_to_be;
|
||||||
|
|
||||||
address fragment;
|
address fragment;
|
||||||
|
|
||||||
|
@ -129,10 +130,23 @@ PATTERNS
|
||||||
emit "sth %value, %addr"
|
emit "sth %value, %addr"
|
||||||
cost 4;
|
cost 4;
|
||||||
|
|
||||||
STORE1(addr:address, value:(int)reg)
|
STORE1(addr:address, value:(int)ubyte_to_be)
|
||||||
emit "stb %value, %addr"
|
emit "stb %value, %addr"
|
||||||
cost 4;
|
cost 4;
|
||||||
|
|
||||||
|
STORE1(ADD4(left:(int)reg, right:(int)reg), value:(int)ubyte_to_be)
|
||||||
|
emit "stbx %value, %left, %right"
|
||||||
|
cost 4;
|
||||||
|
|
||||||
|
out:(int)ubyte_to_be = in:(int)reg
|
||||||
|
cost 1;
|
||||||
|
|
||||||
|
out:(int)ubyte_to_be = CIU41(value:(int)reg)
|
||||||
|
cost 1;
|
||||||
|
|
||||||
|
out:(int)ubyte_to_be = CIU41(CII14(CIU41(value:(int)reg)))
|
||||||
|
cost 1;
|
||||||
|
|
||||||
out:(int)reg = LOAD4(addr:address)
|
out:(int)reg = LOAD4(addr:address)
|
||||||
emit "lwz %out, %addr"
|
emit "lwz %out, %addr"
|
||||||
cost 4;
|
cost 4;
|
||||||
|
@ -325,7 +339,7 @@ PATTERNS
|
||||||
cost 4;
|
cost 4;
|
||||||
|
|
||||||
out:(int)reg = value:CONST4
|
out:(int)reg = value:CONST4
|
||||||
emit "la %out, $value"
|
emit "li %out, $value"
|
||||||
cost 8;
|
cost 8;
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue