diff options
author | rth <rth@138bc75d-0d04-0410-961f-82ee72b054a4> | 2001-10-11 07:07:30 +0000 |
---|---|---|
committer | rth <rth@138bc75d-0d04-0410-961f-82ee72b054a4> | 2001-10-11 07:07:30 +0000 |
commit | 2c7f203c73818b36bcf6d49d7c0b429eab5a7ff9 (patch) | |
tree | 65279fa1cd98240f2ba4d2902ef69c88fa458bd8 /gcc/reload.c | |
parent | d0cf8d386017196fb866c5bccab1640e0f9f876d (diff) | |
download | gcc-2c7f203c73818b36bcf6d49d7c0b429eab5a7ff9.tar.gz |
* c-parse.in (asm_operand): Allow named operands.
* genconfig.c (max_recog_operands): Set to 29.
* local-alloc.c (requires_inout): Skip multiple digits.
* recog.c (asm_operand_ok): Likewise.
(preprocess_constraints): Use strtoul for matching constraints.
(constrain_operands): Likewise.
* regmove.c (find_matches): Likewise.
* reload.c (find_reloads): Likewise.
* stmt.c (parse_output_constraint): Don't reject in-out
constraint on operands > 9. Reject '[' in constraint.
(expand_asm_operands): Handle named operands. Use strtoul
for matching constraints.
(check_operand_nalternatives): Split out from expand_asm_operands.
(check_unique_operand_names): New.
(resolve_operand_names, resolve_operand_name_1): New.
* doc/extend.texi (Extended Asm): Document named operands.
* doc/md.texi (Simple Constraints): Document matching constraints
on operands > 9.
* parse.y (asm_operand): Allow named operands.
* semantics.c (finish_asm_stmt): Tweek for changed location
of the operand constrant.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@46179 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/reload.c')
-rw-r--r-- | gcc/reload.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/gcc/reload.c b/gcc/reload.c index 613d6c7e2c7..8b01ce25403 100644 --- a/gcc/reload.c +++ b/gcc/reload.c @@ -2551,7 +2551,8 @@ find_reloads (insn, replace, ind_levels, live_known, reload_reg_p) } else if (c >= '0' && c <= '9') { - c -= '0'; + c = strtoul (p - 1, &p, 10); + operands_match[c][i] = operands_match_p (recog_data.operand[c], recog_data.operand[i]); @@ -2939,8 +2940,8 @@ find_reloads (insn, replace, ind_levels, live_known, reload_reg_p) case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9': + c = strtoul (p - 1, &p, 10); - c -= '0'; this_alternative_matches[i] = c; /* We are supposed to match a previous operand. If we do, we win if that one did. |