[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

More info on Sparc FTBFS for glibc



Hello,

(CC: James for some binutils insights. This is about #266958)

I've attached the assembly source from failed build of qp_qtoi.c, which
is the place the glibc build chokes on this time. It dies here:

	fqtoi %f52, %f60
	st %f60, [%o4]

which causes

$ as -Av9 qp_qtoi.s
qp_qtoi.s: Assembler messages:
qp_qtoi.s:80: Error: Illegal operands: There are only 32 single precision f registers; [0-31]
qp_qtoi.s:81: Error: Illegal operands: There are only 32 single precision f registers; [0-31]

The gcc invocation is as follows (wrapped for legibility):

gcc-3.3 -m64 ../sysdeps/sparc/sparc64/soft-fp/qp_qtoi.c -c -std=gnu99
-D__USE_STRING_INLINES -O2 -O3 -Wall -Winline -Wstrict-prototypes
-Wwrite-strings -fstrict-aliasing -g -g1 -pipe -fcall-used-g6
-fomit-frame-pointer    -I../include -I.
-I/home/joshk/glibc-2.3.2.ds1/build-tree/sparc-sparc64/soft-fp -I..
-I../libio  -I/home/joshk/glibc-2.3.2.ds1/build-tree/sparc-sparc64
-I../sysdeps/sparc/sparc64/elf
-I../linuxthreads/sysdeps/unix/sysv/linux/sparc/sparc64
-I../linuxthreads/sysdeps/unix/sysv/linux/sparc
-I../linuxthreads/sysdeps/unix/sysv/linux
-I../linuxthreads/sysdeps/pthread -I../sysdeps/pthread
-I../linuxthreads/sysdeps/unix/sysv -I../linuxthreads/sysdeps/unix
-I../linuxthreads/sysdeps/sparc/sparc64 -I../linuxthreads/sysdeps/sparc
-I../sysdeps/unix/sysv/linux/sparc/sparc64
-I../sysdeps/unix/sysv/linux/sparc -I../sysdeps/unix/sysv/linux
-I../sysdeps/gnu -I../sysdeps/unix/common -I../sysdeps/unix/mman
-I../sysdeps/unix/inet -I../sysdeps/unix/sysv -I../sysdeps/unix/sparc
-I../sysdeps/unix -I../sysdeps/posix -I../sysdeps/sparc/sparc64/fpu
-I../sysdeps/sparc/sparc64 -I../sysdeps/wordsize-64
-I../sysdeps/ieee754/ldbl-128 -I../sysdeps/ieee754/dbl-64
-I../sysdeps/ieee754/flt-32 -I../sysdeps/sparc/sparc64/soft-fp
-I../sysdeps/sparc/fpu -I../sysdeps/sparc -I../sysdeps/ieee754
-I../sysdeps/generic/elf -I../sysdeps/generic -nostdinc -isystem
/usr/lib/gcc-lib/sparc-linux/3.3.4/include -isystem
/home/joshk/glibc-2.3.2.ds1/debian/include -D_LIBC_REENTRANT -include
../include/libc-symbols.h       -o
/home/joshk/glibc-2.3.2.ds1/build-tree/sparc-sparc64/soft-fp/qp_qtoi.o
-MD -MP -MF
/home/joshk/glibc-2.3.2.ds1/build-tree/sparc-sparc64/soft-fp/qp_qtoi.o.dt

Relevant versions of things on this system:

ii  gcc-3.3        3.3.4-13       The GNU C compiler
ii  binutils       2.15-4         The GNU assembler, linker and binary utiliti

Hope this helps.

-- 
Joshua Kwan
	.file	"qp_qtoi.c"
	.file 1 "../sysdeps/sparc/sparc64/soft-fp/qp_qtoi.c"
	.section	".debug_abbrev"
.LLdebug_abbrev0:
	.section	".debug_info"
.LLdebug_info0:
	.section	".debug_line"
.LLdebug_line0:
	.section	".text"
.LLtext0:
	.align 4
	.align 32
	.global _Qp_qtoi
	.type	_Qp_qtoi, #function
	.proc	04
_Qp_qtoi:
.LLFB3:
	.register	%g2, #scratch
	.register	%g3, #scratch
	.register	%g6, #scratch
	!#PROLOGUE# 0
	add	%sp, -208, %sp
.LLCFI0:
	!#PROLOGUE# 1
.LLBB2:
.LLBB3:
	ldx	[%o0], %g2
	mov	-1, %o5
	mov	%o0, %o3
	srlx	%o5, 16, %g1
.LLBE3:
	mov	0, %o4
.LLBB4:
	add	%g2, %g2, %g4
	and	%g2, %g1, %g6
	srlx	%g2, 63, %g3
	srlx	%g4, 49, %g5
.LLBE4:
	stx %fsr,[%sp+2231]
.LLBB5:
	srl	%g3, 0, %o2
	brz,pt	%g5, .LL13
	ldx	[%o0+8], %o0
.LLBE5:
	srlx	%o5, 49, %g3
	cmp	%g5, %g3
	be,pn	%xcc, .LL48
	mov	1, %g4
	sethi	%hi(15360), %o5
	sllx	%g4, 48, %g2
	xor	%o5, -1023, %g1
	or	%g6, %g2, %g3
	add	%g5, %g1, %g5
	srlx	%o0, 61, %o5
	sllx	%g3, 3, %g4
	sllx	%o0, 3, %o0
	or	%g4, %o5, %g6
.LL55:
	brlz,pn	%g5, .LL102
	cmp	%g5, 30
	ble,pt	%xcc, .LL66
	cmp	%g5, 115
	sethi	%hi(-2147483648), %g1
.LL104:
	or	%o4, 16, %o4
.LL114:
	add	%o2, %g1, %g6
	add	%g6, -1, %g3
.LL53:
	ldx	[%sp+2231], %g5
	sra	%o4, 0, %g6
	srlx	%g5, 23, %o0
	and	%o0, %g6, %o2
	brz,pt	%o2, .LL96
	sll	%o4, 5, %g1
	add	%sp, 2227, %o4
.LLBB6:
		ldd [%o3], %f52
	ldd [%o3+8], %f54
	fqtoi %f52, %f60
	st %f60, [%o4]
	
	ba,pt	%xcc, .LL95
	lduw	[%sp+2227], %g3
.LL96:
.LLBE6:
	and	%g5, -32, %o5
	sra	%g1, 0, %g5
	or	%o5, %g5, %g4
	or	%g4, %g6, %o3
	stx	%o3, [%sp+2231]
	ldx [%sp+2231],%fsr
	ba,pt	%xcc, .LL103
	sra	%g3, 0, %o0
.LL66:
	ble,pt	%xcc, .LL71
	cmp	%g5, 114
	add	%g5, -115, %g3
	add	%g5, -115, %g4
	cmp	%g4, 63
	ble,pt	%xcc, .LL77
	sllx	%o0, %g3, %o0
	mov	0, %o0
.LL77:
	mov	%o0, %g3
.LL105:
	sub	%g0, %o0, %g6
	ba,pt	%xcc, .LL53
	movrne	%o2, %g6, %g3
.LL71:
	bg,pt	%xcc, .LL105
	mov	%o0, %g3
	mov	114, %g2
	sub	%g2, %g5, %o5
	cmp	%o5, 63
	bg,pt	%xcc, .LL80
	add	%g5, 14, %g4
	add	%g5, -50, %g3
	mov	114, %g1
	sub	%g1, %g5, %g2
	mov	0, %o5
	sllx	%o0, %g3, %g5
	movrne	%g5, 1, %o5
	sllx	%g6, %g3, %g4
	srlx	%o0, %g2, %g1
	srlx	%g6, %g2, %g6
	or	%g4, %g1, %g5
	or	%o5, %g5, %o0
.LL79:
	and	%o0, 1, %o5
	or	%o4, 1, %g3
	srlx	%o0, 1, %g1
	sllx	%g6, 63, %g5
	movrne	%o5, %g3, %o4
	ba,pt	%xcc, .LL77
	or	%g1, %g5, %o0
.LL80:
	mov	50, %o5
	sllx	%g6, %g4, %g2
	mov	0, %g4
	or	%g2, %o0, %g3
	sub	%o5, %g5, %o0
	movrne	%g3, 1, %g4
	srlx	%g6, %o0, %o5
	mov	0, %g6
	ba,pt	%xcc, .LL79
	or	%g4, %o5, %o0
.LL102:
	or	%o4, 1, %o4
	ba,pt	%xcc, .LL53
	mov	0, %g3
.LL48:
	or	%g6, %o0, %o5
	brz,pt	%o5, .LL104
	sethi	%hi(-2147483648), %g1
	srlx	%g6, 47, %g2
	and	%g2, 1, %o0
	brz,a,pt %o0, .LL104
	mov	16, %o4
	ba,pt	%xcc, .LL114
	or	%o4, 16, %o4
.LL13:
	or	%g6, %o0, %g3
	brz,pt	%g3, .LL53
	mov	0, %g3
.LLBB7:
.LLBB8:
	brz,pt	%g6, .LL17
	srlx	%o5, 32, %g3
.LLBE8:
.LLBB9:
	mov	%g6, %g2
	cmp	%g6, %g3
	bleu,pt	%xcc, .LL20
	mov	63, %g4
	srlx	%g6, 32, %g4
	cmp	%g6, %g3
	movgu	%xcc, %g4, %g2
	mov	31, %g4
.LL20:
	srlx	%o5, 48, %g3
	cmp	%g2, %g3
	bleu,pt	%xcc, .LL106
	cmp	%g2, 255
	srlx	%g2, 16, %o5
	cmp	%g2, %g3
	movgu	%xcc, %o5, %g2
	add	%g4, -16, %g4
	cmp	%g2, 255
.LL106:
	bleu,pt	%xcc, .LL107
	and	%g2, 240, %g3
	srlx	%g2, 8, %g2
	add	%g4, -8, %g4
	and	%g2, 240, %g3
.LL107:
	brz,pt	%g3, .LL108
	and	%g2, 12, %o5
	srlx	%g2, 4, %g2
	add	%g4, -4, %g4
	and	%g2, 12, %o5
.LL108:
	brz,pt	%o5, .LL109
	and	%g2, 2, %g3
	srlx	%g2, 2, %g2
	add	%g4, -2, %g4
	and	%g2, 2, %g3
.LL109:
	brnz,a,pt %g3, .LL16
	add	%g4, -1, %g4
.LL16:
.LLBE9:
	add	%g4, -15, %g4
	add	%g4, 3, %o5
	cmp	%o5, 63
	bg,pt	%xcc, .LL44
	add	%g4, -61, %g2
	add	%g4, 3, %g1
	mov	61, %o5
	sllx	%g6, %g1, %g3
	sub	%o5, %g4, %g6
	srlx	%o0, %g6, %o5
	sllx	%o0, %g1, %o0
	or	%g3, %o5, %g6
.LL43:
	sub	%g5, %g4, %g3
	sethi	%hi(15360), %g5
	xor	%g5, -1022, %g4
	ba,pt	%xcc, .LL55
	add	%g3, %g4, %g5
.LL44:
	sllx	%o0, %g2, %g6
	ba,pt	%xcc, .LL43
	mov	0, %o0
.LL17:
.LLBB10:
	mov	%o0, %g2
	cmp	%o0, %g3
	bleu,pt	%xcc, .LL33
	mov	63, %g4
	srlx	%o0, 32, %g4
	cmp	%o0, %g3
	movgu	%xcc, %g4, %g2
	mov	31, %g4
.LL33:
	srlx	%o5, 48, %g3
	cmp	%g2, %g3
	bleu,pt	%xcc, .LL110
	cmp	%g2, 255
	srlx	%g2, 16, %o5
	cmp	%g2, %g3
	movgu	%xcc, %o5, %g2
	add	%g4, -16, %g4
	cmp	%g2, 255
.LL110:
	bleu,pt	%xcc, .LL111
	and	%g2, 240, %g3
	srlx	%g2, 8, %g2
	add	%g4, -8, %g4
	and	%g2, 240, %g3
.LL111:
	brz,pt	%g3, .LL112
	and	%g2, 12, %o5
	srlx	%g2, 4, %g2
	add	%g4, -4, %g4
	and	%g2, 12, %o5
.LL112:
	brz,pt	%o5, .LL113
	and	%g2, 2, %g1
	srlx	%g2, 2, %g2
	add	%g4, -2, %g4
	and	%g2, 2, %g1
.LL113:
	mov	0, %g3
	movrne	%g1, 1, %g3
	sub	%g4, %g3, %g2
.LLBE10:
	ba,pt	%xcc, .LL16
	add	%g2, 64, %g4
.LL95:
.LLBE7:
	sra	%g3, 0, %o0
.LL103:
.LLBE2:
	retl
	sub	%sp, -208, %sp
.LLFE3:
	.size	_Qp_qtoi, .-_Qp_qtoi
	.section	".debug_frame"
.LLframe0:
	.uaword	.LLECIE0-.LLSCIE0
.LLSCIE0:
	.uaword	0xffffffff
	.byte	0x1
	.asciz	""
	.uleb128 0x1
	.sleb128 -8
	.byte	0xf
	.byte	0xc
	.uleb128 0xe
	.uleb128 0x7ff
	.align 8
.LLECIE0:
.LLSFDE0:
	.uaword	.LLEFDE0-.LLASFDE0
.LLASFDE0:
	.uaword	.LLframe0
	.uaxword	.LLFB3
	.uaxword	.LLFE3-.LLFB3
	.byte	0x4
	.uaword	.LLCFI0-.LLFB3
	.byte	0xe
	.uleb128 0x8cf
	.align 8
.LLEFDE0:
	.section	".text"
.LLetext0:
	.section	".debug_info"
	.uaword	0x46
	.uahalf	0x2
	.uaword	.LLdebug_abbrev0
	.byte	0x8
	.uleb128 0x1
	.uaxword	.LLetext0
	.uaxword	.LLtext0
	.uaword	.LLC0
	.uaword	.LLC1
	.uaword	.LLC2
	.byte	0x1
	.uleb128 0x2
	.byte	0x1
	.uaword	.LLC3
	.byte	0x1
	.byte	0x1c
	.byte	0x2
	.uleb128 0x3
	.uaword	0x29
	.uaxword	.LLFB3
	.uaxword	.LLFE3
	.byte	0x1
	.byte	0x5e
	.byte	0x0
	.section	".debug_abbrev"
	.uleb128 0x1
	.uleb128 0x11
	.byte	0x1
	.uleb128 0x12
	.uleb128 0x1
	.uleb128 0x11
	.uleb128 0x1
	.uleb128 0x3
	.uleb128 0xe
	.uleb128 0x1b
	.uleb128 0xe
	.uleb128 0x25
	.uleb128 0xe
	.uleb128 0x13
	.uleb128 0xb
	.byte	0x0
	.byte	0x0
	.uleb128 0x2
	.uleb128 0x2e
	.byte	0x0
	.uleb128 0x3f
	.uleb128 0xc
	.uleb128 0x3
	.uleb128 0xe
	.uleb128 0x3a
	.uleb128 0xb
	.uleb128 0x3b
	.uleb128 0xb
	.uleb128 0x20
	.uleb128 0xb
	.byte	0x0
	.byte	0x0
	.uleb128 0x3
	.uleb128 0x2e
	.byte	0x0
	.uleb128 0x31
	.uleb128 0x13
	.uleb128 0x11
	.uleb128 0x1
	.uleb128 0x12
	.uleb128 0x1
	.uleb128 0x40
	.uleb128 0xa
	.byte	0x0
	.byte	0x0
	.byte	0x0
	.section	".debug_pubnames"
	.uaword	0x1b
	.uahalf	0x2
	.uaword	.LLdebug_info0
	.uaword	0x4a
	.uaword	0x32
	.asciz	"_Qp_qtoi"
	.uaword	0x0
	.section	".debug_aranges"
	.uaword	0x2c
	.uahalf	0x2
	.uaword	.LLdebug_info0
	.byte	0x8
	.byte	0x0
	.uahalf	0x0
	.uahalf	0x0
	.uaxword	.LLtext0
	.uaxword	.LLetext0-.LLtext0
	.uaxword	0x0
	.uaxword	0x0
	.section	.debug_str,"MS",@progbits,1
.LLC2:
	.asciz	"GNU C 3.3.4 (Debian 1:3.3.4-13)"
.LLC3:
	.asciz	"_Qp_qtoi"
.LLC0:
	.asciz	"../sysdeps/sparc/sparc64/soft-fp/qp_qtoi.c"
.LLC1:
	.asciz	"/home/joshk/glibc-2.3.2.ds1/build-tree/glibc-2.3.2/soft-fp"
	.section	".note.GNU-stack"
	.ident	"GCC: (GNU) 3.3.4 (Debian 1:3.3.4-13)"

Attachment: signature.asc
Description: Digital signature


Reply to: