Mercurial > projects > dstress
changeset 1305:3db9417bb11c
[Issue 171] 'wrong number of operands' for invlpg inline asm instruction
Frits van Bommel <fvbommel@wxs.nl>
2006-05-31
http://d.puremagic.com/issues/show_bug.cgi?id=171
author | thomask |
---|---|
date | Sun, 31 Dec 2006 02:00:40 +0000 |
parents | a720cd88e876 |
children | 9c9d8a7ddcb4 |
files | compile/a/asm_invlpg_01_A.d compile/a/asm_invlpg_01_B.d compile/a/asm_invlpg_01_C.d |
diffstat | 3 files changed, 76 insertions(+), 4 deletions(-) [+] |
line wrap: on
line diff
--- a/compile/a/asm_invlpg_01_A.d Sun Dec 31 02:00:32 2006 +0000 +++ b/compile/a/asm_invlpg_01_A.d Sun Dec 31 02:00:40 2006 +0000 @@ -2,9 +2,10 @@ // $Date$ // $Author$ -// @author@ <fvbommel@wxs.nl> +// @author@ Frits van Bommel <fvbommel@wxs.nl> // @date@ 2006-05-31 -// @uri@ news:bug-171-31@http.d.puremagic.com/bugzilla/ +// @uri@ http://d.puremagic.com/issues/show_bug.cgi?id=171 +// @desc@ [Issue 171] 'wrong number of operands' for invlpg inline asm instruction module dstress.compile.a.asm_invlpg_01_A; @@ -15,13 +16,18 @@ } version(runTest){ - void invalidatePage(void* p){ - asm{ + int main(char[][] arg){ + void* p = arg.ptr; + + asm{ mov EAX, [p]; invlpg [EAX]; } + + 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/compile/a/asm_invlpg_01_B.d Sun Dec 31 02:00:40 2006 +0000 @@ -0,0 +1,33 @@ +// $HeadURL$ +// $Date$ +// $Author$ + +// @author@ Frits van Bommel <fvbommel@wxs.nl> +// @date@ 2006-05-31 +// @uri@ http://d.puremagic.com/issues/show_bug.cgi?id=171 +// @desc@ [Issue 171] 'wrong number of operands' for invlpg inline asm instruction + +module dstress.compile.a.asm_invlpg_01_B; + +version(D_InlineAsm_X86){ + version = runTest; +}else version(D_InlineAsm_X86_64){ + version = runTest; +} + +version(runTest){ + int main(char[][] arg){ + void* p = arg.ptr; + + asm{ + mov EAX, [p]; + invlpg EAX; + } + + 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/compile/a/asm_invlpg_01_C.d Sun Dec 31 02:00:40 2006 +0000 @@ -0,0 +1,33 @@ +// $HeadURL$ +// $Date$ +// $Author$ + +// @author@ Frits van Bommel <fvbommel@wxs.nl> +// @date@ 2006-05-31 +// @uri@ http://d.puremagic.com/issues/show_bug.cgi?id=171 +// @desc@ [Issue 171] 'wrong number of operands' for invlpg inline asm instruction + +module dstress.compile.a.asm_invlpg_01_C; + +version(D_InlineAsm_X86){ + version = runTest; +}else version(D_InlineAsm_X86_64){ + version = runTest; +} + +version(runTest){ + int main(char[][] arg){ + void* p = arg.ptr; + + asm{ + mov EAX, p; + invlpg EAX; + } + + return 0; + } +}else{ + pragma(msg, "DSTRESS{XFAIL}: no inline ASM support"); + static assert(0); +} +