aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog9
-rw-r--r--gcc/config/sparc/linux.h5
-rw-r--r--gcc/config/sparc/linux64.h8
3 files changed, 10 insertions, 12 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 980edbe..d8380e9 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,12 @@
+2002-04-27 David S. Miller <davem@redhat.com>
+
+ PR target/6494
+ * config/sparc/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Be mindful
+ of the stack bias.
+
+ * config/sparc/linux.h, config/sparc/linux64.h: Don't bother
+ including signal.h and sys/ucontext.h, not needed.
+
2002-04-29 Hans-Peter Nilsson <hp@bitrange.com>
* varasm.c (output_constant_def): Correct test for not calling
diff --git a/gcc/config/sparc/linux.h b/gcc/config/sparc/linux.h
index 3e7e061..ccf4ce0 100644
--- a/gcc/config/sparc/linux.h
+++ b/gcc/config/sparc/linux.h
@@ -261,11 +261,6 @@ do { \
/* Do code reading to identify a signal frame, and set the frame
state data appropriately. See unwind-dw2.c for the structs. */
-#ifdef IN_LIBGCC2
-#include <signal.h>
-#include <sys/ucontext.h>
-#endif
-
#define MD_FALLBACK_FRAME_STATE_FOR(CONTEXT, FS, SUCCESS) \
do { \
unsigned int *pc_ = (CONTEXT)->ra; \
diff --git a/gcc/config/sparc/linux64.h b/gcc/config/sparc/linux64.h
index 0ab61c2..c7950a8 100644
--- a/gcc/config/sparc/linux64.h
+++ b/gcc/config/sparc/linux64.h
@@ -381,11 +381,6 @@ do { \
/* Do code reading to identify a signal frame, and set the frame
state data appropriately. See unwind-dw2.c for the structs. */
-#ifdef IN_LIBGCC2
-#include <signal.h>
-#include <sys/ucontext.h>
-#endif
-
/* Handle multilib correctly. */
#if defined(__arch64__)
/* 64-bit Sparc version */
@@ -403,14 +398,13 @@ do { \
fpu_save_off_ = regs_off_ + (16 * 8) + (3 * 8) + (2 * 4); \
this_cfa_ = (long) (CONTEXT)->cfa; \
new_cfa_ = *(long *)(((CONTEXT)->cfa) + (regs_off_ + (14 * 8))); \
+ new_cfa_ += 2047; /* Stack bias */ \
fpu_save_ = *(long *)((this_cfa_) + (fpu_save_off_)); \
(FS)->cfa_how = CFA_REG_OFFSET; \
(FS)->cfa_reg = 14; \
(FS)->cfa_offset = new_cfa_ - (long) (CONTEXT)->cfa; \
for (i_ = 1; i_ < 16; ++i_) \
{ \
- if (i_ == 14) \
- continue; \
(FS)->regs.reg[i_].how = REG_SAVED_OFFSET; \
(FS)->regs.reg[i_].loc.offset = \
this_cfa_ + (regs_off_ + (i_ * 8)) - new_cfa_; \