changeset 1085:98f634622849

-fPIC fixes
author thomask
date Fri, 14 Jul 2006 23:04:11 +0000
parents 91ff3e405be5
children 7e8e5013a030
files run/a/asm_addpd_01_A.d run/a/asm_addps_01_A.d run/a/asm_addsd_01_A.d run/a/asm_addss_01_A.d run/a/asm_addsubpd_01_A.d run/a/asm_cmpiss_01_A.d run/a/asm_cmpsd_01_B.d run/a/asm_cvtdq2pd_01_A.d run/a/asm_cvtdq2ps_01_A.d run/a/asm_cvtpd2dq_01_A.d run/a/asm_divsd_01_A.d run/a/asm_emms_01.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_maxpd_01_A.d run/a/asm_maxps_01_A.d run/a/asm_maxsd_01_A.d run/a/asm_maxss_01_A.d run/a/asm_minpd_01_A.d run/a/asm_minps_01_A.d run/a/asm_minsd_01_A.d run/a/asm_minsd_01_B.d run/a/asm_minss_01_A.d run/a/asm_minss_01_B.d run/a/asm_movapd_01_A.d run/a/asm_movaps_01_A.d run/a/asm_movddup_01_A.d run/a/asm_movddup_01_B.d run/a/asm_movhlps_01_A.d run/a/asm_movhpd_01_A.d run/a/asm_movhpd_01_B.d run/a/asm_movhps_01_A.d run/a/asm_movhps_01_B.d run/a/asm_movlhps_01_A.d run/a/asm_movlpd_01_A.d run/a/asm_movlpd_01_B.d run/a/asm_movlps_01_A.d run/a/asm_movlps_01_B.d run/a/asm_movq2dq_01.d run/a/asm_movq_01_B.d run/a/asm_movsd_01_A.d run/a/asm_movsd_01_B.d run/a/asm_movsd_01_C.d run/a/asm_orpd_01_A.d run/a/asm_orps_01_A.d run/a/asm_packssdw_01_A.d run/a/asm_paddb_01_A.d run/a/asm_paddd_01_A.d run/a/asm_paddq_01_A.d run/a/asm_paddsb_01_A.d run/a/asm_pf2id_01_B.d run/a/asm_pfacc_01_A.d run/a/asm_pfacc_01_B.d run/a/asm_pfadd_01_A.d run/a/asm_pfadd_01_B.d run/a/asm_pfcmpeq_01_A.d run/a/asm_pfmax_01_A.d run/a/asm_pfmax_01_B.d run/a/asm_punpcklwd_01_A.d run/a/asm_rcpps_01_A.d run/a/asm_rcpss_01_A.d run/a/asm_rsqrtps_01_A.d run/a/asm_rsqrtss_01_A.d
diffstat 64 files changed, 372 insertions(+), 178 deletions(-) [+]
line wrap: on
line diff
--- a/run/a/asm_addpd_01_A.d	Thu Jul 13 10:52:11 2006 +0000
+++ b/run/a/asm_addpd_01_A.d	Fri Jul 14 23:04:11 2006 +0000
@@ -29,7 +29,6 @@
 			movupd XMM1, b;
 			addpd XMM0, XMM1;
 			movupd b, XMM0;
-			emms;
 		}
 
 		b[0] -= 1.1242;
--- a/run/a/asm_addps_01_A.d	Thu Jul 13 10:52:11 2006 +0000
+++ b/run/a/asm_addps_01_A.d	Fri Jul 14 23:04:11 2006 +0000
@@ -33,7 +33,6 @@
 			movups XMM1, b;
 			addps XMM0, XMM1;
 			movups b, XMM0;
-			emms;
 		}
 
 		b[0] -= 5.0f;
--- a/run/a/asm_addsd_01_A.d	Thu Jul 13 10:52:11 2006 +0000
+++ b/run/a/asm_addsd_01_A.d	Fri Jul 14 23:04:11 2006 +0000
@@ -29,7 +29,6 @@
 			movupd XMM1, b;
 			addsd XMM0, XMM1;
 			movupd b, XMM0;
-			emms;
 		}
 
 		b[0] -= 5.0;
--- a/run/a/asm_addss_01_A.d	Thu Jul 13 10:52:11 2006 +0000
+++ b/run/a/asm_addss_01_A.d	Fri Jul 14 23:04:11 2006 +0000
@@ -33,7 +33,6 @@
 			movups XMM1, b;
 			addss XMM0, XMM1;
 			movups b, XMM0;
-			emms;
 		}
 
 		b[0] -= 5.0f;
--- a/run/a/asm_addsubpd_01_A.d	Thu Jul 13 10:52:11 2006 +0000
+++ b/run/a/asm_addsubpd_01_A.d	Fri Jul 14 23:04:11 2006 +0000
@@ -29,7 +29,6 @@
 			movupd XMM1, b;
 			addsubpd XMM0, XMM1;
 			movupd b, XMM0;
-			emms;
 		}
 
 		b[0] += 3.0;
--- a/run/a/asm_cmpiss_01_A.d	Thu Jul 13 10:52:11 2006 +0000
+++ b/run/a/asm_cmpiss_01_A.d	Fri Jul 14 23:04:11 2006 +0000
@@ -30,7 +30,6 @@
 			movdqu XMM0, a;
 			movdqu XMM1, b;
 			comiss XMM0, XMM1;
-			emms;
 			mov EAX, 0;
 			jnc done_1;
 			jz done_1;
--- a/run/a/asm_cmpsd_01_B.d	Thu Jul 13 10:52:11 2006 +0000
+++ b/run/a/asm_cmpsd_01_B.d	Fri Jul 14 23:04:11 2006 +0000
@@ -29,7 +29,6 @@
 			cmpsd XMM0, b, 0;
 			movdqu c, XMM0;
 			movupd d, XMM0;
