$NetBSD$

--- avcall/avcall-sparc.S.orig	1999-11-26 21:02:01.000000000 +0100
+++ avcall/avcall-sparc.S
@@ -16,16 +16,11 @@ C(__builtin_avcall:)
 	cmp	%o7, 16
 	bne	L3
 	sra	%g3, 2, %l0
-	ld	[%i0+4], %g3
-	andcc	%g3, 8, %g0
-	bne	L87
-	cmp	%l0, 6
 	ld	[%i0+8], %g3
 	st	%g3, [%l2-4]
 L3:
 	cmp	%l0, 6
-L87:
-	ble,a	L88
+	ble,a	L66
 	ld	[%i0+12], %g3
 	add	%l0, -6, %l0
 	add	%i0, 40, %l1
@@ -37,9 +32,9 @@ L7:
 	bne	L7
 	add	%o7, 4, %o7
 	ld	[%i0+12], %g3
-L88:
+L66:
 	cmp	%g3, 16
-	bne,a	L89
+	bne,a	L67
 	ld	[%i0], %g3
 	ld	[%i0+4], %g3
 	andcc	%g3, 16, %g0
@@ -75,7 +70,7 @@ L88:
 	ld	[%i0+60], %o5
 L9:
 	ld	[%i0], %g3
-L89:
+L67:
 	ld	[%i0+40], %o0
 	ld	[%i0+44], %o1
 	ld	[%i0+48], %o2
@@ -83,31 +78,31 @@ L89:
 	ld	[%i0+56], %o4
 	call	%g3, 0
 	ld	[%i0+60], %o5
-	mov	%o0, %l2
 	nop
 	ld	[%i0+12], %g3
 	cmp	%g3, 1
 	be	L11
+	mov	%o0, %l2
 	cmp	%g3, 0
-	be	L84
+	be	L63
 	cmp	%g3, 2
-	be	L85
+	be	L64
 	cmp	%g3, 3
-	be	L85
+	be	L64
 	cmp	%g3, 4
-	be	L85
+	be	L64
 	cmp	%g3, 5
-	be	L86
+	be	L65
 	cmp	%g3, 6
-	be	L86
+	be	L65
 	cmp	%g3, 7
-	be	L84
+	be	L63
 	cmp	%g3, 8
-	be	L84
+	be	L63
 	cmp	%g3, 9
-	be	L84
+	be	L63
 	cmp	%g3, 10
-	be,a	L90
+	be,a	L68
 	ld	[%i0+8], %g3
 	ld	[%i0+12], %o7
 	add	%o7, -11, %g3
@@ -137,105 +132,38 @@ L34:
 	b	L11
 	std	%f0, [%g3]
 L38:
-	be	L84
+	be	L63
 	cmp	%o7, 16
 	bne	L11
 	nop
 	ld	[%i0+4], %g3
-	andcc	%g3, 8, %g0
-	be	L43
 	andcc	%g3, 1, %g0
+	be	L43
+	andcc	%g3, 2, %g0
 	ld	[%i0+16], %g3
 	cmp	%g3, 1
 	bne	L44
 	cmp	%g3, 2
 	ld	[%i0+8], %o7
-	ldub	[%sp-1], %g3
+	ldub	[%l2], %g3
 	b	L11
 	stb	%g3, [%o7]
 L44:
 	bne	L46
 	cmp	%g3, 4
 	ld	[%i0+8], %o7
-	lduh	[%sp-2], %g3
+	lduh	[%l2], %g3
 	b	L11
 	sth	%g3, [%o7]
 L46:
 	bne	L48
 	cmp	%g3, 8
 	ld	[%i0+8], %o7
-	ld	[%sp-4], %g3
+	ld	[%l2], %g3
 	b	L11
 	st	%g3, [%o7]
 L48:
 	bne	L50
-	andcc	%g3, 3, %g0
-	ld	[%sp-8], %g3
-	ld	[%i0+8], %o7
-	st	%g3, [%o7]
-	ld	[%i0+8], %l0
-	ld	[%sp-4], %g3
-	b	L11
-	st	%g3, [%l0+4]
-L50:
-	be	L52
-	sub	%sp, %g3, %o7
-	ld	[%i0+8], %i0
-	cmp	%g3, 4
-	bleu	L53
-	mov	%g3, %l0
-	and	%o7, -4, %o7
-L53:
-	cmp	%g3, 0
-	be	L11
-	nop
-L56:
-	ldub	[%o7], %g3
-	addcc	%l0, -1, %l0
-	stb	%g3, [%i0]
-	add	%o7, 1, %o7
-	bne	L56
-	add	%i0, 1, %i0
-	b,a	L11
-L52:
-	cmp	%o7, %sp
-	bgeu	L11
-	ld	[%i0+8], %i0
-L61:
-	ld	[%o7], %g3
-	add	%o7, 4, %o7
-	st	%g3, [%i0]
-	cmp	%o7, %sp
-	blu	L61
-	add	%i0, 4, %i0
-	b,a	L11
-L43:
-	be	L64
-	andcc	%g3, 2, %g0
-	ld	[%i0+16], %g3
-	cmp	%g3, 1
-	bne	L65
-	cmp	%g3, 2
-	ld	[%i0+8], %o7
-	ldub	[%l2], %g3
-	b	L11
-	stb	%g3, [%o7]
-L65:
-	bne	L67
-	cmp	%g3, 4
-	ld	[%i0+8], %o7
-	lduh	[%l2], %g3
-	b	L11
-	sth	%g3, [%o7]
-L67:
-	bne	L69
-	cmp	%g3, 8
-	ld	[%i0+8], %o7
-	ld	[%l2], %g3
-	b	L11
-	st	%g3, [%o7]
-L69:
-	bne	L71
 	add	%g3, 3, %g3
 	ld	[%l2], %g3
 	ld	[%i0+8], %o7
@@ -244,43 +172,43 @@ L69:
 	ld	[%l2+4], %g3
 	b	L11
 	st	%g3, [%l0+4]
-L71:
+L50:
 	srl	%g3, 2, %l1
 	addcc	%l1, -1, %l1
 	bneg	L11
 	sll	%l1, 2, %l0
-L75:
+L54:
 	ld	[%l0+%l2], %o7
 	addcc	%l1, -1, %l1
 	ld	[%i0+8], %g3
 	st	%o7, [%g3+%l0]
-	bpos	L75
+	bpos	L54
 	add	%l0, -4, %l0
 	b,a	L11
-L64:
+L43:
 	be	L11
 	nop
 	ld	[%i0+16], %g3
 	cmp	%g3, 1
-	bne	L79
+	bne	L58
 	cmp	%g3, 2
-L85:
+L64:
 	ld	[%i0+8], %g3
 	b	L11
 	stb	%l2, [%g3]
-L79:
-	bne	L81
+L58:
+	bne	L60
 	cmp	%g3, 4
-L86:
+L65:
 	ld	[%i0+8], %g3
 	b	L11
 	sth	%l2, [%g3]
-L81:
+L60:
 	bne	L11
 	nop
-L84:
+L63:
 	ld	[%i0+8], %g3
-L90:
+L68:
 	st	%l2, [%g3]
 L11:
 	ret
