aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorUros Bizjak <uros@gcc.gnu.org>2018-12-02 23:21:37 +0100
committerUros Bizjak <uros@gcc.gnu.org>2018-12-02 23:21:37 +0100
commitc9c033f0c915c7fa4d80df3de50311258ba5f20e (patch)
treeb13ac09b480360cd6fc3f5ef03bae203d6507b18
parentc10a94358fb8d0762c9eceb5d26125582fa7971f (diff)
downloadgcc-c9c033f0c915c7fa4d80df3de50311258ba5f20e.zip
gcc-c9c033f0c915c7fa4d80df3de50311258ba5f20e.tar.gz
gcc-c9c033f0c915c7fa4d80df3de50311258ba5f20e.tar.bz2
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
-rw-r--r--gcc/ChangeLog7
-rw-r--r--gcc/config/i386/i386.c4
2 files changed, 7 insertions, 4 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index d74c1a9..109566e 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+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>
PR target/88278
@@ -5,7 +10,7 @@
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.
(call_insn, call_value_insn): Use mode iterator for number
of bytes pushed operand. Make pattern name vary appropriately.
diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c
index 653d720..3e2fdfa 100644
--- a/gcc/config/i386/i386.c
+++ b/gcc/config/i386/i386.c
@@ -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 in ? ix86_cost->int_load[1] : ix86_cost->int_store[1];
default:
- /* Compute number of 32bit moves needed. TFmode is moved as XFmode. */
- if (mode == TFmode)
- mode = XFmode;
if (in == 2)
cost = MAX (ix86_cost->int_load[2], ix86_cost->int_store[2]);
else if (in)
cost = ix86_cost->int_load[2];
else
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);
}
}