+2016-08-03 Alan Modra <amodra@gmail.com>
+
+ * config/rs6000/rs6000.md (fix_trunc<mode>si2): Force source operand
+ to a reg. Localize vars.
+
2016-08-03 Alan Modra <amodra@gmail.com>
* config/rs6000/rs6000.opt: Remove negatives from help strings
{
if (!<E500_CONVERT>)
{
- rtx tmp, stack;
+ rtx src = force_reg (SFmode, operands[1]);
if (TARGET_STFIWX)
- emit_insn (gen_fix_trunc<mode>si2_stfiwx (operands[0], operands[1]));
+ emit_insn (gen_fix_trunc<mode>si2_stfiwx (operands[0], src));
else
{
- tmp = gen_reg_rtx (DImode);
- stack = rs6000_allocate_stack_temp (DImode, true, false);
- emit_insn (gen_fix_trunc<mode>si2_internal (operands[0], operands[1],
+ rtx tmp = gen_reg_rtx (DImode);
+ rtx stack = rs6000_allocate_stack_temp (DImode, true, false);
+ emit_insn (gen_fix_trunc<mode>si2_internal (operands[0], src,
tmp, stack));
}
DONE;