xine-lib: xine-lib-1.2.13/src/post/goom/mmx.h File Reference

xine-lib 1.2.13-20230125hg15249

Data Structures | Macros | Functions
mmx.h File Reference
`#include <xine/attributes.h>`
`#include "goom_graphic.h"`

Go to the source code of this file.

## Data Structures
union | mmx_t

## Macros
#define | mmx_i2r(op, imm, reg)
#define | mmx_m2r(op, mem, reg)
#define | mmx_r2m(op, reg, mem)
#define | mmx_r2r(op, regs, regd) __asm__ __volatile__ (#op " %" #regs ", %" #regd)
#define | mmx_m2m(op, mems, memd)
#define | movq_m2r(var, reg) mmx_m2r(movq, var, reg)
#define | movq_r2m(reg, var) mmx_r2m(movq, reg, var)
#define | movq_r2r(regs, regd) mmx_r2r(movq, regs, regd)
#define | movq(vars, vard)
#define | movd_m2r(var, reg) mmx_m2r(movd, var, reg)
#define | movd_r2m(reg, var) mmx_r2m(movd, reg, var)
#define | movd_r2r(regs, regd) mmx_r2r(movd, regs, regd)
#define | movd(vars, vard)
#define | paddd_m2r(var, reg) mmx_m2r(paddd, var, reg)
#define | paddd_r2r(regs, regd) mmx_r2r(paddd, regs, regd)
#define | paddd(vars, vard) mmx_m2m(paddd, vars, vard)
#define | paddw_m2r(var, reg) mmx_m2r(paddw, var, reg)
#define | paddw_r2r(regs, regd) mmx_r2r(paddw, regs, regd)
#define | paddw(vars, vard) mmx_m2m(paddw, vars, vard)
#define | paddb_m2r(var, reg) mmx_m2r(paddb, var, reg)
#define | paddb_r2r(regs, regd) mmx_r2r(paddb, regs, regd)
#define | paddb(vars, vard) mmx_m2m(paddb, vars, vard)
#define | paddsw_m2r(var, reg) mmx_m2r(paddsw, var, reg)
#define | paddsw_r2r(regs, regd) mmx_r2r(paddsw, regs, regd)
#define | paddsw(vars, vard) mmx_m2m(paddsw, vars, vard)
#define | paddsb_m2r(var, reg) mmx_m2r(paddsb, var, reg)
#define | paddsb_r2r(regs, regd) mmx_r2r(paddsb, regs, regd)
#define | paddsb(vars, vard) mmx_m2m(paddsb, vars, vard)
#define | paddusw_m2r(var, reg) mmx_m2r(paddusw, var, reg)
#define | paddusw_r2r(regs, regd) mmx_r2r(paddusw, regs, regd)
#define | paddusw(vars, vard) mmx_m2m(paddusw, vars, vard)
#define | paddusb_m2r(var, reg) mmx_m2r(paddusb, var, reg)
#define | paddusb_r2r(regs, regd) mmx_r2r(paddusb, regs, regd)
#define | paddusb(vars, vard) mmx_m2m(paddusb, vars, vard)
#define | psubd_m2r(var, reg) mmx_m2r(psubd, var, reg)
#define | psubd_r2r(regs, regd) mmx_r2r(psubd, regs, regd)
#define | psubd(vars, vard) mmx_m2m(psubd, vars, vard)
#define | psubw_m2r(var, reg) mmx_m2r(psubw, var, reg)
#define | psubw_r2r(regs, regd) mmx_r2r(psubw, regs, regd)
#define | psubw(vars, vard) mmx_m2m(psubw, vars, vard)
#define | psubb_m2r(var, reg) mmx_m2r(psubb, var, reg)
#define | psubb_r2r(regs, regd) mmx_r2r(psubb, regs, regd)
#define | psubb(vars, vard) mmx_m2m(psubb, vars, vard)
#define | psubsw_m2r(var, reg) mmx_m2r(psubsw, var, reg)
#define | psubsw_r2r(regs, regd) mmx_r2r(psubsw, regs, regd)
#define | psubsw(vars, vard) mmx_m2m(psubsw, vars, vard)
#define | psubsb_m2r(var, reg) mmx_m2r(psubsb, var, reg)
#define | psubsb_r2r(regs, regd) mmx_r2r(psubsb, regs, regd)
#define | psubsb(vars, vard) mmx_m2m(psubsb, vars, vard)
#define | psubusw_m2r(var, reg) mmx_m2r(psubusw, var, reg)
#define | psubusw_r2r(regs, regd) mmx_r2r(psubusw, regs, regd)
#define | psubusw(vars, vard) mmx_m2m(psubusw, vars, vard)
#define | psubusb_m2r(var, reg) mmx_m2r(psubusb, var, reg)
#define | psubusb_r2r(regs, regd) mmx_r2r(psubusb, regs, regd)
#define | psubusb(vars, vard) mmx_m2m(psubusb, vars, vard)
#define | pmullw_m2r(var, reg) mmx_m2r(pmullw, var, reg)
#define | pmullw_r2r(regs, regd) mmx_r2r(pmullw, regs, regd)
#define | pmullw(vars, vard) mmx_m2m(pmullw, vars, vard)
#define | pmulhw_m2r(var, reg) mmx_m2r(pmulhw, var, reg)
#define | pmulhw_r2r(regs, regd) mmx_r2r(pmulhw, regs, regd)
#define | pmulhw(vars, vard) mmx_m2m(pmulhw, vars, vard)
#define | pmaddwd_m2r(var, reg) mmx_m2r(pmaddwd, var, reg)
#define | pmaddwd_r2r(regs, regd) mmx_r2r(pmaddwd, regs, regd)
#define | pmaddwd(vars, vard) mmx_m2m(pmaddwd, vars, vard)
#define | pand_m2r(var, reg) mmx_m2r(pand, var, reg)
#define | pand_r2r(regs, regd) mmx_r2r(pand, regs, regd)
#define | pand(vars, vard) mmx_m2m(pand, vars, vard)
#define | pandn_m2r(var, reg) mmx_m2r(pandn, var, reg)
#define | pandn_r2r(regs, regd) mmx_r2r(pandn, regs, regd)
#define | pandn(vars, vard) mmx_m2m(pandn, vars, vard)
#define | por_m2r(var, reg) mmx_m2r(por, var, reg)
#define | por_r2r(regs, regd) mmx_r2r(por, regs, regd)
#define | por(vars, vard) mmx_m2m(por, vars, vard)
#define | pxor_m2r(var, reg) mmx_m2r(pxor, var, reg)
#define | pxor_r2r(regs, regd) mmx_r2r(pxor, regs, regd)
#define | pxor(vars, vard) mmx_m2m(pxor, vars, vard)
#define | pcmpeqd_m2r(var, reg) mmx_m2r(pcmpeqd, var, reg)
#define | pcmpeqd_r2r(regs, regd) mmx_r2r(pcmpeqd, regs, regd)
#define | pcmpeqd(vars, vard) mmx_m2m(pcmpeqd, vars, vard)
#define | pcmpeqw_m2r(var, reg) mmx_m2r(pcmpeqw, var, reg)
#define | pcmpeqw_r2r(regs, regd) mmx_r2r(pcmpeqw, regs, regd)
#define | pcmpeqw(vars, vard) mmx_m2m(pcmpeqw, vars, vard)
#define | pcmpeqb_m2r(var, reg) mmx_m2r(pcmpeqb, var, reg)
#define | pcmpeqb_r2r(regs, regd) mmx_r2r(pcmpeqb, regs, regd)
#define | pcmpeqb(vars, vard) mmx_m2m(pcmpeqb, vars, vard)
#define | pcmpgtd_m2r(var, reg) mmx_m2r(pcmpgtd, var, reg)
#define | pcmpgtd_r2r(regs, regd) mmx_r2r(pcmpgtd, regs, regd)
#define | pcmpgtd(vars, vard) mmx_m2m(pcmpgtd, vars, vard)
#define | pcmpgtw_m2r(var, reg) mmx_m2r(pcmpgtw, var, reg)
#define | pcmpgtw_r2r(regs, regd) mmx_r2r(pcmpgtw, regs, regd)
#define | pcmpgtw(vars, vard) mmx_m2m(pcmpgtw, vars, vard)
#define | pcmpgtb_m2r(var, reg) mmx_m2r(pcmpgtb, var, reg)
#define | pcmpgtb_r2r(regs, regd) mmx_r2r(pcmpgtb, regs, regd)
#define | pcmpgtb(vars, vard) mmx_m2m(pcmpgtb, vars, vard)
#define | psllq_i2r(imm, reg) mmx_i2r(psllq, imm, reg)
#define | psllq_m2r(var, reg) mmx_m2r(psllq, var, reg)
#define | psllq_r2r(regs, regd) mmx_r2r(psllq, regs, regd)
#define | psllq(vars, vard) mmx_m2m(psllq, vars, vard)
#define | pslld_i2r(imm, reg) mmx_i2r(pslld, imm, reg)
#define | pslld_m2r(var, reg) mmx_m2r(pslld, var, reg)
#define | pslld_r2r(regs, regd) mmx_r2r(pslld, regs, regd)
#define | pslld(vars, vard) mmx_m2m(pslld, vars, vard)
#define | psllw_i2r(imm, reg) mmx_i2r(psllw, imm, reg)
#define | psllw_m2r(var, reg) mmx_m2r(psllw, var, reg)
#define | psllw_r2r(regs, regd) mmx_r2r(psllw, regs, regd)
#define | psllw(vars, vard) mmx_m2m(psllw, vars, vard)
#define | psrlq_i2r(imm, reg) mmx_i2r(psrlq, imm, reg)
#define | psrlq_m2r(var, reg) mmx_m2r(psrlq, var, reg)
#define | psrlq_r2r(regs, regd) mmx_r2r(psrlq, regs, regd)
#define | psrlq(vars, vard) mmx_m2m(psrlq, vars, vard)
#define | psrld_i2r(imm, reg) mmx_i2r(psrld, imm, reg)
#define | psrld_m2r(var, reg) mmx_m2r(psrld, var, reg)
#define | psrld_r2r(regs, regd) mmx_r2r(psrld, regs, regd)
#define | psrld(vars, vard) mmx_m2m(psrld, vars, vard)
#define | psrlw_i2r(imm, reg) mmx_i2r(psrlw, imm, reg)
#define | psrlw_m2r(var, reg) mmx_m2r(psrlw, var, reg)
#define | psrlw_r2r(regs, regd) mmx_r2r(psrlw, regs, regd)
#define | psrlw(vars, vard) mmx_m2m(psrlw, vars, vard)
#define | psrad_i2r(imm, reg) mmx_i2r(psrad, imm, reg)
#define | psrad_m2r(var, reg) mmx_m2r(psrad, var, reg)
#define | psrad_r2r(regs, regd) mmx_r2r(psrad, regs, regd)
#define | psrad(vars, vard) mmx_m2m(psrad, vars, vard)
#define | psraw_i2r(imm, reg) mmx_i2r(psraw, imm, reg)
#define | psraw_m2r(var, reg) mmx_m2r(psraw, var, reg)
#define | psraw_r2r(regs, regd) mmx_r2r(psraw, regs, regd)
#define | psraw(vars, vard) mmx_m2m(psraw, vars, vard)
#define | packssdw_m2r(var, reg) mmx_m2r(packssdw, var, reg)
#define | packssdw_r2r(regs, regd) mmx_r2r(packssdw, regs, regd)
#define | packssdw(vars, vard) mmx_m2m(packssdw, vars, vard)
#define | packsswb_m2r(var, reg) mmx_m2r(packsswb, var, reg)
#define | packsswb_r2r(regs, regd) mmx_r2r(packsswb, regs, regd)
#define | packsswb(vars, vard) mmx_m2m(packsswb, vars, vard)
#define | packuswb_m2r(var, reg) mmx_m2r(packuswb, var, reg)
#define | packuswb_r2r(regs, regd) mmx_r2r(packuswb, regs, regd)
#define | packuswb(vars, vard) mmx_m2m(packuswb, vars, vard)
#define | punpckldq_m2r(var, reg) mmx_m2r(punpckldq, var, reg)
#define | punpckldq_r2r(regs, regd) mmx_r2r(punpckldq, regs, regd)
#define | punpckldq(vars, vard) mmx_m2m(punpckldq, vars, vard)
#define | punpcklwd_m2r(var, reg) mmx_m2r(punpcklwd, var, reg)
#define | punpcklwd_r2r(regs, regd) mmx_r2r(punpcklwd, regs, regd)
#define | punpcklwd(vars, vard) mmx_m2m(punpcklwd, vars, vard)
#define | punpcklbw_m2r(var, reg) mmx_m2r(punpcklbw, var, reg)
#define | punpcklbw_r2r(regs, regd) mmx_r2r(punpcklbw, regs, regd)
#define | punpcklbw(vars, vard) mmx_m2m(punpcklbw, vars, vard)
#define | punpckhdq_m2r(var, reg) mmx_m2r(punpckhdq, var, reg)
#define | punpckhdq_r2r(regs, regd) mmx_r2r(punpckhdq, regs, regd)
#define | punpckhdq(vars, vard) mmx_m2m(punpckhdq, vars, vard)
#define | punpckhwd_m2r(var, reg) mmx_m2r(punpckhwd, var, reg)
#define | punpckhwd_r2r(regs, regd) mmx_r2r(punpckhwd, regs, regd)
#define | punpckhwd(vars, vard) mmx_m2m(punpckhwd, vars, vard)
#define | punpckhbw_m2r(var, reg) mmx_m2r(punpckhbw, var, reg)
#define | punpckhbw_r2r(regs, regd) mmx_r2r(punpckhbw, regs, regd)
#define | punpckhbw(vars, vard) mmx_m2m(punpckhbw, vars, vard)
#define | emms() __asm__ __volatile__ ("emms")

