summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorhainque <hainque@138bc75d-0d04-0410-961f-82ee72b054a4>2003-08-31 11:18:59 +0000
committerhainque <hainque@138bc75d-0d04-0410-961f-82ee72b054a4>2003-08-31 11:18:59 +0000
commit101a5a9d8b3cf45d5c8b0754ea9b9df3d41b149b (patch)
treebab81521cede3b37dc3085081b16bbae39fab601
parenta455468e9f5a16d5b354df6f7f4e3a7571c772cf (diff)
downloadppe42-gcc-101a5a9d8b3cf45d5c8b0754ea9b9df3d41b149b.tar.gz
ppe42-gcc-101a5a9d8b3cf45d5c8b0754ea9b9df3d41b149b.zip
* builtins.c (expand_builtin_setjmp): Use emit_jump to jump around
the != 0 case, which ensures pending stack adjustments are flushed. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@70958 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/builtins.c7
2 files changed, 9 insertions, 3 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 16cc8148574..790f581ea98 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2003-08-31 Olivier Hainque <hainque@act-europe.fr>
+
+ * builtins.c (expand_builtin_setjmp): Use emit_jump to jump around
+ the != 0 case, which ensures pending stack adjustments are flushed.
+
2003-08-30 Zack Weinberg <zack@codesourcery.com>
* configure.frag: Delete file.
diff --git a/gcc/builtins.c b/gcc/builtins.c
index bdb29cea67d..c63d812d90f 100644
--- a/gcc/builtins.c
+++ b/gcc/builtins.c
@@ -639,10 +639,11 @@ expand_builtin_setjmp (tree arglist, rtx target)
expand_builtin_setjmp_setup (buf_addr, next_lab);
- /* Set TARGET to zero and branch to the continue label. */
+ /* Set TARGET to zero and branch to the continue label. Use emit_jump to
+ ensure that pending stack adjustments are flushed. */
emit_move_insn (target, const0_rtx);
- emit_jump_insn (gen_jump (cont_lab));
- emit_barrier ();
+ emit_jump (cont_lab);
+
emit_label (next_lab);
expand_builtin_setjmp_receiver (next_lab);
OpenPOWER on IntegriCloud