Artifact bc4bcbf1e91beca18e81aa027a1ac55fbaa3f910:


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.