diff options
Diffstat (limited to 'lib/Target/X86')
-rw-r--r-- | lib/Target/X86/X86CodeEmitter.cpp | 3 | ||||
-rw-r--r-- | lib/Target/X86/X86JITInfo.cpp | 10 | ||||
-rw-r--r-- | lib/Target/X86/X86JITInfo.h | 2 |
3 files changed, 2 insertions, 13 deletions
diff --git a/lib/Target/X86/X86CodeEmitter.cpp b/lib/Target/X86/X86CodeEmitter.cpp index 31b4bdf185..dee58cf434 100644 --- a/lib/Target/X86/X86CodeEmitter.cpp +++ b/lib/Target/X86/X86CodeEmitter.cpp @@ -111,7 +111,8 @@ void Emitter::emitPCRelativeValue(unsigned Address) { void Emitter::emitPCRelativeBlockAddress(MachineBasicBlock *MBB) { // Remember where this reference was and where it is to so we can // deal with it later. - TM.getJITInfo()->addBBRef(MBB, MCE.getCurrentPCValue()); + MCE.addRelocation(MachineRelocation::getBB(MCE.getCurrentPCOffset(), + X86::reloc_pcrel_word, MBB)); MCE.emitWordLE(0); } diff --git a/lib/Target/X86/X86JITInfo.cpp b/lib/Target/X86/X86JITInfo.cpp index 9fd8029962..9bb2a72523 100644 --- a/lib/Target/X86/X86JITInfo.cpp +++ b/lib/Target/X86/X86JITInfo.cpp @@ -203,13 +203,3 @@ 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(); -} diff --git a/lib/Target/X86/X86JITInfo.h b/lib/Target/X86/X86JITInfo.h index f9e437e41b..02e54af11a 100644 --- a/lib/Target/X86/X86JITInfo.h +++ b/lib/Target/X86/X86JITInfo.h @@ -51,8 +51,6 @@ namespace llvm { /// referenced global symbols. virtual void relocate(void *Function, MachineRelocation *MR, unsigned NumRelocs, unsigned char* GOTBase); - - virtual void resolveBBRefs(MachineCodeEmitter &MCE); }; } |