X-Git-Url: http://drtracing.org/?a=blobdiff_plain;f=gdb%2Fsparc64-sol2-tdep.c;h=2c3026181146e0f0595defd3d9cfcadd1af77232;hb=2117c711ae07700adb57ea5b5ca61e4c32d7e3d2;hp=edcea4e0caab05aae6f3143dd803df25c1a37e42;hpb=236369e7e776877959af5263b5e7a21bcce5e0d3;p=deliverable%2Fbinutils-gdb.git diff --git a/gdb/sparc64-sol2-tdep.c b/gdb/sparc64-sol2-tdep.c index edcea4e0ca..2c30261811 100644 --- a/gdb/sparc64-sol2-tdep.c +++ b/gdb/sparc64-sol2-tdep.c @@ -1,6 +1,6 @@ /* Target-dependent code for Solaris UltraSPARC. - Copyright (C) 2003, 2004, 2006, 2007, 2008 Free Software Foundation, Inc. + Copyright (C) 2003-2014 Free Software Foundation, Inc. This file is part of GDB. @@ -45,6 +45,12 @@ const struct sparc_gregset sparc64_sol2_gregset = 16 * 8, /* %l0 */ 8 /* sizeof (%y) */ }; + +const struct sparc_fpregset sparc64_sol2_fpregset = +{ + 0 * 8, /* %f0 */ + 33 * 8, /* %fsr */ +}; static struct sparc_frame_cache * @@ -66,7 +72,8 @@ sparc64_sol2_sigtramp_frame_cache (struct frame_info *this_frame, /* The third argument is a pointer to an instance of `ucontext_t', which has a member `uc_mcontext' that contains the saved registers. */ - regnum = (cache->frameless_p ? SPARC_O2_REGNUM : SPARC_I2_REGNUM); + regnum = + (cache->copied_regs_mask & 0x04) ? SPARC_I2_REGNUM : SPARC_O2_REGNUM; mcontext_addr = get_frame_register_unsigned (this_frame, regnum) + 64; cache->saved_regs[SPARC64_CCR_REGNUM].addr = mcontext_addr + 0 * 8; @@ -129,7 +136,7 @@ sparc64_sol2_sigtramp_frame_sniffer (const struct frame_unwind *self, void **this_cache) { CORE_ADDR pc = get_frame_pc (this_frame); - char *name; + const char *name; find_pc_partial_function (pc, &name, NULL, NULL); if (sparc_sol2_pc_in_sigtramp (pc, name)) @@ -140,6 +147,7 @@ sparc64_sol2_sigtramp_frame_sniffer (const struct frame_unwind *self, static const struct frame_unwind sparc64_sol2_sigtramp_frame_unwind = { SIGTRAMP_FRAME, + default_frame_unwind_stop_reason, sparc64_sol2_sigtramp_frame_this_id, sparc64_sol2_sigtramp_frame_prev_register, NULL, @@ -179,6 +187,9 @@ sparc64_sol2_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch) /* Solaris has kernel-assisted single-stepping support. */ set_gdbarch_software_single_step (gdbarch, NULL); + + /* How to print LWP PTIDs from core files. */ + set_gdbarch_core_pid_to_str (gdbarch, sol2_core_pid_to_str); }