aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Kenner <kenner@gcc.gnu.org>1992-10-11 16:27:23 -0400
committerRichard Kenner <kenner@gcc.gnu.org>1992-10-11 16:27:23 -0400
commit4bb4c82e202e24ee051680490a1e33c6e706339b (patch)
treea5c18cd0447a6c2d2ae5b9e38bcdf5d9992ad5de
parent2247a58ce8c71352e9a7d7bd2c8aecae1f6e4f0d (diff)
downloadgcc-4bb4c82e202e24ee051680490a1e33c6e706339b.zip
gcc-4bb4c82e202e24ee051680490a1e33c6e706339b.tar.gz
gcc-4bb4c82e202e24ee051680490a1e33c6e706339b.tar.bz2
(general_operand, immediate_operand, const_double_operand): Allow CONST_INT with MODE_PARTIAL_INT.
(general_operand, immediate_operand, const_double_operand): Allow CONST_INT with MODE_PARTIAL_INT. (nonmemory_operand): Likewise. From-SVN: r2399
-rw-r--r--gcc/recog.c12
1 files changed, 8 insertions, 4 deletions
diff --git a/gcc/recog.c b/gcc/recog.c
index bde6602..b66cb2c 100644
--- a/gcc/recog.c
+++ b/gcc/recog.c
@@ -761,7 +761,8 @@ general_operand (op, mode)
/* Don't accept CONST_INT or anything similar
if the caller wants something floating. */
if (GET_MODE (op) == VOIDmode && mode != VOIDmode
- && GET_MODE_CLASS (mode) != MODE_INT)
+ && GET_MODE_CLASS (mode) != MODE_INT
+ && GET_MODE_CLASS (mode) != MODE_PARTIAL_INT)
return 0;
if (CONSTANT_P (op))
@@ -901,7 +902,8 @@ immediate_operand (op, mode)
/* Don't accept CONST_INT or anything similar
if the caller wants something floating. */
if (GET_MODE (op) == VOIDmode && mode != VOIDmode
- && GET_MODE_CLASS (mode) != MODE_INT)
+ && GET_MODE_CLASS (mode) != MODE_INT
+ && GET_MODE_CLASS (mode) != MODE_PARTIAL_INT)
return 0;
return (CONSTANT_P (op)
@@ -934,7 +936,8 @@ const_double_operand (op, mode)
/* Don't accept CONST_INT or anything similar
if the caller wants something floating. */
if (GET_MODE (op) == VOIDmode && mode != VOIDmode
- && GET_MODE_CLASS (mode) != MODE_INT)
+ && GET_MODE_CLASS (mode) != MODE_INT
+ && GET_MODE_CLASS (mode) != MODE_PARTIAL_INT)
return 0;
return ((GET_CODE (op) == CONST_DOUBLE || GET_CODE (op) == CONST_INT)
@@ -964,7 +967,8 @@ nonmemory_operand (op, mode)
/* Don't accept CONST_INT or anything similar
if the caller wants something floating. */
if (GET_MODE (op) == VOIDmode && mode != VOIDmode
- && GET_MODE_CLASS (mode) != MODE_INT)
+ && GET_MODE_CLASS (mode) != MODE_INT
+ && GET_MODE_CLASS (mode) != MODE_PARTIAL_INT)
return 0;
return ((GET_MODE (op) == VOIDmode || GET_MODE (op) == mode)