You can not select more than 25 topics Topics must start with a chinese character,a letter or number, can include dashes ('-') and can be up to 35 characters long.

l1param.h 2.0 kB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  1. #if defined(CORE2) || defined(PENRYN)
  2. #define ALIGNED_ACCESS
  3. #endif
  4. #ifdef NEHALEM
  5. #define PREFETCH prefetcht0
  6. #define PREFETCHW prefetcht0
  7. #define PREFETCHSIZE (128 * 12)
  8. #define ALIGNED_ACCESS
  9. #endif
  10. #ifdef SANDYBRIDGE
  11. #define PREFETCH prefetcht0
  12. #define PREFETCHW prefetcht0
  13. #define PREFETCHSIZE (128 * 12)
  14. #define ALIGNED_ACCESS
  15. #endif
  16. #ifdef ATHLON
  17. #define PREFETCH prefetch
  18. #define PREFETCHW prefetchw
  19. #define PREFETCHSIZE (128 * 10)
  20. #define ALIGNED_ACCESS
  21. #define movsd movlps
  22. #endif
  23. #ifdef PENTIUM3
  24. #define PREFETCH prefetcht0
  25. #define PREFETCHSIZE (128 * 10)
  26. #define ALIGNED_ACCESS
  27. #define movsd movlps
  28. #endif
  29. #ifdef PENTIUM4
  30. #define PREFETCH prefetcht0
  31. #define PREFETCHSIZE (128 * 10)
  32. #define FETCH128
  33. #define ALIGNED_ACCESS
  34. #define xorps pxor
  35. #define xorpd pxor
  36. #endif
  37. #ifdef ATOM
  38. #define ALIGNED_ACCESS
  39. #define PREFETCH prefetcht0
  40. #define PREFETCHSIZE ( 64 * 12 + 32)
  41. #endif
  42. #ifdef OPTERON
  43. #define PREFETCH prefetch
  44. #define PREFETCHW prefetchw
  45. #define PREFETCHSIZE (128 * 3)
  46. #define movsd movlps
  47. #endif
  48. #ifdef BARCELONA
  49. #define PREFETCH prefetch
  50. #define PREFETCHW prefetchw
  51. #define PREFETCHSIZE (128 * 5)
  52. #define ALIGNED_ACCESS
  53. #endif
  54. #ifdef SHANGHAI
  55. #define PREFETCH prefetch
  56. #define PREFETCHW prefetchw
  57. #define PREFETCHSIZE (128 * 5)
  58. #define ALIGNED_ACCESS
  59. #endif
  60. #ifdef BOBCAT
  61. #define PREFETCH prefetch
  62. #define PREFETCHW prefetchw
  63. #define PREFETCHSIZE (128 * 5)
  64. #define ALIGNED_ACCESS
  65. #endif
  66. #ifdef NANO
  67. #define PREFETCH prefetcht0
  68. #define PREFETCHW prefetcht0
  69. #define PREFETCHSIZE (128 * 4)
  70. #define ALIGNED_ACCESS
  71. #endif
  72. #define PREOFFSET 128
  73. #ifdef HAVE_SSE2
  74. #define PSHUFD1(A, B) pshufd A, B, B
  75. #define PSHUFD2(A, B, C) pshufd A, B, C
  76. #else
  77. #define PSHUFD1(A, B) shufps A, B, B
  78. #define PSHUFD2(A, B, C) movaps B, C; shufps A, C, C
  79. #endif
  80. #define MOVDDUP1(OFFSET, BASE, REGS) movddup OFFSET(BASE), REGS
  81. #define MOVAPS(OFFSET, BASE, REGS) movlps REGS, OFFSET(BASE); movhps REGS, OFFSET + SIZE(BASE)