changeset 1084:91ff3e405be5

-fPIC fixes
author thomask
date Thu, 13 Jul 2006 10:52:11 +0000
parents 8d76f113a70c
children 98f634622849
files 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_movdq2q_01.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_movq_01_B.d
diffstat 28 files changed, 337 insertions(+), 146 deletions(-) [+]
line wrap: on
line diff
--- a/run/a/asm_hsubpd_01_A.d	Wed Jul 12 14:03:00 2006 +0000
+++ b/run/a/asm_hsubpd_01_A.d	Thu Jul 13 10:52:11 2006 +0000
@@ -16,15 +16,22 @@
 	int main(){
 		haveSSE3!()();
 
-		static double[2] A = [2.0, 3.0];
-		static double[2] B = [1.0, 4.0];
-		double[2] c;
+		double[] a = new double[2];
+		a[0] = 2.0;
+		a[1] = 3.0;
+		
+		double[] b = new double[2];
+		b[0] = 1.0;
+		b[1] = 4.0;
+		
+		double[] c = new double[2];
 
 		asm{
-			movupd XMM0, A;
-			movupd XMM1, B;
+			movupd XMM0, a;
+			movupd XMM1, b;
 			hsubpd XMM0, XMM1;
 			movupd c, XMM0;
+			emms;
 		}
 
 		c[0] += 1.0;
--- a/run/a/asm_hsubps_01_A.d	Wed Jul 12 14:03:00 2006 +0000
+++ b/run/a/asm_hsubps_01_A.d	Thu Jul 13 10:52:11 2006 +0000
@@ -16,15 +16,26 @@
 	int main(){
 		haveSSE3!()();
 
-		static float[4] A = [2.0f, 3.0f, 6.0f, 8.0f];
-		static float[4] B = [1.0f, 4.0f, 5.0f, 9.0f];
-		float[4] c;
+		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];
+		b[0] = 1.0f;
+		b[1] = 4.0f;
+		b[2] = 5.0f;
+		b[3] = 9.0f;
+
+		float[] c = new float[4];
 
 		asm{
-			movups XMM0, A;
-			movups XMM1, B;
+			movups XMM0, a;
+			movups XMM1, b;
 			hsubps XMM0, XMM1;
 			movups c, XMM0;
+			emms;
 		}
 
 		c[0] += 1.0f;
--- a/run/a/asm_maxpd_01_A.d	Wed Jul 12 14:03:00 2006 +0000
+++ b/run/a/asm_maxpd_01_A.d	Thu Jul 13 10:52:11 2006 +0000
@@ -16,15 +16,22 @@
 	int main(){
 		haveSSE2!()();
 
-		static double[2] A = [2.0, 3.0];
-		static double[2] B = [1.0, 4.0];
-		double[2] c;
+		double[] a = new double[2];
+		a[0] = 2.0;
+		a[1] = 3.0;
+
+		double[] b = new double[2];
+		b[0] = 1.0;
+		b[1] = 4.0;
+		
+		double[] c = new double[2];
 
 		asm{
-			movupd XMM0, A;
-			movupd XMM1, B;
+			movupd XMM0, a;
+			movupd XMM1, b;
 			maxpd XMM0, XMM1;
 			movupd c, XMM0;
+			emms;
 		}
 
 		if(c[0] != 2.0){
--- a/run/a/asm_maxps_01_A.d	Wed Jul 12 14:03:00 2006 +0000
+++ b/run/a/asm_maxps_01_A.d	Thu Jul 13 10:52:11 2006 +0000
@@ -16,15 +16,26 @@
 	int main(){
 		haveSSE!()();
 
-		static float[4] A = [2.0f, 3.0f, 16.0f, -1.0f];
-		static float[4] B = [1.0f, 4.0f, -17.0f, 1.0f];
-		float[4] c;
+		float[] a = new float[4];
+		a[0] = 2.0f;
+		a[1] = 3.0f;
+		a[2] = 16.0f;
+		a[3] = -1.0f;
+		
+		float[] b = new float[4];
+		b[0] = 1.0f;
+		b[1] = 4.0f;
+		b[2] = -17.0f;
+		b[3] = 1.0f;
+
+		float[] c = new float[4];
 
 		asm{
-			movups XMM0, A;
-			movups XMM1, B;
+			movups XMM0, a;
+			movups XMM1, b;
 			maxps XMM0, XMM1;
 			movups c, XMM0;
+			emms;
 		}
 
 		if(c[0] != 2.0f){
--- a/run/a/asm_maxsd_01_A.d	Wed Jul 12 14:03:00 2006 +0000
+++ b/run/a/asm_maxsd_01_A.d	Thu Jul 13 10:52:11 2006 +0000
@@ -16,15 +16,22 @@
 	int main(){
 		haveSSE2!()();
 
-		static double[2] A = [1.0, 3.0];
-		static double[2] B = [2.0, 4.0];
-		double[2] c;
+		double[] a = new double[2];
+		a[0] = 1.0;
+		a[1] = 3.0;
+		
+		double[] b = new double[2];
+		b[0] = 2.0;
+		b[1] = 4.0;
+		
+		double[] c = new double[2];
 
 		asm{
-			movupd XMM0, A;
-			movupd XMM1, B;
+			movupd XMM0, a;
+			movupd XMM1, b;
 			maxsd XMM0, XMM1;
 			movupd c, XMM0;
+			emms;
 		}
 
 		if(c[0] != 2.0){
--- a/run/a/asm_maxss_01_A.d	Wed Jul 12 14:03:00 2006 +0000
+++ b/run/a/asm_maxss_01_A.d	Thu Jul 13 10:52:11 2006 +0000
@@ -16,15 +16,26 @@
 	int main(){
 		haveSSE!()();
 
-		static float[4] A = [1.0f, 3.0f, 16.0f, -1.0f];
-		static float[4] B = [2.0f, 4.0f, -17.0f, 1.0f];
-		float[4] c;
+		float[] a = new float[4];
+		a[0] = 1.0f;
+		a[1] = 3.0f;
+		a[2] = 16.0f;
+		a[3] = -1.0f;
+		
+		float[] b = new float[4];
+		b[0] = 2.0f;
+		b[1] = 4.0f;
+		b[2] = -17.0f;
+		b[3] = 1.0f;
+
+		float[] c = new float[4];
 
 		asm{
-			movups XMM0, A;
-			movups XMM1, B;
+			movups XMM0, a;
+			movups XMM1, b;
 			maxss XMM0, XMM1;
 			movups c, XMM0;
+			emms;
 		}
 
 		if(c[0] != 2.0f){
--- a/run/a/asm_minpd_01_A.d	Wed Jul 12 14:03:00 2006 +0000
+++ b/run/a/asm_minpd_01_A.d	Thu Jul 13 10:52:11 2006 +0000
@@ -16,15 +16,22 @@
 	int main(){
 		haveSSE2!()();
 
-		static double[2] A = [2.0, 3.0];
-		static double[2] B = [1.0, 4.0];
-		double[2] c;
+		double[] a = new double[2];
+		a[0] = 2.0;
+		a[1] = 3.0;
+		
+		double[] b = new double[2];
+		b[0] = 1.0;
+		b[1] = 4.0;
+		
+		double[] c = new double[2];
 
 		asm{
-			movupd XMM0, A;
-			movupd XMM1, B;
+			movupd XMM0, a;
+			movupd XMM1, b;
 			minpd XMM0, XMM1;
 			movupd c, XMM0;
+			emms;
 		}
 
 		if(c[0] != 1.0){
--- a/run/a/asm_minps_01_A.d	Wed Jul 12 14:03:00 2006 +0000
+++ b/run/a/asm_minps_01_A.d	Thu Jul 13 10:52:11 2006 +0000
@@ -16,15 +16,26 @@
 	int main(){
 		haveSSE!()();
 
-		static float[4] A = [2.0f, 3.0f, 17.0f, -1.0f];
-		static float[4] B = [1.0f, 4.0f, 16.0f, 1.0f];
-		float[4] c;
+		float[] a = new float[4];
+		a[0] = 2.0f;
+		a[1] = 3.0f;
+		a[2] = 17.0f;
+		a[3] = -1.0f;
+		
+		float[] b = new float[4];
+		b[0] = 1.0f;
+		b[1] = 4.0f;
+		b[2] = 16.0f;
+		b[3] = 1.0f;
+		
+		float[] c = new float[4];
 
 		asm{
-			movups XMM0, A;
-			movups XMM1, B;
+			movups XMM0, a;
+			movups XMM1, b;
 			minps XMM0, XMM1;
 			movups c, XMM0;
+			emms;
 		}
 
 		if(c[0] != 1.0f){
--- a/run/a/asm_minsd_01_A.d	Wed Jul 12 14:03:00 2006 +0000
+++ b/run/a/asm_minsd_01_A.d	Thu Jul 13 10:52:11 2006 +0000
@@ -16,15 +16,22 @@
 	int main(){
 		haveSSE2!()();
 
-		static double[2] A = [2.0, 4.0];
-		static double[2] B = [1.0, 3.0];
-		double[2] c;
+		double[] a = new double[2];
+		a[0] = 2.0;
+		a[1] = 4.0;
+		
+		double[] b = new double[2];
+		b[0] = 1.0;
+		b[1] = 3.0;
+		
+		double[] c = new double[2];
 
 		asm{
-			movupd XMM0, A;
-			movupd XMM1, B;
+			movupd XMM0, a;
+			movupd XMM1, b;
 			minsd XMM0, XMM1;
 			movupd c, XMM0;
+			emms;
 		}
 
 		if(c[0] != 1.0){
--- a/run/a/asm_minsd_01_B.d	Wed Jul 12 14:03:00 2006 +0000
+++ b/run/a/asm_minsd_01_B.d	Thu Jul 13 10:52:11 2006 +0000
@@ -16,14 +16,18 @@
 	int main(){
 		haveSSE2!()();
 
-		static double[2] A = [3.0, 4.0];
+		double[] a = new double[2];
+		a[0] = 3.0;
+		a[1] = 4.0;
+
 		double b = 2.0;
-		double[2] c;
+		double[] c = new double[2];
 
 		asm{
-			movupd XMM0, A;
+			movupd XMM0, a;
 			minsd XMM0, b;
 			movupd c, XMM0;
+			emms;
 		}
 
 		if(c[0] != 2.0){
--- a/run/a/asm_minss_01_A.d	Wed Jul 12 14:03:00 2006 +0000
+++ b/run/a/asm_minss_01_A.d	Thu Jul 13 10:52:11 2006 +0000
@@ -16,15 +16,26 @@
 	int main(){
 		haveSSE!()();
 
-		static float[4] A = [2.0f, 3.0f, 17.0f, -1.0f];
-		static float[4] B = [1.0f, 4.0f, 16.0f, 1.0f];
-		float[4] c;
+		float[] a = new float[4];
+		a[0] = 2.0f;
+		a[1] = 3.0f;
+		a[2] = 17.0f;
+		a[3] = -1.0f;
+		
+		float[] b = new float[4];
+		b[0] = 1.0f;
+		b[1] = 4.0f;
+		b[2] = 16.0f;
+		b[3] = 1.0f;
+
+		float[] c = new float[4];
 
 		asm{
-			movups XMM0, A;
-			movups XMM1, B;
+			movups XMM0, a;
+			movups XMM1, b;
 			minss XMM0, XMM1;
 			movups c, XMM0;
+			emms;
 		}
 
 		if(c[0] != 1.0f){
--- a/run/a/asm_minss_01_B.d	Wed Jul 12 14:03:00 2006 +0000
+++ b/run/a/asm_minss_01_B.d	Thu Jul 13 10:52:11 2006 +0000
@@ -16,14 +16,20 @@
 	int main(){
 		haveSSE!()();
 
-		static float[4] A = [2.0f, 3.0f, 17.0f, -1.0f];
+		float[] a = new float[4];
+		a[0] = 2.0f;
+		a[1] = 3.0f;
+		a[2] = 17.0f;
+		a[3] = -1.0f;
+		
 		float b = 1.0f;
-		float[4] c;
+		float[] c = new float[4];
 
 		asm{
-			movups XMM0, A;
+			movups XMM0, a;
 			minss XMM0, b;
 			movups c, XMM0;
+			emms;
 		}
 
 		if(c[0] != 1.0f){
--- a/run/a/asm_movapd_01_A.d	Wed Jul 12 14:03:00 2006 +0000
+++ b/run/a/asm_movapd_01_A.d	Thu Jul 13 10:52:11 2006 +0000
@@ -16,20 +16,23 @@
 	int main(){
 		haveSSE2!()();
 
-		static double[2] A = [2.0, 3.0];
-		double[2] b;
+		double[] a = new double[2];
+		a[0] = 2.0;
+		a[1] = 3.0;
+		double[] b = new double[2];
 
 		asm{
-			movdqu XMM0, A;
+			movdqu XMM0, a;
 			movapd XMM1, XMM0;
 			movdqu b, XMM1;
+			emms;
 		}
 
-		if(A[0] != b[0]){
+		if(a[0] != b[0]){
 			assert(0);
 		}
 
-		if(A[1] != b[1]){
+		if(a[1] != b[1]){
 			assert(0);
 		}
 
--- a/run/a/asm_movaps_01_A.d	Wed Jul 12 14:03:00 2006 +0000
+++ b/run/a/asm_movaps_01_A.d	Thu Jul 13 10:52:11 2006 +0000
@@ -16,28 +16,34 @@
 	int main(){
 		haveSSE!()();
 
-		static float[4] A = [2.0f, 3.0f, 0.0f, 0.5f];
-		float[4] b;
+		float[] a = new float[4];
+		a[0] = 2.0f;
+		a[1] = 3.0f;
+		a[2] = 0.0f;
+		a[3] = 0.5f;
+		
+		float[] b = new float[4];
 
 		asm{
-			movdqu XMM0, A;
+			movdqu XMM0, a;
 			movaps XMM1, XMM0;
 			movdqu b, XMM1;
+			emms;
 		}
 
-		if(A[0] != b[0]){
+		if(a[0] != b[0]){
 			assert(0);
 		}
 
-		if(A[1] != b[1]){
+		if(a[1] != b[1]){
 			assert(0);
 		}
 
-		if(A[2] != b[2]){
+		if(a[2] != b[2]){
 			assert(0);
 		}
 
-		if(A[3] != b[3]){
+		if(a[3] != b[3]){
 			assert(0);
 		}
 		return 0;
--- a/run/a/asm_movddup_01_A.d	Wed Jul 12 14:03:00 2006 +0000
+++ b/run/a/asm_movddup_01_A.d	Thu Jul 13 10:52:11 2006 +0000
@@ -16,21 +16,25 @@
 	int main(){
 		haveSSE3!()();
 
-		static double[2] A = [2.0, 3.0];
-		double[2] b;
+		double[] a = new double[2];
+		a[0] = 2.0;
+		a[1] = 3.0;
+		
+		double[] b = new double[2];
 
 		asm{
-			movupd XMM0, A;
-			movupd XMM1, A;
+			movupd XMM0, a;
+			movupd XMM1, a;
 			movddup XMM1, XMM0;
 			movupd b, XMM1;
+			emms;
 		}
 
-		if(A[0] != b[0]){
+		if(a[0] != b[0]){
 			assert(0);
 		}
 
-		if(A[0] != b[1]){
+		if(a[0] != b[1]){
 			assert(0);
 		}
 
--- a/run/a/asm_movddup_01_B.d	Wed Jul 12 14:03:00 2006 +0000
+++ b/run/a/asm_movddup_01_B.d	Thu Jul 13 10:52:11 2006 +0000
@@ -16,14 +16,18 @@
 	int main(){
 		haveSSE3!()();
 
-		static double[2] A = [2.0, 3.0];
-		double[2] b;
+		double[] a = new double[2];
+		a[0] = 2.0;
+		a[1] = 3.0;
+		
+		double[] b = new double[2];
 		double c = 1.0;
 
 		asm{
-			movupd XMM0, A;
+			movupd XMM0, a;
 			movddup XMM0, c;
 			movupd b, XMM0;
+			emms;
 		}
 
 		if(b[0] != 1.0){
--- a/run/a/asm_movdq2q_01.d	Wed Jul 12 14:03:00 2006 +0000
+++ b/run/a/asm_movdq2q_01.d	Thu Jul 13 10:52:11 2006 +0000
@@ -16,16 +16,20 @@
 	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;
 
 		asm{
-			movupd XMM0, A;
+			movupd XMM0, a;
 			movdq2q MM0, XMM0;
 			movq b, MM0;
+			emms;
 		}
 
-		if(b != A[1]){
+		if(b != a[1]){
 			return 0;
 		}
 	}
--- a/run/a/asm_movhlps_01_A.d	Wed Jul 12 14:03:00 2006 +0000
+++ b/run/a/asm_movhlps_01_A.d	Thu Jul 13 10:52:11 2006 +0000
@@ -20,30 +20,41 @@
 	int main(){
 		haveSSE!()();
 
-		static float[4] A = [3.0f, 4.0f, 5.0f, 6.0f];
-		static float[4] B = [10.0f, 20.0f, 30.0f, 40.0f];
-		float[4] c;
+		float[] a = new float[4];
+		a[0] = 3.0f;
+		a[1] = 4.0f;
+		a[2] = 5.0f;
+		a[3] = 6.0f;
+
+		float[] b = new float[4];
+		a[0] = 10.0f;
+		a[1] = 20.0f;
+		a[2] = 30.0f;
+		a[3] = 40.0f;
+
+		float[] c = new float[4];
 
 		asm{
-			movups XMM0, A;
-			movups XMM1, B;
+			movups XMM0, a;
+			movups XMM1, b;
 			movlhps XMM0, XMM1;
 			movups c, XMM0;
+			emms;
 		}
 
-		if(c[0] != A[0]){
+		if(c[0] != a[0]){
 			assert(0);
 		}
 
-		if(c[1] != A[1]){
+		if(c[1] != a[1]){
 			assert(0);
 		}
 
-		if(c[2] != B[0]){
+		if(c[2] != b[0]){
 			assert(0);
 		}
 
-		if(c[3] != B[1]){
+		if(c[3] != b[1]){
 			assert(0);
 		}
 
--- a/run/a/asm_movhpd_01_A.d	Wed Jul 12 14:03:00 2006 +0000
+++ b/run/a/asm_movhpd_01_A.d	Thu Jul 13 10:52:11 2006 +0000
@@ -16,21 +16,25 @@
 	int main(){
 		haveSSE2!()();
 
-		static double[2] A = [1.0, 2.0];
-		double B = 4.0;
-		double[2] b;
+		double[] a = new double[2];
+		a[0] = 1.0;
+		a[1] = 2.0;
+		
+		double b = 4.0;
+		double[] c = new double[2];
 
 		asm{
-			movupd XMM0, A;
-			movhpd XMM0, B;
-			movupd b, XMM0;
+			movupd XMM0, a;
+			movhpd XMM0, b;
+			movupd c, XMM0;
+			emms;
 		}
 
-		if(b[0] != A[0]){
+		if(c[0] != a[0]){
 			assert(0);
 		}
 
-		if(b[1] != B){
+		if(c[1] != b){
 			assert(0);
 		}
 
--- a/run/a/asm_movhpd_01_B.d	Wed Jul 12 14:03:00 2006 +0000
+++ b/run/a/asm_movhpd_01_B.d	Thu Jul 13 10:52:11 2006 +0000
@@ -16,15 +16,19 @@
 	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;
 			movhpd b, XMM0;
+			emms;
 		}
 
-		if(b != A[1]){
+		if(b != a[1]){
 			assert(0);
 		}
 
--- a/run/a/asm_movhps_01_A.d	Wed Jul 12 14:03:00 2006 +0000
+++ b/run/a/asm_movhps_01_A.d	Thu Jul 13 10:52:11 2006 +0000
@@ -16,26 +16,35 @@
 	int main(){
 		haveSSE!()();
 
-		static float[4] A = [1.0f, 2.0f, 3.0f, 4.0f];
-		static float[2] B = [5.0f, 6.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[2];
+		b[0] = 5.0f;
+		b[1] = 6.0f;
+		
+		float[] c = new float[4];
 
 		asm{
-			movups XMM0, A;
-			movhps XMM0, B;
+			movups XMM0, a;
+			movhps XMM0, b;
 			movups c, XMM0;
+			emms;
 		}
 
-		if(c[0] != A[0]){
+		if(c[0] != a[0]){
 			assert(0);
 		}
-		if(c[1] != A[1]){
+		if(c[1] != a[1]){
 			assert(0);
 		}
-		if(c[2] != B[0]){
+		if(c[2] != b[0]){
 			assert(0);
 		}
-		if(c[3] != B[1]){
+		if(c[3] != b[1]){
 			assert(0);
 		}
 
--- a/run/a/asm_movhps_01_B.d	Wed Jul 12 14:03:00 2006 +0000
+++ b/run/a/asm_movhps_01_B.d	Thu Jul 13 10:52:11 2006 +0000
@@ -16,18 +16,23 @@
 	int main(){
 		haveSSE!()();
 
-		static float[4] A = [1.0f, 2.0f, 3.0f, 4.0f];
-		float[2] b;
+		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[2];
 
 		asm{
-			movups XMM0, A;
+			movups XMM0, a;
 			movhps b, XMM0;
+			emms;
 		}
 
-		if(b[0] != A[2]){
+		if(b[0] != a[2]){
 			assert(0);
 		}
-		if(b[1] != A[3]){
+		if(b[1] != a[3]){
 			assert(0);
 		}
 
--- a/run/a/asm_movlhps_01_A.d	Wed Jul 12 14:03:00 2006 +0000
+++ b/run/a/asm_movlhps_01_A.d	Thu Jul 13 10:52:11 2006 +0000
@@ -16,30 +16,41 @@
 	int main(){
 		haveSSE!()();
 
-		static float[4] A = [3.0f, 4.0f, 5.0f, 6.0f];
-		static float[4] B = [10.0f, 20.0f, 30.0f, 40.0f];
-		float[4] c;
+		float[] a = new float[4];
+		a[0] = 3.0f;
+		a[1] = 4.0f;
+		a[2] = 5.0f;
+		a[3] = 6.0f;
+		
+		float[] b = new float[4];
+		b[0] = 10.0f;
+		b[1] = 20.0f;
+		b[2] = 30.0f;
+		b[3] = 40.0f;
+
+		float[] c = new float[4];
 
 		asm{
-			movups XMM0, A;
-			movups XMM1, B;
+			movups XMM0, a;
+			movups XMM1, b;
 			movlhps XMM0, XMM1;
 			movups c, XMM0;
+			emms;
 		}
 
-		if(c[0] != A[0]){
+		if(c[0] != a[0]){
 			assert(0);
 		}
 
-		if(c[1] != A[1]){
+		if(c[1] != a[1]){
 			assert(0);
 		}
 
-		if(c[2] != B[0]){
+		if(c[2] != b[0]){
 			assert(0);
 		}
 
-		if(c[3] != B[1]){
+		if(c[3] != b[1]){
 			assert(0);
 		}
 
--- a/run/a/asm_movlpd_01_A.d	Wed Jul 12 14:03:00 2006 +0000
+++ b/run/a/asm_movlpd_01_A.d	Thu Jul 13 10:52:11 2006 +0000
@@ -16,21 +16,26 @@
 	int main(){
 		haveSSE2!()();
 
-		static double[2] A = [3.0, 4.0];
+		double[] a = new double[2];
+		a[0] = 3.0;
+		a[1] = 4.0;
+		
 		double b = 5.0;
-		double[2] c;
+		
+		double[] c = new double[2];
 
 		asm{
-			movups XMM0, A;
+			movups XMM0, a;
 			movlpd XMM0, b;
 			movups c, XMM0;
+			emms;
 		}
 
 		if(c[0] != b){
 			assert(0);
 		}
 
-		if(c[1] != A[1]){
+		if(c[1] != a[1]){
 			assert(0);
 		}
 
--- a/run/a/asm_movlpd_01_B.d	Wed Jul 12 14:03:00 2006 +0000
+++ b/run/a/asm_movlpd_01_B.d	Thu Jul 13 10:52:11 2006 +0000
@@ -16,15 +16,19 @@
 	int main(){
 		haveSSE2!()();
 
-		static double[2] A = [3.0, 4.0];
+		double[] a = new double[2];
+		a[0] = 3.0;
+		a[1] = 4.0;
+
 		double b = 5.0;
 
 		asm{
-			movups XMM0, A;
+			movups XMM0, a;
 			movlpd b, XMM0;
+			emms;
 		}
 
-		if(b != A[0]){
+		if(b != a[0]){
 			assert(0);
 		}
 
--- a/run/a/asm_movlps_01_A.d	Wed Jul 12 14:03:00 2006 +0000
+++ b/run/a/asm_movlps_01_A.d	Thu Jul 13 10:52:11 2006 +0000
@@ -16,27 +16,35 @@
 	int main(){
 		haveSSE!()();
 
-		static float[4] A = [1.0f, 2.0f, 3.0f, 4.0f];
-		static float[2] B = [5.0f, 6.0f];
+		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[2];
+		b[0] = 5.0f;
+		b[1] = 6.0f;
 
-		float[4] c;
+		float[] c = new float[4];
 
 		asm{
-			movups XMM0, A;
-			movlps XMM0, B;
+			movups XMM0, a;
+			movlps XMM0, b;
 			movups c, XMM0;
+			emms;
 		}
 
-		if(c[0] != B[0]){
+		if(c[0] != b[0]){
 			assert(0);
 		}
-		if(c[1] != B[1]){
+		if(c[1] != b[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);
 		}
 		return 0;
--- a/run/a/asm_movlps_01_B.d	Wed Jul 12 14:03:00 2006 +0000
+++ b/run/a/asm_movlps_01_B.d	Thu Jul 13 10:52:11 2006 +0000
@@ -16,18 +16,24 @@
 	int main(){
 		haveSSE!()();
 
-		static float[4] A = [1.0f, 2.0f, 3.0f, 4.0f];
-		float[2] b;
+		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[2];
 
 		asm{
-			movups XMM0, A;
+			movups XMM0, a;
 			movlps b, XMM0;
+			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_movq_01_B.d	Wed Jul 12 14:03:00 2006 +0000
+++ b/run/a/asm_movq_01_B.d	Thu Jul 13 10:52:11 2006 +0000
@@ -16,8 +16,10 @@
 	int main(){
 		haveSSE2!()();
 
-		static ulong[2] a = [0x1234_ABCD_56789_EF90_LU, 0x1122_5566_77AA_FFFF_LU];
-		ulong[2] b;
+		ulong[] a = new ulong[2];
+		a[0] = 0x1234_ABCD_5678_EF90_LU;
+		a[1] = 0x1122_5566_77AA_FFFF_LU;
+		ulong[] b = new ulong[2];
 
 		ulong c = 0x1234_ABCD_5678_EF01_LU;
 
@@ -25,6 +27,7 @@
 			movdqu XMM0, a;
 			movq XMM0, c;
 			movdqu b, XMM0;
+			emms;
 		}
 
 		if(b[0] != c){