diff run/a/asm_fdiv_01_D2.d @ 1606:ebff718ff18b

Fix tests from #3. Thanks Don!
author Christian Kamm <kamm incasoftware de>
date Mon, 13 Apr 2009 13:47:03 +0200
parents run/a/asm_fdiv_01_D.d@1c8652b3795a
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/run/a/asm_fdiv_01_D2.d	Mon Apr 13 13:47:03 2009 +0200
@@ -0,0 +1,51 @@
+// $HeadURL$
+// $Date$
+// $Author$
+
+module dstress.run.a.asm_fdiv_01_D2;
+
+version(D_InlineAsm_X86){
+	version = runTest;
+}else version(D_InlineAsm_X86_64){
+	version = runTest;
+}
+
+version(runTest){
+	import addon.cpuinfo;
+
+	int main(){
+		haveFPU!()();
+
+		float a = -3.0f;
+		float b = 12.0f;
+		float c;
+
+		asm{
+			fld a;
+			fld b;
+			fdiv ST,ST(1);
+			fstp c;
+		}
+
+		if(c != -4.0f){
+			assert(0);
+		}
+
+		asm{
+			fld a;
+			fld b;
+			fdiv ST(1),ST;
+			fstp c;
+			fstp c;
+		}
+
+		if(c != a/b){
+			assert(0);
+		}
+
+		return 0;
+	}
+}else{
+	pragma(msg, "DSTRESS{XFAIL}: no inline ASM support");
+	static assert(0);
+}