-			emms;
 		}
 
 		if(c[0] != ulong.max){
--- a/run/a/asm_cvtdq2pd_01_A.d	Thu Jul 13 10:52:11 2006 +0000
+++ b/run/a/asm_cvtdq2pd_01_A.d	Fri Jul 14 23:04:11 2006 +0000
@@ -28,7 +28,6 @@
 			movdqu XMM0, a;
 			cvtdq2pd XMM1, XMM0;
 			movdqu b, XMM1;
-			emms;
 		}
 
 		if(b[0] != 0){
--- a/run/a/asm_cvtdq2ps_01_A.d	Thu Jul 13 10:52:11 2006 +0000
+++ b/run/a/asm_cvtdq2ps_01_A.d	Fri Jul 14 23:04:11 2006 +0000
@@ -28,7 +28,6 @@
 			movdqu XMM0, a;
 			cvtdq2ps XMM1, XMM0;
 			movdqu b, XMM1;
-			emms;
 		}
 
 		if(b[0] != 0.0f){
--- a/run/a/asm_cvtpd2dq_01_A.d	Thu Jul 13 10:52:11 2006 +0000
+++ b/run/a/asm_cvtpd2dq_01_A.d	Fri Jul 14 23:04:11 2006 +0000
@@ -26,7 +26,6 @@
 			movdqu XMM0, a;
 			cvtpd2dq XMM1, XMM0;
 			movdqu b, XMM1;
-			emms;
 		}
 
 		if(b[0] != -2){
--- a/run/a/asm_divsd_01_A.d	Thu Jul 13 10:52:11 2006 +0000
+++ b/run/a/asm_divsd_01_A.d	Fri Jul 14 23:04:11 2006 +0000
@@ -29,7 +29,6 @@
 			movupd XMM1, b;
 			divsd XMM0, XMM1;
 			movupd c, XMM0;
-			emms;
 		}
 
 		c[0] += 8.0f;
--- a/run/a/asm_emms_01.d	Thu Jul 13 10:52:11 2006 +0000
+++ b/run/a/asm_emms_01.d	Fri Jul 14 23:04:11 2006 +0000
@@ -10,14 +10,18 @@
 	version = runTest;
 }
 
-int main(){
-	version(runTest){
+version(runTest){
+	import addon.cpuinfo;
+	
+	int main(){
+		haveMMX!()();
+
 		asm{
 			emms;
 		}
 		return 0;
-	}else{
-		pragma(msg, "DSTRESS{XFAIL}: no inline ASM support");
-		static assert(0);
 	}
+}else{
+	pragma(msg, "DSTRESS{XFAIL}: no inline ASM support");
+	static assert(0);
 }
--- a/run/a/asm_haddps_01_A.d	Thu Jul 13 10:52:11 2006 +0000
+++ b/run/a/asm_haddps_01_A.d	Fri Jul 14 23:04:11 2006 +0000
@@ -35,7 +35,6 @@
 			movups XMM1, b;
 			haddps XMM0, XMM1;
 			movups c, XMM0;
-			emms;
 		}
 
 		c[0] -= 13.3f;
--- a/run/a/asm_hsubpd_01_A.d	Thu Jul 13 10:52:11 2006 +0000
+++ b/run/a/asm_hsubpd_01_A.d	Fri Jul 14 23:04:11 2006 +0000
@@ -31,7 +31,6 @@
 			movupd XMM1, b;
 			hsubpd XMM0, XMM1;
 			movupd c, XMM0;
-			emms;
 		}
 
 		c[0] += 1.0;
--- a/run/a/asm_hsubps_01_A.d	Thu Jul 13 10:52:11 2006 +0000
+++ b/run/a/asm_hsubps_01_A.d	Fri Jul 14 23:04:11 2006 +0000
@@ -35,7 +35,6 @@
 			movups XMM1, b;
 			hsubps XMM0, XMM1;
 			movups c, XMM0;
-			emms;
 		}
 
 		c[0] += 1.0f;
--- a/run/a/asm_maxpd_01_A.d	Thu Jul 13 10:52:11 2006 +0000
+++ b/run/a/asm_maxpd_01_A.d	Fri Jul 14 23:04:11 2006 +0000
@@ -31,7 +31,6 @@
 			movupd XMM1, b;
 			maxpd XMM0, XMM1;
 			movupd c, XMM0;
