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