Make x86_64 SIMD code PIC friendly

Use RIP relative addressing as that works in both PIC and non-PIC mode.


git-svn-id: svn://svn.code.sf.net/p/tigervnc/code/trunk@3864 3789f03b-4d11-0410-bbf8-ca57d06f2519
diff --git a/common/jpeg/simd/jiss2red-64.asm b/common/jpeg/simd/jiss2red-64.asm
index 381180c..dcf745b 100644
--- a/common/jpeg/simd/jiss2red-64.asm
+++ b/common/jpeg/simd/jiss2red-64.asm
@@ -186,10 +186,10 @@
 	punpckhwd xmm5,xmm1
 	movdqa    xmm0,xmm4
 	movdqa    xmm1,xmm5
-	pmaddwd   xmm4,[PW_F256_F089]	; xmm4=(tmp2L)
-	pmaddwd   xmm5,[PW_F256_F089]	; xmm5=(tmp2H)
-	pmaddwd   xmm0,[PW_F106_MF217]	; xmm0=(tmp0L)
-	pmaddwd   xmm1,[PW_F106_MF217]	; xmm1=(tmp0H)
+	pmaddwd   xmm4,[rel PW_F256_F089]	; xmm4=(tmp2L)
+	pmaddwd   xmm5,[rel PW_F256_F089]	; xmm5=(tmp2H)
+	pmaddwd   xmm0,[rel PW_F106_MF217]	; xmm0=(tmp0L)
+	pmaddwd   xmm1,[rel PW_F106_MF217]	; xmm1=(tmp0H)
 
 	movdqa    xmm6,xmm2
 	movdqa    xmm7,xmm2
@@ -197,10 +197,10 @@
 	punpckhwd xmm7,xmm3
 	movdqa    xmm2,xmm6
 	movdqa    xmm3,xmm7
-	pmaddwd   xmm6,[PW_MF060_MF050]	; xmm6=(tmp2L)
-	pmaddwd   xmm7,[PW_MF060_MF050]	; xmm7=(tmp2H)
-	pmaddwd   xmm2,[PW_F145_MF021]	; xmm2=(tmp0L)
-	pmaddwd   xmm3,[PW_F145_MF021]	; xmm3=(tmp0H)
+	pmaddwd   xmm6,[rel PW_MF060_MF050]	; xmm6=(tmp2L)
+	pmaddwd   xmm7,[rel PW_MF060_MF050]	; xmm7=(tmp2H)
+	pmaddwd   xmm2,[rel PW_F145_MF021]	; xmm2=(tmp0L)
+	pmaddwd   xmm3,[rel PW_F145_MF021]	; xmm3=(tmp0H)
 
 	paddd	xmm6,xmm4		; xmm6=tmp2L
 	paddd	xmm7,xmm5		; xmm7=tmp2H
@@ -229,8 +229,8 @@
 	movdqa    xmm3,xmm5		; xmm5=in2=z2
 	punpcklwd xmm5,xmm0		; xmm0=in6=z3
 	punpckhwd xmm3,xmm0
-	pmaddwd   xmm5,[PW_F184_MF076]	; xmm5=tmp2L
-	pmaddwd   xmm3,[PW_F184_MF076]	; xmm3=tmp2H
+	pmaddwd   xmm5,[rel PW_F184_MF076]	; xmm5=tmp2L
+	pmaddwd   xmm3,[rel PW_F184_MF076]	; xmm3=tmp2H
 
 	movdqa	xmm4,xmm1
 	movdqa	xmm0,xmm2
@@ -248,7 +248,7 @@
 	psubd	xmm5,xmm6		; xmm5=data3L
 	psubd	xmm3,xmm7		; xmm3=data3H
 
-	movdqa	xmm6,[PD_DESCALE_P1_4]	; xmm6=[PD_DESCALE_P1_4]
+	movdqa	xmm6,[rel PD_DESCALE_P1_4]	; xmm6=[rel PD_DESCALE_P1_4]
 
 	paddd	xmm1,xmm6
 	paddd	xmm2,xmm6
@@ -272,7 +272,7 @@
 	psubd	xmm2,xmm7		; xmm2=data2L
 	psubd	xmm3,xmm6		; xmm3=data2H
 
-	movdqa	xmm7,[PD_DESCALE_P1_4]	; xmm7=[PD_DESCALE_P1_4]
+	movdqa	xmm7,[rel PD_DESCALE_P1_4]	; xmm7=[rel PD_DESCALE_P1_4]
 
 	paddd	xmm4,xmm7
 	paddd	xmm0,xmm7
@@ -326,10 +326,10 @@
 	punpckhwd xmm6,xmm3
 	movdqa    xmm5,xmm1
 	movdqa    xmm2,xmm6
-	pmaddwd   xmm1,[PW_F256_F089]	; xmm1=(tmp2)
-	pmaddwd   xmm6,[PW_MF060_MF050]	; xmm6=(tmp2)
-	pmaddwd   xmm5,[PW_F106_MF217]	; xmm5=(tmp0)
-	pmaddwd   xmm2,[PW_F145_MF021]	; xmm2=(tmp0)
+	pmaddwd   xmm1,[rel PW_F256_F089]	; xmm1=(tmp2)
+	pmaddwd   xmm6,[rel PW_MF060_MF050]	; xmm6=(tmp2)
+	pmaddwd   xmm5,[rel PW_F106_MF217]	; xmm5=(tmp0)
+	pmaddwd   xmm2,[rel PW_F145_MF021]	; xmm2=(tmp0)
 
 	paddd     xmm6,xmm1		; xmm6=tmp2
 	paddd     xmm2,xmm5		; xmm2=tmp0
