# HG changeset patch # User thomask # Date 1128417900 0 # Node ID 98e3d2ab382f9ac4bc87e3adc64dc3dc29c47aac # Parent 9b960ca155839c9c99ae3d41b899d36fa37d5db8 added further fpu iasm tests diff -r 9b960ca15583 -r 98e3d2ab382f run/a/asm_fcos_01.d --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/run/a/asm_fcos_01.d Tue Oct 04 09:25:00 2005 +0000 @@ -0,0 +1,25 @@ +// $HeadURL$ +// $Date$ +// $Author$ + +module dstress.run.a.asm_fcos_01; + +int main(){ + version(D_InlineAsm){ + real a = -0.0L; + + asm{ + finit; + fld a; + fcos; + fstp a; + } + + assert(a == 1.0L); + + return 0; + }else{ + pragma(msg, "no Inline asm support"); + static assert(0); + } +} \ No newline at end of file diff -r 9b960ca15583 -r 98e3d2ab382f run/a/asm_fild_01_A.d --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/run/a/asm_fild_01_A.d Tue Oct 04 09:25:00 2005 +0000 @@ -0,0 +1,25 @@ +// $HeadURL$ +// $Date$ +// $Author$ + +module dstress.run.a.asm_fild_01_A; + +int main(){ + version(D_InlineAsm){ + short i = 800; + real r; + + asm{ + finit; + fild i; + fstp r; + } + + assert(r == 800.0L); + + return 0; + }else{ + pragma(msg, "no Inline asm support"); + static assert(0); + } +} \ No newline at end of file diff -r 9b960ca15583 -r 98e3d2ab382f run/a/asm_fild_01_B.d --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/run/a/asm_fild_01_B.d Tue Oct 04 09:25:00 2005 +0000 @@ -0,0 +1,25 @@ +// $HeadURL$ +// $Date$ +// $Author$ + +module dstress.run.a.asm_fild_01_B; + +int main(){ + version(D_InlineAsm){ + int i = 800; + real r; + + asm{ + finit; + fild i; + fstp r; + } + + assert(r == 800.0L); + + return 0; + }else{ + pragma(msg, "no Inline asm support"); + static assert(0); + } +} \ No newline at end of file diff -r 9b960ca15583 -r 98e3d2ab382f run/a/asm_fild_01_C.d --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/run/a/asm_fild_01_C.d Tue Oct 04 09:25:00 2005 +0000 @@ -0,0 +1,25 @@ +// $HeadURL$ +// $Date$ +// $Author$ + +module dstress.run.a.asm_fild_01_C; + +int main(){ + version(D_InlineAsm){ + long i = 800; + real r; + + asm{ + finit; + fild i; + fstp r; + } + + assert(r == 800.0L); + + return 0; + }else{ + pragma(msg, "no Inline asm support"); + static assert(0); + } +} \ No newline at end of file diff -r 9b960ca15583 -r 98e3d2ab382f run/a/asm_fimul_01_A.d --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/run/a/asm_fimul_01_A.d Tue Oct 04 09:25:00 2005 +0000 @@ -0,0 +1,30 @@ +// $HeadURL$ +// $Date$ +// $Author$ + +module dstress.run.a.asm_fimul_01_A; + +int main(){ + version(D_InlineAsm){ + real a = 2.0L; + short b = -3; + + asm{ + finit; + fld a; + fimul b; + fstp a; + } + + a -= -6.0; + + a = (a>0) ? a : -a; + + assert(a < a.epsilon * 4); + + return 0; + }else{ + pragma(msg, "no Inline asm support"); + static assert(0); + } +} \ No newline at end of file diff -r 9b960ca15583 -r 98e3d2ab382f run/a/asm_fimul_01_B.d --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/run/a/asm_fimul_01_B.d Tue Oct 04 09:25:00 2005 +0000 @@ -0,0 +1,30 @@ +// $HeadURL$ +// $Date$ +// $Author$ + +module dstress.run.a.asm_fimul_01_B; + +int main(){ + version(D_InlineAsm){ + real a = 2.0L; + int b = -3; + + asm{ + finit; + fld a; + fimul b; + fstp a; + } + + a -= -6.0; + + a = (a>0) ? a : -a; + + assert(a < a.epsilon * 4); + + return 0; + }else{ + pragma(msg, "no Inline asm support"); + static assert(0); + } +} \ No newline at end of file diff -r 9b960ca15583 -r 98e3d2ab382f run/a/asm_finit_01.d --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/run/a/asm_finit_01.d Tue Oct 04 09:25:00 2005 +0000 @@ -0,0 +1,18 @@ +// $HeadURL$ +// $Date$ +// $Author$ + +module dstress.run.a.asm_finit_01; + +int main(){ + version(D_InlineAsm){ + asm{ + finit; + } + + return 0; + }else{ + pragma(msg, "no Inline asm support"); + static assert(0); + } +} \ No newline at end of file diff -r 9b960ca15583 -r 98e3d2ab382f run/a/asm_fist_01_A.d --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/run/a/asm_fist_01_A.d Tue Oct 04 09:25:00 2005 +0000 @@ -0,0 +1,24 @@ +// $HeadURL$ +// $Date$ +// $Author$ + +module dstress.run.a.asm_fist_01_A; + +int main(){ + version(D_InlineAsm){ + real r = 800.0L; + short i; + + asm{ + fld r; + fist i; + } + + assert(i==800); + + return 0; + }else{ + pragma(msg, "no Inline asm support"); + static assert(0); + } +} \ No newline at end of file diff -r 9b960ca15583 -r 98e3d2ab382f run/a/asm_fist_01_B.d --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/run/a/asm_fist_01_B.d Tue Oct 04 09:25:00 2005 +0000 @@ -0,0 +1,24 @@ +// $HeadURL$ +// $Date$ +// $Author$ + +module dstress.run.a.asm_fist_01_B; + +int main(){ + version(D_InlineAsm){ + real r = 800.0L; + int i; + + asm{ + fld r; + fist i; + } + + assert(i==800); + + return 0; + }else{ + pragma(msg, "no Inline asm support"); + static assert(0); + } +} \ No newline at end of file diff -r 9b960ca15583 -r 98e3d2ab382f run/a/asm_fistp_01_A.d --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/run/a/asm_fistp_01_A.d Tue Oct 04 09:25:00 2005 +0000 @@ -0,0 +1,27 @@ +// $HeadURL$ +// $Date$ +// $Author$ + +module dstress.run.a.asm_fistp_01_A; + +int main(){ + version(D_InlineAsm){ + real r = 800.0L; + short a, b; + + asm{ + fld1; + fld r; + fistp a; + fistp b; + } + + assert(a==800); + assert(b==1); + + return 0; + }else{ + pragma(msg, "no Inline asm support"); + static assert(0); + } +} \ No newline at end of file diff -r 9b960ca15583 -r 98e3d2ab382f run/a/asm_fistp_01_B.d --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/run/a/asm_fistp_01_B.d Tue Oct 04 09:25:00 2005 +0000 @@ -0,0 +1,27 @@ +// $HeadURL$ +// $Date$ +// $Author$ + +module dstress.run.a.asm_fistp_01_B; + +int main(){ + version(D_InlineAsm){ + real r = 800.0L; + int a, b; + + asm{ + fld1; + fld r; + fistp a; + fistp b; + } + + assert(a==800); + assert(b==1); + + return 0; + }else{ + pragma(msg, "no Inline asm support"); + static assert(0); + } +} \ No newline at end of file diff -r 9b960ca15583 -r 98e3d2ab382f run/a/asm_fistp_01_C.d --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/run/a/asm_fistp_01_C.d Tue Oct 04 09:25:00 2005 +0000 @@ -0,0 +1,27 @@ +// $HeadURL$ +// $Date$ +// $Author$ + +module dstress.run.a.asm_fistp_01_C; + +int main(){ + version(D_InlineAsm){ + real r = 800.0L; + long a, b; + + asm{ + fld1; + fld r; + fistp a; + fistp b; + } + + assert(a==800); + assert(b==1); + + return 0; + }else{ + pragma(msg, "no Inline asm support"); + static assert(0); + } +} \ No newline at end of file diff -r 9b960ca15583 -r 98e3d2ab382f run/a/asm_fisttp_01_A.d --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/run/a/asm_fisttp_01_A.d Tue Oct 04 09:25:00 2005 +0000 @@ -0,0 +1,33 @@ +// $HeadURL$ +// $Date$ +// $Author$ + +module dstress.run.a.asm_fistp_01_A; + +int main(){ + version(D_InlineAsm){ + real r = -800.9L; + short i; + + asm{ + fld r; + fisttp i; + } + + assert(i==-800); + + r = -800.0L; + + asm{ + fld r; + fisttp i; + } + + assert(i==-800); + + return 0; + }else{ + pragma(msg, "no Inline asm support"); + static assert(0); + } +} \ No newline at end of file diff -r 9b960ca15583 -r 98e3d2ab382f run/a/asm_fisttp_01_B.d --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/run/a/asm_fisttp_01_B.d Tue Oct 04 09:25:00 2005 +0000 @@ -0,0 +1,33 @@ +// $HeadURL$ +// $Date$ +// $Author$ + +module dstress.run.a.asm_fistp_01_B; + +int main(){ + version(D_InlineAsm){ + real r = -800.9L; + int i; + + asm{ + fld r; + fisttp i; + } + + assert(i==-800); + + r = -800.0L; + + asm{ + fld r; + fisttp i; + } + + assert(i==-800); + + return 0; + }else{ + pragma(msg, "no Inline asm support"); + static assert(0); + } +} \ No newline at end of file diff -r 9b960ca15583 -r 98e3d2ab382f run/a/asm_fisttp_01_C.d --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/run/a/asm_fisttp_01_C.d Tue Oct 04 09:25:00 2005 +0000 @@ -0,0 +1,33 @@ +// $HeadURL$ +// $Date$ +// $Author$ + +module dstress.run.a.asm_fistp_01_C; + +int main(){ + version(D_InlineAsm){ + real r = -800.9L; + long i; + + asm{ + fld r; + fisttp i; + } + + assert(i==-800); + + r = -800.0L; + + asm{ + fld r; + fisttp i; + } + + assert(i==-800); + + return 0; + }else{ + pragma(msg, "no Inline asm support"); + static assert(0); + } +} \ No newline at end of file diff -r 9b960ca15583 -r 98e3d2ab382f run/a/asm_fld1_01.d --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/run/a/asm_fld1_01.d Tue Oct 04 09:25:00 2005 +0000 @@ -0,0 +1,23 @@ +// $HeadURL$ +// $Date$ +// $Author$ + +module dstress.run.a.asm_fld1_01; + +int main(){ + version(D_InlineAsm){ + real r = -800.9L; + + asm{ + fld1; + fstp r; + } + + assert(r==1.0L); + + return 0; + }else{ + pragma(msg, "no Inline asm support"); + static assert(0); + } +} \ No newline at end of file diff -r 9b960ca15583 -r 98e3d2ab382f run/a/asm_fldl2e_01.d --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/run/a/asm_fldl2e_01.d Tue Oct 04 09:25:00 2005 +0000 @@ -0,0 +1,27 @@ +// $HeadURL$ +// $Date$ +// $Author$ + +module dstress.run.a.asm_fld2e_01; + +int main(){ + version(D_InlineAsm){ + double f = -800.9; + + asm{ + fldl2e; + fstp f; + } + + f -= 0x1.71547652B82fE178p+0; + + f = (f>0) ? f : -f; + + assert(f < f.epsilon * 4); + + return 0; + }else{ + pragma(msg, "no Inline asm support"); + static assert(0); + } +} \ No newline at end of file diff -r 9b960ca15583 -r 98e3d2ab382f run/a/asm_fldl2t_01.d --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/run/a/asm_fldl2t_01.d Tue Oct 04 09:25:00 2005 +0000 @@ -0,0 +1,27 @@ +// $HeadURL$ +// $Date$ +// $Author$ + +module dstress.run.a.asm_fld2t_01; + +int main(){ + version(D_InlineAsm){ + real r = -800.9; + + asm{ + fldl2t; + fstp r; + } + + r -= 3.321928094887362347870319429489L; + + r = (r>0) ? r : -r; + + assert(r < r.epsilon * 4); + + return 0; + }else{ + pragma(msg, "no Inline asm support"); + static assert(0); + } +} \ No newline at end of file diff -r 9b960ca15583 -r 98e3d2ab382f run/a/asm_fldlg2_01.d --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/run/a/asm_fldlg2_01.d Tue Oct 04 09:25:00 2005 +0000 @@ -0,0 +1,27 @@ +// $HeadURL$ +// $Date$ +// $Author$ + +module dstress.run.a.asm_fldlg2_01; + +int main(){ + version(D_InlineAsm){ + double f = -800.9; + + asm{ + fldlg2; + fstp f; + } + + f -= 0.30102999566398119521373889472449L; + + f = (f>0) ? f : -f; + + assert(f < f.epsilon * 4); + + return 0; + }else{ + pragma(msg, "no Inline asm support"); + static assert(0); + } +} \ No newline at end of file diff -r 9b960ca15583 -r 98e3d2ab382f run/a/asm_fldln2_01.d --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/run/a/asm_fldln2_01.d Tue Oct 04 09:25:00 2005 +0000 @@ -0,0 +1,27 @@ +// $HeadURL$ +// $Date$ +// $Author$ + +module dstress.run.a.asm_fldln2_01; + +int main(){ + version(D_InlineAsm){ + double f = -800.9; + + asm{ + fldln2; + fstp f; + } + + f -= 0.69314718055994530941723212145818L; + + f = (f>0) ? f : -f; + + assert(f < f.epsilon * 4); + + return 0; + }else{ + pragma(msg, "no Inline asm support"); + static assert(0); + } +} \ No newline at end of file diff -r 9b960ca15583 -r 98e3d2ab382f run/a/asm_fldpi_01.d --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/run/a/asm_fldpi_01.d Tue Oct 04 09:25:00 2005 +0000 @@ -0,0 +1,27 @@ +// $HeadURL$ +// $Date$ +// $Author$ + +module dstress.run.a.asm_fldpi_01; + +int main(){ + version(D_InlineAsm){ + double f = -800.9; + + asm{ + fldpi; + fstp f; + } + + f -= 0x1.921FB54442D1846Ap+1; + + f = (f>0) ? f : -f; + + assert(f < f.epsilon * 4); + + return 0; + }else{ + pragma(msg, "no Inline asm support"); + static assert(0); + } +} \ No newline at end of file diff -r 9b960ca15583 -r 98e3d2ab382f run/a/asm_fldz_01.d --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/run/a/asm_fldz_01.d Tue Oct 04 09:25:00 2005 +0000 @@ -0,0 +1,23 @@ +// $HeadURL$ +// $Date$ +// $Author$ + +module dstress.run.a.asm_fldz_01; + +int main(){ + version(D_InlineAsm){ + real r = -800.9L; + + asm{ + fldz; + fstp r; + } + + assert(r==0.0L); + + return 0; + }else{ + pragma(msg, "no Inline asm support"); + static assert(0); + } +} \ No newline at end of file diff -r 9b960ca15583 -r 98e3d2ab382f run/a/asm_fmul_01_A.d --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/run/a/asm_fmul_01_A.d Tue Oct 04 09:25:00 2005 +0000 @@ -0,0 +1,30 @@ +// $HeadURL$ +// $Date$ +// $Author$ + +module dstress.run.a.asm_fmul_01_A; + +int main(){ + version(D_InlineAsm){ + real a = 2.0L; + double f = -3.0; + + asm{ + finit; + fld a; + fmul f; + fst f; + } + + f -= -6.0; + + f = (f>0) ? f : -f; + + assert(f < f.epsilon * 4); + + return 0; + }else{ + pragma(msg, "no Inline asm support"); + static assert(0); + } +} \ No newline at end of file diff -r 9b960ca15583 -r 98e3d2ab382f run/a/asm_fmul_01_B.d --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/run/a/asm_fmul_01_B.d Tue Oct 04 09:25:00 2005 +0000 @@ -0,0 +1,30 @@ +// $HeadURL$ +// $Date$ +// $Author$ + +module dstress.run.a.asm_fmul_01_B; + +int main(){ + version(D_InlineAsm){ + real a = 2.0L; + float f = -3.0; + + asm{ + finit; + fld a; + fmul f; + fst f; + } + + f -= -6.0; + + f = (f>0) ? f : -f; + + assert(f < f.epsilon * 4); + + return 0; + }else{ + pragma(msg, "no Inline asm support"); + static assert(0); + } +} \ No newline at end of file diff -r 9b960ca15583 -r 98e3d2ab382f run/a/asm_fmulp_01.d --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/run/a/asm_fmulp_01.d Tue Oct 04 09:25:00 2005 +0000 @@ -0,0 +1,31 @@ +// $HeadURL$ +// $Date$ +// $Author$ + +module dstress.run.a.asm_fmulp_01; + +int main(){ + version(D_InlineAsm){ + real a = 2.0L; + real b = -3.0; + + asm{ + finit; + fld a; + fld b; + fmulp; + fstp a; + } + + a -= -6.0; + + a = (a>0) ? a : -a; + + assert(a < a.epsilon * 4); + + return 0; + }else{ + pragma(msg, "no Inline asm support"); + static assert(0); + } +} \ No newline at end of file diff -r 9b960ca15583 -r 98e3d2ab382f run/a/asm_fninit_01.d --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/run/a/asm_fninit_01.d Tue Oct 04 09:25:00 2005 +0000 @@ -0,0 +1,18 @@ +// $HeadURL$ +// $Date$ +// $Author$ + +module dstress.run.a.asm_fninit_01; + +int main(){ + version(D_InlineAsm){ + asm{ + fninit; + } + + return 0; + }else{ + pragma(msg, "no Inline asm support"); + static assert(0); + } +} \ No newline at end of file diff -r 9b960ca15583 -r 98e3d2ab382f run/a/asm_fnop_01.d --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/run/a/asm_fnop_01.d Tue Oct 04 09:25:00 2005 +0000 @@ -0,0 +1,18 @@ +// $HeadURL$ +// $Date$ +// $Author$ + +module dstress.run.a.asm_fnop_01; + +int main(){ + version(D_InlineAsm){ + asm{ + fnop; + } + + return 0; + }else{ + pragma(msg, "no Inline asm support"); + static assert(0); + } +} \ No newline at end of file diff -r 9b960ca15583 -r 98e3d2ab382f run/a/asm_fpatan_01.d --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/run/a/asm_fpatan_01.d Tue Oct 04 09:25:00 2005 +0000 @@ -0,0 +1,33 @@ +// $HeadURL$ +// $Date$ +// $Author$ + +module dstress.run.a.asm_fpatan_01; + +int main(){ + version(D_InlineAsm){ + real a = 2.2L; + real b = -0.0L; + + asm{ + finit; + fld a; + fld b; + fpatan; + fstp a; + fldpi; + fstp b; + } + + a -= b/2; + + a = (a>0) ? a : -a; + + assert(a < a.epsilon * 4); + + return 0; + }else{ + pragma(msg, "no Inline asm support"); + static assert(0); + } +} \ No newline at end of file diff -r 9b960ca15583 -r 98e3d2ab382f run/a/asm_fprem1_01.d --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/run/a/asm_fprem1_01.d Tue Oct 04 09:25:00 2005 +0000 @@ -0,0 +1,31 @@ +// $HeadURL$ +// $Date$ +// $Author$ + +module dstress.run.a.asm_fprem1_01; + +int main(){ + version(D_InlineAsm){ + real a = 3.0L; + real b = 8.0L; + + asm{ + finit; + fld a; + fld b; + fprem1; + fstp a; + } + + a += 1.0L; + + a = (a>0) ? a : -a; + + assert(a < a.epsilon * 4); + + return 0; + }else{ + pragma(msg, "no Inline asm support"); + static assert(0); + } +} \ No newline at end of file diff -r 9b960ca15583 -r 98e3d2ab382f run/a/asm_fprem_01.d --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/run/a/asm_fprem_01.d Tue Oct 04 09:25:00 2005 +0000 @@ -0,0 +1,31 @@ +// $HeadURL$ +// $Date$ +// $Author$ + +module dstress.run.a.asm_fprem_01; + +int main(){ + version(D_InlineAsm){ + real a = 3.0L; + real b = 8.0L; + + asm{ + finit; + fld a; + fld b; + fprem; + fstp a; + } + + a -= 2.0L; + + a = (a>0) ? a : -a; + + assert(a < a.epsilon * 4); + + return 0; + }else{ + pragma(msg, "no Inline asm support"); + static assert(0); + } +} \ No newline at end of file diff -r 9b960ca15583 -r 98e3d2ab382f run/a/asm_fptan_01.d --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/run/a/asm_fptan_01.d Tue Oct 04 09:25:00 2005 +0000 @@ -0,0 +1,33 @@ +// $HeadURL$ +// $Date$ +// $Author$ + +module dstress.run.a.asm_fptan_01; + +int main(){ + version(D_InlineAsm){ + double a = 4.0L; + double b; + + asm{ + finit; + fld a; + fptan; + fstp b; + fstp a; + } + + assert(b == 1.0L); + + a -= 1.1578212823495774852L; + + a = (a>0) ? a : -a; + + assert(a < a.epsilon * 4); + + return 0; + }else{ + pragma(msg, "no Inline asm support"); + static assert(0); + } +} \ No newline at end of file diff -r 9b960ca15583 -r 98e3d2ab382f run/a/asm_frndint_01.d --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/run/a/asm_frndint_01.d Tue Oct 04 09:25:00 2005 +0000 @@ -0,0 +1,29 @@ +// $HeadURL$ +// $Date$ +// $Author$ + +module dstress.run.a.asm_frndint_01; + +int main(){ + version(D_InlineAsm){ + real a = 4.6L; + + asm{ + finit; + fld a; + frndint; + fstp a; + } + + a -= 5.0L; + + a = (a>0) ? a : -a; + + assert(a < a.epsilon * 4); + + return 0; + }else{ + pragma(msg, "no Inline asm support"); + static assert(0); + } +} \ No newline at end of file diff -r 9b960ca15583 -r 98e3d2ab382f run/a/asm_fscale_01.d --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/run/a/asm_fscale_01.d Tue Oct 04 09:25:00 2005 +0000 @@ -0,0 +1,31 @@ +// $HeadURL$ +// $Date$ +// $Author$ + +module dstress.run.a.asm_fscale_01; + +int main(){ + version(D_InlineAsm){ + real a = 4.6L; + real b = 1; + + asm{ + finit; + fld a; + fld b; + fscale; + fstp a; + } + + a -= 16.0L; + + a = (a>0) ? a : -a; + + assert(a < a.epsilon * 4); + + return 0; + }else{ + pragma(msg, "no Inline asm support"); + static assert(0); + } +} \ No newline at end of file diff -r 9b960ca15583 -r 98e3d2ab382f run/a/asm_fsin_01.d --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/run/a/asm_fsin_01.d Tue Oct 04 09:25:00 2005 +0000 @@ -0,0 +1,27 @@ +// $HeadURL$ +// $Date$ +// $Author$ + +module dstress.run.a.asm_fsin_01; + +int main(){ + version(D_InlineAsm){ + real a = 2.2L; + + asm{ + finit; + fldpi; + fsin; + fstp a; + } + + a = (a>0) ? a : -a; + + assert(a < a.epsilon * 4); + + return 0; + }else{ + pragma(msg, "no Inline asm support"); + static assert(0); + } +} \ No newline at end of file diff -r 9b960ca15583 -r 98e3d2ab382f run/a/asm_fsincos_01.d --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/run/a/asm_fsincos_01.d Tue Oct 04 09:25:00 2005 +0000 @@ -0,0 +1,31 @@ +// $HeadURL$ +// $Date$ +// $Author$ + +module dstress.run.a.asm_fsincos_01; + +int main(){ + version(D_InlineAsm){ + real a = 2.2L; + real b = 2.2L; + + asm{ + finit; + fldz; + fsincos; + fstp a; + fstp b; + } + + a -= 1.0L; + a = (a>0) ? a : -a; + assert(a < a.epsilon * 4); + + assert(b == 0.0L); + + return 0; + }else{ + pragma(msg, "no Inline asm support"); + static assert(0); + } +} \ No newline at end of file diff -r 9b960ca15583 -r 98e3d2ab382f run/a/asm_fsqrt_01.d --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/run/a/asm_fsqrt_01.d Tue Oct 04 09:25:00 2005 +0000 @@ -0,0 +1,27 @@ +// $HeadURL$ +// $Date$ +// $Author$ + +module dstress.run.a.asm_fsqrt_01; + +int main(){ + version(D_InlineAsm){ + real a = 9.0L; + + asm{ + finit; + fld a; + fsqrt; + fstp a; + } + + a -= 3.0L; + a = (a>0) ? a : -a; + assert(a < a.epsilon * 4); + + return 0; + }else{ + pragma(msg, "no Inline asm support"); + static assert(0); + } +} \ No newline at end of file diff -r 9b960ca15583 -r 98e3d2ab382f run/a/asm_fxch_01.d --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/run/a/asm_fxch_01.d Tue Oct 04 09:25:00 2005 +0000 @@ -0,0 +1,31 @@ +// $HeadURL$ +// $Date$ +// $Author$ + +module dstress.run.a.asm_fxch_01; + +int main(){ + version(D_InlineAsm){ + real a = -1.0f; + real b = 3.5f; + + real a2, b2; + + asm{ + finit; + fld a; + fld b; + fxch; + fstp b2; + fstp a2; + } + + assert(a2==b); + assert(b2==a); + + return 0; + }else{ + pragma(msg, "no Inline asm support"); + static assert(0); + } +} \ No newline at end of file diff -r 9b960ca15583 -r 98e3d2ab382f run/a/asm_fxtract_01.d --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/run/a/asm_fxtract_01.d Tue Oct 04 09:25:00 2005 +0000 @@ -0,0 +1,29 @@ +// $HeadURL$ +// $Date$ +// $Author$ + +module dstress.run.a.asm_fxtract_01; + +int main(){ + version(D_InlineAsm){ + real a = -8.0f; + + double exponent, significand; + + asm{ + finit; + fld a; + fxtract; + fstp significand; + fstp exponent; + } + + assert(significand == -1.0f); + assert(exponent == 3.0f); + + return 0; + }else{ + pragma(msg, "no Inline asm support"); + static assert(0); + } +} \ No newline at end of file diff -r 9b960ca15583 -r 98e3d2ab382f run/a/asm_fyl2x_01.d --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/run/a/asm_fyl2x_01.d Tue Oct 04 09:25:00 2005 +0000 @@ -0,0 +1,27 @@ +// $HeadURL$ +// $Date$ +// $Author$ + +module dstress.run.a.asm_fyl2x_01; + +int main(){ + version(D_InlineAsm){ + real a = -2.0L; + + asm{ + finit; + fld a; + fld1; + fyl2x; + fstp a; + fstp a; + } + + assert(a == -0.0L); + + return 0; + }else{ + pragma(msg, "no Inline asm support"); + static assert(0); + } +} \ No newline at end of file diff -r 9b960ca15583 -r 98e3d2ab382f run/a/asm_fyl2xp1_01.d --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/run/a/asm_fyl2xp1_01.d Tue Oct 04 09:25:00 2005 +0000 @@ -0,0 +1,27 @@ +// $HeadURL$ +// $Date$ +// $Author$ + +module dstress.run.a.asm_fyl2xp1_01; + +int main(){ + version(D_InlineAsm){ + real a = -0.0L; + + asm{ + finit; + fld a; + fld a; + fyl2xp1; + fstp a; + fstp a; + } + + assert(a == 0.0L); + + return 0; + }else{ + pragma(msg, "no Inline asm support"); + static assert(0); + } +} \ No newline at end of file