diff options
Diffstat (limited to 'gas')
-rw-r--r-- | gas/ChangeLog | 4 | ||||
-rw-r--r-- | gas/config/tc-ia64.c | 19 | ||||
-rw-r--r-- | gas/testsuite/ChangeLog | 6 | ||||
-rw-r--r-- | gas/testsuite/gas/ia64/ia64.exp | 1 | ||||
-rw-r--r-- | gas/testsuite/gas/ia64/radix.l | 4 | ||||
-rw-r--r-- | gas/testsuite/gas/ia64/radix.s | 5 |
6 files changed, 31 insertions, 8 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog index d22323a..a350c8a 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,5 +1,9 @@ 2005-05-25 Jan Beulich <jbeulich@novell.com> + * config/tc-ia64.c (dot_radix): Rewrite. + +2005-05-25 Jan Beulich <jbeulich@novell.com> + * config/tc-ia64.c (struct unw_rec_list): Remove next_slot_number and next_slot_frag. (alloc_record): Remove references to next_slot_number and diff --git a/gas/config/tc-ia64.c b/gas/config/tc-ia64.c index 455c258..ce392b1 100644 --- a/gas/config/tc-ia64.c +++ b/gas/config/tc-ia64.c @@ -3070,17 +3070,20 @@ static void dot_radix (dummy) int dummy ATTRIBUTE_UNUSED; { - int radix; + char *radix; + int ch; SKIP_WHITESPACE (); - radix = *input_line_pointer++; - if (radix != 'C' && !is_end_of_line[(unsigned char) radix]) - { - as_bad ("Radix `%c' unsupported", *input_line_pointer); - ignore_rest_of_line (); - return; - } + if (is_it_end_of_statement ()) + return; + radix = input_line_pointer; + ch = get_symbol_end (); + ia64_canonicalize_symbol_name (radix); + if (strcasecmp (radix, "C")) + as_bad ("Radix `%s' unsupported or invalid", radix); + *input_line_pointer = ch; + demand_empty_rest_of_line (); } /* Helper function for .loc directives. If the assembler is not generating diff --git a/gas/testsuite/ChangeLog b/gas/testsuite/ChangeLog index 14a58c3..84521f8 100644 --- a/gas/testsuite/ChangeLog +++ b/gas/testsuite/ChangeLog @@ -1,5 +1,11 @@ 2005-05-25 Jan Beulich <jbeulich@novell.com> + * gas/ia64/radix.s: New. + * gas/ia64/radix.l: New. + * gas/ia64/ia64.exp: Run new test. + +2005-05-25 Jan Beulich <jbeulich@novell.com> + * gas/i386/intelok.d: Account for 32-bit displacements being shown in hex. diff --git a/gas/testsuite/gas/ia64/ia64.exp b/gas/testsuite/gas/ia64/ia64.exp index dd3e539..6199b24 100644 --- a/gas/testsuite/gas/ia64/ia64.exp +++ b/gas/testsuite/gas/ia64/ia64.exp @@ -82,6 +82,7 @@ if [istarget "ia64-*"] then { run_list_test "no-fit" "" run_list_test "pound" "-al" run_list_test "proc" "-munwind-check=error" + run_list_test "radix" "" run_list_test "slot2" "" run_list_test "unwind-err" "-munwind-check=error" run_dump_test "operand-or" diff --git a/gas/testsuite/gas/ia64/radix.l b/gas/testsuite/gas/ia64/radix.l new file mode 100644 index 0000000..92d9e7c --- /dev/null +++ b/gas/testsuite/gas/ia64/radix.l @@ -0,0 +1,4 @@ +.*: Assembler messages: +.*:1: Error: Radix .a. .*invalid +.*:4: Error: Radix .cc. .*invalid +.*:5: Error: Radix .Z. .*invalid diff --git a/gas/testsuite/gas/ia64/radix.s b/gas/testsuite/gas/ia64/radix.s new file mode 100644 index 0000000..75dcf7b --- /dev/null +++ b/gas/testsuite/gas/ia64/radix.s @@ -0,0 +1,5 @@ + .radix a + .radix c + .radix C# + .radix cc + .radix Z |