From 10a9829174397471ff95856c94aac352190ca7b9 Mon Sep 17 00:00:00 2001 From: "H.J. Lu" Date: Thu, 1 May 2003 01:00:30 +0000 Subject: gas/ 2003-04-30 H.J. Lu * config/tc-ia64.c (ia64_number_to_chars): New function pointer. (ia64_float_to_chars): Likewise. (dot_byteorder): Set target_big_endian, ia64_number_to_chars and ia64_float_to_chars by tc_segment_info_data.endian from the current segment if byteorder == -1. (md_begin): Call dot_byteorder to set target_big_endian. (md_atof): Call ia64_float_to_chars to convert floating point. (ia64_float_to_chars_bigendian): New function. (ia64_float_to_chars_littleendian): Likewise. (ia64_elf_section_change_hook): Likewise. * config/tc-ia64.h (ia64_number_to_chars): New. (md_number_to_chars): Changed to (*ia64_number_to_chars) (ia64_elf_section_change_hook): New. (md_elf_section_change_hook): Defined. (ia64_segment_info_type): New struct. (TC_SEGMENT_INFO_TYPE): Defined. gas/testsuite/ 2003-04-30 H.J. Lu * gas/ia64/ia64.exp: Add order. * gas/ia64/order.s: New file. * gas/ia64/order.d: Likewise. --- gas/config/tc-ia64.h | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) (limited to 'gas/config/tc-ia64.h') diff --git a/gas/config/tc-ia64.h b/gas/config/tc-ia64.h index 37124ce..e0c8171 100644 --- a/gas/config/tc-ia64.h +++ b/gas/config/tc-ia64.h @@ -26,15 +26,28 @@ /* Linux is little endian by default. HPUX is big endian by default. */ #ifdef TE_HPUX -#define md_number_to_chars number_to_chars_bigendian #define TARGET_BYTES_BIG_ENDIAN 1 #define MD_FLAGS_DEFAULT EF_IA_64_BE #else -#define md_number_to_chars number_to_chars_littleendian #define TARGET_BYTES_BIG_ENDIAN 0 #define MD_FLAGS_DEFAULT EF_IA_64_ABI64 #endif /* TE_HPUX */ +extern void (*ia64_number_to_chars) PARAMS ((char *, valueT, int)); +#define md_number_to_chars (*ia64_number_to_chars) + +extern void ia64_elf_section_change_hook PARAMS ((void)); +#define md_elf_section_change_hook ia64_elf_section_change_hook + +/* We record the endian for this section. 0 means default, 1 means + big endian and 2 means little endian. */ +struct ia64_segment_info_type +{ + unsigned int endian : 2; +}; + +#define TC_SEGMENT_INFO_TYPE struct ia64_segment_info_type + /* We need to set the default object file format in ia64_init and not in md_begin. This is because parse_args is called before md_begin, and we do not want md_begin to wipe out the flag settings set by options parsed in -- cgit v1.1