gas/
authorJan Beulich <jbeulich@novell.com>
Wed, 25 May 2005 06:59:36 +0000 (06:59 +0000)
committerJan Beulich <jbeulich@novell.com>
Wed, 25 May 2005 06:59:36 +0000 (06:59 +0000)
2005-05-25  Jan Beulich  <jbeulich@novell.com>

* config/tc-ia64.c (dot_radix): Rewrite.

gas/testsuite/
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.

gas/ChangeLog
gas/config/tc-ia64.c
gas/testsuite/ChangeLog
gas/testsuite/gas/ia64/ia64.exp
gas/testsuite/gas/ia64/radix.l [new file with mode: 0644]
gas/testsuite/gas/ia64/radix.s [new file with mode: 0644]

index d22323a23772843a3f2a7a3f3cad353bf092edaf..a350c8a04a50d7dcc6610c4c9e6e846ce00a7d2f 100644 (file)
@@ -1,3 +1,7 @@
+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
index 455c2582c3dccbb14f64d4716f54235f434a758e..ce392b17453a7a75463cac9b543dbd4a1af86e23 100644 (file)
@@ -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
index 14a58c3af22642ca750a9455b092a9279cc4cc9d..84521f84cba1666e21d6fc170068e7583cec007a 100644 (file)
@@ -1,3 +1,9 @@
+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
index dd3e539c24ae5841c3007cd54db73b3bd8f9648f..6199b24c82f4e4f4422e073b675d96fe4d14f6f0 100644 (file)
@@ -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 (file)
index 0000000..92d9e7c
--- /dev/null
@@ -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 (file)
index 0000000..75dcf7b
--- /dev/null
@@ -0,0 +1,5 @@
+       .radix a
+       .radix c
+       .radix C#
+       .radix cc
+       .radix Z