diff options
| author | Andi Kleen <ak@muc.de> | 2003-04-30 04:13:50 -0700 |
|---|---|---|
| committer | Linus Torvalds <torvalds@home.transmeta.com> | 2003-04-30 04:13:50 -0700 |
| commit | 700a4acbd9b6c0d22ab17d248cd22e70b8268bfb (patch) | |
| tree | 0b54e91506532e6e74e1df715db138d73be79388 /include | |
| parent | fb346e7bf88ec59e6da20fe6a7813e650b19d1d7 (diff) | |
[PATCH] Fix prefetch patching in 2.5-bk
Brown paperbag time. I forgot to take the modrm byte in account
with the prefetch patch replacement. With 3.2 it worked because
it used the right registers in my configuration.
But gcc 2.96 uses a different register in __dpath and the prefetch becomes
4 bytes with modrm and the original nop needs to be as long as that too.
Diffstat (limited to 'include')
| -rw-r--r-- | include/asm-i386/processor.h | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/include/asm-i386/processor.h b/include/asm-i386/processor.h index d69cc46d5866..6bbb21e6e205 100644 --- a/include/asm-i386/processor.h +++ b/include/asm-i386/processor.h @@ -564,7 +564,7 @@ static inline void rep_nop(void) #define ARCH_HAS_PREFETCH extern inline void prefetch(const void *x) { - alternative_input(ASM_NOP3, + alternative_input(ASM_NOP4, "prefetchnta (%1)", X86_FEATURE_XMM, "r" (x)); @@ -578,7 +578,7 @@ extern inline void prefetch(const void *x) spinlocks to avoid one state transition in the cache coherency protocol. */ extern inline void prefetchw(const void *x) { - alternative_input(ASM_NOP3, + alternative_input(ASM_NOP4, "prefetchw (%1)", X86_FEATURE_3DNOW, "r" (x)); |
