summaryrefslogtreecommitdiff
path: root/gdb/cris-tdep.c
diff options
context:
space:
mode:
authorRicard Wanderlof <ricard@sourceware.org>2013-09-06 10:50:10 +0000
committerRicard Wanderlof <ricard@sourceware.org>2013-09-06 10:50:10 +0000
commit749c8b38fa890781f09f237e0ac2c4b00b666557 (patch)
treea43bf731d8ab9608c5306b93444217eade74c7bc /gdb/cris-tdep.c
parent43df09d9373b3e235948e67093ad93f417e3b02b (diff)
downloadbinutils-gdb-749c8b38fa890781f09f237e0ac2c4b00b666557.tar.gz
Extract Linux-specific portitions of cris-tdep.c to a new file.
This brings in some standard functionality hitherdo missing from the CRIS/CRISv32 port thanks to the new call to gdbarch_init_osabi, as well as clearly showing that there is Linux support for this platform by virtue of the existence of a cris-linux-tdep.c file. 2013-09-06 Ricard Wanderlof <ricardw@axis.com> * Makefile.in (ALL_TARGET_OBS): Add cris-linux-tdep.o. * configure.tgt: Add cris-linux-tdep.o and linux-tdep.o to gdb_target_obs for cris target. * cris-tdep.c (struct gdbarch_tdep): Move to cris-tdep.h. (cris_gdbarch_init): Move calls to set_gdbarch_fetch_tls_load_module_address and set_solib_svr4_fetch_link_map_offsets to cris-linux-tdep.c. Add call to gdbarch_init_osabi. * cris-linux-tdep.c: New file. * cris-tdep.h: New file.
Diffstat (limited to 'gdb/cris-tdep.c')
-rw-r--r--gdb/cris-tdep.c22
1 files changed, 6 insertions, 16 deletions
diff --git a/gdb/cris-tdep.c b/gdb/cris-tdep.c
index ef2746d7d1f..8ba16770d09 100644
--- a/gdb/cris-tdep.c
+++ b/gdb/cris-tdep.c
@@ -34,6 +34,7 @@
#include "target.h"
#include "value.h"
#include "opcode/cris.h"
+#include "osabi.h"
#include "arch-utils.h"
#include "regcache.h"
#include "gdb_assert.h"
@@ -45,6 +46,8 @@
#include "gdb_string.h"
#include "dis-asm.h"
+#include "cris-tdep.h"
+
enum cris_num_regs
{
/* There are no floating point registers. Used in gdbserver low-linux.c. */
@@ -164,14 +167,6 @@ static const char *usr_cmd_cris_mode = cris_mode_normal;
/* Whether to make use of Dwarf-2 CFI (default on). */
static int usr_cmd_cris_dwarf2_cfi = 1;
-/* CRIS architecture specific information. */
-struct gdbarch_tdep
-{
- unsigned int cris_version;
- const char *cris_mode;
- int cris_dwarf2_cfi;
-};
-
/* Sigtramp identification code copied from i386-linux-tdep.c. */
#define SIGTRAMP_INSN0 0x9c5f /* movu.w 0xXX, $r9 */
@@ -4137,11 +4132,6 @@ cris_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
set_gdbarch_single_step_through_delay
(gdbarch, crisv32_single_step_through_delay);
- /* FIXME: Ricard W/2013-09-03: Linux-specific stuff like this
- should really go in (a new) cris-linux-tdep.c. */
- set_gdbarch_fetch_tls_load_module_address (gdbarch,
- svr4_fetch_objfile_link_map);
-
break;
default:
@@ -4181,9 +4171,9 @@ cris_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
frame_unwind_append_unwinder (gdbarch, &cris_frame_unwind);
frame_base_set_default (gdbarch, &cris_frame_base);
- set_solib_svr4_fetch_link_map_offsets
- (gdbarch, svr4_ilp32_fetch_link_map_offsets);
-
+ /* Hook in ABI-specific overrides, if they have been registered. */
+ gdbarch_init_osabi (info, gdbarch);
+
/* FIXME: cagney/2003-08-27: It should be possible to select a CRIS
disassembler, even when there is no BFD. Does something like
"gdb; target remote; disassmeble *0x123" work? */