Go to the documentation of this file.   21 #ifndef AVCODEC_X86_INLINE_ASM_H    22 #define AVCODEC_X86_INLINE_ASM_H    26 #define MOVQ_WONE(regd) \    28     "pcmpeqd %%" #regd ", %%" #regd " \n\t" \    29     "psrlw $15, %%" #regd ::)    31 #define JUMPALIGN()     __asm__ volatile (".p2align 3"::)    32 #define MOVQ_ZERO(regd) __asm__ volatile ("pxor %%"#regd", %%"#regd ::)    34 #define MOVQ_BFE(regd)                                  \    36         "pcmpeqd %%"#regd", %%"#regd"   \n\t"           \    37         "paddb   %%"#regd", %%"#regd"   \n\t" ::)    40 #define MOVQ_WTWO(regd) __asm__ volatile ("movq %0, %%"#regd" \n\t" :: "m"(ff_pw_2))    44 #define MOVQ_WTWO(regd)                                 \    46         "pcmpeqd %%"#regd", %%"#regd"   \n\t"           \    47         "psrlw         $15, %%"#regd"   \n\t"           \    48         "psllw          $1, %%"#regd"   \n\t"::)    55 #define PAVGB_MMX_NO_RND(rega, regb, regr, regfe)                \    56     "movq   "#rega", "#regr"            \n\t"                    \    57     "pand   "#regb", "#regr"            \n\t"                    \    58     "pxor   "#rega", "#regb"            \n\t"                    \    59     "pand  "#regfe", "#regb"            \n\t"                    \    60     "psrlq       $1, "#regb"            \n\t"                    \    61     "paddb  "#regb", "#regr"            \n\t"    63 #define PAVGB_MMX(rega, regb, regr, regfe)                       \    64     "movq   "#rega", "#regr"            \n\t"                    \    65     "por    "#regb", "#regr"            \n\t"                    \    66     "pxor   "#rega", "#regb"            \n\t"                    \    67     "pand  "#regfe", "#regb"            \n\t"                    \    68     "psrlq       $1, "#regb"            \n\t"                    \    69     "psubb  "#regb", "#regr"            \n\t"    72 #define PAVGBP_MMX_NO_RND(rega, regb, regr,  regc, regd, regp)   \    73     "movq  "#rega", "#regr"             \n\t"                    \    74     "movq  "#regc", "#regp"             \n\t"                    \    75     "pand  "#regb", "#regr"             \n\t"                    \    76     "pand  "#regd", "#regp"             \n\t"                    \    77     "pxor  "#rega", "#regb"             \n\t"                    \    78     "pxor  "#regc", "#regd"             \n\t"                    \    79     "pand    %%mm6, "#regb"             \n\t"                    \    80     "pand    %%mm6, "#regd"             \n\t"                    \    81     "psrlq      $1, "#regb"             \n\t"                    \    82     "psrlq      $1, "#regd"             \n\t"                    \    83     "paddb "#regb", "#regr"             \n\t"                    \    84     "paddb "#regd", "#regp"             \n\t"    86 #define PAVGBP_MMX(rega, regb, regr, regc, regd, regp)           \    87     "movq  "#rega", "#regr"             \n\t"                    \    88     "movq  "#regc", "#regp"             \n\t"                    \    89     "por   "#regb", "#regr"             \n\t"                    \    90     "por   "#regd", "#regp"             \n\t"                    \    91     "pxor  "#rega", "#regb"             \n\t"                    \    92     "pxor  "#regc", "#regd"             \n\t"                    \    93     "pand    %%mm6, "#regb"             \n\t"                    \    94     "pand    %%mm6, "#regd"             \n\t"                    \    95     "psrlq      $1, "#regd"             \n\t"                    \    96     "psrlq      $1, "#regb"             \n\t"                    \    97     "psubb "#regb", "#regr"             \n\t"                    \    98     "psubb "#regd", "#regp"             \n\t"