forked from OSchip/llvm-project
Revert "Fix misnamed #include. Remove _NC suffix from ELF relocations TLSDESC_{LD64,ADD}_LO12"
This reverts commit r301964. It broke the build. llvm-svn: 301969
This commit is contained in:
parent
2b0fa129d6
commit
a0f30da62e
|
@ -28,7 +28,7 @@
|
||||||
#include "llvm/DebugInfo/PDB/Native/InfoStreamBuilder.h"
|
#include "llvm/DebugInfo/PDB/Native/InfoStreamBuilder.h"
|
||||||
#include "llvm/DebugInfo/PDB/Native/PDBFile.h"
|
#include "llvm/DebugInfo/PDB/Native/PDBFile.h"
|
||||||
#include "llvm/DebugInfo/PDB/Native/PDBFileBuilder.h"
|
#include "llvm/DebugInfo/PDB/Native/PDBFileBuilder.h"
|
||||||
#include "llvm/DebugInfo/PDB/Native/StringTableBuilder.h"
|
#include "llvm/DebugInfo/PDB/Native/PDBStringTableBuilder.h"
|
||||||
#include "llvm/DebugInfo/PDB/Native/PDBTypeServerHandler.h"
|
#include "llvm/DebugInfo/PDB/Native/PDBTypeServerHandler.h"
|
||||||
#include "llvm/DebugInfo/PDB/Native/TpiStream.h"
|
#include "llvm/DebugInfo/PDB/Native/TpiStream.h"
|
||||||
#include "llvm/DebugInfo/PDB/Native/TpiStreamBuilder.h"
|
#include "llvm/DebugInfo/PDB/Native/TpiStreamBuilder.h"
|
||||||
|
|
|
@ -1324,8 +1324,8 @@ RelExpr AArch64TargetInfo::getRelExpr(uint32_t Type, const SymbolBody &S,
|
||||||
return R_ABS;
|
return R_ABS;
|
||||||
case R_AARCH64_TLSDESC_ADR_PAGE21:
|
case R_AARCH64_TLSDESC_ADR_PAGE21:
|
||||||
return R_TLSDESC_PAGE;
|
return R_TLSDESC_PAGE;
|
||||||
case R_AARCH64_TLSDESC_LD64_LO12:
|
case R_AARCH64_TLSDESC_LD64_LO12_NC:
|
||||||
case R_AARCH64_TLSDESC_ADD_LO12:
|
case R_AARCH64_TLSDESC_ADD_LO12_NC:
|
||||||
return R_TLSDESC;
|
return R_TLSDESC;
|
||||||
case R_AARCH64_TLSDESC_CALL:
|
case R_AARCH64_TLSDESC_CALL:
|
||||||
return R_TLSDESC_CALL;
|
return R_TLSDESC_CALL;
|
||||||
|
@ -1376,8 +1376,8 @@ bool AArch64TargetInfo::usesOnlyLowPageBits(uint32_t Type) const {
|
||||||
case R_AARCH64_LDST32_ABS_LO12_NC:
|
case R_AARCH64_LDST32_ABS_LO12_NC:
|
||||||
case R_AARCH64_LDST64_ABS_LO12_NC:
|
case R_AARCH64_LDST64_ABS_LO12_NC:
|
||||||
case R_AARCH64_LDST8_ABS_LO12_NC:
|
case R_AARCH64_LDST8_ABS_LO12_NC:
|
||||||
case R_AARCH64_TLSDESC_ADD_LO12:
|
case R_AARCH64_TLSDESC_ADD_LO12_NC:
|
||||||
case R_AARCH64_TLSDESC_LD64_LO12:
|
case R_AARCH64_TLSDESC_LD64_LO12_NC:
|
||||||
case R_AARCH64_TLSIE_LD64_GOTTPREL_LO12_NC:
|
case R_AARCH64_TLSIE_LD64_GOTTPREL_LO12_NC:
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@ -1503,7 +1503,7 @@ void AArch64TargetInfo::relocateOne(uint8_t *Loc, uint32_t Type,
|
||||||
break;
|
break;
|
||||||
case R_AARCH64_LD64_GOT_LO12_NC:
|
case R_AARCH64_LD64_GOT_LO12_NC:
|
||||||
case R_AARCH64_TLSIE_LD64_GOTTPREL_LO12_NC:
|
case R_AARCH64_TLSIE_LD64_GOTTPREL_LO12_NC:
|
||||||
case R_AARCH64_TLSDESC_LD64_LO12:
|
case R_AARCH64_TLSDESC_LD64_LO12_NC:
|
||||||
checkAlignment<8>(Loc, Val, Type);
|
checkAlignment<8>(Loc, Val, Type);
|
||||||
or32le(Loc, (Val & 0xFF8) << 7);
|
or32le(Loc, (Val & 0xFF8) << 7);
|
||||||
break;
|
break;
|
||||||
|
@ -1543,7 +1543,7 @@ void AArch64TargetInfo::relocateOne(uint8_t *Loc, uint32_t Type,
|
||||||
or32AArch64Imm(Loc, Val >> 12);
|
or32AArch64Imm(Loc, Val >> 12);
|
||||||
break;
|
break;
|
||||||
case R_AARCH64_TLSLE_ADD_TPREL_LO12_NC:
|
case R_AARCH64_TLSLE_ADD_TPREL_LO12_NC:
|
||||||
case R_AARCH64_TLSDESC_ADD_LO12:
|
case R_AARCH64_TLSDESC_ADD_LO12_NC:
|
||||||
or32AArch64Imm(Loc, Val);
|
or32AArch64Imm(Loc, Val);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
|
@ -1555,8 +1555,8 @@ void AArch64TargetInfo::relaxTlsGdToLe(uint8_t *Loc, uint32_t Type,
|
||||||
uint64_t Val) const {
|
uint64_t Val) const {
|
||||||
// TLSDESC Global-Dynamic relocation are in the form:
|
// TLSDESC Global-Dynamic relocation are in the form:
|
||||||
// adrp x0, :tlsdesc:v [R_AARCH64_TLSDESC_ADR_PAGE21]
|
// adrp x0, :tlsdesc:v [R_AARCH64_TLSDESC_ADR_PAGE21]
|
||||||
// ldr x1, [x0, #:tlsdesc_lo12:v [R_AARCH64_TLSDESC_LD64_LO12]
|
// ldr x1, [x0, #:tlsdesc_lo12:v [R_AARCH64_TLSDESC_LD64_LO12_NC]
|
||||||
// add x0, x0, :tlsdesc_los:v [R_AARCH64_TLSDESC_ADD_LO12]
|
// add x0, x0, :tlsdesc_los:v [_AARCH64_TLSDESC_ADD_LO12_NC]
|
||||||
// .tlsdesccall [R_AARCH64_TLSDESC_CALL]
|
// .tlsdesccall [R_AARCH64_TLSDESC_CALL]
|
||||||
// blr x1
|
// blr x1
|
||||||
// And it can optimized to:
|
// And it can optimized to:
|
||||||
|
@ -1567,14 +1567,14 @@ void AArch64TargetInfo::relaxTlsGdToLe(uint8_t *Loc, uint32_t Type,
|
||||||
checkUInt<32>(Loc, Val, Type);
|
checkUInt<32>(Loc, Val, Type);
|
||||||
|
|
||||||
switch (Type) {
|
switch (Type) {
|
||||||
case R_AARCH64_TLSDESC_ADD_LO12:
|
case R_AARCH64_TLSDESC_ADD_LO12_NC:
|
||||||
case R_AARCH64_TLSDESC_CALL:
|
case R_AARCH64_TLSDESC_CALL:
|
||||||
write32le(Loc, 0xd503201f); // nop
|
write32le(Loc, 0xd503201f); // nop
|
||||||
return;
|
return;
|
||||||
case R_AARCH64_TLSDESC_ADR_PAGE21:
|
case R_AARCH64_TLSDESC_ADR_PAGE21:
|
||||||
write32le(Loc, 0xd2a00000 | (((Val >> 16) & 0xffff) << 5)); // movz
|
write32le(Loc, 0xd2a00000 | (((Val >> 16) & 0xffff) << 5)); // movz
|
||||||
return;
|
return;
|
||||||
case R_AARCH64_TLSDESC_LD64_LO12:
|
case R_AARCH64_TLSDESC_LD64_LO12_NC:
|
||||||
write32le(Loc, 0xf2800000 | ((Val & 0xffff) << 5)); // movk
|
write32le(Loc, 0xf2800000 | ((Val & 0xffff) << 5)); // movk
|
||||||
return;
|
return;
|
||||||
default:
|
default:
|
||||||
|
@ -1586,8 +1586,8 @@ void AArch64TargetInfo::relaxTlsGdToIe(uint8_t *Loc, uint32_t Type,
|
||||||
uint64_t Val) const {
|
uint64_t Val) const {
|
||||||
// TLSDESC Global-Dynamic relocation are in the form:
|
// TLSDESC Global-Dynamic relocation are in the form:
|
||||||
// adrp x0, :tlsdesc:v [R_AARCH64_TLSDESC_ADR_PAGE21]
|
// adrp x0, :tlsdesc:v [R_AARCH64_TLSDESC_ADR_PAGE21]
|
||||||
// ldr x1, [x0, #:tlsdesc_lo12:v [R_AARCH64_TLSDESC_LD64_LO12]
|
// ldr x1, [x0, #:tlsdesc_lo12:v [R_AARCH64_TLSDESC_LD64_LO12_NC]
|
||||||
// add x0, x0, :tlsdesc_los:v [R_AARCH64_TLSDESC_ADD_LO12]
|
// add x0, x0, :tlsdesc_los:v [_AARCH64_TLSDESC_ADD_LO12_NC]
|
||||||
// .tlsdesccall [R_AARCH64_TLSDESC_CALL]
|
// .tlsdesccall [R_AARCH64_TLSDESC_CALL]
|
||||||
// blr x1
|
// blr x1
|
||||||
// And it can optimized to:
|
// And it can optimized to:
|
||||||
|
@ -1597,7 +1597,7 @@ void AArch64TargetInfo::relaxTlsGdToIe(uint8_t *Loc, uint32_t Type,
|
||||||
// nop
|
// nop
|
||||||
|
|
||||||
switch (Type) {
|
switch (Type) {
|
||||||
case R_AARCH64_TLSDESC_ADD_LO12:
|
case R_AARCH64_TLSDESC_ADD_LO12_NC:
|
||||||
case R_AARCH64_TLSDESC_CALL:
|
case R_AARCH64_TLSDESC_CALL:
|
||||||
write32le(Loc, 0xd503201f); // nop
|
write32le(Loc, 0xd503201f); // nop
|
||||||
break;
|
break;
|
||||||
|
@ -1605,7 +1605,7 @@ void AArch64TargetInfo::relaxTlsGdToIe(uint8_t *Loc, uint32_t Type,
|
||||||
write32le(Loc, 0x90000000); // adrp
|
write32le(Loc, 0x90000000); // adrp
|
||||||
relocateOne(Loc, R_AARCH64_TLSIE_ADR_GOTTPREL_PAGE21, Val);
|
relocateOne(Loc, R_AARCH64_TLSIE_ADR_GOTTPREL_PAGE21, Val);
|
||||||
break;
|
break;
|
||||||
case R_AARCH64_TLSDESC_LD64_LO12:
|
case R_AARCH64_TLSDESC_LD64_LO12_NC:
|
||||||
write32le(Loc, 0xf9400000); // ldr
|
write32le(Loc, 0xf9400000); // ldr
|
||||||
relocateOne(Loc, R_AARCH64_TLSIE_LD64_GOTTPREL_LO12_NC, Val);
|
relocateOne(Loc, R_AARCH64_TLSIE_LD64_GOTTPREL_LO12_NC, Val);
|
||||||
break;
|
break;
|
||||||
|
|
Loading…
Reference in New Issue