diff options
author | Daniel Jacobowitz <drow@false.org> | 2006-11-22 17:45:57 +0000 |
---|---|---|
committer | Daniel Jacobowitz <drow@false.org> | 2006-11-22 17:45:57 +0000 |
commit | e821645dee843d03841ed5bcf046ffae265b535e (patch) | |
tree | 406e47eb2c9d358cde23d19e91f965ed748a8a16 /gas/config | |
parent | a13e2c95aa6a29e5e302edf7fdb51bc17a5a74cb (diff) | |
download | gdb-e821645dee843d03841ed5bcf046ffae265b535e.zip gdb-e821645dee843d03841ed5bcf046ffae265b535e.tar.gz gdb-e821645dee843d03841ed5bcf046ffae265b535e.tar.bz2 |
opcodes/
* arm-dis.c (last_is_thumb): Delete.
(enum map_type, last_type): New.
(print_insn_data): New.
(get_sym_code_type): Take MAP_TYPE argument. Check the type of
the right symbol. Handle $d.
(print_insn): Check for mapping symbols even without a normal
symbol. Adjust searching. If $d is found see how much data
to print. Handle data.
gas/
* config/tc-arm.h (md_cons_align): Define.
(mapping_state): New prototype.
* config/tc-arm.c (mapping_state): Make global.
gas/testsuite/
* gas/arm/arm7t.d, gas/arm/neon-ldst-rm.d, gas/arm/thumb2_pool.d,
gas/arm/tls.d: Update for $d support.
* gas/arm/mapshort.d, gas/arm/mapshort.s: New test.
* gas/elf/section2.e-armeabi: Update.
* gas/elf/section2.e-armelf: New file.
* gas/elf/elf.exp: Use it.
ld/testsuite/
* ld-arm/mixed-app.d, ld-arm/tls-app.d, ld-arm/tls-lib.d: Update
for $d support.
Diffstat (limited to 'gas/config')
-rw-r--r-- | gas/config/tc-arm.c | 2 | ||||
-rw-r--r-- | gas/config/tc-arm.h | 8 |
2 files changed, 9 insertions, 1 deletions
diff --git a/gas/config/tc-arm.c b/gas/config/tc-arm.c index dcc8e80..f7a3e74 100644 --- a/gas/config/tc-arm.c +++ b/gas/config/tc-arm.c @@ -2282,7 +2282,7 @@ s_unreq (int a ATTRIBUTE_UNUSED) static enum mstate mapstate = MAP_UNDEFINED; -static void +void mapping_state (enum mstate state) { symbolS * symbolP; diff --git a/gas/config/tc-arm.h b/gas/config/tc-arm.h index 64ebb51..56ceec4 100644 --- a/gas/config/tc-arm.h +++ b/gas/config/tc-arm.h @@ -192,6 +192,12 @@ extern void arm_md_end (void); # define GLOBAL_OFFSET_TABLE_NAME "_GLOBAL_OFFSET_TABLE_" # define TC_SEGMENT_INFO_TYPE struct arm_segment_info_type +/* This is not really an alignment operation, but it's something we + need to do at the same time: whenever we are figuring out the + alignment for data, we should check whether a $d symbol is + necessary. */ +# define md_cons_align(nbytes) mapping_state (MAP_DATA) + enum mstate { MAP_UNDEFINED = 0, /* Must be zero, for seginfo in new sections. */ @@ -200,6 +206,8 @@ enum mstate MAP_THUMB }; +void mapping_state (enum mstate); + struct arm_segment_info_type { enum mstate mapstate; |