Changeset 135815030f96a6a9f86711d82a58473bd843b6ba
- Timestamp:
- 26/03/08 08:05:01
(7 months ago)
- Author:
- Rafaël Carré <funman@videolan.org>
- git-committer:
- Rafaël Carré <funman@videolan.org> 1206515101 +0100
- git-parent:
[6c50d21cebc1c6c809e56400f4cc5ed7aa6856a4]
- git-author:
- Rafaël Carré <funman@videolan.org> 1206515101 +0100
- Message:
Revert "let gcc choose how to reference memory addresses in i420_rgx mmx asm"
This reverts commit 6c50d21cebc1c6c809e56400f4cc5ed7aa6856a4.
Breaks compilation on OSX
-
Files:
-
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
| r6c50d21 |
r1358150 |
|
| 35 | 35 | static const uint64_t foo __asm__ (#foo) __attribute__((unused)) |
|---|
| 36 | 36 | #endif |
|---|
| 37 | | USED_U64(mmx_80w) = 0x0080008000800080ULL; /* Will be referenced as %4 |
|---|
| 38 | | * in inline asm */ |
|---|
| 39 | | USED_U64(mmx_10w) = 0x1010101010101010ULL; /* -- as %5 */ |
|---|
| 40 | | USED_U64(mmx_00ffw) = 0x00ff00ff00ff00ffULL; /* -- as %6 */ |
|---|
| 41 | | USED_U64(mmx_Y_coeff) = 0x253f253f253f253fULL; /* -- as %7 */ |
|---|
| 42 | | |
|---|
| 43 | | USED_U64(mmx_U_green) = 0xf37df37df37df37dULL; /* -- as %8 */ |
|---|
| 44 | | USED_U64(mmx_U_blue) = 0x4093409340934093ULL; /* -- as %9 */ |
|---|
| 45 | | USED_U64(mmx_V_red) = 0x3312331233123312ULL; /* -- as %10 */ |
|---|
| 46 | | USED_U64(mmx_V_green) = 0xe5fce5fce5fce5fcULL; /* -- as %11 */ |
|---|
| 47 | | |
|---|
| 48 | | USED_U64(mmx_mask_f8) = 0xf8f8f8f8f8f8f8f8ULL; /* -- as %12 */ |
|---|
| 49 | | USED_U64(mmx_mask_fc) = 0xfcfcfcfcfcfcfcfcULL; /* -- as %13 */ |
|---|
| | 37 | USED_U64(mmx_80w) = 0x0080008000800080ULL; |
|---|
| | 38 | USED_U64(mmx_10w) = 0x1010101010101010ULL; |
|---|
| | 39 | USED_U64(mmx_00ffw) = 0x00ff00ff00ff00ffULL; |
|---|
| | 40 | USED_U64(mmx_Y_coeff) = 0x253f253f253f253fULL; |
|---|
| | 41 | |
|---|
| | 42 | USED_U64(mmx_U_green) = 0xf37df37df37df37dULL; |
|---|
| | 43 | USED_U64(mmx_U_blue) = 0x4093409340934093ULL; |
|---|
| | 44 | USED_U64(mmx_V_red) = 0x3312331233123312ULL; |
|---|
| | 45 | USED_U64(mmx_V_green) = 0xe5fce5fce5fce5fcULL; |
|---|
| | 46 | |
|---|
| | 47 | USED_U64(mmx_mask_f8) = 0xf8f8f8f8f8f8f8f8ULL; |
|---|
| | 48 | USED_U64(mmx_mask_fc) = 0xfcfcfcfcfcfcfcfcULL; |
|---|
| 50 | 49 | #undef USED_U64 |
|---|
| 51 | 50 | |
|---|
| … | … | |
| 61 | 60 | : \ |
|---|
| 62 | 61 | : "r" (p_y), "r" (p_u), \ |
|---|
| 63 | | "r" (p_v), "r" (p_buffer), \ |
|---|
| 64 | | "m" (mmx_80w), "m" (mmx_10w), \ |
|---|
| 65 | | "m" (mmx_00ffw), "m" (mmx_Y_coeff), \ |
|---|
| 66 | | "m" (mmx_U_green), "m" (mmx_U_blue), \ |
|---|
| 67 | | "m" (mmx_V_red), "m" (mmx_V_green), \ |
|---|
| 68 | | "m" (mmx_mask_f8), "m" (mmx_mask_fc) ); \ |
|---|
| | 62 | "r" (p_v), "r" (p_buffer) ); \ |
|---|
| 69 | 63 | } while(0) |
|---|
| 70 | 64 | |
|---|
| 71 | 65 | #define MMX_END __asm__ __volatile__ ( "emms" ) |
|---|
| | 66 | |
|---|
| | 67 | /* Use RIP-relative code in PIC mode on amd64 */ |
|---|
| | 68 | #if defined(__x86_64__) && defined(__PIC__) |
|---|
| | 69 | # define G "(%%rip)" |
|---|
| | 70 | #else |
|---|
| | 71 | # define G |
|---|
| | 72 | #endif |
|---|
| 72 | 73 | |
|---|
| 73 | 74 | #define MMX_INIT_16 " \n\ |
|---|
| … | … | |
| 103 | 104 | punpcklbw %%mm4, %%mm0 # scatter 4 Cb 00 u3 00 u2 00 u1 00 u0 \n\ |
|---|
| 104 | 105 | punpcklbw %%mm4, %%mm1 # scatter 4 Cr 00 v3 00 v2 00 v1 00 v0 \n\ |
|---|
| 105 | | psubsw %4, %%mm0 # Cb -= 128 \n\ |
|---|
| 106 | | psubsw %4, %%mm1 # Cr -= 128 \n\ |
|---|
| | 106 | psubsw mmx_80w"G", %%mm0 # Cb -= 128 \n\ |
|---|
| | 107 | psubsw mmx_80w"G", %%mm1 # Cr -= 128 \n\ |
|---|
| 107 | 108 | psllw $3, %%mm0 # Promote precision \n\ |
|---|
| 108 | 109 | psllw $3, %%mm1 # Promote precision \n\ |
|---|
| 109 | 110 | movq %%mm0, %%mm2 # Copy 4 Cb 00 u3 00 u2 00 u1 00 u0 \n\ |
|---|
| 110 | 111 | movq %%mm1, %%mm3 # Copy 4 Cr 00 v3 00 v2 00 v1 00 v0 \n\ |
|---|
| 111 | | pmulhw %8, %%mm2 # Mul Cb with green coeff -> Cb green \n\ |
|---|
| 112 | | pmulhw %11, %%mm3 # Mul Cr with green coeff -> Cr green \n\ |
|---|
| 113 | | pmulhw %9, %%mm0 # Mul Cb -> Cblue 00 b3 00 b2 00 b1 00 b0 \n\ |
|---|
| 114 | | pmulhw %10, %%mm1 # Mul Cr -> Cred 00 r3 00 r2 00 r1 00 r0 \n\ |
|---|
| | 112 | pmulhw mmx_U_green"G", %%mm2 # Mul Cb with green coeff -> Cb green \n\ |
|---|
| | 113 | pmulhw mmx_V_green"G", %%mm3 # Mul Cr with green coeff -> Cr green \n\ |
|---|
| | 114 | pmulhw mmx_U_blue"G", %%mm0 # Mul Cb -> Cblue 00 b3 00 b2 00 b1 00 b0 \n\ |
|---|
| | 115 | pmulhw mmx_V_red"G", %%mm1 # Mul Cr -> Cred 00 r3 00 r2 00 r1 00 r0 \n\ |
|---|
| 115 | 116 | paddsw %%mm3, %%mm2 # Cb green + Cr green -> Cgreen \n\ |
|---|
| 116 | 117 | \n\ |
|---|
| 117 | 118 | # convert the luma part \n\ |
|---|
| 118 | | psubusb %5, %%mm6 # Y -= 16 \n\ |
|---|
| | 119 | psubusb mmx_10w"G", %%mm6 # Y -= 16 \n\ |
|---|
| 119 | 120 | movq %%mm6, %%mm7 # Copy 8 Y Y7 Y6 Y5 Y4 Y3 Y2 Y1 Y0 \n\ |
|---|
| 120 | | pand %6, %%mm6 # get Y even 00 Y6 00 Y4 00 Y2 00 Y0 \n\ |
|---|
| | 121 | pand mmx_00ffw"G", %%mm6 # get Y even 00 Y6 00 Y4 00 Y2 00 Y0 \n\ |
|---|
| 121 | 122 | psrlw $8, %%mm7 # get Y odd 00 Y7 00 Y5 00 Y3 00 Y1 \n\ |
|---|
| 122 | 123 | psllw $3, %%mm6 # Promote precision \n\ |
|---|
| 123 | 124 | psllw $3, %%mm7 # Promote precision \n\ |
|---|
| 124 | | pmulhw %7, %%mm6 # Mul 4 Y even 00 y6 00 y4 00 y2 00 y0 \n\ |
|---|
| 125 | | pmulhw %7, %%mm7 # Mul 4 Y odd 00 y7 00 y5 00 y3 00 y1 \n\ |
|---|
| | 125 | pmulhw mmx_Y_coeff"G", %%mm6 # Mul 4 Y even 00 y6 00 y4 00 y2 00 y0 \n\ |
|---|
| | 126 | pmulhw mmx_Y_coeff"G", %%mm7 # Mul 4 Y odd 00 y7 00 y5 00 y3 00 y1 \n\ |
|---|
| 126 | 127 | " |
|---|
| 127 | 128 | |
|---|
| … | … | |
| 168 | 169 | #define MMX_YUV_GRAY " \n\ |
|---|
| 169 | 170 | # convert the luma part \n\ |
|---|
| 170 | | psubusb %5, %%mm6 \n\ |
|---|
| | 171 | psubusb mmx_10w"G", %%mm6 \n\ |
|---|
| 171 | 172 | movq %%mm6, %%mm7 \n\ |
|---|
| 172 | | pand %6, %%mm6 \n\ |
|---|
| | 173 | pand mmx_00ffw"G", %%mm6 \n\ |
|---|
| 173 | 174 | psrlw $8, %%mm7 \n\ |
|---|
| 174 | 175 | psllw $3, %%mm6 \n\ |
|---|
| 175 | 176 | psllw $3, %%mm7 \n\ |
|---|
| 176 | | pmulhw %7, %%mm6 \n\ |
|---|
| 177 | | pmulhw %7, %%mm7 \n\ |
|---|
| | 177 | pmulhw mmx_Y_coeff"G", %%mm6 \n\ |
|---|
| | 178 | pmulhw mmx_Y_coeff"G", %%mm7 \n\ |
|---|
| 178 | 179 | packuswb %%mm6, %%mm6 \n\ |
|---|
| 179 | 180 | packuswb %%mm7, %%mm7 \n\ |
|---|
| … | … | |
| 183 | 184 | #define MMX_UNPACK_16_GRAY " \n\ |
|---|
| 184 | 185 | movq %%mm6, %%mm5 \n\ |
|---|
| 185 | | pand %12, %%mm6 \n\ |
|---|
| 186 | | pand %13, %%mm5 \n\ |
|---|
| | 186 | pand mmx_mask_f8"G", %%mm6 \n\ |
|---|
| | 187 | pand mmx_mask_fc"G", %%mm5 \n\ |
|---|
| 187 | 188 | movq %%mm6, %%mm7 \n\ |
|---|
| 188 | 189 | psrlw $3, %%mm7 \n\ |
|---|
| … | … | |
| 213 | 214 | #define MMX_UNPACK_15 " \n\ |
|---|
| 214 | 215 | # mask unneeded bits off \n\ |
|---|
| 215 | | pand %12, %%mm0 # b7b6b5b4 b3______ b7b6b5b4 b3______ \n\ |
|---|
| | 216 | pand mmx_mask_f8"G", %%mm0 # b7b6b5b4 b3______ b7b6b5b4 b3______ \n\ |
|---|
| 216 | 217 | psrlw $3,%%mm0 # ______b7 b6b5b4b3 ______b7 b6b5b4b3 \n\ |
|---|
| 217 | | pand %12, %%mm2 # g7g6g5g4 g3______ g7g6g5g4 g3______ \n\ |
|---|
| 218 | | pand %12, %%mm1 # r7r6r5r4 r3______ r7r6r5r4 r3______ \n\ |
|---|
| | 218 | pand mmx_mask_f8"G", %%mm2 # g7g6g5g4 g3______ g7g6g5g4 g3______ \n\ |
|---|
| | 219 | pand mmx_mask_f8"G", %%mm1 # r7r6r5r4 r3______ r7r6r5r4 r3______ \n\ |
|---|
| 219 | 220 | psrlw $1,%%mm1 # __r7r6r5 r4r3____ __r7r6r5 r4r3____ \n\ |
|---|
| 220 | 221 | pxor %%mm4, %%mm4 # zero mm4 \n\ |
|---|
| … | … | |
| 249 | 250 | #define MMX_UNPACK_16 " \n\ |
|---|
| 250 | 251 | # mask unneeded bits off \n\ |
|---|
| 251 | | pand %12, %%mm0 # b7b6b5b4 b3______ b7b6b5b4 b3______ \n\ |
|---|
| 252 | | pand %13, %%mm2 # g7g6g5g4 g3g2____ g7g6g5g4 g3g2____ \n\ |
|---|
| 253 | | pand %12, %%mm1 # r7r6r5r4 r3______ r7r6r5r4 r3______ \n\ |
|---|
| | 252 | pand mmx_mask_f8"G", %%mm0 # b7b6b5b4 b3______ b7b6b5b4 b3______ \n\ |
|---|
| | 253 | pand mmx_mask_fc"G", %%mm2 # g7g6g5g4 g3g2____ g7g6g5g4 g3g2____ \n\ |
|---|
| | 254 | pand mmx_mask_f8"G", %%mm1 # r7r6r5r4 r3______ r7r6r5r4 r3______ \n\ |
|---|
| 254 | 255 | psrlw $3,%%mm0 # ______b7 b6b5b4b3 ______b7 b6b5b4b3 \n\ |
|---|
| 255 | 256 | pxor %%mm4, %%mm4 # zero mm4 \n\ |
|---|