projects
/
platform
/
upstream
/
binutils.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
fixed optimzation for Atom
[platform/upstream/binutils.git]
/
gdb
/
sparc64-sol2-tdep.c
diff --git
a/gdb/sparc64-sol2-tdep.c
b/gdb/sparc64-sol2-tdep.c
index
a50943f
..
23e943d
100644
(file)
--- a/
gdb/sparc64-sol2-tdep.c
+++ b/
gdb/sparc64-sol2-tdep.c
@@
-1,7
+1,6
@@
/* Target-dependent code for Solaris UltraSPARC.
/* Target-dependent code for Solaris UltraSPARC.
- Copyright (C) 2003, 2004, 2006, 2007, 2008, 2009, 2010, 2011
- Free Software Foundation, Inc.
+ Copyright (C) 2003-2014 Free Software Foundation, Inc.
This file is part of GDB.
This file is part of GDB.
@@
-27,14
+26,12
@@
#include "osabi.h"
#include "trad-frame.h"
#include "osabi.h"
#include "trad-frame.h"
-#include "gdb_assert.h"
-
#include "sol2-tdep.h"
#include "sparc64-tdep.h"
#include "solib-svr4.h"
/* From <sys/regset.h>. */
#include "sol2-tdep.h"
#include "sparc64-tdep.h"
#include "solib-svr4.h"
/* From <sys/regset.h>. */
-const struct sparc_greg
set sparc64_sol2_gregset
=
+const struct sparc_greg
map sparc64_sol2_gregmap
=
{
32 * 8, /* "tstate" */
33 * 8, /* %pc */
{
32 * 8, /* "tstate" */
33 * 8, /* %pc */
@@
-46,6
+43,12
@@
const struct sparc_gregset sparc64_sol2_gregset =
16 * 8, /* %l0 */
8 /* sizeof (%y) */
};
16 * 8, /* %l0 */
8 /* sizeof (%y) */
};
+
+const struct sparc_fpregmap sparc64_sol2_fpregmap =
+{
+ 0 * 8, /* %f0 */
+ 33 * 8, /* %fsr */
+};
\f
static struct sparc_frame_cache *
\f
static struct sparc_frame_cache *
@@
-67,7
+70,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. */
/* 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;
mcontext_addr = get_frame_register_unsigned (this_frame, regnum) + 64;
cache->saved_regs[SPARC64_CCR_REGNUM].addr = mcontext_addr + 0 * 8;
@@
-130,7
+134,7
@@
sparc64_sol2_sigtramp_frame_sniffer (const struct frame_unwind *self,
void **this_cache)
{
CORE_ADDR pc = get_frame_pc (this_frame);
void **this_cache)
{
CORE_ADDR pc = get_frame_pc (this_frame);
- char *name;
+ c
onst c
har *name;
find_pc_partial_function (pc, &name, NULL, NULL);
if (sparc_sol2_pc_in_sigtramp (pc, name))
find_pc_partial_function (pc, &name, NULL, NULL);
if (sparc_sol2_pc_in_sigtramp (pc, name))
@@
-141,6
+145,7
@@
sparc64_sol2_sigtramp_frame_sniffer (const struct frame_unwind *self,
static const struct frame_unwind sparc64_sol2_sigtramp_frame_unwind =
{
SIGTRAMP_FRAME,
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,
sparc64_sol2_sigtramp_frame_this_id,
sparc64_sol2_sigtramp_frame_prev_register,
NULL,