Simplify moves to and from IND_RC_*
Now that SUM_RC always has a signed 16-bit constant, it happens that the various IND_RC_* tokens also have a signed 16-bit constant, so we no longer need to touch the scratch register.
This commit is contained in:
parent
7c64dab491
commit
5b5f774a64
|
@ -424,75 +424,39 @@ MOVES
|
||||||
|
|
||||||
/* Read/write byte */
|
/* Read/write byte */
|
||||||
|
|
||||||
from IND_RC_B smalls(%off) to GPR
|
|
||||||
gen
|
|
||||||
COMMENT("move IND_RC_B->GPR small")
|
|
||||||
lbz %2, {GPRINDIRECT, %1.reg, %1.off}
|
|
||||||
|
|
||||||
from IND_RC_B to GPR
|
from IND_RC_B to GPR
|
||||||
gen
|
gen
|
||||||
COMMENT("move IND_RC_B->GPR large")
|
COMMENT("move IND_RC_B->GPR")
|
||||||
addis RSCRATCH, %1.reg, {CONST, his(%1.off)}
|
lbz %2, {GPRINDIRECT, %1.reg, %1.off}
|
||||||
lbz %2, {GPRINDIRECT, RSCRATCH, los(%1.off)}
|
|
||||||
|
|
||||||
from GPR to IND_RC_B smalls(%off)
|
|
||||||
gen
|
|
||||||
COMMENT("move GPR->IND_RC_B small")
|
|
||||||
stb %1, {GPRINDIRECT, %2.reg, %2.off}
|
|
||||||
|
|
||||||
from GPR to IND_RC_B
|
from GPR to IND_RC_B
|
||||||
gen
|
gen
|
||||||
COMMENT("move GPR->IND_RC_B large")
|
COMMENT("move GPR->IND_RC_B")
|
||||||
addis RSCRATCH, %2.reg, {CONST, his(%2.off)}
|
stb %1, {GPRINDIRECT, %2.reg, %2.off}
|
||||||
stb %1, {GPRINDIRECT, RSCRATCH, los(%2.off)}
|
|
||||||
|
|
||||||
/* Read/write short */
|
/* Read/write halfword (short) */
|
||||||
|
|
||||||
from IND_RC_H smalls(%off) to GPR
|
|
||||||
gen
|
|
||||||
COMMENT("move IND_RC_H->GPR small")
|
|
||||||
lhz %2, {GPRINDIRECT, %1.reg, %1.off}
|
|
||||||
|
|
||||||
from IND_RC_H to GPR
|
from IND_RC_H to GPR
|
||||||
gen
|
gen
|
||||||
COMMENT("move IND_RC_H->GPR large")
|
COMMENT("move IND_RC_H->GPR")
|
||||||
addis RSCRATCH, %1.reg, {CONST, his(%1.off)}
|
lhz %2, {GPRINDIRECT, %1.reg, %1.off}
|
||||||
lhz %2, {GPRINDIRECT, RSCRATCH, los(%1.off)}
|
|
||||||
|
|
||||||
from IND_RC_H_S smalls(%off) to GPR
|
|
||||||
gen
|
|
||||||
COMMENT("move IND_RC_H_S->GPR small")
|
|
||||||
lha %2, {GPRINDIRECT, %1.reg, %1.off}
|
|
||||||
|
|
||||||
from IND_RC_H_S to GPR
|
from IND_RC_H_S to GPR
|
||||||
gen
|
gen
|
||||||
COMMENT("move IND_RC_H_S->GPR large")
|
COMMENT("move IND_RC_H_S->GPR")
|
||||||
addis RSCRATCH, %1.reg, {CONST, his(%1.off)}
|
lha %2, {GPRINDIRECT, %1.reg, %1.off}
|
||||||
lha %2, {GPRINDIRECT, RSCRATCH, los(%1.off)}
|
|
||||||
|
|
||||||
from GPR to IND_RC_H smalls(%off)
|
|
||||||
gen
|
|
||||||
COMMENT("move GPR->IND_RC_H small")
|
|
||||||
sth %1, {GPRINDIRECT, %2.reg, %2.off}
|
|
||||||
|
|
||||||
from GPR to IND_RC_H
|
from GPR to IND_RC_H
|
||||||
gen
|
gen
|
||||||
COMMENT("move GPR->IND_RC_H large")
|
COMMENT("move GPR->IND_RC_H")
|
||||||
addis RSCRATCH, %2.reg, {CONST, his(%2.off)}
|
sth %1, {GPRINDIRECT, %2.reg, %2.off}
|
||||||
sth %1, {GPRINDIRECT, RSCRATCH, los(%2.off)}
|
|
||||||
|
|
||||||
/* Read word */
|
/* Read word */
|
||||||
|
|
||||||
from IND_RC_W smalls(%off) to GPR
|
|
||||||
gen
|
|
||||||
COMMENT("move IND_RC_W->GPR small")
|
|
||||||
lwz %2, {GPRINDIRECT, %1.reg, %1.off}
|
|
||||||
|
|
||||||
from IND_RC_W to GPR
|
from IND_RC_W to GPR
|
||||||
gen
|
gen
|
||||||
COMMENT("move IND_RC_W->GPR large")
|
COMMENT("move IND_RC_W->GPR")
|
||||||
addis %2, %1.reg, {CONST, his(%1.off)}
|
lwz %2, {GPRINDIRECT, %1.reg, %1.off}
|
||||||
lwz %2, {GPRINDIRECT, %2, los(%1.off)}
|
|
||||||
|
|
||||||
from IND_RR_W to GPR
|
from IND_RR_W to GPR
|
||||||
gen
|
gen
|
||||||
|
@ -505,16 +469,10 @@ MOVES
|
||||||
move {LABEL, %1.adr}, RSCRATCH
|
move {LABEL, %1.adr}, RSCRATCH
|
||||||
lwz %2, {GPRINDIRECT, RSCRATCH, 0}
|
lwz %2, {GPRINDIRECT, RSCRATCH, 0}
|
||||||
|
|
||||||
from IND_RC_W smalls(%off) to FSREG
|
|
||||||
gen
|
|
||||||
COMMENT("move IND_RC_W->FSREG small")
|
|
||||||
lfs %2, {GPRINDIRECT, %1.reg, %1.off}
|
|
||||||
|
|
||||||
from IND_RC_W to FSREG
|
from IND_RC_W to FSREG
|
||||||
gen
|
gen
|
||||||
COMMENT("move IND_RC_W->FSREG large")
|
COMMENT("move IND_RC_W->FSREG")
|
||||||
addis RSCRATCH, %1.reg, {CONST, his(%1.off)}
|
lfs %2, {GPRINDIRECT, %1.reg, %1.off}
|
||||||
lfs %2, {GPRINDIRECT, RSCRATCH, los(%1.off)}
|
|
||||||
|
|
||||||
from IND_RR_W to FSREG
|
from IND_RR_W to FSREG
|
||||||
gen
|
gen
|
||||||
|
@ -529,16 +487,10 @@ MOVES
|
||||||
|
|
||||||
/* Write word */
|
/* Write word */
|
||||||
|
|
||||||
from GPR to IND_RC_W smalls(%off)
|
|
||||||
gen
|
|
||||||
COMMENT("move GPR->IND_RC_W small")
|
|
||||||
stw %1, {GPRINDIRECT, %2.reg, %2.off}
|
|
||||||
|
|
||||||
from GPR to IND_RC_W
|
from GPR to IND_RC_W
|
||||||
gen
|
gen
|
||||||
COMMENT("move GPR->IND_RC_W large")
|
COMMENT("move GPR->IND_RC_W")
|
||||||
addis RSCRATCH, %2.reg, {CONST, his(%2.off)}
|
stw %1, {GPRINDIRECT, %2.reg, %2.off}
|
||||||
stw %1, {GPRINDIRECT, RSCRATCH, los(%2.off)}
|
|
||||||
|
|
||||||
from GPR to IND_RR_W
|
from GPR to IND_RR_W
|
||||||
gen
|
gen
|
||||||
|
@ -551,16 +503,10 @@ MOVES
|
||||||
move {LABEL, %2.adr}, RSCRATCH
|
move {LABEL, %2.adr}, RSCRATCH
|
||||||
stw %1, {GPRINDIRECT, RSCRATCH, 0}
|
stw %1, {GPRINDIRECT, RSCRATCH, 0}
|
||||||
|
|
||||||
from FSREG to IND_RC_W smalls(%off)
|
|
||||||
gen
|
|
||||||
COMMENT("move FSREG->IND_RC_W small")
|
|
||||||
stfs %1, {GPRINDIRECT, %2.reg, %2.off}
|
|
||||||
|
|
||||||
from FSREG to IND_RC_W
|
from FSREG to IND_RC_W
|
||||||
gen
|
gen
|
||||||
COMMENT("move FSREG->IND_RC_W large")
|
COMMENT("move FSREG->IND_RC_W")
|
||||||
addis RSCRATCH, %2.reg, {CONST, his(%2.off)}
|
stfs %1, {GPRINDIRECT, %2.reg, %2.off}
|
||||||
stfs %1, {GPRINDIRECT, RSCRATCH, los(%2.off)}
|
|
||||||
|
|
||||||
from FSREG to IND_RR_W
|
from FSREG to IND_RR_W
|
||||||
gen
|
gen
|
||||||
|
@ -575,16 +521,10 @@ MOVES
|
||||||
|
|
||||||
/* Read double */
|
/* Read double */
|
||||||
|
|
||||||
from IND_RC_D smalls(%off) to FPR
|
|
||||||
gen
|
|
||||||
COMMENT("move IND_RC_D->FPR small")
|
|
||||||
lfd %2, {GPRINDIRECT, %1.reg, %1.off}
|
|
||||||
|
|
||||||
from IND_RC_D to FPR
|
from IND_RC_D to FPR
|
||||||
gen
|
gen
|
||||||
COMMENT("move IND_RC_D->FPR large")
|
COMMENT("move IND_RC_D->FPR")
|
||||||
addis RSCRATCH, %1.reg, {CONST, his(%1.off)}
|
lfd %2, {GPRINDIRECT, %1.reg, %1.off}
|
||||||
lfd %2, {GPRINDIRECT, RSCRATCH, los(%1.off)}
|
|
||||||
|
|
||||||
from IND_RR_D to FPR
|
from IND_RR_D to FPR
|
||||||
gen
|
gen
|
||||||
|
@ -599,16 +539,10 @@ MOVES
|
||||||
|
|
||||||
/* Write double */
|
/* Write double */
|
||||||
|
|
||||||
from FPR to IND_RC_D smalls(%off)
|
|
||||||
gen
|
|
||||||
COMMENT("move FPR->IND_RC_D small")
|
|
||||||
stfd %1, {GPRINDIRECT, %2.reg, %2.off}
|
|
||||||
|
|
||||||
from FPR to IND_RC_D
|
from FPR to IND_RC_D
|
||||||
gen
|
gen
|
||||||
COMMENT("move FPR->IND_RC_D large")
|
COMMENT("move FPR->IND_RC_D")
|
||||||
addis RSCRATCH, %2.reg, {CONST, his(%2.off)}
|
stfd %1, {GPRINDIRECT, %2.reg, %2.off}
|
||||||
stfd %1, {GPRINDIRECT, RSCRATCH, los(%2.off)}
|
|
||||||
|
|
||||||
from FPR to IND_RR_D
|
from FPR to IND_RR_D
|
||||||
gen
|
gen
|
||||||
|
|
Loading…
Reference in a new issue