aboutsummaryrefslogtreecommitdiff
path: root/gcc/reload.c
diff options
context:
space:
mode:
authorRichard Henderson <rth@cygnus.com>2000-08-28 17:44:21 -0700
committerRichard Henderson <rth@gcc.gnu.org>2000-08-28 17:44:21 -0700
commitc2cba7a96e04069011ae508e3027bbf128208040 (patch)
treed7a7f8b66cdb1d768634a359009e273bb3b645dd /gcc/reload.c
parent881c6935bf565020e7955fede0b186232aa30bc7 (diff)
downloadgcc-c2cba7a96e04069011ae508e3027bbf128208040.zip
gcc-c2cba7a96e04069011ae508e3027bbf128208040.tar.gz
gcc-c2cba7a96e04069011ae508e3027bbf128208040.tar.bz2
local-alloc.c (requires_inout): Don't use reserved range for EXTRA_CONSTRAINTS...
* 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. From-SVN: r36023
Diffstat (limited to 'gcc/reload.c')
-rw-r--r--gcc/reload.c17
1 files changed, 7 insertions, 10 deletions
diff --git a/gcc/reload.c b/gcc/reload.c
index 4dd36f0..e2eccf6 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;