diff options
author | Rudolf Marek <r.marek@assembler.cz> | 2010-05-16 22:32:58 +0000 |
---|---|---|
committer | Rudolf Marek <r.marek@assembler.cz> | 2010-05-16 22:32:58 +0000 |
commit | 417e66baa527c9bd843992e7ba163ebabb08b197 (patch) | |
tree | fc6bd6d2cdc5994117c8841cced1ca1ec3dd901d /src/include/cpu | |
parent | fdddce3b926b5ad1d27f807feaeb318471a543ab (diff) | |
download | coreboot-417e66baa527c9bd843992e7ba163ebabb08b197.tar.xz |
Sorry for this for second time. Now compile tested for both cases ;)
Signed-off-by: Rudolf Marek <r.marek@assembler.cz>
Acked-by: Rudolf Marek <r.marek@assembler.cz>
git-svn-id: svn://svn.coreboot.org/coreboot/trunk@5564 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1
Diffstat (limited to 'src/include/cpu')
-rw-r--r-- | src/include/cpu/x86/cache.h | 18 |
1 files changed, 10 insertions, 8 deletions
diff --git a/src/include/cpu/x86/cache.h b/src/include/cpu/x86/cache.h index 858637cf2b..ae61b55b3d 100644 --- a/src/include/cpu/x86/cache.h +++ b/src/include/cpu/x86/cache.h @@ -23,8 +23,6 @@ /* the memory clobber prevents the GCC from reordering the read/write order of CR0 */ - */ - #if defined(__GNUC__) /* @@ -46,6 +44,11 @@ static inline void write_cr0(unsigned long cr0) asm volatile ("movl %0, %%cr0" : : "r" (cr0) : "memory"); } +static inline void wbinvd(void) +{ + asm volatile ("wbinvd" ::: "memory"); +} + #else static inline unsigned long read_cr0(void) @@ -60,19 +63,18 @@ static inline void write_cr0(unsigned long cr0) asm volatile ("movl %0, %%cr0" : : "r" (cr0)); } -#endif +static inline void wbinvd(void) +{ + asm volatile ("wbinvd"); +} +#endif static inline void invd(void) { asm volatile("invd" ::: "memory"); } -static inline void wbinvd(void) -{ - asm volatile ("wbinvd" ::: "memory"); -} - static inline void enable_cache(void) { unsigned long cr0; |