## Functions
static int | mm_support (void)
static int | mmx_ok (void)
int | mmx_supported (void)
int | xmmx_supported (void)
void | draw_line_mmx (Pixel *data, int x1, int y1, int x2, int y2, int col, int screenx, int screeny)
void | draw_line_xmmx (Pixel *data, int x1, int y1, int x2, int y2, int col, int screenx, int screeny)
void | zoom_filter_mmx (int prevX, int prevY, Pixel *expix1, Pixel *expix2, int *brutS, int *brutD, int buffratio, int precalCoef[16][16])
void | zoom_filter_xmmx (int prevX, int prevY, Pixel *expix1, Pixel *expix2, int *lbruS, int *lbruD, int buffratio, int precalCoef[16][16])

## Macro Definition Documentation

## ◆ emms

#define emms | ( |  | ) | __asm__ __volatile__ ("emms")

Referenced by deinterlace_greedy_packed422_scanline_mmxext(), deinterlace_line(), deinterlace_scanline_linear_blend(), deinterlace_scanline_linear_blend2(), get_buffer(), ifs_update(), xshm_frame_proc_setup(), and xshm_frame_proc_setup().

## ◆ mmx_i2r

#define mmx_i2r | ( |  | op,
|  |  | imm,
|  |  | reg )

Value:
__asm__ __volatile__ (#op " %0, %%" #reg \
: /* nothing */ \
: "X" (imm) )

