0000: 23 69 6e 63 6c 75 64 65 20 22 61 73 6d 73 70 61 #include "asmspa
0010: 72 63 2e 68 22 0a 2e 74 65 78 74 0a 09 2e 61 6c rc.h"..text...al
0020: 69 67 6e 20 34 0a 09 2e 67 6c 6f 62 61 6c 20 43 ign 4...global C
0030: 28 5f 5f 62 75 69 6c 74 69 6e 5f 61 76 63 61 6c (__builtin_avcal
0040: 6c 29 0a 09 44 45 43 4c 41 52 45 5f 46 55 4e 43 l)..DECLARE_FUNC
0050: 54 49 4f 4e 28 5f 5f 62 75 69 6c 74 69 6e 5f 61 TION(__builtin_a
0060: 76 63 61 6c 6c 29 0a 09 2e 70 72 6f 63 09 30 34 vcall)...proc.04
0070: 0a 43 28 5f 5f 62 75 69 6c 74 69 6e 5f 61 76 63 .C(__builtin_avc
0080: 61 6c 6c 3a 29 0a 09 21 24 50 52 4f 4c 4f 47 55 all:)..!$PROLOGU
0090: 45 24 20 30 0a 09 73 61 76 65 09 25 73 70 2c 20 E$ 0..save.%sp,
00a0: 2d 31 31 35 32 2c 20 25 73 70 0a 09 21 24 50 52 -1152, %sp..!$PR
00b0: 4f 4c 4f 47 55 45 24 20 31 0a 09 6c 64 09 5b 25 OLOGUE$ 1..ld.[%
00c0: 69 30 2b 32 30 5d 2c 20 25 67 33 0a 09 61 64 64 i0+20], %g3..add
00d0: 09 25 73 70 2c 20 36 38 2c 20 25 6c 32 0a 09 61 .%sp, 68, %l2..a
00e0: 64 64 09 25 67 33 2c 20 2d 34 30 2c 20 25 67 33 dd.%g3, -40, %g3
00f0: 0a 09 6c 64 09 5b 25 69 30 2b 31 32 5d 2c 20 25 ..ld.[%i0+12], %
0100: 6f 37 0a 09 73 75 62 09 25 67 33 2c 20 25 69 30 o7..sub.%g3, %i0
0110: 2c 20 25 67 33 0a 09 63 6d 70 09 25 6f 37 2c 20 , %g3..cmp.%o7,
0120: 31 36 0a 09 62 6e 65 09 4c 33 0a 09 73 72 61 09 16..bne.L3..sra.
0130: 25 67 33 2c 20 32 2c 20 25 6c 30 0a 09 6c 64 09 %g3, 2, %l0..ld.
0140: 5b 25 69 30 2b 38 5d 2c 20 25 67 33 0a 09 73 74 [%i0+8], %g3..st
0150: 09 25 67 33 2c 20 5b 25 6c 32 2d 34 5d 0a 4c 33 .%g3, [%l2-4].L3
0160: 3a 0a 09 63 6d 70 09 25 6c 30 2c 20 36 0a 09 62 :..cmp.%l0, 6..b
0170: 6c 65 2c 61 09 4c 36 36 0a 09 6c 64 09 5b 25 69 le,a.L66..ld.[%i
0180: 30 2b 31 32 5d 2c 20 25 67 33 0a 09 61 64 64 09 0+12], %g3..add.
0190: 25 6c 30 2c 20 2d 36 2c 20 25 6c 30 0a 09 61 64 %l0, -6, %l0..ad
01a0: 64 09 25 69 30 2c 20 34 30 2c 20 25 6c 31 0a 09 d.%i0, 40, %l1..
01b0: 6d 6f 76 09 32 34 2c 20 25 6f 37 0a 4c 37 3a 0a mov.24, %o7.L7:.
01c0: 09 6c 64 09 5b 25 6c 31 2b 25 6f 37 5d 2c 20 25 .ld.[%l1+%o7], %
01d0: 67 33 0a 09 61 64 64 63 63 09 25 6c 30 2c 20 2d g3..addcc.%l0, -
01e0: 31 2c 20 25 6c 30 0a 09 73 74 09 25 67 33 2c 20 1, %l0..st.%g3,
01f0: 5b 25 6f 37 2b 25 6c 32 5d 0a 09 62 6e 65 09 4c [%o7+%l2]..bne.L
0200: 37 0a 09 61 64 64 09 25 6f 37 2c 20 34 2c 20 25 7..add.%o7, 4, %
0210: 6f 37 0a 09 6c 64 09 5b 25 69 30 2b 31 32 5d 2c o7..ld.[%i0+12],
0220: 20 25 67 33 0a 4c 36 36 3a 0a 09 63 6d 70 09 25 %g3.L66:..cmp.%
0230: 67 33 2c 20 31 36 0a 09 62 6e 65 2c 61 09 4c 36 g3, 16..bne,a.L6
0240: 37 0a 09 6c 64 09 5b 25 69 30 5d 2c 20 25 67 33 7..ld.[%i0], %g3
0250: 0a 09 6c 64 09 5b 25 69 30 2b 34 5d 2c 20 25 67 ..ld.[%i0+4], %g
0260: 33 0a 09 61 6e 64 63 63 09 25 67 33 2c 20 31 36 3..andcc.%g3, 16
0270: 2c 20 25 67 30 0a 09 62 65 09 4c 39 0a 09 73 65 , %g0..be.L9..se
0280: 74 68 69 09 25 68 69 28 2d 32 31 31 37 36 30 37 thi.%hi(-2117607
0290: 34 32 34 29 2c 20 25 6f 37 0a 09 6c 64 09 5b 25 424), %o7..ld.[%
02a0: 69 30 2b 31 36 5d 2c 20 25 67 33 0a 09 61 6e 64 i0+16], %g3..and
02b0: 09 25 67 33 2c 20 34 30 39 35 2c 20 25 67 33 0a .%g3, 4095, %g3.
02c0: 09 6f 72 09 25 6f 37 2c 20 38 2c 20 25 6f 37 0a .or.%o7, 8, %o7.
02d0: 09 73 65 74 68 69 09 25 68 69 28 2d 31 36 31 34 .sethi.%hi(-1614
02e0: 37 37 34 32 37 32 29 2c 20 25 6c 30 0a 09 73 65 774272), %l0..se
02f0: 74 68 69 09 25 68 69 28 31 36 37 37 37 32 31 36 thi.%hi(16777216
0300: 29 2c 20 25 6c 31 0a 09 73 65 74 68 69 09 25 68 ), %l1..sethi.%h
0310: 69 28 2d 31 33 34 31 31 32 30 35 31 32 29 2c 20 i(-1341120512),
0320: 25 6c 32 0a 09 73 65 74 68 69 09 25 68 69 28 2d %l2..sethi.%hi(-
0330: 32 31 31 35 35 30 32 30 38 30 29 2c 20 25 6c 33 2115502080), %l3
0340: 0a 09 73 74 09 25 67 33 2c 20 5b 25 66 70 2d 32 ..st.%g3, [%fp-2
0350: 34 5d 0a 09 73 74 64 09 25 6c 30 2c 20 5b 25 66 4]..std.%l0, [%f
0360: 70 2d 33 32 5d 0a 09 73 74 09 25 6c 32 2c 20 5b p-32]..st.%l2, [
0370: 25 66 70 2d 32 30 5d 0a 09 73 74 09 25 6f 37 2c %fp-20]..st.%o7,
0380: 20 5b 25 66 70 2d 31 36 5d 0a 09 73 74 09 25 6c [%fp-16]..st.%l
0390: 33 2c 20 5b 25 66 70 2d 31 32 5d 0a 09 61 64 64 3, [%fp-12]..add
03a0: 09 25 66 70 2c 20 2d 33 32 2c 20 25 67 33 0a 09 .%fp, -32, %g3..
03b0: 69 66 6c 75 73 68 20 25 67 33 0a 09 61 64 64 09 iflush %g3..add.
03c0: 25 66 70 2c 20 2d 32 34 2c 20 25 6f 37 0a 09 69 %fp, -24, %o7..i
03d0: 66 6c 75 73 68 20 25 6f 37 0a 09 61 64 64 09 25 flush %o7..add.%
03e0: 66 70 2c 20 2d 31 36 2c 20 25 67 33 0a 09 69 66 fp, -16, %g3..if
03f0: 6c 75 73 68 20 25 67 33 0a 09 61 64 64 09 25 66 lush %g3..add.%f
0400: 70 2c 20 2d 31 32 2c 20 25 6f 37 0a 09 69 66 6c p, -12, %o7..ifl
0410: 75 73 68 20 25 6f 37 0a 09 6c 64 09 5b 25 69 30 ush %o7..ld.[%i0
0420: 5d 2c 20 25 67 32 0a 09 6c 64 09 5b 25 69 30 2b ], %g2..ld.[%i0+
0430: 34 30 5d 2c 20 25 6f 30 0a 09 6c 64 09 5b 25 69 40], %o0..ld.[%i
0440: 30 2b 34 34 5d 2c 20 25 6f 31 0a 09 6c 64 09 5b 0+44], %o1..ld.[
0450: 25 69 30 2b 34 38 5d 2c 20 25 6f 32 0a 09 6c 64 %i0+48], %o2..ld
0460: 09 5b 25 69 30 2b 35 32 5d 2c 20 25 6f 33 0a 09 .[%i0+52], %o3..
0470: 6c 64 09 5b 25 69 30 2b 35 36 5d 2c 20 25 6f 34 ld.[%i0+56], %o4
0480: 0a 09 6a 6d 70 09 25 66 70 2d 33 32 0a 09 6c 64 ..jmp.%fp-32..ld
0490: 09 5b 25 69 30 2b 36 30 5d 2c 20 25 6f 35 0a 4c .[%i0+60], %o5.L
04a0: 39 3a 0a 09 6c 64 09 5b 25 69 30 5d 2c 20 25 67 9:..ld.[%i0], %g
04b0: 33 0a 4c 36 37 3a 0a 09 6c 64 09 5b 25 69 30 2b 3.L67:..ld.[%i0+
04c0: 34 30 5d 2c 20 25 6f 30 0a 09 6c 64 09 5b 25 69 40], %o0..ld.[%i
04d0: 30 2b 34 34 5d 2c 20 25 6f 31 0a 09 6c 64 09 5b 0+44], %o1..ld.[
04e0: 25 69 30 2b 34 38 5d 2c 20 25 6f 32 0a 09 6c 64 %i0+48], %o2..ld
04f0: 09 5b 25 69 30 2b 35 32 5d 2c 20 25 6f 33 0a 09 .[%i0+52], %o3..
0500: 6c 64 09 5b 25 69 30 2b 35 36 5d 2c 20 25 6f 34 ld.[%i0+56], %o4
0510: 0a 09 63 61 6c 6c 09 25 67 33 2c 20 30 0a 09 6c ..call.%g3, 0..l
0520: 64 09 5b 25 69 30 2b 36 30 5d 2c 20 25 6f 35 0a d.[%i0+60], %o5.
0530: 09 6e 6f 70 0a 09 6c 64 09 5b 25 69 30 2b 31 32 .nop..ld.[%i0+12
0540: 5d 2c 20 25 67 33 0a 09 63 6d 70 09 25 67 33 2c ], %g3..cmp.%g3,
0550: 20 31 0a 09 62 65 09 4c 31 31 0a 09 6d 6f 76 09 1..be.L11..mov.
0560: 25 6f 30 2c 20 25 6c 32 0a 09 63 6d 70 09 25 67 %o0, %l2..cmp.%g
0570: 33 2c 20 30 0a 09 62 65 09 4c 36 33 0a 09 63 6d 3, 0..be.L63..cm
0580: 70 09 25 67 33 2c 20 32 0a 09 62 65 09 4c 36 34 p.%g3, 2..be.L64
0590: 0a 09 63 6d 70 09 25 67 33 2c 20 33 0a 09 62 65 ..cmp.%g3, 3..be
05a0: 09 4c 36 34 0a 09 63 6d 70 09 25 67 33 2c 20 34 .L64..cmp.%g3, 4
05b0: 0a 09 62 65 09 4c 36 34 0a 09 63 6d 70 09 25 67 ..be.L64..cmp.%g
05c0: 33 2c 20 35 0a 09 62 65 09 4c 36 35 0a 09 63 6d 3, 5..be.L65..cm
05d0: 70 09 25 67 33 2c 20 36 0a 09 62 65 09 4c 36 35 p.%g3, 6..be.L65
05e0: 0a 09 63 6d 70 09 25 67 33 2c 20 37 0a 09 62 65 ..cmp.%g3, 7..be
05f0: 09 4c 36 33 0a 09 63 6d 70 09 25 67 33 2c 20 38 .L63..cmp.%g3, 8
0600: 0a 09 62 65 09 4c 36 33 0a 09 63 6d 70 09 25 67 ..be.L63..cmp.%g
0610: 33 2c 20 39 0a 09 62 65 09 4c 36 33 0a 09 63 6d 3, 9..be.L63..cm
0620: 70 09 25 67 33 2c 20 31 30 0a 09 62 65 2c 61 09 p.%g3, 10..be,a.
0630: 4c 36 38 0a 09 6c 64 09 5b 25 69 30 2b 38 5d 2c L68..ld.[%i0+8],
0640: 20 25 67 33 0a 09 6c 64 09 5b 25 69 30 2b 31 32 %g3..ld.[%i0+12
0650: 5d 2c 20 25 6f 37 0a 09 61 64 64 09 25 6f 37 2c ], %o7..add.%o7,
0660: 20 2d 31 31 2c 20 25 67 33 0a 09 63 6d 70 09 25 -11, %g3..cmp.%
0670: 67 33 2c 20 31 0a 09 62 67 75 09 4c 33 32 0a 09 g3, 1..bgu.L32..
0680: 63 6d 70 09 25 6f 37 2c 20 31 33 0a 09 6c 64 09 cmp.%o7, 13..ld.
0690: 5b 25 69 30 2b 38 5d 2c 20 25 67 33 0a 09 73 74 [%i0+8], %g3..st
06a0: 09 25 6c 32 2c 20 5b 25 67 33 5d 0a 09 6c 64 09 .%l2, [%g3]..ld.
06b0: 5b 25 69 30 2b 38 5d 2c 20 25 6f 37 0a 09 62 09 [%i0+8], %o7..b.
06c0: 4c 31 31 0a 09 73 74 09 25 6f 31 2c 20 5b 25 6f L11..st.%o1, [%o
06d0: 37 2b 34 5d 0a 4c 33 32 3a 0a 09 62 6e 65 09 4c 7+4].L32:..bne.L
06e0: 33 34 0a 09 63 6d 70 09 25 6f 37 2c 20 31 34 0a 34..cmp.%o7, 14.
06f0: 09 6c 64 09 5b 25 69 30 2b 34 5d 2c 20 25 67 33 .ld.[%i0+4], %g3
0700: 0a 09 61 6e 64 63 63 09 25 67 33 2c 20 33 32 2c ..andcc.%g3, 32,
0710: 20 25 67 30 0a 09 62 6e 65 2c 61 09 4c 33 35 0a %g0..bne,a.L35.
0720: 09 66 64 74 6f 73 09 25 66 30 2c 20 25 66 30 0a .fdtos.%f0, %f0.
0730: 4c 33 35 3a 0a 09 6c 64 09 5b 25 69 30 2b 38 5d L35:..ld.[%i0+8]
0740: 2c 20 25 67 33 0a 09 62 09 4c 31 31 0a 09 73 74 , %g3..b.L11..st
0750: 09 25 66 30 2c 20 5b 25 67 33 5d 0a 4c 33 34 3a .%f0, [%g3].L34:
0760: 0a 09 62 6e 65 09 4c 33 38 0a 09 63 6d 70 09 25 ..bne.L38..cmp.%
0770: 6f 37 2c 20 31 35 0a 09 6c 64 09 5b 25 69 30 2b o7, 15..ld.[%i0+
0780: 38 5d 2c 20 25 67 33 0a 09 62 09 4c 31 31 0a 09 8], %g3..b.L11..
0790: 73 74 64 09 25 66 30 2c 20 5b 25 67 33 5d 0a 4c std.%f0, [%g3].L
07a0: 33 38 3a 0a 09 62 65 09 4c 36 33 0a 09 63 6d 70 38:..be.L63..cmp
07b0: 09 25 6f 37 2c 20 31 36 0a 09 62 6e 65 09 4c 31 .%o7, 16..bne.L1
07c0: 31 0a 09 6e 6f 70 0a 09 6c 64 09 5b 25 69 30 2b 1..nop..ld.[%i0+
07d0: 34 5d 2c 20 25 67 33 0a 09 61 6e 64 63 63 09 25 4], %g3..andcc.%
07e0: 67 33 2c 20 31 2c 20 25 67 30 0a 09 62 65 09 4c g3, 1, %g0..be.L
07f0: 34 33 0a 09 61 6e 64 63 63 09 25 67 33 2c 20 32 43..andcc.%g3, 2
0800: 2c 20 25 67 30 0a 09 6c 64 09 5b 25 69 30 2b 31 , %g0..ld.[%i0+1
0810: 36 5d 2c 20 25 67 33 0a 09 63 6d 70 09 25 67 33 6], %g3..cmp.%g3
0820: 2c 20 31 0a 09 62 6e 65 09 4c 34 34 0a 09 63 6d , 1..bne.L44..cm
0830: 70 09 25 67 33 2c 20 32 0a 09 6c 64 09 5b 25 69 p.%g3, 2..ld.[%i
0840: 30 2b 38 5d 2c 20 25 6f 37 0a 09 6c 64 75 62 09 0+8], %o7..ldub.
0850: 5b 25 6c 32 5d 2c 20 25 67 33 0a 09 62 09 4c 31 [%l2], %g3..b.L1
0860: 31 0a 09 73 74 62 09 25 67 33 2c 20 5b 25 6f 37 1..stb.%g3, [%o7
0870: 5d 0a 4c 34 34 3a 0a 09 62 6e 65 09 4c 34 36 0a ].L44:..bne.L46.
0880: 09 63 6d 70 09 25 67 33 2c 20 34 0a 09 6c 64 09 .cmp.%g3, 4..ld.
0890: 5b 25 69 30 2b 38 5d 2c 20 25 6f 37 0a 09 6c 64 [%i0+8], %o7..ld
08a0: 75 68 09 5b 25 6c 32 5d 2c 20 25 67 33 0a 09 62 uh.[%l2], %g3..b
08b0: 09 4c 31 31 0a 09 73 74 68 09 25 67 33 2c 20 5b .L11..sth.%g3, [
08c0: 25 6f 37 5d 0a 4c 34 36 3a 0a 09 62 6e 65 09 4c %o7].L46:..bne.L
08d0: 34 38 0a 09 63 6d 70 09 25 67 33 2c 20 38 0a 09 48..cmp.%g3, 8..
08e0: 6c 64 09 5b 25 69 30 2b 38 5d 2c 20 25 6f 37 0a ld.[%i0+8], %o7.
08f0: 09 6c 64 09 5b 25 6c 32 5d 2c 20 25 67 33 0a 09 .ld.[%l2], %g3..
0900: 62 09 4c 31 31 0a 09 73 74 09 25 67 33 2c 20 5b b.L11..st.%g3, [
0910: 25 6f 37 5d 0a 4c 34 38 3a 0a 09 62 6e 65 09 4c %o7].L48:..bne.L
0920: 35 30 0a 09 61 64 64 09 25 67 33 2c 20 33 2c 20 50..add.%g3, 3,
0930: 25 67 33 0a 09 6c 64 09 5b 25 6c 32 5d 2c 20 25 %g3..ld.[%l2], %
0940: 67 33 0a 09 6c 64 09 5b 25 69 30 2b 38 5d 2c 20 g3..ld.[%i0+8],
0950: 25 6f 37 0a 09 73 74 09 25 67 33 2c 20 5b 25 6f %o7..st.%g3, [%o
0960: 37 5d 0a 09 6c 64 09 5b 25 69 30 2b 38 5d 2c 20 7]..ld.[%i0+8],
0970: 25 6c 30 0a 09 6c 64 09 5b 25 6c 32 2b 34 5d 2c %l0..ld.[%l2+4],
0980: 20 25 67 33 0a 09 62 09 4c 31 31 0a 09 73 74 09 %g3..b.L11..st.
0990: 25 67 33 2c 20 5b 25 6c 30 2b 34 5d 0a 4c 35 30 %g3, [%l0+4].L50
09a0: 3a 0a 09 73 72 6c 09 25 67 33 2c 20 32 2c 20 25 :..srl.%g3, 2, %
09b0: 6c 31 0a 09 61 64 64 63 63 09 25 6c 31 2c 20 2d l1..addcc.%l1, -
09c0: 31 2c 20 25 6c 31 0a 09 62 6e 65 67 09 4c 31 31 1, %l1..bneg.L11
09d0: 0a 09 73 6c 6c 09 25 6c 31 2c 20 32 2c 20 25 6c ..sll.%l1, 2, %l
09e0: 30 0a 4c 35 34 3a 0a 09 6c 64 09 5b 25 6c 30 2b 0.L54:..ld.[%l0+
09f0: 25 6c 32 5d 2c 20 25 6f 37 0a 09 61 64 64 63 63 %l2], %o7..addcc
0a00: 09 25 6c 31 2c 20 2d 31 2c 20 25 6c 31 0a 09 6c .%l1, -1, %l1..l
0a10: 64 09 5b 25 69 30 2b 38 5d 2c 20 25 67 33 0a 09 d.[%i0+8], %g3..
0a20: 73 74 09 25 6f 37 2c 20 5b 25 67 33 2b 25 6c 30 st.%o7, [%g3+%l0
0a30: 5d 0a 09 62 70 6f 73 09 4c 35 34 0a 09 61 64 64 ]..bpos.L54..add
0a40: 09 25 6c 30 2c 20 2d 34 2c 20 25 6c 30 0a 09 62 .%l0, -4, %l0..b
0a50: 2c 61 09 4c 31 31 0a 4c 34 33 3a 0a 09 62 65 09 ,a.L11.L43:..be.
0a60: 4c 31 31 0a 09 6e 6f 70 0a 09 6c 64 09 5b 25 69 L11..nop..ld.[%i
0a70: 30 2b 31 36 5d 2c 20 25 67 33 0a 09 63 6d 70 09 0+16], %g3..cmp.
0a80: 25 67 33 2c 20 31 0a 09 62 6e 65 09 4c 35 38 0a %g3, 1..bne.L58.
0a90: 09 63 6d 70 09 25 67 33 2c 20 32 0a 4c 36 34 3a .cmp.%g3, 2.L64:
0aa0: 0a 09 6c 64 09 5b 25 69 30 2b 38 5d 2c 20 25 67 ..ld.[%i0+8], %g
0ab0: 33 0a 09 62 09 4c 31 31 0a 09 73 74 62 09 25 6c 3..b.L11..stb.%l
0ac0: 32 2c 20 5b 25 67 33 5d 0a 4c 35 38 3a 0a 09 62 2, [%g3].L58:..b
0ad0: 6e 65 09 4c 36 30 0a 09 63 6d 70 09 25 67 33 2c ne.L60..cmp.%g3,
0ae0: 20 34 0a 4c 36 35 3a 0a 09 6c 64 09 5b 25 69 30 4.L65:..ld.[%i0
0af0: 2b 38 5d 2c 20 25 67 33 0a 09 62 09 4c 31 31 0a +8], %g3..b.L11.
0b00: 09 73 74 68 09 25 6c 32 2c 20 5b 25 67 33 5d 0a .sth.%l2, [%g3].
0b10: 4c 36 30 3a 0a 09 62 6e 65 09 4c 31 31 0a 09 6e L60:..bne.L11..n
0b20: 6f 70 0a 4c 36 33 3a 0a 09 6c 64 09 5b 25 69 30 op.L63:..ld.[%i0
0b30: 2b 38 5d 2c 20 25 67 33 0a 4c 36 38 3a 0a 09 73 +8], %g3.L68:..s
0b40: 74 09 25 6c 32 2c 20 5b 25 67 33 5d 0a 4c 31 31 t.%l2, [%g3].L11
0b50: 3a 0a 09 72 65 74 0a 09 72 65 73 74 6f 72 65 20 :..ret..restore
0b60: 25 67 30 2c 20 30 2c 20 25 6f 30 0a %g0, 0, %o0.