#include "asmsparc.h"
.file "vacall-sparc64.c"
.version "01.01"
.section ".text"
.align 4
.global __vacall
DECLARE_FUNCTION(__vacall)
.type __vacall,$function
.proc 020
__vacall:
.register %g2, $scratch
.register %g3, $scratch
!$PROLOGUE$ 0
save %sp, -448, %sp
!$PROLOGUE$ 1
add %fp, 2223, %o1
sethi %hi(vacall_function), %o3
stx %i5, [%o1-8]
stx %i0, [%o1-48]
stx %i1, [%o1-40]
stx %i2, [%o1-32]
stx %i3, [%o1-24]
stx %i4, [%o1-16]
std %f0, [%fp+1903]
std %f2, [%fp+1911]
std %f4, [%fp+1919]
std %f6, [%fp+1927]
std %f8, [%fp+1935]
std %f10, [%fp+1943]
std %f12, [%fp+1951]
std %f14, [%fp+1959]
std %f16, [%fp+1967]
std %f18, [%fp+1975]
std %f20, [%fp+1983]
std %f22, [%fp+1991]
std %f24, [%fp+1999]
std %f26, [%fp+2007]
std %f28, [%fp+2015]
std %f30, [%fp+2023]
st %f1, [%fp+1835]
st %f3, [%fp+1839]
st %f5, [%fp+1843]
st %f7, [%fp+1847]
st %f9, [%fp+1851]
st %f11, [%fp+1855]
st %f13, [%fp+1859]
st %f15, [%fp+1863]
st %f17, [%fp+1867]
st %f19, [%fp+1871]
st %f21, [%fp+1875]
add %o1, -48, %o1
st %f23, [%fp+1879]
add %fp, 1775, %o0
stx %o1, [%fp+1783]
ldx [%o3+%lo(vacall_function)], %o2
st %f25, [%fp+1883]
st %f27, [%fp+1887]
st %f29, [%fp+1891]
st %f31, [%fp+1895]
st %g0, [%fp+1775]
stx %g0, [%fp+1791]
st %g0, [%fp+1799]
call %o2, 0
st %g0, [%fp+1831]
ld [%fp+1799], %o0
cmp %o0, 0
be,pn %icc, .LL4
cmp %o0, 1
be,pn %icc, .LL104
mov %o0, %o1
cmp %o1, 2
bne,pt %icc, .LL7
cmp %o1, 3
.LL104:
ba,pt %xcc, .LL4
ldsb [%fp+1815], %i0
.LL7:
bne,pt %icc, .LL9
cmp %o1, 4
ba,pt %xcc, .LL4
ldub [%fp+1815], %i0
.LL9:
bne,pt %icc, .LL11
cmp %o1, 5
ba,pt %xcc, .LL4
ldsh [%fp+1815], %i0
.LL11:
bne,pt %icc, .LL13
cmp %o1, 6
ba,pt %xcc, .LL4
lduh [%fp+1815], %i0
.LL13:
bne,pt %icc, .LL15
cmp %o1, 7
ba,pt %xcc, .LL4
ldsw [%fp+1815], %i0
.LL15:
bne,pt %icc, .LL17
cmp %o1, 8
ba,pt %xcc, .LL4
lduw [%fp+1815], %i0
.LL17:
be,pn %icc, .LL105
cmp %o1, 9
be,pn %icc, .LL105
cmp %o1, 10
be,pn %icc, .LL105
cmp %o1, 11
be,pn %icc, .LL105
cmp %o1, 12
bne,pt %icc, .LL27
cmp %o1, 13
ba,pt %xcc, .LL4
ld [%fp+1815], %f0
.LL27:
bne,pt %icc, .LL29
cmp %o1, 14
ba,pt %xcc, .LL4
ldd [%fp+1815], %f0
.LL29:
bne,pt %icc, .LL31
cmp %o1, 15
.LL105:
ba,pt %xcc, .LL4
ldx [%fp+1815], %i0
.LL31:
bne,pt %icc, .LL4
ld [%fp+1775], %o0
mov %o0, %o1
and %o0, 1, %o0
cmp %o0, 0
be,pn %icc, .LL34
and %o1, 1024, %o0
ba,pt %xcc, .LL4
ldx [%fp+1791], %i0
.LL34:
cmp %o0, 0
be,pn %icc, .LL4
ldx [%fp+1807], %o0
mov %o0, %g2
add %o0, -1, %o0
cmp %o0, 31
bgu,pn %xcc, .LL4
cmp %g2, 1
bne,pt %xcc, .LL38
cmp %g2, 2
ldx [%fp+1791], %o0
ldub [%o0], %o1
ba,pt %xcc, .LL4
sllx %o1, 56, %i0
.LL38:
bne,pt %xcc, .LL40
cmp %g2, 3
ldx [%fp+1791], %o2
mov %o2, %o3
ldub [%o2], %o1
ldub [%o3+1], %o0
sllx %o1, 56, %o1
sllx %o0, 48, %o0
ba,pt %xcc, .LL4
or %o1, %o0, %i0
.LL40:
bne,pt %xcc, .LL42
cmp %g2, 4
ldx [%fp+1791], %o0
mov %o0, %o3
ldub [%o0], %o2
ldub [%o3+1], %o1
mov %o0, %o4
sllx %o2, 56, %o2
sllx %o1, 48, %o1
ldub [%o4+2], %o0
or %o2, %o1, %o2
sllx %o0, 40, %o0
ba,pt %xcc, .LL4
or %o2, %o0, %i0
.LL42:
bne,pt %xcc, .LL44
cmp %g2, 5
ldx [%fp+1791], %o2
mov %o2, %o3
ldub [%o2], %o1
ldub [%o3+1], %o0
mov %o2, %o4
sllx %o0, 48, %o0
sllx %o1, 56, %o1
or %o1, %o0, %o1
ldub [%o4+2], %o2
sllx %o2, 40, %o2
ldub [%o3+3], %o0
or %o1, %o2, %o1
sllx %o0, 32, %o0
ba,pt %xcc, .LL4
or %o1, %o0, %i0
.LL44:
bne,pt %xcc, .LL46
cmp %g2, 6
ldx [%fp+1791], %o2
mov %o2, %o3
ldub [%o2], %o1
ldub [%o3+1], %o0
mov %o2, %o4
sllx %o0, 48, %o0
ldub [%o2+2], %o3
sllx %o1, 56, %o1
sllx %o3, 40, %o3
or %o1, %o0, %o1
ldub [%o4+3], %o2
mov %o4, %o5
or %o1, %o3, %o1
sllx %o2, 32, %o2
ldub [%o5+4], %o0
or %o1, %o2, %o1
sllx %o0, 24, %o0
ba,pt %xcc, .LL4
or %o1, %o0, %i0
.LL46:
bne,pt %xcc, .LL48
cmp %g2, 7
ldx [%fp+1791], %o2
mov %o2, %o3
ldub [%o2], %o1
ldub [%o3+1], %o0
mov %o2, %o4
sllx %o0, 48, %o0
sllx %o1, 56, %o1
or %o1, %o0, %o1
ldub [%o4+2], %o2
sllx %o2, 40, %o2
ldub [%o3+3], %o0
or %o1, %o2, %o1
sllx %o0, 32, %o0
or %o1, %o0, %o1
ldub [%o4+4], %o2
sllx %o2, 24, %o2
ldub [%o3+5], %o0
or %o1, %o2, %o1
sllx %o0, 16, %o0
ba,pt %xcc, .LL4
or %o1, %o0, %i0
.LL48:
bne,pt %xcc, .LL50
add %g2, -8, %o0
ldx [%fp+1791], %o2
mov %o2, %o3
ldub [%o2], %o1
ldub [%o3+1], %o0
mov %o2, %o4
sllx %o0, 48, %o0
sllx %o1, 56, %o1
or %o1, %o0, %o1
ldub [%o4+2], %o2
sllx %o2, 40, %o2
ldub [%o3+3], %o0
or %o1, %o2, %o1
sllx %o0, 32, %o0
ldub [%o4+4], %o3
mov %o4, %o5
or %o1, %o0, %o1
sllx %o3, 24, %o3
ldub [%o5+5], %o2
or %o1, %o3, %o1
sllx %o2, 16, %o2
ldub [%o4+6], %o0
or %o1, %o2, %o1
sllx %o0, 8, %o0
ba,pt %xcc, .LL4
or %o1, %o0, %i0
.LL50:
cmp %o0, 24
bgu,pn %xcc, .LL4
ldx [%fp+1791], %o2
cmp %g2, 8
mov %o2, %o3
ldub [%o2], %o0
ldub [%o3+1], %o1
mov %o2, %o4
sllx %o1, 48, %o1
sllx %o0, 56, %o0
or %o0, %o1, %o0
ldub [%o4+2], %o2
sllx %o2, 40, %o2
ldub [%o3+3], %o1
or %o0, %o2, %o0
sllx %o1, 32, %o1
ldub [%o4+4], %o3
mov %o4, %o5
or %o0, %o1, %o0
sllx %o3, 24, %o3
ldub [%o5+5], %o2
or %o0, %o3, %o0
sllx %o2, 16, %o2
ldub [%o4+6], %o1
or %o0, %o2, %o0
sllx %o1, 8, %o1
mov %o4, %o2
or %o0, %o1, %o0
ldub [%o2+7], %o3
mov %o2, %g3
be,pn %xcc, .LL4
or %o0, %o3, %i0
cmp %g2, 9
bne,pt %xcc, .LL55
cmp %g2, 10
ldub [%g3+8], %o0
ba,pt %xcc, .LL4
sllx %o0, 56, %i1
.LL55:
bne,pt %xcc, .LL57
cmp %g2, 11
ldx [%fp+1791], %o2
ldub [%g3+8], %o1
ldub [%o2+9], %o0
sllx %o1, 56, %o1
sllx %o0, 48, %o0
ba,pt %xcc, .LL4
or %o1, %o0, %i1
.LL57:
bne,pt %xcc, .LL59
cmp %g2, 12
ldx [%fp+1791], %o0
ldub [%g3+8], %o2
ldub [%o0+9], %o1
mov %o0, %o3
sllx %o2, 56, %o2
sllx %o1, 48, %o1
ldub [%o3+10], %o0
or %o2, %o1, %o2
sllx %o0, 40, %o0
ba,pt %xcc, .LL4
or %o2, %o0, %i1
.LL59:
bne,pt %xcc, .LL61
cmp %g2, 13
ldx [%fp+1791], %o2
ldub [%g3+8], %o1
ldub [%o2+9], %o0
mov %o2, %o3
sllx %o0, 48, %o0
sllx %o1, 56, %o1
or %o1, %o0, %o1
ldub [%o3+10], %o2
mov %o3, %o4
sllx %o2, 40, %o2
ldub [%o4+11], %o0
or %o1, %o2, %o1
sllx %o0, 32, %o0
ba,pt %xcc, .LL4
or %o1, %o0, %i1
.LL61:
bne,pt %xcc, .LL63
cmp %g2, 14
ldx [%fp+1791], %o2
ldub [%g3+8], %o1
mov %o2, %o4
ldub [%o2+9], %o0
sllx %o0, 48, %o0
sllx %o1, 56, %o1
ldub [%o4+10], %o3
mov %o2, %o5
or %o1, %o0, %o1
sllx %o3, 40, %o3
ldub [%o5+11], %o2
or %o1, %o3, %o1
sllx %o2, 32, %o2
ldub [%o4+12], %o0
or %o1, %o2, %o1
sllx %o0, 24, %o0
ba,pt %xcc, .LL4
or %o1, %o0, %i1
.LL63:
bne,pt %xcc, .LL65
cmp %g2, 15
ldx [%fp+1791], %o2
ldub [%g3+8], %o1
ldub [%o2+9], %o0
mov %o2, %o3
sllx %o0, 48, %o0
sllx %o1, 56, %o1
mov %o3, %o4
or %o1, %o0, %o1
ldub [%o3+10], %o2
ldub [%o4+11], %o0
sllx %o2, 40, %o2
sllx %o0, 32, %o0
or %o1, %o2, %o1
or %o1, %o0, %o1
ldub [%o3+12], %o2
sllx %o2, 24, %o2
ldub [%o4+13], %o0
or %o1, %o2, %o1
sllx %o0, 16, %o0
ba,pt %xcc, .LL4
or %o1, %o0, %i1
.LL65:
bne,pt %xcc, .LL67
add %g2, -16, %o0
ldx [%fp+1791], %o2
ldub [%g3+8], %o1
ldub [%o2+9], %o0
mov %o2, %o3
sllx %o0, 48, %o0
sllx %o1, 56, %o1
mov %o3, %o4
ldub [%o3+10], %o2
or %o1, %o0, %o1
sllx %o2, 40, %o2
mov %o3, %o5
ldub [%o4+11], %o0
or %o1, %o2, %o1
sllx %o0, 32, %o0
ldub [%o5+12], %o3
or %o1, %o0, %o1
sllx %o3, 24, %o3
ldub [%o4+13], %o2
or %o1, %o3, %o1
sllx %o2, 16, %o2
ldub [%o5+14], %o0
or %o1, %o2, %o1
sllx %o0, 8, %o0
ba,pt %xcc, .LL4
or %o1, %o0, %i1
.LL67:
cmp %o0, 16
bgu,pn %xcc, .LL4
ldx [%fp+1791], %o2
ldub [%g3+8], %o0
ldub [%o2+9], %o1
mov %o2, %o3
sllx %o1, 48, %o1
sllx %o0, 56, %o0
mov %o3, %o4
ldub [%o3+10], %o2
or %o0, %o1, %o0
sllx %o2, 40, %o2
mov %o3, %o5
ldub [%o4+11], %o1
or %o0, %o2, %o0
sllx %o1, 32, %o1
ldub [%o5+12], %o3
or %o0, %o1, %o0
sllx %o3, 24, %o3
ldub [%o4+13], %o2
or %o0, %o3, %o0
sllx %o2, 16, %o2
ldub [%o5+14], %o1
or %o0, %o2, %o0
sllx %o1, 8, %o1
mov %o4, %o3
or %o0, %o1, %o0
ldub [%o3+15], %o2
cmp %g2, 16
be,pn %xcc, .LL4
or %o0, %o2, %i1
cmp %g2, 17
bne,pt %xcc, .LL72
cmp %g2, 18
ldub [%g3+16], %o0
ba,pt %xcc, .LL4
sllx %o0, 56, %i2
.LL72:
bne,pt %xcc, .LL74
cmp %g2, 19
ldx [%fp+1791], %o2
ldub [%g3+16], %o1
ldub [%o2+17], %o0
sllx %o1, 56, %o1
sllx %o0, 48, %o0
ba,pt %xcc, .LL4
or %o1, %o0, %i2
.LL74:
bne,pt %xcc, .LL76
cmp %g2, 20
ldx [%fp+1791], %o0
ldub [%g3+16], %o2
ldub [%o0+17], %o1
mov %o0, %o3
sllx %o2, 56, %o2
sllx %o1, 48, %o1
ldub [%o3+18], %o0
or %o2, %o1, %o2
sllx %o0, 40, %o0
ba,pt %xcc, .LL4
or %o2, %o0, %i2
.LL76:
bne,pt %xcc, .LL78
cmp %g2, 21
ldx [%fp+1791], %o2
ldub [%g3+16], %o1
ldub [%o2+17], %o0
mov %o2, %o3
sllx %o0, 48, %o0
sllx %o1, 56, %o1
or %o1, %o0, %o1
ldub [%o3+18], %o2
mov %o3, %o4
sllx %o2, 40, %o2
ldub [%o4+19], %o0
or %o1, %o2, %o1
sllx %o0, 32, %o0
ba,pt %xcc, .LL4
or %o1, %o0, %i2
.LL78:
bne,pt %xcc, .LL80
cmp %g2, 22
ldx [%fp+1791], %o2
ldub [%g3+16], %o1
mov %o2, %o4
ldub [%o2+17], %o0
sllx %o0, 48, %o0
sllx %o1, 56, %o1
ldub [%o4+18], %o3
mov %o2, %o5
or %o1, %o0, %o1
sllx %o3, 40, %o3
ldub [%o5+19], %o2
or %o1, %o3, %o1
sllx %o2, 32, %o2
ldub [%o4+20], %o0
or %o1, %o2, %o1
sllx %o0, 24, %o0
ba,pt %xcc, .LL4
or %o1, %o0, %i2
.LL80:
bne,pt %xcc, .LL82
cmp %g2, 23
ldx [%fp+1791], %o2
ldub [%g3+16], %o1
ldub [%o2+17], %o0
mov %o2, %o3
sllx %o0, 48, %o0
sllx %o1, 56, %o1
mov %o3, %o4
or %o1, %o0, %o1
ldub [%o3+18], %o2
ldub [%o4+19], %o0
sllx %o2, 40, %o2
sllx %o0, 32, %o0
or %o1, %o2, %o1
or %o1, %o0, %o1
ldub [%o3+20], %o2
sllx %o2, 24, %o2
ldub [%o4+21], %o0
or %o1, %o2, %o1
sllx %o0, 16, %o0
ba,pt %xcc, .LL4
or %o1, %o0, %i2
.LL82:
bne,pt %xcc, .LL84
add %g2, -24, %o0
ldx [%fp+1791], %o2
ldub [%g3+16], %o1
ldub [%o2+17], %o0
mov %o2, %o3
sllx %o0, 48, %o0
sllx %o1, 56, %o1
mov %o3, %o4
ldub [%o3+18], %o2
or %o1, %o0, %o1
sllx %o2, 40, %o2
mov %o3, %o5
ldub [%o4+19], %o0
or %o1, %o2, %o1
sllx %o0, 32, %o0
ldub [%o5+20], %o3
or %o1, %o0, %o1
sllx %o3, 24, %o3
ldub [%o4+21], %o2
or %o1, %o3, %o1
sllx %o2, 16, %o2
ldub [%o5+22], %o0
or %o1, %o2, %o1
sllx %o0, 8, %o0
ba,pt %xcc, .LL4
or %o1, %o0, %i2
.LL84:
cmp %o0, 8
bgu,pn %xcc, .LL4
ldx [%fp+1791], %o2
ldub [%g3+16], %o0
ldub [%o2+17], %o1
mov %o2, %o3
sllx %o1, 48, %o1
sllx %o0, 56, %o0
mov %o3, %o4
ldub [%o3+18], %o2
or %o0, %o1, %o0
sllx %o2, 40, %o2
mov %o3, %o5
ldub [%o4+19], %o1
or %o0, %o2, %o0
sllx %o1, 32, %o1
ldub [%o5+20], %o3
or %o0, %o1, %o0
sllx %o3, 24, %o3
ldub [%o4+21], %o2
or %o0, %o3, %o0
sllx %o2, 16, %o2
ldub [%o5+22], %o1
or %o0, %o2, %o0
sllx %o1, 8, %o1
mov %o4, %o3
or %o0, %o1, %o0
ldub [%o3+23], %o2
cmp %g2, 24
be,pn %xcc, .LL4
or %o0, %o2, %i2
cmp %g2, 25
bne,pt %xcc, .LL89
cmp %g2, 26
ldub [%g3+24], %o0
ba,pt %xcc, .LL4
sllx %o0, 56, %i3
.LL89:
bne,pt %xcc, .LL91
cmp %g2, 27
ldx [%fp+1791], %o2
ldub [%g3+24], %o1
ldub [%o2+25], %o0
sllx %o1, 56, %o1
sllx %o0, 48, %o0
ba,pt %xcc, .LL4
or %o1, %o0, %i3
.LL91:
bne,pt %xcc, .LL93
cmp %g2, 28
ldx [%fp+1791], %o0
ldub [%g3+24], %o2
ldub [%o0+25], %o1
mov %o0, %o3
sllx %o2, 56, %o2
sllx %o1, 48, %o1
ldub [%o3+26], %o0
or %o2, %o1, %o2
ba,pt %xcc, .LL106
sllx %o0, 40, %o0
.LL93:
bne,pt %xcc, .LL95
cmp %g2, 29
ldx [%fp+1791], %o2
ldub [%g3+24], %o1
ldub [%o2+25], %o0
mov %o2, %o3
sllx %o0, 48, %o0
sllx %o1, 56, %o1
or %o1, %o0, %o1
ldub [%o3+26], %o2
mov %o3, %o4
sllx %o2, 40, %o2
ldub [%o4+27], %o0
or %o1, %o2, %o1
sllx %o0, 32, %o0
ba,pt %xcc, .LL4
or %o1, %o0, %i3
.LL95:
bne,pt %xcc, .LL97
cmp %g2, 30
ldx [%fp+1791], %o2
ldub [%g3+24], %o1
mov %o2, %o4
ldub [%o2+25], %o0
sllx %o0, 48, %o0
sllx %o1, 56, %o1
ldub [%o4+26], %o3
mov %o2, %o5
or %o1, %o0, %o1
sllx %o3, 40, %o3
ldub [%o5+27], %o2
or %o1, %o3, %o1
sllx %o2, 32, %o2
ldub [%o4+28], %o0
or %o1, %o2, %o1
sllx %o0, 24, %o0
ba,pt %xcc, .LL4
or %o1, %o0, %i3
.LL97:
bne,pt %xcc, .LL99
cmp %g2, 31
ldx [%fp+1791], %o2
ldub [%g3+24], %o1
ldub [%o2+25], %o0
mov %o2, %o3
sllx %o0, 48, %o0
sllx %o1, 56, %o1
mov %o3, %o4
or %o1, %o0, %o1
ldub [%o3+26], %o2
ldub [%o4+27], %o0
sllx %o2, 40, %o2
sllx %o0, 32, %o0
or %o1, %o2, %o1
or %o1, %o0, %o1
ldub [%o3+28], %o2
sllx %o2, 24, %o2
ldub [%o4+29], %o0
or %o1, %o2, %o1
sllx %o0, 16, %o0
ba,pt %xcc, .LL4
or %o1, %o0, %i3
.LL99:
bne,pt %xcc, .LL101
cmp %g2, 32
ldx [%fp+1791], %o2
ldub [%g3+24], %o1
ldub [%o2+25], %o0
mov %o2, %o3
sllx %o0, 48, %o0
sllx %o1, 56, %o1
mov %o3, %o4
ldub [%o3+26], %o2
or %o1, %o0, %o1
sllx %o2, 40, %o2
mov %o3, %o5
ldub [%o4+27], %o0
or %o1, %o2, %o1
sllx %o0, 32, %o0
ldub [%o5+28], %o3
or %o1, %o0, %o1
sllx %o3, 24, %o3
ldub [%o4+29], %o2
or %o1, %o3, %o1
sllx %o2, 16, %o2
ldub [%o5+30], %o0
or %o1, %o2, %o1
sllx %o0, 8, %o0
ba,pt %xcc, .LL4
or %o1, %o0, %i3
.LL101:
bne,pt %xcc, .LL4
ldx [%fp+1791], %o2
ldub [%g3+24], %o0
ldub [%o2+25], %o1
mov %o2, %o3
sllx %o1, 48, %o1
sllx %o0, 56, %o0
mov %o3, %o4
ldub [%o3+26], %o2
or %o0, %o1, %o0
sllx %o2, 40, %o2
mov %o3, %o5
ldub [%o4+27], %o1
or %o0, %o2, %o0
sllx %o1, 32, %o1
ldub [%o5+28], %o3
or %o0, %o1, %o0
sllx %o3, 24, %o3
ldub [%o4+29], %o2
or %o0, %o3, %o0
sllx %o2, 16, %o2
ldub [%o5+30], %o1
or %o0, %o2, %o0
sllx %o1, 8, %o1
mov %o4, %o3
or %o0, %o1, %o0
ldub [%o3+31], %o2
.LL106:
or %o0, %o2, %i3
.LL4:
return %i7+8
nop
.LLfe1:
.size __vacall,.LLfe1-__vacall
.ident "GCC: (GNU) 2.95.2 19991024 (release)"