summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/ARM/ARMJITInfo.cpp
diff options
context:
space:
mode:
authorEvan Cheng <evan.cheng@apple.com>2009-09-10 01:23:53 +0000
committerEvan Cheng <evan.cheng@apple.com>2009-09-10 01:23:53 +0000
commitf6b2404a84564ccba3f33f297ff5138626cdacbe (patch)
tree583721582e0b96b27f592329c01ad2a41593828a /llvm/lib/Target/ARM/ARMJITInfo.cpp
parent4eadb60652dd14ae3c2e72f96849b5acdd210e6b (diff)
downloadbcm5719-llvm-f6b2404a84564ccba3f33f297ff5138626cdacbe.tar.gz
bcm5719-llvm-f6b2404a84564ccba3f33f297ff5138626cdacbe.zip
Proper support of non-lazy indirect symbols.
llvm-svn: 81422
Diffstat (limited to 'llvm/lib/Target/ARM/ARMJITInfo.cpp')
-rw-r--r--llvm/lib/Target/ARM/ARMJITInfo.cpp3
1 files changed, 3 insertions, 0 deletions
diff --git a/llvm/lib/Target/ARM/ARMJITInfo.cpp b/llvm/lib/Target/ARM/ARMJITInfo.cpp
index 754fafe0287..24990e67a38 100644
--- a/llvm/lib/Target/ARM/ARMJITInfo.cpp
+++ b/llvm/lib/Target/ARM/ARMJITInfo.cpp
@@ -145,6 +145,9 @@ void *ARMJITInfo::emitGlobalValueIndirectSym(const GlobalValue *GV, void *Ptr,
llvm_unreachable("ERROR: Unable to mark indirect symbol writable");
}
JCE.emitWordLE((intptr_t)Ptr);
+ if (!sys::Memory::setRangeExecutable((void*)Addr, 4)) {
+ llvm_unreachable("ERROR: Unable to mark indirect symbol executable");
+ }
void *PtrAddr = JCE.finishGVStub(GV);
addIndirectSymAddr(Ptr, (intptr_t)PtrAddr);
return PtrAddr;
OpenPOWER on IntegriCloud