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.1 kB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105
  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 BULLDOZER
  67. #define PREFETCH prefetch
  68. #define PREFETCHW prefetchw
  69. #define PREFETCHSIZE (128 * 5)
  70. #define ALIGNED_ACCESS
  71. #endif
  72. #ifdef NANO
  73. #define PREFETCH prefetcht0
  74. #define PREFETCHW prefetcht0
  75. #define PREFETCHSIZE (128 * 4)
  76. #define ALIGNED_ACCESS
  77. #endif
  78. #define PREOFFSET 128
  79. #ifdef HAVE_SSE2
  80. #define PSHUFD1(A, B) pshufd A, B, B
  81. #define PSHUFD2(A, B, C) pshufd A, B, C
  82. #else
  83. #define PSHUFD1(A, B) shufps A, B, B
  84. #define PSHUFD2(A, B, C) movaps B, C; shufps A, C, C
  85. #endif
  86. #define MOVDDUP1(OFFSET, BASE, REGS) movddup OFFSET(BASE), REGS
  87. #define MOVAPS(OFFSET, BASE, REGS) movlps REGS, OFFSET(BASE); movhps REGS, OFFSET + SIZE(BASE)