SASC-NG
DVBSoftCAM

parallel_064_mmx.h File Reference

#include <mmintrin.h>
#include "fftable.h"

Go to the source code of this file.

Classes

union  __u64

Defines

#define MEMALIGN_VAL   16
#define GROUP_PARALLELISM   64
#define FF0()   ff0.v
#define FF1()   ff1.v
#define FFAND(a, b)   _mm_and_si64((a),(b))
#define FFOR(a, b)   _mm_or_si64((a),(b))
#define FFXOR(a, b)   _mm_xor_si64((a),(b))
#define FFNOT(a)   _mm_xor_si64((a),FF1())
#define BYTES_PER_BATCH   8
#define B_FFAND(a, b)   FFAND((a),(b))
#define B_FFOR(a, b)   FFOR((a),(b))
#define B_FFXOR(a, b)   FFXOR((a),(b))
#define B_FFN_ALL_29()   ff29.v
#define B_FFN_ALL_02()   ff02.v
#define B_FFN_ALL_04()   ff04.v
#define B_FFN_ALL_10()   ff10.v
#define B_FFN_ALL_40()   ff40.v
#define B_FFN_ALL_80()   ff80.v
#define B_FFSH8L(a, n)   _mm_slli_si64((a),(n))
#define B_FFSH8R(a, n)   _mm_srli_si64((a),(n))
#define M_EMPTY()   _mm_empty()
#define XOR_8_BY(d, s1, s2)   do { *(__m64*)d = _mm_xor_si64(*(__m64*)(s1), *(__m64*)(s2)); } while(0)
#define XOREQ_8_BY(d, s)   XOR_8_BY(d, d, s)
#define COPY_8_BY(d, s)   do { *(__m64 *)(d) = *(__m64 *)(s); } while(0)
#define BEST_SPAN   8
#define XOR_BEST_BY(d, s1, s2)   XOR_8_BY(d,s1,s2)

Typedefs

typedef __m64 group
typedef __m64 batch

Variables

static union __u64 ff0 = {{0x00000000U, 0x00000000U}}
static union __u64 ff1 = {{0xffffffffU, 0xffffffffU}}
static union __u64 ff29 = {{0x29292929U, 0x29292929U}}
static union __u64 ff02 = {{0x02020202U, 0x02020202U}}
static union __u64 ff04 = {{0x04040404U, 0x04040404U}}
static union __u64 ff10 = {{0x10101010U, 0x10101010U}}
static union __u64 ff40 = {{0x40404040U, 0x40404040U}}
static union __u64 ff80 = {{0x80808080U, 0x80808080U}}

Define Documentation

#define B_FFAND (   a,
  b 
)    FFAND((a),(b))

Definition at line 53 of file parallel_064_mmx.h.

Referenced by block_decypher_group().

#define B_FFN_ALL_02 ( )    ff02.v

Definition at line 57 of file parallel_064_mmx.h.

#define B_FFN_ALL_04 ( )    ff04.v

Definition at line 58 of file parallel_064_mmx.h.

#define B_FFN_ALL_10 ( )    ff10.v

Definition at line 59 of file parallel_064_mmx.h.

#define B_FFN_ALL_29 ( )    ff29.v

Definition at line 56 of file parallel_064_mmx.h.

#define B_FFN_ALL_40 ( )    ff40.v

Definition at line 60 of file parallel_064_mmx.h.

#define B_FFN_ALL_80 ( )    ff80.v

Definition at line 61 of file parallel_064_mmx.h.

#define B_FFOR (   a,
  b 
)    FFOR((a),(b))

Definition at line 54 of file parallel_064_mmx.h.

Referenced by block_decypher_group().

#define B_FFSH8L (   a,
  n 
)    _mm_slli_si64((a),(n))

Definition at line 62 of file parallel_064_mmx.h.

Referenced by block_decypher_group().

