Make -meb/-mel options work.
authorJim Wilson <wilson@tuliptree.org>
Fri, 9 Jul 2004 23:21:54 +0000 (23:21 +0000)
committerJim Wilson <wilson@tuliptree.org>
Fri, 9 Jul 2004 23:21:54 +0000 (23:21 +0000)
* config/tc-ia64.c (default_big_endian): New.
(dot_byteorder, md_begin): Use it.
(md_parse_option): Set it.

gas/ChangeLog
gas/config/tc-ia64.c

index feab2ee..c84d9b2 100644 (file)
@@ -1,3 +1,9 @@
+2004-07-09  James E Wilson  <wilson@specifixinc.com>
+
+       * config/tc-ia64.c (default_big_endian): New.
+       (dot_byteorder, md_begin): Use it.
+       (md_parse_option): Set it.
+       
 2004-07-09  Nick Clifton  <nickc@redhat.com>
 
        * configure.in: Change sh-sybmian-elf to sh-*-symbianelf.
index 74ee215..13cf19d 100644 (file)
@@ -153,8 +153,12 @@ struct label_fix
   struct symbol *sym;
 };
 
+/* This is the endianness of the current section.  */
 extern int target_big_endian;
 
+/* This is the default endianness.  */
+static int default_big_endian = TARGET_BYTES_BIG_ENDIAN;
+
 void (*ia64_number_to_chars) PARAMS ((char *, valueT, int));
 
 static void ia64_float_to_chars_bigendian
@@ -4406,8 +4410,7 @@ dot_byteorder (byteorder)
   if (byteorder == -1)
     {
       if (seginfo->tc_segment_info_data.endian == 0)
-       seginfo->tc_segment_info_data.endian
-         = TARGET_BYTES_BIG_ENDIAN ? 1 : 2;
+       seginfo->tc_segment_info_data.endian = default_big_endian ? 1 : 2;
       byteorder = seginfo->tc_segment_info_data.endian == 1;
     }
   else
@@ -6528,10 +6531,12 @@ md_parse_option (c, arg)
       else if (strcmp (arg, "le") == 0)
        {
          md.flags &= ~EF_IA_64_BE;
+         default_big_endian = 0;
        }
       else if (strcmp (arg, "be") == 0)
        {
          md.flags |= EF_IA_64_BE;
+         default_big_endian = 1;
        }
       else
        return 0;
@@ -6704,7 +6709,7 @@ md_begin ()
 
   /* Make sure function pointers get initialized.  */
   target_big_endian = -1;
-  dot_byteorder (TARGET_BYTES_BIG_ENDIAN);
+  dot_byteorder (default_big_endian);
 
   alias_hash = hash_new ();
   alias_name_hash = hash_new ();