aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gas/ChangeLog6
-rw-r--r--gas/config/tc-ia64.c11
2 files changed, 14 insertions, 3 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog
index feab2ee..c84d9b2 100644
--- a/gas/ChangeLog
+++ b/gas/ChangeLog
@@ -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.
diff --git a/gas/config/tc-ia64.c b/gas/config/tc-ia64.c
index 74ee215..13cf19d 100644
--- a/gas/config/tc-ia64.c
+++ b/gas/config/tc-ia64.c
@@ -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 ();