diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 493aaeb84b6..8b09eecfbfe 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2019-04-21 Iain Sandoe + + * config/rs6000/rs6000.md (group_end_nop): Emit insn register + names using operand format, rather than hard-wired. + (speculation_barrier): Likewise. + 2019-04-19 Segher Boessenkool PR tree-optimization/88055 diff --git a/gcc/config/rs6000/rs6000.md b/gcc/config/rs6000/rs6000.md index 6feaa10c155..ad80592765d 100644 --- a/gcc/config/rs6000/rs6000.md +++ b/gcc/config/rs6000/rs6000.md @@ -12445,15 +12445,18 @@ [(unspec [(const_int 0)] UNSPEC_GRP_END_NOP)] "" { - if (rs6000_tune == PROCESSOR_POWER6) - return "ori 1,1,0"; - return "ori 2,2,0"; + operands[0] = gen_rtx_REG (Pmode, + rs6000_tune == PROCESSOR_POWER6 ? 1 : 2); + return "ori %0,%0,0"; }) (define_insn "speculation_barrier" [(unspec_volatile:BLK [(const_int 0)] UNSPECV_SPEC_BARRIER)] "" - "ori 31,31,0") +{ + operands[0] = gen_rtx_REG (Pmode, 31); + return "ori %0,%0,0"; +}) ;; Define the subtract-one-and-jump insns, starting with the template ;; so loop.c knows what to generate.