Commit c9c033f0 by Uros Bizjak

i386.c (inline_memory_move_cost): Correctly compute number of TFmode GPR moves.

	* config/i386/i386.c (inline_memory_move_cost): Correctly
	compute number of TFmode GPR moves.

From-SVN: r266729
parent c10a9435
2018-12-02 Uros Bizjak <ubizjak@gmail.com>
* config/i386/i386.c (inline_memory_move_cost): Correctly
compute number of TFmode GPR moves.
2018-12-02 Jakub Jelinek <jakub@redhat.com> 2018-12-02 Jakub Jelinek <jakub@redhat.com>
PR target/88278 PR target/88278
...@@ -5,7 +10,7 @@ ...@@ -5,7 +10,7 @@
2018-12-02 Jeff Law <law@redhat.com> 2018-12-02 Jeff Law <law@redhat.com>
* config/h8300/h8300.md (call, call_value): Drop mode from * config/h8300/h8300.md (call, call_value): Drop mode from
operand containing number of bytes pushed. operand containing number of bytes pushed.
(call_insn, call_value_insn): Use mode iterator for number (call_insn, call_value_insn): Use mode iterator for number
of bytes pushed operand. Make pattern name vary appropriately. of bytes pushed operand. Make pattern name vary appropriately.
...@@ -39598,15 +39598,13 @@ inline_memory_move_cost (machine_mode mode, enum reg_class regclass, int in) ...@@ -39598,15 +39598,13 @@ inline_memory_move_cost (machine_mode mode, enum reg_class regclass, int in)
return MAX (ix86_cost->int_load[1], ix86_cost->int_store[1]); return MAX (ix86_cost->int_load[1], ix86_cost->int_store[1]);
return in ? ix86_cost->int_load[1] : ix86_cost->int_store[1]; return in ? ix86_cost->int_load[1] : ix86_cost->int_store[1];
default: default:
/* Compute number of 32bit moves needed. TFmode is moved as XFmode. */
if (mode == TFmode)
mode = XFmode;
if (in == 2) if (in == 2)
cost = MAX (ix86_cost->int_load[2], ix86_cost->int_store[2]); cost = MAX (ix86_cost->int_load[2], ix86_cost->int_store[2]);
else if (in) else if (in)
cost = ix86_cost->int_load[2]; cost = ix86_cost->int_load[2];
else else
cost = ix86_cost->int_store[2]; cost = ix86_cost->int_store[2];
/* Multiply with the number of GPR moves needed. */
return cost * CEIL ((int) GET_MODE_SIZE (mode), UNITS_PER_WORD); return cost * CEIL ((int) GET_MODE_SIZE (mode), UNITS_PER_WORD);
} }
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment