Mercurial > projects > dstress
diff run/a/asm_fsubrp_01_A2.d @ 1606:ebff718ff18b
Fix tests from #3. Thanks Don!
author | Christian Kamm <kamm incasoftware de> |
---|---|
date | Mon, 13 Apr 2009 13:47:03 +0200 |
parents | run/a/asm_fsubrp_01_A.d@1c8652b3795a |
children | 1bbcc6407d4b |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/run/a/asm_fsubrp_01_A2.d Mon Apr 13 13:47:03 2009 +0200 @@ -0,0 +1,51 @@ +// $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(){ + haveFPU!()(); + + double b = -1.2; + double a = 2.4; + + 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); +}