This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug target/18987] New: [4.0 regression] [ia64] Extra '.restore sp' in tail call


$ cat osdep.i  
static void do_date (char *);  
void rfc822_date (char *date)  
{  
  do_date (date);  
}  
$ gcc -c -O2 -fno-omit-frame-pointer -w osdep.i  
osdep.s: Assembler messages:  
osdep.s:19: Error: Epilogue count of 4294967296 exceeds number of nested  
prologues (0)  
  
This is due to an extra '.restore sp' before the tail call.  
  
	.file	"osdep.i"  
	.pred.safe_across_calls p1-p5,p16-p63  
	.text  
	.align 16  
	.global rfc822_date#  
	.proc rfc822_date#  
rfc822_date:  
	.prologue 2, 2  
	.mii  
	nop 0  
	.vframe r2  
	mov r2 = r12  
	.body  
	;;  
	.restore sp  
	mov r12 = r2  
	;;  
	.mfb  
	.restore sp  
	.prologue  
	alloc r2 = ar.pfs, 0, 0, 1, 0  
	nop 0  
	br.sptk.many do_date#  
	;;  
	break.f 0  
	;;  
	.endp rfc822_date#  
	.ident	"GCC: (GNU) 4.0.0 20041214 (experimental)"

-- 
           Summary: [4.0 regression] [ia64] Extra '.restore sp' in tail call
           Product: gcc
           Version: 4.0.0
            Status: UNCONFIRMED
          Keywords: wrong-code
          Severity: normal
          Priority: P2
         Component: target
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: schwab at suse dot de
                CC: gcc-bugs at gcc dot gnu dot org
GCC target triplet: ia64-*-linux


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=18987


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]