diff options
author | kenner <kenner@138bc75d-0d04-0410-961f-82ee72b054a4> | 1992-05-27 10:21:59 +0000 |
---|---|---|
committer | kenner <kenner@138bc75d-0d04-0410-961f-82ee72b054a4> | 1992-05-27 10:21:59 +0000 |
commit | bb552490bdb5a404659453dad0326006afe2a3d7 (patch) | |
tree | dda5260c22a97cb47b329a993f08548f3a119328 /gcc/recog.c | |
parent | 34ed2989b0d628e04816d57d38f08fd2c9d9fc84 (diff) | |
download | gcc-bb552490bdb5a404659453dad0326006afe2a3d7.tar.gz |
*** empty log message ***
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@1095 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/recog.c')
-rw-r--r-- | gcc/recog.c | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/gcc/recog.c b/gcc/recog.c index 94c4eca74a6..b9c27106398 100644 --- a/gcc/recog.c +++ b/gcc/recog.c @@ -1726,6 +1726,8 @@ constrain_operands (insn_code_num, strict) if (strict < 0 || GENERAL_REGS == ALL_REGS || GET_CODE (op) != REG + || (reload_in_progress + && REGNO (op) >= FIRST_PSEUDO_REGISTER) || reg_fits_class_p (op, GENERAL_REGS, offset, mode)) win = 1; break; @@ -1752,7 +1754,10 @@ constrain_operands (insn_code_num, strict) case 'm': if (GET_CODE (op) == MEM /* Before reload, accept what reload can turn into mem. */ - || (strict < 0 && CONSTANT_P (op))) + || (strict < 0 && CONSTANT_P (op)) + /* During reload, accept a pseudo */ + || (reload_in_progress && GET_CODE (op) == REG + && REGNO (op) >= FIRST_PSEUDO_REGISTER)) win = 1; break; @@ -1845,7 +1850,10 @@ constrain_operands (insn_code_num, strict) || (strict == 0 && offsettable_nonstrict_memref_p (op)) /* Before reload, accept what reload can handle. */ || (strict < 0 - && (CONSTANT_P (op) || GET_CODE (op) == MEM))) + && (CONSTANT_P (op) || GET_CODE (op) == MEM)) + /* During reload, accept a pseudo */ + || (reload_in_progress && GET_CODE (op) == REG + && REGNO (op) >= FIRST_PSEUDO_REGISTER)) win = 1; break; |