summaryrefslogtreecommitdiff
path: root/gcc/recog.c
diff options
context:
space:
mode:
authorsje <sje@138bc75d-0d04-0410-961f-82ee72b054a4>2002-08-19 18:18:12 +0000
committersje <sje@138bc75d-0d04-0410-961f-82ee72b054a4>2002-08-19 18:18:12 +0000
commitdd06736221e44091252e1bb6985d5d3e5fd0ea5f (patch)
tree90d5a658b60ca93c1db59343c9ba71bdd464f467 /gcc/recog.c
parent31c07a4029037bef4530cb55882b651438c1c550 (diff)
downloadgcc-dd06736221e44091252e1bb6985d5d3e5fd0ea5f.tar.gz
* machmode.h (SCALAR_INT_MODE_P): New macro to test for
scaler integer mode (MODE_INT or MODE_PARTIAL_INT). * explow.c (trunc_int_for_mode): Abort when the mode is not a scaler integer mode. * combine.c (expand_compound_operation): Don't expand Vector or Complex modes into shifts. (expand_field_assignment): Don't do bitwise arithmatic and shifts on Vector or Complex modes. (simplify_comparison): Don't call trunc_int_for_mode for VOIDmode. * recog.c (general_operand): Likewise. (immediate_operand): Likewise. (nonmemory_operand): Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@56443 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/recog.c')
-rw-r--r--gcc/recog.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/gcc/recog.c b/gcc/recog.c
index 6bb8670e166..a01abd5b799 100644
--- a/gcc/recog.c
+++ b/gcc/recog.c
@@ -954,6 +954,7 @@ general_operand (op, mode)
return 0;
if (GET_CODE (op) == CONST_INT
+ && mode != VOIDmode
&& trunc_int_for_mode (INTVAL (op), mode) != INTVAL (op))
return 0;
@@ -1159,6 +1160,7 @@ immediate_operand (op, mode)
return 0;
if (GET_CODE (op) == CONST_INT
+ && mode != VOIDmode
&& trunc_int_for_mode (INTVAL (op), mode) != INTVAL (op))
return 0;
@@ -1241,6 +1243,7 @@ nonmemory_operand (op, mode)
return 0;
if (GET_CODE (op) == CONST_INT
+ && mode != VOIDmode
&& trunc_int_for_mode (INTVAL (op), mode) != INTVAL (op))
return 0;