mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-12-20 10:38:46 +00:00
Invalidate instruction cache when setting memory to be executable.
lli's remote MCJIT code calls setExecutable just prior to running code. In line with Darwin behaviour this seems to be the place to invalidate any caches needed so that relocations can take effect properly. llvm-svn: 182213
This commit is contained in:
parent
d5833c69b3
commit
c462ec57b7
@ -268,6 +268,9 @@ bool Memory::setExecutable (MemoryBlock &M, std::string *ErrMsg) {
|
||||
kern_return_t kr = vm_protect(mach_task_self(), (vm_address_t)M.Address,
|
||||
(vm_size_t)M.Size, 0, VM_PROT_READ | VM_PROT_EXECUTE | VM_PROT_COPY);
|
||||
return KERN_SUCCESS == kr;
|
||||
#elif defined(__arm__) || defined(__aarch64__)
|
||||
Memory::InvalidateInstructionCache(M.Address, M.Size);
|
||||
return true;
|
||||
#else
|
||||
return true;
|
||||
#endif
|
||||
|
@ -1,11 +0,0 @@
|
||||
config.suffixes = ['.ll', '.c', '.cpp']
|
||||
|
||||
def getRoot(config):
|
||||
if not config.parent:
|
||||
return config
|
||||
return getRoot(config.parent)
|
||||
|
||||
root = getRoot(config)
|
||||
|
||||
if 'arm' in root.target_triple:
|
||||
config.unsupported = True
|
@ -1,5 +1,5 @@
|
||||
; RUN: %lli_mcjit -remote-mcjit -O0 -disable-lazy-compilation=false %s
|
||||
; XFAIL: arm, mips
|
||||
; XFAIL: mips
|
||||
|
||||
; The intention of this test is to verify that symbols mapped to COMMON in ELF
|
||||
; work as expected.
|
||||
|
@ -1,5 +1,5 @@
|
||||
; RUN: %lli_mcjit -remote-mcjit -O0 %s
|
||||
; XFAIL: armv7, mips
|
||||
; XFAIL: mips
|
||||
|
||||
; Check that a variable is always aligned as specified.
|
||||
|
||||
|
@ -1,5 +1,5 @@
|
||||
; RUN: %lli_mcjit -remote-mcjit %s > /dev/null
|
||||
; XFAIL: arm, mips
|
||||
; XFAIL: mips
|
||||
|
||||
@count = global i32 1, align 4
|
||||
|
||||
|
@ -1,5 +1,5 @@
|
||||
; RUN: %lli_mcjit -remote-mcjit -O0 %s
|
||||
; XFAIL: arm, mips
|
||||
; XFAIL: mips
|
||||
|
||||
@.str = private unnamed_addr constant [6 x i8] c"data1\00", align 1
|
||||
@ptr = global i8* getelementptr inbounds ([6 x i8]* @.str, i32 0, i32 0), align 4
|
||||
|
Loading…
Reference in New Issue
Block a user