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

Go to the source code of this file.

Macros

#define LD(x, y)   " movq 8*("#x")(%1), %%mm"#y" ;\n"
 
#define ST(x, y)   " movq %%mm"#y", 8*("#x")(%1) ;\n"
 
#define XO1(x, y)   " pxor 8*("#x")(%2), %%mm"#y" ;\n"
 
#define XO2(x, y)   " pxor 8*("#x")(%3), %%mm"#y" ;\n"
 
#define XO3(x, y)   " pxor 8*("#x")(%4), %%mm"#y" ;\n"
 
#define XO4(x, y)   " pxor 8*("#x")(%5), %%mm"#y" ;\n"
 
#define BLOCK(i)
 
#define BLOCK(i)
 
#define BLOCK(i)
 
#define BLOCK(i)
 
#define OFFS(x)   "16*("#x")"
 
#define PF_OFFS(x)   "256+16*("#x")"
 
#define PF0(x)   " prefetchnta "PF_OFFS(x)"(%1) ;\n"
 
#define LD(x, y)   " movaps "OFFS(x)"(%1), %%xmm"#y" ;\n"
 
#define ST(x, y)   " movaps %%xmm"#y", "OFFS(x)"(%1) ;\n"
 
#define PF1(x)   " prefetchnta "PF_OFFS(x)"(%2) ;\n"
 
#define PF2(x)   " prefetchnta "PF_OFFS(x)"(%3) ;\n"
 
#define PF3(x)   " prefetchnta "PF_OFFS(x)"(%4) ;\n"
 
#define PF4(x)   " prefetchnta "PF_OFFS(x)"(%5) ;\n"
 
#define PF5(x)   " prefetchnta "PF_OFFS(x)"(%6) ;\n"
 
#define XO1(x, y)   " xorps "OFFS(x)"(%2), %%xmm"#y" ;\n"
 
#define XO2(x, y)   " xorps "OFFS(x)"(%3), %%xmm"#y" ;\n"
 
#define XO3(x, y)   " xorps "OFFS(x)"(%4), %%xmm"#y" ;\n"
 
#define XO4(x, y)   " xorps "OFFS(x)"(%5), %%xmm"#y" ;\n"
 
#define XO5(x, y)   " xorps "OFFS(x)"(%6), %%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(cpu_has_xmm ? &xor_block_pIII_sse : FASTEST)
 

Macro Definition Documentation

#define BLOCK (   i)
Value:
LD(i, 0) \
LD(i + 1, 1) \
LD(i + 2, 2) \
LD(i + 3, 3) \
XO1(i, 0) \
ST(i, 0) \
XO1(i+1, 1) \
ST(i+1, 1) \
XO1(i + 2, 2) \
ST(i + 2, 2) \
XO1(i + 3, 3) \
ST(i + 3, 3)
#define BLOCK (   i)
Value:
LD(i, 0) \
LD(i + 1, 1) \
LD(i + 2, 2) \
LD(i + 3, 3) \
XO1(i, 0) \
XO1(i + 1, 1) \
XO1(i + 2, 2) \
XO1(i + 3, 3) \
XO2(i, 0) \
ST(i, 0) \
XO2(i + 1, 1) \
ST(i + 1, 1) \
XO2(i + 2, 2) \
ST(i + 2, 2) \
XO2(i + 3, 3) \
ST(i + 3, 3)
#define BLOCK (   i)
Value:
LD(i, 0) \
LD(i + 1, 1) \
LD(i + 2, 2) \
LD(i + 3, 3) \
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) \
XO3(i, 0) \
ST(i, 0) \
XO3(i + 1, 1) \
ST(i + 1, 1) \
XO3(i + 2, 2) \
ST(i + 2, 2) \
XO3(i + 3, 3) \
ST(i + 3, 3)
#define BLOCK (   i)
Value:
LD(i, 0) \
LD(i + 1, 1) \
LD(i + 2, 2) \
LD(i + 3, 3) \
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) \
XO3(i, 0) \
XO3(i + 1, 1) \
XO3(i + 2, 2) \
XO3(i + 3, 3) \
XO4(i, 0) \
ST(i, 0) \
XO4(i + 1, 1) \
ST(i + 1, 1) \
XO4(i + 2, 2) \
ST(i + 2, 2) \
XO4(i + 3, 3) \
ST(i + 3, 3)
#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 
)    " movq 8*("#x")(%1), %%mm"#y" ;\n"

Definition at line 540 of file xor_32.h.

#define LD (   x,
  y 
)    " movaps "OFFS(x)"(%1), %%xmm"#y" ;\n"

Definition at line 540 of file xor_32.h.

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

Definition at line 537 of file xor_32.h.

#define PF0 (   x)    " prefetchnta "PF_OFFS(x)"(%1) ;\n"

Definition at line 539 of file xor_32.h.

#define PF1 (   x)    " prefetchnta "PF_OFFS(x)"(%2) ;\n"

Definition at line 542 of file xor_32.h.

#define PF2 (   x)    " prefetchnta "PF_OFFS(x)"(%3) ;\n"

Definition at line 543 of file xor_32.h.

#define PF3 (   x)    " prefetchnta "PF_OFFS(x)"(%4) ;\n"

Definition at line 544 of file xor_32.h.

#define PF4 (   x)    " prefetchnta "PF_OFFS(x)"(%5) ;\n"

Definition at line 545 of file xor_32.h.

#define PF5 (   x)    " prefetchnta "PF_OFFS(x)"(%6) ;\n"

Definition at line 546 of file xor_32.h.

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

Definition at line 538 of file xor_32.h.

#define ST (   x,
  y 
)    " movq %%mm"#y", 8*("#x")(%1) ;\n"

Definition at line 541 of file xor_32.h.

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

Definition at line 541 of file xor_32.h.

#define XO1 (   x,
  y 
)    " pxor 8*("#x")(%2), %%mm"#y" ;\n"

Definition at line 547 of file xor_32.h.

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

Definition at line 547 of file xor_32.h.

#define XO2 (   x,
  y 
)    " pxor 8*("#x")(%3), %%mm"#y" ;\n"

Definition at line 548 of file xor_32.h.

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

Definition at line 548 of file xor_32.h.

#define XO3 (   x,
  y 
)    " pxor 8*("#x")(%4), %%mm"#y" ;\n"

Definition at line 549 of file xor_32.h.

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

Definition at line 549 of file xor_32.h.

#define XO4 (   x,
  y 
)    " pxor 8*("#x")(%5), %%mm"#y" ;\n"

Definition at line 550 of file xor_32.h.

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

Definition at line 550 of file xor_32.h.

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

Definition at line 551 of file xor_32.h.

#define XOR_SELECT_TEMPLATE (   FASTEST)    AVX_SELECT(cpu_has_xmm ? &xor_block_pIII_sse : FASTEST)

Definition at line 849 of file xor_32.h.

#define XOR_TRY_TEMPLATES
Value:
do { \
xor_speed(&xor_block_8regs); \
xor_speed(&xor_block_8regs_p); \
xor_speed(&xor_block_32regs); \
xor_speed(&xor_block_32regs_p); \
AVX_XOR_SPEED; \
if (cpu_has_xmm) \
xor_speed(&xor_block_pIII_sse); \
if (cpu_has_mmx) { \
xor_speed(&xor_block_pII_mmx); \
xor_speed(&xor_block_p5_mmx); \
} \
} while (0)

Definition at line 831 of file xor_32.h.