aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorRichard Kenner <kenner@gcc.gnu.org>1993-02-26 15:12:16 -0500
committerRichard Kenner <kenner@gcc.gnu.org>1993-02-26 15:12:16 -0500
commit5a19ad3f2276161db7045cc6dd1e1f2675300f67 (patch)
tree51120622118b2c1fcaaf39377ed07ac2e853bc2c /gcc
parent17938e578161d566577126aec74a852038899c43 (diff)
downloadgcc-5a19ad3f2276161db7045cc6dd1e1f2675300f67.zip
gcc-5a19ad3f2276161db7045cc6dd1e1f2675300f67.tar.gz
gcc-5a19ad3f2276161db7045cc6dd1e1f2675300f67.tar.bz2
(constrain_operands, case 'r'): If STRICT, a REG isn't valid if it is
a pseudo even if GENERAL_REGS == ALL_REGS. From-SVN: r3542
Diffstat (limited to 'gcc')
-rw-r--r--gcc/recog.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/gcc/recog.c b/gcc/recog.c
index b66cb2c..6c869d9 100644
--- a/gcc/recog.c
+++ b/gcc/recog.c
@@ -1739,7 +1739,8 @@ constrain_operands (insn_code_num, strict)
&& REGNO (op) >= FIRST_PSEUDO_REGISTER)
|| (strict == 0 && GET_CODE (op) == SCRATCH)
|| (GET_CODE (op) == REG
- && (GENERAL_REGS == ALL_REGS
+ && ((GENERAL_REGS == ALL_REGS
+ && REGNO (op) < FIRST_PSEUDO_REGISTER)
|| reg_fits_class_p (op, GENERAL_REGS,
offset, mode))))
win = 1;