changeset 1062:7360e428ad73

pre 0.162 review
author thomask
date Sat, 01 Jul 2006 23:08:00 +0000
parents 5bbc978e55a0
children 4c41b782a14e
files nocompile/a/alias_29_A.d nocompile/a/alias_29_B.d nocompile/s/scope_10_A.d nocompile/s/scope_10_B.d nocompile/s/scope_10_C.d nocompile/s/scope_10_D.d nocompile/s/scope_10_E.d nocompile/s/scope_10_F.d nocompile/s/scope_10_G.d nocompile/s/scope_10_H.d nocompile/s/scope_10_I.d nocompile/s/scope_11_A.d nocompile/s/scope_11_B.d nocompile/s/scope_11_C.d nocompile/s/scope_11_D.d nocompile/s/scope_11_E.d nocompile/s/scope_11_F.d nocompile/s/scope_11_G.d nocompile/s/scope_11_H.d nocompile/s/scope_11_I.d nocompile/s/scope_13_C.d nocompile/s/scope_13_D.d run/a/alias_29_A.d run/a/alias_29_B.d run/a/asm_adc_01_A.d run/a/asm_adc_01_B.d run/a/asm_adc_01_C.d run/a/asm_adc_01_D.d run/a/asm_adc_01_E.d run/a/asm_adc_01_F.d run/a/asm_adc_01_H.d run/a/asm_adc_01_I.d run/a/asm_adc_01_J.d run/a/asm_add_01_A.d run/a/asm_add_01_B.d run/a/asm_add_01_C.d run/a/asm_add_02.d run/a/asm_add_03_A.d run/a/asm_add_03_B.d run/a/asm_add_03_C.d run/a/asm_add_04_A.d run/a/asm_add_04_B.d run/a/asm_add_04_C.d run/a/asm_add_05_A.d run/a/asm_add_05_B.d run/a/asm_add_05_C.d run/a/asm_addpd_01_A.d run/a/asm_cvtpd2pi_01_A.d run/a/asm_cvtpi2pd_01_A.d run/a/asm_cvtpi2ps_01_A.d run/a/asm_cvtps2pi_01_A.d run/a/asm_cvttpd2pi_01_A.d run/a/asm_cvttps2pi_01_A.d run/a/asm_movq_02_A.d run/a/asm_movq_02_B.d run/a/asm_movq_02_C.d run/a/asm_movq_02_D.d run/a/asm_movq_02_E.d run/a/asm_movq_02_F.d run/a/asm_movq_02_G.d run/a/asm_movq_02_H.d run/a/asm_movq_02_I.d run/a/asm_movq_02_J.d run/a/asm_movq_02_K.d run/a/asm_movq_02_L.d run/a/asm_movq_02_M.d run/a/asm_movq_02_N.d run/a/asm_movq_02_O.d run/a/asm_movq_02_P.d run/a/asm_pfsubr_01_A.d run/a/asm_pi2fd_01_A.d run/a/asm_pi2fd_01_B.d run/a/asm_pmulhrw_01_A.d run/o/opIn_r_01_A.d run/o/opIn_r_01_B.d run/s/scope_06_K.d run/s/scope_06_L.d run/s/scope_06_M.d run/s/scope_06_N.d run/s/scope_06_O.d
diffstat 80 files changed, 1072 insertions(+), 221 deletions(-) [+]
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/nocompile/a/alias_29_A.d	Sat Jul 01 23:08:00 2006 +0000
@@ -0,0 +1,20 @@
+// $HeadURL$
+// $Date$
+// $Author$
+
+// @author@	Sean Kelly <sean@f4.ca>
+// @date@	2006-02-09
+// @uri@	news:dsgstn$2u4h$2@digitaldaemon.com
+
+// __DSTRESS_ELINE__ 19
+
+module dstress.nocompile.a.alias_29_A;
+
+struct S{
+	int i;
+}
+
+void main(){
+     S   s;
+     alias s.i a;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/nocompile/a/alias_29_B.d	Sat Jul 01 23:08:00 2006 +0000
@@ -0,0 +1,20 @@
+// $HeadURL$
+// $Date$
+// $Author$
+
+// @author@	Sean Kelly <sean@f4.ca>
+// @date@	2006-02-09
+// @uri@	news:dsgstn$2u4h$2@digitaldaemon.com
+
+// __DSTRESS_ELINE__ 19
+
+module dstress.nocompile.a.alias_29_B;
+
+class C{
+	int i;
+}
+
+void main(){
+     C c = new C();
+     alias c.i a;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/nocompile/s/scope_10_A.d	Sat Jul 01 23:08:00 2006 +0000
@@ -0,0 +1,15 @@
+// $HeadURL$
+// $Date$
+// $Author$
+
+// __DSTRESS_ELINE__ 11
+
+module dstress.nocompile.s.scope_10_A;
+
+int main(){
+	scope(exit){
+		return 0;
+	}
+
+	return 1;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/nocompile/s/scope_10_B.d	Sat Jul 01 23:08:00 2006 +0000
@@ -0,0 +1,16 @@
+// $HeadURL$
+// $Date$
+// $Author$
+
+// __DSTRESS_ELINE__ 14
+
+module dstress.nocompile.s.scope_10_B;
+
+class X{
+}
+
+void main(){
+	scope(exit){
+		throw new X();
+	}
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/nocompile/s/scope_10_C.d	Sat Jul 01 23:08:00 2006 +0000
@@ -0,0 +1,15 @@
+// $HeadURL$
+// $Date$
+// $Author$
+
+// __DSTRESS_ELINE__ 11
+
+module dstress.nocompile.s.scope_10_C;
+
+int main(){
+	scope(exit){
+		goto label;
+	}
+label:
+	return 1;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/nocompile/s/scope_10_D.d	Sat Jul 01 23:08:00 2006 +0000
@@ -0,0 +1,21 @@
+// $HeadURL$
+// $Date$
+// $Author$
+
+// __DSTRESS_ELINE__ 16
+
+module dstress.nocompile.s.scope_10_D;
+
+int main(){
+	int i = 0;
+label:
+	while( i++ < 10){
+		i++;
+
+		scope(exit){
+			continue label;
+		}
+	}
+
+	return 1;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/nocompile/s/scope_10_E.d	Sat Jul 01 23:08:00 2006 +0000
@@ -0,0 +1,21 @@
+// $HeadURL$
+// $Date$
+// $Author$
+
+// __DSTRESS_ELINE__ 16
+
+module dstress.nocompile.s.scope_10_E;
+
+int main(){
+	int i = 0;
+label:
+	while( i++ < 10){
+		i++;
+
+		scope(exit){
+			break label;
+		}
+	}
+
+	return 1;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/nocompile/s/scope_10_F.d	Sat Jul 01 23:08:00 2006 +0000
@@ -0,0 +1,22 @@
+// $HeadURL$
+// $Date$
+// $Author$
+
+// __DSTRESS_ELINE__ 13
+
+module dstress.nocompile.s.scope_10_F;
+
+int main(){
+	int i = 0;
+
+	scope(exit){
+		continue label;
+	}
+
+label:
+	while( i++ < 10){
+		i++;
+	}
+
+	return 1;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/nocompile/s/scope_10_G.d	Sat Jul 01 23:08:00 2006 +0000
@@ -0,0 +1,22 @@
+// $HeadURL$
+// $Date$
+// $Author$
+
+// __DSTRESS_ELINE__ 13
+
+module dstress.nocompile.s.scope_10_G;
+
+int main(){
+	int i = 0;
+
+	scope(exit){
+		break label;
+	}
+
+label:
+	while( i++ < 10){
+		i++;
+	}
+
+	return 1;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/nocompile/s/scope_10_H.d	Sat Jul 01 23:08:00 2006 +0000
@@ -0,0 +1,22 @@
+// $HeadURL$
+// $Date$
+// $Author$
+
+// __DSTRESS_ELINE__ 18
+
+module dstress.nocompile.s.scope_10_H;
+
+int main(){
+	int i = 0;
+
+label:
+	while( i++ < 10){
+		i++;
+	}
+
+	scope(exit){
+		continue label;
+	}
+
+	return 1;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/nocompile/s/scope_10_I.d	Sat Jul 01 23:08:00 2006 +0000
@@ -0,0 +1,22 @@
+// $HeadURL$
+// $Date$
+// $Author$
+
+// __DSTRESS_ELINE__ 18
+
+module dstress.nocompile.s.scope_10_I;
+
+int main(){
+	int i = 0;
+
+label:
+	while( i++ < 10){
+		i++;
+	}
+
+	scope(exit){
+		break label;
+	}
+
+	return 1;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/nocompile/s/scope_11_A.d	Sat Jul 01 23:08:00 2006 +0000
@@ -0,0 +1,15 @@
+// $HeadURL$
+// $Date$
+// $Author$
+
+// __DSTRESS_ELINE__ 11
+
+module dstress.nocompile.s.scope_11_A;
+
+int main(){
+	scope(success){
+		return 0;
+	}
+
+	return 1;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/nocompile/s/scope_11_B.d	Sat Jul 01 23:08:00 2006 +0000
@@ -0,0 +1,16 @@
+// $HeadURL$
+// $Date$
+// $Author$
+
+// __DSTRESS_ELINE__ 14
+
+module dstress.nocompile.s.scope_11_B;
+
+class X{
+}
+
+void main(){
+	scope(success){
+		throw new X();
+	}
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/nocompile/s/scope_11_C.d	Sat Jul 01 23:08:00 2006 +0000
@@ -0,0 +1,15 @@
+// $HeadURL$
+// $Date$
+// $Author$
+
+// __DSTRESS_ELINE__ 11
+
+module dstress.nocompile.s.scope_11_C;
+
+int main(){
+	scope(success){
+		goto label;
+	}
+label:
+	return 1;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/nocompile/s/scope_11_D.d	Sat Jul 01 23:08:00 2006 +0000
@@ -0,0 +1,21 @@
+// $HeadURL$
+// $Date$
+// $Author$
+
+// __DSTRESS_ELINE__ 16
+
+module dstress.nocompile.s.scope_11_D;
+
+int main(){
+	int i = 0;
+label:
+	while( i++ < 10){
+		i++;
+
+		scope(success){
+			continue label;
+		}
+	}
+
+	return 1;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/nocompile/s/scope_11_E.d	Sat Jul 01 23:08:00 2006 +0000
@@ -0,0 +1,21 @@
+// $HeadURL$
+// $Date$
+// $Author$
+
+// __DSTRESS_ELINE__ 16
+
+module dstress.nocompile.s.scope_11_E;
+
+int main(){
+	int i = 0;
+label:
+	while( i++ < 10){
+		i++;
+
+		scope(success){
+			break label;
+		}
+	}
+
+	return 1;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/nocompile/s/scope_11_F.d	Sat Jul 01 23:08:00 2006 +0000
@@ -0,0 +1,22 @@
+// $HeadURL$
+// $Date$
+// $Author$
+
+// __DSTRESS_ELINE__ 13
+
+module dstress.nocompile.s.scope_11_F;
+
+int main(){
+	int i = 0;
+
+	scope(success){
+		continue label;
+	}
+
+label:
+	while( i++ < 10){
+		i++;
+	}
+
+	return 1;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/nocompile/s/scope_11_G.d	Sat Jul 01 23:08:00 2006 +0000
@@ -0,0 +1,22 @@
+// $HeadURL$
+// $Date$
+// $Author$
+
+// __DSTRESS_ELINE__ 13
+
+module dstress.nocompile.s.scope_11_G;
+
+int main(){
+	int i = 0;
+
+	scope(success){
+		break label;
+	}
+
+label:
+	while( i++ < 10){
+		i++;
+	}
+
+	return 1;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/nocompile/s/scope_11_H.d	Sat Jul 01 23:08:00 2006 +0000
@@ -0,0 +1,22 @@
+// $HeadURL$
+// $Date$
+// $Author$
+
+// __DSTRESS_ELINE__ 18
+
+module dstress.nocompile.s.scope_11_H;
+
+int main(){
+	int i = 0;
+
+label:
+	while( i++ < 10){
+		i++;
+	}
+
+	scope(success){
+		continue label;
+	}
+
+	return 1;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/nocompile/s/scope_11_I.d	Sat Jul 01 23:08:00 2006 +0000
@@ -0,0 +1,22 @@
+// $HeadURL$
+// $Date$
+// $Author$
+
+// __DSTRESS_ELINE__ 18
+
+module dstress.nocompile.s.scope_11_I;
+
+int main(){
+	int i = 0;
+
+label:
+	while( i++ < 10){
+		i++;
+	}
+
+	scope(success){
+		break label;
+	}
+
+	return 1;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/nocompile/s/scope_13_C.d	Sat Jul 01 23:08:00 2006 +0000
@@ -0,0 +1,20 @@
+// $HeadURL$
+// $Date$
+// $Author$
+
+// @author@	<ericanderton@yahoo.com>
+// @date@	2006-06-16
+// @uri@	news:bug-199-3@http.d.puremagic.com/issues/
+
+// __DSTRESS_ELINE__ 19
+
+module dstress.nocompile.s.scope_13_C;
+
+void foo(){
+label: 
+	{
+		int i;
+	}
+
+	i = 2;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/nocompile/s/scope_13_D.d	Sat Jul 01 23:08:00 2006 +0000
@@ -0,0 +1,21 @@
+// $HeadURL$
+// $Date$
+// $Author$
+
+// @author@	<ericanderton@yahoo.com>
+// @date@	2006-06-16
+// @uri@	news:bug-199-3@http.d.puremagic.com/issues/
+
+// __DSTRESS_ELINE__ 20
+
+module dstress.nocompile.s.scope_13_D;
+
+void foo(){
+label:	{}
+
+	{
+		int i;
+	}
+
+	i = 2;
+}
--- a/run/a/alias_29_A.d	Fri Jun 30 07:17:28 2006 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,23 +0,0 @@
-// $HeadURL$
-// $Date$
-// $Author$
-
-// @author@	Sean Kelly <sean@f4.ca>
-// @date@	2006-02-09
-// @uri@	news:dsgstn$2u4h$2@digitaldaemon.com
-
-module dstress.run.a.alias_29_A;
-
-struct S{
-	int i;
-}
-
-int main(){
-     S   s;
-     alias s.i a;
-
-     s.i = 3;
-     assert(a == 3);
-
-     return 0;
-}
--- a/run/a/alias_29_B.d	Fri Jun 30 07:17:28 2006 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,23 +0,0 @@
-// $HeadURL$
-// $Date$
-// $Author$
-
-// @author@	Sean Kelly <sean@f4.ca>
-// @date@	2006-02-09
-// @uri@	news:dsgstn$2u4h$2@digitaldaemon.com
-
-module dstress.run.a.alias_29_B;
-
-class C{
-	int i;
-}
-
-int main(){
-     C c = new C();
-     alias c.i a;
-
-     c.i = 3;
-     assert(a == 3);
-
-     return 0;
-}
--- a/run/a/asm_adc_01_A.d	Fri Jun 30 07:17:28 2006 +0000
+++ b/run/a/asm_adc_01_A.d	Sat Jul 01 23:08:00 2006 +0000
@@ -10,8 +10,8 @@
 	version = runTest;
 }
 
-int main(){
-	version(runTest){
+version(runTest){
+	int main(){
 		byte a = 3;
 		byte b = 5;
 
@@ -22,7 +22,9 @@
 			mov a, AL;
 		}
 
-		assert(a == 8);
+		if(a != 8){
+			assert(0);
+		}
 
 		a = 3;
 		b = 5;
@@ -34,11 +36,13 @@
 			mov a, AL;
 		}
 
-		assert(a == 9);
+		if(a != 9){
+			assert(0);
+		}
 
 		return 0;
-	}else{
-		pragma(msg, "DSTRESS{XPASS}: no inline ASM support");
-		static assert(0);
 	}
+}else{
+	pragma(msg, "DSTRESS{XPASS}: no inline ASM support");
+	static assert(0);
 }
--- a/run/a/asm_adc_01_B.d	Fri Jun 30 07:17:28 2006 +0000
+++ b/run/a/asm_adc_01_B.d	Sat Jul 01 23:08:00 2006 +0000
@@ -10,8 +10,8 @@
 	version = runTest;
 }
 
-int main(){
-	version(runTest){
+version(runTest){
+	int main(){
 		short a = 300;
 		short b = 500;
 
@@ -22,7 +22,9 @@
 			mov a, AX;
 		}
 
-		assert(a == 800);
+		if(a != 800){
+			assert(0);
+		}
 
 		a = 300;
 		b = 500;
@@ -34,11 +36,13 @@
 			mov a, AX;
 		}
 
-		assert(a == 801);
+		if(a != 801){
+			assert(0);
+		}
 
 		return 0;
-	}else{
-		pragma(msg, "DSTRESS{XPASS}: no inline ASM support");
-		static assert(0);
 	}
+}else{
+	pragma(msg, "DSTRESS{XPASS}: no inline ASM support");
+	static assert(0);
 }
--- a/run/a/asm_adc_01_C.d	Fri Jun 30 07:17:28 2006 +0000
+++ b/run/a/asm_adc_01_C.d	Sat Jul 01 23:08:00 2006 +0000
@@ -10,8 +10,8 @@
 	version = runTest;
 }
 
-int main(){
-	version(runTest){
+version(runTest){
+	int main(){
 		int a = 30000;
 		int b = 50000;
 
@@ -22,7 +22,9 @@
 			mov a, EAX;
 		}
 
-		assert(a == 80000);
+		if(a != 80000){
+			assert(0);
+		}
 
 		a = 30000;
 		b = 50000;
@@ -34,11 +36,13 @@
 			mov a, EAX;
 		}
 
-		assert(a == 80001);
+		if(a != 80001){
+			assert(0);
+		}
 
 		return 0;
-	}else{
-		pragma(msg, "DSTRESS{XPASS}: no inline ASM support");
-		static assert(0);
 	}
+}else{
+	pragma(msg, "DSTRESS{XPASS}: no inline ASM support");
+	static assert(0);
 }
--- a/run/a/asm_adc_01_D.d	Fri Jun 30 07:17:28 2006 +0000
+++ b/run/a/asm_adc_01_D.d	Sat Jul 01 23:08:00 2006 +0000
@@ -10,8 +10,8 @@
 	version = runTest;
 }
 
-int main(){
-	version(runTest){
+version(runTest){
+	int main(){
 		byte a;
 
 		asm{
@@ -37,8 +37,8 @@
 		}
 
 		return 0;
-	}else{
-		pragma(msg, "DSTRESS{XPASS}: no inline ASM support");
-		static assert(0);
 	}
+}else{
+	pragma(msg, "DSTRESS{XPASS}: no inline ASM support");
+	static assert(0);
 }
--- a/run/a/asm_adc_01_E.d	Fri Jun 30 07:17:28 2006 +0000
+++ b/run/a/asm_adc_01_E.d	Sat Jul 01 23:08:00 2006 +0000
@@ -10,8 +10,8 @@
 	version = runTest;
 }
 
-int main(){
-	version(runTest){
+version(runTest){
+	int main(){
 		short a;
 
 		asm{
@@ -37,8 +37,8 @@
 		}
 
 		return 0;
-	}else{
-		pragma(msg, "DSTRESS{XPASS}: no inline ASM support");
-		static assert(0);
 	}
+}else{
+	pragma(msg, "DSTRESS{XPASS}: no inline ASM support");
+	static assert(0);
 }
--- a/run/a/asm_adc_01_F.d	Fri Jun 30 07:17:28 2006 +0000
+++ b/run/a/asm_adc_01_F.d	Sat Jul 01 23:08:00 2006 +0000
@@ -10,8 +10,8 @@
 	version = runTest;
 }
 
-int main(){
-	version(runTest){
+version(runTest){
+	int main(){
 		int a;
 
 		asm{
@@ -37,8 +37,9 @@
 		}
 
 		return 0;
-	}else{
-		pragma(msg, "DSTRESS{XPASS}: no inline ASM support");
-		static assert(0);
 	}
+}else{
+	pragma(msg, "DSTRESS{XPASS}: no inline ASM support");
+	static assert(0);
 }
+
--- a/run/a/asm_adc_01_H.d	Fri Jun 30 07:17:28 2006 +0000
+++ b/run/a/asm_adc_01_H.d	Sat Jul 01 23:08:00 2006 +0000
@@ -10,8 +10,8 @@
 	version = runTest;
 }
 
-int main(){
-	version(runTest){
+version(runTest){
+	int main(){
 		byte a;
 
 		asm{
@@ -37,8 +37,8 @@
 		}
 
 		return 0;
-	}else{
-		pragma(msg, "DSTRESS{XPASS}: no inline ASM support");
-		static assert(0);
 	}
+}else{
+	pragma(msg, "DSTRESS{XPASS}: no inline ASM support");
+	static assert(0);
 }
--- a/run/a/asm_adc_01_I.d	Fri Jun 30 07:17:28 2006 +0000
+++ b/run/a/asm_adc_01_I.d	Sat Jul 01 23:08:00 2006 +0000
@@ -10,8 +10,8 @@
 	version = runTest;
 }
 
-int main(){
-	version(runTest){
+version(runTest){
+	int main(){
 		short a;
 
 		asm{
@@ -37,8 +37,8 @@
 		}
 
 		return 0;
-	}else{
-		pragma(msg, "DSTRESS{XPASS}: no inline ASM support");
-		static assert(0);
 	}
+}else{
+	pragma(msg, "DSTRESS{XPASS}: no inline ASM support");
+	static assert(0);
 }
--- a/run/a/asm_adc_01_J.d	Fri Jun 30 07:17:28 2006 +0000
+++ b/run/a/asm_adc_01_J.d	Sat Jul 01 23:08:00 2006 +0000
@@ -10,8 +10,8 @@
 	version = runTest;
 }
 
-int main(){
-	version(runTest){
+version(runTest){
+	int main(){
 		int a;
 
 		asm{
@@ -37,8 +37,8 @@
 		}
 
 		return 0;
-	}else{
-		pragma(msg, "DSTRESS{XPASS}: no inline ASM support");
-		static assert(0);
 	}
+}else{
+	pragma(msg, "DSTRESS{XPASS}: no inline ASM support");
+	static assert(0);
 }
--- a/run/a/asm_add_01_A.d	Fri Jun 30 07:17:28 2006 +0000
+++ b/run/a/asm_add_01_A.d	Sat Jul 01 23:08:00 2006 +0000
@@ -4,14 +4,15 @@
 
 module dstress.run.a.asm_add_01_A;
 
-int main(){
-	version(D_InlineAsm_X86){
+version(D_InlineAsm_X86){
+	version = runTest;
+}
+
+version(runTest){
+	int main(){
 		uint i = 0x12_23_45_56;
 		ubyte b = 0xFFu;
 
-		assert(i==0x12_23_45_56);
-		assert(b==0xFFu);
-
 		asm{
 			mov EAX, 0x98_76_54_32;
 			mov AH, b;
@@ -19,12 +20,17 @@
 			mov i, EAX;
 		}
 
-		assert(i==0x98_76_00_32);
-		assert(b==0xFFu);
+		if(i != 0x98_76_00_32){
+			assert(0);
+		}
+
+		if(b != 0xFFu){
+			assert(0);
+		}
 
 		return 0;
-	}else{
-		pragma(msg, "DSTRESS{XPASS}: no inline ASM support");
-		static assert(0);
 	}
+}else{
+	pragma(msg, "DSTRESS{XPASS}: no inline ASM support");
+	static assert(0);
 }
--- a/run/a/asm_add_01_B.d	Fri Jun 30 07:17:28 2006 +0000
+++ b/run/a/asm_add_01_B.d	Sat Jul 01 23:08:00 2006 +0000
@@ -10,14 +10,11 @@
 	version = runTest;
 }
 
-int main(){
-	version(runTest){
+version(runTest){
+	int main(){
 		uint i = 0x12_23_45_56u;
 		ushort s = 0xFFFFu;
 
-		assert(i==0x12_23_45_56u);
-		assert(s==0xFFFFu);
-
 		asm{
 			mov EAX, 0x98_76_54_32;
 			mov AX, s;
@@ -25,12 +22,16 @@
 			mov i, EAX;
 		}
 
-		assert(i==0x98_76_00_00u);
-		assert(s==0xFFFFu);
+		if(i != 0x98_76_00_00u){
+			assert(0);
+		}
+		if(s != 0xFFFFu){
+			assert(0);
+		}
 
 		return 0;
-	}else{
-		pragma(msg, "DSTRESS{XPASS}: no inline ASM support");
-		static assert(0);
 	}
+}else{
+	pragma(msg, "DSTRESS{XPASS}: no inline ASM support");
+	static assert(0);
 }
--- a/run/a/asm_add_01_C.d	Fri Jun 30 07:17:28 2006 +0000
+++ b/run/a/asm_add_01_C.d	Sat Jul 01 23:08:00 2006 +0000
@@ -10,26 +10,27 @@
 	version = runTest;
 }
 
-int main(){
-	version(runTest){
+version(runTest){
+	int main(){
 		uint i = 0x12_23_45_56u;
 		uint s = 0xFF_FF_FF_FFu;
 
-		assert(i==0x12_23_45_56u);
-		assert(s==0xFF_FF_FF_FFu);
-
 		asm{
 			mov EAX, s;
 			add EAX, 1;
 			mov i, EAX;
 		}
 
-		assert(i==0u);
-		assert(s==0xFF_FF_FF_FFu);
+		if(i != 0u){
+			assert(0);
+		}
+		if(s != 0xFF_FF_FF_FFu){
+			assert(0);
+		}
 
 		return 0;
-	}else{
-		pragma(msg, "DSTRESS{XPASS}: no inline ASM support");
-		static assert(0);
 	}
+}else{
+	pragma(msg, "DSTRESS{XPASS}: no inline ASM support");
+	static assert(0);
 }
--- a/run/a/asm_add_02.d	Fri Jun 30 07:17:28 2006 +0000
+++ b/run/a/asm_add_02.d	Sat Jul 01 23:08:00 2006 +0000
@@ -20,9 +20,18 @@
 	}
 
 	int main(){
-		assert(test(1)==2);
-		assert(test(2)==3);
-		assert(test(3)==4);
+		if(test(1) != 2){
+			assert(0);
+		}
+
+		if(test(2) != 3){
+			assert(0);
+		}
+
+		if(test(3) != 4){
+			assert(0);
+		}
+
         	return 0;
 	}
 }else{
--- a/run/a/asm_add_03_A.d	Fri Jun 30 07:17:28 2006 +0000
+++ b/run/a/asm_add_03_A.d	Sat Jul 01 23:08:00 2006 +0000
@@ -10,8 +10,8 @@
 	version = runTest;
 }
 
-int main(){
-	version(runTest){
+version(runTest){
+	int main(){
 		int i = 0x12_34_56_FF;
 		asm{
 			mov EAX, i;
@@ -24,8 +24,8 @@
 		}
 
 		return 0;
-	}else{
-		pragma(msg, "DSTRESS{XPASS}: no inline ASM support");
-		static assert(0);
 	}
+}else{
+	pragma(msg, "DSTRESS{XPASS}: no inline ASM support");
+	static assert(0);
 }
--- a/run/a/asm_add_03_B.d	Fri Jun 30 07:17:28 2006 +0000
+++ b/run/a/asm_add_03_B.d	Sat Jul 01 23:08:00 2006 +0000
@@ -10,8 +10,8 @@
 	version = runTest;
 }
 
-int main(){
-	version(runTest){
+version(runTest){
+	int main(){
 		int i = 0x12_34_FF_FF;
 		asm{
 			mov EAX, i;
@@ -24,8 +24,8 @@
 		}
 
 		return 0;
-	}else{
-		pragma(msg, "DSTRESS{XPASS}: no inline ASM support");
-		static assert(0);
 	}
+}else{
+	pragma(msg, "DSTRESS{XPASS}: no inline ASM support");
+	static assert(0);
 }
--- a/run/a/asm_add_03_C.d	Fri Jun 30 07:17:28 2006 +0000
+++ b/run/a/asm_add_03_C.d	Sat Jul 01 23:08:00 2006 +0000
@@ -10,8 +10,8 @@
 	version = runTest;
 }
 
-int main(){
-	version(D_InlineAsm_X86){
+version(D_InlineAsm_X86){
+	int main(){
 		int i = 0x12_34_FF_FF;
 		asm{
 			mov EAX, i;
@@ -24,8 +24,8 @@
 		}
 
 		return 0;
-	}else{
-		pragma(msg, "DSTRESS{XPASS}: no inline ASM support");
-		static assert(0);
 	}
+}else{
+	pragma(msg, "DSTRESS{XPASS}: no inline ASM support");
+	static assert(0);
 }
--- a/run/a/asm_add_04_A.d	Fri Jun 30 07:17:28 2006 +0000
+++ b/run/a/asm_add_04_A.d	Sat Jul 01 23:08:00 2006 +0000
@@ -10,8 +10,8 @@
 	version = runTest;
 }
 
-int main(){
-	version(runTest){
+version(runTest){
+	int main(){
 		int i = 0x12_34_FF_FF;
 		asm{
 			mov EAX, 2;
@@ -23,8 +23,8 @@
 		}
 
 		return 0;
-	}else{
-		pragma(msg, "DSTRESS{XPASS}: no inline ASM support");
-		static assert(0);
 	}
+}else{
+	pragma(msg, "DSTRESS{XPASS}: no inline ASM support");
+	static assert(0);
 }
--- a/run/a/asm_add_04_B.d	Fri Jun 30 07:17:28 2006 +0000
+++ b/run/a/asm_add_04_B.d	Sat Jul 01 23:08:00 2006 +0000
@@ -10,8 +10,8 @@
 	version = runTest;
 }
 
-int main(){
-	version(runTest){
+version(runTest){
+	int main(){
 		ushort i = 0xFF_FF;
 		asm{
 			mov AX, 2;
@@ -23,8 +23,8 @@
 		}
 
 		return 0;
-	}else{
-		pragma(msg, "DSTRESS{XPASS}: no inline ASM support");
-		static assert(0);
 	}
+}else{
+	pragma(msg, "DSTRESS{XPASS}: no inline ASM support");
+	static assert(0);
 }
--- a/run/a/asm_add_04_C.d	Fri Jun 30 07:17:28 2006 +0000
+++ b/run/a/asm_add_04_C.d	Sat Jul 01 23:08:00 2006 +0000
@@ -10,8 +10,8 @@
 	version = runTest;
 }
 
-int main(){
-	version(runTest){
+version(runTest){
+	int main(){
 		ubyte i = 0xFF;
 		asm{
 			mov AL, 2;
@@ -23,8 +23,8 @@
 		}
 
 		return 0;
-	}else{
-		pragma(msg, "DSTRESS{XPASS}: no inline ASM support");
-		static assert(0);
 	}
+}else{
+	pragma(msg, "DSTRESS{XPASS}: no inline ASM support");
+	static assert(0);
 }
--- a/run/a/asm_add_05_A.d	Fri Jun 30 07:17:28 2006 +0000
+++ b/run/a/asm_add_05_A.d	Sat Jul 01 23:08:00 2006 +0000
@@ -10,8 +10,8 @@
 	version = runTest;
 }
 
-int main(){
-	version(runTest){
+version(runTest){
+	int main(){
 		ubyte i = 4;
 		asm{
 			mov BL, 0xFF;
@@ -25,8 +25,8 @@
 		}
 
 		return 0;
-	}else{
-		pragma(msg, "DSTRESS{XPASS}: no inline ASM support");
-		static assert(0);
 	}
+}else{
+	pragma(msg, "DSTRESS{XPASS}: no inline ASM support");
+	static assert(0);
 }
--- a/run/a/asm_add_05_B.d	Fri Jun 30 07:17:28 2006 +0000
+++ b/run/a/asm_add_05_B.d	Sat Jul 01 23:08:00 2006 +0000
@@ -10,8 +10,8 @@
 	version = runTest;
 }
 
-int main(){
-	version(runTest){
+version(runTest){
+	int main(){
 		ushort i = 4;
 		asm{
 			mov BX, 0xFF_FF;
@@ -25,8 +25,8 @@
 		}
 
 		return 0;
-	}else{
-		pragma(msg, "DSTRESS{XPASS}: no inline ASM support");
-		static assert(0);
 	}
+}else{
+	pragma(msg, "DSTRESS{XPASS}: no inline ASM support");
+	static assert(0);
 }
--- a/run/a/asm_add_05_C.d	Fri Jun 30 07:17:28 2006 +0000
+++ b/run/a/asm_add_05_C.d	Sat Jul 01 23:08:00 2006 +0000
@@ -10,8 +10,8 @@
 	version = runTest;
 }
 
-int main(){
-	version(runTest){
+version(runTest){
+	int main(){
 		uint i = 4;
 		asm{
 			mov EBX, 0xFF_FF_FF_FF;
@@ -25,8 +25,8 @@
 		}
 
 		return 0;
-	}else{
-		pragma(msg, "DSTRESS{XPASS}: no inline ASM support");
-		static assert(0);
 	}
+}else{
+	pragma(msg, "DSTRESS{XPASS}: no inline ASM support");
+	static assert(0);
 }
--- a/run/a/asm_addpd_01_A.d	Fri Jun 30 07:17:28 2006 +0000
+++ b/run/a/asm_addpd_01_A.d	Sat Jul 01 23:08:00 2006 +0000
@@ -4,40 +4,56 @@
 
 module dstress.run.a.asm_addpd_01_A;
 
-int main(){
-	version(D_InlineAsm_X86){
-		static double[2] A = [1.123, 1234.5];
-		static double[2] B = [0.0012, -2.4];
-		double[2] c;
+version(D_InlineAsm_X86){
+	version = runTest;
+}else version(D_InlineAsm_X86_64){
+	version = runTest;
+}
+
+version(runTest){
+	import addon.cpuinfo;
+	
+	int main(){
+		haveSSE2!()();
+
+		double[] a = new double[2];
+		a[0] = 1.123;
+		a[1] = 1234.5;
+
+		double[] b = new double[2];
+		b[0] = 0.0012;
+		b[1] = -2.4;
 
 		asm{
-			movdqu XMM0, A;
-			movdqu XMM1, B;
+			emms;
+			movupd XMM0, a;
+			movupd XMM1, b;
 			addpd XMM0, XMM1;
-			movdqu c, XMM0;
+			movupd b, XMM0;
+			emms;
 		}
 
-		c[0] -= 1.1242;
-		if(c[0] < 0.0){
-			c[0] = -c[0];
+		b[0] -= 1.1242;
+		if(b[0] < 0.0){
+			b[0] = -b[0];
 		}
 
-		if(c[0] > double.epsilon * 16){
+		if(b[0] > double.epsilon * 16){
 			assert(0);
 		}
 
-		c[1] -= 1232.1;
-		if(c[1] < 0.0){
-			c[1] = -c[1];
+		b[1] -= 1232.1;
+		if(b[1] < 0.0){
+			b[1] = -b[1];
 		}
 
-		if(c[1] > double.epsilon * 16){
+		if(b[1] > double.epsilon * 16){
 			assert(0);
 		}
 
 		return 0;
-	}else{
-		pragma(msg, "no Inline asm support");
-		static assert(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_cvtpd2pi_01_A.d	Sat Jul 01 23:08:00 2006 +0000
@@ -0,0 +1,42 @@
+// $HeadURL$
+// $Date$
+// $Author$
+
+module dstress.run.a.asm_cvtpd2pi_01_A;
+
+version(D_InlineAsm_X86){
+	version = runTest;
+}else version(D_InlineAsm_X86_64){
+	version = runTest;
+}
+
+version(runTest){
+	import addon.cpuinfo;
+
+	int main(){
+		haveSSE2!()();
+		haveMMX!()();
+
+		static double[2] A = [-2.0, 4.0];
+		int[2] b;
+
+		asm{
+			movupd XMM0, A;
+			cvtpd2pi MM0, XMM0;
+			movq b, MM0;
+			emms;
+		}
+
+		if(b[0] != -2){
+			assert(0);
+		}
+		if(b[1] != 4){
+			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_cvtpi2pd_01_A.d	Sat Jul 01 23:08:00 2006 +0000
@@ -0,0 +1,52 @@
+// $HeadURL$
+// $Date$
+// $Author$
+
+module dstress.run.a.asm_cvtpi2pd_01_A;
+
+version(D_InlineAsm_X86){
+	version = runTest;
+}else version(D_InlineAsm_X86_64){
+	version = runTest;
+}
+
+version(runTest){
+	import addon.cpuinfo;
+
+	int main(){
+		haveSSE2!();
+		haveMMX!();
+
+		static int[2] A = [-3, 2];
+		double[2] b;
+
+		asm{
+			movq MM0, A;
+			cvtpi2pd XMM0, MM0;
+			movupd b, XMM0;
+			emms;
+		}
+
+		b[0] += 3.0;
+		if(b[0] < 0.0){
+			b[0] = -b[0];
+		}
+		if(b[0] > b[0].epsilon * 8){
+			assert(0);
+		}
+
+
+		b[1] -= 2.0;
+		if(b[1] < 0.0){
+			b[1] = -b[1];
+		}
+		if(b[1] > b[1].epsilon * 8){
+			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_cvtpi2ps_01_A.d	Sat Jul 01 23:08:00 2006 +0000
@@ -0,0 +1,59 @@
+// $HeadURL$
+// $Date$
+// $Author$
+
+module dstress.run.a.asm_cvtpi2ps_01_A;
+
+version(D_InlineAsm_X86){
+	version = runTest;
+}else version(D_InlineAsm_X86_64){
+	version = runTest;
+}
+
+version(runTest){
+	import addon.cpuinfo;
+
+	int main(){
+		haveSSE2!();
+		haveMMX!();
+
+		static int[2] A = [-3, 2];
+		static float[4] B = [10.1f, 20.2f, 30.3f, 40.4f];
+		float[4] c;
+
+		asm{
+			movq MM0, A;
+			movups XMM0, B;
+			cvtpi2ps XMM0, MM0;
+			movups c, XMM0;
+			emms;
+		}
+
+		c[0] += 3.0f;
+		if(c[0] < 0.0f){
+			c[0] = -c[0];
+		}
+		if(c[0] > c[0].epsilon * 8){
+			assert(0);
+		}
+
+		c[1] -= 2.0f;
+		if(c[1] < 0.0f){
+			c[1] = -c[1];
+		}
+		if(c[1] > c[1].epsilon * 8){
+			assert(0);
+		}
+
+		if(c[2] != B[2]){
+			assert(0);
+		}
+		if(c[3] != B[3]){
+			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_cvtps2pi_01_A.d	Sat Jul 01 23:08:00 2006 +0000
@@ -0,0 +1,43 @@
+// $HeadURL$
+// $Date$
+// $Author$
+
+module dstress.run.a.asm_cvtps2pi_01_A;
+
+version(D_InlineAsm_X86){
+	version = runTest;
+}else version(D_InlineAsm_X86_64){
+	version = runTest;
+}
+
+version(runTest){
+	import addon.cpuinfo;
+
+	int main(){
+		haveSSE2!();
+		haveMMX!();
+
+		static float[4] A = [1.0f, 2.0f, 3.0f, 4.0f];
+		int[2] b;
+
+		asm{
+			movups XMM0, A;
+			cvtps2pi MM0, XMM0;
+			movq b, MM0;
+			emms;
+		}
+
+		if(b[0] != 1){
+			assert(0);
+		}
+
+		if(b[1] != 2){
+			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_cvttpd2pi_01_A.d	Sat Jul 01 23:08:00 2006 +0000
@@ -0,0 +1,42 @@
+// $HeadURL$
+// $Date$
+// $Author$
+
+module dstress.run.a.asm_cvttpd2pi_01_A;
+
+version(D_InlineAsm_X86){
+	version = runTest;
+}else version(D_InlineAsm_X86_64){
+	version = runTest;
+}
+
+version(runTest){
+	import addon.cpuinfo;
+
+	int main(){
+		haveSSE2!()();
+		haveMMX!()();
+
+		static double[2] A = [-2.0, 4.0];
+		int[2] b;
+
+		asm{
+			movupd XMM0, A;
+			cvttpd2pi MM0, XMM0;
+			movq b, MM0;
+			emms;
+		}
+
+		if(b[0] != -2){
+			assert(0);
+		}
+		if(b[1] != 4){
+			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_cvttps2pi_01_A.d	Sat Jul 01 23:08:00 2006 +0000
@@ -0,0 +1,43 @@
+// $HeadURL$
+// $Date$
+// $Author$
+
+module dstress.run.a.asm_cvttps2pi_01_A;
+
+version(D_InlineAsm_X86){
+	version = runTest;
+}else version(D_InlineAsm_X86_64){
+	version = runTest;
+}
+
+version(runTest){
+	import addon.cpuinfo;
+
+	int main(){
+		haveSSE2!();
+		haveMMX!();
+
+		static float[4] A = [1.0f, 2.0f, 3.0f, 4.0f];
+		int[2] b;
+
+		asm{
+			movups XMM0, A;
+			cvttps2pi MM0, XMM0;
+			movq b, MM0;
+			emms;
+		}
+
+		if(b[0] != 1){
+			assert(0);
+		}
+
+		if(b[1] != 2){
+			assert(0);
+		}
+
+		return 0;
+	}
+}else{
+	pragma(msg, "DSTRESS{XPASS}: no inline ASM support");
+	static assert(0);
+}
--- a/run/a/asm_movq_02_A.d	Fri Jun 30 07:17:28 2006 +0000
+++ b/run/a/asm_movq_02_A.d	Sat Jul 01 23:08:00 2006 +0000
@@ -6,6 +6,8 @@
 // @date@	2006-05-26
 // @uri@	news:bug-173-3@http.d.puremagic.com/bugzilla
 
+// __DSTRESS_TORTURE_BLOCK__ -fPIC
+
 module dstress.run.a.asm_movq_02_A;
 
 version(D_InlineAsm_X86){
--- a/run/a/asm_movq_02_B.d	Fri Jun 30 07:17:28 2006 +0000
+++ b/run/a/asm_movq_02_B.d	Sat Jul 01 23:08:00 2006 +0000
@@ -6,6 +6,8 @@
 // @date@	2006-05-26
 // @uri@	news:bug-173-3@http.d.puremagic.com/bugzilla
 
+// __DSTRESS_TORTURE_BLOCK__ -fPIC
+
 module dstress.run.a.asm_movq_02_B;
 
 version(D_InlineAsm_X86){
--- a/run/a/asm_movq_02_C.d	Fri Jun 30 07:17:28 2006 +0000
+++ b/run/a/asm_movq_02_C.d	Sat Jul 01 23:08:00 2006 +0000
@@ -6,6 +6,8 @@
 // @date@	2006-05-26
 // @uri@	news:bug-173-3@http.d.puremagic.com/bugzilla
 
+// __DSTRESS_TORTURE_BLOCK__ -fPIC
+
 module dstress.run.a.asm_movq_02_C;
 
 version(D_InlineAsm_X86){
--- a/run/a/asm_movq_02_D.d	Fri Jun 30 07:17:28 2006 +0000
+++ b/run/a/asm_movq_02_D.d	Sat Jul 01 23:08:00 2006 +0000
@@ -6,6 +6,8 @@
 // @date@	2006-05-26
 // @uri@	news:bug-173-3@http.d.puremagic.com/bugzilla
 
+// __DSTRESS_TORTURE_BLOCK__ -fPIC
+
 module dstress.run.a.asm_movq_02_D;
 
 version(D_InlineAsm_X86){
--- a/run/a/asm_movq_02_E.d	Fri Jun 30 07:17:28 2006 +0000
+++ b/run/a/asm_movq_02_E.d	Sat Jul 01 23:08:00 2006 +0000
@@ -6,6 +6,8 @@
 // @date@	2006-05-26
 // @uri@	news:bug-173-3@http.d.puremagic.com/bugzilla
 
+// __DSTRESS_TORTURE_BLOCK__ -fPIC
+
 module dstress.run.a.asm_movq_02_E;
 
 version(D_InlineAsm_X86){
--- a/run/a/asm_movq_02_F.d	Fri Jun 30 07:17:28 2006 +0000
+++ b/run/a/asm_movq_02_F.d	Sat Jul 01 23:08:00 2006 +0000
@@ -6,6 +6,8 @@
 // @date@	2006-05-26
 // @uri@	news:bug-173-3@http.d.puremagic.com/bugzilla
 
+// __DSTRESS_TORTURE_BLOCK__ -fPIC
+
 module dstress.run.a.asm_movq_02_F;
 
 version(D_InlineAsm_X86){
--- a/run/a/asm_movq_02_G.d	Fri Jun 30 07:17:28 2006 +0000
+++ b/run/a/asm_movq_02_G.d	Sat Jul 01 23:08:00 2006 +0000
@@ -6,6 +6,8 @@
 // @date@	2006-05-26
 // @uri@	news:bug-173-3@http.d.puremagic.com/bugzilla
 
+// __DSTRESS_TORTURE_BLOCK__ -fPIC
+
 module dstress.run.a.asm_movq_02_F;
 
 version(D_InlineAsm_X86){
--- a/run/a/asm_movq_02_H.d	Fri Jun 30 07:17:28 2006 +0000
+++ b/run/a/asm_movq_02_H.d	Sat Jul 01 23:08:00 2006 +0000
@@ -6,6 +6,8 @@
 // @date@	2006-05-26
 // @uri@	news:bug-173-3@http.d.puremagic.com/bugzilla
 
+// __DSTRESS_TORTURE_BLOCK__ -fPIC
+
 module dstress.run.a.asm_movq_02_H;
 
 version(D_InlineAsm_X86){
--- a/run/a/asm_movq_02_I.d	Fri Jun 30 07:17:28 2006 +0000
+++ b/run/a/asm_movq_02_I.d	Sat Jul 01 23:08:00 2006 +0000
@@ -6,6 +6,8 @@
 // @date@	2006-05-26
 // @uri@	news:bug-173-3@http.d.puremagic.com/bugzilla
 
+// __DSTRESS_TORTURE_BLOCK__ -fPIC
+
 module dstress.run.a.asm_movq_02_I;
 
 version(D_InlineAsm_X86){
--- a/run/a/asm_movq_02_J.d	Fri Jun 30 07:17:28 2006 +0000
+++ b/run/a/asm_movq_02_J.d	Sat Jul 01 23:08:00 2006 +0000
@@ -6,6 +6,8 @@
 // @date@	2006-05-26
 // @uri@	news:bug-173-3@http.d.puremagic.com/bugzilla
 
+// __DSTRESS_TORTURE_BLOCK__ -fPIC
+
 module dstress.run.a.asm_movq_02_J;
 
 version(D_InlineAsm_X86){
--- a/run/a/asm_movq_02_K.d	Fri Jun 30 07:17:28 2006 +0000
+++ b/run/a/asm_movq_02_K.d	Sat Jul 01 23:08:00 2006 +0000
@@ -6,6 +6,8 @@
 // @date@	2006-05-26
 // @uri@	news:bug-173-3@http.d.puremagic.com/bugzilla
 
+// __DSTRESS_TORTURE_BLOCK__ -fPIC
+
 module dstress.run.a.asm_movq_02_K;
 
 version(D_InlineAsm_X86){
--- a/run/a/asm_movq_02_L.d	Fri Jun 30 07:17:28 2006 +0000
+++ b/run/a/asm_movq_02_L.d	Sat Jul 01 23:08:00 2006 +0000
@@ -6,6 +6,8 @@
 // @date@	2006-05-26
 // @uri@	news:bug-173-3@http.d.puremagic.com/bugzilla
 
+// __DSTRESS_TORTURE_BLOCK__ -fPIC
+
 module dstress.run.a.asm_movq_02_L;
 
 version(D_InlineAsm_X86){
--- a/run/a/asm_movq_02_M.d	Fri Jun 30 07:17:28 2006 +0000
+++ b/run/a/asm_movq_02_M.d	Sat Jul 01 23:08:00 2006 +0000
@@ -6,6 +6,8 @@
 // @date@	2006-05-26
 // @uri@	news:bug-173-3@http.d.puremagic.com/bugzilla
 
+// __DSTRESS_TORTURE_BLOCK__ -fPIC
+
 module dstress.run.a.asm_movq_02_L;
 
 version(D_InlineAsm_X86){
--- a/run/a/asm_movq_02_N.d	Fri Jun 30 07:17:28 2006 +0000
+++ b/run/a/asm_movq_02_N.d	Sat Jul 01 23:08:00 2006 +0000
@@ -6,6 +6,8 @@
 // @date@	2006-05-26
 // @uri@	news:bug-173-3@http.d.puremagic.com/bugzilla
 
+// __DSTRESS_TORTURE_BLOCK__ -fPIC
+
 module dstress.run.a.asm_movq_02_N;
 
 version(D_InlineAsm_X86){
--- a/run/a/asm_movq_02_O.d	Fri Jun 30 07:17:28 2006 +0000
+++ b/run/a/asm_movq_02_O.d	Sat Jul 01 23:08:00 2006 +0000
@@ -6,6 +6,8 @@
 // @date@	2006-05-26
 // @uri@	news:bug-173-3@http.d.puremagic.com/bugzilla
 
+// __DSTRESS_TORTURE_BLOCK__ -fPIC
+
 module dstress.run.a.asm_movq_02_O;
 
 version(D_InlineAsm_X86){
--- a/run/a/asm_movq_02_P.d	Fri Jun 30 07:17:28 2006 +0000
+++ b/run/a/asm_movq_02_P.d	Sat Jul 01 23:08:00 2006 +0000
@@ -6,6 +6,8 @@
 // @date@	2006-05-26
 // @uri@	news:bug-173-3@http.d.puremagic.com/bugzilla
 
+// __DSTRESS_TORTURE_BLOCK__ -fPIC
+
 module dstress.run.a.asm_movq_02_P;
 
 version(D_InlineAsm_X86){
--- a/run/a/asm_pfsubr_01_A.d	Fri Jun 30 07:17:28 2006 +0000
+++ b/run/a/asm_pfsubr_01_A.d	Sat Jul 01 23:08:00 2006 +0000
@@ -16,13 +16,19 @@
 	int main(){
 		have3DNow!()();
 
-		const float[2] A = [6.0f, 2.0f];
-		const float[2] B = [2.0f, -1.0f];
-		float[2] c;
+		float[] a = new	float[2];
+		a[0] = 6.0f;
+		a[1] = 2.0f;
+
+		float[] b = new float[2];
+		b[0] = 2.0f;
+		b[1] = 1.0f;
+
+		float[] c = new float[2];
 
 		asm{
-			movq MM0, A;
-			movq MM1, B;
+			movq MM0, a;
+			movq MM1, b;
 			pfsubr MM0, MM1;
 			movq c, MM0;
 			emms;
--- a/run/a/asm_pi2fd_01_A.d	Fri Jun 30 07:17:28 2006 +0000
+++ b/run/a/asm_pi2fd_01_A.d	Sat Jul 01 23:08:00 2006 +0000
@@ -16,11 +16,14 @@
 	int main(){
 		have3DNow!()();
 
-		const int[2] A = [6, 2];
-		float[2] b;
+		int[] a = new int[2];
+		a[0] = 6;
+		a[1] = 2;
+
+		float[] b = new float[2];
 
 		asm{
-			movq MM1, A;
+			movq MM1, a;
 			pi2fd MM0, MM1;
 			movq b, MM0;
 			emms;
--- a/run/a/asm_pi2fd_01_B.d	Fri Jun 30 07:17:28 2006 +0000
+++ b/run/a/asm_pi2fd_01_B.d	Sat Jul 01 23:08:00 2006 +0000
@@ -16,11 +16,14 @@
 	int main(){
 		have3DNow!()();
 
-		const int[2] A = [6, 2];
-		float[2] b;
+		int[] a = new int[2];
+		a[0] = 6;
+		a[1] = 2;
+		
+		float[] b = new float[2];
 
 		asm{
-			pi2fd MM0, A;
+			pi2fd MM0, a;
 			movq b, MM0;
 			emms;
 		}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/run/a/asm_pmulhrw_01_A.d	Sat Jul 01 23:08:00 2006 +0000
@@ -0,0 +1,40 @@
+// $HeadURL$
+// $Date$
+// $Author$
+
+module dstress.run.a.asm_pmulhrw_01_A;
+
+version(D_InlineAsm_X86){
+	version = runTest;
+}else version(D_InlineAsm_X86_64){
+	version = runTest;
+}
+
+
+version(runTest){
+	import addon.cpuinfo;
+
+	int main(){
+		have3DNow!()();
+
+		ulong a = 0xD250_5321_7007_FFFF;
+		ulong b = 0x8807_EC22_7FFE_FFFF;
+		ulong c;
+
+		asm{
+			movq MM0, a;
+			movq MM1, b;
+			pmulhrw MM0, MM1;
+			movq c, MM0;
+		}
+
+		if(c != 0x1569_F98C_3803_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/o/opIn_r_01_A.d	Sat Jul 01 23:08:00 2006 +0000
@@ -0,0 +1,20 @@
+// $HeadURL$
+// $Date$
+// $Author$
+
+module dstress.run.o.opIn_r_01_A;
+
+struct S{
+	int opIn_r(int i){
+		return i+1;
+	}
+}
+
+int main(){
+	S s;
+	if(3 in s != 4){
+		assert(0);
+	}
+
+	return 0;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/run/o/opIn_r_01_B.d	Sat Jul 01 23:08:00 2006 +0000
@@ -0,0 +1,20 @@
+// $HeadURL$
+// $Date$
+// $Author$
+
+module dstress.run.o.opIn_r_01_B;
+
+class C{
+	int opIn_r(int i){
+		return i+1;
+	}
+}
+
+int main(){
+	C c = new C();
+	if(3 in c != 4){
+		assert(0);
+	}
+
+	return 0;
+}
--- a/run/s/scope_06_K.d	Fri Jun 30 07:17:28 2006 +0000
+++ b/run/s/scope_06_K.d	Sat Jul 01 23:08:00 2006 +0000
@@ -4,6 +4,9 @@
 
 module dstress.run.s.scope_06_K;
 
+class X{
+}
+
 int main(){
 	int a;
 	
@@ -17,7 +20,7 @@
 		}
 
 		scope(success){
-			return 1;
+			assert(0);
 		}
 
 		scope(exit){
@@ -34,8 +37,8 @@
 			a = 10;
 		}
 
-		throw new Exception("msg");
-	}catch(Exception e){
+		throw new X();
+	}catch(X x){
 		if(a != 12){
 			assert(0);
 		}
@@ -44,5 +47,4 @@
 	}
 
 	assert(0);
-
 }
--- a/run/s/scope_06_L.d	Fri Jun 30 07:17:28 2006 +0000
+++ b/run/s/scope_06_L.d	Sat Jul 01 23:08:00 2006 +0000
@@ -4,6 +4,9 @@
 
 module dstress.run.s.scope_06_L;
 
+class X{
+}
+
 int main(){
 	int a;
 	
@@ -25,7 +28,7 @@
 		}
 
 		scope(success){
-			return 1;
+			assert(0);
 		}
 
 		
@@ -35,8 +38,8 @@
 			a = 10;
 		}
 
-		throw new Exception("msg");
-	}catch(Exception e){
+		throw new X();
+	}catch(X x){
 		if(a != 12){
 			assert(0);
 		}
@@ -45,5 +48,4 @@
 	}
 
 	assert(0);
-
 }
--- a/run/s/scope_06_M.d	Fri Jun 30 07:17:28 2006 +0000
+++ b/run/s/scope_06_M.d	Sat Jul 01 23:08:00 2006 +0000
@@ -4,6 +4,9 @@
 
 module dstress.run.s.scope_06_M;
 
+class X{
+}
+
 int main(){
 	int a;
 	
@@ -31,10 +34,10 @@
 		}
 
 		scope(success){
-			return 1;
+			assert(0);
 		}
 
-		throw new Exception("msg");
+		throw new X();
 	}catch(Exception e){
 		if(a != 12){
 			assert(0);
--- a/run/s/scope_06_N.d	Fri Jun 30 07:17:28 2006 +0000
+++ b/run/s/scope_06_N.d	Sat Jul 01 23:08:00 2006 +0000
@@ -4,6 +4,9 @@
 
 module dstress.run.s.scope_06_N;
 
+class X{
+}
+
 int main(){
 	int a;
 	
@@ -27,12 +30,12 @@
 		}
 
 
-		throw new Exception("msg");
+		throw new X();
 
 		scope(failure){
-			return 1;
+			assert(0);
 		}
-	}catch(Exception e){
+	}catch(X x){
 		if(a != 11){
 			assert(0);
 		}
--- a/run/s/scope_06_O.d	Fri Jun 30 07:17:28 2006 +0000
+++ b/run/s/scope_06_O.d	Sat Jul 01 23:08:00 2006 +0000
@@ -4,6 +4,9 @@
 
 module dstress.run.s.scope_06_O;
 
+class X{
+}
+
 int main(){
 	int a;
 	
@@ -27,12 +30,12 @@
 		}
 
 
-		throw new Exception("msg");
+		throw new X();
 
 		scope(exit){
-			return 1;
+			assert(0);
 		}
-	}catch(Exception e){
+	}catch(X x){
 		if(a != 11){
 			assert(0);
 		}