diff options
Diffstat (limited to 'arch/x86/include/asm/processor.h')
-rw-r--r-- | arch/x86/include/asm/processor.h | 16 |
1 files changed, 7 insertions, 9 deletions
diff --git a/arch/x86/include/asm/processor.h b/arch/x86/include/asm/processor.h index ec1c93588cef..7be2c9a6caba 100644 --- a/arch/x86/include/asm/processor.h +++ b/arch/x86/include/asm/processor.h | |||
@@ -761,10 +761,10 @@ extern char ignore_fpu_irq; | |||
761 | #define ARCH_HAS_SPINLOCK_PREFETCH | 761 | #define ARCH_HAS_SPINLOCK_PREFETCH |
762 | 762 | ||
763 | #ifdef CONFIG_X86_32 | 763 | #ifdef CONFIG_X86_32 |
764 | # define BASE_PREFETCH ASM_NOP4 | 764 | # define BASE_PREFETCH "" |
765 | # define ARCH_HAS_PREFETCH | 765 | # define ARCH_HAS_PREFETCH |
766 | #else | 766 | #else |
767 | # define BASE_PREFETCH "prefetcht0 (%1)" | 767 | # define BASE_PREFETCH "prefetcht0 %P1" |
768 | #endif | 768 | #endif |
769 | 769 | ||
770 | /* | 770 | /* |
@@ -775,10 +775,9 @@ extern char ignore_fpu_irq; | |||
775 | */ | 775 | */ |
776 | static inline void prefetch(const void *x) | 776 | static inline void prefetch(const void *x) |
777 | { | 777 | { |
778 | alternative_input(BASE_PREFETCH, | 778 | alternative_input(BASE_PREFETCH, "prefetchnta %P1", |
779 | "prefetchnta (%1)", | ||
780 | X86_FEATURE_XMM, | 779 | X86_FEATURE_XMM, |
781 | "r" (x)); | 780 | "m" (*(const char *)x)); |
782 | } | 781 | } |
783 | 782 | ||
784 | /* | 783 | /* |
@@ -788,10 +787,9 @@ static inline void prefetch(const void *x) | |||
788 | */ | 787 | */ |
789 | static inline void prefetchw(const void *x) | 788 | static inline void prefetchw(const void *x) |
790 | { | 789 | { |
791 | alternative_input(BASE_PREFETCH, | 790 | alternative_input(BASE_PREFETCH, "prefetchw %P1", |
792 | "prefetchw (%1)", | 791 | X86_FEATURE_3DNOWPREFETCH, |
793 | X86_FEATURE_3DNOW, | 792 | "m" (*(const char *)x)); |
794 | "r" (x)); | ||
795 | } | 793 | } |
796 | 794 | ||
797 | static inline void spin_lock_prefetch(const void *x) | 795 | static inline void spin_lock_prefetch(const void *x) |