mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-02-20 14:29:27 +00:00
Use the proper relocation section + cleanup, from Roman Divacky.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111819 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
250eb005d9
commit
30dc1ee78a
@ -511,7 +511,10 @@ void ELFObjectWriterImpl::RecordRelocation(const MCAssembler &Asm,
|
||||
const MCSymbolData *Base = Asm.getAtom(Layout, &SD);
|
||||
|
||||
if (Base) {
|
||||
Index = getSymbolIndexInSymbolTable(const_cast<MCAssembler &>(Asm), &Base->getSymbol());
|
||||
if (MCFragment *F = SD.getFragment())
|
||||
Index = F->getParent()->getOrdinal() + getNumOfLocalSymbols(Asm) + 1;
|
||||
else
|
||||
Index = getSymbolIndexInSymbolTable(const_cast<MCAssembler &>(Asm), Symbol);
|
||||
if (Base != &SD)
|
||||
Value += Layout.getSymbolAddress(&SD) - Layout.getSymbolAddress(Base);
|
||||
Addend = Value;
|
||||
@ -521,8 +524,7 @@ void ELFObjectWriterImpl::RecordRelocation(const MCAssembler &Asm,
|
||||
if (F) {
|
||||
// Index of the section in .symtab against this symbol
|
||||
// is being relocated + 2 (empty section + abs. symbols).
|
||||
Index = SD.getFragment()->getParent()->getOrdinal() +
|
||||
getNumOfLocalSymbols(Asm) + 1;
|
||||
Index = F->getParent()->getOrdinal() + getNumOfLocalSymbols(Asm) + 1;
|
||||
|
||||
MCSectionData *FSD = F->getParent();
|
||||
// Offset of the symbol in the section
|
||||
|
Loading…
x
Reference in New Issue
Block a user