summaryrefslogtreecommitdiff
path: root/gdb/i386-darwin-nat.c
diff options
context:
space:
mode:
authorTristan Gingold <gingold@adacore.com>2009-07-03 12:06:30 +0000
committerTristan Gingold <gingold@adacore.com>2009-07-03 12:06:30 +0000
commita83aa1df1fb83a96e16aaa4ff9657dd45895c984 (patch)
tree5127c322ab449da51083044999392c05581096fb /gdb/i386-darwin-nat.c
parent65f45addbbd501da884f6d099b7b7c07f5e2344f (diff)
downloadgdb-a83aa1df1fb83a96e16aaa4ff9657dd45895c984.tar.gz
2009-06-29 Tristan Gingold <gingold@adacore.com>
* i386-darwin-tdep.c (amd64_darwin_thread_state_reg_offset) (amd64_darwin_thread_state_num_regs) (amd64_darwin_sigcontext_addr, x86_darwin_init_abi_64): Moved to amd64-darwin-tdep.c (_initialize_i386_darwin_tdep): Remove 64 bits parts. (darwin_dwarf_signal_frame_p): Make public. * amd64-darwin-tdep.c: New file with most chunks from i386-darwin-tdep.c * i386-darwin-tdep.h: Add a prototype for darwin_dwarf_signal_frame_p. (amd64_darwin_thread_state_reg_offset) (amd64_darwin_thread_state_num_regs): Moved to amd64-darwin-tdep.h * amd64-darwin-tdep.h: New file. * i386-darwin-nat.c: Only includes amd64-nat.h and amd64-darwin-tdep.h if BFD64 is defined. (i386_darwin_fetch_inferior_registers): Add #ifdef BFD64/#endif around 64 bits parts. (i386_darwin_store_inferior_registers): Ditto. (darwin_set_sstep): Ditto. (darwin_complete_target): Ditto. (amd64_darwin_sstep_at_sigreturn): Ditto. * configure.tgt: Create a separate entry for x86_64-*-darwin. Add 64 bits support for i386-*-darwin if --enable-64-bit-bfd. * Makefile.in (ALLDEPFILES): Add amd64-darwin-tdep.c, darwin-nat.c, i386-darwin-tdep.c i386-darwin-nat.c (ALL_64_TARGET_OBS): Add amd64-darwin-tdep.o
Diffstat (limited to 'gdb/i386-darwin-nat.c')
-rw-r--r--gdb/i386-darwin-nat.c16
1 files changed, 15 insertions, 1 deletions
diff --git a/gdb/i386-darwin-nat.c b/gdb/i386-darwin-nat.c
index df029bcfa02..328372357a9 100644
--- a/gdb/i386-darwin-nat.c
+++ b/gdb/i386-darwin-nat.c
@@ -30,7 +30,6 @@
#include "regcache.h"
#include "gdb_assert.h"
#include "i386-tdep.h"
-#include "amd64-nat.h"
#include "i387-tdep.h"
#include "gdbarch.h"
#include "arch-utils.h"
@@ -39,6 +38,11 @@
#include "darwin-nat.h"
#include "i386-darwin-tdep.h"
+#ifdef BFD64
+#include "amd64-nat.h"
+#include "amd64-darwin-tdep.h"
+#endif
+
/* Read register values from the inferior process.
If REGNO is -1, do this for all registers.
Otherwise, REGNO specifies which register (so we can save time). */
@@ -50,6 +54,7 @@ i386_darwin_fetch_inferior_registers (struct target_ops *ops,
int fetched = 0;
struct gdbarch *gdbarch = get_regcache_arch (regcache);
+#ifdef BFD64
if (gdbarch_ptr_bit (gdbarch) == 64)
{
if (regno == -1 || amd64_native_gregset_supplies_p (gdbarch, regno))
@@ -89,6 +94,7 @@ i386_darwin_fetch_inferior_registers (struct target_ops *ops,
}
}
else
+#endif
{
if (regno == -1 || regno < I386_NUM_GREGS)
{
@@ -151,6 +157,7 @@ i386_darwin_store_inferior_registers (struct target_ops *ops,
thread_t current_thread = ptid_get_tid (inferior_ptid);
struct gdbarch *gdbarch = get_regcache_arch (regcache);
+#ifdef BFD64
if (gdbarch_ptr_bit (gdbarch) == 64)
{
if (regno == -1 || amd64_native_gregset_supplies_p (gdbarch, regno))
@@ -196,6 +203,7 @@ i386_darwin_store_inferior_registers (struct target_ops *ops,
}
}
else
+#endif
{
if (regno == -1 || regno < I386_NUM_GREGS)
{
@@ -475,6 +483,7 @@ i386_darwin_sstep_at_sigreturn (x86_thread_state_t *regs)
return 0;
}
+#ifdef BFD64
static int
amd64_darwin_sstep_at_sigreturn (x86_thread_state_t *regs)
{
@@ -504,6 +513,7 @@ amd64_darwin_sstep_at_sigreturn (x86_thread_state_t *regs)
}
return 0;
}
+#endif
void
darwin_set_sstep (thread_t thread, int enable)
@@ -537,6 +547,7 @@ darwin_set_sstep (thread_t thread, int enable)
MACH_CHECK_ERROR (kret);
}
break;
+#ifdef BFD64
case x86_THREAD_STATE64:
{
__uint64_t bit = enable ? X86_EFLAGS_T : 0;
@@ -551,6 +562,7 @@ darwin_set_sstep (thread_t thread, int enable)
MACH_CHECK_ERROR (kret);
}
break;
+#endif
default:
error (_("darwin_set_sstep: unknown flavour: %d\n"), regs.tsh.flavor);
}
@@ -559,10 +571,12 @@ darwin_set_sstep (thread_t thread, int enable)
void
darwin_complete_target (struct target_ops *target)
{
+#ifdef BFD64
amd64_native_gregset64_reg_offset = amd64_darwin_thread_state_reg_offset;
amd64_native_gregset64_num_regs = amd64_darwin_thread_state_num_regs;
amd64_native_gregset32_reg_offset = i386_darwin_thread_state_reg_offset;
amd64_native_gregset32_num_regs = i386_darwin_thread_state_num_regs;
+#endif
target->to_fetch_registers = i386_darwin_fetch_inferior_registers;
target->to_store_registers = i386_darwin_store_inferior_registers;