@@ -337,7 +337,7 @@
 	; -- Even part
 
 	punpcklwd xmm0,xmm3
-	pmaddwd   xmm0,[PW_F184_MF076]	; xmm0=tmp2
+	pmaddwd   xmm0,[rel PW_F184_MF076]	; xmm0=tmp2
 
 	movdqa    xmm7,xmm4
 	paddd     xmm4,xmm0		; xmm4=tmp10
@@ -345,7 +345,7 @@
 
 	; -- Final output stage
 
-	movdqa	xmm1,[PD_DESCALE_P2_4]	; xmm1=[PD_DESCALE_P2_4]
+	movdqa	xmm1,[rel PD_DESCALE_P2_4]	; xmm1=[rel PD_DESCALE_P2_4]
 
 	movdqa	xmm5,xmm4
 	movdqa	xmm3,xmm7
@@ -375,7 +375,7 @@
 	punpckhdq xmm6,xmm0		; xmm6=(20 21 22 23 30 31 32 33)
 
 	packsswb  xmm4,xmm6		; xmm4=(00 01 02 03 10 11 12 13 20 ..)
-	paddb     xmm4,[PB_CENTERJSAMP]
+	paddb     xmm4,[rel PB_CENTERJSAMP]
 
 	pshufd    xmm2,xmm4,0x39	; xmm2=(10 11 12 13 20 21 22 23 30 ..)
 	pshufd    xmm1,xmm4,0x4E	; xmm1=(20 21 22 23 30 31 32 33 00 ..)
@@ -457,8 +457,8 @@
 	movdqa    xmm5,xmm2		; xmm5=(50 51 ** 53 ** 55 ** 57)
 	punpcklwd xmm4,xmm1		; xmm4=(10 30 11 31 ** ** 13 33)
 	punpcklwd xmm5,xmm3		; xmm5=(50 70 51 71 ** ** 53 73)
-	pmaddwd   xmm4,[PW_F362_MF127]
-	pmaddwd   xmm5,[PW_F085_MF072]
+	pmaddwd   xmm4,[rel PW_F362_MF127]
+	pmaddwd   xmm5,[rel PW_F085_MF072]
 
 	psrld	xmm0,WORD_BIT		; xmm0=(11 -- 13 -- 15 -- 17 --)
 	pand	xmm1,xmm7		; xmm1=(-- 31 -- 33 -- 35 -- 37)
@@ -466,8 +466,8 @@
 	pand	xmm3,xmm7		; xmm3=(-- 71 -- 73 -- 75 -- 77)
 	por	xmm0,xmm1		; xmm0=(11 31 13 33 15 35 17 37)
 	por	xmm2,xmm3		; xmm2=(51 71 53 73 55 75 57 77)
-	pmaddwd	xmm0,[PW_F362_MF127]
-	pmaddwd	xmm2,[PW_F085_MF072]
+	pmaddwd	xmm0,[rel PW_F362_MF127]
+	pmaddwd	xmm2,[rel PW_F085_MF072]
 
 	paddd	xmm4,xmm5		; xmm4=tmp0[col0 col1 **** col3]
 	paddd	xmm0,xmm2		; xmm0=tmp0[col1 col3 col5 col7]
@@ -494,7 +494,7 @@
 	psubd	xmm3,xmm4	; xmm3=data1[col0 **** **** ****]=(B0 ** ** **)
 	psubd	xmm5,xmm0	; xmm5=data1[col1 col3 col5 col7]=(B1 B3 B5 B7)
 
-	movdqa	xmm2,[PD_DESCALE_P1_2]	; xmm2=[PD_DESCALE_P1_2]
+	movdqa	xmm2,[rel PD_DESCALE_P1_2]	; xmm2=[rel PD_DESCALE_P1_2]
 
 	punpckldq  xmm6,xmm3		; xmm6=(A0 B0 ** **)
 
@@ -533,8 +533,8 @@
 
 	packssdw  xmm1,xmm1		; xmm1=(A1 A3 B1 B3 A1 A3 B1 B3)
 	packssdw  xmm7,xmm7		; xmm7=(A5 A7 B5 B7 A5 A7 B5 B7)
-	pmaddwd   xmm1,[PW_F362_MF127]
-	pmaddwd   xmm7,[PW_F085_MF072]
+	pmaddwd   xmm1,[rel PW_F362_MF127]
+	pmaddwd   xmm7,[rel PW_F085_MF072]
 
 	paddd     xmm1,xmm7		; xmm1=tmp0[row0 row1 row0 row1]
 
@@ -550,12 +550,12 @@
 
 	punpckldq xmm6,xmm4	; xmm6=(C0 D0 C1 D1)
 
-	paddd     xmm6,[PD_DESCALE_P2_2]
+	paddd     xmm6,[rel PD_DESCALE_P2_2]
 	psrad     xmm6,DESCALE_P2_2
 
 	packssdw  xmm6,xmm6		; xmm6=(C0 D0 C1 D1 C0 D0 C1 D1)
 	packsswb  xmm6,xmm6		; xmm6=(C0 D0 C1 D1 C0 D0 C1 D1 ..)
-	paddb     xmm6,[PB_CENTERJSAMP]
+	paddb     xmm6,[rel PB_CENTERJSAMP]
 
 	pextrw	ebx,xmm6,0x00		; ebx=(C0 D0 -- --)
 	pextrw	ecx,xmm6,0x01		; ecx=(C1 D1 -- --)