## ◆ mmx_m2m

#define mmx_m2m | ( |  | op,
|  |  | mems,
|  |  | memd )

Value:
__asm__ __volatile__ ("movq %0, %%mm0\n\t" \
#op " %1, %%mm0\n\t" \
"movq %%mm0, %0" \
: "=m" (memd) \
: "m" (mems))

## ◆ mmx_m2r

#define mmx_m2r | ( |  | op,
|  |  | mem,
|  |  | reg )

Value:
__asm__ __volatile__ (#op " %0, %%" #reg \
: /* nothing */ \
: "m" (mem))

## ◆ mmx_r2m

#define mmx_r2m | ( |  | op,
|  |  | reg,
|  |  | mem )

Value:
__asm__ __volatile__ (#op " %%" #reg ", %0" \
: "=m" (mem) \
: /* nothing */ )

## ◆ mmx_r2r

#define mmx_r2r | ( |  | op,
|  |  | regs,
|  |  | regd ) __asm__ __volatile__ (#op " %" #regs ", %" #regd)

## ◆ movd

#define movd | ( |  | vars,
|  |  | vard )

Value:
__asm__ __volatile__ ("movd %1, %%mm0\n\t" \
"movd %%mm0, %0" \
: "=X" (vard) \
: "X" (vars))

