changeset 1125:a929acac9127

various test case fixes
author thomask
date Wed, 06 Sep 2006 05:07:33 +0000
parents 6d6c3e53a7a1
children 785c8eaa48b4
files run/a/asm_divpd_01_A.d run/a/asm_divps_01_A.d run/a/asm_divsd_01_A.d run/a/asm_divss_01_A.d run/a/asm_fnsave_01.d run/a/asm_fsave_01.d run/a/asm_haddpd_01_A.d run/a/asm_haddps_01_A.d run/a/asm_hsubpd_01_A.d run/a/asm_hsubps_01_A.d run/a/asm_lddqu_01.d run/a/asm_maxpd_01_A.d run/a/asm_movq_01_C.d run/a/asm_pcmpgtb_01_A.d run/a/asm_pfmin_01_A.d run/a/asm_pfmin_01_B.d run/a/asm_pfmul_01_A.d run/a/asm_pfmul_01_B.d run/a/asm_pmaxub_01_A.d run/a/asm_pminsub_01_A.d run/a/asm_por_02_A.d run/a/asm_pxor_02_A.d run/f/foreach_33_A.d run/f/foreach_33_B.d run/f/foreach_33_C.d run/for_04.d run/for_05.d run/foreach_24.d run/v/variadic_argument_07_A.d run/v/variadic_argument_07_B.d run/v/variadic_argument_07_C.d run/v/variadic_argument_07_D.d run/v/variadic_argument_07_E.d run/v/variadic_argument_07_F.d run/v/variadic_argument_07_G.d run/v/void_02_C.d run/variadic_argument_04.d run/w/with_13_B.d run/with_12.d run/with_13.d
diffstat 40 files changed, 510 insertions(+), 173 deletions(-) [+]
line wrap: on
line diff
--- a/run/a/asm_divpd_01_A.d	Sun Sep 03 09:20:22 2006 +0000
+++ b/run/a/asm_divpd_01_A.d	Wed Sep 06 05:07:33 2006 +0000
@@ -16,21 +16,24 @@
 	int main(){
 		haveSSE2!()();
 
-		double[] a = new double[2];
+		double* a = new double[2];
 		a[0] = -16.0;
 		a[1] = 12.0;
 
-		double[] b = new double[2];
+		double* b = new double[2];
 		b[0] = 2.0;
 		b[1] = 3.0;
 
-		double[] c = new double[2];
+		double* c = new double[2];
 
 		asm{
-			movupd XMM0, a;
-			movupd XMM1, b;
+			mov EAX, a;
+			movupd XMM0, [EAX];
+			mov EAX, b;
+			movupd XMM1, [EAX];
 			divpd XMM0, XMM1;
-			movupd c, XMM0;
+			mov EAX, c;
+			movupd [EAX], XMM0;
 		}
 
 		c[0] += 8.0;
--- a/run/a/asm_divps_01_A.d	Sun Sep 03 09:20:22 2006 +0000
+++ b/run/a/asm_divps_01_A.d	Wed Sep 06 05:07:33 2006 +0000
@@ -14,25 +14,28 @@
 	import addon.cpuinfo;
 
 	int main(){
-		float[] a = new float[4];
+		float* a = new float[4];
 		a[0] = -16.0f;
 		a[1] = 12.0f;
 		a[2] = 3.3f;
 		a[3] = 0.0f;
 
-		float[] b = new float[4];
+		float* b = new float[4];
 		b[0] = 2.0f;
 		b[1] = 3.0f;
 		b[2] = 1.0f;
 		b[3] = 9.7f;
 
-		float[] c = new float[4];
+		float* c = new float[4];
 
 		asm{
-			movups XMM0, a;
-			movups XMM1, b;
+			mov EAX, a;
+			movups XMM0, [EAX];
+			mov EAX, b;
+			movups XMM1, [EAX];
 			divps XMM0, XMM1;
-			movups c, XMM0;
+			mov EAX, c;
+			movups [EAX], XMM0;
 		}
 
 		c[0] += 8.0f;
--- a/run/a/asm_divsd_01_A.d	Sun Sep 03 09:20:22 2006 +0000
+++ b/run/a/asm_divsd_01_A.d	Wed Sep 06 05:07:33 2006 +0000
@@ -14,21 +14,24 @@
 	import addon.cpuinfo;
 
 	int main(){
-		double[] a = new double[2];
+		double* a = new double[2];
 		a[0] = -16.0f;
 		a[1] = 12.0;
 
-		double[] b = new double[2];
+		double* b = new double[2];
 		b[0] = 2.0f;
 		b[1] = 3.0f;
 
-		double[] c = new double[2];
+		double* c = new double[2];
 
 		asm{
-			movupd XMM0, a;
-			movupd XMM1, b;
+			mov EAX, a;
+			movupd XMM0, [EAX];
+			mov EAX, b;
+			movupd XMM1, [EAX];
 			divsd XMM0, XMM1;
-			movupd c, XMM0;
+			mov EAX, c;
+			movupd [EAX], XMM0;
 		}
 
 		c[0] += 8.0f;
--- a/run/a/asm_divss_01_A.d	Sun Sep 03 09:20:22 2006 +0000
+++ b/run/a/asm_divss_01_A.d	Wed Sep 06 05:07:33 2006 +0000
@@ -16,25 +16,28 @@
 	int main(){
 		haveSSE!()();
 
-		float[] a = new float[4];
+		float* a = new float[4];
 		a[0] = -16.0f;
 		a[1] = 12.0f;
 		a[2] = 3.3f;
 		a[3] = 9.0f;
 
-		float[] b = new float[4];
+		float* b = new float[4];
 		b[0] = 2.0f;
 		b[1] = 3.0f;
 		b[2] = 1.0f;
 		b[3] = 2.0f;
 
-		float[] c = new float[4];
+		float* c = new float[4];
 
 		asm{
-			movups XMM0, a;
-			movups XMM1, b;
+			mov EAX, a;
+			movups XMM0, [EAX];
+			mov EAX, b;
+			movups XMM1, [EAX];
 			divss XMM0, XMM1;
-			movups c, XMM0;
+			mov EAX, c;
+			movups [EAX], XMM0;
 		}
 
 		c[0] += 8.0f;
--- a/run/a/asm_fnsave_01.d	Sun Sep 03 09:20:22 2006 +0000
+++ b/run/a/asm_fnsave_01.d	Wed Sep 06 05:07:33 2006 +0000
@@ -24,10 +24,11 @@
 			static assert(0);
 		}
 
-		ubyte[] state = new ubyte[stateSize];
+		ubyte* state = new ubyte[stateSize];
 
 		asm{
-			fnsave state;
+			mov EAX, state;
+			fnsave [EAX];
 		}
 
 		return 0;
--- a/run/a/asm_fsave_01.d	Sun Sep 03 09:20:22 2006 +0000
+++ b/run/a/asm_fsave_01.d	Wed Sep 06 05:07:33 2006 +0000
@@ -24,10 +24,11 @@
 			static assert(0);
 		}
 
-		ubyte[] state = new ubyte[stateSize];
+		ubyte* state = new ubyte[stateSize];
 
 		asm{
-			fsave state;
+			mov EAX, state;
+			fsave [EAX];
 		}
 
 		return 0;
--- a/run/a/asm_haddpd_01_A.d	Sun Sep 03 09:20:22 2006 +0000
+++ b/run/a/asm_haddpd_01_A.d	Wed Sep 06 05:07:33 2006 +0000
@@ -16,21 +16,24 @@
 	int main(){
 		haveSSE3!()();
 
-		double[] a = new double[2];
+		double* a = new double[2];
 		a[0] = 7.0;
 		a[1] = 11.0;
 
-		double[] b = new double[2];
+		double* b = new double[2];
 		b[0] = 2.0;
 		b[1] = 3.0;
 
-		double[] c = new double[2];
+		double* c = new double[2];
 
 		asm{
-			movupd XMM0, a;
-			movupd XMM1, b;
+			mov EAX, a;
+			movupd XMM0, [EAX];
+			mov EAX, b;
+			movupd XMM1, [EAX];
 			haddpd XMM0, XMM1;
-			movupd c, XMM0;
+			mov EAX, c;
+			movupd [EAX], XMM0;
 		}
 
 		c[0] -= 18.0;
--- a/run/a/asm_haddps_01_A.d	Sun Sep 03 09:20:22 2006 +0000
+++ b/run/a/asm_haddps_01_A.d	Wed Sep 06 05:07:33 2006 +0000
@@ -16,25 +16,28 @@
 	int main(){
 		haveSSE3!()();
 
-		float[] a = new float[4];
+		float* a = new float[4];
 		a[0] = 6.1f;
 		a[1] = 7.2f;
 		a[2] = 8.3f;
 		a[3] = 9.4f;
 
-		float[] b = new float[4];
+		float* b = new float[4];
 		b[0] = 1.0f;
 		b[1] = 2.0f;
 		b[2] = 3.0f;
 		b[3] = 4.0f;
 
-		float[] c = new float[4];
+		float* c = new float[4];
 
 		asm{
-			movups XMM0, a;
-			movups XMM1, b;
+			mov EAX, a;
+			movups XMM0, [EAX];
+			mov EAX, b;
+			movups XMM1, [EAX];
 			haddps XMM0, XMM1;
-			movups c, XMM0;
+			mov EAX, c;
+			movups [EAX], XMM0;
 		}
 
 		c[0] -= 13.3f;
--- a/run/a/asm_hsubpd_01_A.d	Sun Sep 03 09:20:22 2006 +0000
+++ b/run/a/asm_hsubpd_01_A.d	Wed Sep 06 05:07:33 2006 +0000
@@ -16,21 +16,24 @@
 	int main(){
 		haveSSE3!()();
 
-		double[] a = new double[2];
+		double* a = new double[2];
 		a[0] = 2.0;
 		a[1] = 3.0;
 
-		double[] b = new double[2];
+		double* b = new double[2];
 		b[0] = 1.0;
 		b[1] = 4.0;
 
-		double[] c = new double[2];
+		double* c = new double[2];
 
 		asm{
-			movupd XMM0, a;
-			movupd XMM1, b;
+			mov EAX, a;
+			movupd XMM0, [EAX];
+			mov EAX, b;
+			movupd XMM1, [EAX];
 			hsubpd XMM0, XMM1;
-			movupd c, XMM0;
+			mov EAX, c;
+			movupd [EAX], XMM0;
 		}
 
 		c[0] += 1.0;
--- a/run/a/asm_hsubps_01_A.d	Sun Sep 03 09:20:22 2006 +0000
+++ b/run/a/asm_hsubps_01_A.d	Wed Sep 06 05:07:33 2006 +0000
@@ -16,25 +16,28 @@
 	int main(){
 		haveSSE3!()();
 
-		float[] a = new float[4];
+		float* a = new float[4];
 		a[0] = 2.0f;
 		a[1] = 3.0f;
 		a[2] = 6.0f;
 		a[3] = 8.0f;
 
-		float[] b = new float[4];
+		float* b = new float[4];
 		b[0] = 1.0f;
 		b[1] = 4.0f;
 		b[2] = 5.0f;
 		b[3] = 9.0f;
 
-		float[] c = new float[4];
+		float* c = new float[4];
 
 		asm{
-			movups XMM0, a;
-			movups XMM1, b;
+			mov EAX, a;
+			movups XMM0, [EAX];
+			mov EAX, b;
+			movups XMM1, [EAX];
 			hsubps XMM0, XMM1;
-			movups c, XMM0;
+			mov EAX, c;
+			movups [EAX], XMM0;
 		}
 
 		c[0] += 1.0f;
--- a/run/a/asm_lddqu_01.d	Sun Sep 03 09:20:22 2006 +0000
+++ b/run/a/asm_lddqu_01.d	Wed Sep 06 05:07:33 2006 +0000
@@ -16,7 +16,7 @@
 	int main(){
 		haveSSE3!()();
 
-		ubyte[] a = new ubyte[16];
+		ubyte* a = new ubyte[16];
 		a[0] = 1;
 		a[1] = 2;
 		a[2] = 3;
@@ -34,18 +34,16 @@
 		a[14] = 15;
 		a[15] = 16;
 
-		ubyte[] b = new ubyte[16];
+		ubyte* b = new ubyte[16];
 
 		asm{
-			lddqu XMM0, a;
-			movdqu b, XMM0;
+			mov EAX, a;
+			lddqu XMM0, [EAX];
+			mov EAX, b;
+			movdqu [EAX], XMM0;
 		}
 
-		if(a.length != b.length){
-			assert(0);
-		}
-
-		for(size_t i = 0; i < a.length; i++){
+		for(size_t i = 0; i < 16; i++){
 			if(a[i] != b[i]){
 				assert(0);
 			}
--- a/run/a/asm_maxpd_01_A.d	Sun Sep 03 09:20:22 2006 +0000
+++ b/run/a/asm_maxpd_01_A.d	Wed Sep 06 05:07:33 2006 +0000
@@ -16,21 +16,24 @@
 	int main(){
 		haveSSE2!()();
 
-		double[] a = new double[2];
+		double* a = new double[2];
 		a[0] = 2.0;
 		a[1] = 3.0;
 
-		double[] b = new double[2];
+		double* b = new double[2];
 		b[0] = 1.0;
 		b[1] = 4.0;
 
-		double[] c = new double[2];
+		double* c = new double[2];
 
 		asm{
-			movupd XMM0, a;
-			movupd XMM1, b;
+			mov EAX, a;
+			movupd XMM0, [EAX];
+			mov EAX, b;
+			movupd XMM1, [EAX];
 			maxpd XMM0, XMM1;
-			movupd c, XMM0;
+			mov EAX, c;
+			movupd [EAX], XMM0;
 		}
 
 		if(c[0] != 2.0){
--- a/run/a/asm_movq_01_C.d	Sun Sep 03 09:20:22 2006 +0000
+++ b/run/a/asm_movq_01_C.d	Wed Sep 06 05:07:33 2006 +0000
@@ -16,10 +16,15 @@
 	int main(){
 		haveSSE2!()();
 
-		static ulong[2] a = [0x1234_ABCD_5678_EF90_LU, 0x1122_2222_5555_FFFF_LU];
-		static ulong[2] b = [0x1000_1111_5678_EF90_LU, 0x1122_5566_77AA_FFFF_LU];
+		ulong[] a = new ulong[2];
+		a[0] = 0x1234_ABCD_5678_EF90_LU;
+		a[1] = 0x1122_2222_5555_FFFF_LU;
+		
+		ulong[] b = new ulong[2];
+		b[0] = 0x1000_1111_5678_EF90_LU;
+		b[1] = 0x1122_5566_77AA_FFFF_LU;
 
-		ulong[2] c;
+		ulong[] c = new ulong[2];
 
 		asm{
 			movdqu XMM0, a;
--- a/run/a/asm_pcmpgtb_01_A.d	Sun Sep 03 09:20:22 2006 +0000
+++ b/run/a/asm_pcmpgtb_01_A.d	Wed Sep 06 05:07:33 2006 +0000
@@ -12,17 +12,18 @@
 
 version(runTest){
 	import addon.cpuinfo;
+	import addon.dyn_array;
 
 	int main(){
 		haveSSE2!()();
 
-		static byte[16] A = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16];
-		static byte[16] B = [1, 3, 2, 4, 6, 5, 7, 9, 8, 10, 12, 11, 13, 16, 15, 14];
-		ubyte[16] c;
+		byte[] a = dyn_array!(byte)(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16);
+		byte[] b = dyn_array!(byte)(1, 3, 2, 4, 6, 5, 7, 9, 8, 10, 12, 11, 13, 16, 15, 14);
+		ubyte[] c = new ubyte[16];
 
 		asm{
-			movdqu XMM0, A;
-			movdqu XMM1, B;
+			movdqu XMM0, a;
+			movdqu XMM1, b;
 			pcmpgtb XMM0, XMM1;
 			movdqu c, XMM0;
 		}
--- a/run/a/asm_pfmin_01_A.d	Sun Sep 03 09:20:22 2006 +0000
+++ b/run/a/asm_pfmin_01_A.d	Wed Sep 06 05:07:33 2006 +0000
@@ -16,21 +16,28 @@
 	int main(){
 		have3DNow!()();
 
-		const float[2] A = [-123.0f, 457.0f];
-		const float[2] B = [123.0f, 456.0f];
-		float[2] c;
+		float[] a = new float[2];
+		a[0] = -123.0f;
+		a[1] = 789.0f;
+		
+		float[] b = new float[2];
+		b[0] = 123.0f;
+		b[1] = 456.0f;
+		
+		float[] c = new float[2];
 
 		asm{
-			movq MM0, A;
-			pfmin MM0, B;
+			emms;
+			movq MM0, a;
+			pfmin MM0, b;
 			movq c, MM0;
 			emms;
 		}
 
-		if(c[0] != A[0]){
+		if(c[0] != a[0]){
 			assert(0);
 		}
-		if(c[1] != B[1]){
+		if(c[1] != b[1]){
 			assert(0);
 		}
 
--- a/run/a/asm_pfmin_01_B.d	Sun Sep 03 09:20:22 2006 +0000
+++ b/run/a/asm_pfmin_01_B.d	Wed Sep 06 05:07:33 2006 +0000
@@ -16,22 +16,28 @@
 	int main(){
 		have3DNow!()();
 
-		const float[2] A = [-123.0f, 457.0f];
-		const float[2] B = [123.0f, 456.0f];
-		float[2] c;
+		float[] a = new float[2];
+		a[0] = -123.0f;
+		a[1] = 789.0f;
+		
+		float[] b = new float[2];
+		b[0] = 123.0f;
+		b[1] = 456.0f;
+		
+		float[] c = new float[2];
 
 		asm{
-			movq MM0, A;
-			movq MM1, B;
+			movq MM0, a;
+			movq MM1, b;
 			pfmin MM0, MM1;
 			movq c, MM0;
 			emms;
 		}
 
-		if(c[0] != A[0]){
+		if(c[0] != a[0]){
 			assert(0);
 		}
-		if(c[1] != B[1]){
+		if(c[1] != b[1]){
 			assert(0);
 		}
 
--- a/run/a/asm_pfmul_01_A.d	Sun Sep 03 09:20:22 2006 +0000
+++ b/run/a/asm_pfmul_01_A.d	Wed Sep 06 05:07:33 2006 +0000
@@ -16,13 +16,19 @@
 	int main(){
 		have3DNow!()();
 
-		const float[2] A = [-3.0f, 7.0f];
-		const float[2] B = [2.0f, 8.0f];
-		float[2] c;
+		float[] a = new float[2];
+		a[0] = -3.0f;
+		a[1] = 7.0f;
+		
+		float[] b = new float[2];
+		b[0] = 2.0f;
+		b[1] = 8.0f;
+		
+		float[] c = new float[2];
 
 		asm{
-			movq MM0, A;
-			pfmul MM0, B;
+			movq MM0, a;
+			pfmul MM0, b;
 			movq c, MM0;
 			emms;
 		}
--- a/run/a/asm_pfmul_01_B.d	Sun Sep 03 09:20:22 2006 +0000
+++ b/run/a/asm_pfmul_01_B.d	Wed Sep 06 05:07:33 2006 +0000
@@ -16,13 +16,19 @@
 	int main(){
 		have3DNow!()();
 
-		const float[2] A = [-3.0f, 7.0f];
-		const float[2] B = [2.0f, 8.0f];
-		float[2] c;
+		float[] a = new float[2];
+		a[0] = -3.0f;
+		a[1] = 7.0f;
+		
+		float[] b = new float[2];
+		b[0] = 2.0f;
+		b[1] = 8.0f;
+		
+		float[] c = new float[2];
 
 		asm{
-			movq MM0, A;
-			movq MM1, B;
+			movq MM0, a;
+			movq MM1, b;
 			pfmul MM0, MM1;
 			movq c, MM0;
 			emms;
--- a/run/a/asm_pmaxub_01_A.d	Sun Sep 03 09:20:22 2006 +0000
+++ b/run/a/asm_pmaxub_01_A.d	Wed Sep 06 05:07:33 2006 +0000
@@ -12,17 +12,18 @@
 
 version(runTest){
 	import addon.cpuinfo;
+	import addon.dyn_array;
 
 	int main(){
 		haveSSE!()();
 
-		static ubyte[16] A = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16];
-		static ubyte[16] B = [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 17];
-		ubyte[16] c;
+		ubyte[] a = dyn_array!(ubyte)(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16);
+		ubyte[] b = dyn_array!(ubyte)(15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 17);
+		ubyte[] c = new ubyte[16];
 
 		asm{
-			movdqu XMM0, A;
-			movdqu XMM1, B;
+			movdqu XMM0, a;
+			movdqu XMM1, b;
 			pmaxub XMM0, XMM1;
 			movdqu c, XMM0;
 		}
--- a/run/a/asm_pminsub_01_A.d	Sun Sep 03 09:20:22 2006 +0000
+++ b/run/a/asm_pminsub_01_A.d	Wed Sep 06 05:07:33 2006 +0000
@@ -12,17 +12,18 @@
 
 version(runTest){
 	import addon.cpuinfo;
+	import addon.dyn_array;
 
 	int main(){
 		haveSSE!()();
 
-		static ubyte[16] A = [15, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16];
-		static ubyte[16] B = [1, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 17];
-		ubyte[16] c;
+		ubyte[] a = dyn_array!(ubyte)(15,  2,  3,  4,  5,  6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16);
+		ubyte[] b = dyn_array!(ubyte)( 1, 14, 13, 12, 11, 10, 9, 8, 7,  6,  5,  4,  3,  2,  1, 17);
+		ubyte[] c = new ubyte[16];
 
 		asm{
-			movdqu XMM0, A;
-			movdqu XMM1, B;
+			movdqu XMM0, a;
+			movdqu XMM1, b;
 			pminub XMM0, XMM1;
 			movdqu c, XMM0;
 		}
--- a/run/a/asm_por_02_A.d	Sun Sep 03 09:20:22 2006 +0000
+++ b/run/a/asm_por_02_A.d	Wed Sep 06 05:07:33 2006 +0000
@@ -16,28 +16,51 @@
 	int main(){
 		haveSSE2!()();
 
-		static ushort[8] A = [0x1200, 0x0120, 0x0012, 0x2001, 0x0008, 0xFFFF, 0x0000, 0x1111];
-		static ushort[8] B = [0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x0F00, 0x0102, 0x2222];
-		static ushort[8] C = [0x3300, 0x2120, 0x2112, 0x2101, 0x2108, 0xFFFF, 0x0102, 0x3333];
+		ushort[] a = new ushort[8];
+		a[0] = 0x1200;
+		a[1] = 0x0120;
+		a[2] = 0x0012;
+		a[3] = 0x2001;
+		a[4] = 0x0008;
+		a[5] = 0xFFFF;
+		a[6] = 0x0000;
+		a[7] = 0x1111;
 
-		ushort[8] a;
-		ushort[8] b;
+		ushort[] b = new ushort[8];
+		b[0] = 0x2100;
+		b[1] = 0x2100;
+		b[2] = 0x2100;
+		b[3] = 0x2100;
+		b[4] = 0x2100;
+		b[5] = 0x0F00;
+		b[6] = 0x0102;
+		b[7] = 0x2222;
+
+		ushort[] c = new ushort[8];
+		c[0] = 0x3300;
+		c[1] = 0x2120;
+		c[2] = 0x2112;
+		c[3] = 0x2101;
+		c[4] = 0x2108;
+		c[5] = 0xFFFF;
+		c[6] = 0x0102;
+		c[7] = 0x3333;
 
 		asm{
-			movdqu XMM0, A;
-			movdqu XMM1, B;
+			movdqu XMM0, a;
+			movdqu XMM1, b;
 			por XMM1, XMM0;
 			movdqu a, XMM0;
 			movdqu b, XMM1;
 		}
 
 
-		foreach(size_t i, ushort s; A){
+		foreach(size_t i, ushort s; a){
 			if(s != a[i]){
 				assert(0);
 			}
 		}
-		foreach(size_t i, ushort s; C){
+		foreach(size_t i, ushort s; c){
 			if(s != b[i]){
 				assert(0);
 			}
--- a/run/a/asm_pxor_02_A.d	Sun Sep 03 09:20:22 2006 +0000
+++ b/run/a/asm_pxor_02_A.d	Wed Sep 06 05:07:33 2006 +0000
@@ -16,28 +16,54 @@
 	int main(){
 		haveSSE2!()();
 
-		static ushort[8] A = [0x1200, 0x0120, 0x0012, 0x2001, 0x0008, 0xFFFF, 0x0000, 0x1111];
-		static ushort[8] B = [0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x0F00, 0x0102, 0x2222];
-		static ushort[8] C = [0x3300, 0x2020, 0x2112, 0x0101, 0x2108, 0xF0FF, 0x0102, 0x3333];
+		ushort[8] a = new ushort[8];
+		a[0] = 0x1200;
+		a[1] = 0x0120;
+		a[2] = 0x0012;
+		a[3] = 0x2001;
+		a[4] = 0x0008;
+		a[5] = 0xFFFF;
+		a[6] = 0x0000;
+		a[7] = 0x1111;
 
-		ushort[8] d;
-		ushort[8] e;
+		ushort[] b = new ushort[8];
+		b[0] = 0x2100;
+		b[1] = 0x2100;
+		b[2] = 0x2100;
+		b[3] = 0x2100;
+		b[4] = 0x2100;
+		b[5] = 0x0F00;
+		b[6] = 0x0102;
+		b[7] = 0x2222;
+
+		ushort[] c = new ushort[8];
+		c[0] = 0x3300;
+		c[1] = 0x2020;
+		c[2] = 0x2112;
+		c[3] = 0x0101;
+		c[4] = 0x2108;
+		c[5] = 0xF0FF;
+		c[6] = 0x0102;
+		c[7] = 0x3333;
+
+		ushort[] d = new ushort[8];
+		ushort[] e = new ushort[8];
 
 		asm{
-			movdqu XMM0, A;
-			movdqu XMM1, B;
+			movdqu XMM0, a;
+			movdqu XMM1, b;
 			pxor XMM1, XMM0;
 			movdqu d, XMM0;
 			movdqu e, XMM1;
 		}
 
 
-		foreach(size_t i, ushort s; A){
+		foreach(size_t i, ushort s; a){
 			if(s != d[i]){
 				assert(0);
 			}
 		}
-		foreach(size_t i, ushort s; C){
+		foreach(size_t i, ushort s; c){
 			if(s != e[i]){
 				assert(0);
 			}
--- a/run/f/foreach_33_A.d	Sun Sep 03 09:20:22 2006 +0000
+++ b/run/f/foreach_33_A.d	Wed Sep 06 05:07:33 2006 +0000
@@ -10,8 +10,8 @@
 
 	char c = 0x20;
 
-	foreach(c; data){
-		sum += c;
+	foreach(x; data){
+		sum += x;
 	}
 
 	if(sum != 0x41){
--- a/run/f/foreach_33_B.d	Sun Sep 03 09:20:22 2006 +0000
+++ b/run/f/foreach_33_B.d	Wed Sep 06 05:07:33 2006 +0000
@@ -10,8 +10,8 @@
 
 	char c = 0x20;
 
-	foreach(c; data){
-		sum += c;
+	foreach(x; data){
+		sum += x;
 	}
 
 	if(c != 0x20){
--- a/run/f/foreach_33_C.d	Sun Sep 03 09:20:22 2006 +0000
+++ b/run/f/foreach_33_C.d	Wed Sep 06 05:07:33 2006 +0000
@@ -10,9 +10,9 @@
 
 	creal c = 1.0L + 2.0Li;
 
-	foreach(c; data){
-		static assert(typeid(typeof(c)) == typeid(char));
-		sum += c;
+	foreach(x; data){
+		static assert(typeid(typeof(x)) == typeid(char));
+		sum += x;
 	}
 
 	if(sum != 0x41){
--- a/run/for_04.d	Sun Sep 03 09:20:22 2006 +0000
+++ b/run/for_04.d	Wed Sep 06 05:07:33 2006 +0000
@@ -13,6 +13,10 @@
 	for (i = 0; i < 10; i++){
 		debug i=22;
 	}
-	assert(i==10);
+
+	if(i != 10){
+		assert(0);
+	}
+
 	return 0;
 }
--- a/run/for_05.d	Sun Sep 03 09:20:22 2006 +0000
+++ b/run/for_05.d	Wed Sep 06 05:07:33 2006 +0000
@@ -13,6 +13,9 @@
 	for (i = 0; i < 10; i++){
 		version(dummy) i=22;
 	}
-	assert(i==10);
+	if(i != 10){
+		assert(0);
+	}
+
 	return 0;
 }
--- a/run/foreach_24.d	Sun Sep 03 09:20:22 2006 +0000
+++ b/run/foreach_24.d	Wed Sep 06 05:07:33 2006 +0000
@@ -12,10 +12,12 @@
 	x[2]=11;
 
 	int y=0;
-	foreach(int index, int x; x){
-		y+=x;
+	foreach(int index, int z; x){
+		y += z;
 	}
-	assert(y==27);
+	if(y != 27){
+		assert(0);
+	}
 
 	return 0;
 }
--- a/run/v/variadic_argument_07_A.d	Sun Sep 03 09:20:22 2006 +0000
+++ b/run/v/variadic_argument_07_A.d	Wed Sep 06 05:07:33 2006 +0000
@@ -11,21 +11,31 @@
 int counter;
 
 void test(char[] s){
-	assert(s=="string");
+	if(s != "string"){
+		assert(0);
+	}
 	counter++;
 }
 
 int main(){
-	assert(counter==0);
+	if(counter != 0){
+		assert(0);
+	}
 	
 	test("string");
-	assert(counter==1);
+	if(counter != 1){
+		assert(0);
+	}
 	
 	test(cast(char[])"string");
-	assert(counter==2);
+	if(counter != 2){
+		assert(0);
+	}
 	
 	test("string"c);
-	assert(counter==3);
+	if(counter != 3){
+		assert(0);
+	}
 	
 	return 0;
 }
--- a/run/v/variadic_argument_07_B.d	Sun Sep 03 09:20:22 2006 +0000
+++ b/run/v/variadic_argument_07_B.d	Wed Sep 06 05:07:33 2006 +0000
@@ -11,7 +11,9 @@
 int counter;
 
 void test(char[] s){
-	assert(s=="string");
+	if(s != "string"){
+		assert(0);
+	}
 	counter++;
 }
 
@@ -20,16 +22,24 @@
 }
 
 int main(){
-	assert(counter==0);
+	if(counter != 0){
+		assert(0);
+	}
 	
 	test("string");
-	assert(counter==1);
+	if(counter != 1){
+		assert(0);
+	}
 	
 	test(cast(char[])"string");
-	assert(counter==2);
+	if(counter != 2){
+		assert(0);
+	}
 	
 	test("string"c);
-	assert(counter==3);
+	if(counter != 3){
+		assert(0);
+	}
 	
 	return 0;
 }
--- a/run/v/variadic_argument_07_C.d	Sun Sep 03 09:20:22 2006 +0000
+++ b/run/v/variadic_argument_07_C.d	Wed Sep 06 05:07:33 2006 +0000
@@ -11,7 +11,9 @@
 int counter;
 
 void test(wchar[] s){
-	assert(s=="string");
+	if(s != "string"){
+		assert(0);
+	}
 	counter++;
 }
 
@@ -20,16 +22,24 @@
 }
 
 int main(){
-	assert(counter==0);
+	if(counter != 0){
+		assert(0);
+	}
 	
 	test("string");
-	assert(counter==1);
+	if(counter != 1){
+		assert(0);
+	}
 	
 	test(cast(wchar[])"string");
-	assert(counter==2);
+	if(counter != 2){
+		assert(0);
+	}
 	
 	test("string"w);
-	assert(counter==3);
+	if(counter != 3){
+		assert(0);
+	}
 	
 	return 0;
 }
--- a/run/v/variadic_argument_07_D.d	Sun Sep 03 09:20:22 2006 +0000
+++ b/run/v/variadic_argument_07_D.d	Wed Sep 06 05:07:33 2006 +0000
@@ -11,7 +11,9 @@
 int counter;
 
 void test(dchar[] s){
-	assert(s=="string");
+	if(s != "string"){
+		assert(0);
+	}
 	counter++;
 }
 
@@ -20,16 +22,24 @@
 }
 
 int main(){
-	assert(counter==0);
+	if(counter != 0){
+		assert(0);
+	}
 	
 	test("string");
-	assert(counter==1);
+	if(counter != 1){
+		assert(0);
+	}
 	
 	test(cast(dchar[])"string");
-	assert(counter==2);
+	if(counter != 2){
+		assert(0);
+	}
 	
 	test("string"d);
-	assert(counter==3);
+	if(counter != 3){
+		assert(0);
+	}
 	
 	return 0;
 }
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/run/v/variadic_argument_07_E.d	Wed Sep 06 05:07:33 2006 +0000
@@ -0,0 +1,37 @@
+// $HeadURL$
+// $Date$
+// $Author$
+
+// @author@	David L. Davis <SpottedTiger@yahoo.com>
+// @date@	2005-09-22
+// @uri@	news:dgup0c$1j47$1@digitaldaemon.com
+
+module dstress.run.v.variadic_argument_07_E;
+
+int counter;
+
+void test(char[] s){
+	if(s != "string"){
+		assert(0);
+	}
+	counter++;
+}
+
+void test(...){
+	assert(0);
+}
+
+int main(){
+	if(counter != 0){
+		assert(0);
+	}
+
+	char[] string = "string";
+	
+	test(string);
+	if(counter != 1){
+		assert(0);
+	}
+
+	return 0;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/run/v/variadic_argument_07_F.d	Wed Sep 06 05:07:33 2006 +0000
@@ -0,0 +1,37 @@
+// $HeadURL$
+// $Date$
+// $Author$
+
+// @author@	David L. Davis <SpottedTiger@yahoo.com>
+// @date@	2005-09-22
+// @uri@	news:dgup0c$1j47$1@digitaldaemon.com
+
+module dstress.run.v.variadic_argument_07_F;
+
+int counter;
+
+void test(dchar[] s){
+	if(s != "string"){
+		assert(0);
+	}
+	counter++;
+}
+
+void test(...){
+	assert(0);
+}
+
+int main(){
+	if(counter != 0){
+		assert(0);
+	}
+
+	dchar[] string = "string";
+
+	test(string);
+	if(counter != 1){
+		assert(0);
+	}
+
+	return 0;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/run/v/variadic_argument_07_G.d	Wed Sep 06 05:07:33 2006 +0000
@@ -0,0 +1,37 @@
+// $HeadURL$
+// $Date$
+// $Author$
+
+// @author@	David L. Davis <SpottedTiger@yahoo.com>
+// @date@	2005-09-22
+// @uri@	news:dgup0c$1j47$1@digitaldaemon.com
+
+module dstress.run.v.variadic_argument_07_G;
+
+int counter;
+
+void test(wchar[] s){
+	if(s != "string"){
+		assert(0);
+	}
+	counter++;
+}
+
+void test(...){
+	assert(0);
+}
+
+int main(){
+	if(counter != 0){
+		assert(0);
+	}
+
+	wchar[] string = "string";
+	
+	test(string);
+	if(counter != 1){
+		assert(0);
+	}
+
+	return 0;
+}
--- a/run/v/void_02_C.d	Sun Sep 03 09:20:22 2006 +0000
+++ b/run/v/void_02_C.d	Wed Sep 06 05:07:33 2006 +0000
@@ -11,6 +11,8 @@
 void[10] array = void;
 
 int main(){
-	assert(array.length==10);
+	if(array.length != 10){
+		assert(0);
+	}
 	return 0;
 }
--- a/run/variadic_argument_04.d	Sun Sep 03 09:20:22 2006 +0000
+++ b/run/variadic_argument_04.d	Wed Sep 06 05:07:33 2006 +0000
@@ -24,7 +24,9 @@
 
 int main(){
 	t!(int delegate()) (delegate real(){return 1.1L;});
-	assert(status==1);	
+	if(status != 1){
+		assert(0);
+	}
 	return 0;
 }
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/run/w/with_13_B.d	Wed Sep 06 05:07:33 2006 +0000
@@ -0,0 +1,48 @@
+// $HeadURL$
+// $Date$
+// $Author$
+
+// @author@	Manfred Nowak <svv1999@hotmail.com>
+// @date@	2005-02-03
+// @uri@	news:cttuih$hpb$1@digitaldaemon.com
+// @url@	nntp://news.digitalmars.com/digitalmars.D.bugs/2852
+
+module dstress.run.w.with_13_B;
+
+class Entry{
+	int a;
+}
+
+class Class{
+	Entry[] table;
+
+	this(){
+		table = new Entry[10];
+		table[0] = new Entry();
+		table[1] = new Entry();
+		table[2] = new Entry();
+
+		table[1].a = 5;
+	}
+	
+	Entry opIndex(int i){
+		return table[i];
+	}
+}
+
+int main(){
+	Class c= new Class();
+
+	with(c[1]){
+		if(a != 5){
+			assert(0);
+		}
+		a++;
+	}
+	
+	if(c[1].a != 6){
+		assert(0);
+	}
+
+	return 0;
+}
--- a/run/with_12.d	Sun Sep 03 09:20:22 2006 +0000
+++ b/run/with_12.d	Wed Sep 06 05:07:33 2006 +0000
@@ -16,11 +16,16 @@
 int main(){
 	Entry[10] table;
 
-	assert(table[1].a==0);
-	with( table[1]){
+	if(table[1].a != 0){
+		assert(0);
+	}
+	
+	with(table[1]){
 		a=1;
 	}
-	assert(table[1].a==1);
+	if(table[1].a != 1){
+		assert(0);
+	}
 
 	return 0;
-}
\ No newline at end of file
+}
--- a/run/with_13.d	Sun Sep 03 09:20:22 2006 +0000
+++ b/run/with_13.d	Wed Sep 06 05:07:33 2006 +0000
@@ -9,24 +9,35 @@
 
 module dstress.run.with_13;
 
+struct Entry{
+	int a;
+}
+
 class Class{
-	struct Entry{
-		int a;
+	Entry[] table;
+	
+	this(){
+		table = new Entry[10];
+		table[1].a = 4;
 	}
 	
-	Entry[10] table;
-	
 	Entry opIndex(int i){
 		return table[i];
 	}
 }
 
 int main(){
-	Class c= new Class;
+	Class c= new Class();
 
-	with( c[ 1]){
-		a=0;
+	with(c[1]){
+		if(a != 4){
+			assert(0);
+		}
+		a++;
+	}
+	if(c[1].a != 4){
+		assert(0);
 	}
 
 	return 0;
-}
\ No newline at end of file
+}