#define B_FFSH8R (   a,
  n 
)    _mm_srli_si64((a),(n))

Definition at line 63 of file parallel_064_mmx.h.

Referenced by block_decypher_group().

#define B_FFXOR (   a,
  b 
)    FFXOR((a),(b))

Definition at line 55 of file parallel_064_mmx.h.

Referenced by block_decypher_group().

#define BEST_SPAN   8

Definition at line 78 of file parallel_064_mmx.h.

Referenced by block_decypher_group().

#define BYTES_PER_BATCH   8

Definition at line 52 of file parallel_064_mmx.h.

#define COPY_8_BY (   d,
  s 
)    do { *(__m64 *)(d) = *(__m64 *)(s); } while(0)

Definition at line 75 of file parallel_064_mmx.h.

Referenced by decrypt_packets().

#define FF0 ( )    ff0.v

Definition at line 35 of file parallel_064_mmx.h.

#define FF1 ( )    ff1.v

Definition at line 36 of file parallel_064_mmx.h.

#define FFAND (   a,
  b 
)    _mm_and_si64((a),(b))

Definition at line 37 of file parallel_064_mmx.h.

#define FFNOT (   a)    _mm_xor_si64((a),FF1())

Definition at line 40 of file parallel_064_mmx.h.

#define FFOR (   a,
  b 
)    _mm_or_si64((a),(b))

Definition at line 38 of file parallel_064_mmx.h.

#define FFXOR (   a,
  b 
)    _mm_xor_si64((a),(b))

Definition at line 39 of file parallel_064_mmx.h.

#define GROUP_PARALLELISM   64

Definition at line 34 of file parallel_064_mmx.h.

#define M_EMPTY (   void)    _mm_empty()

Definition at line 65 of file parallel_064_mmx.h.

#define MEMALIGN_VAL   16

Definition at line 23 of file parallel_064_mmx.h.

#define XOR_8_BY (   d,
  s1,
  s2 
)    do { *(__m64*)d = _mm_xor_si64(*(__m64*)(s1), *(__m64*)(s2)); } while(0)

Definition at line 69 of file parallel_064_mmx.h.

Referenced by decrypt_packets().

#define XOR_BEST_BY (   d,
  s1,
  s2 
)    XOR_8_BY(d,s1,s2)

Definition at line 81 of file parallel_064_mmx.h.

Referenced by block_decypher_group(), and XOREQ_BEST_BY().

#define XOREQ_8_BY (   d,
  s 
)    XOR_8_BY(d, d, s)

Definition at line 72 of file parallel_064_mmx.h.

Referenced by decrypt_packets().


Typedef Documentation

typedef __m64 batch

Definition at line 51 of file parallel_064_mmx.h.

typedef __m64 group

Definition at line 33 of file parallel_064_mmx.h.


Variable Documentation

union __u64 ff0 = {{0x00000000U, 0x00000000U}} [static]

Definition at line 30 of file parallel_064_mmx.h.

union __u64 ff02 = {{0x02020202U, 0x02020202U}} [static]

Definition at line 45 of file parallel_064_mmx.h.

union __u64 ff04 = {{0x04040404U, 0x04040404U}} [static]

Definition at line 46 of file parallel_064_mmx.h.

union __u64 ff1 = {{0xffffffffU, 0xffffffffU}} [static]

Definition at line 31 of file parallel_064_mmx.h.

union __u64 ff10 = {{0x10101010U, 0x10101010U}} [static]

Definition at line 47 of file parallel_064_mmx.h.

union __u64 ff29 = {{0x29292929U, 0x29292929U}} [static]

Definition at line 44 of file parallel_064_mmx.h.

union __u64 ff40 = {{0x40404040U, 0x40404040U}} [static]

Definition at line 48 of file parallel_064_mmx.h.

union __u64 ff80 = {{0x80808080U, 0x80808080U}} [static]

Definition at line 49 of file parallel_064_mmx.h.

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines