diff options
| author | rth <rth@138bc75d-0d04-0410-961f-82ee72b054a4> | 2000-08-29 00:44:21 +0000 |
|---|---|---|
| committer | rth <rth@138bc75d-0d04-0410-961f-82ee72b054a4> | 2000-08-29 00:44:21 +0000 |
| commit | f3653a6424c77c01335e9e8aa3c63d4a62f1f7dc (patch) | |
| tree | d7a7f8b66cdb1d768634a359009e273bb3b645dd /gcc/reload.c | |
| parent | 19f716e5141690248d566ab28cc6d03049d28b46 (diff) | |
| download | ppe42-gcc-f3653a6424c77c01335e9e8aa3c63d4a62f1f7dc.tar.gz ppe42-gcc-f3653a6424c77c01335e9e8aa3c63d4a62f1f7dc.zip | |
* local-alloc.c (requires_inout): Don't use reserved range for
EXTRA_CONSTRAINTS; use anything not matched by REG_CLASS_FROM_LETTER.
* recog.c (asm_operand_ok): Likewise.
(preprocess_constraints, constrain_operands): Likewise.
* regclass.c (record_reg_classes): Likewise.
* reload.c (find_reloads): Likewise.
* reload1.c (maybe_fix_stack_asms): Likewise.
(reload_cse_simplify_operands): Likewise.
* stmt.c (expand_asm_operands): Likewise.
* md.texi: Update constraints documentation.
* tm.texi (EXTRA_CONSTRAINT): Update.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@36023 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/reload.c')
| -rw-r--r-- | gcc/reload.c | 17 |
1 files changed, 7 insertions, 10 deletions
diff --git a/gcc/reload.c b/gcc/reload.c index 4dd36f02ae9..e2eccf6b109 100644 --- a/gcc/reload.c +++ b/gcc/reload.c @@ -3142,21 +3142,18 @@ find_reloads (insn, replace, ind_levels, live_known, reload_reg_p) = (int) reg_class_subunion[this_alternative[i]][(int) GENERAL_REGS]; goto reg; + default: + if (REG_CLASS_FROM_LETTER (c) == NO_REGS) + { #ifdef EXTRA_CONSTRAINT - case 'Q': - case 'R': - case 'S': - case 'T': - case 'U': - if (EXTRA_CONSTRAINT (operand, c)) - win = 1; - break; + if (EXTRA_CONSTRAINT (operand, c)) + win = 1; #endif + break; + } - default: this_alternative[i] = (int) reg_class_subunion[this_alternative[i]][(int) REG_CLASS_FROM_LETTER (c)]; - reg: if (GET_MODE (operand) == BLKmode) break; |

