aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorUlrich Weigand <uweigand@de.ibm.com>2004-01-28 00:14:00 +0000
committerUlrich Weigand <uweigand@gcc.gnu.org>2004-01-28 00:14:00 +0000
commit590fcf48ae3cd3527077ee13e54ad60b2d83037a (patch)
treef428a6f4bbc64a95d745da8191034eafbae32c2c /gcc
parent62b21ea0fca95b23e9a5f3b5823ece85bea133d4 (diff)
downloadgcc-590fcf48ae3cd3527077ee13e54ad60b2d83037a.zip
gcc-590fcf48ae3cd3527077ee13e54ad60b2d83037a.tar.gz
gcc-590fcf48ae3cd3527077ee13e54ad60b2d83037a.tar.bz2
s390.h (TARGET_DEFAULT): Default to !TARGET_BACKCHAIN.
* config/s390/s390.h (TARGET_DEFAULT): Default to !TARGET_BACKCHAIN. * config/s390/s390.c (s390_return_addr_rtx): Fail for all but current frame if !TARGET_BACKCHAIN. * config/s390/s390.md ("allocate_stack"): Use pattern only if TARGET_BACKCHAIN. * doc/invoke.texi (-mbackchain/-mno-backchain): Document new default. From-SVN: r76767
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog9
-rw-r--r--gcc/config/s390/s390.c5
-rw-r--r--gcc/config/s390/s390.h4
-rw-r--r--gcc/config/s390/s390.md2
-rw-r--r--gcc/doc/invoke.texi5
5 files changed, 20 insertions, 5 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index c5c093c..9b73990 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,12 @@
+2004-01-27 Ulrich Weigand <uweigand@de.ibm.com>
+
+ * config/s390/s390.h (TARGET_DEFAULT): Default to !TARGET_BACKCHAIN.
+ * config/s390/s390.c (s390_return_addr_rtx): Fail for all but current
+ frame if !TARGET_BACKCHAIN.
+ * config/s390/s390.md ("allocate_stack"): Use pattern only if
+ TARGET_BACKCHAIN.
+ * doc/invoke.texi (-mbackchain/-mno-backchain): Document new default.
+
2004-01-27 Zack Weinberg <zack@codesourcery.com>
* ia64.c (ia64_function_arg): When placing HFAs in integer
diff --git a/gcc/config/s390/s390.c b/gcc/config/s390/s390.c
index e19bf00..72946ac 100644
--- a/gcc/config/s390/s390.c
+++ b/gcc/config/s390/s390.c
@@ -5267,6 +5267,11 @@ s390_return_addr_rtx (int count, rtx frame)
{
rtx addr;
+ /* Without backchain, we fail for all but the current frame. */
+
+ if (!TARGET_BACKCHAIN && count > 0)
+ return NULL_RTX;
+
/* For the current frame, we need to make sure the initial
value of RETURN_REGNUM is actually saved. */
diff --git a/gcc/config/s390/s390.h b/gcc/config/s390/s390.h
index 48a91ba..8ef6b68 100644
--- a/gcc/config/s390/s390.h
+++ b/gcc/config/s390/s390.h
@@ -114,9 +114,9 @@ extern int target_flags;
#define TARGET_IEEE_FLOAT 1
#ifdef DEFAULT_TARGET_64BIT
-#define TARGET_DEFAULT 0x33
+#define TARGET_DEFAULT 0x31
#else
-#define TARGET_DEFAULT 0x3
+#define TARGET_DEFAULT 0x1
#endif
#define TARGET_SWITCHES \
diff --git a/gcc/config/s390/s390.md b/gcc/config/s390/s390.md
index 215848b..73310fa 100644
--- a/gcc/config/s390/s390.md
+++ b/gcc/config/s390/s390.md
@@ -7246,7 +7246,7 @@
(plus (reg 15) (match_operand 1 "general_operand" "")))
(set (match_operand 0 "general_operand" "")
(reg 15))]
- ""
+ "TARGET_BACKCHAIN"
{
rtx stack = gen_rtx (REG, Pmode, STACK_POINTER_REGNUM);
rtx chain = gen_rtx (MEM, Pmode, stack);
diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi
index c21bdf3..440c3d7 100644
--- a/gcc/doc/invoke.texi
+++ b/gcc/doc/invoke.texi
@@ -10098,8 +10098,9 @@ generates IEEE floating-point instructions. This is the default.
@opindex mno-backchain
Generate (or do not generate) code which maintains an explicit
backchain within the stack frame that points to the caller's frame.
-This is currently needed to allow debugging. The default is to
-generate the backchain.
+This may be needed to allow debugging using tools that do not understand
+DWARF-2 call frame information. The default is not to generate the
+backchain.
@item -msmall-exec
@itemx -mno-small-exec