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"