## ◆ movd_m2r

#define movd_m2r | ( |  | var,
|  |  | reg ) mmx_m2r(movd, var, reg)

Referenced by deinterlace_line(), deinterlace_scanline_linear_blend(), deinterlace_scanline_linear_blend2(), and ifs_update().

## ◆ movd_r2m

#define movd_r2m | ( |  | reg,
|  |  | var ) mmx_r2m(movd, reg, var)

Referenced by deinterlace_line(), deinterlace_scanline_linear_blend(), deinterlace_scanline_linear_blend2(), and ifs_update().

## ◆ movd_r2r

#define movd_r2r | ( |  | regs,
|  |  | regd ) mmx_r2r(movd, regs, regd)

## ◆ movq

#define movq | ( |  | vars,
|  |  | vard )

Value:
__asm__ __volatile__ ("movq %1, %%mm0\n\t" \
"movq %%mm0, %0" \
: "=X" (vard) \
: "X" (vars))

## ◆ movq_m2r

#define movq_m2r | ( |  | var,
|  |  | reg ) mmx_m2r(movq, var, reg)

Referenced by deinterlace_greedy_packed422_scanline_mmxext(), and deinterlace_line().

## ◆ movq_r2m

#define movq_r2m | ( |  | reg,
|  |  | var ) mmx_r2m(movq, reg, var)

## ◆ movq_r2r

#define movq_r2r | ( |  | regs,
|  |  | regd ) mmx_r2r(movq, regs, regd)

Referenced by deinterlace_greedy_packed422_scanline_mmxext().

## ◆ packssdw

#define packssdw | ( |  | vars,
|  |  | vard ) mmx_m2m(packssdw, vars, vard)

## ◆ packssdw_m2r

#define packssdw_m2r | ( |  | var,
|  |  | reg ) mmx_m2r(packssdw, var, reg)

## ◆ packssdw_r2r

#define packssdw_r2r | ( |  | regs,
|  |  | regd ) mmx_r2r(packssdw, regs, regd)

## ◆ packsswb

#define packsswb | ( |  | vars,
|  |  | vard ) mmx_m2m(packsswb, vars, vard)

## ◆ packsswb_m2r

#define packsswb_m2r | ( |  | var,
|  |  | reg ) mmx_m2r(packsswb, var, reg)

## ◆ packsswb_r2r

#define packsswb_r2r | ( |  | regs,
|  |  | regd ) mmx_r2r(packsswb, regs, regd)

## ◆ packuswb

#define packuswb | ( |  | vars,
|  |  | vard ) mmx_m2m(packuswb, vars, vard)

## ◆ packuswb_m2r

#define packuswb_m2r | ( |  | var,
|  |  | reg ) mmx_m2r(packuswb, var, reg)

## ◆ packuswb_r2r

#define packuswb_r2r | ( |  | regs,
|  |  | regd ) mmx_r2r(packuswb, regs, regd)

Referenced by deinterlace_line(), deinterlace_scanline_linear_blend(), and deinterlace_scanline_linear_blend2().

## ◆ paddb

#define paddb | ( |  | vars,
|  |  | vard ) mmx_m2m(paddb, vars, vard)

## ◆ paddb_m2r

#define paddb_m2r | ( |  | var,
|  |  | reg ) mmx_m2r(paddb, var, reg)

## ◆ paddb_r2r

#define paddb_r2r | ( |  | regs,
|  |  | regd ) mmx_r2r(paddb, regs, regd)

## ◆ paddd

#define paddd | ( |  | vars,
|  |  | vard ) mmx_m2m(paddd, vars, vard)

## ◆ paddd_m2r

#define paddd_m2r | ( |  | var,
|  |  | reg ) mmx_m2r(paddd, var, reg)

## ◆ paddd_r2r

#define paddd_r2r | ( |  | regs,
|  |  | regd ) mmx_r2r(paddd, regs, regd)

## ◆ paddsb

#define paddsb | ( |  | vars,
|  |  | vard ) mmx_m2m(paddsb, vars, vard)

## ◆ paddsb_m2r

#define paddsb_m2r | ( |  | var,
|  |  | reg ) mmx_m2r(paddsb, var, reg)

## ◆ paddsb_r2r

#define paddsb_r2r | ( |  | regs,
|  |  | regd ) mmx_r2r(paddsb, regs, regd)

## ◆ paddsw

#define paddsw | ( |  | vars,
|  |  | vard ) mmx_m2m(paddsw, vars, vard)

## ◆ paddsw_m2r

#define paddsw_m2r | ( |  | var,
|  |  | reg ) mmx_m2r(paddsw, var, reg)

