diff options
author | Jan Beulich <jbeulich@novell.com> | 2005-02-02 07:37:36 +0000 |
---|---|---|
committer | Jan Beulich <jbeulich@novell.com> | 2005-02-02 07:37:36 +0000 |
commit | 05ee4b0f76c769a4a385a5ef636fcca7227d5081 (patch) | |
tree | fa867a53565f37e2747104d6d8515a24729909bc /gas/config | |
parent | ec13b3bb1f3ba22763e9ea1b0b1cecd1dbc74652 (diff) | |
download | gdb-05ee4b0f76c769a4a385a5ef636fcca7227d5081.zip gdb-05ee4b0f76c769a4a385a5ef636fcca7227d5081.tar.gz gdb-05ee4b0f76c769a4a385a5ef636fcca7227d5081.tar.bz2 |
gas/
2005-02-02 Jan Beulich <jbeulich@novell.com>
* config/tc-ia64.c (dot_pred_rel): Update comment. Handle @-prefixed
designators along with quoted ones. Free copy of quoted designator
when done.
gas/testsuite/
2005-02-02 Jan Beulich <jbeulich@novell.com>
* gas/ia64/pred-rel.s: New.
* gas/ia64/ia64.exp: Run new test.
Diffstat (limited to 'gas/config')
-rw-r--r-- | gas/config/tc-ia64.c | 47 |
1 files changed, 31 insertions, 16 deletions
diff --git a/gas/config/tc-ia64.c b/gas/config/tc-ia64.c index 250fa77..48ad672 100644 --- a/gas/config/tc-ia64.c +++ b/gas/config/tc-ia64.c @@ -4928,9 +4928,9 @@ print_prmask (mask) } /* - .pred.rel.clear [p1 [,p2 [,...]]] (also .pred.rel "clear") - .pred.rel.imply p1, p2 (also .pred.rel "imply") - .pred.rel.mutex p1, p2 [,...] (also .pred.rel "mutex") + .pred.rel.clear [p1 [,p2 [,...]]] (also .pred.rel "clear" or @clear) + .pred.rel.imply p1, p2 (also .pred.rel "imply" or @imply) + .pred.rel.mutex p1, p2 [,...] (also .pred.rel "mutex" or @mutex) .pred.safe_across_calls p1 [, p2 [,...]] */ @@ -4944,28 +4944,43 @@ dot_pred_rel (type) if (type == 0) { - if (*input_line_pointer != '"') - { - as_bad (_("Missing predicate relation type")); - ignore_rest_of_line (); - return; - } - else + if (*input_line_pointer == '"') { int len; char *form = demand_copy_C_string (&len); + if (strcmp (form, "mutex") == 0) type = 'm'; else if (strcmp (form, "clear") == 0) type = 'c'; else if (strcmp (form, "imply") == 0) type = 'i'; - else - { - as_bad (_("Unrecognized predicate relation type")); - ignore_rest_of_line (); - return; - } + obstack_free (¬es, form); + } + else if (*input_line_pointer == '@') + { + char *form = ++input_line_pointer; + char c = get_symbol_end(); + + if (strcmp (form, "mutex") == 0) + type = 'm'; + else if (strcmp (form, "clear") == 0) + type = 'c'; + else if (strcmp (form, "imply") == 0) + type = 'i'; + *input_line_pointer = c; + } + else + { + as_bad (_("Missing predicate relation type")); + ignore_rest_of_line (); + return; + } + if (type == 0) + { + as_bad (_("Unrecognized predicate relation type")); + ignore_rest_of_line (); + return; } if (*input_line_pointer == ',') ++input_line_pointer; |