This is the mail archive of the gcc@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]

Re: Multiple calls to case NOTE_INSN_EPILOGUE_BEG for same function?


LEB0 and LEB1 are duplicated in the attached ivms assembly file from libgcc2. Note the first occurrence of each is at the prologue end, which makes no sense to me.

FYI: I'm emitting the LPE labels at NOTE_INSN_FUNCTION_BEG and the LEB labels at NOTE_INSN_EPILOGUE_BEG. I can send you the full patch if you like.

I deleted the .debug* sections to reduce the size of the file.
	.file	"libgcc2.c"
	.pred.safe_across_calls p1-p5,p16-p63
	.section	.debug_abbrev,"",@progbits
.Ldebug_abbrev0:
	.section	.debug_info,"",@progbits
.Ldebug_info0:
	.section	.debug_line,"",@progbits
.Ldebug_line0:
	.text
.Ltext0:
	.align 16
	.align 64
	.global __addvdi3#
	.type	__addvdi3#, @function
	.hidden	__addvdi3#
	.proc __addvdi3#
__addvdi3:
[.LFB0:]
	.file 1 "../../../gcc-head-src/libgcc/../gcc/libgcc2.c"
	.loc 1 82 0
	.prologue 12, 34
[.LPE0:]
[.LEB0:]
	.mmb
	.save ar.pfs, r35
	alloc r35 = ar.pfs, 2, 3, 0, 0
	.loc 1 83 0
	add r8 = r33, r32
	.loc 1 85 0
	nop 0
	.mib
	cmp.gt p6, p7 = r0, r33
	.loc 1 82 0
	.save rp, r34
	mov r34 = b0
	.body
	.loc 1 85 0
	(p6) br.cond.dpnt .L2
	;;
	.mmi
	cmp.gt p6, p7 = r32, r8
	;;
	(p6) addl r14 = 1, r0
	(p7) mov r14 = r0
	;;
	.mmi
	nop 0
	cmp4.eq p6, p7 = 0, r14
	.loc 1 86 0
	nop 0
	;;
	.mib
	(p7) mov r25 = r0
	nop 0
	.pred.safe_across_calls p1-p63
	(p7) br.call.spnt.many b0 = abort#
	.pred.safe_across_calls p1-p5,p16-p63
	.loc 1 89 0
	;;
	.mii
	nop 0
	mov ar.pfs = r35
	nop 0
	;;
	.mib
	nop 0
	mov b0 = r34
	br.ret.sptk.many b0
.L2:
	.loc 1 85 0
	.mmi
	cmp.lt p6, p7 = r32, r8
	;;
	(p6) addl r14 = 1, r0
	(p7) mov r14 = r0
	;;
	.mmi
	nop 0
	cmp4.eq p6, p7 = 0, r14
	.loc 1 86 0
	nop 0
	;;
	.mib
	(p7) mov r25 = r0
	nop 0
	.pred.safe_across_calls p1-p63
	(p7) br.call.spnt.many b0 = abort#
	.pred.safe_across_calls p1-p5,p16-p63
	.loc 1 89 0
	;;
	.mii
	nop 0
[.LEB0:]
	mov ar.pfs = r35
	nop 0
	;;
	.mib
	nop 0
	mov b0 = r34
	br.ret.sptk.many b0
.LFE0:
	.endp __addvdi3#
	.align 16
	.align 64
	.global __addvsi3#
	.type	__addvsi3#, @function
	.hidden	__addvsi3#
	.proc __addvsi3#
__addvsi3:
[.LFB1:]
	.loc 1 93 0
	.prologue 12, 34
[.LPE1:]
[.LEB1:]
	.mmb
	.save ar.pfs, r35
	alloc r35 = ar.pfs, 2, 3, 0, 0
	.loc 1 96 0
	cmp4.gt p6, p7 = r0, r33
	.loc 1 94 0
	nop 0
	.mib
	add r33 = r33, r32
	.loc 1 93 0
	.save rp, r34
	mov r34 = b0
	.body
	.loc 1 96 0
	(p6) br.cond.dpnt .L8
	;;
	.mmi
	cmp4.gt p6, p7 = r32, r33
	;;
	(p6) addl r14 = 1, r0
	(p7) mov r14 = r0
	;;
	.mmi
	nop 0
	cmp4.eq p6, p7 = 0, r14
	.loc 1 97 0
	nop 0
	;;
	.mib
	(p7) mov r25 = r0
	nop 0
	.pred.safe_across_calls p1-p63
	(p7) br.call.spnt.many b0 = abort#
	.pred.safe_across_calls p1-p5,p16-p63
	.loc 1 100 0
	;;
	.mii
	nop 0
	mov ar.pfs = r35
	sxt4 r8 = r33
	;;
	.mib
	nop 0
	mov b0 = r34
	br.ret.sptk.many b0
.L8:
	.loc 1 96 0
	.mmi
	cmp4.lt p6, p7 = r32, r33
	;;
	(p6) addl r14 = 1, r0
	(p7) mov r14 = r0
	;;
	.mmi
	nop 0
	cmp4.eq p6, p7 = 0, r14
	.loc 1 97 0
	nop 0
	;;
	.mib
	(p7) mov r25 = r0
	nop 0
	.pred.safe_across_calls p1-p63
	(p7) br.call.spnt.many b0 = abort#
	.pred.safe_across_calls p1-p5,p16-p63
	.loc 1 100 0
	;;
	.mii
	nop 0
[.LEB1:]
	mov ar.pfs = r35
	sxt4 r8 = r33
	;;
	.mib
	nop 0
	mov b0 = r34
	br.ret.sptk.many b0
.LFE1:
	.endp __addvsi3#
.Letext0:
	.file 2 "../../../gcc-head-src/libgcc/../gcc/libgcc2.h"

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