## ◆ paddsw_r2r

#define paddsw_r2r | ( |  | regs,
|  |  | regd ) mmx_r2r(paddsw, regs, regd)

## ◆ paddusb

#define paddusb | ( |  | vars,
|  |  | vard ) mmx_m2m(paddusb, vars, vard)

## ◆ paddusb_m2r

#define paddusb_m2r | ( |  | var,
|  |  | reg ) mmx_m2r(paddusb, var, reg)

Referenced by deinterlace_greedy_packed422_scanline_mmxext().

## ◆ paddusb_r2r

#define paddusb_r2r | ( |  | regs,
|  |  | regd ) mmx_r2r(paddusb, regs, regd)

Referenced by deinterlace_greedy_packed422_scanline_mmxext(), and ifs_update().

## ◆ paddusw

#define paddusw | ( |  | vars,
|  |  | vard ) mmx_m2m(paddusw, vars, vard)

## ◆ paddusw_m2r

#define paddusw_m2r | ( |  | var,
|  |  | reg ) mmx_m2r(paddusw, var, reg)

## ◆ paddusw_r2r

#define paddusw_r2r | ( |  | regs,
|  |  | regd ) mmx_r2r(paddusw, regs, regd)

## ◆ paddw

#define paddw | ( |  | vars,
|  |  | vard ) mmx_m2m(paddw, vars, vard)

## ◆ paddw_m2r

#define paddw_m2r | ( |  | var,
|  |  | reg ) mmx_m2r(paddw, var, reg)

## ◆ paddw_r2r

#define paddw_r2r | ( |  | regs,
|  |  | regd ) mmx_r2r(paddw, regs, regd)

Referenced by deinterlace_line(), deinterlace_scanline_linear_blend(), and deinterlace_scanline_linear_blend2().

## ◆ pand

#define pand | ( |  | vars,
|  |  | vard ) mmx_m2m(pand, vars, vard)

## ◆ pand_m2r

#define pand_m2r | ( |  | var,
|  |  | reg ) mmx_m2r(pand, var, reg)

## ◆ pand_r2r

#define pand_r2r | ( |  | regs,
|  |  | regd ) mmx_r2r(pand, regs, regd)

Referenced by deinterlace_greedy_packed422_scanline_mmxext().

## ◆ pandn

#define pandn | ( |  | vars,
|  |  | vard ) mmx_m2m(pandn, vars, vard)

## ◆ pandn_m2r

#define pandn_m2r | ( |  | var,
|  |  | reg ) mmx_m2r(pandn, var, reg)

## ◆ pandn_r2r

#define pandn_r2r | ( |  | regs,
|  |  | regd ) mmx_r2r(pandn, regs, regd)

## ◆ pcmpeqb

#define pcmpeqb | ( |  | vars,
|  |  | vard ) mmx_m2m(pcmpeqb, vars, vard)

## ◆ pcmpeqb_m2r

#define pcmpeqb_m2r | ( |  | var,
|  |  | reg ) mmx_m2r(pcmpeqb, var, reg)

## ◆ pcmpeqb_r2r

#define pcmpeqb_r2r | ( |  | regs,
|  |  | regd ) mmx_r2r(pcmpeqb, regs, regd)

Referenced by deinterlace_greedy_packed422_scanline_mmxext().

## ◆ pcmpeqd

#define pcmpeqd | ( |  | vars,
|  |  | vard ) mmx_m2m(pcmpeqd, vars, vard)

## ◆ pcmpeqd_m2r

#define pcmpeqd_m2r | ( |  | var,
|  |  | reg ) mmx_m2r(pcmpeqd, var, reg)

## ◆ pcmpeqd_r2r

#define pcmpeqd_r2r | ( |  | regs,
|  |  | regd ) mmx_r2r(pcmpeqd, regs, regd)

## ◆ pcmpeqw

#define pcmpeqw | ( |  | vars,
|  |  | vard ) mmx_m2m(pcmpeqw, vars, vard)

## ◆ pcmpeqw_m2r

#define pcmpeqw_m2r | ( |  | var,
|  |  | reg ) mmx_m2r(pcmpeqw, var, reg)

## ◆ pcmpeqw_r2r

#define pcmpeqw_r2r | ( |  | regs,
|  |  | regd ) mmx_r2r(pcmpeqw, regs, regd)

## ◆ pcmpgtb

#define pcmpgtb | ( |  | vars,
|  |  | vard ) mmx_m2m(pcmpgtb, vars, vard)

## ◆ pcmpgtb_m2r

#define pcmpgtb_m2r | ( |  | var,
|  |  | reg ) mmx_m2r(pcmpgtb, var, reg)

## ◆ pcmpgtb_r2r

#define pcmpgtb_r2r | ( |  | regs,
|  |  | regd ) mmx_r2r(pcmpgtb, regs, regd)

## ◆ pcmpgtd

#define pcmpgtd | ( |  | vars,
|  |  | vard ) mmx_m2m(pcmpgtd, vars, vard)

## ◆ pcmpgtd_m2r

#define pcmpgtd_m2r | ( |  | var,
|  |  | reg ) mmx_m2r(pcmpgtd, var, reg)

## ◆ pcmpgtd_r2r

#define pcmpgtd_r2r | ( |  | regs,
|  |  | regd ) mmx_r2r(pcmpgtd, regs, regd)

