diff options
author | Nate Begeman <natebegeman@mac.com> | 2006-09-08 22:42:09 +0000 |
---|---|---|
committer | Nate Begeman <natebegeman@mac.com> | 2006-09-08 22:42:09 +0000 |
commit | 94be248dbb2d2a44e8f4d47f161b93704d33d279 (patch) | |
tree | abcb89fb4085d6e568c5ab258f2b04da3790b62b /lib/Target/PowerPC/PPCJITInfo.cpp | |
parent | 6f34b43292fe478b28ac4b1c6f7c0162cda71c5f (diff) | |
download | llvm-94be248dbb2d2a44e8f4d47f161b93704d33d279.tar.gz llvm-94be248dbb2d2a44e8f4d47f161b93704d33d279.tar.bz2 llvm-94be248dbb2d2a44e8f4d47f161b93704d33d279.tar.xz |
First pass at supporting relocations. Relocations are written correctly to
the file now, however the relocated address is currently wrong. Fixing
that will require some deep pondering.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30207 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target/PowerPC/PPCJITInfo.cpp')
-rw-r--r-- | lib/Target/PowerPC/PPCJITInfo.cpp | 5 |
1 files changed, 1 insertions, 4 deletions
diff --git a/lib/Target/PowerPC/PPCJITInfo.cpp b/lib/Target/PowerPC/PPCJITInfo.cpp index a3ca3c52f8..7c1d2a4f49 100644 --- a/lib/Target/PowerPC/PPCJITInfo.cpp +++ b/lib/Target/PowerPC/PPCJITInfo.cpp @@ -312,15 +312,12 @@ void PPCJITInfo::relocate(void *Function, MachineRelocation *MR, "Relocation out of range!"); *RelocPos |= (ResultPtr & ((1 << 14)-1)) << 2; break; - case PPC::reloc_absolute_ptr_high: // Pointer relocations. - case PPC::reloc_absolute_ptr_low: case PPC::reloc_absolute_high: // high bits of ref -> low 16 of instr case PPC::reloc_absolute_low: { // low bits of ref -> low 16 of instr ResultPtr += MR->getConstantVal(); // If this is a high-part access, get the high-part. - if (MR->getRelocationType() == PPC::reloc_absolute_high || - MR->getRelocationType() == PPC::reloc_absolute_ptr_high) { + if (MR->getRelocationType() == PPC::reloc_absolute_high) { // If the low part will have a carry (really a borrow) from the low // 16-bits into the high 16, add a bit to borrow from. if (((int)ResultPtr << 16) < 0) |