diff options
author | Richard Henderson <rth@cygnus.com> | 1999-01-20 18:21:28 -0800 |
---|---|---|
committer | Richard Henderson <rth@gcc.gnu.org> | 1999-01-20 18:21:28 -0800 |
commit | ee5332b81a9cd1dea4c73f596648ae70533f5fe5 (patch) | |
tree | 4c960fd14fd699be96f9a90c1bf2065a35c3be43 /gcc/recog.c | |
parent | 898df643ab776bbaead668113abbb08b77d5f4a1 (diff) | |
download | gcc-ee5332b81a9cd1dea4c73f596648ae70533f5fe5.zip gcc-ee5332b81a9cd1dea4c73f596648ae70533f5fe5.tar.gz gcc-ee5332b81a9cd1dea4c73f596648ae70533f5fe5.tar.bz2 |
cse.c (fold_rtx): Revert 29 Dec change.
* cse.c (fold_rtx): Revert 29 Dec change.
(cse_insn): Revert 12 Jan change.
* expr.c (expand_builtin): Don't emit CONST around CONSTANT_P_RTX.
* regclass.c (reg_scan_mark_refs): Revert 29 Dec change.
* rtl.def: Likewise.
* rtl.h (CONSTANT_P): Likewise.
* expr.c (emit_move_insn): Never try to flush CONSTANT_P_RTX
to memory.
* recog.c (immediate_operand): Accept CONSTANT_P_RTX.
* alpha.c (input_operand): Likewise.
* c4x.c (const_operand): Likewise.
* explow.c (allocate_dynamic_stack_space): Use register_operand
instead of arith_operand, which does not exist.
* 1750a.h: Fix comment closure.
* a29k.c (a29k_set_memflags): Fix typo in 19 Jan change.
* arc.md (one_cmplsi2_set_cc_insn): Fix set mode mismatch.
* arm.h (TARGET_SWITCHES): Fix typo.
* i370.md (anon mult and div patterns): Fix set mode mismatch.
* i860.c (output_delayed_branch): Fix operands to constrain_operands.
(output_delay_insn): Likewise.
* m88k.md (anon rotate insns): Fix set mode mismatch.
(anon BLKmode moves): Commonize and fix set mode mismatches.
* ns32k.md (udivmoddi[shq]i4_internal): Fix mode mismatch.
* romp.md (movdf): Fix typo.
From-SVN: r24796
Diffstat (limited to 'gcc/recog.c')
-rw-r--r-- | gcc/recog.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/gcc/recog.c b/gcc/recog.c index 6d8db93..db06d04 100644 --- a/gcc/recog.c +++ b/gcc/recog.c @@ -1088,6 +1088,12 @@ immediate_operand (op, mode) && GET_MODE_CLASS (mode) != MODE_PARTIAL_INT) return 0; + /* Accept CONSTANT_P_RTX, since it will be gone by CSE1 and + result in 0/1. It seems a safe assumption that this is + in range for everyone. */ + if (GET_CODE (op) == CONSTANT_P_RTX) + return 1; + return (CONSTANT_P (op) && (GET_MODE (op) == mode || mode == VOIDmode || GET_MODE (op) == VOIDmode) |