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.
This commit is contained in:
Jan Beulich 2005-02-02 07:37:36 +00:00
parent ec13b3bb1f
commit 05ee4b0f76
5 changed files with 64 additions and 16 deletions

View file

@ -1,3 +1,9 @@
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.
2005-02-01 Ben Elliston <bje@au.ibm.com>
* config/atof-ieee.c, config/obj-coff.c, config/obj-elf.c,

View file

@ -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;

View file

@ -1,3 +1,8 @@
2005-02-02 Jan Beulich <jbeulich@novell.com>
* gas/ia64/pred-rel.s: New.
* gas/ia64/ia64.exp: Run new test.
2005-01-31 Daniel Jacobowitz <dan@codesourcery.com>
* gas/mips/elf-rel23.d, gas/mips/elf-rel23a.d: Accept little-endian.

View file

@ -37,6 +37,7 @@ if [istarget "ia64-*"] then {
run_dump_test "dv-branch"
run_dump_test "dv-imply"
run_dump_test "dv-mutex"
gas_test "pred-rel.s" "" "" ".pred.rel alternative forms"
run_dump_test "dv-safe"
run_dump_test "dv-srlz"
run_dump_test "tls"

View file

@ -0,0 +1,21 @@
// Make sure all forms of .pred.rel are accepted
_start:
.pred.rel "mutex", p1, p2
.pred.rel "imply", p2, p3
.pred.rel "clear", p1, p2, p3
.pred.rel "mutex" p1, p2
.pred.rel "imply" p2, p3
.pred.rel "clear" p1, p2, p3
.pred.rel.mutex p1, p2
.pred.rel.imply p2, p3
.pred.rel.clear p1, p2, p3
.pred.rel @mutex, p1, p2
.pred.rel @imply, p2, p3
.pred.rel @clear, p1, p2, p3
.pred.rel @mutex p1, p2
.pred.rel @imply p2, p3
.pred.rel @clear p1, p2, p3