changeset 1024:adf31c7a5127

Inline Assembler offset keyword <lugaidster@gmail.com> 2006-04-28 news:bug-116-3@http.d.puremagic.com/bugzilla/
author thomask
date Wed, 24 May 2006 16:23:43 +0000
parents 740c7e3dae39
children 8516fcb66401
files nocompile/a/asm_offset_01_B.d run/a/asm_offset_01_A.d
diffstat 2 files changed, 79 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/nocompile/a/asm_offset_01_B.d	Wed May 24 16:23:43 2006 +0000
@@ -0,0 +1,36 @@
+// $HeadURL$
+// $Date$
+// $Author$
+
+// @author@	<lugaidster@gmail.com>
+// @date@	2006-04-28
+// @uri@	news:bug-116-3@http.d.puremagic.com/bugzilla/
+
+// __DSTRESS_ELINE__ 26
+
+module dstress.nocompile.a.asm_offset_01_B;
+
+version(D_InlineAsm_X86){
+	version = runTest;
+}else version(D_InlineAsm_X86_64){
+	version = runTest;
+}
+
+version(runTest){
+	byte b;
+
+	void main(){
+		
+		static if(size_t.sizeof == 4){
+			asm{
+				mov EAX, offsetof b;
+			}
+		}else{
+			pragma(msg, "DSTRESS{ERROR}: unsupported pointer size");
+			static assert(0);
+		}
+	}
+}else{
+	pragma(msg, "DSTRESS{XFAIL}: no inline ASM support");
+	static assert(0);
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/run/a/asm_offset_01_A.d	Wed May 24 16:23:43 2006 +0000
@@ -0,0 +1,43 @@
+// $HeadURL$
+// $Date$
+// $Author$
+
+// @author@	<lugaidster@gmail.com>
+// @date@	2006-04-28
+// @uri@	news:bug-116-3@http.d.puremagic.com/bugzilla/
+
+module dstress.run.a.asm_offset_01_A;
+
+version(D_InlineAsm_X86){
+	version = runTest;
+}else version(D_InlineAsm_X86_64){
+	version = runTest;
+}
+
+version(runTest){
+	byte b;
+
+	int main(){
+		void* x = &b;
+		void* y;
+		
+		static if(size_t.sizeof == 4){
+			asm{
+				mov EAX, offset b;
+				mov y, EAX;
+			}
+		}else{
+			pragma(msg, "DSTRESS{ERROR}: unsupported pointer size");
+			static assert(0);
+		}
+
+		if(x != y){
+			assert(0);
+		}
+
+		return 0;
+	}
+}else{
+	pragma(msg, "DSTRESS{XFAIL}: no inline ASM support");
+	static assert(0);
+}