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);
+}
+