projects
/
deliverable
/
binutils-gdb.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
solib_global_lookup: Fetch arch from objfile, not target_gdbarch.
[deliverable/binutils-gdb.git]
/
gdb
/
sparc-sol2-tdep.c
diff --git
a/gdb/sparc-sol2-tdep.c
b/gdb/sparc-sol2-tdep.c
index a2f3521caea817965e32163090603fca9662c972..7a7d3eb5da701faed8eb0938ca71a6afceebde0f 100644
(file)
--- a/
gdb/sparc-sol2-tdep.c
+++ b/
gdb/sparc-sol2-tdep.c
@@
-1,7
+1,6
@@
/* Target-dependent code for Solaris SPARC.
/* Target-dependent code for Solaris SPARC.
- Copyright (C) 2003, 2004, 2006, 2007, 2008, 2009, 2010
- Free Software Foundation, Inc.
+ Copyright (C) 2003-2014 Free Software Foundation, Inc.
This file is part of GDB.
This file is part of GDB.
@@
-29,15
+28,12
@@
#include "target.h"
#include "trad-frame.h"
#include "target.h"
#include "trad-frame.h"
-#include "gdb_assert.h"
-#include "gdb_string.h"
-
#include "sol2-tdep.h"
#include "sparc-tdep.h"
#include "solib-svr4.h"
/* From <sys/regset.h>. */
#include "sol2-tdep.h"
#include "sparc-tdep.h"
#include "solib-svr4.h"
/* From <sys/regset.h>. */
-const struct sparc_greg
set sparc32_sol2_gregset
=
+const struct sparc_greg
map sparc32_sol2_gregmap
=
{
32 * 4, /* %psr */
33 * 4, /* %pc */
{
32 * 4, /* %psr */
33 * 4, /* %pc */
@@
-48,6
+44,12
@@
const struct sparc_gregset sparc32_sol2_gregset =
1 * 4, /* %g1 */
16 * 4, /* %l0 */
};
1 * 4, /* %g1 */
16 * 4, /* %l0 */
};
+
+const struct sparc_fpregmap sparc32_sol2_fpregmap =
+{
+ 0 * 4, /* %f0 */
+ 33 * 4, /* %fsr */
+};
\f
/* The Solaris signal trampolines reside in libc. For normal signals,
\f
/* The Solaris signal trampolines reside in libc. For normal signals,
@@
-57,7
+59,7
@@
const struct sparc_gregset sparc32_sol2_gregset =
`ucontext_t', which has a member `uc_mcontext' that contains the
saved registers. Incidentally, the kernel passes the `ucontext_t'
pointer as the third argument of the signal trampoline too, and
`ucontext_t', which has a member `uc_mcontext' that contains the
saved registers. Incidentally, the kernel passes the `ucontext_t'
pointer as the third argument of the signal trampoline too, and
- `sigacthandler' simply passes it on. However, if you link your
+ `sigacthandler' simply passes it on.
However, if you link your
program with "-L/usr/ucblib -R/usr/ucblib -lucb", the function
`ucbsigvechandler' will be used, which invokes the using the BSD
convention, where the third argument is a pointer to an instance of
program with "-L/usr/ucblib -R/usr/ucblib -lucb", the function
`ucbsigvechandler' will be used, which invokes the using the BSD
convention, where the third argument is a pointer to an instance of
@@
-67,7
+69,7
@@
const struct sparc_gregset sparc32_sol2_gregset =
ignore this. */
int
ignore this. */
int
-sparc_sol2_pc_in_sigtramp (CORE_ADDR pc, char *name)
+sparc_sol2_pc_in_sigtramp (CORE_ADDR pc, c
onst c
har *name)
{
return (name && (strcmp (name, "sigacthandler") == 0
|| strcmp (name, "ucbsigvechandler") == 0
{
return (name && (strcmp (name, "sigacthandler") == 0
|| strcmp (name, "ucbsigvechandler") == 0
@@
-93,7
+95,8
@@
sparc32_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) + 40;
cache->saved_regs[SPARC32_PSR_REGNUM].addr = mcontext_addr + 0 * 4;
mcontext_addr = get_frame_register_unsigned (this_frame, regnum) + 40;
cache->saved_regs[SPARC32_PSR_REGNUM].addr = mcontext_addr + 0 * 4;
@@
-152,7
+155,7
@@
sparc32_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))
@@
-164,6
+167,7
@@
sparc32_sol2_sigtramp_frame_sniffer (const struct frame_unwind *self,
static const struct frame_unwind sparc32_sol2_sigtramp_frame_unwind =
{
SIGTRAMP_FRAME,
static const struct frame_unwind sparc32_sol2_sigtramp_frame_unwind =
{
SIGTRAMP_FRAME,
+ default_frame_unwind_stop_reason,
sparc32_sol2_sigtramp_frame_this_id,
sparc32_sol2_sigtramp_frame_prev_register,
NULL,
sparc32_sol2_sigtramp_frame_this_id,
sparc32_sol2_sigtramp_frame_prev_register,
NULL,
@@
-172,8
+176,8
@@
static const struct frame_unwind sparc32_sol2_sigtramp_frame_unwind =
/* Unglobalize NAME. */
/* Unglobalize NAME. */
-char *
-sparc_sol2_static_transform_name (char *name)
+c
onst const c
har *
+sparc_sol2_static_transform_name (c
onst c
har *name)
{
/* The Sun compilers (Sun ONE Studio, Forte Developer, Sun WorkShop,
SunPRO) convert file static variables into global values, a
{
/* The Sun compilers (Sun ONE Studio, Forte Developer, Sun WorkShop,
SunPRO) convert file static variables into global values, a
@@
-232,10
+236,6
@@
sparc32_sol2_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch)
frame_unwind_append_unwinder (gdbarch, &sparc32_sol2_sigtramp_frame_unwind);
frame_unwind_append_unwinder (gdbarch, &sparc32_sol2_sigtramp_frame_unwind);
- /* Solaris encodes the pid of the inferior in regset section
- names. */
- set_gdbarch_core_reg_section_encodes_pid (gdbarch, 1);
-
/* How to print LWP PTIDs from core files. */
set_gdbarch_core_pid_to_str (gdbarch, sol2_core_pid_to_str);
}
/* How to print LWP PTIDs from core files. */
set_gdbarch_core_pid_to_str (gdbarch, sol2_core_pid_to_str);
}
This page took
0.024795 seconds
and
4
git commands to generate.