#pragma ident "%Z%%M% %I% %E% SMI"
.section ".text",#alloc,#execinstr
.file "mont_mulf_asm_v9.s"
.section ".rodata",#alloc
.align 8
!
! CONSTANT POOL
!
TwoTo16:
.word 1089470464
.word 0
.type TwoTo16,#object
.size TwoTo16,8
!
! CONSTANT POOL
!
TwoToMinus16:
.word 1055916032
.word 0
.type TwoToMinus16,#object
.size TwoToMinus16,8
!
! CONSTANT POOL
!
Zero:
.word 0
.word 0
.type Zero,#object
.size Zero,8
!
! CONSTANT POOL
!
TwoTo32:
.word 1106247680
.word 0
.type TwoTo32,#object
.size TwoTo32,8
!
! CONSTANT POOL
!
TwoToMinus32:
.word 1039138816
.word 0
.type TwoToMinus32,#object
.size TwoToMinus32,8
.section ".text",#alloc,#execinstr
.register %g3,#scratch
.register %g2,#scratch
.align 8
.skip 24
.align 4
! FILE mont_mulf.c
! 1 !
! 6 !#pragma ident "%Z%%M% %I% %E% SMI"
! 9 !
! 15 !#include <sys/types.h>
! 16 !#include <math.h>
! 18 !static const double TwoTo16 = 65536.0;
! 19 !static const double TwoToMinus16 = 1.0/65536.0;
! 20 !static const double Zero = 0.0;
! 21 !static const double TwoTo32 = 65536.0 * 65536.0;
! 22 !static const double TwoToMinus32 = 1.0 / (65536.0 * 65536.0);
! 24 !#ifdef RF_INLINE_MACROS
! 26 !double upper32(double);
! 27 !double lower32(double, double);
! 28 !double mod(double, double, double);
! 30 !#else
! 32 !static double
! 33 !upper32(double x)
! 34 !{
! 35 ! return (floor(x * TwoToMinus32));
! 36 !}
! 39 !
! 40 !static double
! 41 !lower32(double x, double y)
! 42 !{
! 43 ! return (x - TwoTo32 * floor(x * TwoToMinus32));
! 44 !}
! 46 !static double
! 47 !mod(double x, double oneoverm, double m)
! 48 !{
! 49 ! return (x - m * floor(x * oneoverm));
! 50 !}
! 52 !#endif
! 55 !static void
! 56 !cleanup(double *dt, int from, int tlen)
! 57 !{
!
! SUBROUTINE cleanup
!
! OFFSET SOURCE LINE LABEL INSTRUCTION
cleanup:
or %g0,%o7,%g3
sethi %hi(Zero),%o3
.L900000110:
call .+8
sethi %hi(_GLOBAL_OFFSET_TABLE_-(.L900000110-.)),%g2
add %o3,%lo(Zero),%o3
add %g2,%lo(_GLOBAL_OFFSET_TABLE_-(.L900000110-.)),%g2
add %g2,%o7,%o4
or %g0,%g3,%o7
ldx [%o4+%o3],%o5
sra %o1,0,%o3
or %g0,%o0,%o4
sra %o2,0,%o1
! 58 ! int i;
! 59 ! double tmp, tmp1, x, x1;
! 61 ! tmp = tmp1 = Zero;
! 63 ! for (i = 2 * from; i < 2 * tlen; i += 2) {
sll %o3,1,%g2
ldd [%o5],%f12
sll %o1,1,%o1
add %g2,1,%o2
cmp %g2,%o1
bge,pt %icc,.L77000145
fmovd %f12,%f10
! 64 ! x = dt[i];
sra %g2,0,%o0
sub %o1,1,%o3
.L900000111:
sllx %o0,3,%o0
! 65 ! x1 = dt[i + 1];
! 66 ! dt[i] = lower32(x, Zero) + tmp;
ldd [%o5],%f4
! 67 ! dt[i + 1] = lower32(x1, Zero) + tmp1;
! 68 ! tmp = upper32(x);
! 69 ! tmp1 = upper32(x1);
add %g2,2,%g2
sra %o2,0,%o1
ldd [%o4+%o0],%f6
add %o2,2,%o2
sllx %o1,3,%o1
cmp %g2,%o3
ldd [%o4+%o1],%f8
fdtox %f6,%f0
fdtox %f8,%f2
fmovs %f4,%f0
fmovs %f4,%f2
fxtod %f0,%f0
fdtox %f6,%f4
fxtod %f2,%f2
fdtox %f8,%f6
faddd %f0,%f10,%f0
std %f0,[%o4+%o0]
faddd %f2,%f12,%f0
std %f0,[%o4+%o1]
fitod %f4,%f10
fitod %f6,%f12
ble,pt %icc,.L900000111
sra %g2,0,%o0
.L77000145:
retl ! Result =
nop
.type cleanup,2
.size cleanup,(.-cleanup)
.section ".text",#alloc,#execinstr
.align 4
! 70 ! }
! 71 !}
! 74 !
! 75 !void
! 76 !conv_d16_to_i32(uint32_t *i32, double *d16, int64_t *tmp, int ilen)
! 77 !{
!
! SUBROUTINE conv_d16_to_i32
!
! OFFSET SOURCE LINE LABEL INSTRUCTION
.global conv_d16_to_i32
conv_d16_to_i32:
save %sp,-208,%sp
! 78 ! int i;
! 79 ! int64_t t, t1,
! 80 ! a, b, c, d;
! 81 !
! 82 !
! 83 ! t1 = 0;
! 84 ! a = (int64_t)d16[0];
ldd [%i1],%f0
sra %i3,0,%g5
or %g0,%i0,%l1
! 85 ! b = (int64_t)d16[1];
ldd [%i1+8],%f2
! 86 ! for (i = 0; i < ilen - 1; i++) {
sub %g5,1,%g2
or %g0,0,%l7
fdtox %f0,%f0
std %f0,[%sp+2247]
cmp %g2,0
fdtox %f2,%f0
std %f0,[%sp+2239]
or %g0,0,%o5
sub %g5,1,%g4
or %g0,-1,%g3
srl %g3,0,%l4
sub %g5,2,%l0
or %g0,%i1,%l2
or %g0,%i0,%o7
ldx [%sp+2247],%o1
or %g0,2,%o2
! 87 ! c = (int64_t)d16[2 * i + 2];
! 88 ! t1 += a & 0xffffffff;
! 89 ! t = (a >> 32);
! 90 ! d = (int64_t)d16[2 * i + 3];
! 91 ! t1 += (b & 0xffff) << 16;
! 92 ! t += (b >> 16) + (t1 >> 32);
! 93 ! i32[i] = t1 & 0xffffffff;
! 94 ! t1 = t;
! 95 ! a = c;
! 96 ! b = d;
or %g0,8,%i2
ldx [%sp+2239],%o0
ble,pt %icc,.L900000212
sethi %hi(0xfc00),%g2
sethi %hi(0xfc00),%g2
cmp %g4,7
add %g2,1023,%l3
bl,pn %icc,.L77000169
or %g0,3,%g5
ldd [%i1+16],%f0
or %g0,32,%g5
or %g0,40,%g4
ldd [%i1+24],%f2
and %o0,%l3,%g3
and %o1,%l4,%l6
srax %o0,16,%o0
fdtox %f0,%f0
std %f0,[%sp+2231]
sub %l0,3,%o2
fdtox %f2,%f0
std %f0,[%sp+2223]
ldd [%i1+%g4],%f2
or %g0,56,%g4
or %g0,3,%o5
ldd [%i1+%g5],%f0
sllx %g3,16,%g5
or %g0,48,%g3
add %l6,%g5,%l7
fdtox %f2,%f2
ldx [%sp+2231],%g2
srax %l7,32,%o3
fdtox %f0,%f0
std %f0,[%sp+2231]
ldd [%i1+%g3],%f0
srax %g2,32,%l6
or %g0,9,%i1
srax %o1,32,%g3
and %g2,%l4,%g2
ldx [%sp+2223],%g5
std %f2,[%sp+2223]
ldd [%l2+%g4],%f2
srax %g5,16,%i0
and %g5,%l3,%g4
ldx [%sp+2231],%l5
.L900000207:
sra %i2,0,%g5
add %o0,%o3,%o0
ldx [%sp+2223],%o1
fdtox %f0,%f0
std %f0,[%sp+2231]
sllx %g5,3,%g5
add %g3,%o0,%o0
sra %i1,0,%g3
and %l7,%l4,%o3
ldd [%l2+%g5],%f0
fdtox %f2,%f2
std %f2,[%sp+2223]
sllx %g3,3,%g3
add %i1,2,%g5
sllx %g4,16,%o4
add %i2,2,%g4
ldd [%l2+%g3],%f2
st %o3,[%o7]
add %g2,%o4,%g2
add %o5,3,%o5
add %g2,%o0,%g3
srax %l5,32,%g2
and %l5,%l4,%l5
srax %g3,32,%o4
ldx [%sp+2231],%o0
srax %o1,16,%o3
and %o1,%l3,%l7
sra %g4,0,%o1
add %i0,%o4,%i0
ldx [%sp+2223],%o4
fdtox %f0,%f0
std %f0,[%sp+2231]
sllx %o1,3,%o1
add %l6,%i0,%i0
sra %g5,0,%l6
and %g3,%l4,%g3
ldd [%l2+%o1],%f0
fdtox %f2,%f2
std %f2,[%sp+2223]
sllx %l6,3,%o1
add %i1,4,%g5
sllx %l7,16,%l6
add %i2,4,%g4
ldd [%l2+%o1],%f2
st %g3,[%o7+4]
add %l5,%l6,%g3
cmp %o5,%o2
add %g3,%i0,%l7
srax %o0,32,%g3
and %o0,%l4,%l6
srax %l7,32,%o1
ldx [%sp+2231],%l5
srax %o4,16,%o0
and %o4,%l3,%o4
sra %g4,0,%i0
add %o3,%o1,%o3
ldx [%sp+2223],%o1
fdtox %f0,%f0
std %f0,[%sp+2231]
sllx %i0,3,%i0
add %g2,%o3,%g2
sra %g5,0,%i1
and %l7,%l4,%o3
ldd [%l2+%i0],%f0
fdtox %f2,%f2
std %f2,[%sp+2223]
sllx %i1,3,%l7
add %g5,2,%i1
sllx %o4,16,%g5
add %i2,6,%i2
ldd [%l2+%l7],%f2
st %o3,[%o7+8]
add %l6,%g5,%g4
add %o7,12,%o7
add %g4,%g2,%l7
srax %l5,32,%l6
and %l5,%l4,%g2
srax %l7,32,%o3
ldx [%sp+2231],%l5
srax %o1,16,%i0
ble,pt %icc,.L900000207
and %o1,%l3,%g4
.L900000210:
sllx %g4,16,%g4
ldx [%sp+2223],%o1
add %o0,%o3,%g5
add %g3,%g5,%g3
add %g2,%g4,%g2
fdtox %f2,%f2
sra %i1,0,%g4
std %f2,[%sp+2223]
add %g2,%g3,%o2
sra %i2,0,%g2
and %o1,%l3,%g5
fdtox %f0,%f0
srax %o2,32,%g3
std %f0,[%sp+2231]
and %l5,%l4,%o0
sllx %g2,3,%g2
add %i0,%g3,%g3
sllx %g4,3,%g4
ldd [%l2+%g2],%f0
add %l6,%g3,%g2
sllx %g5,16,%g3
ldd [%l2+%g4],%f2
and %l7,%l4,%g5
srax %o1,16,%o1
ldx [%sp+2223],%o3
add %o0,%g3,%g3
srax %l5,32,%l5
ldx [%sp+2231],%o4
add %g3,%g2,%g2
srax %g2,32,%o0
st %g5,[%o7]
and %o3,%l3,%g3
sllx %g3,16,%g3
and %o4,%l4,%g4
fdtox %f0,%f0
std %f0,[%sp+2231]
add %o1,%o0,%o0
add %g4,%g3,%g3
and %o2,%l4,%g4
st %g4,[%o7+4]
add %l5,%o0,%l5
srax %o3,16,%g4
ldx [%sp+2231],%o1
add %g3,%l5,%g3
srax %g3,32,%o3
fdtox %f2,%f2
std %f2,[%sp+2223]
add %o7,16,%o7
and %g2,%l4,%g2
st %g2,[%o7-8]
add %g4,%o3,%g4
add %o5,1,%o5
srax %o4,32,%o3
ldx [%sp+2223],%o0
and %g3,%l4,%g2
cmp %o5,%l0
st %g2,[%o7-4]
bg,pn %icc,.L77000162
add %o3,%g4,%l7
add %i1,2,%g5
add %i2,2,%o2
.L77000169:
sra %o2,0,%g2
.L900000211:
sra %g5,0,%g4
and %o0,%l3,%o3
sllx %g2,3,%g2
and %o1,%l4,%g3
sllx %g4,3,%g4
ldd [%l2+%g2],%f0
add %l7,%g3,%g3
ldd [%l2+%g4],%f2
sllx %o3,16,%g2
add %o5,1,%o5
fdtox %f0,%f0
std %f0,[%sp+2231]
srax %o0,16,%o3
fdtox %f2,%f0
srax %o1,32,%o1
std %f0,[%sp+2223]
add %g3,%g2,%g2
add %o2,2,%o2
srax %g2,32,%o0
and %g2,%l4,%g3
st %g3,[%o7]
ldx [%sp+2231],%g2
add %o3,%o0,%o0
add %g5,2,%g5
add %o1,%o0,%l7
add %o7,4,%o7
ldx [%sp+2223],%g4
or %g0,%g2,%o1
cmp %o5,%l0
or %g0,%g4,%o0
ble,pt %icc,.L900000211
sra %o2,0,%g2
! 97 ! }
! 98 ! t1 += a & 0xffffffff;
! 99 ! t = (a >> 32);
! 100 ! t1 += (b & 0xffff) << 16;
! 101 ! i32[i] = t1 & 0xffffffff;
.L77000162:
sethi %hi(0xfc00),%g2
.L900000212:
or %g0,-1,%g3
srl %g3,0,%g3
add %g2,1023,%g2
and %o1,%g3,%g4
and %o0,%g2,%g2
sllx %g2,16,%g2
add %l7,%g4,%g4
sra %o5,0,%g5
add %g4,%g2,%g4
sllx %g5,2,%g2
and %g4,%g3,%g3
st %g3,[%l1+%g2]
ret ! Result =
restore %g0,%g0,%g0
.type conv_d16_to_i32,2
.size conv_d16_to_i32,(.-conv_d16_to_i32)
.section ".text",#alloc,#execinstr
.align 8
!
! CONSTANT POOL
!
___const_seg_900000301:
.word 1127219200,0
.type ___const_seg_900000301,1
.size ___const_seg_900000301,(.-___const_seg_900000301)
.align 8
.skip 24
.align 4
! 102 !}
! 104 !void
! 105 !conv_i32_to_d32(double *d32, uint32_t *i32, int len)
! 106 !{
!
! SUBROUTINE conv_i32_to_d32
!
! OFFSET SOURCE LINE LABEL INSTRUCTION
.global conv_i32_to_d32
conv_i32_to_d32:
or %g0,%o7,%g2
! 107 ! int i;
! 109 !#pragma pipeloop(0)
! 110 ! for (i = 0; i < len; i++)
! 111 ! d32[i] = (double)(i32[i]);
sethi %hi(___const_seg_900000301),%g1
.L900000309:
call .+8
sethi %hi(_GLOBAL_OFFSET_TABLE_-(.L900000309-.)),%o4
add %o4,%lo(_GLOBAL_OFFSET_TABLE_-(.L900000309-.)),%o4
sra %o2,0,%o2
add %o4,%o7,%o5
cmp %o2,0
ble,pt %icc,.L77000181
or %g0,%g2,%o7
sub %o2,1,%o4
add %g1,%lo(___const_seg_900000301),%o2
ldx [%o5+%o2],%o5
add %o4,1,%o3
cmp %o3,9
bl,pn %icc,.L77000185
or %g0,0,%o2
ld [%o1],%f3
sub %o4,4,%o3
or %g0,4,%o2
ld [%o1+12],%f9
ldd [%o5],%f6
ld [%o1+8],%f11
ld [%o1+4],%f13
fmovs %f6,%f2
add %o1,16,%o1
.L900000305:
ld [%o1],%f1
add %o2,5,%o2
add %o1,20,%o1
fsubd %f2,%f6,%f2
std %f2,[%o0]
cmp %o2,%o3
add %o0,40,%o0
fmovs %f6,%f12
fsubd %f12,%f6,%f4
ld [%o1-16],%f3
std %f4,[%o0-32]
fmovs %f6,%f10
fsubd %f10,%f6,%f4
ld [%o1-12],%f13
std %f4,[%o0-24]
fmovs %f6,%f8
fsubd %f8,%f6,%f4
ld [%o1-8],%f11
std %f4,[%o0-16]
fmovs %f6,%f0
fsubd %f0,%f6,%f0
ld [%o1-4],%f9
std %f0,[%o0-8]
ble,pt %icc,.L900000305
fmovs %f6,%f2
.L900000308:
fmovs %f6,%f12
add %o0,32,%o0
cmp %o2,%o4
fmovs %f6,%f10
fmovs %f6,%f8
fsubd %f2,%f6,%f0
std %f0,[%o0-32]
fsubd %f12,%f6,%f0
std %f0,[%o0-24]
fsubd %f10,%f6,%f0
std %f0,[%o0-16]
fsubd %f8,%f6,%f0
bg,pn %icc,.L77000181
std %f0,[%o0-8]
.L77000185:
ld [%o1],%f1
.L900000310:
ldd [%o5],%f6
add %o2,1,%o2
add %o1,4,%o1
cmp %o2,%o4
fmovs %f6,%f0
fsubd %f0,%f6,%f0
std %f0,[%o0]
add %o0,8,%o0
ble,a,pt %icc,.L900000310
ld [%o1],%f1
.L77000181:
retl ! Result =
nop
.type conv_i32_to_d32,2
.size conv_i32_to_d32,(.-conv_i32_to_d32)
.section ".text",#alloc,#execinstr
.align 8
!
! CONSTANT POOL
!
___const_seg_900000401:
.word 1127219200,0
.type ___const_seg_900000401,1
.size ___const_seg_900000401,(.-___const_seg_900000401)
.align 8
.skip 24
.align 4
! 112 !}
! 115 !void
! 116 !conv_i32_to_d16(double *d16, uint32_t *i32, int len)
! 117 !{
!
! SUBROUTINE conv_i32_to_d16
!
! OFFSET SOURCE LINE LABEL INSTRUCTION
.global conv_i32_to_d16
conv_i32_to_d16:
save %sp,-192,%sp
.L900000410:
call .+8
sethi %hi(_GLOBAL_OFFSET_TABLE_-(.L900000410-.)),%g3
sethi %hi(___const_seg_900000401),%g2
sra %i2,0,%o0
add %g3,%lo(_GLOBAL_OFFSET_TABLE_-(.L900000410-.)),%g3
! 118 ! int i;
! 119 ! uint32_t a;
! 121 !#pragma pipeloop(0)
! 122 ! for (i = 0; i < len; i++) {
cmp %o0,0
ble,pt %icc,.L77000197
add %g3,%o7,%g5
add %g2,%lo(___const_seg_900000401),%g2
or %g0,%o0,%g4
ldx [%g5+%g2],%o5
sethi %hi(0xfc00),%g3
sub %o0,1,%o2
add %g3,1023,%o3
or %g0,%i1,%o1
or %g0,0,%o0
or %g0,0,%g5
! 123 ! a = i32[i];
! 124 ! d16[2 * i] = (double)(a & 0xffff);
ldd [%o5],%f2
cmp %g4,4
bl,pn %icc,.L77000201
or %g0,1,%l0
ld [%i1],%g3
fmovs %f2,%f0
or %g0,0,%g4
! 125 ! d16[2 * i + 1] = (double)(a >> 16);
fmovs %f2,%f4
add %i1,12,%o1
or %g0,3,%o0
and %g3,%o3,%g5
st %g5,[%sp+2227]
or %g0,2,%l1
srl %g3,16,%g3
st %g3,[%sp+2223]
or %g0,8,%g5
ld [%i1+4],%g3
or %g0,3,%l0
and %g3,%o3,%g2
ld [%sp+2227],%f1
ld [%sp+2223],%f5
st %g2,[%sp+2227]
fsubd %f0,%f2,%f0
srl %g3,16,%g2
st %g2,[%sp+2223]
std %f0,[%i0+%g4]
fsubd %f4,%f2,%f0
ld [%i1+8],%g2
std %f0,[%i0+%g5]
.L900000406:
add %o0,1,%o0
add %o1,4,%o1
ld [%sp+2227],%f1
cmp %o0,%o2
ld [%sp+2223],%f5
nop ! volatile
nop ! volatile
nop ! volatile
and %g2,%o3,%g3
srl %g2,16,%g2
st %g3,[%sp+2227]
st %g2,[%sp+2223]
ld [%o1-4],%g2
fmovs %f2,%f4
sra %l0,0,%g4
fmovs %f2,%f0
sra %l1,0,%g3
fsubd %f0,%f2,%f0
sllx %g3,3,%g3
sllx %g4,3,%g4
std %f0,[%i0+%g3]
add %l1,2,%l1
fsubd %f4,%f2,%f0
std %f0,[%i0+%g4]
ble,pt %icc,.L900000406
add %l0,2,%l0
.L900000409:
and %g2,%o3,%g3
ld [%sp+2223],%f5
fmovs %f2,%f0
ld [%sp+2227],%f1
sra %l1,0,%g4
add %l1,2,%g5
srl %g2,16,%g2
st %g2,[%sp+2223]
fmovs %f2,%f4
sllx %g4,3,%g2
st %g3,[%sp+2227]
add %l0,2,%g4
fsubd %f0,%f2,%f0
std %f0,[%i0+%g2]
sra %l0,0,%g3
fsubd %f4,%f2,%f0
sllx %g3,3,%g3
std %f0,[%i0+%g3]
sra %g5,0,%g2
ld [%sp+2227],%f1
sra %g4,0,%g3
ld [%sp+2223],%f5
sllx %g2,3,%g2
fmovs %f2,%f0
sllx %g3,3,%g3
fmovs %f2,%f4
fsubd %f0,%f2,%f0
std %f0,[%i0+%g2]
fsubd %f4,%f2,%f0
std %f0,[%i0+%g3]
ret ! Result =
restore %g0,%g0,%g0
.L77000201:
ld [%o1],%g3
.L900000411:
sra %g5,0,%g2
ldd [%o5],%f2
add %o0,1,%o0
sllx %g2,3,%g4
and %g3,%o3,%g2
st %g2,[%sp+2227]
fmovs %f2,%f0
srl %g3,16,%g3
add %o1,4,%o1
sra %l0,0,%g2
add %g5,2,%g5
sllx %g2,3,%g2
cmp %o0,%o2
ld [%sp+2227],%f1
add %l0,2,%l0
fsubd %f0,%f2,%f0
std %f0,[%i0+%g4]
st %g3,[%sp+2223]
fmovs %f2,%f0
ld [%sp+2223],%f1
fsubd %f0,%f2,%f0
std %f0,[%i0+%g2]
ble,a,pt %icc,.L900000411
ld [%o1],%g3
.L77000197:
ret ! Result =
restore %g0,%g0,%g0
.type conv_i32_to_d16,2
.size conv_i32_to_d16,(.-conv_i32_to_d16)
.section ".text",#alloc,#execinstr
.align 8
!
! CONSTANT POOL
!
___const_seg_900000501:
.word 1127219200,0
.type ___const_seg_900000501,1
.size ___const_seg_900000501,(.-___const_seg_900000501)
.align 8
.skip 24
.align 4
! 126 ! }
! 127 !}
! 129 !#ifdef RF_INLINE_MACROS
! 131 !void
! 132 !i16_to_d16_and_d32x4(const double *,
! 133 ! const double *,
! 134 ! const double *,
! 135 ! double *,
! 136 ! double *,
! 137 ! float *);
! 138 !
! 140 !#else
! 143 !
! 144 !static void
! 145 !i16_to_d16_and_d32x4(const double *dummy1,
! 146 ! const double *dummy2,
! 147 ! const double *dummy3,
! 148 ! double *result16,
! 149 ! double *result32,
! 150 ! float *src)
! 151 !
! 152 !{
! 153 ! uint32_t *i32;
! 154 ! uint32_t a, b, c, d;
! 156 ! i32 = (uint32_t *)src;
! 157 ! a = i32[0];
! 158 ! b = i32[1];
! 159 ! c = i32[2];
! 160 ! d = i32[3];
! 161 ! result16[0] = (double)(a & 0xffff);
! 162 ! result16[1] = (double)(a >> 16);
! 163 ! result32[0] = (double)a;
! 164 ! result16[2] = (double)(b & 0xffff);
! 165 ! result16[3] = (double)(b >> 16);
! 166 ! result32[1] = (double)b;
! 167 ! result16[4] = (double)(c & 0xffff);
! 168 ! result16[5] = (double)(c >> 16);
! 169 ! result32[2] = (double)c;
! 170 ! result16[6] = (double)(d & 0xffff);
! 171 ! result16[7] = (double)(d >> 16);
! 172 ! result32[3] = (double)d;
! 173 !}
! 175 !#endif
! 178 !void
! 179 !conv_i32_to_d32_and_d16(double *d32, double *d16, uint32_t *i32, int len)
! 180 !{
!
! SUBROUTINE conv_i32_to_d32_and_d16
!
! OFFSET SOURCE LINE LABEL INSTRUCTION
.global conv_i32_to_d32_and_d16
conv_i32_to_d32_and_d16:
save %sp,-192,%sp
.L900000512:
call .+8
sethi %hi(_GLOBAL_OFFSET_TABLE_-(.L900000512-.)),%g4
! 181 ! int i;
! 182 ! uint32_t a;
! 184 !#pragma pipeloop(0)
! 185 ! for (i = 0; i < len - 3; i += 4) {
or %g0,0,%g5
sra %i3,0,%l1
add %g4,%lo(_GLOBAL_OFFSET_TABLE_-(.L900000512-.)),%g4
sub %l1,3,%g2
add %g4,%o7,%o0
cmp %g2,0
or %g0,0,%o7
ble,pt %icc,.L900000515
cmp %o7,%l1
sethi %hi(Zero),%g2
add %g2,%lo(Zero),%g2
sub %l1,4,%o1
ldx [%o0+%g2],%o2
ldd [%o2],%f8
! 186 ! i16_to_d16_and_d32x4(&TwoToMinus16, &TwoTo16, &Zero,
! 187 ! &(d16[2*i]), &(d32[i]),
! 188 ! (float *)(&(i32[i])));
.L900000514:
sra %o7,0,%g2
fmovd %f8,%f10
ldd [%o2-8],%f6
sllx %g2,2,%g3
fmovd %f8,%f12
ldd [%o2-16],%f16
ld [%i2+%g3],%f11
add %i2,%g3,%g3
fmovd %f8,%f14
ld [%g3+4],%f13
sra %g5,0,%g4
add %o7,4,%o7
ld [%g3+8],%f15
fxtod %f10,%f10
sllx %g2,3,%g2
ld [%g3+12],%f9
fxtod %f12,%f12
sllx %g4,3,%g3
fxtod %f14,%f14
std %f10,[%i0+%g2]
add %i0,%g2,%g4
fxtod %f8,%f8
fmuld %f6,%f10,%f0
std %f8,[%g4+24]
fmuld %f6,%f12,%f2
std %f12,[%g4+8]
add %i1,%g3,%g2
fmuld %f6,%f14,%f4
std %f14,[%g4+16]
cmp %o7,%o1
fmuld %f6,%f8,%f6
fdtox %f0,%f0
add %g5,8,%g5
fdtox %f2,%f2
fdtox %f4,%f4
fdtox %f6,%f6
fxtod %f0,%f0
std %f0,[%g2+8]
fxtod %f2,%f2
std %f2,[%g2+24]
fxtod %f4,%f4
std %f4,[%g2+40]
fxtod %f6,%f6
std %f6,[%g2+56]
fmuld %f0,%f16,%f0
fmuld %f2,%f16,%f2
fmuld %f4,%f16,%f4
fsubd %f10,%f0,%f0
std %f0,[%i1+%g3]
fmuld %f6,%f16,%f6
fsubd %f12,%f2,%f2
std %f2,[%g2+16]
fsubd %f14,%f4,%f4
std %f4,[%g2+32]
fsubd %f8,%f6,%f6
std %f6,[%g2+48]
ble,a,pt %icc,.L900000514
ldd [%o2],%f8
! 189 ! }
! 190 ! for (; i < len; i++) {
.L77000212:
cmp %o7,%l1
.L900000515:
bge,pt %icc,.L77000217
nop
sll %o7,1,%l0
sethi %hi(___const_seg_900000501),%g2
add %g2,%lo(___const_seg_900000501),%g2
sub %l1,%o7,%g4
ldx [%o0+%g2],%l6
sethi %hi(0xfc00),%g3
cmp %g4,7
add %g3,1023,%l2
bl,pn %icc,.L77000214
add %l0,1,%g2
! 191 ! a = i32[i];
sra %o7,0,%o3
! 192 ! d32[i] = (double)(i32[i]);
ldd [%l6],%f8
! 193 ! d16[2 * i] = (double)(a & 0xffff);
! 194 ! d16[2 * i + 1] = (double)(a >> 16);
add %o7,1,%g3
sllx %o3,2,%g5
add %o7,2,%o1
sra %g3,0,%o0
ld [%i2+%g5],%o2
fmovs %f8,%f6
sllx %o0,2,%o4
fmovs %f8,%f0
add %l0,2,%o5
sra %o1,0,%l7
fmovs %f8,%f2
and %o2,%l2,%g4
st %g4,[%sp+2227]
srl %o2,16,%o2
add %l0,3,%g4
ld [%i2+%o4],%o7
sra %l0,0,%l0
sub %l1,4,%g3
st %o2,[%sp+2223]
sllx %l7,2,%o2
ld [%i2+%g5],%f7
sllx %o3,3,%o3
and %o7,%l2,%g5
srl %o7,16,%o7
sra %g2,0,%g2
fsubd %f6,%f8,%f4
ld [%sp+2227],%f1
sllx %g2,3,%g2
st %g5,[%sp+2227]
ld [%i2+%o2],%g5
fsubd %f0,%f8,%f0
ld [%sp+2223],%f3
st %o7,[%sp+2223]
sllx %l0,3,%o7
std %f4,[%i0+%o3]
std %f0,[%i1+%o7]
fsubd %f2,%f8,%f0
ld [%i2+%o4],%f11
std %f0,[%i1+%g2]
.L900000508:
ld [%sp+2227],%f7
nop ! volatile
nop ! volatile
nop ! volatile
nop ! volatile
add %o1,1,%o1
ld [%sp+2223],%f1
sra %o1,0,%g2
sllx %g2,2,%o3
and %g5,%l2,%o4
srl %g5,16,%o7
st %o4,[%sp+2227]
fmovs %f8,%f6
fmovs %f8,%f10
sra %o5,0,%o4
ld [%i2+%o3],%g5
st %o7,[%sp+2223]
fsubd %f10,%f8,%f4
sllx %o4,3,%o4
fsubd %f6,%f8,%f6
sllx %o0,3,%o0
ld [%i2+%o2],%f3
std %f4,[%i0+%o0]
sra %g4,0,%o0
add %o5,2,%o2
fmovs %f8,%f0
std %f6,[%i1+%o4]
sllx %o0,3,%o0
add %g4,2,%o4
fsubd %f0,%f8,%f0
std %f0,[%i1+%o0]
ld [%sp+2227],%f1
nop ! volatile
nop ! volatile
nop ! volatile
nop ! volatile
add %o1,1,%o1
ld [%sp+2223],%f5
sra %o1,0,%o0
sllx %o0,2,%g4
and %g5,%l2,%o5
srl %g5,16,%o7
st %o5,[%sp+2227]
fmovs %f8,%f0
fmovs %f8,%f2
sra %o2,0,%o5
ld [%i2+%g4],%g5
st %o7,[%sp+2223]
fsubd %f2,%f8,%f2
sllx %o5,3,%o5
fsubd %f0,%f8,%f0
sllx %l7,3,%o7
ld [%i2+%o3],%f7
std %f2,[%i0+%o7]
sra %o4,0,%o7
add %o2,2,%o3
fmovs %f8,%f4
std %f0,[%i1+%o5]
sllx %o7,3,%o2
add %o4,2,%o4
fsubd %f4,%f8,%f0
std %f0,[%i1+%o2]
ld [%sp+2227],%f1
nop ! volatile
nop ! volatile
nop ! volatile
nop ! volatile
add %o1,1,%o1
ld [%sp+2223],%f3
sra %o1,0,%l7
sllx %l7,2,%o2
and %g5,%l2,%o5
srl %g5,16,%o7
st %o5,[%sp+2227]
fmovs %f8,%f0
fmovs %f8,%f6
sra %o3,0,%o5
ld [%i2+%o2],%g5
st %o7,[%sp+2223]
fsubd %f6,%f8,%f4
sllx %o5,3,%o7
fsubd %f0,%f8,%f0
sllx %g2,3,%g2
ld [%i2+%g4],%f11
std %f4,[%i0+%g2]
sra %o4,0,%g2
add %o3,2,%o5
fmovs %f8,%f2
std %f0,[%i1+%o7]
sllx %g2,3,%g2
add %o4,2,%g4
fsubd %f2,%f8,%f0
cmp %o1,%g3
bl,pt %icc,.L900000508
std %f0,[%i1+%g2]
.L900000511:
add %o1,1,%o7
ld [%sp+2227],%f1
add %o3,4,%g3
fmovs %f8,%f10
sra %o7,0,%o4
and %g5,%l2,%g2
st %g2,[%sp+2227]
fmovs %f8,%f2
sllx %o4,2,%o3
fmovs %f8,%f0
add %g3,4,%l0
srl %g5,16,%g2
ld [%i2+%o3],%o1
fmovs %f8,%f4
add %g4,2,%g5
add %o7,1,%o7
ld [%sp+2223],%f3
sra %g4,0,%g4
fsubd %f10,%f8,%f6
st %g2,[%sp+2223]
sra %o5,0,%g2
fsubd %f0,%f8,%f0
sllx %o0,3,%o5
ld [%i2+%o2],%f5
and %o1,%l2,%o0
sllx %g2,3,%g2
std %f6,[%i0+%o5]
add %g3,2,%o2
std %f0,[%i1+%g2]
fsubd %f2,%f8,%f0
sllx %g4,3,%g4
sra %g3,0,%g2
std %f0,[%i1+%g4]
fsubd %f4,%f8,%f4
srl %o1,16,%o1
ld [%sp+2223],%f3
add %g5,2,%o5
ld [%sp+2227],%f1
sllx %l7,3,%g3
cmp %o7,%l1
st %o0,[%sp+2227]
sllx %g2,3,%g4
add %g5,4,%g2
fmovs %f8,%f0
st %o1,[%sp+2223]
sra %g5,0,%g5
fmovs %f8,%f2
std %f4,[%i0+%g3]
sllx %g5,3,%g5
ld [%i2+%o3],%f7
sra %o2,0,%o0
fsubd %f0,%f8,%f0
std %f0,[%i1+%g4]
sllx %o4,3,%o1
fsubd %f2,%f8,%f0
std %f0,[%i1+%g5]
sllx %o0,3,%o0
ld [%sp+2223],%f3
sra %o5,0,%o2
ld [%sp+2227],%f1
sllx %o2,3,%g3
fmovs %f8,%f6
fmovs %f8,%f0
fmovs %f8,%f2
fsubd %f6,%f8,%f4
std %f4,[%i0+%o1]
fsubd %f0,%f8,%f0
std %f0,[%i1+%o0]
fsubd %f2,%f8,%f0
bge,pn %icc,.L77000217
std %f0,[%i1+%g3]
.L77000214:
sra %o7,0,%g3
.L900000513:
ldd [%l6],%f8
sllx %g3,2,%g4
add %o7,1,%o7
ld [%i2+%g4],%f1
sra %l0,0,%g5
cmp %o7,%l1
ld [%i2+%g4],%g4
sllx %g3,3,%g3
add %l0,2,%l0
fmovs %f8,%f0
sllx %g5,3,%o0
and %g4,%l2,%g5
fsubd %f0,%f8,%f0
std %f0,[%i0+%g3]
srl %g4,16,%g3
st %g5,[%sp+2227]
sra %g2,0,%g4
add %g2,2,%g2
sllx %g4,3,%g4
fmovs %f8,%f0
ld [%sp+2227],%f1
fsubd %f0,%f8,%f0
std %f0,[%i1+%o0]
st %g3,[%sp+2223]
fmovs %f8,%f0
ld [%sp+2223],%f1
fsubd %f0,%f8,%f0
std %f0,[%i1+%g4]
bl,pt %icc,.L900000513
sra %o7,0,%g3
.L77000217:
ret ! Result =
restore %g0,%g0,%g0
.type conv_i32_to_d32_and_d16,2
.size conv_i32_to_d32_and_d16,(.-conv_i32_to_d32_and_d16)
.section ".text",#alloc,#execinstr
.align 4
! 195 ! }
! 196 !}
! 199 !static void
! 200 !adjust_montf_result(uint32_t *i32, uint32_t *nint, int len)
! 201 !{
!
! SUBROUTINE adjust_montf_result
!
! OFFSET SOURCE LINE LABEL INSTRUCTION
adjust_montf_result:
sra %o2,0,%o3
or %g0,%o0,%o2
! 202 ! int64_t acc;
! 203 ! int i;
! 205 ! if (i32[len] > 0)
sllx %o3,2,%o0
ld [%o2+%o0],%o0
cmp %o0,0
bgu,pn %icc,.L77000263
subcc %o3,1,%o5
bneg,pn %icc,.L77000263
sra %o5,0,%o0
! 206 ! i = -1;
! 207 ! else {
! 208 ! for (i = len - 1; i >= 0; i--) {
! 209 ! if (i32[i] != nint[i]) break;
.L900000612:
sllx %o0,2,%o0
ld [%o2+%o0],%o4
ld [%o1+%o0],%o0
cmp %o4,%o0
bne,pn %icc,.L77000248
nop
subcc %o5,1,%o5
bpos,pt %icc,.L900000612
sra %o5,0,%o0
.L900000605:
ba .L900000611
cmp %o3,0
.L77000248:
bleu,pt %icc,.L77000256
nop
! 210 ! }
! 211 ! }
! 212 ! if ((i < 0) || (i32[i] > nint[i])) {
! 213 ! acc = 0;
! 214 ! for (i = 0; i < len; i++) {
.L77000263:
cmp %o3,0
.L900000611:
ble,pt %icc,.L77000256
nop
or %g0,-1,%o4
or %g0,%o3,%o0
sub %o3,1,%g2
or %g0,0,%o3
srl %o4,0,%g3
cmp %o0,4
or %g0,0,%o5
bl,pn %icc,.L77000264
or %g0,%o1,%o4
! 215 ! acc = acc + (uint64_t)(i32[i]) - (uint64_t)(nint[i]);
ld [%o2+4],%g5
! 216 ! i32[i] = acc & 0xffffffff;
! 217 ! acc = acc >> 32;
add %o1,4,%o4
add %o2,8,%o2
sub %o0,2,%g4
ld [%o2-8],%o1
or %g0,2,%o3
ld [%o4-4],%o0
sub %o1,%o0,%o0
or %g0,%o0,%o1
and %o0,%g3,%o0
st %o0,[%o2-8]
srax %o1,32,%o0
.L900000606:
add %o3,1,%o3
ld [%o4],%o1
add %o4,4,%o4
cmp %o3,%g4
add %o2,4,%o2
sub %g5,%o1,%o1
add %o1,%o0,%o1
and %o1,%g3,%o0
ld [%o2-4],%g5
st %o0,[%o2-8]
ble,pt %icc,.L900000606
srax %o1,32,%o0
.L900000609:
ld [%o4],%o1
add %o4,8,%o4
add %o3,1,%o3
ld [%o2],%o5
add %o2,4,%o2
cmp %o3,%g2
sub %g5,%o1,%o1
add %o1,%o0,%o1
and %o1,%g3,%o0
st %o0,[%o2-8]
ld [%o4-4],%o0
srax %o1,32,%o1
sub %o5,%o0,%o0
add %o0,%o1,%o1
and %o1,%g3,%o0
st %o0,[%o2-4]
bg,pn %icc,.L77000256
srax %o1,32,%o5
.L77000264:
ld [%o2],%o0
.L900000610:
ld [%o4],%o1
add %o5,%o0,%o0
add %o3,1,%o3
add %o4,4,%o4
cmp %o3,%g2
sub %o0,%o1,%o1
and %o1,%g3,%o0
st %o0,[%o2]
add %o2,4,%o2
srax %o1,32,%o5
ble,a,pt %icc,.L900000610
ld [%o2],%o0
.L77000256:
retl ! Result =
nop
.type adjust_montf_result,2
.size adjust_montf_result,(.-adjust_montf_result)
.section ".text",#alloc,#execinstr
.align 8
.skip 24
.align 4
! 218 ! }
! 219 ! }
! 220 !}
! 223 !
! 228 !void mont_mulf_noconv(uint32_t *result,
! 229 ! double *dm1, double *dm2, double *dt,
! 230 ! double *dn, uint32_t *nint,
! 231 ! int nlen, double dn0)
! 232 !{
!
! SUBROUTINE mont_mulf_noconv
!
! OFFSET SOURCE LINE LABEL INSTRUCTION
.global mont_mulf_noconv
mont_mulf_noconv:
save %sp,-224,%sp
.L900000738:
call .+8
sethi %hi(_GLOBAL_OFFSET_TABLE_-(.L900000738-.)),%g5
sethi %hi(Zero),%g2
ldx [%fp+2223],%g3
fmovd %f14,%f42
add %g5,%lo(_GLOBAL_OFFSET_TABLE_-(.L900000738-.)),%g5
add %g2,%lo(Zero),%g2
sra %g3,0,%l4
add %g5,%o7,%o1
! 233 ! int i, j, jj;
! 234 ! double digit, m2j, a, b;
! 235 ! double *pdm1, *pdm2, *pdn, *pdtj, pdn_0, pdm1_0;
! 237 ! pdm1 = &(dm1[0]);
! 238 ! pdm2 = &(dm2[0]);
! 239 ! pdn = &(dn[0]);
! 240 ! pdm2[2 * nlen] = Zero;
sll %l4,1,%g3
ldx [%o1+%g2],%o7
or %g0,%i2,%l3
sra %g3,0,%g2
or %g0,%i0,%l6
sllx %g2,3,%i2
ldd [%o7],%f0
or %g0,%i3,%l0
or %g0,%i5,%i0
! 242 ! if (nlen != 16) {
cmp %l4,16
be,pn %icc,.L77000362
std %f0,[%l3+%i2]
! 243 ! for (i = 0; i < 4 * nlen + 2; i++)
sll %l4,2,%g4
or %g0,%i1,%l5
add %g4,2,%g2
or %g0,%i4,%l7
cmp %g2,0
ble,a,pt %icc,.L900000752
ldd [%i1],%f4
add %g4,1,%o0
or %g0,0,%g4
! 244 ! dt[i] = Zero;
! 245 ! a = dt[0] = pdm1[0] * pdm2[0];
! 246 ! digit = mod(lower32(a, Zero) * dn0, TwoToMinus16, TwoTo16);
! 248 ! pdtj = &(dt[0]);
! 249 ! for (j = jj = 0; j < 2 * nlen; j++, jj++, pdtj++) {
! 250 ! m2j = pdm2[j];
! 251 ! a = pdtj[0] + pdn[0] * digit;
! 252 ! b = pdtj[1] + pdm1[0] * pdm2[j + 1] + a * TwoToMinus16;
! 253 ! pdtj[1] = b;
! 255 !#pragma pipeloop(0)
! 256 ! for (i = 1; i < nlen; i++) {
! 257 ! pdtj[2 * i] += pdm1[i] * m2j + pdn[i] * digit;
! 258 ! }
! 259 ! if (jj == 30) {
! 260 ! cleanup(dt, j / 2 + 1, 2 * nlen + 1);
! 261 ! jj = 0;
! 262 ! }
! 264 ! digit = mod(lower32(b, Zero) * dn0,
! 265 ! TwoToMinus16, TwoTo16);
! 266 ! }
! 267 ! } else {
! 268 ! a = dt[0] = pdm1[0] * pdm2[0];
! 270 ! dt[65] = dt[64] = dt[63] = dt[62] = dt[61] = dt[60] =
! 271 ! dt[59] = dt[58] = dt[57] = dt[56] = dt[55] =
! 272 ! dt[54] = dt[53] = dt[52] = dt[51] = dt[50] =
! 273 ! dt[49] = dt[48] = dt[47] = dt[46] = dt[45] =
! 274 ! dt[44] = dt[43] = dt[42] = dt[41] = dt[40] =
! 275 ! dt[39] = dt[38] = dt[37] = dt[36] = dt[35] =
! 276 ! dt[34] = dt[33] = dt[32] = dt[31] = dt[30] =
! 277 ! dt[29] = dt[28] = dt[27] = dt[26] = dt[25] =
! 278 ! dt[24] = dt[23] = dt[22] = dt[21] = dt[20] =
! 279 ! dt[19] = dt[18] = dt[17] = dt[16] = dt[15] =
! 280 ! dt[14] = dt[13] = dt[12] = dt[11] = dt[10] =
! 281 ! dt[9] = dt[8] = dt[7] = dt[6] = dt[5] = dt[4] =
! 282 ! dt[3] = dt[2] = dt[1] = Zero;
! 284 ! pdn_0 = pdn[0];
! 285 ! pdm1_0 = pdm1[0];
! 287 ! digit = mod(lower32(a, Zero) * dn0, TwoToMinus16, TwoTo16);
! 288 ! pdtj = &(dt[0]);
! 290 ! for (j = 0; j < 32; j++, pdtj++) {
add %o0,1,%g2
cmp %g2,3
bl,pn %icc,.L77000363
or %g0,%i3,%g5
std %f0,[%i3]
add %i3,8,%g5
sub %o0,1,%g2
or %g0,1,%g4
.L900000722:
std %f0,[%g5]
add %g4,2,%g4
add %g5,16,%g5
cmp %g4,%g2
ble,pt %icc,.L900000722
std %f0,[%g5-8]
.L900000725:
cmp %g4,%o0
bg,pn %icc,.L77000368
nop ! volatile
.L77000363:
ldd [%o7],%f0
.L900000751:
std %f0,[%g5]
add %g4,1,%g4
add %g5,8,%g5
cmp %g4,%o0
ble,a,pt %icc,.L900000751
ldd [%o7],%f0
.L77000368:
ldd [%i1],%f4
.L900000752:
cmp %g3,0
add %g3,1,%g2
ldd [%l3],%f0
sll %g2,1,%i1
or %g0,%i3,%o4
ldd [%o7],%f2
add %l5,8,%g2
or %g0,0,%i4
fmuld %f4,%f0,%f0
std %f0,[%i3]
sub %g3,1,%i3
ldd [%o7-8],%f28
add %l7,8,%g3
or %g0,0,%l1
ldd [%o7-16],%f30
sub %l4,1,%o5
or %g0,1,%l2
fdtox %f0,%f4
fmovs %f2,%f4
fxtod %f4,%f0
fmuld %f0,%f14,%f0
fmuld %f0,%f28,%f2
fdtox %f2,%f2
fxtod %f2,%f2
fmuld %f2,%f30,%f2
fsubd %f0,%f2,%f22
ble,pt %icc,.L900000745
add %l0,%i2,%g4
ldd [%l7],%f0
stx %g3,[%sp+2223]
stx %g2,[%sp+2231]
.L900000746:
sra %l2,0,%g2
fmuld %f0,%f22,%f4
ldd [%l5],%f2
sllx %g2,3,%g2
ldd [%o4],%f6
cmp %l4,1
ldd [%l3+%g2],%f0
sra %l1,0,%g2
or %g0,1,%g4
faddd %f6,%f4,%f6
sllx %g2,3,%g2
ldx [%sp+2231],%g5
fmuld %f2,%f0,%f0
ldd [%o4+8],%f2
or %g0,32,%o1
ldd [%l3+%g2],%f24
sub %l4,3,%i5
or %g0,16,%o2
ldx [%sp+2223],%g3
or %g0,6,%o3
faddd %f2,%f0,%f0
fmuld %f6,%f28,%f2
faddd %f0,%f2,%f26
std %f26,[%o4+8]
ble,pt %icc,.L900000750
cmp %i4,30
cmp %o5,7
bl,pn %icc,.L77000367
or %g0,2,%o0
ldd [%l5+8],%f4
add %l7,32,%g3
add %l5,40,%g5
ldd [%l7+8],%f0
or %g0,5,%g4
or %g0,6,%o0
ldd [%l5+16],%f2
fmuld %f4,%f24,%f10
ldd [%l7+16],%f8
fmuld %f0,%f22,%f0
ldd [%o4+16],%f14
fmuld %f2,%f24,%f4
ldd [%l5+24],%f2
ldd [%l7+24],%f6
faddd %f10,%f0,%f10
ldd [%o4+%o1],%f12
ldd [%l5+32],%f0
.L900000734:
sllx %o0,3,%g2
add %g4,3,%g4
ldd [%g3],%f16
fmuld %f8,%f22,%f8
add %o3,2,%o0
cmp %g4,%i5
ldd [%o4+%g2],%f18
sra %o0,0,%o3
add %g3,24,%g3
ldd [%g5],%f20
faddd %f14,%f10,%f10
std %f10,[%o4+%o2]
faddd %f4,%f8,%f4
add %g5,24,%g5
fmuld %f2,%f24,%f10
fmuld %f6,%f22,%f6
sllx %o3,3,%o2
ldd [%g3-16],%f8
add %o0,2,%o0
ldd [%o4+%o2],%f14
sra %o0,0,%o3
faddd %f12,%f4,%f4
ldd [%g5-16],%f2
std %f4,[%o4+%o1]
faddd %f10,%f6,%f4
fmuld %f0,%f24,%f10
fmuld %f16,%f22,%f16
sllx %o3,3,%o1
ldd [%g3-8],%f6
add %o0,2,%o3
ldd [%o4+%o1],%f12
sra %o3,0,%o0
faddd %f18,%f4,%f4
ldd [%g5-8],%f0
std %f4,[%o4+%g2]
faddd %f10,%f16,%f10
ble,pt %icc,.L900000734
fmuld %f20,%f24,%f4
.L900000737:
fmuld %f8,%f22,%f8
ldd [%g3],%f16
sllx %o0,3,%g2
faddd %f14,%f10,%f10
ldd [%o4+%g2],%f14
fmuld %f2,%f24,%f2
add %o3,2,%o0
fmuld %f6,%f22,%f6
std %f10,[%o4+%o2]
sra %o0,0,%o2
faddd %f4,%f8,%f4
fmuld %f0,%f24,%f0
sllx %o2,3,%o2
fmuld %f16,%f22,%f8
cmp %g4,%o5
add %o3,4,%o0
faddd %f2,%f6,%f2
add %g3,8,%g3
ldd [%o4+%o2],%f10
faddd %f12,%f4,%f4
faddd %f0,%f8,%f0
std %f4,[%o4+%o1]
faddd %f14,%f2,%f2
std %f2,[%o4+%g2]
faddd %f10,%f0,%f0
bg,pn %icc,.L77000296
std %f0,[%o4+%o2]
.L77000367:
ldd [%g5],%f2
.L900000749:
ldd [%g3],%f0
fmuld %f2,%f24,%f2
sra %o0,0,%g2
sllx %g2,3,%g2
add %g4,1,%g4
fmuld %f0,%f22,%f0
ldd [%o4+%g2],%f4
add %g5,8,%g5
add %g3,8,%g3
add %o0,2,%o0
cmp %g4,%o5
faddd %f2,%f0,%f0
faddd %f4,%f0,%f0
std %f0,[%o4+%g2]
ble,a,pt %icc,.L900000749
ldd [%g5],%f2
.L77000296:
cmp %i4,30
.L900000750:
bne,a,pt %icc,.L900000748
fdtox %f26,%f0
srl %l1,31,%g2
ldd [%o7],%f12
sub %i1,1,%o0
add %l1,%g2,%g2
sra %g2,1,%g2
fmovd %f12,%f10
add %g2,1,%g2
sll %g2,1,%g2
cmp %g2,%i1
bge,pt %icc,.L77000298
or %g0,0,%i4
or %g0,%g2,%g4
add %g2,1,%g5
sra %g4,0,%g2
.L900000747:
sllx %g2,3,%g2
ldd [%o7],%f4
add %g4,2,%g4
sra %g5,0,%g3
ldd [%l0+%g2],%f6
add %g5,2,%g5
sllx %g3,3,%g3
cmp %g4,%o0
ldd [%l0+%g3],%f8
fdtox %f6,%f0
fdtox %f8,%f2
fmovs %f4,%f0
fmovs %f4,%f2
fxtod %f0,%f0
fdtox %f6,%f4
fxtod %f2,%f2
fdtox %f8,%f6
faddd %f0,%f10,%f0
std %f0,[%l0+%g2]
faddd %f2,%f12,%f0
std %f0,[%l0+%g3]
fitod %f4,%f10
fitod %f6,%f12
ble,pt %icc,.L900000747
sra %g4,0,%g2
.L77000316:
or %g0,0,%i4
.L77000298:
fdtox %f26,%f0
.L900000748:
ldd [%o7],%f2
add %l1,1,%l1
add %l2,1,%l2
add %i4,1,%i4
add %o4,8,%o4
cmp %l1,%i3
fmovs %f2,%f0
fxtod %f0,%f0
fmuld %f0,%f42,%f0
fmuld %f0,%f28,%f2
fdtox %f2,%f2
fxtod %f2,%f2
fmuld %f2,%f30,%f2
fsubd %f0,%f2,%f22
ble,a,pt %icc,.L900000746
ldd [%l7],%f0
.L900000721:
ba .L900000745
add %l0,%i2,%g4
.L77000362:
ldd [%i1],%f4
or %g0,1,%g5
or %g0,%i3,%g4
ldd [%l3],%f2
std %f0,[%i3+8]
std %f0,[%i3+16]
fmuld %f4,%f2,%f2
std %f2,[%i3]
std %f0,[%i3+24]
std %f0,[%i3+32]
fdtox %f2,%f2
std %f0,[%i3+40]
std %f0,[%i3+48]
std %f0,[%i3+56]
std %f0,[%i3+64]
fmovs %f0,%f2
std %f0,[%i3+72]
std %f0,[%i3+80]
fxtod %f2,%f2
std %f0,[%i3+88]
std %f0,[%i3+96]
std %f0,[%i3+104]
std %f0,[%i3+112]
std %f0,[%i3+120]
std %f0,[%i3+128]
std %f0,[%i3+136]
std %f0,[%i3+144]
std %f0,[%i3+152]
std %f0,[%i3+160]
std %f0,[%i3+168]
std %f0,[%i3+176]
std %f0,[%i3+184]
std %f0,[%i3+192]
std %f0,[%i3+200]
std %f0,[%i3+208]
std %f0,[%i3+216]
std %f0,[%i3+224]
std %f0,[%i3+232]
std %f0,[%i3+240]
std %f0,[%i3+248]
fmuld %f2,%f14,%f6
! 292 ! m2j = pdm2[j];
! 293 ! a = pdtj[0] + pdn_0 * digit;
! 294 ! b = pdtj[1] + pdm1_0 * pdm2[j + 1] + a * TwoToMinus16;
sra %g5,0,%g2
std %f0,[%i3+256]
or %g0,0,%g3
std %f0,[%i3+264]
std %f0,[%i3+272]
std %f0,[%i3+280]
std %f0,[%i3+288]
std %f0,[%i3+296]
std %f0,[%i3+304]
std %f0,[%i3+312]
std %f0,[%i3+320]
std %f0,[%i3+328]
std %f0,[%i3+336]
std %f0,[%i3+344]
std %f0,[%i3+352]
std %f0,[%i3+360]
std %f0,[%i3+368]
std %f0,[%i3+376]
std %f0,[%i3+384]
std %f0,[%i3+392]
std %f0,[%i3+400]
std %f0,[%i3+408]
ldd [%o7-8],%f44
ldd [%o7-16],%f46
std %f0,[%i3+416]
fmuld %f6,%f44,%f4
std %f0,[%i3+424]
std %f0,[%i3+432]
std %f0,[%i3+440]
fdtox %f4,%f2
std %f0,[%i3+448]
std %f0,[%i3+456]
std %f0,[%i3+464]
fxtod %f2,%f2
std %f0,[%i3+472]
std %f0,[%i3+480]
std %f0,[%i3+488]
fmuld %f2,%f46,%f2
std %f0,[%i3+496]
std %f0,[%i3+504]
std %f0,[%i3+512]
fsubd %f6,%f2,%f38
std %f0,[%i3+520]
ldd [%i4],%f36
ldd [%i1],%f40
.L900000744:
fmovd %f38,%f0
fmovd %f42,%f18
ldd [%i4],%f2
ldd [%g4],%f8
ldd [%i1],%f10
ldd [%o7-8],%f14
ldd [%o7-16],%f16
ldd [%l3],%f24
ldd [%i1+8],%f26
ldd [%i1+16],%f40
ldd [%i1+48],%f46
ldd [%i1+56],%f30
ldd [%i1+64],%f54
ldd [%i1+104],%f34
ldd [%i1+112],%f58
ldd [%i4+8],%f28
ldd [%i4+104],%f38
ldd [%i4+112],%f60
.L99999999:
!1
ldd [%i1+24],%f32
fmuld %f0,%f2,%f4
!2
ldd [%i4+24],%f36
fmuld %f26,%f24,%f20
!3
ldd [%i1+40],%f42
fmuld %f28,%f0,%f22
!4
ldd [%i4+40],%f44
fmuld %f32,%f24,%f32
!5
ldd [%l3+8],%f6
faddd %f4,%f8,%f4
fmuld %f36,%f0,%f36
!6
add %l3,8,%l3
ldd [%i4+56],%f50
fmuld %f42,%f24,%f42
!7
ldd [%i1+72],%f52
faddd %f20,%f22,%f20
fmuld %f44,%f0,%f44
!8
ldd [%g4+16],%f22
fmuld %f10,%f6,%f12
!9
ldd [%i4+72],%f56
faddd %f32,%f36,%f32
fmuld %f14,%f4,%f4
!10
ldd [%g4+48],%f36
fmuld %f30,%f24,%f48
!11
ldd [%g4+8],%f8
faddd %f20,%f22,%f20
fmuld %f50,%f0,%f50
!12
std %f20,[%g4+16]
faddd %f42,%f44,%f42
fmuld %f52,%f24,%f52
!13
ldd [%g4+80],%f44
faddd %f4,%f12,%f4
fmuld %f56,%f0,%f56
!14
ldd [%i1+88],%f20
faddd %f32,%f36,%f32
!15
ldd [%i4+88],%f22
faddd %f48,%f50,%f48
!16
ldd [%g4+112],%f50
faddd %f52,%f56,%f52
!17
ldd [%g4+144],%f56
faddd %f4,%f8,%f8
fmuld %f20,%f24,%f20
!18
std %f32,[%g4+48]
faddd %f42,%f44,%f42
fmuld %f22,%f0,%f22
!19
std %f42,[%g4+80]
faddd %f48,%f50,%f48
fmuld %f34,%f24,%f32
!20
std %f48,[%g4+112]
faddd %f52,%f56,%f52
fmuld %f38,%f0,%f36
!21
ldd [%i1+120],%f42
fdtox %f8,%f4
!22
std %f52,[%g4+144]
faddd %f20,%f22,%f20
!23
ldd [%i4+120],%f44
!24
ldd [%g4+176],%f22
faddd %f32,%f36,%f32
fmuld %f42,%f24,%f42
!25
ldd [%i4+16],%f50
fmovs %f17,%f4
!26
ldd [%i1+32],%f52
fmuld %f44,%f0,%f44
!27
ldd [%i4+32],%f56
fmuld %f40,%f24,%f48
!28
ldd [%g4+208],%f36
faddd %f20,%f22,%f20
fmuld %f50,%f0,%f50
!29
std %f20,[%g4+176]
fxtod %f4,%f4
fmuld %f52,%f24,%f52
!30
ldd [%i4+48],%f22
faddd %f42,%f44,%f42
fmuld %f56,%f0,%f56
!31
ldd [%g4+240],%f44
faddd %f32,%f36,%f32
!32
std %f32,[%g4+208]
faddd %f48,%f50,%f48
fmuld %f46,%f24,%f20
!33
ldd [%g4+32],%f50
fmuld %f4,%f18,%f12
!34
ldd [%i4+64],%f36
faddd %f52,%f56,%f52
fmuld %f22,%f0,%f22
!35
ldd [%g4+64],%f56
faddd %f42,%f44,%f42
!36
std %f42,[%g4+240]
faddd %f48,%f50,%f48
fmuld %f54,%f24,%f32
!37
std %f48,[%g4+32]
fmuld %f12,%f14,%f4
!38
ldd [%i1+80],%f42
faddd %f52,%f56,%f56 ! yes, tmp52!
fmuld %f36,%f0,%f36
!39
ldd [%i4+80],%f44
faddd %f20,%f22,%f20
!40
ldd [%i1+96],%f48
fmuld %f58,%f24,%f52
!41
ldd [%i4+96],%f50
fdtox %f4,%f4
fmuld %f42,%f24,%f42
!42
std %f56,[%g4+64] ! yes, tmp52!
faddd %f32,%f36,%f32
fmuld %f44,%f0,%f44
!43
ldd [%g4+96],%f22
fmuld %f48,%f24,%f48
!44
ldd [%g4+128],%f36
fmovd %f6,%f24
fmuld %f50,%f0,%f50
!45
fxtod %f4,%f4
fmuld %f60,%f0,%f56
!46
add %g4,8,%g4
faddd %f42,%f44,%f42
!47
ldd [%g4+160-8],%f44
faddd %f20,%f22,%f20
!48
std %f20,[%g4+96-8]
faddd %f48,%f50,%f48
!49
ldd [%g4+192-8],%f50
faddd %f52,%f56,%f52
fmuld %f4,%f16,%f4
!50
ldd [%g4+224-8],%f56
faddd %f32,%f36,%f32
!51
std %f32,[%g4+128-8]
faddd %f42,%f44,%f42
!52
add %g3,1,%g3
std %f42,[%g4+160-8]
faddd %f48,%f50,%f48
!53
cmp %g3,31
std %f48,[%g4+192-8]
fsubd %f12,%f4,%f0
!54
faddd %f52,%f56,%f52
ble,pt %icc,.L99999999
std %f52,[%g4+224-8]
!55
std %f8,[%g4]
! 321 ! }
! 322 ! }
! 324 ! conv_d16_to_i32(result, dt + 2 * nlen, (int64_t *)dt, nlen + 1);
.L77000371:
add %l0,%i2,%g4
.L900000745:
ldd [%l0+%i2],%f0
or %g0,-1,%l3
ldd [%g4+8],%f2
or %g0,0,%i2
or %g0,0,%o5
fdtox %f0,%f0
std %f0,[%sp+2263]
cmp %l4,0
fdtox %f2,%f0
std %f0,[%sp+2255]
srl %l3,0,%l2
or %g0,2,%o0
sub %l4,1,%l0
or %g0,%l6,%o7
or %g0,32,%o3
or %g0,16,%g3
or %g0,40,%o4
ldx [%sp+2255],%g5
or %g0,9,%i3
or %g0,8,%i4
ldx [%sp+2263],%o1
ble,pt %icc,.L900000743
sethi %hi(0xfc00),%g2
sethi %hi(0xfc00),%g2
cmp %l4,7
add %g2,1023,%l1
bl,pn %icc,.L77000372
or %g0,3,%o2
ldd [%g4+16],%f0
srax %g5,16,%o2
and %g5,%l1,%g3
ldd [%g4+24],%f2
sllx %g3,16,%o0
and %o1,%l2,%i1
fdtox %f0,%f0
std %f0,[%sp+2247]
add %i1,%o0,%i1
fdtox %f2,%f0
std %f0,[%sp+2239]
or %g0,48,%g3
ldd [%g4+%o4],%f2
or %g0,56,%o4
or %g0,3,%o5
ldd [%g4+%o3],%f0
sub %l4,4,%o3
fdtox %f2,%f2
ldx [%sp+2247],%g2
fdtox %f0,%f0
std %f0,[%sp+2247]
srax %g2,32,%l7
ldd [%g4+%g3],%f0
and %g2,%l2,%g2
srax %o1,32,%g3
ldx [%sp+2239],%o0
std %f2,[%sp+2239]
srax %o0,16,%i2
ldd [%g4+%o4],%f2
and %o0,%l1,%g5
srax %i1,32,%o4
ldx [%sp+2247],%l5
.L900000726:
sra %i4,0,%o0
add %o2,%o4,%o1
ldx [%sp+2239],%o2
fdtox %f0,%f0
std %f0,[%sp+2247]
sllx %o0,3,%o0
add %g3,%o1,%o1
sra %i3,0,%g3
and %i1,%l2,%o4
ldd [%g4+%o0],%f0
fdtox %f2,%f2
std %f2,[%sp+2239]
sllx %g3,3,%g3
add %i3,2,%o0
sllx %g5,16,%i1
add %i4,2,%g5
ldd [%g4+%g3],%f2
st %o4,[%o7]
add %g2,%i1,%g2
add %o5,3,%o5
add %g2,%o1,%g3
srax %l5,32,%g2
and %l5,%l2,%i1
srax %g3,32,%l5
ldx [%sp+2247],%o4
srax %o2,16,%o1
and %o2,%l1,%i3
sra %g5,0,%o2
add %i2,%l5,%i2
ldx [%sp+2239],%l5
fdtox %f0,%f0
std %f0,[%sp+2247]
sllx %o2,3,%o2
add %l7,%i2,%i2
sra %o0,0,%l7
and %g3,%l2,%g3
ldd [%g4+%o2],%f0
fdtox %f2,%f2
std %f2,[%sp+2239]
sllx %l7,3,%o2
add %o0,2,%o0
sllx %i3,16,%l7
add %i4,4,%g5
ldd [%g4+%o2],%f2
st %g3,[%o7+4]
add %i1,%l7,%g3
cmp %o5,%o3
add %g3,%i2,%i1
srax %o4,32,%g3
and %o4,%l2,%l7
srax %i1,32,%i2
ldx [%sp+2247],%o4
srax %l5,16,%o2
and %l5,%l1,%l5
sra %g5,0,%i3
add %o1,%i2,%i2
ldx [%sp+2239],%o1
fdtox %f0,%f0
std %f0,[%sp+2247]
sllx %i3,3,%i3
add %g2,%i2,%g2
sra %o0,0,%i2
and %i1,%l2,%i1
ldd [%g4+%i3],%f0
fdtox %f2,%f2
std %f2,[%sp+2239]
sllx %i2,3,%i2
add %o0,2,%i3
sllx %l5,16,%o0
add %i4,6,%i4
ldd [%g4+%i2],%f2
st %i1,[%o7+8]
add %l7,%o0,%g5
add %o7,12,%o7
add %g5,%g2,%i1
srax %o4,32,%l7
and %o4,%l2,%g2
srax %i1,32,%o4
ldx [%sp+2247],%l5
srax %o1,16,%i2
ble,pt %icc,.L900000726
and %o1,%l1,%g5
.L900000729:
sllx %g5,16,%g5
ldx [%sp+2239],%o1
add %o2,%o4,%o0
add %g3,%o0,%g3
add %g2,%g5,%g2
fdtox %f2,%f2
sra %i3,0,%g5
std %f2,[%sp+2239]
add %g2,%g3,%o2
sra %i4,0,%g2
and %o1,%l1,%o0
fdtox %f0,%f0
srax %o2,32,%g3
std %f0,[%sp+2247]
add %o5,1,%o5
sllx %g2,3,%g2
add %i2,%g3,%g3
sllx %g5,3,%g5
ldd [%g4+%g2],%f0
and %l5,%l2,%i2
sllx %o0,16,%g2
ldd [%g4+%g5],%f2
add %l7,%g3,%g3
srax %o1,16,%o1
ldx [%sp+2239],%o3
add %i2,%g2,%g2
srax %l5,32,%l5
ldx [%sp+2247],%o4
add %g2,%g3,%g2
srax %g2,32,%g5
and %o3,%l1,%g3
fdtox %f0,%f0
sllx %g3,16,%g3
std %f0,[%sp+2247]
and %o4,%l2,%o0
srax %o3,16,%o3
add %o1,%g5,%g5
fdtox %f2,%f2
std %f2,[%sp+2239]
srax %o4,32,%o4
add %o0,%g3,%g3
add %l5,%g5,%l5
and %o2,%l2,%o0
st %o0,[%o7+4]
ldx [%sp+2247],%o1
and %i1,%l2,%l7
add %g3,%l5,%g3
st %l7,[%o7]
srax %g3,32,%l5
add %o7,16,%o7
ldx [%sp+2239],%g5
and %g2,%l2,%g2
add %o3,%l5,%o3
st %g2,[%o7-8]
and %g3,%l2,%g2
cmp %o5,%l0
st %g2,[%o7-4]
bg,pn %icc,.L77000319
add %o4,%o3,%i2
add %i3,2,%o2
add %i4,2,%o0
.L77000372:
sra %o0,0,%g2
.L900000742:
sllx %g2,3,%g2
and %g5,%l1,%o4
sra %o2,0,%o3
ldd [%g4+%g2],%f0
and %o1,%l2,%g3
sllx %o3,3,%o3
add %i2,%g3,%g3
sllx %o4,16,%g2
ldd [%g4+%o3],%f2
fdtox %f0,%f0
srax %g5,16,%o4
std %f0,[%sp+2247]
add %g3,%g2,%g2
srax %g2,32,%o3
and %g2,%l2,%g3
fdtox %f2,%f0
srax %o1,32,%o1
std %f0,[%sp+2239]
add %o4,%o3,%o3
st %g3,[%o7]
add %o5,1,%o5
add %o1,%o3,%i2
ldx [%sp+2247],%g2
add %o0,2,%o0
add %o2,2,%o2
ldx [%sp+2239],%g5
add %o7,4,%o7
cmp %o5,%l0
or %g0,%g2,%o1
ble,pt %icc,.L900000742
sra %o0,0,%g2
.L77000319:
sethi %hi(0xfc00),%g2
.L900000743:
srl %l3,0,%o0
add %g2,1023,%g2
and %g5,%g2,%g2
and %o1,%o0,%g3
sllx %g2,16,%g2
add %i2,%g3,%g3
sra %o5,0,%g4
add %g3,%g2,%g2
sllx %g4,2,%g3
and %g2,%o0,%g2
st %g2,[%l6+%g3]
! 325 ! adjust_montf_result(result, nint, nlen);
sllx %l4,2,%g2
ld [%l6+%g2],%g2
cmp %g2,0
bgu,pn %icc,.L77000369
subcc %l4,1,%g4
bneg,pn %icc,.L77000369
sra %g4,0,%g2
.L900000741:
sllx %g2,2,%g2
ld [%l6+%g2],%g3
ld [%i0+%g2],%g2
cmp %g3,%g2
bne,pn %icc,.L77000328
nop
subcc %g4,1,%g4
bpos,pt %icc,.L900000741
sra %g4,0,%g2
.L900000720:
ba .L900000740
cmp %l4,0
.L77000328:
bleu,pt %icc,.L77000307
nop
.L77000369:
cmp %l4,0
.L900000740:
ble,pt %icc,.L77000307
nop
or %g0,0,%g5
or %g0,0,%g3
or %g0,%l6,%o1
sub %l4,1,%g4
cmp %l4,4
bl,pn %icc,.L77000370
or %g0,%i0,%o3
ld [%l6],%o2
add %i0,4,%o3
add %l6,8,%o1
ld [%i0],%g2
sub %l4,2,%o4
or %g0,2,%g3
ld [%l6+4],%o5
sub %o2,%g2,%g2
or %g0,%g2,%g5
and %g2,%o0,%g2
st %g2,[%l6]
srax %g5,32,%g2
.L900000730:
add %g3,1,%g3
ld [%o3],%g5
add %o3,4,%o3
cmp %g3,%o4
add %o1,4,%o1
sub %o5,%g5,%g5
add %g5,%g2,%g5
and %g5,%o0,%g2
ld [%o1-4],%o5
st %g2,[%o1-8]
ble,pt %icc,.L900000730
srax %g5,32,%g2
.L900000733:
ld [%o3],%g5
add %o3,8,%o3
add %g3,1,%g3
ld [%o1],%o2
add %o1,4,%o1
cmp %g3,%g4
sub %o5,%g5,%g5
add %g5,%g2,%g5
and %g5,%o0,%g2
st %g2,[%o1-8]
ld [%o3-4],%g2
srax %g5,32,%g5
sub %o2,%g2,%g2
add %g2,%g5,%g5
and %g5,%o0,%g2
st %g2,[%o1-4]
bg,pn %icc,.L77000307
srax %g5,32,%g5
.L77000370:
ld [%o1],%g2
.L900000739:
ld [%o3],%o2
add %g5,%g2,%g2
add %g3,1,%g3
add %o3,4,%o3
cmp %g3,%g4
sub %g2,%o2,%g5
and %g5,%o0,%g2
st %g2,[%o1]
add %o1,4,%o1
srax %g5,32,%g5
ble,a,pt %icc,.L900000739
ld [%o1],%g2
.L77000307:
ret ! Result =
restore %g0,%g0,%g0
.type mont_mulf_noconv,2
.size mont_mulf_noconv,(.-mont_mulf_noconv)
! Begin Disassembling Stabs
.xstabs ".stab.index","Xa ; O ; P ; V=3.1 ; R=Sun WorkShop 6 update 1 C 5.2 Patch 109513-02 2001/02/04",60,0,0,0 ! (/tmp/acompAAAnPa4q5:1)
.xstabs ".stab.index","/home/ferenc/venus/userland/rsa; /ws/cpg-tools/SUNWspro/SC6.1/bin/../WS6U1/bin/cc -DRF_INLINE_MACROS -fast -xarch=v9 -xO5 -xstrconst -xdepend -Xa -xchip=ultra2 -KPIC -Wc,-Qrm-Qd -Wc,-Qrm-Qf -Wc,-assembly -V -c conv_v9.il -o mont_mulf.o mont_mulf.c -W0,-xp",52,0,0,0 ! (/tmp/acompAAAnPa4q5:2)
! End Disassembling Stabs
! Begin Disassembling Ident
.ident "cg: Sun WorkShop 6 update 1 Compiler Common 6.1 Patch 109505-04 2001/03/07" ! (NO SOURCE LINE)
.ident "@(#)mont_mulf.c\t1.2\t01/09/24 SMI" ! (/tmp/acompAAAnPa4q5:4)
.ident "@(#)types.h\t1.66\t00/02/14 SMI" ! (/tmp/acompAAAnPa4q5:5)
.ident "@(#)isa_defs.h\t1.20\t99/05/04 SMI" ! (/tmp/acompAAAnPa4q5:6)
.ident "@(#)feature_tests.h\t1.18\t99/07/26 SMI" ! (/tmp/acompAAAnPa4q5:7)
.ident "@(#)machtypes.h\t1.13\t99/05/04 SMI" ! (/tmp/acompAAAnPa4q5:8)
.ident "@(#)int_types.h\t1.6\t97/08/20 SMI" ! (/tmp/acompAAAnPa4q5:9)
.ident "@(#)select.h\t1.16\t98/04/27 SMI" ! (/tmp/acompAAAnPa4q5:10)
.ident "@(#)time.h\t2.66\t01/01/17 SMI" ! (/tmp/acompAAAnPa4q5:11)
.ident "@(#)time.h\t1.39\t99/08/10 SMI" ! (/tmp/acompAAAnPa4q5:12)
.ident "@(#)time_iso.h\t1.1\t99/08/09 SMI" ! (/tmp/acompAAAnPa4q5:13)
.ident "@(#)time_impl.h\t1.5\t99/10/05 SMI" ! (/tmp/acompAAAnPa4q5:14)
.ident "@(#)math.h\t2.10\t99/07/29 SMI" ! (/tmp/acompAAAnPa4q5:15)
.ident "@(#)math_iso.h\t1.1\t99/07/30 SMI" ! (/tmp/acompAAAnPa4q5:16)
.ident "@(#)floatingpoint.h\t2.5\t99/06/22 SMI" ! (/tmp/acompAAAnPa4q5:17)
.ident "@(#)stdio_tag.h\t1.3\t98/04/20 SMI" ! (/tmp/acompAAAnPa4q5:18)
.ident "@(#)ieeefp.h\t2.8 99/10/29" ! (/tmp/acompAAAnPa4q5:19)
.ident "acomp: Sun WorkShop 6 update 1 C 5.2 Patch 109513-02 2001/02/04" ! (/tmp/acompAAAnPa4q5:47)
! End Disassembling Ident