1234567891011121314151617181920212223242526272829303132 |
- --- a/gcc/config/avr32/avr32.c
- +++ b/gcc/config/avr32/avr32.c
- @@ -6726,7 +6726,28 @@ avr32_reorg_optimization (void)
- }
- }
-
- - if (TARGET_MD_REORG_OPTIMIZATION && (optimize_size || (optimize > 0)))
- + /* Disabled this optimization since it has a bug */
- + /* In the case where the data instruction the shifted insn gets folded
- + * into is a branch destination, this breaks, i.e.
- + *
- + * add r8, r10, r8 << 2
- + * 1:
- + * ld.w r11, r8[0]
- + * ...
- + * mov r8, sp
- + * rjmp 1b
- + *
- + * gets folded to:
- + *
- + * 1:
- + * ld.w r11, r10[r8 << 2]
- + * ...
- + * mov r8, sp
- + * rjmp 1b
- + *
- + * which is clearly wrong..
- + */
- + if (0 && TARGET_MD_REORG_OPTIMIZATION && (optimize_size || (optimize > 0)))
- {
-
- /* Scan through all insns looking for shifted add operations */
|