aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Kenner <kenner@gcc.gnu.org>1994-08-29 17:50:48 -0400
committerRichard Kenner <kenner@gcc.gnu.org>1994-08-29 17:50:48 -0400
commitd251be987e3f0613b287c5a712c6ba8d83a27bb3 (patch)
treecce25fc80fbb8370f7206da6d24dc3ef652fdb83
parent35104543b46ef5653abac8358c1c4dd5c1e3a5ed (diff)
downloadgcc-d251be987e3f0613b287c5a712c6ba8d83a27bb3.zip
gcc-d251be987e3f0613b287c5a712c6ba8d83a27bb3.tar.gz
gcc-d251be987e3f0613b287c5a712c6ba8d83a27bb3.tar.bz2
(extv, extzv): Don't use ROTL when field is outside boundaries of a
word. From-SVN: r8000
-rw-r--r--gcc/config/vax/vax.md2
1 files changed, 2 insertions, 0 deletions
diff --git a/gcc/config/vax/vax.md b/gcc/config/vax/vax.md
index 96d7f91..d336862 100644
--- a/gcc/config/vax/vax.md
+++ b/gcc/config/vax/vax.md
@@ -1495,6 +1495,7 @@
if (GET_CODE (operands[0]) != REG || GET_CODE (operands[2]) != CONST_INT
|| GET_CODE (operands[3]) != CONST_INT
|| (INTVAL (operands[2]) != 8 && INTVAL (operands[2]) != 16)
+ || INTVAL (operands[2]) + INTVAL (operands[3]) > 32
|| side_effects_p (operands[1])
|| (GET_CODE (operands[1]) == MEM
&& mode_dependent_address_p (XEXP (operands[1], 0))))
@@ -1514,6 +1515,7 @@
{
if (GET_CODE (operands[0]) != REG || GET_CODE (operands[2]) != CONST_INT
|| GET_CODE (operands[3]) != CONST_INT
+ || INTVAL (operands[2]) + INTVAL (operands[3]) > 32
|| side_effects_p (operands[1])
|| (GET_CODE (operands[1]) == MEM
&& mode_dependent_address_p (XEXP (operands[1], 0))))