Teach PPC how to replaceMachineCodeForFunction correctly. (Fixes
authorJeffrey Yasskin <jyasskin@google.com>
Thu, 14 Jan 2010 23:15:26 +0000 (23:15 +0000)
committerJeffrey Yasskin <jyasskin@google.com>
Thu, 14 Jan 2010 23:15:26 +0000 (23:15 +0000)
JITTest.FunctionIsRecompiledAndRelinked.)

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93475 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/PowerPC/PPCJITInfo.cpp

index be6e51e0ddb4e495d1d3b395950981b1a7cd6f51..daf4ec6d012acc2addc67b25224ff7cdac3c7f93 100644 (file)
@@ -308,6 +308,7 @@ extern "C" void *PPCCompilationCallbackC(unsigned *StubCallAddrPlus4,
   // Rewrite the stub with an unconditional branch to the target, for any users
   // who took the address of the stub.
   EmitBranchToAt((intptr_t)StubCallAddr, (intptr_t)Target, false, is64Bit);
+  sys::Memory::InvalidateInstructionCache(StubCallAddr, 7*4);
 
   // Put the address of the target function to call and the address to return to
   // after calling the target function in a place that is easy to get on the
@@ -441,4 +442,5 @@ void PPCJITInfo::relocate(void *Function, MachineRelocation *MR,
 
 void PPCJITInfo::replaceMachineCodeForFunction(void *Old, void *New) {
   EmitBranchToAt((intptr_t)Old, (intptr_t)New, false, is64Bit);
+  sys::Memory::InvalidateInstructionCache(Old, 7*4);
 }