Mercurial > projects > dstress
changeset 992:4c6602a06f32
inline ASM review
line wrap: on
line diff
--- a/run/a/asm_fimul_01_A.d Wed May 10 19:00:12 2006 +0000 +++ b/run/a/asm_fimul_01_A.d Wed May 10 19:00:54 2006 +0000 @@ -2,34 +2,42 @@ // $Date$ // $Author$ -// __DSTRESS_DFLAGS__ addon/cpuinfo.d +module dstress.run.a.asm_fimul_01_A; -module dstress.run.a.asm_fimul_01_A; -import addon.cpuinfo; +version(D_InlineAsm_X86){ + version = runTest; +}else version(D_InlineAsm_X86_64){ + version = runTest; +} -int main(){ - version(D_InlineAsm){ +version(runTest){ + import addon.cpuinfo; + + int main(){ haveFPU!()(); - float a = 2.0; + float a = 2.0f; short b = -3; asm{ - finit; fld a; fimul b; - fstp a; + fst a; + } + + a -= -6.0f; + + if(a < 0.0f){ + a = -a; } - a -= -6.0; - - a = (a>0) ? a : -a; - - assert(a < a.epsilon * 4); + if(a > a.epsilon * 4.0f){ + assert(0); + } return 0; - }else{ - pragma(msg, "no inline asm support"); - static assert(0); } -} \ No newline at end of file +}else{ + pragma(msg, "DSTRESS{XFAIL}: no inline ASM support"); + static assert(0); +}
--- a/run/a/asm_fimul_01_B.d Wed May 10 19:00:12 2006 +0000 +++ b/run/a/asm_fimul_01_B.d Wed May 10 19:00:54 2006 +0000 @@ -2,34 +2,42 @@ // $Date$ // $Author$ -// __DSTRESS_DFLAGS__ addon/cpuinfo.d +module dstress.run.a.asm_fimul_01_B; -module dstress.run.a.asm_fimul_01_B; -import addon.cpuinfo; +version(D_InlineAsm_X86){ + version = runTest; +}else version(D_InlineAsm_X86_64){ + version = runTest; +} -int main(){ - version(D_InlineAsm){ +version(runTest){ + import addon.cpuinfo; + + int main(){ haveFPU!()(); - float a = 2.0; + float a = 2.0f; int b = -3; asm{ - finit; fld a; fimul b; - fstp a; + fst a; + } + + a -= -6.0f; + + if(a < 0.0f){ + a = -a; } - a -= -6.0; - - a = (a>0) ? a : -a; - - assert(a < a.epsilon * 4); + if(a > a.epsilon * 4.0f){ + assert(0); + } return 0; - }else{ - pragma(msg, "no inline asm support"); - static assert(0); } -} \ No newline at end of file +}else{ + pragma(msg, "DSTRESS{XFAIL}: no inline ASM support"); + static assert(0); +}
--- a/run/a/asm_fisub_01_A.d Wed May 10 19:00:12 2006 +0000 +++ b/run/a/asm_fisub_01_A.d Wed May 10 19:00:54 2006 +0000 @@ -2,16 +2,21 @@ // $Date$ // $Author$ -// __DSTRESS_DFLAGS__ addon/cpuinfo.d +module dstress.run.a.asm_fisub_01_A; -module dstress.run.a.asm_fisub_01_A; -import addon.cpuinfo; +version(D_InlineAsm_X86){ + version = runTest; +}else version(D_InlineAsm_X86_64){ + version = runTest; +} -int main(){ - version(D_InlineAsm){ +version(runTest){ + import addon.cpuinfo; + + int main(){ haveFPU!()(); - float a = 2.4; + float a = 2.4f; int b = 19; asm{ @@ -20,17 +25,19 @@ fstp a; } - assert(a<0); - - a += 16.6; + a += 16.6f; - a = (a>0) ? a : -a; + if(a < 0.0f){ + a = -a; + } - assert(a < a.epsilon * 4); + if(a > a.epsilon * 4.0f){ + assert(0); + } return 0; - }else{ - pragma(msg, "no inline asm support"); - static assert(0); } -} \ No newline at end of file +}else{ + pragma(msg, "DSTRESS{XFAIL}: no inline ASM support"); + static assert(0); +}
--- a/run/a/asm_fisub_01_B.d Wed May 10 19:00:12 2006 +0000 +++ b/run/a/asm_fisub_01_B.d Wed May 10 19:00:54 2006 +0000 @@ -2,16 +2,21 @@ // $Date$ // $Author$ -// __DSTRESS_DFLAGS__ addon/cpuinfo.d +module dstress.run.a.asm_fisub_01_B; -module dstress.run.a.asm_fisub_01_B; -import addon.cpuinfo; +version(D_InlineAsm_X86){ + version = runTest; +}else version(D_InlineAsm_X86_64){ + version = runTest; +} -int main(){ - version(D_InlineAsm){ +version(runTest){ + import addon.cpuinfo; + + int main(){ haveFPU!()(); - float a = 2.4; + float a = 2.4f; short b = 19; asm{ @@ -20,17 +25,19 @@ fstp a; } - assert(a<0); - - a += 16.6; + a += 16.6f; - a = (a>0) ? a : -a; + if(a < 0.0f){ + a = -a; + } - assert(a < a.epsilon * 4); + if(a > a.epsilon * 4.0f){ + assert(0); + } return 0; - }else{ - pragma(msg, "no inline asm support"); - static assert(0); } -} \ No newline at end of file +}else{ + pragma(msg, "DSTRESS{XFAIL}: no inline ASM support"); + static assert(0); +}
--- a/run/a/asm_fisubr_01_A.d Wed May 10 19:00:12 2006 +0000 +++ b/run/a/asm_fisubr_01_A.d Wed May 10 19:00:54 2006 +0000 @@ -2,16 +2,21 @@ // $Date$ // $Author$ -// __DSTRESS_DFLAGS__ addon/cpuinfo.d +module dstress.run.a.asm_fisubr_01_A; -module dstress.run.a.asm_fisubr_01_A; -import addon.cpuinfo; +version(D_InlineAsm_X86){ + version = runTest; +}else version(D_InlineAsm_X86_64){ + version = runTest; +} -int main(){ - version(D_InlineAsm){ +version(runTest){ + import addon.cpuinfo; + + int main(){ haveFPU!()(); - float a = 2.4; + float a = 2.4f; int b = 19; asm{ @@ -20,17 +25,19 @@ fstp a; } - assert(a>0); - - a -= 16.6; + a -= 16.6f; - a = (a>0) ? a : -a; + if(a < 0.0f){ + a = -a; + } - assert(a < a.epsilon * 4); + if(a > a.epsilon * 4.0f){ + assert(0); + } return 0; - }else{ - pragma(msg, "no inline asm support"); - static assert(0); } -} \ No newline at end of file +}else{ + pragma(msg, "DSTRESS{XFAIL}: no inline ASM support"); + static assert(0); +}
--- a/run/a/asm_fisubr_01_B.d Wed May 10 19:00:12 2006 +0000 +++ b/run/a/asm_fisubr_01_B.d Wed May 10 19:00:54 2006 +0000 @@ -2,16 +2,21 @@ // $Date$ // $Author$ -// __DSTRESS_DFLAGS__ addon/cpuinfo.d +module dstress.run.a.asm_fisubr_01_B; -module dstress.run.a.asm_fisubr_01_B; -import addon.cpuinfo; +version(D_InlineAsm_X86){ + version = runTest; +}else version(D_InlineAsm_X86_64){ + version = runTest; +} -int main(){ - version(D_InlineAsm){ +version(runTest){ + import addon.cpuinfo; + + int main(){ haveFPU!()(); - float a = 2.4; + float a = 2.4f; short b = 19; asm{ @@ -20,17 +25,19 @@ fstp a; } - assert(a>0); - - a -= 16.6; + a -= 16.6f; - a = (a>0) ? a : -a; + if(a < 0.0f){ + a = -a; + } - assert(a < a.epsilon * 4); + if(a > a.epsilon * 4.0f){ + assert(0); + } return 0; - }else{ - pragma(msg, "no inline asm support"); - static assert(0); } -} \ No newline at end of file +}else{ + pragma(msg, "DSTRESS{XFAIL}: no inline ASM support"); + static assert(0); +}
--- a/run/a/asm_fld1_01.d Wed May 10 19:00:12 2006 +0000 +++ b/run/a/asm_fld1_01.d Wed May 10 19:00:54 2006 +0000 @@ -2,27 +2,34 @@ // $Date$ // $Author$ -// __DSTRESS_DFLAGS__ addon/cpuinfo.d +module dstress.run.a.asm_fld1_01; -module dstress.run.a.asm_fld1_01; -import addon.cpuinfo; +version(D_InlineAsm_X86){ + version = runTest; +}else version(D_InlineAsm_X86_64){ + version = runTest; +} -int main(){ - version(D_InlineAsm){ +version(runTest){ + import addon.cpuinfo; + + int main(){ haveFPU!()(); - float f = -800.9; + double f = -800.9; asm{ fld1; fstp f; } - assert(f == 1.0); + if(f != 1.0){ + assert(0); + } return 0; - }else{ - pragma(msg, "no inline asm support"); - static assert(0); } -} \ No newline at end of file +}else{ + pragma(msg, "DSTRESS{XFAIL}: no inline ASM support"); + static assert(0); +}
--- a/run/a/asm_fldcw_01.d Wed May 10 19:00:12 2006 +0000 +++ b/run/a/asm_fldcw_01.d Wed May 10 19:00:54 2006 +0000 @@ -2,19 +2,24 @@ // $Date$ // $Author$ -// __DSTRESS_DFLAGS__ addon/cpuinfo.d +module dstress.run.a.asm_fldcw_01; -module dstress.run.a.asm_fldcw_01; -import addon.cpuinfo; +version(D_InlineAsm_X86){ + version = runTest; +}else version(D_InlineAsm_X86_64){ + version = runTest; +} -int main(){ - version(D_InlineAsm){ +version(runTest){ + import addon.cpuinfo; + + int main(){ haveFPU!()(); ushort controll; - float a = 2.8; - float b = 2.1; + float a = 2.8f; + float b = 2.1f; short i1_a, i1_b; short i2_a, i2_b; @@ -37,6 +42,13 @@ fistp i1_b; } + if(i1_a != 2){ + assert(0); + } + if(i1_b != 2){ + assert(0); + } + controll &= 0b1111_00_1111111111; controll |= 0b0000_10_0000000000; @@ -48,6 +60,12 @@ fld b; fistp i2_b; } + if(i2_a != 3){ + assert(0); + } + if(i2_b != 3){ + assert(0); + } controll &= 0b1111_00_1111111111; @@ -59,19 +77,16 @@ fld b; fistp i3_b; } - - assert(i1_a == 2); - assert(i1_b == 2); - - assert(i2_a == 3); - assert(i2_b == 3); - - assert(i3_a == 3); - assert(i3_b == 2); + if(i3_a != 3){ + assert(0); + } + if(i3_b != 2){ + assert(0); + } return 0; - }else{ - pragma(msg, "no inline asm support"); - static assert(0); } -} \ No newline at end of file +}else{ + pragma(msg, "DSTRESS{XFAIL}: no inline ASM support"); + static assert(0); +}
--- a/run/a/asm_fldl2e_01.d Wed May 10 19:00:12 2006 +0000 +++ b/run/a/asm_fldl2e_01.d Wed May 10 19:00:54 2006 +0000 @@ -2,13 +2,18 @@ // $Date$ // $Author$ -// __DSTRESS_DFLAGS__ addon/cpuinfo.d +module dstress.run.a.asm_fld2e_01; -module dstress.run.a.asm_fld2e_01; -import addon.cpuinfo; +version(D_InlineAsm_X86){ + version = runTest; +}else version(D_InlineAsm_X86_64){ + version = runTest; +} -int main(){ - version(D_InlineAsm){ +version(runTest){ + import addon.cpuinfo; + + int main(){ haveFPU!()(); double f = -800.9; @@ -20,13 +25,17 @@ f -= 0x1.71547652B82fE178p+0; - f = (f>0) ? f : -f; + if(f < 0.0){ + f = -f; + } - assert(f < f.epsilon * 4); + if(f > f.epsilon * 4.0){ + assert(0); + } return 0; - }else{ - pragma(msg, "no inline asm support"); - static assert(0); } -} \ No newline at end of file +}else{ + pragma(msg, "no inline asm support"); + static assert(0); +}
--- a/run/a/asm_fldl2t_01.d Wed May 10 19:00:12 2006 +0000 +++ b/run/a/asm_fldl2t_01.d Wed May 10 19:00:54 2006 +0000 @@ -2,31 +2,40 @@ // $Date$ // $Author$ -// __DSTRESS_DFLAGS__ addon/cpuinfo.d +module dstress.run.a.asm_fld2t_01; -module dstress.run.a.asm_fld2t_01; -import addon.cpuinfo; +version(D_InlineAsm_X86){ + version = runTest; +}else version(D_InlineAsm_X86_64){ + version = runTest; +} -int main(){ - version(D_InlineAsm){ +version(runTest){ + import addon.cpuinfo; + + int main(){ haveFPU!()(); - real r = -800.9; + double f = -800.9; asm{ fldl2t; - fstp r; + fstp f; + } + + f -= 3.321928094887362347870319429489; + + if(f < 0.0){ + f = -f; } - r -= 3.321928094887362347870319429489L; - - r = (r>0) ? r : -r; - - assert(r < r.epsilon * 4); + if(f > f.epsilon * 4.0){ + assert(0); + } return 0; - }else{ - pragma(msg, "no inline asm support"); - static assert(0); } -} \ No newline at end of file +}else{ + pragma(msg, "DSTRESS{XFAIL}: no inline ASM support"); + static assert(0); +}
--- a/run/a/asm_fldlg2_01.d Wed May 10 19:00:12 2006 +0000 +++ b/run/a/asm_fldlg2_01.d Wed May 10 19:00:54 2006 +0000 @@ -2,13 +2,18 @@ // $Date$ // $Author$ -// __DSTRESS_DFLAGS__ addon/cpuinfo.d +module dstress.run.a.asm_fldlg2_01; -module dstress.run.a.asm_fldlg2_01; -import addon.cpuinfo; +version(D_InlineAsm_X86){ + version = runTest; +}else version(D_InlineAsm_X86_64){ + version = runTest; +} -int main(){ - version(D_InlineAsm){ +version(runTest){ + import addon.cpuinfo; + + int main(){ haveFPU!()(); double f = -800.9; @@ -18,15 +23,19 @@ fstp f; } - f -= 0.30102999566398119521373889472449L; + f -= 0.30102999566398119521373889472449; - f = (f>0) ? f : -f; + if(f < 0.0){ + f = -f; + } - assert(f < f.epsilon * 4); + if(f > f.epsilon * 4.0){ + assert(0); + } return 0; - }else{ - pragma(msg, "no inline asm support"); - static assert(0); } -} \ No newline at end of file +}else{ + pragma(msg, "DSTRESS{XFAIL}: no inline ASM support"); + static assert(0); +}
--- a/run/a/asm_fldln2_01.d Wed May 10 19:00:12 2006 +0000 +++ b/run/a/asm_fldln2_01.d Wed May 10 19:00:54 2006 +0000 @@ -2,13 +2,18 @@ // $Date$ // $Author$ -// __DSTRESS_DFLAGS__ addon/cpuinfo.d +module dstress.run.a.asm_fldln2_01; -module dstress.run.a.asm_fldln2_01; -import addon.cpuinfo; +version(D_InlineAsm_X86){ + version = runTest; +}else version(D_InlineAsm_X86_64){ + version = runTest; +} -int main(){ - version(D_InlineAsm){ +version(runTest){ + import addon.cpuinfo; + + int main(){ haveFPU!()(); double f = -800.9; @@ -18,15 +23,19 @@ fstp f; } - f -= 0.69314718055994530941723212145818L; + f -= 0.69314718055994530941723212145818; - f = (f>0) ? f : -f; + if(f < 0.0){ + f = -f; + } - assert(f < f.epsilon * 4); + if(f > f.epsilon * 4.0){ + assert(0); + } return 0; - }else{ - pragma(msg, "no inline asm support"); - static assert(0); } -} \ No newline at end of file +}else{ + pragma(msg, "DSTRESS{XFAIL}: no inline ASM support"); + static assert(0); +}
--- a/run/a/asm_fldpi_01.d Wed May 10 19:00:12 2006 +0000 +++ b/run/a/asm_fldpi_01.d Wed May 10 19:00:54 2006 +0000 @@ -2,13 +2,18 @@ // $Date$ // $Author$ -// __DSTRESS_DFLAGS__ addon/cpuinfo.d +module dstress.run.a.asm_fldpi_01; -module dstress.run.a.asm_fldpi_01; -import addon.cpuinfo; +version(D_InlineAsm_X86){ + version = runTest; +}else version(D_InlineAsm_X86_64){ + version = runTest; +} -int main(){ - version(D_InlineAsm){ +version(runTest){ + import addon.cpuinfo; + + int main(){ haveFPU!()(); double f = -800.9; @@ -20,13 +25,17 @@ f -= 0x1.921FB54442D1846Ap+1; - f = (f>0) ? f : -f; + if(f < 0.0){ + f = -f; + } - assert(f < f.epsilon * 4); + if(f > f.epsilon * 4.0){ + assert(0); + } return 0; - }else{ - pragma(msg, "no inline asm support"); - static assert(0); } -} \ No newline at end of file +}else{ + pragma(msg, "DSTRESS{XFAIL}: no inline ASM support"); + static assert(0); +}
--- a/run/a/asm_fldz_01.d Wed May 10 19:00:12 2006 +0000 +++ b/run/a/asm_fldz_01.d Wed May 10 19:00:54 2006 +0000 @@ -2,27 +2,34 @@ // $Date$ // $Author$ -// __DSTRESS_DFLAGS__ addon/cpuinfo.d +module dstress.run.a.asm_fldz_01; -module dstress.run.a.asm_fldz_01; -import addon.cpuinfo; +version(D_InlineAsm_X86){ + version = runTest; +}else version(D_InlineAsm_X86_64){ + version = runTest; +} -int main(){ - version(D_InlineAsm){ +version(runTest){ + import addon.cpuinfo; + + int main(){ haveFPU!()(); - float f = -800.9L; + double f = -800.9L; asm{ fldz; fstp f; } - assert(f == 0.0); + if(f != 0.0){ + assert(0); + } return 0; - }else{ - pragma(msg, "no inline asm support"); - static assert(0); } -} \ No newline at end of file +}else{ + pragma(msg, "DSTRESS{XFAIL}: no inline ASM support"); + static assert(0); +}
--- a/run/a/asm_fmul_01_A.d Wed May 10 19:00:12 2006 +0000 +++ b/run/a/asm_fmul_01_A.d Wed May 10 19:00:54 2006 +0000 @@ -2,34 +2,42 @@ // $Date$ // $Author$ -// __DSTRESS_DFLAGS__ addon/cpuinfo.d +module dstress.run.a.asm_fmul_01_A; -module dstress.run.a.asm_fmul_01_A; -import addon.cpuinfo; +version(D_InlineAsm_X86){ + version = runTest; +}else version(D_InlineAsm_X86_64){ + version = runTest; +} -int main(){ - version(D_InlineAsm){ +version(runTest){ + import addon.cpuinfo; + + int main(){ haveFPU!()(); - float a = 2.0; - float b = -3.0; + float a = 2.0f; + float b = -3.0f; asm{ - finit; fld a; fmul b; fst b; } - b -= -6.0; + b -= -6.0f; - b = (b>0) ? b : -b; + if(b < 0.0f){ + b = -b; + } - assert(b < b.epsilon * 4); + if(b > b.epsilon * 4.0f){ + assert(0); + } return 0; - }else{ - pragma(msg, "no inline asm support"); - static assert(0); } -} \ No newline at end of file +}else{ + pragma(msg, "DSTRESS{XFAIL}: no inline ASM support"); + static assert(0); +}
--- a/run/a/asm_fmul_01_B.d Wed May 10 19:00:12 2006 +0000 +++ b/run/a/asm_fmul_01_B.d Wed May 10 19:00:54 2006 +0000 @@ -2,20 +2,24 @@ // $Date$ // $Author$ -// __DSTRESS_DFLAGS__ addon/cpuinfo.d +module dstress.run.a.asm_fmul_01_B; -module dstress.run.a.asm_fmul_01_B; -import addon.cpuinfo; +version(D_InlineAsm_X86){ + version = runTest; +}else version(D_InlineAsm_X86_64){ + version = runTest; +} -int main(){ - version(D_InlineAsm){ +version(runTest){ + import addon.cpuinfo; + + int main(){ haveFPU!()(); - float a = 2.0; - float b = -3.0; + double a = 2.0; + double b = -3.0; asm{ - finit; fld a; fmul b; fst b; @@ -23,13 +27,17 @@ b -= -6.0; - b = (b>0) ? b : -b; + if(b < 0.0){ + b = -b; + } - assert(b < b.epsilon * 4); + if(b > b.epsilon * 4.0){ + assert(0); + } return 0; - }else{ - pragma(msg, "no inline asm support"); - static assert(0); } -} \ No newline at end of file +}else{ + pragma(msg, "DSTRESS{XFAIL}: no inline ASM support"); + static assert(0); +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/run/a/asm_fmul_01_C.d Wed May 10 19:00:54 2006 +0000 @@ -0,0 +1,44 @@ +// $HeadURL$ +// $Date$ +// $Author$ + +module dstress.run.a.asm_fmul_01_C; + +version(D_InlineAsm_X86){ + version = runTest; +}else version(D_InlineAsm_X86_64){ + version = runTest; +} + +version(runTest){ + import addon.cpuinfo; + + int main(){ + haveFPU!()(); + + float a = 2.0f; + float b = -3.0f; + + asm{ + fld a; + fld b; + fmul ST, ST(1); + fst b; + } + + b -= -6.0f; + + if(b < 0.0f){ + b = -b; + } + + if(b > b.epsilon * 4.0f){ + assert(0); + } + + return 0; + } +}else{ + pragma(msg, "DSTRESS{XFAIL}: no inline ASM support"); + static assert(0); +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/run/a/asm_fmul_01_D.d Wed May 10 19:00:54 2006 +0000 @@ -0,0 +1,45 @@ +// $HeadURL$ +// $Date$ +// $Author$ + +module dstress.run.a.asm_fmul_01_D; + +version(D_InlineAsm_X86){ + version = runTest; +}else version(D_InlineAsm_X86_64){ + version = runTest; +} + +version(runTest){ + import addon.cpuinfo; + + int main(){ + haveFPU!()(); + + float a = 2.0f; + float b = -3.0f; + + asm{ + fld a; + fld b; + fmul ST(1), ST; + fdecstp; + fst b; + } + + b -= -6.0f; + + if(b < 0.0f){ + b = -b; + } + + if(b > b.epsilon * 4.0f){ + assert(0); + } + + return 0; + } +}else{ + pragma(msg, "DSTRESS{XFAIL}: no inline ASM support"); + static assert(0); +}
--- a/run/a/asm_fmulp_01.d Wed May 10 19:00:12 2006 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,36 +0,0 @@ -// $HeadURL$ -// $Date$ -// $Author$ - -// __DSTRESS_DFLAGS__ addon/cpuinfo.d - -module dstress.run.a.asm_fmulp_01; -import addon.cpuinfo; - -int main(){ - version(D_InlineAsm){ - haveFPU!()(); - - float a = 2.0; - float 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
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/run/a/asm_fmulp_01_A.d Wed May 10 19:00:54 2006 +0000 @@ -0,0 +1,51 @@ +// $HeadURL$ +// $Date$ +// $Author$ + +module dstress.run.a.asm_fmulp_01_A; + +version(D_InlineAsm_X86){ + version = runTest; +}else version(D_InlineAsm_X86_64){ + version = runTest; +} + +version(runTest){ + import addon.cpuinfo; + + int main(){ + haveFPU!()(); + + float a = 2.0f; + float b = -3.0f; + + asm{ + fldz; + fld1; + fld a; + fld b; + fmulp; + fstp a; + fst b; + } + + a -= -6.0f; + + if(a < 0.0f){ + a = -a; + } + + if(a > a.epsilon * 4.0f){ + assert(0); + } + + if(b != 1.0f){ + assert(0); + } + + return 0; + } +}else{ + pragma(msg, "DSTRESS{XFAIL}: no inline ASM support"); + static assert(0); +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/run/a/asm_fmulp_01_B.d Wed May 10 19:00:54 2006 +0000 @@ -0,0 +1,52 @@ +// $HeadURL$ +// $Date$ +// $Author$ + +module dstress.run.a.asm_fmulp_01_B; + +version(D_InlineAsm_X86){ + version = runTest; +}else version(D_InlineAsm_X86_64){ + version = runTest; +} + +version(runTest){ + import addon.cpuinfo; + + int main(){ + haveFPU!()(); + + float a = 2.0f; + float b = -3.0f; + + asm{ + fldz; + fld1; + fld a; + fldz; + fld b; + fmulp ST(2), ST; + fstp b; + fst a; + } + + a -= -6.0f; + + if(a < 0.0f){ + a = -a; + } + + if(a > a.epsilon * 4.0f){ + assert(0); + } + + if(b != 0.0f){ + assert(0); + } + + return 0; + } +}else{ + pragma(msg, "DSTRESS{XFAIL}: no inline ASM support"); + static assert(0); +}
--- a/run/a/asm_fnop_01.d Wed May 10 19:00:12 2006 +0000 +++ b/run/a/asm_fnop_01.d Wed May 10 19:00:54 2006 +0000 @@ -2,13 +2,18 @@ // $Date$ // $Author$ -// __DSTRESS_DFLAGS__ addon/cpuinfo.d +module dstress.run.a.asm_fnop_01; -module dstress.run.a.asm_fnop_01; -import addon.cpuinfo; +version(D_InlineAsm_X86){ + version = runTest; +}else version(D_InlineAsm_X86_64){ + version = runTest; +} -int main(){ - version(D_InlineAsm){ +version(runTest){ + import addon.cpuinfo; + + int main(){ haveFPU!()(); asm{ @@ -16,8 +21,8 @@ } return 0; - }else{ - pragma(msg, "no inline asm support"); - static assert(0); } -} \ No newline at end of file +}else{ + pragma(msg, "DSTRESS{XFAIL}: no inline ASM support"); + static assert(0); +}
--- a/run/a/asm_fnsave_01.d Wed May 10 19:00:12 2006 +0000 +++ b/run/a/asm_fnsave_01.d Wed May 10 19:00:54 2006 +0000 @@ -2,13 +2,18 @@ // $Date$ // $Author$ -// __DSTRESS_DFLAGS__ addon/cpuinfo.d +module dstress.run.a.asm_fnsave_01; -module dstress.run.a.asm_fnsave_01; -import addon.cpuinfo; +version(D_InlineAsm_X86){ + version = runTest; +}else version(D_InlineAsm_X86_64){ + version = runTest; +} -int main(){ - version(D_InlineAsm){ +version(runTest){ + import addon.cpuinfo; + + int main(){ haveFPU!()(); static if(size_t.sizeof==4 || size_t.sizeof==6){ @@ -26,8 +31,8 @@ } return 0; - }else{ - pragma(msg, "no inline asm support"); - static assert(0); } -} \ No newline at end of file +}else{ + pragma(msg, "DSTRESS{XFAIL}: no inline ASM support"); + static assert(0); +}
--- a/run/a/asm_fnstcw_01.d Wed May 10 19:00:12 2006 +0000 +++ b/run/a/asm_fnstcw_01.d Wed May 10 19:00:54 2006 +0000 @@ -2,13 +2,18 @@ // $Date$ // $Author$ -// __DSTRESS_DFLAGS__ addon/cpuinfo.d +module dstress.run.a.asm_fnstcw_01; -module dstress.run.a.asm_fnstcw_01; -import addon.cpuinfo; +version(D_InlineAsm_X86){ + version = runTest; +}else version(D_InlineAsm_X86_64){ + version = runTest; +} -int main(){ - version(D_InlineAsm){ +version(runTest){ + import addon.cpuinfo; + + int main(){ haveFPU!()(); ushort b; @@ -18,11 +23,13 @@ fnstcw b; } - assert(b == 0x037F); + if(b != 0x037F){ + assert(0); + } return 0; - }else{ - pragma(msg, "no inline asm support"); - static assert(0); } -} \ No newline at end of file +}else{ + pragma(msg, "DSTRESS{XFAIL}: no inline ASM support"); + static assert(0); +}
--- a/run/a/asm_fnstenv_01.d Wed May 10 19:00:12 2006 +0000 +++ b/run/a/asm_fnstenv_01.d Wed May 10 19:00:54 2006 +0000 @@ -4,8 +4,18 @@ module dstress.run.a.asm_fnstenv_01; -int main(){ - version(D_InlineAsm){ +version(D_InlineAsm_X86){ + version = runTest; +}else version(D_InlineAsm_X86_64){ + version = runTest; +} + +version(runTest){ + import addon.cpuinfo; + + int main(){ + haveFPU!()(); + byte[28] b; asm{ @@ -13,8 +23,8 @@ } return 0; - }else{ - pragma(msg, "no Inline asm support"); - static assert(0); } -} \ No newline at end of file +}else{ + pragma(msg, "DSTRESS{XFAIL}: no inline ASM support"); + static assert(0); +}
--- a/run/a/asm_fnstsw_01.d Wed May 10 19:00:12 2006 +0000 +++ b/run/a/asm_fnstsw_01.d Wed May 10 19:00:54 2006 +0000 @@ -4,11 +4,21 @@ module dstress.run.a.asm_fnstsw_01; -int main(){ - version(D_InlineAsm_X86){ - ushort a; - uint b; - +version(D_InlineAsm_X86){ + version = runTest; +}else version(D_InlineAsm_X86_64){ + version = runTest; +} + +version(runTest){ + import addon.cpuinfo; + + int main(){ + haveFPU!()(); + + short a; + int b; + asm{ mov EAX, 0x1234_ABCD; fnstsw a; @@ -23,10 +33,11 @@ if(a != (b & 0xFFFF)){ assert(0); } + return 0; - }else{ - pragma(msg, "no Inline asm support"); - static assert(0); } +}else{ + pragma(msg, "DSTRESS{XFAIL}: no inline ASM support"); + static assert(0); }
--- a/run/a/asm_fpatan_01.d Wed May 10 19:00:12 2006 +0000 +++ b/run/a/asm_fpatan_01.d Wed May 10 19:00:54 2006 +0000 @@ -2,17 +2,22 @@ // $Date$ // $Author$ -// __DSTRESS_DFLAGS__ addon/cpuinfo.d +module dstress.run.a.asm_fpatan_01; -module dstress.run.a.asm_fpatan_01; -import addon.cpuinfo; +version(D_InlineAsm_X86){ + version = runTest; +}else version(D_InlineAsm_X86_64){ + version = runTest; +} -int main(){ - version(D_InlineAsm){ +version(runTest){ + import addon.cpuinfo; + + int main(){ haveFPU!()(); - float a = 2.2; - float b = -0.0; + float a = 2.2f; + float b = -0.0f; asm{ finit; @@ -24,15 +29,19 @@ fstp b; } - a -= b/2; + a -= b / 2.0f; - a = (a>0) ? a : -a; + if(a < 0.0f){ + assert(0); + } - assert(a < a.epsilon * 4); + if(a > a.epsilon * 4.0f){ + assert(0); + } return 0; - }else{ - pragma(msg, "no inline asm support"); - static assert(0); } -} \ No newline at end of file +}else{ + pragma(msg, "DSTRESS{XFAIL}: no inline ASM support"); + static assert(0); +}
--- a/run/a/asm_fprem1_01.d Wed May 10 19:00:12 2006 +0000 +++ b/run/a/asm_fprem1_01.d Wed May 10 19:00:54 2006 +0000 @@ -2,17 +2,22 @@ // $Date$ // $Author$ -// __DSTRESS_DFLAGS__ addon/cpuinfo.d +module dstress.run.a.asm_fprem1_01; -module dstress.run.a.asm_fprem1_01; -import addon.cpuinfo; +version(D_InlineAsm_X86){ + version = runTest; +}else version(D_InlineAsm_X86_64){ + version = runTest; +} -int main(){ - version(D_InlineAsm){ +version(runTest){ + import addon.cpuinfo; + + int main(){ haveFPU!()(); - float a = 3.0; - float b = 8.0; + float a = 2.5f; + float b = -4.2f; asm{ finit; @@ -22,15 +27,19 @@ fstp a; } - a += 1.0; + a -= 0.8f; - a = (a>0) ? a : -a; + if(a < 0.0f){ + a = -a; + } - assert(a < a.epsilon * 4); + if(a > a.epsilon * 4.0f){ + assert(0); + } return 0; - }else{ - pragma(msg, "no inline asm support"); - static assert(0); } +}else{ + pragma(msg, "DSTRESS{XFAIL}: no inline ASM support"); + static assert(0); }
--- a/run/a/asm_fprem_01.d Wed May 10 19:00:12 2006 +0000 +++ b/run/a/asm_fprem_01.d Wed May 10 19:00:54 2006 +0000 @@ -2,35 +2,43 @@ // $Date$ // $Author$ -// __DSTRESS_DFLAGS__ addon/cpuinfo.d +module dstress.run.a.asm_fprem_01; -module dstress.run.a.asm_fprem_01; -import addon.cpuinfo; +version(D_InlineAsm_X86){ + version = runTest; +}else version(D_InlineAsm_X86_64){ + version = runTest; +} -int main(){ - version(D_InlineAsm){ +version(runTest){ + import addon.cpuinfo; + + int main(){ haveFPU!()(); - float a = 3.0; - float b = 8.0; + float a = 2.5f; + float b = -4.2f; asm{ - finit; fld a; fld b; fprem; fstp a; } - a -= 2.0; + a += 1.7f; + + if(a < 0.0f){ + a = -a; + } - a = (a>0) ? a : -a; - - assert(a < a.epsilon * 4); + if(a > a.epsilon * 4.0f){ + assert(0); + } return 0; - }else{ - pragma(msg, "no inline asm support"); - static assert(0); } -} \ No newline at end of file +}else{ + pragma(msg, "DSTRESS{XFAIL}: no inline ASM support"); + static assert(0); +}
--- a/run/a/asm_fptan_01.d Wed May 10 19:00:12 2006 +0000 +++ b/run/a/asm_fptan_01.d Wed May 10 19:00:54 2006 +0000 @@ -2,37 +2,47 @@ // $Date$ // $Author$ -// __DSTRESS_DFLAGS__ addon/cpuinfo.d +module dstress.run.a.asm_fptan_01; -module dstress.run.a.asm_fptan_01; -import addon.cpuinfo; +version(D_InlineAsm_X86){ + version = runTest; +}else version(D_InlineAsm_X86_64){ + version = runTest; +} -int main(){ - version(D_InlineAsm){ +version(runTest){ + import addon.cpuinfo; + + int main(){ haveFPU!()(); - double a = 4.0L; + double a = 4.0; double b; asm{ - finit; fld a; fptan; fstp b; fstp a; } - assert(b == 1.0); + if(b != 1.0){ + assert(0); + } - a -= 1.1578212823495774852L; + a -= 1.1578212823495774852; - a = (a>0) ? a : -a; + if(a < 0.0){ + a = -a; + } - assert(a < a.epsilon * 4); + if(a > a.epsilon * 4.0){ + assert(0); + } return 0; - }else{ - pragma(msg, "no inline asm support"); - static assert(0); } -} \ No newline at end of file +}else{ + pragma(msg, "DSTRESS{XFAIL}: no inline ASM support"); + static assert(0); +}
--- a/run/a/asm_frndint_01.d Wed May 10 19:00:12 2006 +0000 +++ b/run/a/asm_frndint_01.d Wed May 10 19:00:54 2006 +0000 @@ -2,16 +2,21 @@ // $Date$ // $Author$ -// __DSTRESS_DFLAGS__ addon/cpuinfo.d +module dstress.run.a.asm_frndint_01; -module dstress.run.a.asm_frndint_01; -import addon.cpuinfo; +version(D_InlineAsm_X86){ + version = runTest; +}else version(D_InlineAsm_X86_64){ + version = runTest; +} -int main(){ - version(D_InlineAsm){ +version(runTest){ + import addon.cpuinfo; + + int main(){ haveFPU!()(); - float a = 4.6; + float a = 4.6f; asm{ finit; @@ -20,15 +25,19 @@ fstp a; } - a -= 5.0; + a -= 5.0f; - a = (a>0) ? a : -a; + if(a < 0.0f){ + a = -a; + } - assert(a < a.epsilon * 4); + if(a > a.epsilon * 4.0f){ + assert(0); + } return 0; - }else{ - pragma(msg, "no inline asm support"); - static assert(0); } -} \ No newline at end of file +}else{ + pragma(msg, "DSTRESS{XFAIL}: no inline ASM support"); + static assert(0); +}
--- a/run/a/asm_frstor_01.d Wed May 10 19:00:12 2006 +0000 +++ b/run/a/asm_frstor_01.d Wed May 10 19:00:54 2006 +0000 @@ -2,13 +2,18 @@ // $Date$ // $Author$ -// __DSTRESS_DFLAGS__ addon/cpuinfo.d +module dstress.run.a.asm_frstor_01; -module dstress.run.a.asm_frstor_01; -import addon.cpuinfo; +version(D_InlineAsm_X86){ + version = runTest; +}else version(D_InlineAsm_X86_64){ + version = runTest; +} -int main(){ - version(D_InlineAsm){ +version(runTest){ + import addon.cpuinfo; + + int main(){ haveFPU!()(); static if(size_t.sizeof==4 || size_t.sizeof==6){ @@ -26,8 +31,8 @@ } return 0; - }else{ - pragma(msg, "no inline asm support"); - static assert(0); } -} \ No newline at end of file +}else{ + pragma(msg, "DSTRESS{XFAIL}: no inline ASM support"); + static assert(0); +}
--- a/run/a/asm_fsave_01.d Wed May 10 19:00:12 2006 +0000 +++ b/run/a/asm_fsave_01.d Wed May 10 19:00:54 2006 +0000 @@ -2,13 +2,18 @@ // $Date$ // $Author$ -// __DSTRESS_DFLAGS__ addon/cpuinfo.d +module dstress.run.a.asm_fsave_01; -module dstress.run.a.asm_fsave_01; -import addon.cpuinfo; +version(D_InlineAsm_X86){ + version = runTest; +}else version(D_InlineAsm_X86_64){ + version = runTest; +} -int main(){ - version(D_InlineAsm){ +version(runTest){ + import addon.cpuinfo; + + int main(){ haveFPU!()(); static if(size_t.sizeof==4 || size_t.sizeof==6){ @@ -26,8 +31,8 @@ } return 0; - }else{ - pragma(msg, "no inline asm support"); - static assert(0); } -} \ No newline at end of file +}else{ + pragma(msg, "DSTRESS{XFAIL}: no inline ASM support"); + static assert(0); +}
--- a/run/a/asm_fscale_01.d Wed May 10 19:00:12 2006 +0000 +++ b/run/a/asm_fscale_01.d Wed May 10 19:00:54 2006 +0000 @@ -2,35 +2,43 @@ // $Date$ // $Author$ -// __DSTRESS_DFLAGS__ addon/cpuinfo.d +module dstress.run.a.asm_fscale_01; -module dstress.run.a.asm_fscale_01; -import addon.cpuinfo; +version(D_InlineAsm_X86){ + version = runTest; +}else version(D_InlineAsm_X86_64){ + version = runTest; +} -int main(){ - version(D_InlineAsm){ +version(runTest){ + import addon.cpuinfo; + + int main(){ haveFPU!()(); - float a = 4.6; - float b = 1.0; + float a = 4.6f; + float b = 1.0f; asm{ - finit; fld a; fld b; fscale; fstp a; } - a -= 16.0; + a -= 16.0f; + + if(a < 0.0f){ + a = -a; + } - a = (a>0) ? a : -a; - - assert(a < a.epsilon * 4); + if(a > a.epsilon * 4.0f){ + assert(0); + } return 0; - }else{ - pragma(msg, "no inline asm support"); - static assert(0); } -} \ No newline at end of file +}else{ + pragma(msg, "DSTRESS{XFAIL}: no inline ASM support"); + static assert(0); +}
--- a/run/a/asm_fsin_01.d Wed May 10 19:00:12 2006 +0000 +++ b/run/a/asm_fsin_01.d Wed May 10 19:00:54 2006 +0000 @@ -2,31 +2,39 @@ // $Date$ // $Author$ -// __DSTRESS_DFLAGS__ addon/cpuinfo.d +module dstress.run.a.asm_fsin_01; -module dstress.run.a.asm_fsin_01; -import addon.cpuinfo; +version(D_InlineAsm_X86){ + version = runTest; +}else version(D_InlineAsm_X86_64){ + version = runTest; +} -int main(){ - version(D_InlineAsm){ +version(runTest){ + import addon.cpuinfo; + + int main(){ haveFPU!()(); - float a = 2.2; + float a = 2.2f; asm{ - finit; fldpi; fsin; fstp a; } - a = (a>0) ? a : -a; + if(a < 0.0f){ + a = -a; + } - assert(a < a.epsilon * 4); + if(a > a.epsilon * 4.0f){ + assert(0); + } return 0; - }else{ - pragma(msg, "no inline asm support"); - static assert(0); } -} \ No newline at end of file +}else{ + pragma(msg, "DSTRESS{XFAIL}: no inline ASM support"); + static assert(0); +}
--- a/run/a/asm_fsincos_01.d Wed May 10 19:00:12 2006 +0000 +++ b/run/a/asm_fsincos_01.d Wed May 10 19:00:54 2006 +0000 @@ -2,35 +2,46 @@ // $Date$ // $Author$ -// __DSTRESS_DFLAGS__ addon/cpuinfo.d +module dstress.run.a.asm_fsincos_01; -module dstress.run.a.asm_fsincos_01; -import addon.cpuinfo; +version(D_InlineAsm_X86){ + version = runTest; +}else version(D_InlineAsm_X86_64){ + version = runTest; +} -int main(){ - version(D_InlineAsm){ +version(runTest){ + import addon.cpuinfo; + + int main(){ haveFPU!()(); - float a = 2.2; - float b = 2.2; + float a = 2.2f; + float b = 2.2f; asm{ - finit; fldz; fsincos; fstp a; fstp b; } - a -= 1.0; - a = (a>0) ? a : -a; - assert(a < a.epsilon * 4); + a -= 1.0f; + if(a < 0.0f){ + assert(0); + } - assert(b == 0.0); + if(a > a.epsilon * 4.0f){ + assert(0); + } + + if(b != 0.0f){ + assert(0); + } return 0; - }else{ - pragma(msg, "no Inline asm support"); - static assert(0); } -} \ No newline at end of file +}else{ + pragma(msg, "DSTRESS{XFAIL}: no inline ASM support"); + static assert(0); +}
--- a/run/a/asm_fsqrt_01.d Wed May 10 19:00:12 2006 +0000 +++ b/run/a/asm_fsqrt_01.d Wed May 10 19:00:54 2006 +0000 @@ -2,32 +2,40 @@ // $Date$ // $Author$ -// __DSTRESS_DFLAGS__ addon/cpuinfo.d +module dstress.run.a.asm_fsqrt_01; -module dstress.run.a.asm_fsqrt_01; -import addon.cpuinfo; +version(D_InlineAsm_X86){ + version = runTest; +}else version(D_InlineAsm_X86_64){ + version = runTest; +} -int main(){ - version(D_InlineAsm){ +version(runTest){ + import addon.cpuinfo; + + int main(){ haveFPU!()(); - float a = 9.0L; + float a = 9.0f; asm{ - finit; fld a; fsqrt; fstp a; } - a -= 3.0; - a = (a>0) ? a : -a; + a -= 3.0f; + if(a < 0.0f){ + a = -a; + } - assert(a < a.epsilon * 4); + if(a > a.epsilon * 4.0f){ + assert(0); + } return 0; - }else{ - pragma(msg, "no inline asm support"); - static assert(0); } -} \ No newline at end of file +}else{ + pragma(msg, "no inline asm support"); + static assert(0); +}
--- a/run/a/asm_fst_01_A.d Wed May 10 19:00:12 2006 +0000 +++ b/run/a/asm_fst_01_A.d Wed May 10 19:00:54 2006 +0000 @@ -2,13 +2,18 @@ // $Date$ // $Author$ -// __DSTRESS_DFLAGS__ addon/cpuinfo.d +module dstress.run.a.asm_fst_01_A; -module dstress.run.a.asm_fst_01_A; -import addon.cpuinfo; +version(D_InlineAsm_X86){ + version = runTest; +}else version(D_InlineAsm_X86_64){ + version = runTest; +} -int main(){ - version(D_InlineAsm){ +version(runTest){ + import addon.cpuinfo; + + int main(){ haveFPU!()(); float a, b, c; @@ -23,13 +28,19 @@ fstp c; } - assert(a == 1.0); - assert(b == 1.0); - assert(c == 0.0); + if(a != 1.0f){ + assert(0); + } + if(b != 1.0f){ + assert(0); + } + if(c != 0.0){ + assert(0); + } return 0; - }else{ - pragma(msg, "no inline asm support"); - static assert(0); } -} \ No newline at end of file +}else{ + pragma(msg, "DSTRESS{XFAIL}: no inline ASM support"); + static assert(0); +}
--- a/run/a/asm_fst_01_B.d Wed May 10 19:00:12 2006 +0000 +++ b/run/a/asm_fst_01_B.d Wed May 10 19:00:54 2006 +0000 @@ -2,13 +2,18 @@ // $Date$ // $Author$ -// __DSTRESS_DFLAGS__ addon/cpuinfo.d +module dstress.run.a.asm_fst_01_B; -module dstress.run.a.asm_fst_01_B; -import addon.cpuinfo; +version(D_InlineAsm_X86){ + version = runTest; +}else version(D_InlineAsm_X86_64){ + version = runTest; +} -int main(){ - version(D_InlineAsm){ +version(runTest){ + import addon.cpuinfo; + + int main(){ haveFPU!()(); float a, b, c; @@ -21,13 +26,19 @@ fstp b; } - assert(a == 1.0); - assert(b == 0.0); - assert(c == 1.0); + if(a != 1.0f){ + assert(0); + } + if(b != 0.0f){ + assert(0); + } + if(c != 1.0f){ + assert(0); + } return 0; - }else{ - pragma(msg, "no inline asm support"); - static assert(0); } -} \ No newline at end of file +}else{ + pragma(msg, "DSTRESS{XFAIL}: no inline ASM support"); + static assert(0); +}
--- a/run/a/asm_fst_01_C.d Wed May 10 19:00:12 2006 +0000 +++ b/run/a/asm_fst_01_C.d Wed May 10 19:00:54 2006 +0000 @@ -2,13 +2,18 @@ // $Date$ // $Author$ -// __DSTRESS_DFLAGS__ addon/cpuinfo.d +module dstress.run.a.asm_fst_01_C; -module dstress.run.a.asm_fst_01_C; -import addon.cpuinfo; +version(D_InlineAsm_X86){ + version = runTest; +}else version(D_InlineAsm_X86_64){ + version = runTest; +} -int main(){ - version(D_InlineAsm){ +version(runTest){ + import addon.cpuinfo; + + int main(){ haveFPU!()(); double a, b, c; @@ -21,13 +26,19 @@ fstp b; } - assert(a == 1.0); - assert(b == 0.0); - assert(c == 1.0); + if(a != 1.0){ + assert(0); + } + if(b != 0.0){ + assert(0); + } + if(c != 1.0){ + assert(0); + } return 0; - }else{ - pragma(msg, "no inline asm support"); - static assert(0); } -} \ No newline at end of file +}else{ + pragma(msg, "DSTRESS{XFAIL}: no inline ASM support"); + static assert(0); +}
--- a/run/a/asm_fstcw_01.d Wed May 10 19:00:12 2006 +0000 +++ b/run/a/asm_fstcw_01.d Wed May 10 19:00:54 2006 +0000 @@ -2,13 +2,18 @@ // $Date$ // $Author$ -// __DSTRESS_DFLAGS__ addon/cpuinfo.d +module dstress.run.a.asm_fstcw_01; -module dstress.run.a.asm_fstcw_01; -import addon.cpuinfo; +version(D_InlineAsm_X86){ + version = runTest; +}else version(D_InlineAsm_X86_64){ + version = runTest; +} -int main(){ - version(D_InlineAsm){ +version(runTest){ + import addon.cpuinfo; + + int main(){ haveFPU!()(); ushort b; @@ -18,11 +23,13 @@ fstcw b; } - assert(b == 0x037F); + if(b != 0x037F){ + assert(0); + } return 0; - }else{ - pragma(msg, "no inline asm support"); - static assert(0); } -} \ No newline at end of file +}else{ + pragma(msg, "DSTRESS{XFAIL}: no inline ASM support"); + static assert(0); +}
--- a/run/a/asm_fstenv_01.d Wed May 10 19:00:12 2006 +0000 +++ b/run/a/asm_fstenv_01.d Wed May 10 19:00:54 2006 +0000 @@ -4,8 +4,18 @@ module dstress.run.a.asm_fstenv_01; -int main(){ - version(D_InlineAsm){ +version(D_InlineAsm_X86){ + version = runTest; +}else version(D_InlineAsm_X86_64){ + version = runTest; +} + +version(runTest){ + import addon.cpuinfo; + + int main(){ + haveFPU!()(); + byte[28] b; asm{ @@ -13,8 +23,8 @@ } return 0; - }else{ - pragma(msg, "no Inline asm support"); - static assert(0); } -} \ No newline at end of file +}else{ + pragma(msg, "DSTRESS{XFAIL}: no inline ASM support"); + static assert(0); +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/run/a/asm_fstp_01_A.d Wed May 10 19:00:54 2006 +0000 @@ -0,0 +1,41 @@ +// $HeadURL$ +// $Date$ +// $Author$ + +module dstress.run.a.asm_fstp_01_A; + +version(D_InlineAsm_X86){ + version = runTest; +}else version(D_InlineAsm_X86_64){ + version = runTest; +} + +version(runTest){ + import addon.cpuinfo; + + int main(){ + haveFPU!()(); + + float a, b; + + asm{ + fldz; + fldz; + fld1; + fstp a; + fstp b; + } + + if(a != 1.0f){ + assert(0); + } + if(b != 0.0f){ + assert(0); + } + + return 0; + } +}else{ + pragma(msg, "DSTRESS{XFAIL}: no inline ASM support"); + static assert(0); +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/run/a/asm_fstp_01_B.d Wed May 10 19:00:54 2006 +0000 @@ -0,0 +1,41 @@ +// $HeadURL$ +// $Date$ +// $Author$ + +module dstress.run.a.asm_fstp_01_B; + +version(D_InlineAsm_X86){ + version = runTest; +}else version(D_InlineAsm_X86_64){ + version = runTest; +} + +version(runTest){ + import addon.cpuinfo; + + int main(){ + haveFPU!()(); + + double a, b; + + asm{ + fldz; + fldz; + fld1; + fstp a; + fstp b; + } + + if(a != 1.0){ + assert(0); + } + if(b != 0.0){ + assert(0); + } + + return 0; + } +}else{ + pragma(msg, "DSTRESS{XFAIL}: no inline ASM support"); + static assert(0); +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/run/a/asm_fstp_01_C.d Wed May 10 19:00:54 2006 +0000 @@ -0,0 +1,41 @@ +// $HeadURL$ +// $Date$ +// $Author$ + +module dstress.run.a.asm_fstp_01_C; + +version(D_InlineAsm_X86){ + version = runTest; +}else version(D_InlineAsm_X86_64){ + version = runTest; +} + +version(runTest){ + import addon.cpuinfo; + + int main(){ + haveFPU!()(); + + real a, b; + + asm{ + fldz; + fldz; + fld1; + fstp a; + fstp b; + } + + if(a != 1.0L){ + assert(0); + } + if(b != 0.0L){ + assert(0); + } + + return 0; + } +}else{ + pragma(msg, "DSTRESS{XFAIL}: no inline ASM support"); + static assert(0); +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/run/a/asm_fstp_01_D.d Wed May 10 19:00:54 2006 +0000 @@ -0,0 +1,42 @@ +// $HeadURL$ +// $Date$ +// $Author$ + +module dstress.run.a.asm_fstp_01_D; + +version(D_InlineAsm_X86){ + version = runTest; +}else version(D_InlineAsm_X86_64){ + version = runTest; +} + +version(runTest){ + import addon.cpuinfo; + + int main(){ + haveFPU!()(); + + float a, b; + + asm{ + fldz; + fldz; + fld1; + fstp ST(2); + fstp a; + fstp b; + } + + if(a != 0.0f){ + assert(0); + } + if(b != 1.0f){ + assert(0); + } + + return 0; + } +}else{ + pragma(msg, "DSTRESS{XFAIL}: no inline ASM support"); + static assert(0); +}
--- a/run/a/asm_fstsw_01.d Wed May 10 19:00:12 2006 +0000 +++ b/run/a/asm_fstsw_01.d Wed May 10 19:00:54 2006 +0000 @@ -4,8 +4,18 @@ module dstress.run.a.asm_fstsw_01; -int main(){ - version(D_InlineAsm_X86){ +version(D_InlineAsm_X86){ + version = runTest; +}else version(D_InlineAsm_X86_64){ + version = runTest; +} + +version(runTest){ + import addon.cpuinfo; + + int main(){ + haveFPU!()(); + short a; int b; @@ -26,8 +36,8 @@ return 0; - }else{ - pragma(msg, "no Inline asm support"); - static assert(0); } +}else{ + pragma(msg, "DSTRESS{XFAIL}: no inline ASM support"); + static assert(0); }
--- a/run/a/asm_fsub_01_A.d Wed May 10 19:00:12 2006 +0000 +++ b/run/a/asm_fsub_01_A.d Wed May 10 19:00:54 2006 +0000 @@ -4,10 +4,19 @@ module dstress.run.a.asm_fsub_01_A; -int main(){ - version(D_InlineAsm){ +version(D_InlineAsm_X86){ + version = runTest; +}else version(D_InlineAsm_X86_64){ + version = runTest; +} + + +version(runTest){ + import addon.cpuinfo; + + int main(){ float a = 2.4f; - float b = -1.2; + float b = -1.2f; asm{ fld a; @@ -15,17 +24,19 @@ fst a; } - assert(a>0); - a -= 3.6f; - a = (a>0) ? a : -a; + if(a < 0.0f){ + a = -a; + } - assert(a < a.epsilon * 4); + if(a > a.epsilon * 4.0f){ + assert(0); + } return 0; - }else{ - pragma(msg, "no Inline asm support"); - static assert(0); } -} \ No newline at end of file +}else{ + pragma(msg, "DSTRESS{XFAIL}: no inline ASM support"); + static assert(0); +}
--- a/run/a/asm_fsub_01_B.d Wed May 10 19:00:12 2006 +0000 +++ b/run/a/asm_fsub_01_B.d Wed May 10 19:00:54 2006 +0000 @@ -2,12 +2,21 @@ // $Date$ // $Author$ -module dstress.run.a.asm_fsub_01_A; +module dstress.run.a.asm_fsub_01_B; + +version(D_InlineAsm_X86){ + version = runTest; +}else version(D_InlineAsm_X86_64){ + version = runTest; +} -int main(){ - version(D_InlineAsm){ - double a = 2.4L; - double b = -1.2L; + +version(runTest){ + import addon.cpuinfo; + + int main(){ + double a = 2.4; + double b = -1.2; asm{ fld a; @@ -15,17 +24,19 @@ fst a; } - assert(a>0); - - a -= 3.6L; + a -= 3.6; - a = (a>0) ? a : -a; + if(a < 0.0){ + a = -a; + } - assert(a < a.epsilon * 4); + if(a > a.epsilon * 4.0){ + assert(0); + } return 0; - }else{ - pragma(msg, "no Inline asm support"); - static assert(0); } -} \ No newline at end of file +}else{ + pragma(msg, "DSTRESS{XFAIL}: no inline ASM support"); + static assert(0); +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/run/a/asm_fsub_01_C.d Wed May 10 19:00:54 2006 +0000 @@ -0,0 +1,43 @@ +// $HeadURL$ +// $Date$ +// $Author$ + +module dstress.run.a.asm_fsub_01_C; + +version(D_InlineAsm_X86){ + version = runTest; +}else version(D_InlineAsm_X86_64){ + version = runTest; +} + + +version(runTest){ + import addon.cpuinfo; + + int main(){ + float a = 2.4f; + float b = -1.2f; + + asm{ + fld b; + fld a; + fsub ST, ST(1); + fst a; + } + + a -= 3.6f; + + if(a < 0.0f){ + a = -a; + } + + if(a > a.epsilon * 4.0f){ + assert(0); + } + + return 0; + } +}else{ + pragma(msg, "DSTRESS{XFAIL}: no inline ASM support"); + static assert(0); +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/run/a/asm_fsub_01_D.d Wed May 10 19:00:54 2006 +0000 @@ -0,0 +1,44 @@ +// $HeadURL$ +// $Date$ +// $Author$ + +module dstress.run.a.asm_fsub_01_D; + +version(D_InlineAsm_X86){ + version = runTest; +}else version(D_InlineAsm_X86_64){ + version = runTest; +} + + +version(runTest){ + import addon.cpuinfo; + + int main(){ + float a = 2.4f; + float b = -1.2f; + + asm{ + fld b; + fld a; + fsub ST(1), ST; + fdecstp; + fst a; + } + + a -= 3.6f; + + if(a < 0.0f){ + a = -a; + } + + if(a > a.epsilon * 4.0f){ + assert(0); + } + + return 0; + } +}else{ + pragma(msg, "DSTRESS{XFAIL}: no inline ASM support"); + static assert(0); +}
--- a/run/a/asm_fsubp_01.d Wed May 10 19:00:12 2006 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,32 +0,0 @@ -// $HeadURL$ -// $Date$ -// $Author$ - -module dstress.run.a.asm_fsubp_01; - -int main(){ - version(D_InlineAsm){ - double a = 2.4L; - double b = -1.2L; - - asm{ - fld a; - fld b; - fsubp; - fst a; - } - - assert(a>0); - - a -= 3.6L; - - 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
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/run/a/asm_fsubp_01_A.d Wed May 10 19:00:54 2006 +0000 @@ -0,0 +1,49 @@ +// $HeadURL$ +// $Date$ +// $Author$ + +module dstress.run.a.asm_fsubp_01_A; + +version(D_InlineAsm_X86){ + version = runTest; +}else version(D_InlineAsm_X86_64){ + version = runTest; +} + +version(runTest){ + import addon.cpuinfo; + + int main(){ + double a = 2.4; + double b = -1.2; + + asm{ + fld1; + fldz; + fld a; + fld b; + fsubp; + fstp a; + fstp b; + } + + a -= 3.6; + + if(a < 0.0){ + a = -a; + } + + if(a > a.epsilon * 4.0){ + assert(0); + } + + if(b != 0.0){ + assert(0); + } + + return 0; + } +}else{ + pragma(msg, "DSTRESS{XFAIL}: no inline ASM support"); + static assert(0); +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/run/a/asm_fsubp_01_B.d Wed May 10 19:00:54 2006 +0000 @@ -0,0 +1,49 @@ +// $HeadURL$ +// $Date$ +// $Author$ + +module dstress.run.a.asm_fsubp_01_B; + +version(D_InlineAsm_X86){ + version = runTest; +}else version(D_InlineAsm_X86_64){ + version = runTest; +} + +version(runTest){ + import addon.cpuinfo; + + int main(){ + double a = 2.4; + double b = -1.2; + + asm{ + fld1; + fld a; + fldz; + fld b; + fsubp ST(2), ST; + fstp b; + fstp a; + } + + a -= 3.6; + + if(a < 0.0){ + a = -a; + } + + if(a > a.epsilon * 4.0){ + assert(0); + } + + if(b != 0.0){ + assert(0); + } + + return 0; + } +}else{ + pragma(msg, "DSTRESS{XFAIL}: no inline ASM support"); + static assert(0); +}
--- a/run/a/asm_fsubr_01_A.d Wed May 10 19:00:12 2006 +0000 +++ b/run/a/asm_fsubr_01_A.d Wed May 10 19:00:54 2006 +0000 @@ -4,28 +4,39 @@ module dstress.run.a.asm_fsubr_01_A; -int main(){ - version(D_InlineAsm){ - float a = 2.4L; - float b = -1.2L; +version(D_InlineAsm_X86){ + version = runTest; +}else version(D_InlineAsm_X86_64){ + version = runTest; +} + + +version(runTest){ + import addon.cpuinfo; + + int main(){ + float a = 2.4f; + float b = -1.2f; asm{ - fld a; - fsubr b; + fld b; + fsubr a; fst a; } - assert(a<0); - - a += 3.6L; + a -= 3.6f; - a = (a>0) ? a : -a; + if(a < 0.0f){ + a = -a; + } - assert(a < a.epsilon * 4); + if(a > a.epsilon * 4.0f){ + assert(0); + } return 0; - }else{ - pragma(msg, "no Inline asm support"); - static assert(0); } -} \ No newline at end of file +}else{ + pragma(msg, "DSTRESS{XFAIL}: no inline ASM support"); + static assert(0); +}
--- a/run/a/asm_fsubr_01_B.d Wed May 10 19:00:12 2006 +0000 +++ b/run/a/asm_fsubr_01_B.d Wed May 10 19:00:54 2006 +0000 @@ -4,28 +4,39 @@ module dstress.run.a.asm_fsubr_01_B; -int main(){ - version(D_InlineAsm){ - double a = 2.4L; - double b = -1.2L; +version(D_InlineAsm_X86){ + version = runTest; +}else version(D_InlineAsm_X86_64){ + version = runTest; +} + + +version(runTest){ + import addon.cpuinfo; + + int main(){ + double a = 2.4; + double b = -1.2; asm{ - fld a; - fsubr b; + fld b; + fsubr a; fst a; } - assert(a<0); - - a += 3.6L; + a -= 3.6; - a = (a>0) ? a : -a; + if(a < 0.0){ + a = -a; + } - assert(a < a.epsilon * 4); + if(a > a.epsilon * 4.0){ + assert(0); + } return 0; - }else{ - pragma(msg, "no Inline asm support"); - static assert(0); } -} \ No newline at end of file +}else{ + pragma(msg, "DSTRESS{XFAIL}: no inline ASM support"); + static assert(0); +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/run/a/asm_fsubr_01_C.d Wed May 10 19:00:54 2006 +0000 @@ -0,0 +1,43 @@ +// $HeadURL$ +// $Date$ +// $Author$ + +module dstress.run.a.asm_fsubr_01_C; + +version(D_InlineAsm_X86){ + version = runTest; +}else version(D_InlineAsm_X86_64){ + version = runTest; +} + + +version(runTest){ + import addon.cpuinfo; + + int main(){ + float a = 2.4f; + float b = -1.2f; + + asm{ + fld a; + fld b; + fsubr ST, ST(1); + fst a; + } + + a -= 3.6f; + + if(a < 0.0f){ + a = -a; + } + + if(a > a.epsilon * 4.0f){ + assert(0); + } + + return 0; + } +}else{ + pragma(msg, "DSTRESS{XFAIL}: no inline ASM support"); + static assert(0); +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/run/a/asm_fsubr_01_D.d Wed May 10 19:00:54 2006 +0000 @@ -0,0 +1,44 @@ +// $HeadURL$ +// $Date$ +// $Author$ + +module dstress.run.a.asm_fsubr_01_D; + +version(D_InlineAsm_X86){ + version = runTest; +}else version(D_InlineAsm_X86_64){ + version = runTest; +} + + +version(runTest){ + import addon.cpuinfo; + + int main(){ + float a = 2.4f; + float b = -1.2f; + + asm{ + fld a; + fld b; + fsubr ST(1), ST; + fdecstp; + fst a; + } + + a -= 3.6f; + + if(a < 0.0f){ + a = -a; + } + + if(a > a.epsilon * 4.0f){ + assert(0); + } + + return 0; + } +}else{ + pragma(msg, "DSTRESS{XFAIL}: no inline ASM support"); + static assert(0); +}
--- a/run/a/asm_fsubrp_01.d Wed May 10 19:00:12 2006 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,32 +0,0 @@ -// $HeadURL$ -// $Date$ -// $Author$ - -module dstress.run.a.asm_fsubrp_01; - -int main(){ - version(D_InlineAsm){ - double a = 2.4L; - double b = -1.2L; - - asm{ - fld a; - fld b; - fsubrp; - fst a; - } - - assert(a<0); - - a += 3.6L; - - 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
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/run/a/asm_fsubrp_01_A.d Wed May 10 19:00:54 2006 +0000 @@ -0,0 +1,49 @@ +// $HeadURL$ +// $Date$ +// $Author$ + +module dstress.run.a.asm_fsubrp_01_A; + +version(D_InlineAsm_X86){ + version = runTest; +}else version(D_InlineAsm_X86_64){ + version = runTest; +} + +version(runTest){ + import addon.cpuinfo; + + int main(){ + double a = 2.4; + double b = -1.2; + + asm{ + fld1; + fldz; + fld b; + fld a; + fsubrp; + fstp a; + fstp b; + } + + a -= 3.6; + + if(a < 0.0){ + a = -a; + } + + if(a > a.epsilon * 4.0){ + assert(0); + } + + if(b != 0.0){ + assert(0); + } + + return 0; + } +}else{ + pragma(msg, "DSTRESS{XFAIL}: no inline ASM support"); + static assert(0); +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/run/a/asm_fsubrp_01_B.d Wed May 10 19:00:54 2006 +0000 @@ -0,0 +1,49 @@ +// $HeadURL$ +// $Date$ +// $Author$ + +module dstress.run.a.asm_fsubrp_01_B; + +version(D_InlineAsm_X86){ + version = runTest; +}else version(D_InlineAsm_X86_64){ + version = runTest; +} + +version(runTest){ + import addon.cpuinfo; + + int main(){ + double a = 2.4; + double b = -1.2; + + asm{ + fld1; + fld b; + fldz; + fld a; + fsubrp ST(2), ST; + fstp b; + fstp a; + } + + a -= 3.6; + + if(a < 0.0){ + a = -a; + } + + if(a > a.epsilon * 4.0){ + assert(0); + } + + if(b != 0.0){ + assert(0); + } + + return 0; + } +}else{ + pragma(msg, "DSTRESS{XFAIL}: no inline ASM support"); + static assert(0); +}