diff options
Diffstat (limited to 'gdb/i386obsd-tdep.c')
-rw-r--r-- | gdb/i386obsd-tdep.c | 25 |
1 files changed, 21 insertions, 4 deletions
diff --git a/gdb/i386obsd-tdep.c b/gdb/i386obsd-tdep.c index be0c674493b..7db076d3a3e 100644 --- a/gdb/i386obsd-tdep.c +++ b/gdb/i386obsd-tdep.c @@ -83,8 +83,25 @@ CORE_ADDR i386obsd_sigtramp_start = 0xbfbfdf20; CORE_ADDR i386obsd_sigtramp_end = 0xbfbfdff0; /* From <machine/signal.h>. */ -int i386obsd_sc_pc_offset = 44; -int i386obsd_sc_sp_offset = 56; +int i386obsd_sc_reg_offset[I386_NUM_GREGS] = +{ + 10 * 4, /* %eax */ + 9 * 4, /* %ecx */ + 8 * 4, /* %edx */ + 7 * 4, /* %ebx */ + 14 * 4, /* %esp */ + 6 * 4, /* %ebp */ + 5 * 4, /* %esi */ + 4 * 4, /* %edi */ + 11 * 4, /* %eip */ + 13 * 4, /* %eflags */ + 12 * 4, /* %cs */ + 15 * 4, /* %ss */ + 3 * 4, /* %ds */ + 2 * 4, /* %es */ + 1 * 4, /* %fs */ + 0 * 4 /* %gs */ +}; static void i386obsd_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch) @@ -103,8 +120,8 @@ i386obsd_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch) /* OpenBSD has a `struct sigcontext' that's different from the origional 4.3 BSD. */ - tdep->sc_pc_offset = i386obsd_sc_pc_offset; - tdep->sc_sp_offset = i386obsd_sc_sp_offset; + tdep->sc_reg_offset = i386obsd_sc_reg_offset; + tdep->sc_num_regs = I386_NUM_GREGS; } void |