fix compilation errors in my previous patch

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52733 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Chris Lattner 2008-06-25 17:17:53 +00:00
parent 93bb4aa0ce
commit 95f39009aa

View File

@ -27,6 +27,8 @@ using namespace sys;
#include "Win32/Memory.inc"
#endif
extern "C" void sys_icache_invalidate(const void *Addr, size_t len);
/// InvalidateInstructionCache - Before the JIT can run a block of code
/// that has been emitted it must invalidate the instruction cache on some
/// platforms.
@ -37,14 +39,13 @@ void llvm::sys::Memory::InvalidateInstructionCache(const void *Addr,
#if (defined(__POWERPC__) || defined (__ppc__) || \
defined(_POWER) || defined(_ARCH_PPC))
#if defined(__APPLE__)
extern "C" void sys_icache_invalidate(const void *Addr, size_t len);
sys_icache_invalidate(Addr, len);
sys_icache_invalidate(Addr, Len);
#elif defined(__GNUC__)
const size_t LineSize = 32;
const intptr_t Mask = ~(LineSize - 1);
const intptr_t StartLine = ((intptr_t) Addr) & Mask;
const intptr_t EndLine = ((intptr_t) Addr + len + LineSize - 1) & Mask;
const intptr_t EndLine = ((intptr_t) Addr + Len + LineSize - 1) & Mask;
for (intptr_t Line = StartLine; Line < EndLine; Line += LineSize)
asm volatile("dcbf 0, %0" : : "r"(Line));
@ -56,4 +57,4 @@ void llvm::sys::Memory::InvalidateInstructionCache(const void *Addr,
#endif
#endif // end PPC
}
}