From 549f748d67130775c5e5929f0744451471fd5d19 Mon Sep 17 00:00:00 2001 From: Jim Wilson Date: Fri, 9 Jul 2004 23:21:54 +0000 Subject: [PATCH] Make -meb/-mel options work. * config/tc-ia64.c (default_big_endian): New. (dot_byteorder, md_begin): Use it. (md_parse_option): Set it. --- gas/ChangeLog | 6 ++++++ gas/config/tc-ia64.c | 11 ++++++++--- 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/gas/ChangeLog b/gas/ChangeLog index feab2ee3bd..c84d9b28ed 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,3 +1,9 @@ +2004-07-09 James E Wilson + + * config/tc-ia64.c (default_big_endian): New. + (dot_byteorder, md_begin): Use it. + (md_parse_option): Set it. + 2004-07-09 Nick Clifton * configure.in: Change sh-sybmian-elf to sh-*-symbianelf. diff --git a/gas/config/tc-ia64.c b/gas/config/tc-ia64.c index 74ee215125..13cf19dbb6 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 ();