## ◆ pcmpgtw

#define pcmpgtw | ( |  | vars,
|  |  | vard ) mmx_m2m(pcmpgtw, vars, vard)

## ◆ pcmpgtw_m2r

#define pcmpgtw_m2r | ( |  | var,
|  |  | reg ) mmx_m2r(pcmpgtw, var, reg)

## ◆ pcmpgtw_r2r

#define pcmpgtw_r2r | ( |  | regs,
|  |  | regd ) mmx_r2r(pcmpgtw, regs, regd)

## ◆ pmaddwd

#define pmaddwd | ( |  | vars,
|  |  | vard ) mmx_m2m(pmaddwd, vars, vard)

## ◆ pmaddwd_m2r

#define pmaddwd_m2r | ( |  | var,
|  |  | reg ) mmx_m2r(pmaddwd, var, reg)

## ◆ pmaddwd_r2r

#define pmaddwd_r2r | ( |  | regs,
|  |  | regd ) mmx_r2r(pmaddwd, regs, regd)

## ◆ pmulhw

#define pmulhw | ( |  | vars,
|  |  | vard ) mmx_m2m(pmulhw, vars, vard)

## ◆ pmulhw_m2r

#define pmulhw_m2r | ( |  | var,
|  |  | reg ) mmx_m2r(pmulhw, var, reg)

## ◆ pmulhw_r2r

#define pmulhw_r2r | ( |  | regs,
|  |  | regd ) mmx_r2r(pmulhw, regs, regd)

## ◆ pmullw

#define pmullw | ( |  | vars,
|  |  | vard ) mmx_m2m(pmullw, vars, vard)

## ◆ pmullw_m2r

#define pmullw_m2r | ( |  | var,
|  |  | reg ) mmx_m2r(pmullw, var, reg)

## ◆ pmullw_r2r

#define pmullw_r2r | ( |  | regs,
|  |  | regd ) mmx_r2r(pmullw, regs, regd)

## ◆ por

#define por | ( |  | vars,
|  |  | vard ) mmx_m2m(por, vars, vard)

## ◆ por_m2r

#define por_m2r | ( |  | var,
|  |  | reg ) mmx_m2r(por, var, reg)

## ◆ por_r2r

#define por_r2r | ( |  | regs,
|  |  | regd ) mmx_r2r(por, regs, regd)

Referenced by deinterlace_greedy_packed422_scanline_mmxext().

## ◆ pslld

#define pslld | ( |  | vars,
|  |  | vard ) mmx_m2m(pslld, vars, vard)

## ◆ pslld_i2r

#define pslld_i2r | ( |  | imm,
|  |  | reg ) mmx_i2r(pslld, imm, reg)

## ◆ pslld_m2r

#define pslld_m2r | ( |  | var,
|  |  | reg ) mmx_m2r(pslld, var, reg)

## ◆ pslld_r2r

#define pslld_r2r | ( |  | regs,
|  |  | regd ) mmx_r2r(pslld, regs, regd)

## ◆ psllq

#define psllq | ( |  | vars,
|  |  | vard ) mmx_m2m(psllq, vars, vard)

## ◆ psllq_i2r

#define psllq_i2r | ( |  | imm,
|  |  | reg ) mmx_i2r(psllq, imm, reg)

## ◆ psllq_m2r

#define psllq_m2r | ( |  | var,
|  |  | reg ) mmx_m2r(psllq, var, reg)

## ◆ psllq_r2r

#define psllq_r2r | ( |  | regs,
|  |  | regd ) mmx_r2r(psllq, regs, regd)

## ◆ psllw

#define psllw | ( |  | vars,
|  |  | vard ) mmx_m2m(psllw, vars, vard)

## ◆ psllw_i2r

#define psllw_i2r | ( |  | imm,
|  |  | reg ) mmx_i2r(psllw, imm, reg)

Referenced by deinterlace_line(), deinterlace_scanline_linear_blend(), and deinterlace_scanline_linear_blend2().

## ◆ psllw_m2r

#define psllw_m2r | ( |  | var,
|  |  | reg ) mmx_m2r(psllw, var, reg)

## ◆ psllw_r2r

#define psllw_r2r | ( |  | regs,
|  |  | regd ) mmx_r2r(psllw, regs, regd)

## ◆ psrad

#define psrad | ( |  | vars,
|  |  | vard ) mmx_m2m(psrad, vars, vard)

## ◆ psrad_i2r

#define psrad_i2r | ( |  | imm,
|  |  | reg ) mmx_i2r(psrad, imm, reg)

## ◆ psrad_m2r

#define psrad_m2r | ( |  | var,
|  |  | reg ) mmx_m2r(psrad, var, reg)

## ◆ psrad_r2r

#define psrad_r2r | ( |  | regs,
|  |  | regd ) mmx_r2r(psrad, regs, regd)

## ◆ psraw

#define psraw | ( |  | vars,
|  |  | vard ) mmx_m2m(psraw, vars, vard)

## ◆ psraw_i2r

#define psraw_i2r | ( |  | imm,
|  |  | reg ) mmx_i2r(psraw, imm, reg)

## ◆ psraw_m2r

#define psraw_m2r | ( |  | var,
|  |  | reg ) mmx_m2r(psraw, var, reg)

## ◆ psraw_r2r

