Mercurial > projects > dstress
changeset 1046:01fb56fb4971
inline ASM review
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/compile/a/asm_sti_01_A.d Fri Jun 09 10:33:25 2006 +0000 @@ -0,0 +1,23 @@ +// $HeadURL$ +// $Date$ +// $Author$ + +module dstress.compile.a.asm_sti_01_A; + +version(D_InlineAsm_X86){ + version = runTest; +}else version(D_InlineAsm_X86_64){ + version = runTest; +} + +version(runTest){ + void foo(){ + asm{ + sti; + nop; + } + } +}else{ + pragma(msg, "DSTRESS{XPASS}: no inline ASM support"); + static assert(0); +}
--- a/run/a/asm_sfence_01.d Thu Jun 08 19:40:04 2006 +0000 +++ b/run/a/asm_sfence_01.d Fri Jun 09 10:33:25 2006 +0000 @@ -4,16 +4,22 @@ module dstress.run.a.asm_sfence_01; -int main(){ - version(D_InlineAsm){ +version(D_InlineAsm_X86){ + version = runTest; +}else version(D_InlineAsm_X86_64){ + version = runTest; +} + +version(runTest){ + int main(){ asm{ sfence; } return 0; - }else{ - pragma(msg, "no Inline asm support"); - static assert(0); } -} \ No newline at end of file +}else{ + pragma(msg, "DSTRESS{XPASS}: no inline ASM support"); + static assert(0); +}
--- a/run/a/asm_sgdt_01.d Thu Jun 08 19:40:04 2006 +0000 +++ b/run/a/asm_sgdt_01.d Fri Jun 09 10:33:25 2006 +0000 @@ -4,8 +4,14 @@ module dstress.run.a.asm_sgdt_01; -int main(){ - version(D_InlineAsm){ +version(D_InlineAsm_X86){ + version = runTest; +}else version(D_InlineAsm_X86_64){ + version = runTest; +} + +version(runTest){ + int main(){ long u = 0; @@ -13,11 +19,9 @@ sgdt u; } - assert(u!=0); - return 0; - }else{ - pragma(msg, "no Inline asm support"); - static assert(0); } -} \ No newline at end of file +}else{ + pragma(msg, "DSTRESS{XPASS}: no inline ASM support"); + static assert(0); +}
--- a/run/a/asm_shld_01_A.d Thu Jun 08 19:40:04 2006 +0000 +++ b/run/a/asm_shld_01_A.d Fri Jun 09 10:33:25 2006 +0000 @@ -4,9 +4,14 @@ module dstress.run.a.asm_shld_01_A; -int main(){ - version(D_InlineAsm){ +version(D_InlineAsm_X86){ + version = runTest; +}else version(D_InlineAsm_X86_64){ + version = runTest; +} +version(runTest){ + int main(){ ushort a = 0b0000_0000__1000_0000; ushort b = 0b1010_0000__0000_0000; @@ -16,12 +21,16 @@ mov b, BX; } - assert(a == 0b0000_0100__0000_0101); - assert(b == 0b1010_0000__0000_0000); + if(a != 0b0000_0100__0000_0101){ + assert(0); + } + if(b != 0b1010_0000__0000_0000){ + assert(0); + } return 0; - }else{ - pragma(msg, "no Inline asm support"); - static assert(0); } -} \ No newline at end of file +}else{ + pragma(msg, "DSTRESS{XPASS}: no inline ASM support"); + static assert(0); +}
--- a/run/a/asm_shld_01_B.d Thu Jun 08 19:40:04 2006 +0000 +++ b/run/a/asm_shld_01_B.d Fri Jun 09 10:33:25 2006 +0000 @@ -4,9 +4,14 @@ module dstress.run.a.asm_shld_01_B; -int main(){ - version(D_InlineAsm){ +version(D_InlineAsm_X86){ + version = runTest; +}else version(D_InlineAsm_X86_64){ + version = runTest; +} +version(runTest){ + int main(){ uint a = 0b0000_0000__1000_0000__0000_0000__0000_0000; uint b = 0b1010_0000__0000_0000__0000_0000__0000_0000; @@ -16,12 +21,16 @@ mov b, EBX; } - assert(a == 0b0000_0100__0000_0000__0000_0000__0000_0101); - assert(b == 0b1010_0000__0000_0000__0000_0000__0000_0000); + if(a != 0b0000_0100__0000_0000__0000_0000__0000_0101){ + assert(0); + } + if(b != 0b1010_0000__0000_0000__0000_0000__0000_0000){ + assert(0); + } return 0; - }else{ - pragma(msg, "no Inline asm support"); - static assert(0); } -} \ No newline at end of file +}else{ + pragma(msg, "DSTRESS{XPASS}: no inline ASM support"); + static assert(0); +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/run/a/asm_shld_01_C.d Fri Jun 09 10:33:25 2006 +0000 @@ -0,0 +1,38 @@ +// $HeadURL$ +// $Date$ +// $Author$ + +module dstress.run.a.asm_shld_01_C; + +version(D_InlineAsm_X86){ + version = runTest; +}else version(D_InlineAsm_X86_64){ + version = runTest; +} + +version(runTest){ + int main(){ + ushort a = 0b0000_0000__1000_0000; + ushort b = 0b1010_0000__0000_0000; + + asm{ + mov AX, a; + mov BX, b; + shld AX, BX, 3; + mov a, AX; + mov b, BX; + } + + if(a != 0b0000_0100__0000_0101){ + assert(0); + } + if(b != 0b1010_0000__0000_0000){ + assert(0); + } + + return 0; + } +}else{ + pragma(msg, "DSTRESS{XPASS}: no inline ASM support"); + static assert(0); +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/run/a/asm_shld_01_D.d Fri Jun 09 10:33:25 2006 +0000 @@ -0,0 +1,38 @@ +// $HeadURL$ +// $Date$ +// $Author$ + +module dstress.run.a.asm_shld_01_D; + +version(D_InlineAsm_X86){ + version = runTest; +}else version(D_InlineAsm_X86_64){ + version = runTest; +} + +version(runTest){ + int main(){ + uint a = 0b0000_0000__1000_0000__0000_0000__0000_0000; + uint b = 0b1010_0000__0000_0000__0000_0000__0000_0000; + + asm{ + mov EAX, a; + mov EBX, b; + shld EAX, EBX, 3; + mov a, EAX; + mov b, EBX; + } + + if(a != 0b0000_0100__0000_0000__0000_0000__0000_0101){ + assert(0); + } + if(b != 0b1010_0000__0000_0000__0000_0000__0000_0000){ + assert(0); + } + + return 0; + } +}else{ + pragma(msg, "DSTRESS{XPASS}: no inline ASM support"); + static assert(0); +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/run/a/asm_shld_02_A.d Fri Jun 09 10:33:25 2006 +0000 @@ -0,0 +1,37 @@ +// $HeadURL$ +// $Date$ +// $Author$ + +module dstress.run.a.asm_shld_02_A; + +version(D_InlineAsm_X86){ + version = runTest; +}else version(D_InlineAsm_X86_64){ + version = runTest; +} + +version(runTest){ + int main(){ + ushort a = 0b0000_0000__1000_0000; + ushort b = 0b1010_0000__0000_0000; + + asm{ + mov BX, b; + mov CL, 3; + shld a, BX, CL; + mov b, BX; + } + + if(a != 0b0000_0100__0000_0101){ + assert(0); + } + if(b != 0b1010_0000__0000_0000){ + assert(0); + } + + return 0; + } +}else{ + pragma(msg, "DSTRESS{XPASS}: no inline ASM support"); + static assert(0); +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/run/a/asm_shld_02_B.d Fri Jun 09 10:33:25 2006 +0000 @@ -0,0 +1,37 @@ +// $HeadURL$ +// $Date$ +// $Author$ + +module dstress.run.a.asm_shld_02_B; + +version(D_InlineAsm_X86){ + version = runTest; +}else version(D_InlineAsm_X86_64){ + version = runTest; +} + +version(runTest){ + int main(){ + uint a = 0b0000_0000__1000_0000__0000_0000__0000_0000; + uint b = 0b1010_0000__0000_0000__0000_0000__0000_0000; + + asm{ + mov EBX, b; + mov CL, 3; + shld a, EBX, CL; + mov b, EBX; + } + + if(a != 0b0000_0100__0000_0000__0000_0000__0000_0101){ + assert(0); + } + if(b != 0b1010_0000__0000_0000__0000_0000__0000_0000){ + assert(0); + } + + return 0; + } +}else{ + pragma(msg, "DSTRESS{XPASS}: no inline ASM support"); + static assert(0); +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/run/a/asm_shld_02_C.d Fri Jun 09 10:33:25 2006 +0000 @@ -0,0 +1,39 @@ +// $HeadURL$ +// $Date$ +// $Author$ + +module dstress.run.a.asm_shld_02_C; + +version(D_InlineAsm_X86){ + version = runTest; +}else version(D_InlineAsm_X86_64){ + version = runTest; +} + +version(runTest){ + int main(){ + ushort a = 0b0000_0000__1000_0000; + ushort b = 0b1010_0000__0000_0000; + + asm{ + mov AX, a; + mov BX, b; + mov CL, 3; + shld AX, BX, CL; + mov a, AX; + mov b, BX; + } + + if(a != 0b0000_0100__0000_0101){ + assert(0); + } + if(b != 0b1010_0000__0000_0000){ + assert(0); + } + + return 0; + } +}else{ + pragma(msg, "DSTRESS{XPASS}: no inline ASM support"); + static assert(0); +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/run/a/asm_shld_02_D.d Fri Jun 09 10:33:25 2006 +0000 @@ -0,0 +1,39 @@ +// $HeadURL$ +// $Date$ +// $Author$ + +module dstress.run.a.asm_shld_02_D; + +version(D_InlineAsm_X86){ + version = runTest; +}else version(D_InlineAsm_X86_64){ + version = runTest; +} + +version(runTest){ + int main(){ + uint a = 0b0000_0000__1000_0000__0000_0000__0000_0000; + uint b = 0b1010_0000__0000_0000__0000_0000__0000_0000; + + asm{ + mov EAX, a; + mov EBX, b; + mov CL, 3; + shld EAX, EBX, CL; + mov a, EAX; + mov b, EBX; + } + + if(a != 0b0000_0100__0000_0000__0000_0000__0000_0101){ + assert(0); + } + if(b != 0b1010_0000__0000_0000__0000_0000__0000_0000){ + assert(0); + } + + return 0; + } +}else{ + pragma(msg, "DSTRESS{XPASS}: no inline ASM support"); + static assert(0); +}
--- a/run/a/asm_shrd_01_A.d Thu Jun 08 19:40:04 2006 +0000 +++ b/run/a/asm_shrd_01_A.d Fri Jun 09 10:33:25 2006 +0000 @@ -4,9 +4,14 @@ module dstress.run.a.asm_shrd_01_A; -int main(){ - version(D_InlineAsm){ +version(D_InlineAsm_X86){ + version = runTest; +}else version(D_InlineAsm_X86_64){ + version = runTest; +} +version(runTest){ + int main(){ ushort a = 0b0000_0000__1000_0000; ushort b = 0b1000_0000__0000_0101; @@ -16,12 +21,16 @@ mov b, BX; } - assert(a == 0b1010_0000__0001_0000); - assert(b == 0b1000_0000__0000_0101); + if(a != 0b1010_0000__0001_0000){ + assert(0); + } + if(b != 0b1000_0000__0000_0101){ + assert(0); + } return 0; - }else{ - pragma(msg, "no Inline asm support"); - static assert(0); } -} \ No newline at end of file +}else{ + pragma(msg, "DSTRESS{XPASS}: no inline ASM support"); + static assert(0); +}
--- a/run/a/asm_shrd_01_B.d Thu Jun 08 19:40:04 2006 +0000 +++ b/run/a/asm_shrd_01_B.d Fri Jun 09 10:33:25 2006 +0000 @@ -4,8 +4,14 @@ module dstress.run.a.asm_shrd_01_B; -int main(){ - version(D_InlineAsm){ +version(D_InlineAsm_X86){ + version = runTest; +}else version(D_InlineAsm_X86_64){ + version = runTest; +} + +version(runTest){ + int main(){ uint a = 0b0000_0000__1000_0000__0000_0000__0000_0000; uint b = 0b1000_0000__0000_0000__0000_0000__0000_0101; @@ -16,12 +22,16 @@ mov b, EBX; } - assert(a == 0b1010_0000__0001_0000__0000_0000__0000_0000); - assert(b == 0b1000_0000__0000_0000__0000_0000__0000_0101); + if(a != 0b1010_0000__0001_0000__0000_0000__0000_0000){ + assert(0); + } + if(b != 0b1000_0000__0000_0000__0000_0000__0000_0101){ + assert(0); + } return 0; - }else{ - pragma(msg, "no Inline asm support"); - static assert(0); } -} \ No newline at end of file +}else{ + pragma(msg, "DSTRESS{XPASS}: no inline ASM support"); + static assert(0); +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/run/a/asm_shrd_01_C.d Fri Jun 09 10:33:25 2006 +0000 @@ -0,0 +1,38 @@ +// $HeadURL$ +// $Date$ +// $Author$ + +module dstress.run.a.asm_shrd_01_C; + +version(D_InlineAsm_X86){ + version = runTest; +}else version(D_InlineAsm_X86_64){ + version = runTest; +} + +version(runTest){ + int main(){ + ushort a = 0b0000_0000__1000_0000; + ushort b = 0b1000_0000__0000_0101; + + asm{ + mov BX, b; + mov AX, a; + shrd AX, BX, 3; + mov a, AX; + mov b, BX; + } + + if(a != 0b1010_0000__0001_0000){ + assert(0); + } + if(b != 0b1000_0000__0000_0101){ + assert(0); + } + + return 0; + } +}else{ + pragma(msg, "DSTRESS{XPASS}: no inline ASM support"); + static assert(0); +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/run/a/asm_shrd_01_D.d Fri Jun 09 10:33:25 2006 +0000 @@ -0,0 +1,39 @@ +// $HeadURL$ +// $Date$ +// $Author$ + +module dstress.run.a.asm_shrd_01_D; + +version(D_InlineAsm_X86){ + version = runTest; +}else version(D_InlineAsm_X86_64){ + version = runTest; +} + +version(runTest){ + int main(){ + + uint a = 0b0000_0000__1000_0000__0000_0000__0000_0000; + uint b = 0b1000_0000__0000_0000__0000_0000__0000_0101; + + asm{ + mov EAX, a; + mov EBX, b; + shrd EAX, EBX, 3; + mov a, EAX; + mov b, EBX; + } + + if(a != 0b1010_0000__0001_0000__0000_0000__0000_0000){ + assert(0); + } + if(b != 0b1000_0000__0000_0000__0000_0000__0000_0101){ + assert(0); + } + + return 0; + } +}else{ + pragma(msg, "DSTRESS{XPASS}: no inline ASM support"); + static assert(0); +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/run/a/asm_shrd_02_A.d Fri Jun 09 10:33:25 2006 +0000 @@ -0,0 +1,37 @@ +// $HeadURL$ +// $Date$ +// $Author$ + +module dstress.run.a.asm_shrd_02_A; + +version(D_InlineAsm_X86){ + version = runTest; +}else version(D_InlineAsm_X86_64){ + version = runTest; +} + +version(runTest){ + int main(){ + ushort a = 0b0000_0000__1000_0000; + ushort b = 0b1000_0000__0000_0101; + + asm{ + mov BX, b; + mov CL, 3; + shrd a, BX, CL; + mov b, BX; + } + + if(a != 0b1010_0000__0001_0000){ + assert(0); + } + if(b != 0b1000_0000__0000_0101){ + assert(0); + } + + return 0; + } +}else{ + pragma(msg, "DSTRESS{XPASS}: no inline ASM support"); + static assert(0); +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/run/a/asm_shrd_02_B.d Fri Jun 09 10:33:25 2006 +0000 @@ -0,0 +1,38 @@ +// $HeadURL$ +// $Date$ +// $Author$ + +module dstress.run.a.asm_shrd_02_B; + +version(D_InlineAsm_X86){ + version = runTest; +}else version(D_InlineAsm_X86_64){ + version = runTest; +} + +version(runTest){ + int main(){ + + uint a = 0b0000_0000__1000_0000__0000_0000__0000_0000; + uint b = 0b1000_0000__0000_0000__0000_0000__0000_0101; + + asm{ + mov EBX, b; + mov CL, 3; + shrd a, EBX, CL; + mov b, EBX; + } + + if(a != 0b1010_0000__0001_0000__0000_0000__0000_0000){ + assert(0); + } + if(b != 0b1000_0000__0000_0000__0000_0000__0000_0101){ + assert(0); + } + + return 0; + } +}else{ + pragma(msg, "DSTRESS{XPASS}: no inline ASM support"); + static assert(0); +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/run/a/asm_shrd_02_C.d Fri Jun 09 10:33:25 2006 +0000 @@ -0,0 +1,39 @@ +// $HeadURL$ +// $Date$ +// $Author$ + +module dstress.run.a.asm_shrd_02_C; + +version(D_InlineAsm_X86){ + version = runTest; +}else version(D_InlineAsm_X86_64){ + version = runTest; +} + +version(runTest){ + int main(){ + ushort a = 0b0000_0000__1000_0000; + ushort b = 0b1000_0000__0000_0101; + + asm{ + mov BX, b; + mov AX, a; + mov CL, 3; + shrd AX, BX, CL; + mov a, AX; + mov b, BX; + } + + if(a != 0b1010_0000__0001_0000){ + assert(0); + } + if(b != 0b1000_0000__0000_0101){ + assert(0); + } + + return 0; + } +}else{ + pragma(msg, "DSTRESS{XPASS}: no inline ASM support"); + static assert(0); +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/run/a/asm_shrd_02_D.d Fri Jun 09 10:33:25 2006 +0000 @@ -0,0 +1,40 @@ +// $HeadURL$ +// $Date$ +// $Author$ + +module dstress.run.a.asm_shrd_02_D; + +version(D_InlineAsm_X86){ + version = runTest; +}else version(D_InlineAsm_X86_64){ + version = runTest; +} + +version(runTest){ + int main(){ + + uint a = 0b0000_0000__1000_0000__0000_0000__0000_0000; + uint b = 0b1000_0000__0000_0000__0000_0000__0000_0101; + + asm{ + mov EAX, a; + mov EBX, b; + mov CL, 3; + shrd EAX, EBX, CL; + mov a, EAX; + mov b, EBX; + } + + if(a != 0b1010_0000__0001_0000__0000_0000__0000_0000){ + assert(0); + } + if(b != 0b1000_0000__0000_0000__0000_0000__0000_0101){ + assert(0); + } + + return 0; + } +}else{ + pragma(msg, "DSTRESS{XPASS}: no inline ASM support"); + static assert(0); +}
--- a/run/a/asm_sidt_01.d Thu Jun 08 19:40:04 2006 +0000 +++ b/run/a/asm_sidt_01.d Fri Jun 09 10:33:25 2006 +0000 @@ -4,20 +4,23 @@ module dstress.run.a.asm_sidt_01; -int main(){ - version(D_InlineAsm){ +version(D_InlineAsm_X86){ + version = runTest; +}else version(D_InlineAsm_X86_64){ + version = runTest; +} +version(runTest){ + int main(){ 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 +}else{ + pragma(msg, "DSTRESS{XPASS}: no inline ASM support"); + static assert(0); +}
--- a/run/a/asm_sldt_01.d Thu Jun 08 19:40:04 2006 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,23 +0,0 @@ -// $HeadURL$ -// $Date$ -// $Author$ - -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_sldt_01_A.d Fri Jun 09 10:33:25 2006 +0000 @@ -0,0 +1,27 @@ +// $HeadURL$ +// $Date$ +// $Author$ + +module dstress.run.a.asm_sldt_01_A; + +version(D_InlineAsm_X86){ + version = runTest; +}else version(D_InlineAsm_X86_64){ + version = runTest; +} + +version(runTest){ + int main(){ + + ushort u = 1; + + asm{ + sldt u; + } + + return 0; + } +}else{ + pragma(msg, "DSTRESS{XPASS}: no inline ASM support"); + static assert(0); +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/run/a/asm_sldt_01_B.d Fri Jun 09 10:33:25 2006 +0000 @@ -0,0 +1,24 @@ +// $HeadURL$ +// $Date$ +// $Author$ + +module dstress.run.a.asm_sldt_01_B; + +version(D_InlineAsm_X86){ + version = runTest; +}else version(D_InlineAsm_X86_64){ + version = runTest; +} + +version(runTest){ + int main(){ + asm{ + sldt AX; + } + + return 0; + } +}else{ + pragma(msg, "DSTRESS{XPASS}: no inline ASM support"); + static assert(0); +}
--- a/run/a/asm_smsw_01.d Thu Jun 08 19:40:04 2006 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,23 +0,0 @@ -// $HeadURL$ -// $Date$ -// $Author$ - -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_smsw_01_A.d Fri Jun 09 10:33:25 2006 +0000 @@ -0,0 +1,31 @@ +// $HeadURL$ +// $Date$ +// $Author$ + +module dstress.run.a.asm_smsw_01_A; + +version(D_InlineAsm_X86){ + version = runTest; +}else version(D_InlineAsm_X86_64){ + version = runTest; +} + +version(runTest){ + int main(){ + + ushort a = 0; + + asm{ + smsw a; + } + + if(a == 0){ + assert(0); + } + + return 0; + } +}else{ + pragma(msg, "DSTRESS{XPASS}: no inline ASM support"); + static assert(0); +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/run/a/asm_smsw_01_B.d Fri Jun 09 10:33:25 2006 +0000 @@ -0,0 +1,32 @@ +// $HeadURL$ +// $Date$ +// $Author$ + +module dstress.run.a.asm_smsw_01_B; + +version(D_InlineAsm_X86){ + version = runTest; +}else version(D_InlineAsm_X86_64){ + version = runTest; +} + +version(runTest){ + int main(){ + + ushort a = 0; + + asm{ + smsw AX; + mov a, AX; + } + + if(a == 0){ + assert(0); + } + + return 0; + } +}else{ + pragma(msg, "DSTRESS{XPASS}: no inline ASM support"); + static assert(0); +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/run/a/asm_smsw_02_A.d Fri Jun 09 10:33:25 2006 +0000 @@ -0,0 +1,32 @@ +// $HeadURL$ +// $Date$ +// $Author$ + +module dstress.run.a.asm_smsw_02_A; + +version(D_InlineAsm_X86){ + version = runTest; +}else version(D_InlineAsm_X86_64){ + version = runTest; +} + +version(runTest){ + int main(){ + + uint a = 0; + + asm{ + smsw EAX; + mov a, EAX; + } + + if(a == 0){ + assert(0); + } + + return 0; + } +}else{ + pragma(msg, "DSTRESS{XPASS}: no inline ASM support"); + static assert(0); +}
--- a/run/a/asm_stc_01.d Thu Jun 08 19:40:04 2006 +0000 +++ b/run/a/asm_stc_01.d Fri Jun 09 10:33:25 2006 +0000 @@ -4,24 +4,24 @@ module dstress.run.a.asm_stc_01; -int main(){ - version(D_InlineAsm){ - - ubyte a, b = 3; +version(D_InlineAsm_X86){ + version = runTest; +}else version(D_InlineAsm_X86_64){ + version = runTest; +} +version(runTest){ + int main(){ asm{ - clc; - setc a; stc; - setc b; + jnc error; } - assert(a == 0); - assert(b == 1); - return 0; - }else{ - pragma(msg, "no Inline asm support"); - static assert(0); + error: + assert(0); } -} \ No newline at end of file +}else{ + pragma(msg, "DSTRESS{XPASS}: no inline ASM support"); + static assert(0); +}
--- a/run/a/asm_sub_01_A.d Thu Jun 08 19:40:04 2006 +0000 +++ b/run/a/asm_sub_01_A.d Fri Jun 09 10:33:25 2006 +0000 @@ -4,11 +4,15 @@ module dstress.run.a.asm_sub_01_A; -int main(){ - version(D_InlineAsm){ - uint i = 0x12_34_5F_00u; +version(D_InlineAsm_X86){ + version = runTest; +}else version(D_InlineAsm_X86_64){ + version = runTest; +} - assert(i==0x12_34_5F_00u); +version(runTest){ + int main(){ + int i = 0x12_34_5F_00; asm{ mov EAX, i; @@ -16,11 +20,13 @@ mov i, EAX; } - assert(i==0x12_34_5F_FFu); + if(i != 0x12_34_5F_FF){ + assert(0); + } return 0; - }else{ - pragma(msg, "no Inline asm support"); - static assert(0); } -} \ No newline at end of file +}else{ + pragma(msg, "DSTRESS{XPASS}: no inline ASM support"); + static assert(0); +}
--- a/run/a/asm_sub_01_B.d Thu Jun 08 19:40:04 2006 +0000 +++ b/run/a/asm_sub_01_B.d Fri Jun 09 10:33:25 2006 +0000 @@ -4,11 +4,15 @@ module dstress.run.a.asm_sub_01_B; -int main(){ - version(D_InlineAsm){ - uint i = 0x12_3F_00_00u; +version(D_InlineAsm_X86){ + version = runTest; +}else version(D_InlineAsm_X86_64){ + version = runTest; +} - assert(i==0x12_3F_00_00u); +version(runTest){ + int main(){ + int i = 0x12_3F_00_00; asm{ mov EAX, i; @@ -16,11 +20,13 @@ mov i, EAX; } - assert(i==0x12_3F_FF_FFu); + if(i != 0x12_3F_FF_FF){ + assert(0); + } return 0; - }else{ - pragma(msg, "no Inline asm support"); - static assert(0); } -} \ No newline at end of file +}else{ + pragma(msg, "DSTRESS{XPASS}: no inline ASM support"); + static assert(0); +}
--- a/run/a/asm_sub_01_C.d Thu Jun 08 19:40:04 2006 +0000 +++ b/run/a/asm_sub_01_C.d Fri Jun 09 10:33:25 2006 +0000 @@ -4,26 +4,29 @@ module dstress.run.a.asm_sub_01_C; -int main(){ - version(D_InlineAsm){ - uint i = 0x12_23_45_56u; - uint s = 0x0u; +version(D_InlineAsm_X86){ + version = runTest; +}else version(D_InlineAsm_X86_64){ + version = runTest; +} - assert(i==0x12_23_45_56u); - assert(s==0x0u); +version(runTest){ + int main(){ + int i = 0; asm{ - mov EAX, s; + mov EAX, i; sub EAX, 1; mov i, EAX; } - assert(i==0xFF_FF_FF_FFu); - assert(s==0x0u); + if(i != 0xFF_FF_FF_FF){ + assert(0); + } return 0; - }else{ - pragma(msg, "no Inline asm support"); - static assert(0); } -} \ No newline at end of file +}else{ + pragma(msg, "DSTRESS{XPASS}: no inline ASM support"); + static assert(0); +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/run/a/asm_sub_02_A.d Fri Jun 09 10:33:25 2006 +0000 @@ -0,0 +1,32 @@ +// $HeadURL$ +// $Date$ +// $Author$ + +module dstress.run.a.asm_sub_02_A; + +version(D_InlineAsm_X86){ + version = runTest; +}else version(D_InlineAsm_X86_64){ + version = runTest; +} + +version(runTest){ + int main(){ + int i = 0x12_34_5F_00; + + asm{ + mov ECX, i; + sub CL, 1; + mov i, ECX; + } + + if(i != 0x12_34_5F_FF){ + assert(0); + } + + return 0; + } +}else{ + pragma(msg, "DSTRESS{XPASS}: no inline ASM support"); + static assert(0); +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/run/a/asm_sub_02_B.d Fri Jun 09 10:33:25 2006 +0000 @@ -0,0 +1,32 @@ +// $HeadURL$ +// $Date$ +// $Author$ + +module dstress.run.a.asm_sub_02_B; + +version(D_InlineAsm_X86){ + version = runTest; +}else version(D_InlineAsm_X86_64){ + version = runTest; +} + +version(runTest){ + int main(){ + int i = 0x12_3F_00_00; + + asm{ + mov ECX, i; + sub CX, 1; + mov i, ECX; + } + + if(i != 0x12_3F_FF_FF){ + assert(0); + } + + return 0; + } +}else{ + pragma(msg, "DSTRESS{XPASS}: no inline ASM support"); + static assert(0); +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/run/a/asm_sub_02_C.d Fri Jun 09 10:33:25 2006 +0000 @@ -0,0 +1,32 @@ +// $HeadURL$ +// $Date$ +// $Author$ + +module dstress.run.a.asm_sub_02_C; + +version(D_InlineAsm_X86){ + version = runTest; +}else version(D_InlineAsm_X86_64){ + version = runTest; +} + +version(runTest){ + int main(){ + int i = 0; + + asm{ + mov ECX, i; + sub ECX, 1; + mov i, ECX; + } + + if(i != 0xFF_FF_FF_FF){ + assert(0); + } + + return 0; + } +}else{ + pragma(msg, "DSTRESS{XPASS}: no inline ASM support"); + static assert(0); +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/run/a/asm_sub_02_D.d Fri Jun 09 10:33:25 2006 +0000 @@ -0,0 +1,33 @@ +// $HeadURL$ +// $Date$ +// $Author$ + +module dstress.run.a.asm_sub_02_D; + +version(D_InlineAsm_X86){ + version = runTest; +}else version(D_InlineAsm_X86_64){ + version = runTest; +} + +version(runTest){ + int main(){ + int i = 0x12_34_5F_00; + + asm{ + mov ECX, i; + mov AL, 1; + sub CL, AL; + mov i, ECX; + } + + if(i != 0x12_34_5F_FF){ + assert(0); + } + + return 0; + } +}else{ + pragma(msg, "DSTRESS{XPASS}: no inline ASM support"); + static assert(0); +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/run/a/asm_sub_02_E.d Fri Jun 09 10:33:25 2006 +0000 @@ -0,0 +1,33 @@ +// $HeadURL$ +// $Date$ +// $Author$ + +module dstress.run.a.asm_sub_02_E; + +version(D_InlineAsm_X86){ + version = runTest; +}else version(D_InlineAsm_X86_64){ + version = runTest; +} + +version(runTest){ + int main(){ + int i = 0x12_3F_00_00; + + asm{ + mov ECX, i; + mov AX, 1; + sub CX, AX; + mov i, ECX; + } + + if(i != 0x12_3F_FF_FF){ + assert(0); + } + + return 0; + } +}else{ + pragma(msg, "DSTRESS{XPASS}: no inline ASM support"); + static assert(0); +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/run/a/asm_sub_02_F.d Fri Jun 09 10:33:25 2006 +0000 @@ -0,0 +1,33 @@ +// $HeadURL$ +// $Date$ +// $Author$ + +module dstress.run.a.asm_sub_02_F; + +version(D_InlineAsm_X86){ + version = runTest; +}else version(D_InlineAsm_X86_64){ + version = runTest; +} + +version(runTest){ + int main(){ + int i = 0; + + asm{ + mov ECX, i; + mov EAX, 1; + sub ECX, EAX; + mov i, ECX; + } + + if(i != 0xFF_FF_FF_FF){ + assert(0); + } + + return 0; + } +}else{ + pragma(msg, "DSTRESS{XPASS}: no inline ASM support"); + static assert(0); +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/run/a/asm_sub_02_G.d Fri Jun 09 10:33:25 2006 +0000 @@ -0,0 +1,33 @@ +// $HeadURL$ +// $Date$ +// $Author$ + +module dstress.run.a.asm_sub_02_G; + +version(D_InlineAsm_X86){ + version = runTest; +}else version(D_InlineAsm_X86_64){ + version = runTest; +} + +version(runTest){ + int main(){ + int i = 0x12_34_5F_00; + byte b = 1; + + asm{ + mov ECX, i; + sub CL, b; + mov i, ECX; + } + + if(i != 0x12_34_5F_FF){ + assert(0); + } + + return 0; + } +}else{ + pragma(msg, "DSTRESS{XPASS}: no inline ASM support"); + static assert(0); +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/run/a/asm_sub_02_H.d Fri Jun 09 10:33:25 2006 +0000 @@ -0,0 +1,33 @@ +// $HeadURL$ +// $Date$ +// $Author$ + +module dstress.run.a.asm_sub_02_H; + +version(D_InlineAsm_X86){ + version = runTest; +}else version(D_InlineAsm_X86_64){ + version = runTest; +} + +version(runTest){ + int main(){ + int i = 0x12_3F_00_00; + short s = 1; + + asm{ + mov ECX, i; + sub CX, s; + mov i, ECX; + } + + if(i != 0x12_3F_FF_FF){ + assert(0); + } + + return 0; + } +}else{ + pragma(msg, "DSTRESS{XPASS}: no inline ASM support"); + static assert(0); +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/run/a/asm_sub_02_I.d Fri Jun 09 10:33:25 2006 +0000 @@ -0,0 +1,33 @@ +// $HeadURL$ +// $Date$ +// $Author$ + +module dstress.run.a.asm_sub_02_I; + +version(D_InlineAsm_X86){ + version = runTest; +}else version(D_InlineAsm_X86_64){ + version = runTest; +} + +version(runTest){ + int main(){ + int i = 0; + int j = 1; + + asm{ + mov ECX, i; + sub ECX, j; + mov i, ECX; + } + + if(i != 0xFF_FF_FF_FF){ + assert(0); + } + + return 0; + } +}else{ + pragma(msg, "DSTRESS{XPASS}: no inline ASM support"); + static assert(0); +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/run/a/asm_sub_03_A.d Fri Jun 09 10:33:25 2006 +0000 @@ -0,0 +1,30 @@ +// $HeadURL$ +// $Date$ +// $Author$ + +module dstress.run.a.asm_sub_03_A; + +version(D_InlineAsm_X86){ + version = runTest; +}else version(D_InlineAsm_X86_64){ + version = runTest; +} + +version(runTest){ + int main(){ + ubyte i = 0x00; + + asm{ + sub i, 1; + } + + if(i != 0xFF){ + assert(0); + } + + return 0; + } +}else{ + pragma(msg, "DSTRESS{XPASS}: no inline ASM support"); + static assert(0); +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/run/a/asm_sub_03_B.d Fri Jun 09 10:33:25 2006 +0000 @@ -0,0 +1,30 @@ +// $HeadURL$ +// $Date$ +// $Author$ + +module dstress.run.a.asm_sub_03_B; + +version(D_InlineAsm_X86){ + version = runTest; +}else version(D_InlineAsm_X86_64){ + version = runTest; +} + +version(runTest){ + int main(){ + ushort i = 0x00_00; + + asm{ + sub i, 1; + } + + if(i != 0xFF_FF){ + assert(0); + } + + return 0; + } +}else{ + pragma(msg, "DSTRESS{XPASS}: no inline ASM support"); + static assert(0); +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/run/a/asm_sub_03_C.d Fri Jun 09 10:33:25 2006 +0000 @@ -0,0 +1,30 @@ +// $HeadURL$ +// $Date$ +// $Author$ + +module dstress.run.a.asm_sub_03_C; + +version(D_InlineAsm_X86){ + version = runTest; +}else version(D_InlineAsm_X86_64){ + version = runTest; +} + +version(runTest){ + int main(){ + uint i = 0; + + asm{ + sub i, 1; + } + + if(i != 0xFF_FF_FF_FF){ + assert(0); + } + + return 0; + } +}else{ + pragma(msg, "DSTRESS{XPASS}: no inline ASM support"); + static assert(0); +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/run/a/asm_sub_03_D.d Fri Jun 09 10:33:25 2006 +0000 @@ -0,0 +1,31 @@ +// $HeadURL$ +// $Date$ +// $Author$ + +module dstress.run.a.asm_sub_03_D; + +version(D_InlineAsm_X86){ + version = runTest; +}else version(D_InlineAsm_X86_64){ + version = runTest; +} + +version(runTest){ + int main(){ + ubyte i = 0; + + asm{ + mov AL, 1; + sub i, AL; + } + + if(i != 0xFF){ + assert(0); + } + + return 0; + } +}else{ + pragma(msg, "DSTRESS{XPASS}: no inline ASM support"); + static assert(0); +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/run/a/asm_sub_03_E.d Fri Jun 09 10:33:25 2006 +0000 @@ -0,0 +1,31 @@ +// $HeadURL$ +// $Date$ +// $Author$ + +module dstress.run.a.asm_sub_03_E; + +version(D_InlineAsm_X86){ + version = runTest; +}else version(D_InlineAsm_X86_64){ + version = runTest; +} + +version(runTest){ + int main(){ + ushort i = 0; + + asm{ + mov AX, 1; + sub i, AX; + } + + if(i != 0xFF_FF){ + assert(0); + } + + return 0; + } +}else{ + pragma(msg, "DSTRESS{XPASS}: no inline ASM support"); + static assert(0); +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/run/a/asm_sub_03_F.d Fri Jun 09 10:33:25 2006 +0000 @@ -0,0 +1,31 @@ +// $HeadURL$ +// $Date$ +// $Author$ + +module dstress.run.a.asm_sub_03_F; + +version(D_InlineAsm_X86){ + version = runTest; +}else version(D_InlineAsm_X86_64){ + version = runTest; +} + +version(runTest){ + int main(){ + int i = 0; + + asm{ + mov EAX, 1; + sub i, EAX; + } + + if(i != 0xFF_FF_FF_FF){ + assert(0); + } + + return 0; + } +}else{ + pragma(msg, "DSTRESS{XPASS}: no inline ASM support"); + static assert(0); +}