aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorJ"orn Rennecke <joern.rennecke@superh.com>2002-10-11 11:36:21 +0000
committerJoern Rennecke <amylaar@gcc.gnu.org>2002-10-11 12:36:21 +0100
commit750afc12b3b52eaa1082f95b486fd5314e64ff5d (patch)
tree21bd6c6042625fb76eb10a59ade5a832cd3e509c /gcc
parent0488fa7c8f0e7d014cdfdeb0ddac6f9ffc235db6 (diff)
downloadgcc-750afc12b3b52eaa1082f95b486fd5314e64ff5d.zip
gcc-750afc12b3b52eaa1082f95b486fd5314e64ff5d.tar.gz
gcc-750afc12b3b52eaa1082f95b486fd5314e64ff5d.tar.bz2
sh.md (movv8qi_i+2): For V8QI destinations, generate V4HI register for mperm_w operation.
* sh.md (movv8qi_i+2): For V8QI destinations, generate V4HI register for mperm_w operation. From-SVN: r58051
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/config/sh/sh.md6
2 files changed, 10 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index c2c29c5..8330920 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+Fri Oct 11 12:34:33 2002 J"orn Rennecke <joern.rennecke@superh.com>
+
+ * sh.md (movv8qi_i+2): For V8QI destinations, generate V4HI
+ register for mperm_w operation.
+
Fri Oct 11 10:56:17 2002 J"orn Rennecke <joern.rennecke@superh.com>
* emit-rtl.c (gen_lowpart_common): When asked to make a vector from
diff --git a/gcc/config/sh/sh.md b/gcc/config/sh/sh.md
index 2c02ee3..a271709 100644
--- a/gcc/config/sh/sh.md
+++ b/gcc/config/sh/sh.md
@@ -9160,7 +9160,11 @@
if (unit_size > 2)
operands[2] = gen_mshflo_l (operands[0], operands[0], operands[0]);
else
- operands[2] = gen_mperm_w0 (operands[0], operands[0]);
+ {
+ if (unit_size < 2)
+ operands[0] = gen_rtx_REG (V4HImode, true_regnum (operands[0]));
+ operands[2] = gen_mperm_w0 (operands[0], operands[0]);
+ }
operands[0] = gen_rtx_REG (DImode, true_regnum (operands[0]));
operands[1] = XVECEXP (operands[1], 0, 0);
if (unit_size < 2)