📄 libm.il
字号:
.end .inline _Faint,1 st %o0,[%sp+0x44] add %sp,0x44,%o0 call _r_aint_,1 nop .end .inline _Fanint,1 st %o0,[%sp+0x44] add %sp,0x44,%o0 call _r_anint_,1 nop .end .inline _Fasin,1 st %o0,[%sp+0x44] add %sp,0x44,%o0 call _r_asin_,1 nop .end .inline _Fatan,1 st %o0,[%sp+0x44] add %sp,0x44,%o0 call _r_atan_,1 nop .end .inline _Fcos,1 st %o0,[%sp+0x44] add %sp,0x44,%o0 call _r_cos_,1 nop .end .inline _Fcosh,1 st %o0,[%sp+0x44] add %sp,0x44,%o0 call _r_cosh_,1 nop .end .inline _Fexp,1 st %o0,[%sp+0x44] add %sp,0x44,%o0 call _r_exp_,1 nop .end .inline _Fexp10,1 st %o0,[%sp+0x44] add %sp,0x44,%o0 call _r_exp10_,1 nop .end .inline _Fexp2,1 st %o0,[%sp+0x44] add %sp,0x44,%o0 call _r_exp2_,1 nop .end .inline _Flog,1 st %o0,[%sp+0x44] add %sp,0x44,%o0 call _r_log_,1 nop .end .inline _Flog10,1 st %o0,[%sp+0x44] add %sp,0x44,%o0 call _r_log10_,1 nop .end .inline _Fnint,1 st %o0,[%sp+0x44] add %sp,0x44,%o0 call _ir_nint_,1 nop .end .inline _Fsin,1 st %o0,[%sp+0x44] add %sp,0x44,%o0 call _r_sin_,1 nop .end .inline _Fsinh,1 st %o0,[%sp+0x44] add %sp,0x44,%o0 call _r_sinh_,1 nop .end .inline _Ftan,1 st %o0,[%sp+0x44] add %sp,0x44,%o0 call _r_tan_,1 nop .end .inline _Ftanh,1 st %o0,[%sp+0x44] add %sp,0x44,%o0 call _r_tanh_,1 nop .end!! libF77 _i_nint and _i_dnnt! .inline _i_nint,1 call _ir_nint_,1 nop .end .inline _i_dnnt,1 ld [%o0+4],%o1 ld [%o0],%o0 call _nint,2 nop .end .inline __Fz_minus,3 ld [%o1],%f0 ld [%o1+0x4],%f1 ld [%o2],%f4 ld [%o2+0x4],%f5 fsubd %f0,%f4,%f0 ld [%o1+8],%f2 ld [%o1+0xc],%f3 ld [%o2+8],%f6 ld [%o2+0xc],%f7 fsubd %f2,%f6,%f2 st %f0,[%o0+0x0] st %f1,[%o0+0x4] st %f2,[%o0+0x8] st %f3,[%o0+0xc] .end .inline __Fz_add,3 ld [%o1],%f0 ld [%o1+0x4],%f1 ld [%o2],%f4 ld [%o2+0x4],%f5 faddd %f0,%f4,%f0 ld [%o1+8],%f2 ld [%o1+0xc],%f3 ld [%o2+8],%f6 ld [%o2+0xc],%f7 faddd %f2,%f6,%f2 st %f0,[%o0+0x0] st %f1,[%o0+0x4] st %f2,[%o0+0x8] st %f3,[%o0+0xc] .end .inline __Fz_neg,2 ld [%o1],%f0 fnegs %f0,%f0 ld [%o1+0x4],%f1 st %f1,[%o0+0x4] ld [%o1+8],%f2 fnegs %f2,%f2 ld [%o1+0xc],%f3 st %f3,[%o0+0xc] st %f0,[%o0] st %f2,[%o0+0x8] .end .inline __Ff_conv_z,2 st %o1,[%sp+0x44] ld [%sp+0x44],%f0 fstod %f0,%f0 st %g0,[%o0+0x8] st %g0,[%o0+0xc] st %f1,[%o0+0x4] st %f0,[%o0] .end .inline __Fz_conv_f,1 ld [%o0],%f0 ld [%o0+4],%f1 fdtos %f0,%f0 .end .inline __Fz_conv_i,1 ld [%o0],%f0 ld [%o0+4],%f1 fdtoi %f0,%f0 st %f0,[%sp+0x44] ld [%sp+0x44],%o0 .end .inline __Fi_conv_z,2 st %o1,[%sp+0x44] ld [%sp+0x44],%f0 fitod %f0,%f0 st %g0,[%o0+0x8] st %g0,[%o0+0xc] st %f1,[%o0+0x4] st %f0,[%o0] .end .inline __Fz_conv_d,1 ld [%o0],%f0 ld [%o0+4],%f1 .end .inline __Fd_conv_z,3 st %o1,[%o0] st %o2,[%o0+0x4] st %g0,[%o0+0x8] st %g0,[%o0+0xc] .end .inline __Fz_conv_c,1 ld [%o0],%f0 ld [%o0+4],%f1 fdtos %f0,%f0 ld [%o0+0x8],%f2 ld [%o0+0xc],%f3 fdtos %f2,%f1 .end .inline _z_abs,1 ld [%o0+0xc],%o3 ld [%o0+0x8],%o2 ld [%o0+0x4],%o1 ld [%o0],%o0 call _hypot,4 nop .end .inline _c_cmplx,3 ld [%o1],%o1 st %o1,[%o0] ld [%o2],%o2 st %o2,[%o0+4] .end .inline _d_cmplx,3 ld [%o1],%f0 st %f0,[%o0] ld [%o1+4],%f1 st %f1,[%o0+4] ld [%o2],%f0 st %f0,[%o0+0x8] ld [%o2+4],%f1 st %f1,[%o0+0xc] .end .inline _r_cnjg,2 ld [%o1+0x4],%f1 fnegs %f1,%f1 ld [%o1],%f0 st %f0,[%o0] st %f1,[%o0+4] .end .inline _d_cnjg,2 ld [%o1+0x8],%f0 fnegs %f0,%f0 ld [%o1+0xc],%f1 st %f1,[%o0+0xc] ld [%o1+0x0],%f1 st %f1,[%o0+0x0] ld [%o1+0x4],%f1 st %f1,[%o0+0x4] st %f0,[%o0+0x8] .end .inline _r_dim,2 ld [%o0],%f2 ld [%o1],%f4 fcmps %f2,%f4 st %g0,[%sp+0x48] ld [%sp+0x48],%f0 fbule 1f nop fsubs %f2,%f4,%f01: .end .inline _d_dim,2 ld [%o0],%f2 ld [%o0+4],%f3 ld [%o1],%f4 ld [%o1+4],%f5 fcmpd %f2,%f4 st %g0,[%sp+0x48] ld [%sp+0x48],%f0 ld [%sp+0x48],%f1 fbule 1f nop fsubd %f2,%f4,%f01: .end .inline _r_imag,1 ld [%o0+4],%f0 .end .inline _d_imag,1 ld [%o0+8],%f0 ld [%o0+0xc],%f1 .end .inline _r_sign,2 ld [%o0],%f0 fabss %f0,%f0 ld [%o1],%o2 sethi %hi(0x80000000),%o3 cmp %o2,%o3 beq 1f tst %o2 bge 1f nop fnegs %f0,%f01: .end .inline _d_sign,2 ld [%o0],%f0 fabss %f0,%f0 ld [%o0+4],%f1 ld [%o1],%o2 ld [%o1+4],%o3 sethi %hi(0x80000000),%o4 andn %o2,%o4,%o4 orcc %o3,%o4,%g0 beq 1f tst %o2 bge 1f nop fnegs %f0,%f01: .end .inline __Fz_mult,3 ld [%o1],%f0 ld [%o1+0x4],%f1 ld [%o2],%f4 ld [%o2+0x4],%f5 fmuld %f0,%f4,%f8 ! f8 = r1*r2 ld [%o1+0x8],%f2 ld [%o1+0xc],%f3 ld [%o2+0x8],%f6 ld [%o2+0xc],%f7 fmuld %f2,%f6,%f10 ! f10= i1*i2 fsubd %f8,%f10,%f12 ! f12= r1*r2-i1*i2 st %f12,[%o0] st %f13,[%o0+4] fmuld %f0,%f6,%f14 ! f14= r1*i2 fmuld %f2,%f4,%f16 ! f16= r2*i1 faddd %f14,%f16,%f2 ! f2 = r1*i2+r2*i1 st %f2,[%o0+8] st %f3,[%o0+12] .end!- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -! void! __Fc_mult(c, a, b)! complex *c, *a, *b; /* c = a * b */! { .inline __Fc_mult,3! 21 c->real = (a->real * b->real) - (a->imag * b->imag); ld [%o1+4],%f0 ld [%o2+4],%f1 fstod %f0,%f2 ! f2 = a->imag fstod %f1,%f4 ! f4 = b->imag fmuld %f2,%f4,%f6 ! f6 = (a->imag * b->imag) ld [%o1],%f0 ld [%o2],%f1 fstod %f0,%f8 ! f8 = a->real fstod %f1,%f10 ! f10 = b->real fmuld %f8,%f10,%f0 fsubd %f0,%f6,%f6! 22 c->imag = (a->real * b->imag) + (a->imag * b->real); fmuld %f2,%f10,%f2 ! f2 = a->imag * b->real fmuld %f8,%f4,%f4 ! f4 = a->real * b->imag faddd %f2,%f4,%f4 fdtos %f6,%f0 fdtos %f4,%f1 st %f0,[%o0] st %f1,[%o0+4] .end!- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -! void! __Fc_minus(c, a, b)! complex *c, *a, *b; /* c = a - b */! { .inline __Fc_minus,3! 30 c->real = a->real - b->real; ld [%o1],%f0 ld [%o2],%f1 fsubs %f0,%f1,%f2! 31 c->imag = a->imag - b->imag; ld [%o1+4],%f3 ld [%o2+4],%f4 fsubs %f3,%f4,%f5 st %f2,[%o0] st %f5,[%o0+4] .end!- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -! void! _Fc_add(c, a, b)! complex *c, *a, *b; /* c = a + b */! { .inline __Fc_add,3! 39 c->real = a->real + b->real; ld [%o1],%f0 ld [%o2],%f1 fadds %f0,%f1,%f2! 40 c->imag = a->imag + b->imag; ld [%o1+4],%f3 ld [%o2+4],%f4 fadds %f3,%f4,%f5 st %f2,[%o0] st %f5,[%o0+4] .end!- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -! void! _Fc_neg(c, a)! complex *c, *a; /* c = -a */! { .inline __Fc_neg,2! 48 c->real = - a->real; ld [%o1],%f0 fnegs %f0,%f1! 49 c->imag = - a->imag; ld [%o1+4],%f2 fnegs %f2,%f3 st %f1,[%o0] st %f3,[%o0+4] .end!- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -! void! _Ff_conv_c(c, x) /* convert float to complex */! complex *c;! FLOATPARAMETER x;! { .inline __Ff_conv_c,2! 59 c->real = x; st %o1,[%o0]! 60 c->imag = 0.0; st %g0,[%o0+4] .end!- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -! FLOATFUNCTIONTYPE! _Fc_conv_f( c ) /* Convert complex to float */! complex *c;! { .inline __Fc_conv_f,1! 69 RETURNFLOAT(c->real); ld [%o0],%f0 .end!- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -! int! _Fc_conv_i (c) /* Convert complex to int */! complex *c;! { .inline __Fc_conv_i,1! 78 return (int)c->real; ld [%o0],%f0 fstoi %f0,%f1 st %f1,[%sp+68] ld [%sp+68],%o0 .end !- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -! void ! _Fi_conv_c (c,i) /* Convert int to complex */! complex *c;! int i; ! { .inline __Fi_conv_c,2! 88 c->real = (float)i; st %o1,[%sp+68] ld [%sp+68],%f0 fitos %f0,%f1 st %f1,[%o0]! 89 c->imag = 0.0; st %g0,[%o0+4] .end !- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -! double! _Fc_conv_d ( c ) /* Convert complex to double */! complex *c;! { .inline __Fc_conv_d,1! 98 return (double)c->real; ld [%o0],%f2 fstod %f2,%f0 .end !- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -! void! _Fd_conv_c (c, x) /* Convert double to complex */! complex *c;! double x; .inline __Fd_conv_c,2 st %o1,[%sp+72] st %o2,[%sp+76]! 109 c->real = (float)(x); ldd [%sp+72],%f0 fdtos %f0,%f1 st %f1,[%o0]! 110 c->imag = 0.0; st %g0,[%o0+4] .end !- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -! void! _Fc_conv_z( result, c ) /* Convert complex to double complex */! dcomplex *result;! complex *c;! { .inline __Fc_conv_z,2! 120 result->dreal = (double)c->real; ld [%o1],%f0 fstod %f0,%f2 st %f2,[%o0] st %f3,[%o0+4]! 121 result->dimag = (double)c->imag; ld [%o1+4],%f3 fstod %f3,%f4 st %f4,[%o0+8] st %f5,[%o0+12] .end!- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -! void! _Fc_div(c, a, b)! complex *c, *a, *b; /* c = a * b */! { .inline __Fc_div,3 ld [%o2+4],%o3 sethi %hi(0x7fffffff),%o4 or %o4,%lo(0x7fffffff),%o4 ! [internal] andcc %o3,%o4,%g0 bne,a 1f ld [%o2],%f6 ! f6 gets reb ld [%o1],%f0 ld [%o2],%f1 fdivs %f0,%f1,%f0 st %f0,[%o0] ld [%o2],%f4 ld [%o1+4],%f3 fdivs %f3,%f4,%f3 b 2f st %f3,[%o0+4]1: ! [internal] fstod %f6,%f8 ! f8/9 gets reb ld [%o2+4],%f19 ! f19 gets imb ld [%o1+4],%f13 ! f13 gets ima fstod %f13,%f24 ! f24/5 gets ima fstod %f19,%f10 ! f10/11 gets imb fmuld %f8,%f8,%f16 ! f16/17 gets reb**2 ld [%o1],%f19 ! f19 gets rea fmuld %f24,%f10,%f0 ! f0/f1 gets ima*imb fstod %f19,%f26 ! f26/7 gets rea fmuld %f10,%f10,%f12 ! f12/13 gets imb**2 faddd %f12,%f16,%f12 ! f12/13 gets reb**2+imb**2 fmuld %f26,%f8,%f2 ! f2/3 gets rea*reb faddd %f2,%f0,%f2 ! f2/3 gets rea*reb+ima*imb fdivd %f2,%f12,%f2 ! f2/3 gets imc fmuld %f24,%f8,%f24 ! f24/5 gets ima*reb fmuld %f26,%f10,%f10 ! f10/11 gets rea*imb fsubd %f24,%f10,%f10 ! f10/11 gets ima*reb-rea*imb fdtos %f2,%f7 ! f7 gets imc fdivd %f10,%f12,%f12 ! f12 gets rec fdtos %f12,%f15 ! f15 gets rec st %f7,[%o0] st %f15,[%o0+4]2: .end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -