diff options
Diffstat (limited to 'gcc')
| -rw-r--r-- | gcc/ChangeLog | 5 | ||||
| -rw-r--r-- | gcc/config/sh/sh.md | 6 |
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) |
