summaryrefslogtreecommitdiff
path: root/devel/ffcall/patches/patch-ah
diff options
context:
space:
mode:
Diffstat (limited to 'devel/ffcall/patches/patch-ah')
-rw-r--r--devel/ffcall/patches/patch-ah254
1 files changed, 254 insertions, 0 deletions
diff --git a/devel/ffcall/patches/patch-ah b/devel/ffcall/patches/patch-ah
new file mode 100644
index 00000000000..6b86bf98f10
--- /dev/null
+++ b/devel/ffcall/patches/patch-ah
@@ -0,0 +1,254 @@
+$NetBSD: patch-ah,v 1.1 2008/03/03 21:41:30 tnn Exp $
+
+--- 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