mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-04-19 10:39:34 +00:00
Use getValue instead of getAddress in a few MachO only cases.
In MachO the value of the symbol is always the address, so we can use the simpler function. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@241364 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
a89ad42b36
commit
e235dc4936
@ -392,9 +392,7 @@ uint32_t MachOObjectFile::getSymbolAlignment(DataRefImpl DRI) const {
|
||||
}
|
||||
|
||||
uint64_t MachOObjectFile::getCommonSymbolSizeImpl(DataRefImpl DRI) const {
|
||||
uint64_t Value;
|
||||
getSymbolAddress(DRI, Value);
|
||||
return Value;
|
||||
return getSymbolValue(DRI);
|
||||
}
|
||||
|
||||
SymbolRef::Type MachOObjectFile::getSymbolType(DataRefImpl Symb) const {
|
||||
@ -434,8 +432,7 @@ uint32_t MachOObjectFile::getSymbolFlags(DataRefImpl DRI) const {
|
||||
if (MachOType & MachO::N_EXT) {
|
||||
Result |= SymbolRef::SF_Global;
|
||||
if ((MachOType & MachO::N_TYPE) == MachO::N_UNDF) {
|
||||
uint64_t Value;
|
||||
getSymbolAddress(DRI, Value);
|
||||
uint64_t Value = getSymbolValue(DRI);
|
||||
if (Value && Value != UnknownAddress)
|
||||
Result |= SymbolRef::SF_Common;
|
||||
}
|
||||
|
@ -178,18 +178,8 @@ static const Target *GetTarget(const MachOObjectFile *MachOObj,
|
||||
|
||||
struct SymbolSorter {
|
||||
bool operator()(const SymbolRef &A, const SymbolRef &B) {
|
||||
SymbolRef::Type AType = A.getType();
|
||||
SymbolRef::Type BType = B.getType();
|
||||
|
||||
uint64_t AAddr, BAddr;
|
||||
if (AType != SymbolRef::ST_Function)
|
||||
AAddr = 0;
|
||||
else
|
||||
A.getAddress(AAddr);
|
||||
if (BType != SymbolRef::ST_Function)
|
||||
BAddr = 0;
|
||||
else
|
||||
B.getAddress(BAddr);
|
||||
uint64_t AAddr = (A.getType() != SymbolRef::ST_Function) ? 0 : A.getValue();
|
||||
uint64_t BAddr = (B.getType() != SymbolRef::ST_Function) ? 0 : B.getValue();
|
||||
return AAddr < BAddr;
|
||||
}
|
||||
};
|
||||
@ -592,8 +582,7 @@ static void CreateSymbolAddressMap(MachOObjectFile *O,
|
||||
SymbolRef::Type ST = Symbol.getType();
|
||||
if (ST == SymbolRef::ST_Function || ST == SymbolRef::ST_Data ||
|
||||
ST == SymbolRef::ST_Other) {
|
||||
uint64_t Address;
|
||||
Symbol.getAddress(Address);
|
||||
uint64_t Address = Symbol.getValue();
|
||||
ErrorOr<StringRef> SymNameOrErr = Symbol.getName();
|
||||
if (std::error_code EC = SymNameOrErr.getError())
|
||||
report_fatal_error(EC.message());
|
||||
@ -2456,7 +2445,7 @@ static const char *get_symbol_64(uint32_t sect_offset, SectionRef S,
|
||||
// and return its name.
|
||||
const char *SymbolName = nullptr;
|
||||
if (reloc_found && isExtern) {
|
||||
Symbol.getAddress(n_value);
|
||||
n_value = Symbol.getValue();
|
||||
if (n_value == UnknownAddress)
|
||||
n_value = 0;
|
||||
ErrorOr<StringRef> NameOrError = Symbol.getName();
|
||||
@ -5640,7 +5629,7 @@ static const char *GuessLiteralPointer(uint64_t ReferenceValue,
|
||||
if (info->O->getAnyRelocationPCRel(RE)) {
|
||||
unsigned Type = info->O->getAnyRelocationType(RE);
|
||||
if (Type == MachO::X86_64_RELOC_SIGNED) {
|
||||
Symbol.getAddress(ReferenceValue);
|
||||
ReferenceValue = Symbol.getValue();
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -6131,8 +6120,7 @@ static void DisassembleMachO(StringRef Filename, MachOObjectFile *MachOOF,
|
||||
SymbolRef::Type ST = Symbol.getType();
|
||||
if (ST == SymbolRef::ST_Function || ST == SymbolRef::ST_Data ||
|
||||
ST == SymbolRef::ST_Other) {
|
||||
uint64_t Address;
|
||||
Symbol.getAddress(Address);
|
||||
uint64_t Address = Symbol.getValue();
|
||||
ErrorOr<StringRef> SymNameOrErr = Symbol.getName();
|
||||
if (std::error_code EC = SymNameOrErr.getError())
|
||||
report_fatal_error(EC.message());
|
||||
@ -6194,9 +6182,8 @@ static void DisassembleMachO(StringRef Filename, MachOObjectFile *MachOOF,
|
||||
continue;
|
||||
|
||||
// Start at the address of the symbol relative to the section's address.
|
||||
uint64_t Start = 0;
|
||||
uint64_t Start = Symbols[SymIdx].getValue();
|
||||
uint64_t SectionAddress = Sections[SectIdx].getAddress();
|
||||
Symbols[SymIdx].getAddress(Start);
|
||||
Start -= SectionAddress;
|
||||
|
||||
// Stop disassembling either at the beginning of the next symbol or at
|
||||
@ -6209,7 +6196,7 @@ static void DisassembleMachO(StringRef Filename, MachOObjectFile *MachOOF,
|
||||
if (NextSymType == SymbolRef::ST_Function) {
|
||||
containsNextSym =
|
||||
Sections[SectIdx].containsSymbol(Symbols[NextSymIdx]);
|
||||
Symbols[NextSymIdx].getAddress(NextSym);
|
||||
NextSym = Symbols[NextSymIdx].getValue();
|
||||
NextSym -= SectionAddress;
|
||||
break;
|
||||
}
|
||||
@ -6815,8 +6802,7 @@ void llvm::printMachOUnwindInfo(const MachOObjectFile *Obj) {
|
||||
if (Section == Obj->section_end())
|
||||
continue;
|
||||
|
||||
uint64_t Addr;
|
||||
SymRef.getAddress(Addr);
|
||||
uint64_t Addr = SymRef.getValue();
|
||||
Symbols.insert(std::make_pair(Addr, SymRef));
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user