aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorEric Botcazou <ebotcazou@libertysurf.fr>2005-10-13 00:12:39 +0200
committerEric Botcazou <ebotcazou@gcc.gnu.org>2005-10-12 22:12:39 +0000
commit6deb03391308dcffb9bb4a4155cd27d7e60329f9 (patch)
tree3bdd61c5a9dfce8c521f18653ab65cfcf2851369 /gcc
parent43d9ad1dbd24f0dbb1ee8fbb8978acc1019a67f8 (diff)
downloadgcc-6deb03391308dcffb9bb4a4155cd27d7e60329f9.zip
gcc-6deb03391308dcffb9bb4a4155cd27d7e60329f9.tar.gz
gcc-6deb03391308dcffb9bb4a4155cd27d7e60329f9.tar.bz2
re PR target/24284 (ICE (Segmentation fault))
PR target/24284 * config/sparc/sparc.c (gen_stack_pointer_inc): Build by hand. (gen_stack_pointer_dec): Likewise. From-SVN: r105336
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/config/sparc/sparc.c18
2 files changed, 16 insertions, 8 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 18c64b8..abf8908 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2005-10-12 Eric Botcazou <ebotcazou@libertysurf.fr>
+
+ PR target/24284
+ * config/sparc/sparc.c (gen_stack_pointer_inc): Build by hand.
+ (gen_stack_pointer_dec): Likewise.
+
2005-10-12 Danny Smith <dannysmith@users.sourceforge.net>
PR middle-end/21275
diff --git a/gcc/config/sparc/sparc.c b/gcc/config/sparc/sparc.c
index 0113533..180aaa5 100644
--- a/gcc/config/sparc/sparc.c
+++ b/gcc/config/sparc/sparc.c
@@ -3826,10 +3826,11 @@ gen_save_register_window (rtx increment)
static rtx
gen_stack_pointer_inc (rtx increment)
{
- if (TARGET_ARCH64)
- return gen_adddi3 (stack_pointer_rtx, stack_pointer_rtx, increment);
- else
- return gen_addsi3 (stack_pointer_rtx, stack_pointer_rtx, increment);
+ return gen_rtx_SET (VOIDmode,
+ stack_pointer_rtx,
+ gen_rtx_PLUS (Pmode,
+ stack_pointer_rtx,
+ increment));
}
/* Generate a decrement for the stack pointer. */
@@ -3837,10 +3838,11 @@ gen_stack_pointer_inc (rtx increment)
static rtx
gen_stack_pointer_dec (rtx decrement)
{
- if (TARGET_ARCH64)
- return gen_subdi3 (stack_pointer_rtx, stack_pointer_rtx, decrement);
- else
- return gen_subsi3 (stack_pointer_rtx, stack_pointer_rtx, decrement);
+ return gen_rtx_SET (VOIDmode,
+ stack_pointer_rtx,
+ gen_rtx_MINUS (Pmode,
+ stack_pointer_rtx,
+ decrement));
}
/* Expand the function prologue. The prologue is responsible for reserving