mirror of
https://github.com/RPCS3/llvm.git
synced 2025-02-13 14:46:15 +00:00
Small cleanups and fixes in preparation for fixing _GLOBAL_OFFSET_TABLE_.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116848 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
2312842de0
commit
bd70118f16
@ -703,9 +703,16 @@ void ELFObjectWriterImpl::RecordRelocation(const MCAssembler &Asm,
|
||||
// instead?
|
||||
case X86::reloc_signed_4byte:
|
||||
case X86::reloc_pcrel_4byte:
|
||||
case FK_Data_4:
|
||||
switch (Modifier) {
|
||||
default:
|
||||
llvm_unreachable("Unimplemented");
|
||||
case MCSymbolRefExpr::VK_None:
|
||||
if (Symbol->getName() == "_GLOBAL_OFFSET_TABLE_")
|
||||
Type = ELF::R_386_GOTPC;
|
||||
else
|
||||
Type = ELF::R_386_32;
|
||||
break;
|
||||
case MCSymbolRefExpr::VK_GOT:
|
||||
Type = ELF::R_386_GOT32;
|
||||
break;
|
||||
@ -714,12 +721,6 @@ void ELFObjectWriterImpl::RecordRelocation(const MCAssembler &Asm,
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case FK_Data_4:
|
||||
if (Symbol->getName() == "_GLOBAL_OFFSET_TABLE_")
|
||||
Type = ELF::R_386_GOTPC;
|
||||
else
|
||||
Type = ELF::R_386_32;
|
||||
break;
|
||||
case FK_Data_2: Type = ELF::R_386_16; break;
|
||||
case X86::reloc_pcrel_1byte:
|
||||
case FK_Data_1: Type = ELF::R_386_8; break;
|
||||
@ -761,11 +762,14 @@ ELFObjectWriterImpl::getSymbolIndexInSymbolTable(const MCAssembler &Asm,
|
||||
|
||||
static bool isInSymtab(const MCAssembler &Asm, const MCSymbolData &Data,
|
||||
bool Used) {
|
||||
if (Used)
|
||||
return true;
|
||||
|
||||
const MCSymbol &Symbol = Data.getSymbol();
|
||||
if (!Asm.isSymbolLinkerVisible(Symbol) && !Symbol.isUndefined())
|
||||
return false;
|
||||
|
||||
if (!Used && Symbol.isTemporary())
|
||||
if (Symbol.isTemporary())
|
||||
return false;
|
||||
|
||||
return true;
|
||||
|
Loading…
x
Reference in New Issue
Block a user