From: Chung-Lin Tang Date: Fri, 20 Dec 2013 12:53:53 +0000 (+0800) Subject: 2013-12-20 Chung-Lin Tang X-Git-Url: http://git.efficios.com/?a=commitdiff_plain;h=21986715b1e238269e919f7d7c85b134a9e18b17;p=deliverable%2Fbinutils-gdb.git 2013-12-20 Chung-Lin Tang * 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. --- diff --git a/gdb/ChangeLog b/gdb/ChangeLog index d885207b67..2bbf3f917d 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,13 @@ +2013-12-20 Chung-Lin Tang + + * 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 PR gdb/16305 diff --git a/gdb/nios2-linux-tdep.c b/gdb/nios2-linux-tdep.c index fe29e7a726..2051d4566e 100644 --- a/gdb/nios2-linux-tdep.c +++ b/gdb/nios2-linux-tdep.c @@ -93,33 +93,6 @@ nios2_regset_from_core_section (struct gdbarch *gdbarch, return NULL; } -/* 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_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. */ @@ -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; @@ -208,8 +168,6 @@ nios2_linux_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch) set_gdbarch_regset_from_core_section (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);