diff options
Diffstat (limited to 'lib/Target/X86/X86JITInfo.cpp')
-rw-r--r-- | lib/Target/X86/X86JITInfo.cpp | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/lib/Target/X86/X86JITInfo.cpp b/lib/Target/X86/X86JITInfo.cpp index 9bb2a72..9fd8029 100644 --- a/lib/Target/X86/X86JITInfo.cpp +++ b/lib/Target/X86/X86JITInfo.cpp @@ -203,3 +203,13 @@ void X86JITInfo::relocate(void *Function, MachineRelocation *MR, } } } + +void X86JITInfo::resolveBBRefs(MachineCodeEmitter &MCE) { + // Resolve all forward branches now. + for (unsigned i = 0, e = BBRefs.size(); i != e; ++i) { + unsigned Location = MCE.getMachineBasicBlockAddress(BBRefs[i].first); + intptr_t Ref = BBRefs[i].second; + *((unsigned*)Ref) = Location-Ref-4; + } + BBRefs.clear(); +} |