This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug middle-end/37359] [4.4 Regression] IRA miscompiled transfer.o in libgfortran, sejmp
- From: "hjl dot tools at gmail dot com" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 3 Sep 2008 22:35:36 -0000
- Subject: [Bug middle-end/37359] [4.4 Regression] IRA miscompiled transfer.o in libgfortran, sejmp
- References: <bug-37359-682@http.gcc.gnu.org/bugzilla/>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- Comment #3 from hjl dot tools at gmail dot com 2008-09-03 22:35 -------
[hjl@gnu-14 ira-2]$ cat foo.c
#include <setjmp.h>
extern jmp_buf eof_jump;
extern bar (void *);
void
foo (void *p)
{
if (setjmp (eof_jump))
bar (p);
}
[hjl@gnu-14 ira-2]$ /export/build/gnu/gcc-ira/build-ia64-linux/gcc/xgcc
-B/export/build/gnu/gcc-ira/build-ia64-linux/gcc/ -O2 -S foo.c
[hjl@gnu-14 ira-2]$ cat foo.s
.file "foo.c"
.pred.safe_across_calls p1-p5,p16-p63
.text
.align 16
.global foo#
.type foo#, @function
.proc foo#
foo:
.prologue 12, 33
.mmb
.save ar.pfs, r34
alloc r34 = ar.pfs, 1, 2, 1, 0
adds r16 = 8, r12
nop 0
.mmi
.fframe 16
adds r12 = -16, r12
addl r35 = @ltoffx(eof_jump#), r1
.save rp, r33
mov r33 = b0
;;
.mmi
.mem.offset -8, 0
st8.spill [r16] = r1
.body
ld8.mov r35 = [r35], eof_jump#
nop 0
.mib
nop 0
nop 0
br.call.sptk.many b0 = _setjmp#
;;
.mmi
adds r1 = 24, r12
nop 0
cmp4.eq p6, p7 = 0, r8
;;
.mib
ld8 r1 = [r1]
nop 0
(p7) br.cond.dpnt .L5
.mii
nop 0
mov ar.pfs = r34
mov b0 = r33
.mmb
nop 0
.label_state 1
.restore sp
adds r12 = 16, r12
br.ret.sptk.many b0
;;
.L5:
.body
.copy_state 1
.mib
mov r35 = r32 <<<< r32 isn't preserved.
nop 0
br.call.sptk.many b0 = bar#
;;
.mmi
nop 0
adds r1 = 24, r12
nop 0
;;
.mii
ld8 r1 = [r1]
mov ar.pfs = r34
mov b0 = r33
.mmb
nop 0
.restore sp
adds r12 = 16, r12
br.ret.sptk.many b0
.endp foo#
.ident "GCC: (GNU) 4.4.0 20080826 (experimental) [ira-merge revision
139942]"
[hjl@gnu-14 ira-2]$
--
hjl dot tools at gmail dot com changed:
What |Removed |Added
----------------------------------------------------------------------------
Severity|blocker |normal
Target Milestone|4.4.0 |---
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37359