summaryrefslogtreecommitdiff
path: root/gcc/local-alloc.c
diff options
context:
space:
mode:
authorrth <rth@138bc75d-0d04-0410-961f-82ee72b054a4>2000-08-29 00:44:21 +0000
committerrth <rth@138bc75d-0d04-0410-961f-82ee72b054a4>2000-08-29 00:44:21 +0000
commitf3653a6424c77c01335e9e8aa3c63d4a62f1f7dc (patch)
treed7a7f8b66cdb1d768634a359009e273bb3b645dd /gcc/local-alloc.c
parent19f716e5141690248d566ab28cc6d03049d28b46 (diff)
downloadgcc-f3653a6424c77c01335e9e8aa3c63d4a62f1f7dc.tar.gz
* 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/local-alloc.c')
-rw-r--r--gcc/local-alloc.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/gcc/local-alloc.c b/gcc/local-alloc.c
index f1ac07cebe7..7e57c82951e 100644
--- a/gcc/local-alloc.c
+++ b/gcc/local-alloc.c
@@ -2210,9 +2210,6 @@ requires_inout (p)
case 's': case 'i': case 'n':
case 'I': case 'J': case 'K': case 'L':
case 'M': case 'N': case 'O': case 'P':
-#ifdef EXTRA_CONSTRAINT
- case 'Q': case 'R': case 'S': case 'T': case 'U':
-#endif
case 'X':
/* These don't say anything we care about. */
break;
@@ -2228,9 +2225,12 @@ requires_inout (p)
found_zero = 1;
break;
+ default:
+ if (REG_CLASS_FROM_LETTER (c) == NO_REGS)
+ break;
+ /* FALLTHRU */
case 'p':
case 'g': case 'r':
- default:
reg_allowed = 1;
break;
}