aboutsummaryrefslogtreecommitdiff
path: root/gdb/arch-utils.c
diff options
context:
space:
mode:
authorStan Shebs <shebs@codesourcery.com>2008-08-11 19:00:25 +0000
committerStan Shebs <shebs@codesourcery.com>2008-08-11 19:00:25 +0000
commit9d4fde7506bd543f837946511c7adf055148ff23 (patch)
treeaadbf5e5a3f675f7d25a6ff8ac9ce7e08c9deb13 /gdb/arch-utils.c
parent90aecf7a80c1cefeb45fc10a6cd02c8338e34b4c (diff)
downloadgdb-9d4fde7506bd543f837946511c7adf055148ff23.zip
gdb-9d4fde7506bd543f837946511c7adf055148ff23.tar.gz
gdb-9d4fde7506bd543f837946511c7adf055148ff23.tar.bz2
ARM BE8 support.
* disasm.c (gdb_disassemble_info): Set endian_code. * gdbarch.sh (gdbarch_info): New field byte_order_for_code. * gdbarch.h, gdbarch.c: Regenerate. * arch-utils.c (initialize_current_architecture): Set the default byte_order_for_code. (gdbarch_info_init): Ditto. (gdbarch_info_fill): Ditto. * arm-tdep.c (SWAP_INT, SWAP_SHORT): New macros. (thumb_analyze_prologue): Swap halfword if code endianness is different from general endianness. (arm_skip_prologue): Similarly. (arm_scan_prologue): Ditto. (thumb_get_next_pc): Ditto. (arm_get_next_pc): Ditto. (arm_gdbarch_init): Set byte_order_for_code from BE8 flag, choose correct endianness for breakpoints.
Diffstat (limited to 'gdb/arch-utils.c')
-rw-r--r--gdb/arch-utils.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/gdb/arch-utils.c b/gdb/arch-utils.c
index 259d1e3..a2fd7b6 100644
--- a/gdb/arch-utils.c
+++ b/gdb/arch-utils.c
@@ -629,6 +629,7 @@ initialize_current_architecture (void)
}
info.byte_order = default_byte_order;
+ info.byte_order_for_code = info.byte_order;
if (! gdbarch_update_p (info))
internal_error (__FILE__, __LINE__,
@@ -667,6 +668,7 @@ gdbarch_info_init (struct gdbarch_info *info)
{
memset (info, 0, sizeof (struct gdbarch_info));
info->byte_order = BFD_ENDIAN_UNKNOWN;
+ info->byte_order_for_code = info->byte_order;
info->osabi = GDB_OSABI_UNINITIALIZED;
}
@@ -708,6 +710,7 @@ gdbarch_info_fill (struct gdbarch_info *info)
/* From the default. */
if (info->byte_order == BFD_ENDIAN_UNKNOWN)
info->byte_order = default_byte_order;
+ info->byte_order_for_code = info->byte_order;
/* "(gdb) set osabi ...". Handled by gdbarch_lookup_osabi. */
if (info->osabi == GDB_OSABI_UNINITIALIZED)