------- Additional Comments From pluto at pld-linux dot org 2005-02-11 10:47 ------- (In reply to comment #4) > The new register allocator (new-ra) has been removed because it was buggy and > there were no plans to fix it. > I was using it to show that the initial MOV was an unrelated issue. > Your code snippet shows that the rotate and the EOR are being merged, > which is what this PR was about.
The PR is about initial eor/mov opt., not eor/rotate ;-) At this moment the comercial IAR compiler generates good code. The GCC should be good too :) reverse: 0x00000D04 E0201860 EOR R1, R0, R0, ROR #16 0x00000D08 E3C118FF BIC R1, R1, #0xFF0000 0x00000D0C E1A01421 MOV R1, R1, LSR #8 0x00000D10 E0210460 EOR R0, R1, R0, ROR #8 0x00000D14 E12FFF1E BX LR -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=18560