On 07/01/2010 02:03 AM, Richard Henderson wrote:
On 06/30/2010 10:53 AM, Jie Zhang wrote:
When compiler an application for ARM, the GAS issued a warning:
Warning: register range not in ascending order
for the instruction
push {ip, r3, r4, lr}
Before regrename pass, this instruction looked like
push {r0, r3, r4, lr}
Doesn't it work just as well to simply remove the register
constraint from the push_multi instruction? Without that
the regrename pass won't get a register class for the
operand and will leave it alone.
According to Richard's comment, a new patch is attached. It removes
register constraints from all three push multiple patterns. Since there
are no constraints for operand 1 of *push_multi_vfp, I use a new
predicate to make it more stricter.
Tested on arm-none-eabi for NEON and non-NEON. No regressions found.
Is it OK?
Regards,