mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-08-17 21:29:20 +00:00
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34875 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
93a2875456
commit
af80638869
@ -736,14 +736,14 @@ void MachOWriter::CalculateRelocations(MachOSection &MOS) {
|
|||||||
for (unsigned i = 0, e = MOS.Relocations.size(); i != e; ++i) {
|
for (unsigned i = 0, e = MOS.Relocations.size(); i != e; ++i) {
|
||||||
MachineRelocation &MR = MOS.Relocations[i];
|
MachineRelocation &MR = MOS.Relocations[i];
|
||||||
unsigned TargetSection = MR.getConstantVal();
|
unsigned TargetSection = MR.getConstantVal();
|
||||||
unsigned TargetAddr;
|
unsigned TargetAddr = 0;
|
||||||
unsigned TargetIndex;
|
unsigned TargetIndex = 0;
|
||||||
|
|
||||||
// This is a scattered relocation entry if it points to a global value with
|
// This is a scattered relocation entry if it points to a global value with
|
||||||
// a non-zero offset.
|
// a non-zero offset.
|
||||||
bool Scattered = false;
|
bool Scattered = false;
|
||||||
bool Extern = false;
|
bool Extern = false;
|
||||||
|
|
||||||
// Since we may not have seen the GlobalValue we were interested in yet at
|
// Since we may not have seen the GlobalValue we were interested in yet at
|
||||||
// the time we emitted the relocation for it, fix it up now so that it
|
// the time we emitted the relocation for it, fix it up now so that it
|
||||||
// points to the offset into the correct section.
|
// points to the offset into the correct section.
|
||||||
@ -762,11 +762,16 @@ void MachOWriter::CalculateRelocations(MachOSection &MOS) {
|
|||||||
} else {
|
} else {
|
||||||
Scattered = TargetSection != 0;
|
Scattered = TargetSection != 0;
|
||||||
TargetSection = MOSPtr->Index;
|
TargetSection = MOSPtr->Index;
|
||||||
|
}
|
||||||
|
MR.setResultPointer((void*)Offset);
|
||||||
|
}
|
||||||
|
|
||||||
|
// If the symbol is locally defined, pass in the address of the section and
|
||||||
|
// the section index to the code which will generate the target relocation.
|
||||||
|
if (!Extern) {
|
||||||
MachOSection &To = *SectionList[TargetSection - 1];
|
MachOSection &To = *SectionList[TargetSection - 1];
|
||||||
TargetAddr = To.addr;
|
TargetAddr = To.addr;
|
||||||
TargetIndex = To.Index;
|
TargetIndex = To.Index;
|
||||||
}
|
|
||||||
MR.setResultPointer((void*)Offset);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
OutputBuffer RelocOut(MOS.RelocBuffer, is64Bit, isLittleEndian);
|
OutputBuffer RelocOut(MOS.RelocBuffer, is64Bit, isLittleEndian);
|
||||||
|
Loading…
Reference in New Issue
Block a user