aboutsummaryrefslogtreecommitdiff
path: root/gas/config
diff options
context:
space:
mode:
authorDaniel Jacobowitz <drow@false.org>2006-11-22 17:45:57 +0000
committerDaniel Jacobowitz <drow@false.org>2006-11-22 17:45:57 +0000
commite821645dee843d03841ed5bcf046ffae265b535e (patch)
tree406e47eb2c9d358cde23d19e91f965ed748a8a16 /gas/config
parenta13e2c95aa6a29e5e302edf7fdb51bc17a5a74cb (diff)
downloadgdb-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.c2
-rw-r--r--gas/config/tc-arm.h8
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;