-			emms;
 		}
 
 		if(c[0] != 2.0){
--- a/run/a/asm_maxps_01_A.d	Thu Jul 13 10:52:11 2006 +0000
+++ b/run/a/asm_maxps_01_A.d	Fri Jul 14 23:04:11 2006 +0000
@@ -35,7 +35,6 @@
 			movups XMM1, b;
 			maxps XMM0, XMM1;
 			movups c, XMM0;
-			emms;
 		}
 
 		if(c[0] != 2.0f){
--- a/run/a/asm_maxsd_01_A.d	Thu Jul 13 10:52:11 2006 +0000
+++ b/run/a/asm_maxsd_01_A.d	Fri Jul 14 23:04:11 2006 +0000
@@ -31,7 +31,6 @@
 			movupd XMM1, b;
 			maxsd XMM0, XMM1;
 			movupd c, XMM0;
-			emms;
 		}
 
 		if(c[0] != 2.0){
--- a/run/a/asm_maxss_01_A.d	Thu Jul 13 10:52:11 2006 +0000
+++ b/run/a/asm_maxss_01_A.d	Fri Jul 14 23:04:11 2006 +0000
@@ -35,7 +35,6 @@
 			movups XMM1, b;
 			maxss XMM0, XMM1;
 			movups c, XMM0;
-			emms;
 		}
 
 		if(c[0] != 2.0f){
--- a/run/a/asm_minpd_01_A.d	Thu Jul 13 10:52:11 2006 +0000
+++ b/run/a/asm_minpd_01_A.d	Fri Jul 14 23:04:11 2006 +0000
@@ -31,7 +31,6 @@
 			movupd XMM1, b;
 			minpd XMM0, XMM1;
 			movupd c, XMM0;
-			emms;
 		}
 
 		if(c[0] != 1.0){
--- a/run/a/asm_minps_01_A.d	Thu Jul 13 10:52:11 2006 +0000
+++ b/run/a/asm_minps_01_A.d	Fri Jul 14 23:04:11 2006 +0000
@@ -35,7 +35,6 @@
 			movups XMM1, b;
 			minps XMM0, XMM1;
 			movups c, XMM0;
-			emms;
 		}
 
 		if(c[0] != 1.0f){
--- a/run/a/asm_minsd_01_A.d	Thu Jul 13 10:52:11 2006 +0000
+++ b/run/a/asm_minsd_01_A.d	Fri Jul 14 23:04:11 2006 +0000
@@ -31,7 +31,6 @@
 			movupd XMM1, b;
 			minsd XMM0, XMM1;
 			movupd c, XMM0;
-			emms;
 		}
 
 		if(c[0] != 1.0){
--- a/run/a/asm_minsd_01_B.d	Thu Jul 13 10:52:11 2006 +0000
+++ b/run/a/asm_minsd_01_B.d	Fri Jul 14 23:04:11 2006 +0000
@@ -27,7 +27,6 @@
 			movupd XMM0, a;
 			minsd XMM0, b;
 			movupd c, XMM0;
-			emms;
 		}
 
 		if(c[0] != 2.0){
--- a/run/a/asm_minss_01_A.d	Thu Jul 13 10:52:11 2006 +0000
+++ b/run/a/asm_minss_01_A.d	Fri Jul 14 23:04:11 2006 +0000
@@ -35,7 +35,6 @@
 			movups XMM1, b;
 			minss XMM0, XMM1;
 			movups c, XMM0;
-			emms;
 		}
 
 		if(c[0] != 1.0f){
--- a/run/a/asm_minss_01_B.d	Thu Jul 13 10:52:11 2006 +0000
+++ b/run/a/asm_minss_01_B.d	Fri Jul 14 23:04:11 2006 +0000
@@ -29,7 +29,6 @@
 			movups XMM0, a;
 			minss XMM0, b;
 			movups c, XMM0;
-			emms;
 		}
 
 		if(c[0] != 1.0f){
--- a/run/a/asm_movapd_01_A.d	Thu Jul 13 10:52:11 2006 +0000
+++ b/run/a/asm_movapd_01_A.d	Fri Jul 14 23:04:11 2006 +0000
@@ -25,7 +25,6 @@
 			movdqu XMM0, a;
 			movapd XMM1, XMM0;
 			movdqu b, XMM1;
-			emms;
 		}
 
 		if(a[0] != b[0]){
--- a/run/a/asm_movaps_01_A.d	Thu Jul 13 10:52:11 2006 +0000
+++ b/run/a/asm_movaps_01_A.d	Fri Jul 14 23:04:11 2006 +0000
@@ -28,7 +28,6 @@
 			movdqu XMM0, a;
 			movaps XMM1, XMM0;
 			movdqu b, XMM1;
-			emms;
 		}
 
 		if(a[0] != b[0]){
--- a/run/a/asm_movddup_01_A.d	Thu Jul 13 10:52:11 2006 +0000
+++ b/run/a/asm_movddup_01_A.d	Fri Jul 14 23:04:11 2006 +0000
@@ -27,7 +27,6 @@
 			movupd XMM1, a;
 			movddup XMM1, XMM0;
 			movupd b, XMM1;
-			emms;
 		}
 
 		if(a[0] != b[0]){
--- a/run/a/asm_movddup_01_B.d	Thu Jul 13 10:52:11 2006 +0000
+++ b/run/a/asm_movddup_01_B.d	Fri Jul 14 23:04:11 2006 +0000
@@ -27,7 +27,6 @@
 			movupd XMM0, a;
 			movddup XMM0, c;
 			movupd b, XMM0;
-			emms;
 		}
 
 		if(b[0] != 1.0){
--- a/run/a/asm_movhlps_01_A.d	Thu Jul 13 10:52:11 2006 +0000
+++ b/run/a/asm_movhlps_01_A.d	Fri Jul 14 23:04:11 2006 +0000
@@ -39,7 +39,6 @@
 			movups XMM1, b;
 			movlhps XMM0, XMM1;
 			movups c, XMM0;
-			emms;
 		}
 
 		if(c[0] != a[0]){
--- a/run/a/asm_movhpd_01_A.d	Thu Jul 13 10:52:11 2006 +0000
+++ b/run/a/asm_movhpd_01_A.d	Fri Jul 14 23:04:11 2006 +0000
@@ -27,7 +27,6 @@
 			movupd XMM0, a;
 			movhpd XMM0, b;
 			movupd c, XMM0;
-			emms;
 		}
 
 		if(c[0] != a[0]){
--- a/run/a/asm_movhpd_01_B.d	Thu Jul 13 10:52:11 2006 +0000
+++ b/run/a/asm_movhpd_01_B.d	Fri Jul 14 23:04:11 2006 +0000
@@ -25,7 +25,6 @@
 		asm{
 			movupd XMM0, a;
 			movhpd b, XMM0;
-			emms;
 		}
 
 		if(b != a[1]){
--- a/run/a/asm_movhps_01_A.d	Thu Jul 13 10:52:11 2006 +0000
+++ b/run/a/asm_movhps_01_A.d	Fri Jul 14 23:04:11 2006 +0000
@@ -32,7 +32,6 @@
 			movups XMM0, a;
 			movhps XMM0, b;
 			movups c, XMM0;
-			emms;
 		}
 
 		if(c[0] != a[0]){
--- a/run/a/asm_movhps_01_B.d	Thu Jul 13 10:52:11 2006 +0000
+++ b/run/a/asm_movhps_01_B.d	Fri Jul 14 23:04:11 2006 +0000
@@ -26,7 +26,6 @@
 		asm{
 			movups XMM0, a;
 			movhps b, XMM0;
-			emms;
 		}
 
 		if(b[0] != a[2]){
--- a/run/a/asm_movlhps_01_A.d	Thu Jul 13 10:52:11 2006 +0000
+++ b/run/a/asm_movlhps_01_A.d	Fri Jul 14 23:04:11 2006 +0000
@@ -35,7 +35,6 @@
 			movups XMM1, b;
 			movlhps XMM0, XMM1;
 			movups c, XMM0;
-			emms;
 		}
 
 		if(c[0] != a[0]){
--- a/run/a/asm_movlpd_01_A.d	Thu Jul 13 10:52:11 2006 +0000
+++ b/run/a/asm_movlpd_01_A.d	Fri Jul 14 23:04:11 2006 +0000
@@ -28,7 +28,6 @@
 			movups XMM0, a;
 			movlpd XMM0, b;
 			movups c, XMM0;
-			emms;
 		}
 
 		if(c[0] != b){
--- a/run/a/asm_movlpd_01_B.d	Thu Jul 13 10:52:11 2006 +0000
+++ b/run/a/asm_movlpd_01_B.d	Fri Jul 14 23:04:11 2006 +0000
@@ -25,7 +25,6 @@
 		asm{
 			movups XMM0, a;
 			movlpd b, XMM0;
-			emms;
 		}
 
 		if(b != a[0]){
--- a/run/a/asm_movlps_01_A.d	Thu Jul 13 10:52:11 2006 +0000
+++ b/run/a/asm_movlps_01_A.d	Fri Jul 14 23:04:11 2006 +0000
@@ -32,7 +32,6 @@
 			movups XMM0, a;
 			movlps XMM0, b;
 			movups c, XMM0;
-			emms;
 		}
 
 		if(c[0] != b[0]){
--- a/run/a/asm_movlps_01_B.d	Thu Jul 13 10:52:11 2006 +0000
+++ b/run/a/asm_movlps_01_B.d	Fri Jul 14 23:04:11 2006 +0000
@@ -27,7 +27,6 @@
 		asm{
 			movups XMM0, a;
 			movlps b, XMM0;
-			emms;
 		}
 
 		if(b[0] != a[0]){
--- a/run/a/asm_movq2dq_01.d	Thu Jul 13 10:52:11 2006 +0000
+++ b/run/a/asm_movq2dq_01.d	Fri Jul 14 23:04:11 2006 +0000
@@ -16,28 +16,29 @@
 	int main(){
 		haveSSE!()();
 
-		static ulong[2] X = [0x0011_2233_4455_6677_8899LU, 0x1234_5678_90AB_CDEF];
-		ulong[2] y = X.dup;
+		ulong[] x = new ulong[2];
+		x[0] = 0x0011_2233_4455_6677_8899LU;
+		x[1] = 0x1234_5678_90AB_CDEF;
 
-		static ulong A = 0x1234_ABCD_5678_EF01;
-		ulong a = A;
+		ulong a = 0x1234_ABCD_5678_EF01;
 
 		asm{
-			movdqu XMM0, X;
+			movdqu XMM0, x;
 			movq MM0, a;
 			movq2dq XMM0, MM0;
-			movdqu y, XMM0;
+			movdqu x, XMM0;
+			emms;
 		}
 
-		if(a != A){
+		if(a != 0x1234_ABCD_5678_EF01){
 			assert(0);
 		}
 
-		if(y[0] != A){
+		if(x[0] != 0x1234_ABCD_5678_EF01){
 			assert(0);
 		}
 
-		if(y[1] != 0){
+		if(x[1] != 0){
 			assert(0);
 		}
 
--- a/run/a/asm_movq_01_B.d	Thu Jul 13 10:52:11 2006 +0000
+++ b/run/a/asm_movq_01_B.d	Fri Jul 14 23:04:11 2006 +0000
@@ -27,7 +27,6 @@
 			movdqu XMM0, a;
 			movq XMM0, c;
 			movdqu b, XMM0;
-			emms;
 		}
 
 		if(b[0] != c){
--- a/run/a/asm_movsd_01_A.d	Thu Jul 13 10:52:11 2006 +0000
+++ b/run/a/asm_movsd_01_A.d	Fri Jul 14 23:04:11 2006 +0000
@@ -16,15 +16,18 @@
 	int main(){
 		haveSSE2!()();
 
-		static double[2] A = [1.0, 2.0];
+		double[] a = new double[2];
+		a[0] = 1.0;
+		a[1] = 2.0;
+
 		double b;
 
 		asm{
-			movupd XMM0, A;
+			movupd XMM0, a;
 			movsd b, XMM0;
 		}
 
-		if(b != A[0]){
+		if(b != a[0]){
 			assert(0);
 		}
 
--- a/run/a/asm_movsd_01_B.d	Thu Jul 13 10:52:11 2006 +0000
+++ b/run/a/asm_movsd_01_B.d	Fri Jul 14 23:04:11 2006 +0000
@@ -16,9 +16,12 @@
 	int main(){
 		haveSSE2!()();
 
-		static double[2] A = [1.0, 2.0];
+		double[] a = new double[2];
+		a[0] = 1.0;
+		a[1] = 2.0;
+
 		double b = 3.0;
-		double[2] c;
+		double[] c = new double[2];
 
 		asm{
 			movupd XMM0, A;
--- a/run/a/asm_movsd_01_C.d	Thu Jul 13 10:52:11 2006 +0000
+++ b/run/a/asm_movsd_01_C.d	Fri Jul 14 23:04:11 2006 +0000
@@ -16,21 +16,27 @@
 	int main(){
 		haveSSE2!()();
 
-		static double[2] A = [1.0, 2.0];
-		static double[2] B = [3.0, 4.0];
-		double[2] c;
+		double[] a = new double[2];
+		a[0] = 1.0;
+		a[1] = 2.0;
+		
+		double[] b = new double[2];
+		b[0] = 3.0;
+		b[1] = 4.0;
+		
+		double[] c = new double[2];
 
 		asm{
-			movupd XMM0, A;
-			movupd XMM1, B;
+			movupd XMM0, a;
+			movupd XMM1, b;
 			movsd XMM0, XMM1;
 			movupd c, XMM0;
 		}
 
-		if(c[0] != B[0]){
+		if(c[0] != b[0]){
 			assert(0);
 		}
-		if(c[1] != A[1]){
+		if(c[1] != a[1]){
 			assert(0);
 		}
 
--- a/run/a/asm_orpd_01_A.d	Thu Jul 13 10:52:11 2006 +0000
+++ b/run/a/asm_orpd_01_A.d	Fri Jul 14 23:04:11 2006 +0000
@@ -16,13 +16,19 @@
 	int main(){
 		haveSSE2!()();
 
-		static double[2] A = [4.0, 8.0];
-		static double[2] B = [3.0, 4.0];
-		double[2] c;
+		double[] a = new double[2];
+		a[0] = 4.0;
+		a[1] = 8.0;
+		
+		double[] b = new double[2];
+		b[0] = 3.0;
+		b[1] = 4.0;
+		
+		double[] c = new double[2];
 
 		asm{
-			movupd XMM0, A;
-			movupd XMM1, B;
+			movupd XMM0, a;
+			movupd XMM1, b;
 			orpd XMM0, XMM1;
 			movupd c, XMM0;
 		}
--- a/run/a/asm_orps_01_A.d	Thu Jul 13 10:52:11 2006 +0000
+++ b/run/a/asm_orps_01_A.d	Fri Jul 14 23:04:11 2006 +0000
@@ -16,13 +16,23 @@
 	int main(){
 		haveSSE!()();
 
-		static float[4] A = [5.0f, 10.0f, 1.0f, 17.0f];
-		static float[4] B = [6.0f, 9.0f, -2.0f, 20.0f];
-		float[4] c;
+		float[] a = new float[4];
+		a[0] = 5.0f;
+		a[1] = 10.0f;
+		a[2] = 1.0f;
+		a[3] = 17.0f;
+
+		float[] b = new float[4];
+		b[0] = 6.0f;
+		b[1] = 9.0f;
+		b[2] = -2.0f;
+		b[3] = 20.0f;
+		
+		float[] c = new float[4];
 
 		asm{
-			movups XMM0, A;
-			movups XMM1, B;
+			movups XMM0, a;
+			movups XMM1, b;
 			orpd XMM0, XMM1;
 			movups c, XMM0;
 		}
--- a/run/a/asm_packssdw_01_A.d	Thu Jul 13 10:52:11 2006 +0000
+++ b/run/a/asm_packssdw_01_A.d	Fri Jul 14 23:04:11 2006 +0000
@@ -17,13 +17,23 @@
 		haveSSE2!()();
 		haveMMX!()();
 
-		static int[4] A = [1, -2, 3, -4];
-		static int[4] B = [5, -6, 7, -8];
-		short[8] c;
+		int[] a = new int[4];
+		a[0] = 1;
+		a[1] = -2;
+		a[2] = 3;
+		a[3] = -4;
+		
+		int[] b = new int[4];
+		b[0] = 5;
+		b[1] = -6;
+		b[2] = 7;
+		b[3] = -8;
+
+		short[] c = new short[8];
 
 		asm{
-			movdqu XMM0, A;
-			movdqu XMM1, B;
+			movdqu XMM0, a;
+			movdqu XMM1, b;
 			packssdw XMM0, XMM1;
 			movdqu c, XMM0;
 		}
--- a/run/a/asm_paddb_01_A.d	Thu Jul 13 10:52:11 2006 +0000
+++ b/run/a/asm_paddb_01_A.d	Fri Jul 14 23:04:11 2006 +0000
@@ -16,13 +16,46 @@
 	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 = [-8, -7, -6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6, 7];
-		byte[16] c;
+		byte[] a = new byte[16];
+		a[0] = 1;
+		a[1] = 2;
+		a[2] = 3;
+		a[3] = 4;
+		a[4] = 5;
+		a[5] = 6;
+		a[6] = 7;
+		a[7] = 8;
+		a[8] = 9;
+		a[9] = 10;
+		a[10] = 11;
+		a[11] = 12;
+		a[12] = 13;
+		a[14] = 15;
+		a[15] = 16;
+
+		byte[] b = new byte[16];
+		b[0] = -8;
+		b[1] = -7;
+		b[2] = -6;
+		b[3] = -5;
+		b[4] = -4;
+		b[5] = -3;
+		b[6] = -2;
+		b[7] = -1;
+		b[8] = 0;
+		b[9] = 1;
+		b[10] = 2;
+		b[11] = 3;
+		b[12] = 4;
+		b[13] = 5;
+		b[14] = 6;
+		b[15] = 7;
+		
+		byte[] c = new byte[16];
 
 		asm{
-			movdqu XMM0, A;
-			movdqu XMM1, B;
+			movdqu XMM0, a;
+			movdqu XMM1, b;
 			paddb XMM0, XMM1;
 			movdqu c, XMM0;
 		}
--- a/run/a/asm_paddd_01_A.d	Thu Jul 13 10:52:11 2006 +0000
+++ b/run/a/asm_paddd_01_A.d	Fri Jul 14 23:04:11 2006 +0000
@@ -16,13 +16,23 @@
 	int main(){
 		haveSSE2!()();
 
-		static int[4] A = [1, 2, 3, 4];
-		static int[4] B = [int.max-2, int.min, 0, -6];
-		int[4] c;
+		int[] a = new int[4];
+		a[0] = 1;
+		a[1] = 2;
+		a[2] = 3;
+		a[3] = 4;
+
+		int[] b = new int[4];
+		b[0] = int.max-2;
+		b[1] = int.min;
+		b[2] = 0;
+		b[3] = -6;
+
+		int[] c = new int[4];
 
 		asm{
-			movdqu XMM0, A;
-			movdqu XMM1, B;
+			movdqu XMM0, a;
+			movdqu XMM1, b;
 			paddd XMM0, XMM1;
 			movdqu c, XMM0;
 		}
--- a/run/a/asm_paddq_01_A.d	Thu Jul 13 10:52:11 2006 +0000
+++ b/run/a/asm_paddq_01_A.d	Fri Jul 14 23:04:11 2006 +0000
@@ -16,13 +16,19 @@
 	int main(){
 		haveSSE2!()();
 
-		static long[2] A = [-1, -2];
-		static long[2] B = [2, long.max];
-		long[2] c;
+		long[] a = new long[2];
+		a[0] = -1;
+		a[1] = -2;
+		
+		long[] b = new long[2];
+		b[0] = 2;
+		b[1] = long.max;
+		
+		long[] c = new long[2];
 
 		asm{
-			movdqu XMM0, A;
-			movdqu XMM1, B;
+			movdqu XMM0, a;
+			movdqu XMM1, b;
 			paddq XMM0, XMM1;
 			movdqu c, XMM0;
 		}
--- a/run/a/asm_paddsb_01_A.d	Thu Jul 13 10:52:11 2006 +0000
+++ b/run/a/asm_paddsb_01_A.d	Fri Jul 14 23:04:11 2006 +0000
@@ -16,13 +16,47 @@
 	int main(){
 		haveSSE2!()();
 
-		static byte[16] A = [1, byte.min, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16];
-		static byte[16] B = [byte.max, -7, -6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6, 7];
-		byte[16] c;
+		byte[] a = new byte[16];
+		a[0] = 1;
+		a[1] = byte.min;
+		a[2] = 3;
+		a[3] = 4;
+		a[4] = 5;
+		a[5] = 6;
+		a[6] = 7;
+		a[7] = 8;
+		a[8] = 9;
+		a[9] = 10;
+		a[10] = 11;
+		a[11] = 12;
+		a[12] = 13;
+		a[13] = 14;
+		a[14] = 15;
+		a[15] = 16;
+
+		byte[] b = new byte[16];
+		b[0] = byte.max;
+		b[1] = -7;
+		b[2] = -6;
+		b[3] = -5;
+		b[4] = -4;
+		b[5] = -3;
+		b[6] = -2;
+		b[7] = -1;
+		b[8] = 0;
+		b[9] = 1;
+		b[10] = 2;
+		b[11] = 3;
+		b[12] = 4;
+		b[13] = 5;
+		b[14] = 6;
+		b[15] = 7;
+
+		byte[] c = new byte[16];
 
 		asm{
-			movdqu XMM0, A;
-			movdqu XMM1, B;
+			movdqu XMM0, a;
+			movdqu XMM1, b;
 			paddsb XMM0, XMM1;
 			movdqu c, XMM0;
 		}
--- a/run/a/asm_pf2id_01_B.d	Thu Jul 13 10:52:11 2006 +0000
+++ b/run/a/asm_pf2id_01_B.d	Fri Jul 14 23:04:11 2006 +0000
@@ -16,20 +16,23 @@
 	int main(){
 		have3DNow!()();
 
-		const float[2] A = [123.0f, -456.0f];
-		int[2] b;
+		float[] a = new float[2];
+		a[0] = 123.0f;
+		a[1] = -456.0f;
+		
+		int[] b = new int[2];
 
 		asm{
-			movq MM1, A;
+			movq MM1, a;
 			pf2id MM0, MM1;
 			movq b, MM0;
 			emms;
 		}
 
-		if(b[0] != A[0]){
+		if(b[0] != a[0]){
 			assert(0);
 		}
-		if(b[1] != A[1]){
+		if(b[1] != a[1]){
 			assert(0);
 		}
 
--- a/run/a/asm_pfacc_01_A.d	Thu Jul 13 10:52:11 2006 +0000
+++ b/run/a/asm_pfacc_01_A.d	Fri Jul 14 23:04:11 2006 +0000
@@ -6,13 +6,19 @@
 
 int main(){
 	version(D_InlineAsm_X86){
-		const float[2] A = [123.0f, -456.0f];
-		const float[2] B = [12.0f, 17.0f];
-		float[2] c;
+		float[] a = new float[2];
+		a[0] = 123.0f;
+		a[1] = -456.0f;
+		
+		float[] b = new float[2];
+		b[0] = 12.0f;
+		b[1] = 17.0f;
+		
+		float[] c = new float[2];
 
 		asm{
-			movq MM0, A;
-			pfacc MM0, B;
+			movq MM0, a;
+			pfacc MM0, b;
 			movq c, MM0;
 			emms;
 		}
--- a/run/a/asm_pfacc_01_B.d	Thu Jul 13 10:52:11 2006 +0000
+++ b/run/a/asm_pfacc_01_B.d	Fri Jul 14 23:04:11 2006 +0000
@@ -6,13 +6,19 @@
 
 int main(){
 	version(D_InlineAsm_X86){
-		const float[2] A = [123.0f, -456.0f];
-		const float[2] B = [12.0f, 17.0f];
-		float[2] c;
+		float[] a = new float[2];
+		a[0] = 123.0f;
+		a[1] = -456.0f;
+		
+		float[] b = new float[2];
+		b[0] = 12.0f;
+		b[1] = 17.0f;
+		
+		float[] c = new float[2];
 
 		asm{
-			movq MM0, A;
-			movq MM1, B;
+			movq MM0, a;
+			movq MM1, b;
 			pfacc MM0, MM1;
 			movq c, MM0;
 			emms;
--- a/run/a/asm_pfadd_01_A.d	Thu Jul 13 10:52:11 2006 +0000
+++ b/run/a/asm_pfadd_01_A.d	Fri Jul 14 23:04:11 2006 +0000
@@ -16,13 +16,19 @@
 	int main(){
 		have3DNow!()();
 
-		const float[2] A = [123.0f, -456.0f];
-		const float[2] B = [12.0f, 17.0f];
-		float[2] c;
+		float[] a = new float[2];
+		a[0] = 123.0f;
+		a[1] = -456.0f;
+
+		float[] b = new float[2];
+		b[0] = 12.0f;
+		b[1] = 17.0f;
+		
+		float[] c = new float[2];
 
 		asm{
-			movq MM0, A;
-			pfadd MM0, B;
+			movq MM0, a;
+			pfadd MM0, b;
 			movq c, MM0;
 			emms;
 		}
--- a/run/a/asm_pfadd_01_B.d	Thu Jul 13 10:52:11 2006 +0000
+++ b/run/a/asm_pfadd_01_B.d	Fri Jul 14 23:04:11 2006 +0000
@@ -16,13 +16,19 @@
 	int main(){
 		have3DNow!()();
 
-		const float[2] A = [123.0f, -456.0f];
-		const float[2] B = [12.0f, 17.0f];
-		float[2] c;
+		float[] a = new float[2];
+		a[0] = 123.0f;
+		a[1] = -456.0f;
+		
+		float[] b = new float[2];
+		b[0] = 12.0f;
+		b[1] = 17.0f;
+
+		float[] c = new float[2];
 
 		asm{
-			movq MM0, A;
-			movq MM1, B;
+			movq MM0, a;
+			movq MM1, b;
 			pfadd MM0, MM1;
 			movq c, MM0;
 			emms;
--- a/run/a/asm_pfcmpeq_01_A.d	Thu Jul 13 10:52:11 2006 +0000
+++ b/run/a/asm_pfcmpeq_01_A.d	Fri Jul 14 23:04:11 2006 +0000
@@ -4,15 +4,31 @@
 
 module dstress.run.a.asm_pfcmpeq_01_A;
 
-int main(){
-	version(D_InlineAsm_X86){
-		const float[2] A = [123.0f, -456.0f];
-		const float[2] B = [123.0f, 456.0f];
-		uint[2] c;
+version(D_InlineAsm_X86){
+	version = runTest;
+}else version(D_InlineAsm_X86_64){
+	version = runTest;
+}
+
+version(runTest){
+	import addon.cpuinfo;
+	
+	int main(){
+		haveMMX!()();
+
+		float[] a = new float[2];
+		a[0] = 123.0f;
+		a[1] = -456.0f;
+
+		float[] b = new float[2];
+		b[0] = 123.0f;
+		b[1] = 456.0f;
+
+		uint[] c = new uint[2];
 
 		asm{
-			movq MM0, A;
-			pfcmpeq MM0, B;
+			movq MM0, a;
+			pfcmpeq MM0, b;
 			movq c, MM0;
 			emms;
 		}
@@ -25,8 +41,8 @@
 		}
 
 		return 0;
-	}else{
-		pragma(msg, "no Inline asm support");
-		static assert(0);
 	}
+}else{
+	pragma(msg, "DSTRESS{XFAIL}: no inline ASM support");
+	static assert(0);
 }
--- a/run/a/asm_pfmax_01_A.d	Thu Jul 13 10:52:11 2006 +0000
+++ b/run/a/asm_pfmax_01_A.d	Fri Jul 14 23:04:11 2006 +0000
@@ -16,21 +16,27 @@
 	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] = 457.0f;
+		
+		float[] b = new float[2];
+		b[0] = 123.0f;
+		b[1] = 456.0f;
+		
+		float[] c = new float[2];
 
 		asm{
-			movq MM0, A;
-			pfmax MM0, B;
+			movq MM0, a;
+			pfmax MM0, b;
 			movq c, MM0;
 			emms;
 		}
 
-		if(c[0] != B[0]){
+		if(c[0] != b[0]){
 			assert(0);
 		}
-		if(c[1] != A[1]){
+		if(c[1] != a[1]){
 			assert(0);
 		}
 
--- a/run/a/asm_pfmax_01_B.d	Thu Jul 13 10:52:11 2006 +0000
+++ b/run/a/asm_pfmax_01_B.d	Fri Jul 14 23:04:11 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] = 457.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;
 			pfmax MM0, MM1;
 			movq c, MM0;
 			emms;
 		}
 
-		if(c[0] != B[0]){
+		if(c[0] != b[0]){
 			assert(0);
 		}
-		if(c[1] != A[1]){
+		if(c[1] != a[1]){
 			assert(0);
 		}
 
--- a/run/a/asm_punpcklwd_01_A.d	Thu Jul 13 10:52:11 2006 +0000
+++ b/run/a/asm_punpcklwd_01_A.d	Fri Jul 14 23:04:11 2006 +0000
@@ -16,14 +16,31 @@
 	int main(){
 		haveSSE2!()();
 
-		const short[8] A = [4, 5, 6, 7, 0, 1, 2, 3];
-		const short[8] B = [-4, -5, -6, -7, 0, -1, -2, -3];
+		short[] a = new short[8];
+		a[0] = 4;
+		a[1] = 5;
+		a[2] = 6;
+		a[3] = 7;
+		a[4] = 0;
+		a[5] = 1;
+		a[6] = 2;
+		a[7] = 3;
 
-		short[8] c;
+		short[] b = new short[8];
+		b[0] = -4;
+		b[1] = -5;
+		b[2] = -6;
+		b[3] = -7;
+		b[4] = 0;
+		b[5] = -1;
+		b[6] = -2;
+		b[7] = -3;
+
+		short[] c = new short[8];
 
 		asm{
-			movdqu XMM0, A;
-			movdqu XMM1, B;
+			movdqu XMM0, a;
+			movdqu XMM1, b;
 			punpcklwd XMM0, XMM1;
 			movdqu c, XMM0;
 		}
--- a/run/a/asm_rcpps_01_A.d	Thu Jul 13 10:52:11 2006 +0000
+++ b/run/a/asm_rcpps_01_A.d	Fri Jul 14 23:04:11 2006 +0000
@@ -16,11 +16,16 @@
 	int main(){
 		haveSSE2!()();
 
-		const float[4] A = [1.0f, 2.0f, 0.5f, -4.0f];
-		float[4] b;
+		float[] a = new float[4];
+		a[0] = 1.0f;
+		a[1] = 2.0f;
+		a[2] = 0.5f;
+		a[3] = -4.0f;
+
+		float[] b = new float[4];
 
 		asm{
-			movups XMM0, A;
+			movups XMM0, a;
 			rcpps XMM1, XMM0;
 			movups b, XMM1;
 		}
--- a/run/a/asm_rcpss_01_A.d	Thu Jul 13 10:52:11 2006 +0000
+++ b/run/a/asm_rcpss_01_A.d	Fri Jul 14 23:04:11 2006 +0000
@@ -16,13 +16,23 @@
 	int main(){
 		haveSSE2!()();
 
-		const float[4] A = [2.0f, 1.0f, 0.5f, -4.0f];
-		const float[4] B = [5.0f, 6.0f, 7.0f, 8.0f];
-		float[4] c;
+		float[] a = new float[4];
+		a[0] = 2.0f;
+		a[1] = 1.0f;
+		a[2] = 0.5f;
+		a[3] = -4.0f;
+
+		float[] b = new float[4];
+		b[0] = 5.0f;
+		b[1] = 6.0f;
+		b[2] = 7.0f;
+		b[3] = 8.0f;
+		
+		float[] c = new float[4];
 
 		asm{
-			movups XMM0, A;
-			movups XMM1, B;
+			movups XMM0, a;
+			movups XMM1, b;
 			rcpss XMM1, XMM0;
 			movups c, XMM1;
 		}
@@ -35,15 +45,15 @@
 			assert(0);
 		}
 
-		if(c[1] != B[1]){
+		if(c[1] != b[1]){
 			assert(0);
 		}
 
-		if(c[2] != B[2]){
+		if(c[2] != b[2]){
 			assert(0);
 		}
 
-		if(c[3] != B[3]){
+		if(c[3] != b[3]){
 			assert(0);
 		}
 
--- a/run/a/asm_rsqrtps_01_A.d	Thu Jul 13 10:52:11 2006 +0000
+++ b/run/a/asm_rsqrtps_01_A.d	Fri Jul 14 23:04:11 2006 +0000
@@ -16,13 +16,23 @@
 	int main(){
 		haveSSE!()();
 
-		const float[4] A = [1.0f, 2.0f, 3.0f, 4.0f];
-		const float[4] B = [-1.0f, 1.0f, 4.0f, -4.0f];
-		float[4] c;
+		float[] a = new float[4];
+		a[0] = 1.0f;
+		a[1] = 2.0f;
+		a[2] = 3.0f;
+		a[3] = 4.0f;
+
+		float[] b = new float[4];
+		b[0] = -1.0f;
+		b[1] = 1.0f;
+		b[2] = 4.0f;
+		b[3] = -4.0f;
+
+		float[] c = new float[4];
 
 		asm{
-			movups XMM0, A;
-			movups XMM1, B;
+			movups XMM0, a;
+			movups XMM1, b;
 			rsqrtps XMM0, XMM1;
 			movups c, XMM0;
 		}
--- a/run/a/asm_rsqrtss_01_A.d	Thu Jul 13 10:52:11 2006 +0000
+++ b/run/a/asm_rsqrtss_01_A.d	Fri Jul 14 23:04:11 2006 +0000
@@ -16,13 +16,23 @@
 	int main(){
 		haveSSE!()();
 
-		const float[4] A = [1.0f, 2.0f, 3.0f, 4.0f];
-		const float[4] B = [-1.0f, 1.0f, 4.0f, -4.0f];
-		float[4] c;
+		float[] a = new float[4];
+		a[0] = 1.0f;
+		a[1] = 2.0f;
+		a[2] = 3.0f;
+		a[3] = 4.0f;
+
+		float[] b = new float[4];
+		b[0] = -1.0f;
+		b[1] = 1.0f;
+		b[2] = 4.0f;
+		b[3] = -4.0f;
+
+		float[] c = new float[4];
 
 		asm{
-			movups XMM0, A;
-			movups XMM1, B;
+			movups XMM0, a;
+			movups XMM1, b;
 			rsqrtss XMM0, XMM1;
 			movups c, XMM0;
 		}
@@ -35,13 +45,13 @@
 			assert(0);
 		}
 
-		if(c[1] != A[1]){
+		if(c[1] != a[1]){
 			assert(0);
 		}
-		if(c[2] != A[2]){
+		if(c[2] != a[2]){
 			assert(0);
 		}
-		if(c[3] != A[3]){
+		if(c[3] != a[3]){
 			assert(0);
 		}