aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNathan Froyd <froydnj@codesourcery.com>2010-10-11 21:50:58 +0000
committerNathan Froyd <froydnj@gcc.gnu.org>2010-10-11 21:50:58 +0000
commit2c8865f1c135dd460121a6fcb87e1d18bda72ada (patch)
tree081a17eceadb29be485dc2d40f8f4b59059f4305
parent63835102f4bfc417c7d09ad7c79ef468d2ac8d69 (diff)
downloadgcc-2c8865f1c135dd460121a6fcb87e1d18bda72ada.zip
gcc-2c8865f1c135dd460121a6fcb87e1d18bda72ada.tar.gz
gcc-2c8865f1c135dd460121a6fcb87e1d18bda72ada.tar.bz2
recog.c (nonmemory_operand): Call immediate_operand for CONSTANT_P operands.
* recog.c (nonmemory_operand): Call immediate_operand for CONSTANT_P operands. From-SVN: r165334
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/recog.c19
2 files changed, 6 insertions, 18 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 5a3a654..fa11af7 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2010-10-11 Nathan Froyd <froydnj@codesourcery.com>
+
+ * recog.c (nonmemory_operand): Call immediate_operand for
+ CONSTANT_P operands.
+
2010-10-11 Uros Bizjak <ubizjak@gmail.com>
* config/i386/i386.md (movmem<mode>): Macroize expander from
diff --git a/gcc/recog.c b/gcc/recog.c
index 368783f..e16a85c 100644
--- a/gcc/recog.c
+++ b/gcc/recog.c
@@ -1158,24 +1158,7 @@ int
nonmemory_operand (rtx op, enum machine_mode mode)
{
if (CONSTANT_P (op))
- {
- /* 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_PARTIAL_INT)
- return 0;
-
- if (CONST_INT_P (op)
- && mode != VOIDmode
- && trunc_int_for_mode (INTVAL (op), mode) != INTVAL (op))
- return 0;
-
- return ((GET_MODE (op) == VOIDmode || GET_MODE (op) == mode
- || mode == VOIDmode)
- && (! flag_pic || LEGITIMATE_PIC_OPERAND_P (op))
- && LEGITIMATE_CONSTANT_P (op));
- }
+ return immediate_operand (op, mode);
if (GET_MODE (op) != mode && mode != VOIDmode)
return 0;