Changeset 3717fdfeb8aa1fcf75bec91c86554b76577f1b43

Show
Ignore:
Timestamp:
09/26/05 12:14:46 (3 years ago)
Author:
Sam Hocevar <sam@videolan.org>
git-committer:
Sam Hocevar <sam@videolan.org> 1127729686 +0000
git-parent:

[e7a5c90d7e3ef015c54fff5d6cfc293ff0b6389f]

git-author:
Sam Hocevar <sam@videolan.org> 1127729686 +0000
Message:
  • modules/video_chroma/i420_rgb_mmx.h: use RIP-related code on amd64.
Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • modules/video_chroma/i420_rgb_mmx.h

    r274346a r3717fdf  
    4646#undef USED_U64 
    4747 
     48/* Use RIP-relative code in PIC mode on amd64 */ 
     49#if defined(__x86_64__) && defined(__PIC__) 
     50#   define G "(%%rip)" 
     51#else 
     52#   define G 
     53#endif 
     54 
    4855#define MMX_INIT_16 "                                                       \n\ 
    4956movd      (%1), %%mm0       # Load 4 Cb       00 00 00 00 u3 u2 u1 u0       \n\ 
     
    97104punpcklbw %%mm4, %%mm0          # scatter 4 Cb    00 u3 00 u2 00 u1 00 u0   \n\ 
    98105punpcklbw %%mm4, %%mm1          # scatter 4 Cr    00 v3 00 v2 00 v1 00 v0   \n\ 
    99 psubsw    mmx_80w, %%mm0        # Cb -= 128                                 \n\ 
    100 psubsw    mmx_80w, %%mm1        # Cr -= 128                                 \n\ 
     106psubsw    mmx_80w"G", %%mm0     # Cb -= 128                                 \n\ 
     107psubsw    mmx_80w"G", %%mm1     # Cr -= 128                                 \n\ 
    101108psllw     $3, %%mm0             # Promote precision                         \n\ 
    102109psllw     $3, %%mm1             # Promote precision                         \n\ 
    103110movq      %%mm0, %%mm2          # Copy 4 Cb       00 u3 00 u2 00 u1 00 u0   \n\ 
    104111movq      %%mm1, %%mm3          # Copy 4 Cr       00 v3 00 v2 00 v1 00 v0   \n\ 
    105 pmulhw    mmx_U_green, %%mm2    # Mul Cb with green coeff -> Cb green       \n\ 
    106 pmulhw    mmx_V_green, %%mm3    # Mul Cr with green coeff -> Cr green       \n\ 
    107 pmulhw    mmx_U_blue, %%mm0     # Mul Cb -> Cblue 00 b3 00 b2 00 b1 00 b0   \n\ 
    108 pmulhw    mmx_V_red, %%mm1      # Mul Cr -> Cred  00 r3 00 r2 00 r1 00 r0   \n\ 
     112pmulhw    mmx_U_green"G", %%mm2 # Mul Cb with green coeff -> Cb green       \n\ 
     113pmulhw    mmx_V_green"G", %%mm3 # Mul Cr with green coeff -> Cr green       \n\ 
     114pmulhw    mmx_U_blue"G", %%mm0  # Mul Cb -> Cblue 00 b3 00 b2 00 b1 00 b0   \n\ 
     115pmulhw    mmx_V_red"G", %%mm1   # Mul Cr -> Cred  00 r3 00 r2 00 r1 00 r0   \n\ 
    109116paddsw    %%mm3, %%mm2          # Cb green + Cr green -> Cgreen             \n\ 
    110117                                                                            \n\ 
    111118# convert the luma part                                                     \n\ 
    112 psubusb   mmx_10w, %%mm6        # Y -= 16                                   \n\ 
     119psubusb   mmx_10w"G", %%mm6     # Y -= 16                                   \n\ 
    113120movq      %%mm6, %%mm7          # Copy 8 Y        Y7 Y6 Y5 Y4 Y3 Y2 Y1 Y0   \n\ 
    114 pand      mmx_00ffw, %%mm6      # get Y even      00 Y6 00 Y4 00 Y2 00 Y0   \n\ 
     121pand      mmx_00ffw"G", %%mm6   # get Y even      00 Y6 00 Y4 00 Y2 00 Y0   \n\ 
    115122psrlw     $8, %%mm7             # get Y odd       00 Y7 00 Y5 00 Y3 00 Y1   \n\ 
    116123psllw     $3, %%mm6             # Promote precision                         \n\ 
    117124psllw     $3, %%mm7             # Promote precision                         \n\ 
    118 pmulhw    mmx_Y_coeff, %%mm6    # Mul 4 Y even    00 y6 00 y4 00 y2 00 y0   \n\ 
    119 pmulhw    mmx_Y_coeff, %%mm7    # Mul 4 Y odd     00 y7 00 y5 00 y3 00 y1   \n\ 
     125pmulhw    mmx_Y_coeff"G", %%mm6 # Mul 4 Y even    00 y6 00 y4 00 y2 00 y0   \n\ 
     126pmulhw    mmx_Y_coeff"G", %%mm7 # Mul 4 Y odd     00 y7 00 y5 00 y3 00 y1   \n\ 
    120127" 
    121128 
     
    209216#define MMX_YUV_GRAY "                                                      \n\ 
    210217# convert the luma part                                                     \n\ 
    211 psubusb   mmx_10w, %%mm6                                                    \n\ 
     218psubusb   mmx_10w"G", %%mm6                                                 \n\ 
    212219movq      %%mm6, %%mm7                                                      \n\ 
    213 pand      mmx_00ffw, %%mm6                                                  \n\ 
     220pand      mmx_00ffw"G", %%mm6                                               \n\ 
    214221psrlw     $8, %%mm7                                                         \n\ 
    215222psllw     $3, %%mm6                                                         \n\ 
    216223psllw     $3, %%mm7                                                         \n\ 
    217 pmulhw    mmx_Y_coeff, %%mm6                                                \n\ 
    218 pmulhw    mmx_Y_coeff, %%mm7                                                \n\ 
     224pmulhw    mmx_Y_coeff"G", %%mm6                                             \n\ 
     225pmulhw    mmx_Y_coeff"G", %%mm7                                             \n\ 
    219226packuswb  %%mm6, %%mm6                                                      \n\ 
    220227packuswb  %%mm7, %%mm7                                                      \n\ 
     
    224231#define MMX_UNPACK_16_GRAY "                                                \n\ 
    225232movq      %%mm6, %%mm5                                                      \n\ 
    226 pand      mmx_mask_f8, %%mm6                                                \n\ 
    227 pand      mmx_mask_fc, %%mm5                                                \n\ 
     233pand      mmx_mask_f8"G", %%mm6                                             \n\ 
     234pand      mmx_mask_fc"G", %%mm5                                             \n\ 
    228235movq      %%mm6, %%mm7                                                      \n\ 
    229236psrlw     $3, %%mm7                                                         \n\ 
     
    254261#define MMX_UNPACK_15 "                                                     \n\ 
    255262# mask unneeded bits off                                                    \n\ 
    256 pand      mmx_mask_f8, %%mm0    # b7b6b5b4 b3______ b7b6b5b4 b3______       \n\ 
     263pand      mmx_mask_f8"G", %%mm0 # b7b6b5b4 b3______ b7b6b5b4 b3______       \n\ 
    257264psrlw     $3,%%mm0              # ______b7 b6b5b4b3 ______b7 b6b5b4b3       \n\ 
    258 pand      mmx_mask_f8, %%mm2    # g7g6g5g4 g3______ g7g6g5g4 g3______       \n\ 
    259 pand      mmx_mask_f8, %%mm1    # r7r6r5r4 r3______ r7r6r5r4 r3______       \n\ 
     265pand      mmx_mask_f8"G", %%mm2 # g7g6g5g4 g3______ g7g6g5g4 g3______       \n\ 
     266pand      mmx_mask_f8"G", %%mm1 # r7r6r5r4 r3______ r7r6r5r4 r3______       \n\ 
    260267psrlw     $1,%%mm1              # __r7r6r5 r4r3____ __r7r6r5 r4r3____       \n\ 
    261268pxor      %%mm4, %%mm4          # zero mm4                                  \n\ 
     
    318325#define MMX_UNPACK_16 "                                                     \n\ 
    319326# mask unneeded bits off                                                    \n\ 
    320 pand      mmx_mask_f8, %%mm0    # b7b6b5b4 b3______ b7b6b5b4 b3______       \n\ 
    321 pand      mmx_mask_fc, %%mm2    # g7g6g5g4 g3g2____ g7g6g5g4 g3g2____       \n\ 
    322 pand      mmx_mask_f8, %%mm1    # r7r6r5r4 r3______ r7r6r5r4 r3______       \n\ 
     327pand      mmx_mask_f8"G", %%mm0 # b7b6b5b4 b3______ b7b6b5b4 b3______       \n\ 
     328pand      mmx_mask_fc"G", %%mm2 # g7g6g5g4 g3g2____ g7g6g5g4 g3g2____       \n\ 
     329pand      mmx_mask_f8"G", %%mm1 # r7r6r5r4 r3______ r7r6r5r4 r3______       \n\ 
    323330psrlw     $3,%%mm0              # ______b7 b6b5b4b3 ______b7 b6b5b4b3       \n\ 
    324331pxor      %%mm4, %%mm4          # zero mm4                                  \n\