aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Kenner <kenner@gcc.gnu.org>1993-12-20 19:09:40 -0500
committerRichard Kenner <kenner@gcc.gnu.org>1993-12-20 19:09:40 -0500
commit405c5495313248c057a9d6df722134f49672a086 (patch)
treeaaf5363e2884f9d91550f7ef10e3ce18a514f247
parent3bf35ccb68dca6d5d1b9da6f35327a12c66b3fd4 (diff)
downloadgcc-405c5495313248c057a9d6df722134f49672a086.zip
gcc-405c5495313248c057a9d6df722134f49672a086.tar.gz
gcc-405c5495313248c057a9d6df722134f49672a086.tar.bz2
(divsi3): Correct logic for when we call force_reg.
(modsi3): Ensure operands[2] is a CONST_INT; include REG in predicate. From-SVN: r6248
-rw-r--r--gcc/config/rs6000/rs6000.md9
1 files changed, 4 insertions, 5 deletions
diff --git a/gcc/config/rs6000/rs6000.md b/gcc/config/rs6000/rs6000.md
index bd8fc6b..72957ae 100644
--- a/gcc/config/rs6000/rs6000.md
+++ b/gcc/config/rs6000/rs6000.md
@@ -754,17 +754,16 @@
if (GET_CODE (operands[2]) == CONST_INT
&& exact_log2 (INTVAL (operands[2])) >= 0)
;
-
else if (! TARGET_POWERPC)
FAIL;
-
- operands[2] = force_reg (SImode, operands[2]);
+ else
+ operands[2] = force_reg (SImode, operands[2]);
}")
(define_expand "modsi3"
[(use (match_operand:SI 0 "gpc_reg_operand" ""))
(use (match_operand:SI 1 "gpc_reg_operand" ""))
- (use (match_operand:SI 2 "const_int_operand" ""))]
+ (use (match_operand:SI 2 "reg_or_cint_operand" ""))]
""
"
{
@@ -772,7 +771,7 @@
rtx temp1;
rtx temp2;
- if (i < 0)
+ if (GET_CODE (operands[2]) != CONST_INT || i < 0)
FAIL;
temp1 = gen_reg_rtx (SImode);