diff options
-rw-r--r-- | gdb/ChangeLog | 10 | ||||
-rw-r--r-- | gdb/nios2-linux-tdep.c | 46 |
2 files changed, 12 insertions, 44 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog index d885207..2bbf3f9 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,13 @@ +2013-12-20 Chung-Lin Tang <cltang@codesourcery.com> + + * nios2-linux-tdep.c (nios2_linux_sigreturn_init): Remove. + (nios2_linux_sigreturn_tramp_frame): Remove. + (nios2_linux_rt_sigreturn_tramp_frame): Update rt_sigreturn syscall + number. + (nios2_linux_syscall_next_pc): Likewise. Remove sigreturn case. + (nios2_linux_init_abi): Remove registration of + nios2_linux_sigreturn_tramp_frame. + 2013-12-19 H.J. Lu <hongjiu.lu@intel.com> PR gdb/16305 diff --git a/gdb/nios2-linux-tdep.c b/gdb/nios2-linux-tdep.c index fe29e7a..2051d45 100644 --- a/gdb/nios2-linux-tdep.c +++ b/gdb/nios2-linux-tdep.c @@ -97,33 +97,6 @@ nios2_regset_from_core_section (struct gdbarch *gdbarch, FUNC is the address of the instruction TRAMP[0] in memory. */ static void -nios2_linux_sigreturn_init (const struct tramp_frame *self, - struct frame_info *next_frame, - struct trad_frame_cache *this_cache, - CORE_ADDR func) -{ - CORE_ADDR base = func + 16; - int i; - - for (i = 0; i < 8; i++) - trad_frame_set_reg_addr (this_cache, i + 8, base + i * 4); - for (i = 0; i < 7; i++) - trad_frame_set_reg_addr (this_cache, i + 1, base + (i + 8) * 4); - trad_frame_set_reg_addr (this_cache, NIOS2_RA_REGNUM, base + 16 * 4); - trad_frame_set_reg_addr (this_cache, NIOS2_FP_REGNUM, base + 17 * 4); - trad_frame_set_reg_addr (this_cache, NIOS2_SP_REGNUM, base + 18 * 4); - trad_frame_set_reg_addr (this_cache, NIOS2_GP_REGNUM, base + 19 * 4); - trad_frame_set_reg_addr (this_cache, NIOS2_ESTATUS_REGNUM, base + 20 * 4); - trad_frame_set_reg_addr (this_cache, NIOS2_PC_REGNUM, base + 21 * 4); - - /* Save a frame ID. */ - trad_frame_set_id (this_cache, frame_id_build (base, func)); -} - -/* Initialize a trad-frame cache corresponding to the tramp-frame. - FUNC is the address of the instruction TRAMP[0] in memory. */ - -static void nios2_linux_rt_sigreturn_init (const struct tramp_frame *self, struct frame_info *next_frame, struct trad_frame_cache *this_cache, @@ -144,24 +117,12 @@ nios2_linux_rt_sigreturn_init (const struct tramp_frame *self, trad_frame_set_id (this_cache, frame_id_build (base, func)); } -static struct tramp_frame nios2_linux_sigreturn_tramp_frame = -{ - SIGTRAMP_FRAME, - 4, - { - { 0x00800004 | (119 << 6), -1 }, /* movi r2,__NR_sigreturn */ - { 0x003b683a, -1 }, /* trap */ - { TRAMP_SENTINEL_INSN } - }, - nios2_linux_sigreturn_init -}; - static struct tramp_frame nios2_linux_rt_sigreturn_tramp_frame = { SIGTRAMP_FRAME, 4, { - { 0x00800004 | (173 << 6), -1 }, /* movi r2,__NR_rt_sigreturn */ + { 0x00800004 | (139 << 6), -1 }, /* movi r2,__NR_rt_sigreturn */ { 0x003b683a, -1 }, /* trap */ { TRAMP_SENTINEL_INSN } }, @@ -179,8 +140,7 @@ nios2_linux_syscall_next_pc (struct frame_info *frame) /* If we are about to make a sigreturn syscall, use the unwinder to decode the signal frame. */ - if (syscall_nr == 119 /* sigreturn */ - || syscall_nr == 173 /* rt_sigreturn */) + if (syscall_nr == 139 /* rt_sigreturn */) return frame_unwind_caller_pc (frame); return pc + NIOS2_OPCODE_SIZE; @@ -209,8 +169,6 @@ nios2_linux_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch) nios2_regset_from_core_section); /* Linux signal frame unwinders. */ tramp_frame_prepend_unwinder (gdbarch, - &nios2_linux_sigreturn_tramp_frame); - tramp_frame_prepend_unwinder (gdbarch, &nios2_linux_rt_sigreturn_tramp_frame); tdep->syscall_next_pc = nios2_linux_syscall_next_pc; |