summaryrefslogtreecommitdiff
path: root/gcc/reload.c
diff options
context:
space:
mode:
authorrth <rth@138bc75d-0d04-0410-961f-82ee72b054a4>2001-10-11 07:07:30 +0000
committerrth <rth@138bc75d-0d04-0410-961f-82ee72b054a4>2001-10-11 07:07:30 +0000
commit2c7f203c73818b36bcf6d49d7c0b429eab5a7ff9 (patch)
tree65279fa1cd98240f2ba4d2902ef69c88fa458bd8 /gcc/reload.c
parentd0cf8d386017196fb866c5bccab1640e0f9f876d (diff)
downloadgcc-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.c5
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.