#define psraw_r2r | ( |  | regs,
|  |  | regd ) mmx_r2r(psraw, regs, regd)

## ◆ psrld

#define psrld | ( |  | vars,
|  |  | vard ) mmx_m2m(psrld, vars, vard)

## ◆ psrld_i2r

#define psrld_i2r | ( |  | imm,
|  |  | reg ) mmx_i2r(psrld, imm, reg)

## ◆ psrld_m2r

#define psrld_m2r | ( |  | var,
|  |  | reg ) mmx_m2r(psrld, var, reg)

## ◆ psrld_r2r

#define psrld_r2r | ( |  | regs,
|  |  | regd ) mmx_r2r(psrld, regs, regd)

## ◆ psrlq

#define psrlq | ( |  | vars,
|  |  | vard ) mmx_m2m(psrlq, vars, vard)

## ◆ psrlq_i2r

#define psrlq_i2r | ( |  | imm,
|  |  | reg ) mmx_i2r(psrlq, imm, reg)

## ◆ psrlq_m2r

#define psrlq_m2r | ( |  | var,
|  |  | reg ) mmx_m2r(psrlq, var, reg)

## ◆ psrlq_r2r

#define psrlq_r2r | ( |  | regs,
|  |  | regd ) mmx_r2r(psrlq, regs, regd)

## ◆ psrlw

#define psrlw | ( |  | vars,
|  |  | vard ) mmx_m2m(psrlw, vars, vard)

## ◆ psrlw_i2r

#define psrlw_i2r | ( |  | imm,
|  |  | reg ) mmx_i2r(psrlw, imm, reg)

Referenced by deinterlace_line(), deinterlace_scanline_linear_blend(), and deinterlace_scanline_linear_blend2().

## ◆ psrlw_m2r

#define psrlw_m2r | ( |  | var,
|  |  | reg ) mmx_m2r(psrlw, var, reg)

## ◆ psrlw_r2r

#define psrlw_r2r | ( |  | regs,
|  |  | regd ) mmx_r2r(psrlw, regs, regd)

## ◆ psubb

#define psubb | ( |  | vars,
|  |  | vard ) mmx_m2m(psubb, vars, vard)

## ◆ psubb_m2r

#define psubb_m2r | ( |  | var,
|  |  | reg ) mmx_m2r(psubb, var, reg)

## ◆ psubb_r2r

#define psubb_r2r | ( |  | regs,
|  |  | regd ) mmx_r2r(psubb, regs, regd)

## ◆ psubd

#define psubd | ( |  | vars,
|  |  | vard ) mmx_m2m(psubd, vars, vard)

## ◆ psubd_m2r

#define psubd_m2r | ( |  | var,
|  |  | reg ) mmx_m2r(psubd, var, reg)

## ◆ psubd_r2r

#define psubd_r2r | ( |  | regs,
|  |  | regd ) mmx_r2r(psubd, regs, regd)

## ◆ psubsb

#define psubsb | ( |  | vars,
|  |  | vard ) mmx_m2m(psubsb, vars, vard)

## ◆ psubsb_m2r

#define psubsb_m2r | ( |  | var,
|  |  | reg ) mmx_m2r(psubsb, var, reg)

## ◆ psubsb_r2r

#define psubsb_r2r | ( |  | regs,
|  |  | regd ) mmx_r2r(psubsb, regs, regd)

## ◆ psubsw

#define psubsw | ( |  | vars,
|  |  | vard ) mmx_m2m(psubsw, vars, vard)

## ◆ psubsw_m2r

#define psubsw_m2r | ( |  | var,
|  |  | reg ) mmx_m2r(psubsw, var, reg)

## ◆ psubsw_r2r

#define psubsw_r2r | ( |  | regs,
|  |  | regd ) mmx_r2r(psubsw, regs, regd)

## ◆ psubusb

#define psubusb | ( |  | vars,
|  |  | vard ) mmx_m2m(psubusb, vars, vard)

## ◆ psubusb_m2r

#define psubusb_m2r | ( |  | var,
|  |  | reg ) mmx_m2r(psubusb, var, reg)

Referenced by deinterlace_greedy_packed422_scanline_mmxext().

## ◆ psubusb_r2r

#define psubusb_r2r | ( |  | regs,
|  |  | regd ) mmx_r2r(psubusb, regs, regd)

Referenced by deinterlace_greedy_packed422_scanline_mmxext().

## ◆ psubusw

#define psubusw | ( |  | vars,
|  |  | vard ) mmx_m2m(psubusw, vars, vard)

## ◆ psubusw_m2r

#define psubusw_m2r | ( |  | var,
|  |  | reg ) mmx_m2r(psubusw, var, reg)

## ◆ psubusw_r2r

#define psubusw_r2r | ( |  | regs,
|  |  | regd ) mmx_r2r(psubusw, regs, regd)

Referenced by deinterlace_line().

## ◆ psubw

#define psubw | ( |  | vars,
|  |  | vard ) mmx_m2m(psubw, vars, vard)

## ◆ psubw_m2r

#define psubw_m2r | ( |  | var,
|  |  | reg ) mmx_m2r(psubw, var, reg)

## ◆ psubw_r2r

#define psubw_r2r | ( |  | regs,
|  |  | regd ) mmx_r2r(psubw, regs, regd)

## ◆ punpckhbw

