aboutsummaryrefslogtreecommitdiff
path: root/gas/config
diff options
context:
space:
mode:
authorJan Beulich <jbeulich@novell.com>2005-02-02 07:37:36 +0000
committerJan Beulich <jbeulich@novell.com>2005-02-02 07:37:36 +0000
commit05ee4b0f76c769a4a385a5ef636fcca7227d5081 (patch)
treefa867a53565f37e2747104d6d8515a24729909bc /gas/config
parentec13b3bb1f3ba22763e9ea1b0b1cecd1dbc74652 (diff)
downloadgdb-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.c47
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 (&notes, 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;