Changeset 118413 in webkit for trunk/Source/JavaScriptCore/assembler/ARMAssembler.h
- Timestamp:
- May 24, 2012, 2:14:07 PM (13 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/JavaScriptCore/assembler/ARMAssembler.h
r109307 r118413 865 865 } 866 866 867 #if OS(LINUX) && COMPILER(RVCT) 868 static __asm void cacheFlush(void* code, size_t); 869 #else 870 static void cacheFlush(void* code, size_t size) 871 { 872 #if OS(LINUX) && COMPILER(GCC) 873 uintptr_t currentPage = reinterpret_cast<uintptr_t>(code) & ~(pageSize() - 1); 874 uintptr_t lastPage = (reinterpret_cast<uintptr_t>(code) + size) & ~(pageSize() - 1); 875 do { 876 asm volatile( 877 "push {r7}\n" 878 "mov r0, %0\n" 879 "mov r1, %1\n" 880 "mov r7, #0xf0000\n" 881 "add r7, r7, #0x2\n" 882 "mov r2, #0x0\n" 883 "svc 0x0\n" 884 "pop {r7}\n" 885 : 886 : "r" (currentPage), "r" (currentPage + pageSize()) 887 : "r0", "r1", "r2"); 888 currentPage += pageSize(); 889 } while (lastPage >= currentPage); 890 #elif OS(WINCE) 891 CacheRangeFlush(code, size, CACHE_SYNC_ALL); 892 #elif OS(QNX) && ENABLE(ASSEMBLER_WX_EXCLUSIVE) 893 UNUSED_PARAM(code); 894 UNUSED_PARAM(size); 895 #elif OS(QNX) 896 msync(code, size, MS_INVALIDATE_ICACHE); 897 #else 898 #error "The cacheFlush support is missing on this platform." 899 #endif 900 } 901 #endif 902 867 903 private: 868 904 ARMWord RM(int reg)
Note:
See TracChangeset
for help on using the changeset viewer.