Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Macros
xor_64.h File Reference
#include <asm/i387.h>
#include <asm/xor_avx.h>

Go to the source code of this file.

Macros

#define OFFS(x)   "16*("#x")"
 
#define PF_OFFS(x)   "256+16*("#x")"
 
#define PF0(x)   " prefetchnta "PF_OFFS(x)"(%[p1]) ;\n"
 
#define LD(x, y)   " movaps "OFFS(x)"(%[p1]), %%xmm"#y" ;\n"
 
#define ST(x, y)   " movaps %%xmm"#y", "OFFS(x)"(%[p1]) ;\n"
 
#define PF1(x)   " prefetchnta "PF_OFFS(x)"(%[p2]) ;\n"
 
#define PF2(x)   " prefetchnta "PF_OFFS(x)"(%[p3]) ;\n"
 
#define PF3(x)   " prefetchnta "PF_OFFS(x)"(%[p4]) ;\n"
 
#define PF4(x)   " prefetchnta "PF_OFFS(x)"(%[p5]) ;\n"
 
#define PF5(x)   " prefetchnta "PF_OFFS(x)"(%[p6]) ;\n"
 
#define XO1(x, y)   " xorps "OFFS(x)"(%[p2]), %%xmm"#y" ;\n"
 
#define XO2(x, y)   " xorps "OFFS(x)"(%[p3]), %%xmm"#y" ;\n"
 
#define XO3(x, y)   " xorps "OFFS(x)"(%[p4]), %%xmm"#y" ;\n"
 
#define XO4(x, y)   " xorps "OFFS(x)"(%[p5]), %%xmm"#y" ;\n"
 
#define XO5(x, y)   " xorps "OFFS(x)"(%[p6]), %%xmm"#y" ;\n"
 
#define BLOCK(i)
 
#define BLOCK(i)
 
#define BLOCK(i)
 
#define BLOCK(i)
 
#define XOR_TRY_TEMPLATES
 
#define XOR_SELECT_TEMPLATE(FASTEST)   AVX_SELECT(&xor_block_sse)
 

Macro Definition Documentation

#define BLOCK (   i)
Value:
LD(i, 0) \
LD(i + 1, 1) \
PF1(i) \
PF1(i + 2) \
LD(i + 2, 2) \
LD(i + 3, 3) \
PF0(i + 4) \
PF0(i + 6) \
XO1(i, 0) \
XO1(i + 1, 1) \
XO1(i + 2, 2) \
XO1(i + 3, 3) \
ST(i, 0) \
ST(i + 1, 1) \
ST(i + 2, 2) \
ST(i + 3, 3) \
#define BLOCK (   i)
Value:
PF1(i) \
PF1(i + 2) \
LD(i, 0) \
LD(i + 1, 1) \
LD(i + 2, 2) \
LD(i + 3, 3) \
PF2(i) \
PF2(i + 2) \
PF0(i + 4) \
PF0(i + 6) \
XO1(i, 0) \
XO1(i + 1, 1) \
XO1(i + 2, 2) \
XO1(i + 3, 3) \
XO2(i, 0) \
XO2(i + 1, 1) \
XO2(i + 2, 2) \
XO2(i + 3, 3) \
ST(i, 0) \
ST(i + 1, 1) \
ST(i + 2, 2) \
ST(i + 3, 3) \
#define BLOCK (   i)
Value:
PF1(i) \
PF1(i + 2) \
LD(i, 0) \
LD(i + 1, 1) \
LD(i + 2, 2) \
LD(i + 3, 3) \
PF2(i) \
PF2(i + 2) \
XO1(i, 0) \
XO1(i + 1, 1) \
XO1(i + 2, 2) \
XO1(i + 3, 3) \
PF3(i) \
PF3(i + 2) \
PF0(i + 4) \
PF0(i + 6) \
XO2(i, 0) \
XO2(i + 1, 1) \
XO2(i + 2, 2) \
XO2(i + 3, 3) \
XO3(i, 0) \
XO3(i + 1, 1) \
XO3(i + 2, 2) \
XO3(i + 3, 3) \
ST(i, 0) \
ST(i + 1, 1) \
ST(i + 2, 2) \
ST(i + 3, 3) \
#define BLOCK (   i)
#define LD (   x,
  y 
)    " movaps "OFFS(x)"(%[p1]), %%xmm"#y" ;\n"

Definition at line 42 of file xor_64.h.

#define OFFS (   x)    "16*("#x")"

Definition at line 39 of file xor_64.h.

#define PF0 (   x)    " prefetchnta "PF_OFFS(x)"(%[p1]) ;\n"

Definition at line 41 of file xor_64.h.

#define PF1 (   x)    " prefetchnta "PF_OFFS(x)"(%[p2]) ;\n"

Definition at line 44 of file xor_64.h.

#define PF2 (   x)    " prefetchnta "PF_OFFS(x)"(%[p3]) ;\n"

Definition at line 45 of file xor_64.h.

#define PF3 (   x)    " prefetchnta "PF_OFFS(x)"(%[p4]) ;\n"

Definition at line 46 of file xor_64.h.

#define PF4 (   x)    " prefetchnta "PF_OFFS(x)"(%[p5]) ;\n"

Definition at line 47 of file xor_64.h.

#define PF5 (   x)    " prefetchnta "PF_OFFS(x)"(%[p6]) ;\n"

Definition at line 48 of file xor_64.h.

#define PF_OFFS (   x)    "256+16*("#x")"

Definition at line 40 of file xor_64.h.

#define ST (   x,
  y 
)    " movaps %%xmm"#y", "OFFS(x)"(%[p1]) ;\n"

Definition at line 43 of file xor_64.h.

#define XO1 (   x,
  y 
)    " xorps "OFFS(x)"(%[p2]), %%xmm"#y" ;\n"

Definition at line 49 of file xor_64.h.

#define XO2 (   x,
  y 
)    " xorps "OFFS(x)"(%[p3]), %%xmm"#y" ;\n"

Definition at line 50 of file xor_64.h.

#define XO3 (   x,
  y 
)    " xorps "OFFS(x)"(%[p4]), %%xmm"#y" ;\n"

Definition at line 51 of file xor_64.h.

#define XO4 (   x,
  y 
)    " xorps "OFFS(x)"(%[p5]), %%xmm"#y" ;\n"

Definition at line 52 of file xor_64.h.

#define XO5 (   x,
  y 
)    " xorps "OFFS(x)"(%[p6]), %%xmm"#y" ;\n"

Definition at line 53 of file xor_64.h.

#define XOR_SELECT_TEMPLATE (   FASTEST)    AVX_SELECT(&xor_block_sse)

Definition at line 321 of file xor_64.h.

#define XOR_TRY_TEMPLATES
Value:
do { \
AVX_XOR_SPEED; \
xor_speed(&xor_block_sse); \
} while (0)

Definition at line 312 of file xor_64.h.