From a89b2ebb8e192c5e8cea21079bda2ee2c0c7dddd Mon Sep 17 00:00:00 2001 From: Simon Hausmann Date: Fri, 25 May 2012 15:09:11 +0200 Subject: Imported WebKit commit eb5c1b8fe4d4b1b90b5137433fc58a91da0e6878 (http://svn.webkit.org/repository/webkit/trunk@118516) --- Source/JavaScriptCore/assembler/SH4Assembler.h | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) (limited to 'Source/JavaScriptCore/assembler/SH4Assembler.h') diff --git a/Source/JavaScriptCore/assembler/SH4Assembler.h b/Source/JavaScriptCore/assembler/SH4Assembler.h index 11e954cad..59d042244 100644 --- a/Source/JavaScriptCore/assembler/SH4Assembler.h +++ b/Source/JavaScriptCore/assembler/SH4Assembler.h @@ -1401,7 +1401,7 @@ public: ASSERT(value >= 0); ASSERT(value <= 60); *reinterpret_cast(where) = ((*reinterpret_cast(where) & 0xfff0) | (value >> 2)); - ExecutableAllocator::cacheFlush(reinterpret_cast(where), sizeof(uint16_t)); + cacheFlush(reinterpret_cast(where), sizeof(uint16_t)); } static void relinkCall(void* from, void* to) @@ -1546,6 +1546,17 @@ public: return m_buffer.executableCopy(globalData, ownerUID, effort); } + static void cacheFlush(void* code, size_t size) + { +#if !OS(LINUX) +#error "The cacheFlush support is missing on this platform." +#elif defined CACHEFLUSH_D_L2 + syscall(__NR_cacheflush, reinterpret_cast(code), size, CACHEFLUSH_D_WB | CACHEFLUSH_I | CACHEFLUSH_D_L2); +#else + syscall(__NR_cacheflush, reinterpret_cast(code), size, CACHEFLUSH_D_WB | CACHEFLUSH_I); +#endif + } + void prefix(uint16_t pre) { m_buffer.putByte(pre); -- cgit v1.2.1