Mercurial > projects > dstress
changeset 705:2aa02c15c639
some more integer iasm tests
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/norun/a/asm_clts_01.d Sun Oct 16 12:42:57 2005 +0000 @@ -0,0 +1,18 @@ +// $HeadURL: svn://dstress.kuehne.cn/run/a/asm_cl_01.d $ +// $Date: 2005-08-20 20:24:41 +0200 (Sat, 20 Aug 2005) $ +// $Author: thomask $ + +module dstress.norun.a.asm_clts_01; + +int main(){ + version(D_InlineAsm){ + asm{ + clts; + } + + 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/norun/a/asm_invd_01.d Sun Oct 16 12:42:57 2005 +0000 @@ -0,0 +1,18 @@ +// $HeadURL: svn://dstress.kuehne.cn/run/a/asm_sub_01_C.d $ +// $Date: 2005-08-20 20:24:41 +0200 (Sat, 20 Aug 2005) $ +// $Author: thomask $ + +module dstress.norun.a.asm_invd_01; + +int main(){ + version(D_InlineAsm){ + asm{ + invd; + } + + 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/norun/a/asm_ud2_01.d Sun Oct 16 12:42:57 2005 +0000 @@ -0,0 +1,18 @@ +// $HeadURL: svn://dstress.kuehne.cn/run/a/asm_sub_01_C.d $ +// $Date: 2005-08-20 20:24:41 +0200 (Sat, 20 Aug 2005) $ +// $Author: thomask $ + +module dstress.norun.a.asm_ud2_01; + +int main(){ + version(D_InlineAsm){ + asm{ + ud2; + } + + 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_por_01.d Sun Oct 16 12:42:57 2005 +0000 @@ -0,0 +1,26 @@ +// $HeadURL: svn://dstress.kuehne.cn/run/a/asm_add_01_C.d $ +// $Date: 2005-08-20 20:24:41 +0200 (Sat, 20 Aug 2005) $ +// $Author: thomask $ + +module dstress.run.a.asm_por_01; + +int main(){ + version(D_InlineAsm){ + ulong a = 0xFF01_00FF_0001_0000; + ulong b = 0xFF00_10FF_0002_0000; + ulong c = 2; + + asm{ + movq MM0, a; + por MM0, b; + movq c, MM0; + } + + assert(c==0xFF01_10FF_0003_0000); + + 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_pusha_01.d Sun Oct 16 12:42:57 2005 +0000 @@ -0,0 +1,51 @@ +// $HeadURL: svn://dstress.kuehne.cn/run/a/asm_add_01_C.d $ +// $Date: 2005-08-20 20:24:41 +0200 (Sat, 20 Aug 2005) $ +// $Author: thomask $ + +module dstress.run.a.asm_pusha_01; + +int main(){ + version(D_InlineAsm){ + static if(size_t.sizeof <= 4){ + ushort a1, b1, c1, d1; + ushort a2, b2, c2, d2; + ushort a3, b3, c3, d3; + + asm{ + mov a1, AX; + mov b1, BX; + mov c1, CX; + mov d1, DX; + pusha; + mov EAX, 1; + mov EBX, 2; + mov ECX, 3; + mov EDX, 4; + mov a2, AX; + mov b2, BX; + mov c2, CX; + mov d2, DX; + popa; + mov a3, AX; + mov b3, BX; + mov c3, CX; + mov d3, DX; + } + + assert(a1 == a3); + assert(b1 == b3); + assert(c1 == c3); + assert(d1 == d3); + + assert(a2 == 1); + assert(b2 == 2); + assert(c2 == 3); + assert(d2 == 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_seta_01.d Sun Oct 16 12:42:57 2005 +0000 @@ -0,0 +1,46 @@ +// $HeadURL: svn://dstress.kuehne.cn/run/a/asm_add_01_C.d $ +// $Date: 2005-08-20 20:24:41 +0200 (Sat, 20 Aug 2005) $ +// $Author: thomask $ + +module dstress.run.a.asm_seta_01; + +int main(){ + version(D_InlineAsm){ + ubyte a; + + a = a.max; + + asm{ + mov EAX, 3; + cmp EAX, 4; + seta a; + } + + assert(a == 0); + + a = a.max; + + asm{ + mov EAX, 4; + cmp EAX, 3; + seta a; + } + + assert(a == 1); + + a = a.max; + + asm{ + mov EAX, 4; + cmp EAX, 4; + seta a; + } + + assert(a==0); + + 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_setae_01.d Sun Oct 16 12:42:57 2005 +0000 @@ -0,0 +1,46 @@ +// $HeadURL: svn://dstress.kuehne.cn/run/a/asm_add_01_C.d $ +// $Date: 2005-08-20 20:24:41 +0200 (Sat, 20 Aug 2005) $ +// $Author: thomask $ + +module dstress.run.a.asm_setae_01; + +int main(){ + version(D_InlineAsm){ + ubyte a; + + a = a.max; + + asm{ + mov EAX, 3; + cmp EAX, 4; + setae a; + } + + assert(a == 0); + + a = a.max; + + asm{ + mov EAX, 4; + cmp EAX, 3; + setae a; + } + + assert(a == 1); + + a = a.max; + + asm{ + mov EAX, 4; + cmp EAX, 4; + setae a; + } + + assert(a==1); + + 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_setb_01.d Sun Oct 16 12:42:57 2005 +0000 @@ -0,0 +1,46 @@ +// $HeadURL: svn://dstress.kuehne.cn/run/a/asm_add_01_C.d $ +// $Date: 2005-08-20 20:24:41 +0200 (Sat, 20 Aug 2005) $ +// $Author: thomask $ + +module dstress.run.a.asm_setb_01; + +int main(){ + version(D_InlineAsm){ + ubyte a; + + a = a.max; + + asm{ + mov EAX, 3; + cmp EAX, 4; + setb a; + } + + assert(a == 1); + + a = a.max; + + asm{ + mov EAX, 4; + cmp EAX, 3; + setb a; + } + + assert(a == 0); + + a = a.max; + + asm{ + mov EAX, 4; + cmp EAX, 4; + setb a; + } + + assert(a == 0); + + 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_setbe_01.d Sun Oct 16 12:42:57 2005 +0000 @@ -0,0 +1,46 @@ +// $HeadURL: svn://dstress.kuehne.cn/run/a/asm_add_01_C.d $ +// $Date: 2005-08-20 20:24:41 +0200 (Sat, 20 Aug 2005) $ +// $Author: thomask $ + +module dstress.run.a.asm_setbe_01; + +int main(){ + version(D_InlineAsm){ + ubyte a; + + a = a.max; + + asm{ + mov EAX, 3; + cmp EAX, 4; + setbe a; + } + + assert(a == 1); + + a = a.max; + + asm{ + mov EAX, 4; + cmp EAX, 3; + setbe a; + } + + assert(a == 0); + + a = a.max; + + asm{ + mov EAX, 4; + cmp EAX, 4; + setbe a; + } + + assert(a == 1); + + 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_setc_01.d Sun Oct 16 12:42:57 2005 +0000 @@ -0,0 +1,46 @@ +// $HeadURL: svn://dstress.kuehne.cn/run/a/asm_add_01_C.d $ +// $Date: 2005-08-20 20:24:41 +0200 (Sat, 20 Aug 2005) $ +// $Author: thomask $ + +module dstress.run.a.asm_setc_01; + +int main(){ + version(D_InlineAsm){ + ubyte a; + + a = a.max; + + asm{ + mov EAX, 3; + cmp EAX, 4; + setc a; + } + + assert(a == 1); + + a = a.max; + + asm{ + mov EAX, 4; + cmp EAX, 3; + setc a; + } + + assert(a == 0); + + a = a.max; + + asm{ + mov EAX, 4; + cmp EAX, 4; + setc a; + } + + assert(a == 0); + + 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_sete_01.d Sun Oct 16 12:42:57 2005 +0000 @@ -0,0 +1,46 @@ +// $HeadURL: svn://dstress.kuehne.cn/run/a/asm_add_01_C.d $ +// $Date: 2005-08-20 20:24:41 +0200 (Sat, 20 Aug 2005) $ +// $Author: thomask $ + +module dstress.run.a.asm_sete_01; + +int main(){ + version(D_InlineAsm){ + ubyte a; + + a = a.max; + + asm{ + mov EAX, 3; + cmp EAX, 4; + sete a; + } + + assert(a == 0); + + a = a.max; + + asm{ + mov EAX, 4; + cmp EAX, 3; + sete a; + } + + assert(a == 0); + + a = a.max; + + asm{ + mov EAX, 4; + cmp EAX, 4; + sete a; + } + + assert(a == 1); + + 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_setg_01.d Sun Oct 16 12:42:57 2005 +0000 @@ -0,0 +1,46 @@ +// $HeadURL: svn://dstress.kuehne.cn/run/a/asm_add_01_C.d $ +// $Date: 2005-08-20 20:24:41 +0200 (Sat, 20 Aug 2005) $ +// $Author: thomask $ + +module dstress.run.a.asm_setg_01; + +int main(){ + version(D_InlineAsm){ + ubyte a; + + a = a.max; + + asm{ + mov EAX, 3; + cmp EAX, -4; + setg a; + } + + assert(a == 1); + + a = a.max; + + asm{ + mov EAX, -4; + cmp EAX, 3; + setg a; + } + + assert(a == 0); + + a = a.max; + + asm{ + mov EAX, 4; + cmp EAX, 4; + setg a; + } + + assert(a == 0); + + 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_setge_01.d Sun Oct 16 12:42:57 2005 +0000 @@ -0,0 +1,46 @@ +// $HeadURL: svn://dstress.kuehne.cn/run/a/asm_add_01_C.d $ +// $Date: 2005-08-20 20:24:41 +0200 (Sat, 20 Aug 2005) $ +// $Author: thomask $ + +module dstress.run.a.asm_setge_01; + +int main(){ + version(D_InlineAsm){ + ubyte a; + + a = a.max; + + asm{ + mov EAX, 3; + cmp EAX, -4; + setge a; + } + + assert(a == 1); + + a = a.max; + + asm{ + mov EAX, -4; + cmp EAX, 3; + setge a; + } + + assert(a == 0); + + a = a.max; + + asm{ + mov EAX, 4; + cmp EAX, 4; + setge a; + } + + assert(a == 1); + + 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_setl_01.d Sun Oct 16 12:42:57 2005 +0000 @@ -0,0 +1,46 @@ +// $HeadURL: svn://dstress.kuehne.cn/run/a/asm_add_01_C.d $ +// $Date: 2005-08-20 20:24:41 +0200 (Sat, 20 Aug 2005) $ +// $Author: thomask $ + +module dstress.run.a.asm_setl_01; + +int main(){ + version(D_InlineAsm){ + ubyte a; + + a = a.max; + + asm{ + mov EAX, 3; + cmp EAX, -4; + setl a; + } + + assert(a == 0); + + a = a.max; + + asm{ + mov EAX, -4; + cmp EAX, 3; + setl a; + } + + assert(a == 1); + + a = a.max; + + asm{ + mov EAX, 4; + cmp EAX, 4; + setl a; + } + + assert(a == 0); + + 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_setle_01.d Sun Oct 16 12:42:57 2005 +0000 @@ -0,0 +1,46 @@ +// $HeadURL: svn://dstress.kuehne.cn/run/a/asm_add_01_C.d $ +// $Date: 2005-08-20 20:24:41 +0200 (Sat, 20 Aug 2005) $ +// $Author: thomask $ + +module dstress.run.a.asm_setle_01; + +int main(){ + version(D_InlineAsm){ + ubyte a; + + a = a.max; + + asm{ + mov EAX, 3; + cmp EAX, -4; + setle a; + } + + assert(a == 0); + + a = a.max; + + asm{ + mov EAX, -4; + cmp EAX, 3; + setle a; + } + + assert(a == 1); + + a = a.max; + + asm{ + mov EAX, 4; + cmp EAX, 4; + setle a; + } + + assert(a == 1); + + 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_setna_01.d Sun Oct 16 12:42:57 2005 +0000 @@ -0,0 +1,46 @@ +// $HeadURL: svn://dstress.kuehne.cn/run/a/asm_add_01_C.d $ +// $Date: 2005-08-20 20:24:41 +0200 (Sat, 20 Aug 2005) $ +// $Author: thomask $ + +module dstress.run.a.asm_setna_01; + +int main(){ + version(D_InlineAsm){ + ubyte a; + + a = a.max; + + asm{ + mov EAX, 3; + cmp EAX, 4; + setna a; + } + + assert(a == 1); + + a = a.max; + + asm{ + mov EAX, 4; + cmp EAX, 3; + setna a; + } + + assert(a == 0); + + a = a.max; + + asm{ + mov EAX, 4; + cmp EAX, 4; + setna a; + } + + assert(a == 1); + + 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_setnae_01.d Sun Oct 16 12:42:57 2005 +0000 @@ -0,0 +1,46 @@ +// $HeadURL: svn://dstress.kuehne.cn/run/a/asm_add_01_C.d $ +// $Date: 2005-08-20 20:24:41 +0200 (Sat, 20 Aug 2005) $ +// $Author: thomask $ + +module dstress.run.a.asm_setnae_01; + +int main(){ + version(D_InlineAsm){ + ubyte a; + + a = a.max; + + asm{ + mov EAX, 3; + cmp EAX, 4; + setnae a; + } + + assert(a == 1); + + a = a.max; + + asm{ + mov EAX, 4; + cmp EAX, 3; + setnae a; + } + + assert(a == 0); + + a = a.max; + + asm{ + mov EAX, 4; + cmp EAX, 4; + setnae a; + } + + assert(a == 0); + + 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_setnb_01.d Sun Oct 16 12:42:57 2005 +0000 @@ -0,0 +1,46 @@ +// $HeadURL: svn://dstress.kuehne.cn/run/a/asm_add_01_C.d $ +// $Date: 2005-08-20 20:24:41 +0200 (Sat, 20 Aug 2005) $ +// $Author: thomask $ + +module dstress.run.a.asm_setnb_01; + +int main(){ + version(D_InlineAsm){ + ubyte a; + + a = a.max; + + asm{ + mov EAX, 3; + cmp EAX, 4; + setnb a; + } + + assert(a == 0); + + a = a.max; + + asm{ + mov EAX, 4; + cmp EAX, 3; + setnb a; + } + + assert(a == 1); + + a = a.max; + + asm{ + mov EAX, 4; + cmp EAX, 4; + setnb a; + } + + assert(a == 1); + + 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_setnbe_01.d Sun Oct 16 12:42:57 2005 +0000 @@ -0,0 +1,46 @@ +// $HeadURL: svn://dstress.kuehne.cn/run/a/asm_add_01_C.d $ +// $Date: 2005-08-20 20:24:41 +0200 (Sat, 20 Aug 2005) $ +// $Author: thomask $ + +module dstress.run.a.asm_setnbe_01; + +int main(){ + version(D_InlineAsm){ + ubyte a; + + a = a.max; + + asm{ + mov EAX, 3; + cmp EAX, 4; + setnbe a; + } + + assert(a == 0); + + a = a.max; + + asm{ + mov EAX, 4; + cmp EAX, 3; + setnbe a; + } + + assert(a == 1); + + a = a.max; + + asm{ + mov EAX, 4; + cmp EAX, 4; + setnbe a; + } + + assert(a == 0); + + 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_setnc_01.d Sun Oct 16 12:42:57 2005 +0000 @@ -0,0 +1,46 @@ +// $HeadURL: svn://dstress.kuehne.cn/run/a/asm_add_01_C.d $ +// $Date: 2005-08-20 20:24:41 +0200 (Sat, 20 Aug 2005) $ +// $Author: thomask $ + +module dstress.run.a.asm_setnc_01; + +int main(){ + version(D_InlineAsm){ + ubyte a; + + a = a.max; + + asm{ + mov EAX, 3; + cmp EAX, 4; + setnc a; + } + + assert(a == 0); + + a = a.max; + + asm{ + mov EAX, 4; + cmp EAX, 3; + setnc a; + } + + assert(a == 1); + + a = a.max; + + asm{ + mov EAX, 4; + cmp EAX, 4; + setnc a; + } + + assert(a == 1); + + 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_setne_01.d Sun Oct 16 12:42:57 2005 +0000 @@ -0,0 +1,46 @@ +// $HeadURL: svn://dstress.kuehne.cn/run/a/asm_add_01_C.d $ +// $Date: 2005-08-20 20:24:41 +0200 (Sat, 20 Aug 2005) $ +// $Author: thomask $ + +module dstress.run.a.asm_setne_01; + +int main(){ + version(D_InlineAsm){ + ubyte a; + + a = a.max; + + asm{ + mov EAX, 3; + cmp EAX, 4; + setne a; + } + + assert(a == 1); + + a = a.max; + + asm{ + mov EAX, 4; + cmp EAX, 3; + setne a; + } + + assert(a == 1); + + a = a.max; + + asm{ + mov EAX, 4; + cmp EAX, 4; + setne a; + } + + assert(a == 0); + + 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_setng_01.d Sun Oct 16 12:42:57 2005 +0000 @@ -0,0 +1,46 @@ +// $HeadURL: svn://dstress.kuehne.cn/run/a/asm_add_01_C.d $ +// $Date: 2005-08-20 20:24:41 +0200 (Sat, 20 Aug 2005) $ +// $Author: thomask $ + +module dstress.run.a.asm_setng_01; + +int main(){ + version(D_InlineAsm){ + ubyte a; + + a = a.max; + + asm{ + mov EAX, 3; + cmp EAX, -4; + setng a; + } + + assert(a == 0); + + a = a.max; + + asm{ + mov EAX, -4; + cmp EAX, 3; + setng a; + } + + assert(a == 1); + + a = a.max; + + asm{ + mov EAX, 4; + cmp EAX, 4; + setng a; + } + + assert(a == 1); + + 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_setnge_01.d Sun Oct 16 12:42:57 2005 +0000 @@ -0,0 +1,46 @@ +// $HeadURL: svn://dstress.kuehne.cn/run/a/asm_add_01_C.d $ +// $Date: 2005-08-20 20:24:41 +0200 (Sat, 20 Aug 2005) $ +// $Author: thomask $ + +module dstress.run.a.asm_setnge_01; + +int main(){ + version(D_InlineAsm){ + ubyte a; + + a = a.max; + + asm{ + mov EAX, 3; + cmp EAX, -4; + setnge a; + } + + assert(a == 0); + + a = a.max; + + asm{ + mov EAX, -4; + cmp EAX, 3; + setnge a; + } + + assert(a == 1); + + a = a.max; + + asm{ + mov EAX, 4; + cmp EAX, 4; + setnge a; + } + + assert(a == 0); + + 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_setnl_01.d Sun Oct 16 12:42:57 2005 +0000 @@ -0,0 +1,46 @@ +// $HeadURL: svn://dstress.kuehne.cn/run/a/asm_add_01_C.d $ +// $Date: 2005-08-20 20:24:41 +0200 (Sat, 20 Aug 2005) $ +// $Author: thomask $ + +module dstress.run.a.asm_setnl_01; + +int main(){ + version(D_InlineAsm){ + ubyte a; + + a = a.max; + + asm{ + mov EAX, 3; + cmp EAX, -4; + setnl a; + } + + assert(a == 1); + + a = a.max; + + asm{ + mov EAX, -4; + cmp EAX, 3; + setnl a; + } + + assert(a == 0); + + a = a.max; + + asm{ + mov EAX, 4; + cmp EAX, 4; + setnl a; + } + + assert(a == 1); + + 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_setnle_01.d Sun Oct 16 12:42:57 2005 +0000 @@ -0,0 +1,46 @@ +// $HeadURL: svn://dstress.kuehne.cn/run/a/asm_add_01_C.d $ +// $Date: 2005-08-20 20:24:41 +0200 (Sat, 20 Aug 2005) $ +// $Author: thomask $ + +module dstress.run.a.asm_setnle_01; + +int main(){ + version(D_InlineAsm){ + ubyte a; + + a = a.max; + + asm{ + mov EAX, 3; + cmp EAX, -4; + setnle a; + } + + assert(a == 1); + + a = a.max; + + asm{ + mov EAX, -4; + cmp EAX, 3; + setnle a; + } + + assert(a == 0); + + a = a.max; + + asm{ + mov EAX, 4; + cmp EAX, 4; + setnle a; + } + + assert(a == 0); + + 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_setno_01.d Sun Oct 16 12:42:57 2005 +0000 @@ -0,0 +1,58 @@ +// $HeadURL: svn://dstress.kuehne.cn/run/a/asm_add_01_C.d $ +// $Date: 2005-08-20 20:24:41 +0200 (Sat, 20 Aug 2005) $ +// $Author: thomask $ + +module dstress.run.a.asm_setno_01; + +int main(){ + version(D_InlineAsm){ + ubyte a; + + a = a.max; + + asm{ + mov EAX, 3; + cmp EAX, -4; + setno a; + } + + assert(a == 1); + + a = a.max; + + asm{ + mov EAX, -4; + cmp EAX, 3; + setno a; + } + + assert(a == 1); + + a = a.max; + + asm{ + mov EAX, 4; + cmp EAX, 4; + setno a; + } + + assert(a == 1); + + a = a.max; + + int i = int.min; + + asm{ + mov EAX, i; + cmp EAX, 1; + setno a; + } + + assert(a == 0); + + 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_setnp_01.d Sun Oct 16 12:42:57 2005 +0000 @@ -0,0 +1,56 @@ +// $HeadURL: svn://dstress.kuehne.cn/run/a/asm_add_01_C.d $ +// $Date: 2005-08-20 20:24:41 +0200 (Sat, 20 Aug 2005) $ +// $Author: thomask $ + +module dstress.run.a.asm_setnp_01; + +int main(){ + version(D_InlineAsm){ + ubyte a; + + a = a.max; + + asm{ + mov EAX, 3; + cmp EAX, 4; + setnp a; + } + + assert(a == 0); + + a = a.max; + + asm{ + mov EAX, 4; + cmp EAX, 3; + setnp a; + } + + assert(a == 1); + + a = a.max; + + asm{ + mov EAX, 4; + cmp EAX, 4; + setnp a; + } + + assert(a == 0); + + a = a.max; + + asm{ + mov EAX, 8; + cmp EAX, 6; + setnp a; + } + + assert(a == 1); + + 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_setns_01.d Sun Oct 16 12:42:57 2005 +0000 @@ -0,0 +1,46 @@ +// $HeadURL: svn://dstress.kuehne.cn/run/a/asm_add_01_C.d $ +// $Date: 2005-08-20 20:24:41 +0200 (Sat, 20 Aug 2005) $ +// $Author: thomask $ + +module dstress.run.a.asm_sens_01; + +int main(){ + version(D_InlineAsm){ + ubyte a; + + a = a.max; + + asm{ + mov EAX, 3; + cmp EAX, 4; + setns a; + } + + assert(a == 0); + + a = a.max; + + asm{ + mov EAX, 4; + cmp EAX, 3; + setns a; + } + + assert(a == 1); + + a = a.max; + + asm{ + mov EAX, 4; + cmp EAX, 4; + setns a; + } + + assert(a == 1); + + 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_setnz_01.d Sun Oct 16 12:42:57 2005 +0000 @@ -0,0 +1,46 @@ +// $HeadURL: svn://dstress.kuehne.cn/run/a/asm_add_01_C.d $ +// $Date: 2005-08-20 20:24:41 +0200 (Sat, 20 Aug 2005) $ +// $Author: thomask $ + +module dstress.run.a.asm_setnz_01; + +int main(){ + version(D_InlineAsm){ + ubyte a; + + a = a.max; + + asm{ + mov EAX, 3; + cmp EAX, 4; + setnz a; + } + + assert(a == 1); + + a = a.max; + + asm{ + mov EAX, 4; + cmp EAX, 3; + setnz a; + } + + assert(a == 1); + + a = a.max; + + asm{ + mov EAX, 4; + cmp EAX, 4; + setnz a; + } + + assert(a == 0); + + 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_setp_01.d Sun Oct 16 12:42:57 2005 +0000 @@ -0,0 +1,56 @@ +// $HeadURL: svn://dstress.kuehne.cn/run/a/asm_add_01_C.d $ +// $Date: 2005-08-20 20:24:41 +0200 (Sat, 20 Aug 2005) $ +// $Author: thomask $ + +module dstress.run.a.asm_setp_01; + +int main(){ + version(D_InlineAsm){ + ubyte a; + + a = a.max; + + asm{ + mov EAX, 0; + inc EAX; + setp a; + } + + assert(a == 0); + + a = a.max; + + asm{ + mov EAX, 1; + inc EAX; + setp a; + } + + assert(a == 0); + + a = a.max; + + asm{ + mov EAX, 2; + inc EAX; + setp a; + } + + assert(a == 1); + + a = a.max; + + asm{ + mov EAX, 3; + inc EAX; + setp a; + } + + assert(a == 0); + + 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_setpe_01.d Sun Oct 16 12:42:57 2005 +0000 @@ -0,0 +1,56 @@ +// $HeadURL: svn://dstress.kuehne.cn/run/a/asm_add_01_C.d $ +// $Date: 2005-08-20 20:24:41 +0200 (Sat, 20 Aug 2005) $ +// $Author: thomask $ + +module dstress.run.a.asm_setpe_01; + +int main(){ + version(D_InlineAsm){ + ubyte a; + + a = a.max; + + asm{ + mov EAX, 0; + inc EAX; + setpe a; + } + + assert(a == 0); + + a = a.max; + + asm{ + mov EAX, 1; + inc EAX; + setpe a; + } + + assert(a == 0); + + a = a.max; + + asm{ + mov EAX, 2; + inc EAX; + setpe a; + } + + assert(a == 1); + + a = a.max; + + asm{ + mov EAX, 3; + inc EAX; + setpe a; + } + + assert(a == 0); + + 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_setpo_01.d Sun Oct 16 12:42:57 2005 +0000 @@ -0,0 +1,56 @@ +// $HeadURL: svn://dstress.kuehne.cn/run/a/asm_add_01_C.d $ +// $Date: 2005-08-20 20:24:41 +0200 (Sat, 20 Aug 2005) $ +// $Author: thomask $ + +module dstress.run.a.asm_setpo_01; + +int main(){ + version(D_InlineAsm){ + ubyte a; + + a = a.max; + + asm{ + mov EAX, 0; + inc EAX; + setpo a; + } + + assert(a == 1); + + a = a.max; + + asm{ + mov EAX, 1; + inc EAX; + setpo a; + } + + assert(a == 1); + + a = a.max; + + asm{ + mov EAX, 2; + inc EAX; + setpo a; + } + + assert(a == 0); + + a = a.max; + + asm{ + mov EAX, 3; + inc EAX; + setpo a; + } + + assert(a == 1); + + 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_sets_01.d Sun Oct 16 12:42:57 2005 +0000 @@ -0,0 +1,46 @@ +// $HeadURL: svn://dstress.kuehne.cn/run/a/asm_add_01_C.d $ +// $Date: 2005-08-20 20:24:41 +0200 (Sat, 20 Aug 2005) $ +// $Author: thomask $ + +module dstress.run.a.asm_ses_01; + +int main(){ + version(D_InlineAsm){ + ubyte a; + + a = a.max; + + asm{ + mov EAX, 3; + cmp EAX, 4; + sets a; + } + + assert(a == 1); + + a = a.max; + + asm{ + mov EAX, 4; + cmp EAX, 3; + sets a; + } + + assert(a == 0); + + a = a.max; + + asm{ + mov EAX, 4; + cmp EAX, 4; + sets a; + } + + assert(a == 0); + + 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_setz_01.d Sun Oct 16 12:42:57 2005 +0000 @@ -0,0 +1,46 @@ +// $HeadURL: svn://dstress.kuehne.cn/run/a/asm_add_01_C.d $ +// $Date: 2005-08-20 20:24:41 +0200 (Sat, 20 Aug 2005) $ +// $Author: thomask $ + +module dstress.run.a.asm_setz_01; + +int main(){ + version(D_InlineAsm){ + ubyte a; + + a = a.max; + + asm{ + mov EAX, 3; + cmp EAX, 4; + setz a; + } + + assert(a == 0); + + a = a.max; + + asm{ + mov EAX, 4; + cmp EAX, 3; + setz a; + } + + assert(a == 0); + + a = a.max; + + asm{ + mov EAX, 4; + cmp EAX, 4; + setz a; + } + + assert(a == 1); + + 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_sfence_01.d Sun Oct 16 12:42:57 2005 +0000 @@ -0,0 +1,19 @@ +// $HeadURL: svn://dstress.kuehne.cn/run/a/asm_add_01_C.d $ +// $Date: 2005-08-20 20:24:41 +0200 (Sat, 20 Aug 2005) $ +// $Author: thomask $ + +module dstress.run.a.asm_sfence_01; + +int main(){ + version(D_InlineAsm){ + + asm{ + sfence; + } + + 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_sgdt_01.d Sun Oct 16 12:42:57 2005 +0000 @@ -0,0 +1,23 @@ +// $HeadURL: svn://dstress.kuehne.cn/run/a/asm_add_01_C.d $ +// $Date: 2005-08-20 20:24:41 +0200 (Sat, 20 Aug 2005) $ +// $Author: thomask $ + +module dstress.run.a.asm_sgdt_01; + +int main(){ + version(D_InlineAsm){ + + long u = 0; + + asm{ + sgdt u; + } + + assert(u!=0); + + 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_shld_01_A.d Sun Oct 16 12:42:57 2005 +0000 @@ -0,0 +1,27 @@ +// $HeadURL: svn://dstress.kuehne.cn/run/a/asm_add_01_C.d $ +// $Date: 2005-08-20 20:24:41 +0200 (Sat, 20 Aug 2005) $ +// $Author: thomask $ + +module dstress.run.a.asm_shld_01_A; + +int main(){ + version(D_InlineAsm){ + + ushort a = 0b0000_0000__1000_0000; + ushort b = 0b1010_0000__0000_0000; + + asm{ + mov BX, b; + shld a, BX, 3; + mov b, BX; + } + + assert(a == 0b0000_0100__0000_0101); + assert(b == 0b1010_0000__0000_0000); + + 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_shld_01_B.d Sun Oct 16 12:42:57 2005 +0000 @@ -0,0 +1,27 @@ +// $HeadURL: svn://dstress.kuehne.cn/run/a/asm_add_01_C.d $ +// $Date: 2005-08-20 20:24:41 +0200 (Sat, 20 Aug 2005) $ +// $Author: thomask $ + +module dstress.run.a.asm_shld_01_B; + +int main(){ + version(D_InlineAsm){ + + uint a = 0b0000_0000__1000_0000__0000_0000__0000_0000; + uint b = 0b1010_0000__0000_0000__0000_0000__0000_0000; + + asm{ + mov EBX, b; + shld a, EBX, 3; + mov b, EBX; + } + + assert(a == 0b0000_0100__0000_0000__0000_0000__0000_0101); + assert(b == 0b1010_0000__0000_0000__0000_0000__0000_0000); + + 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_shrd_01_A.d Sun Oct 16 12:42:57 2005 +0000 @@ -0,0 +1,27 @@ +// $HeadURL: svn://dstress.kuehne.cn/run/a/asm_add_01_C.d $ +// $Date: 2005-08-20 20:24:41 +0200 (Sat, 20 Aug 2005) $ +// $Author: thomask $ + +module dstress.run.a.asm_shrd_01_A; + +int main(){ + version(D_InlineAsm){ + + ushort a = 0b0000_0000__1000_0000; + ushort b = 0b1000_0000__0000_0101; + + asm{ + mov BX, b; + shrd a, BX, 3; + mov b, BX; + } + + assert(a == 0b1010_0000__0001_0000); + assert(b == 0b1000_0000__0000_0101); + + 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_shrd_01_B.d Sun Oct 16 12:42:57 2005 +0000 @@ -0,0 +1,27 @@ +// $HeadURL: svn://dstress.kuehne.cn/run/a/asm_add_01_C.d $ +// $Date: 2005-08-20 20:24:41 +0200 (Sat, 20 Aug 2005) $ +// $Author: thomask $ + +module dstress.run.a.asm_shrd_01_B; + +int main(){ + version(D_InlineAsm){ + + uint a = 0b0000_0000__1000_0000__0000_0000__0000_0000; + uint b = 0b1000_0000__0000_0000__0000_0000__0000_0101; + + asm{ + mov EBX, b; + shrd a, EBX, 3; + mov b, EBX; + } + + assert(a == 0b1010_0000__0001_0000__0000_0000__0000_0000); + assert(b == 0b1000_0000__0000_0000__0000_0000__0000_0101); + + 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_sidt_01.d Sun Oct 16 12:42:57 2005 +0000 @@ -0,0 +1,23 @@ +// $HeadURL: svn://dstress.kuehne.cn/run/a/asm_add_01_C.d $ +// $Date: 2005-08-20 20:24:41 +0200 (Sat, 20 Aug 2005) $ +// $Author: thomask $ + +module dstress.run.a.asm_sidt_01; + +int main(){ + version(D_InlineAsm){ + + ulong u = 0; + + asm{ + sidt u; + } + + assert(u != 0); + + 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_sldt_01.d Sun Oct 16 12:42:57 2005 +0000 @@ -0,0 +1,23 @@ +// $HeadURL: svn://dstress.kuehne.cn/run/a/asm_add_01_C.d $ +// $Date: 2005-08-20 20:24:41 +0200 (Sat, 20 Aug 2005) $ +// $Author: thomask $ + +module dstress.run.a.asm_sldt_01; + +int main(){ + version(D_InlineAsm){ + + ushort u = 1; + + asm{ + sldt u; + } + + assert(u == 0); // is this realy safe ? + + 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_smsw_01.d Sun Oct 16 12:42:57 2005 +0000 @@ -0,0 +1,23 @@ +// $HeadURL: svn://dstress.kuehne.cn/run/a/asm_add_01_C.d $ +// $Date: 2005-08-20 20:24:41 +0200 (Sat, 20 Aug 2005) $ +// $Author: thomask $ + +module dstress.run.a.asm_smsw_01_A; + +int main(){ + version(D_InlineAsm){ + + ushort a = 0; + + asm{ + smsw a; + } + + assert(a != 0); + + 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_stc_01.d Sun Oct 16 12:42:57 2005 +0000 @@ -0,0 +1,27 @@ +// $HeadURL: svn://dstress.kuehne.cn/run/a/asm_add_01_C.d $ +// $Date: 2005-08-20 20:24:41 +0200 (Sat, 20 Aug 2005) $ +// $Author: thomask $ + +module dstress.run.a.asm_stc_01; + +int main(){ + version(D_InlineAsm){ + + ubyte a, b = 3; + + asm{ + clc; + setc a; + stc; + setc b; + } + + assert(a == 0); + assert(b == 1); + + 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_str_01.d Sun Oct 16 12:42:57 2005 +0000 @@ -0,0 +1,23 @@ +// $HeadURL: svn://dstress.kuehne.cn/run/a/asm_add_01_C.d $ +// $Date: 2005-08-20 20:24:41 +0200 (Sat, 20 Aug 2005) $ +// $Author: thomask $ + +module dstress.run.a.asm_str_01; + +int main(){ + version(D_InlineAsm){ + + ushort a = 0; + + asm{ + str a; + } + + assert(a != 0); + + return 0; + }else{ + pragma(msg, "no Inline asm support"); + static assert(0); + } +} \ No newline at end of file