The new assembler with unwind table bug fix
H. J. Lu
hjl@lucon.org
Fri Feb 6 20:54:00 GMT 2004
On Thu, Feb 05, 2004 at 03:53:10PM -0800, Jim Wilson wrote:
> On Tue, 2004-02-03 at 23:18, Jim Wilson wrote:
> > I haven't checked this in yet pending a decision on whether we need to
> > automatically shorten prologue regions which are not followed by body
> > regions.
>
> I suspect David is on vacation this week. I am convinced the patch is
> right. If David doesn't like it, I will deal with his objections when
> he gets back. Meanwhile, I checked it in.
When I built glibc, I got
iofgetpos.s: Assembler messages:
iofgetpos.s:428: Internal error!
Assertion failure in ia64_convert_frag at
/net/gnu/export/linux/src/binutils/binutils/gas/config/tc-ia64.c line 2855.
Please report this bug.
H.J.
-------------- next part --------------
.file "iofgetpos.c"
.pred.safe_across_calls p1-p5,p16-p63
.global _Unwind_Resume#
.text
.align 16
.global _IO_new_fgetpos#
.proc _IO_new_fgetpos#
_IO_new_fgetpos:
[.LFB62:]
.prologue 12, 38
.mmb
.save ar.pfs, r39
alloc r39 = ar.pfs, 2, 6, 8, 0
ld4 r14 = [r32]
nop 0
.mii
adds r35 = 136, r32
.save rp, r38
mov r38 = b0
.body
adds r36 = -1680, r13
.mmi
addl r15 = 32768, r0
mov ar.ccv = 0
mov r37 = r0
;;
.mii
nop 0
and r14 = r15, r14
;;
nop 0
.mfb
cmp4.ne p6, p7 = 0, r14
nop 0
(p6) br.cond.dptk .L3
.mmi
ld8 r40 = [r35]
;;
adds r14 = 8, r40
nop 0
;;
.mmb
nop 0
ld8 r14 = [r14]
nop 0
;;
.mib
cmp.eq p6, p7 = r36, r14
addl r14 = 1, r0
(p6) br.cond.dpnt .L5
.mmi
mf
;;
cmpxchg4.acq r14 = [r40], r14, ar.ccv
nop 0
;;
.mib
nop 0
cmp4.eq p6, p7 = 0, r14
(p7) br.cond.dpnt .L39
.L6:
.mmi
ld8 r14 = [r35]
;;
adds r14 = 8, r14
nop 0
.mmi
nop 0
;;
st8 [r14] = r36
nop 0
.L5:
.mmi
adds r14 = 136, r32
;;
ld8 r15 = [r14]
nop 0
;;
.mii
nop 0
adds r15 = 4, r15
;;
nop 0
.mmi
ld4 r14 = [r15]
;;
adds r14 = 1, r14
nop 0
.mmi
nop 0
;;
st4 [r15] = r14
nop 0
.L3:
.mmi
mov r40 = r32
mov r41 = r0
addl r42 = 1, r0
.mmb
mov r43 = r0
mov r34 = r1
[.LEHB0:]
br.call.sptk.many b0 = _IO_seekoff_unlocked#
;;
.mmi
nop 0
mov r1 = r34
addl r15 = 256, r0
.mmi
ld4 r14 = [r32]
;;
and r14 = r15, r14
nop 0
;;
.mib
cmp4.eq p6, p7 = 0, r14
adds r14 = 168, r32
(p6) br.cond.dptk .L15
;;
.mmb
nop 0
ld4 r14 = [r14]
nop 0
;;
.mmi
cmp4.lt p6, p7 = 0, r14
;;
(p7) adds r14 = 88, r32
(p7) adds r15 = 72, r32
;;
.mmb
(p7) ld8 r14 = [r14]
(p7) ld8 r15 = [r15]
nop 0
;;
.mmi
(p7) sub r14 = r14, r15
;;
nop 0
(p7) sub r8 = r8, r14
;;
.L15:
.mfi
adds r14 = 168, r32
nop 0
cmp.ne p6, p7 = -1, r8
.mfb
mov r34 = r1
nop 0
(p7) br.cond.dpnt .L40
;;
.mmb
ld4 r14 = [r14]
st8 [r33] = r8
nop 0
;;
.mib
cmp4.ge p6, p7 = 0, r14
adds r14 = 152, r32
(p6) br.cond.dpnt .L24
;;
.mmi
ld8 r40 = [r14]
;;
adds r14 = 32, r40
nop 0
;;
.mmi
ld8 r14 = [r14]
;;
ld8 r15 = [r14], 8
nop 0
;;
.mib
ld8 r1 = [r14]
mov b6 = r15
br.call.sptk.many b0 = b6
;;
.mii
mov r1 = r34
cmp4.le p6, p7 = r0, r8
;;
(p7) adds r14 = 160, r32
.mmi
(p7) adds r15 = 8, r33
;;
(p7) ld8 r14 = [r14]
nop 0
;;
.mii
nop 0
(p7) adds r14 = 88, r14
;;
nop 0
.mmi
(p7) ld8 r14 = [r14]
;;
(p7) st8 [r15] = r14
nop 0
.L24:
.mii
ld4 r14 = [r32]
addl r15 = 32768, r0
;;
and r16 = r15, r14
.mii
nop 0
adds r14 = 136, r32
;;
nop 0
.mfb
cmp4.ne p6, p7 = 0, r16
nop 0
(p6) br.cond.dpnt .L2
.mmi
ld8 r40 = [r14]
;;
adds r15 = 4, r40
nop 0
;;
.mmi
ld4 r14 = [r15]
;;
adds r14 = -1, r14
nop 0
.mmi
nop 0
;;
st4 [r15] = r14
cmp4.ne p6, p7 = 0, r14
.mfb
adds r14 = 8, r40
nop 0
(p6) br.cond.dpnt .L2
;;
.mmb
nop 0
st8 [r14] = r0
nop 0
.mmf
mf
xchg4 r14 = [r40], r16
nop 0
;;
.mib
nop 0
cmp4.ge p6, p7 = 1, r14
(p7) br.cond.dpnt .L41
.L2:
.mmi
nop 0
mov r8 = r37
mov ar.pfs = r39
.mib
nop 0
mov b0 = r38
br.ret.sptk.many b0
.L41:
.mmi
adds r14 = 8, r13
addl r15 = 1230, r0
addl r42 = 1, r0
.mmi
addl r41 = 1, r0
;;
ld8 r14 = [r14]
nop 0
;;
.mib
nop 0
mov b7 = r14
nop 0
;;
#APP
br.call.sptk.many b6=b7;;
#NO_APP
;;
.bbb
nop 0
nop 0
br .L2
.L40:
.mfi
addl r14 = @ltoff(@tprel(__libc_errno#)), gp
nop 0
addl r37 = -1, r0
;;
.mmi
ld8 r14 = [r14]
;;
add r15 = r14, r13
nop 0
;;
.mmi
ld4 r14 = [r15]
;;
cmp4.ne p6, p7 = 0, r14
nop 0
;;
.mii
nop 0
(p7) addl r14 = 5, r0
;;
nop 0
.mfb
(p7) st4 [r15] = r14
nop 0
br .L24
.L39:
.mfb
mov r34 = r1
nop 0
br.call.sptk.many b0 = __lll_lock_wait#
[.LEHE0:]
;;
.mib
nop 0
mov r1 = r34
br .L6
.L38:
.mmi
ld4 r14 = [r32]
mov r34 = r15
addl r15 = 32768, r0
;;
.mii
and r16 = r15, r14
adds r14 = 136, r32
;;
nop 0
.mfb
cmp4.ne p6, p7 = 0, r16
nop 0
(p6) br.cond.dptk .L31
.mmi
ld8 r40 = [r14]
;;
adds r15 = 4, r40
nop 0
;;
.mmi
ld4 r14 = [r15]
;;
adds r14 = -1, r14
nop 0
.mmi
nop 0
;;
st4 [r15] = r14
cmp4.ne p6, p7 = 0, r14
.mfb
adds r14 = 8, r40
nop 0
(p6) br.cond.dptk .L31
;;
.mmb
nop 0
st8 [r14] = r0
nop 0
.mmf
mf
xchg4 r14 = [r40], r16
nop 0
;;
.mib
nop 0
cmp4.ge p6, p7 = 1, r14
(p7) br.cond.dpnt .L42
.L31:
.mib
nop 0
mov r40 = r34
[.LEHB1:]
br.call.sptk.many b0 = _Unwind_Resume#
[.LEHE1:]
.L42:
.mmi
adds r14 = 8, r13
addl r15 = 1230, r0
addl r42 = 1, r0
.mmi
addl r41 = 1, r0
;;
ld8 r14 = [r14]
nop 0
;;
.mib
nop 0
mov b7 = r14
nop 0
;;
#APP
br.call.sptk.many b6=b7;;
#NO_APP
;;
.bbb
nop 0
nop 0
br .L31
.personality __gcc_personality_v0#
.handlerdata
.LLSDA62:
data1 0xff
data1 0xff
data1 0x1
.uleb128 .LLSDACSE62-.LLSDACSB62
.LLSDACSB62:
.uleb128 .LEHB0-.LFB62
.uleb128 .LEHE0-.LEHB0
.uleb128 .L38-.LFB62
.uleb128 0x0
.uleb128 .LEHB1-.LFB62
.uleb128 .LEHE1-.LEHB1
.uleb128 0x0
.uleb128 0x0
.LLSDACSE62:
.endp _IO_new_fgetpos#
.global __new_fgetpos#
__new_fgetpos# = _IO_new_fgetpos#
.weak _IO_fgetpos#
_IO_fgetpos# = _IO_new_fgetpos#
.weak fgetpos#
fgetpos# = __new_fgetpos#
.global __umoddi3#
.global __udivdi3#
.ident "GCC: (GNU) 3.2.3 20030502 (Red Hat Linux 3.2.3-24)"
More information about the Binutils
mailing list