#define punpckhbw | ( |  | vars,
|  |  | vard ) mmx_m2m(punpckhbw, vars, vard)

## ◆ punpckhbw_m2r

#define punpckhbw_m2r | ( |  | var,
|  |  | reg ) mmx_m2r(punpckhbw, var, reg)

## ◆ punpckhbw_r2r

#define punpckhbw_r2r | ( |  | regs,
|  |  | regd ) mmx_r2r(punpckhbw, regs, regd)

## ◆ punpckhdq

#define punpckhdq | ( |  | vars,
|  |  | vard ) mmx_m2m(punpckhdq, vars, vard)

## ◆ punpckhdq_m2r

#define punpckhdq_m2r | ( |  | var,
|  |  | reg ) mmx_m2r(punpckhdq, var, reg)

## ◆ punpckhdq_r2r

#define punpckhdq_r2r | ( |  | regs,
|  |  | regd ) mmx_r2r(punpckhdq, regs, regd)

## ◆ punpckhwd

#define punpckhwd | ( |  | vars,
|  |  | vard ) mmx_m2m(punpckhwd, vars, vard)

## ◆ punpckhwd_m2r

#define punpckhwd_m2r | ( |  | var,
|  |  | reg ) mmx_m2r(punpckhwd, var, reg)

## ◆ punpckhwd_r2r

#define punpckhwd_r2r | ( |  | regs,
|  |  | regd ) mmx_r2r(punpckhwd, regs, regd)

## ◆ punpcklbw

#define punpcklbw | ( |  | vars,
|  |  | vard ) mmx_m2m(punpcklbw, vars, vard)

## ◆ punpcklbw_m2r

#define punpcklbw_m2r | ( |  | var,
|  |  | reg ) mmx_m2r(punpcklbw, var, reg)

## ◆ punpcklbw_r2r

#define punpcklbw_r2r | ( |  | regs,
|  |  | regd ) mmx_r2r(punpcklbw, regs, regd)

Referenced by deinterlace_line(), deinterlace_scanline_linear_blend(), and deinterlace_scanline_linear_blend2().

## ◆ punpckldq

#define punpckldq | ( |  | vars,
|  |  | vard ) mmx_m2m(punpckldq, vars, vard)

## ◆ punpckldq_m2r

#define punpckldq_m2r | ( |  | var,
|  |  | reg ) mmx_m2r(punpckldq, var, reg)

## ◆ punpckldq_r2r

#define punpckldq_r2r | ( |  | regs,
|  |  | regd ) mmx_r2r(punpckldq, regs, regd)

Referenced by ifs_update().

## ◆ punpcklwd

#define punpcklwd | ( |  | vars,
|  |  | vard ) mmx_m2m(punpcklwd, vars, vard)

## ◆ punpcklwd_m2r

#define punpcklwd_m2r | ( |  | var,
|  |  | reg ) mmx_m2r(punpcklwd, var, reg)

## ◆ punpcklwd_r2r

#define punpcklwd_r2r | ( |  | regs,
|  |  | regd ) mmx_r2r(punpcklwd, regs, regd)

## ◆ pxor

#define pxor | ( |  | vars,
|  |  | vard ) mmx_m2m(pxor, vars, vard)

## ◆ pxor_m2r

#define pxor_m2r | ( |  | var,
|  |  | reg ) mmx_m2r(pxor, var, reg)

## ◆ pxor_r2r

#define pxor_r2r | ( |  | regs,
|  |  | regd ) mmx_r2r(pxor, regs, regd)

Referenced by deinterlace_line(), deinterlace_scanline_linear_blend(), and deinterlace_scanline_linear_blend2().

## Function Documentation

## ◆ draw_line_mmx()

void draw_line_mmx | ( | Pixel * | data,
|  | int | x1,
|  | int | y1,
|  | int | x2,
|  | int | y2,
|  | int | col,
|  | int | screenx,
|  | int | screeny )

Referenced by setOptimizedMethods().

## ◆ draw_line_xmmx()

void draw_line_xmmx | ( | Pixel * | data,
|  | int | x1,
|  | int | y1,
|  | int | x2,
|  | int | y2,
|  | int | col,
|  | int | screenx,
|  | int | screeny )

## ◆ mm_support()

static int mm_support | ( | void |  | ) |
| static

Referenced by mmx_ok().

## ◆ mmx_ok()

static int mmx_ok | ( | void |  | ) |
| inlinestatic

References mm_support().

## ◆ mmx_supported()

int mmx_supported | ( | void |  | ) |

Referenced by autoset_cpu_info().

## ◆ xmmx_supported()

int xmmx_supported | ( | void |  | ) |

Referenced by autoset_cpu_info().

## ◆ zoom_filter_mmx()

void zoom_filter_mmx | ( | int | prevX,
|  | int | prevY,
|  | Pixel * | expix1,
|  | Pixel * | expix2,
|  | int * | brutS,
|  | int * | brutD,
|  | int | buffratio,
|  | int | precalCoef[16][16] )

Referenced by setOptimizedMethods().

## ◆ zoom_filter_xmmx()

void zoom_filter_xmmx | ( | int | prevX,
|  | int | prevY,
|  | Pixel * | expix1,
|  | Pixel * | expix2,
|  | int * | lbruS,
|  | int * | lbruD,
|  | int | buffratio,
|  | int | precalCoef[16][16] )

Referenced by setOptimizedMethods().