Qt 4.8
Static Public Functions | List of all members
QMMXCommonIntrinsics Struct Reference

#include <qdrawhelper_mmx_p.h>

Static Public Functions

static m64 _byte_mul (const m64 &a, const m64 &b, const m64 &mmx_0x0080)
 
static m64 _interpolate_pixel_255 (const m64 &x, const m64 &a, const m64 &y, const m64 &b, const m64 &mmx_0x0080)
 
static m64 _load (uint x, const m64 &mmx_0x0000)
 
static m64 _load_alpha (uint x, const m64 &)
 
static m64 _negate (const m64 &x, const m64 &mmx_0x00ff)
 
static m64 _premul (m64 x, const m64 &mmx_0x0080)
 
static uint _store (const m64 &x, const m64 &mmx_0x0000)
 
static m64 add (const m64 &a, const m64 &b)
 
static m64 alpha (m64 x)
 
static m64 interpolate_pixel_256 (const m64 &x, const m64 &a, const m64 &y, const m64 &b)
 

Detailed Description

Definition at line 76 of file qdrawhelper_mmx_p.h.

Functions

◆ _byte_mul()

static m64 QMMXCommonIntrinsics::_byte_mul ( const m64 a,
const m64 b,
const m64 mmx_0x0080 
)
inlinestatic

Definition at line 92 of file qdrawhelper_mmx_p.h.

Referenced by _premul().

94  {
95  m64 res = _mm_mullo_pi16(a, b);
96  res = _mm_adds_pu16(res, mmx_0x0080);
97  res = _mm_adds_pu16(res, _mm_srli_pi16 (res, 8));
98  return _mm_srli_pi16(res, 8);
99  }
__m64 m64
long ASN1_INTEGER_get ASN1_INTEGER * a

◆ _interpolate_pixel_255()

static m64 QMMXCommonIntrinsics::_interpolate_pixel_255 ( const m64 x,
const m64 a,
const m64 y,
const m64 b,
const m64 mmx_0x0080 
)
inlinestatic

Definition at line 108 of file qdrawhelper_mmx_p.h.

111  {
112  m64 res = _mm_adds_pu16(_mm_mullo_pi16(x, a), _mm_mullo_pi16(y, b));
113  res = _mm_adds_pu16(res, mmx_0x0080);
114  res = _mm_adds_pu16(res, _mm_srli_pi16 (res, 8));
115  return _mm_srli_pi16(res, 8);
116  }
__m64 m64
long ASN1_INTEGER_get ASN1_INTEGER * a

◆ _load()

static m64 QMMXCommonIntrinsics::_load ( uint  x,
const m64 mmx_0x0000 
)
inlinestatic

Definition at line 123 of file qdrawhelper_mmx_p.h.

123  {
124  return _mm_unpacklo_pi8(_mm_cvtsi32_si64(x), mmx_0x0000);
125  }

◆ _load_alpha()

static m64 QMMXCommonIntrinsics::_load_alpha ( uint  x,
const m64  
)
inlinestatic

Definition at line 127 of file qdrawhelper_mmx_p.h.

127  {
128  x |= (x << 16);
129  return _mm_set1_pi32(x);
130  }

◆ _negate()

static m64 QMMXCommonIntrinsics::_negate ( const m64 x,
const m64 mmx_0x00ff 
)
inlinestatic

Definition at line 84 of file qdrawhelper_mmx_p.h.

84  {
85  return _mm_xor_si64(x, mmx_0x00ff);
86  }

◆ _premul()

static m64 QMMXCommonIntrinsics::_premul ( m64  x,
const m64 mmx_0x0080 
)
inlinestatic

Definition at line 118 of file qdrawhelper_mmx_p.h.

118  {
119  m64 a = alpha(x);
120  return _byte_mul(x, a, mmx_0x0080);
121  }
static m64 alpha(m64 x)
__m64 m64
long ASN1_INTEGER_get ASN1_INTEGER * a
static m64 _byte_mul(const m64 &a, const m64 &b, const m64 &mmx_0x0080)

◆ _store()

static uint QMMXCommonIntrinsics::_store ( const m64 x,
const m64 mmx_0x0000 
)
inlinestatic

Definition at line 132 of file qdrawhelper_mmx_p.h.

132  {
133  return _mm_cvtsi64_si32(_mm_packs_pu16(x, mmx_0x0000));
134  }

◆ add()

static m64 QMMXCommonIntrinsics::add ( const m64 a,
const m64 b 
)
inlinestatic

Definition at line 88 of file qdrawhelper_mmx_p.h.

88  {
89  return _mm_adds_pu16 (a, b);
90  }
long ASN1_INTEGER_get ASN1_INTEGER * a

◆ alpha()

static m64 QMMXCommonIntrinsics::alpha ( m64  x)
inlinestatic

Definition at line 78 of file qdrawhelper_mmx_p.h.

Referenced by _premul().

78  {
79  x = _mm_unpackhi_pi16(x, x);
80  x = _mm_unpackhi_pi16(x, x);
81  return x;
82  }

◆ interpolate_pixel_256()

static m64 QMMXCommonIntrinsics::interpolate_pixel_256 ( const m64 x,
const m64 a,
const m64 y,
const m64 b 
)
inlinestatic

Definition at line 101 of file qdrawhelper_mmx_p.h.

103  {
104  m64 res = _mm_adds_pu16(_mm_mullo_pi16(x, a), _mm_mullo_pi16(y, b));
105  return _mm_srli_pi16(res, 8);
106  }
__m64 m64
long ASN1_INTEGER_get ASN1_INTEGER * a

The documentation for this struct was generated from the following file: