diff options
| author | Andrew Kelley <andrew@ziglang.org> | 2020-01-16 13:09:45 -0500 |
|---|---|---|
| committer | Andrew Kelley <andrew@ziglang.org> | 2020-01-16 13:09:45 -0500 |
| commit | ba4cc03b4f0d71ac3e0147aa3dde449299ce8cd5 (patch) | |
| tree | 88e0c274db5c1c943944c565833bea103692a556 /deps/lld/ELF/Arch/AMDGPU.cpp | |
| parent | fbe6af81fdb1b964bb0c28f51de2458800b8274c (diff) | |
| download | zig-ba4cc03b4f0d71ac3e0147aa3dde449299ce8cd5.tar.gz zig-ba4cc03b4f0d71ac3e0147aa3dde449299ce8cd5.zip | |
remove embedded LLD
we no longer have any patches against upstream LLD
Diffstat (limited to 'deps/lld/ELF/Arch/AMDGPU.cpp')
| -rw-r--r-- | deps/lld/ELF/Arch/AMDGPU.cpp | 113 |
1 files changed, 0 insertions, 113 deletions
diff --git a/deps/lld/ELF/Arch/AMDGPU.cpp b/deps/lld/ELF/Arch/AMDGPU.cpp deleted file mode 100644 index f2e32ca099..0000000000 --- a/deps/lld/ELF/Arch/AMDGPU.cpp +++ /dev/null @@ -1,113 +0,0 @@ -//===- AMDGPU.cpp ---------------------------------------------------------===// -// -// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. -// See https://llvm.org/LICENSE.txt for license information. -// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception -// -//===----------------------------------------------------------------------===// - -#include "InputFiles.h" -#include "Symbols.h" -#include "Target.h" -#include "lld/Common/ErrorHandler.h" -#include "llvm/Object/ELF.h" -#include "llvm/Support/Endian.h" - -using namespace llvm; -using namespace llvm::object; -using namespace llvm::support::endian; -using namespace llvm::ELF; -using namespace lld; -using namespace lld::elf; - -namespace { -class AMDGPU final : public TargetInfo { -public: - AMDGPU(); - uint32_t calcEFlags() const override; - void relocateOne(uint8_t *loc, RelType type, uint64_t val) const override; - RelExpr getRelExpr(RelType type, const Symbol &s, - const uint8_t *loc) const override; - RelType getDynRel(RelType type) const override; -}; -} // namespace - -AMDGPU::AMDGPU() { - relativeRel = R_AMDGPU_RELATIVE64; - gotRel = R_AMDGPU_ABS64; - noneRel = R_AMDGPU_NONE; - symbolicRel = R_AMDGPU_ABS64; -} - -static uint32_t getEFlags(InputFile *file) { - return cast<ObjFile<ELF64LE>>(file)->getObj().getHeader()->e_flags; -} - -uint32_t AMDGPU::calcEFlags() const { - assert(!objectFiles.empty()); - uint32_t ret = getEFlags(objectFiles[0]); - - // Verify that all input files have the same e_flags. - for (InputFile *f : makeArrayRef(objectFiles).slice(1)) { - if (ret == getEFlags(f)) - continue; - error("incompatible e_flags: " + toString(f)); - return 0; - } - return ret; -} - -void AMDGPU::relocateOne(uint8_t *loc, RelType type, uint64_t val) const { - switch (type) { - case R_AMDGPU_ABS32: - case R_AMDGPU_GOTPCREL: - case R_AMDGPU_GOTPCREL32_LO: - case R_AMDGPU_REL32: - case R_AMDGPU_REL32_LO: - write32le(loc, val); - break; - case R_AMDGPU_ABS64: - case R_AMDGPU_REL64: - write64le(loc, val); - break; - case R_AMDGPU_GOTPCREL32_HI: - case R_AMDGPU_REL32_HI: - write32le(loc, val >> 32); - break; - default: - llvm_unreachable("unknown relocation"); - } -} - -RelExpr AMDGPU::getRelExpr(RelType type, const Symbol &s, - const uint8_t *loc) const { - switch (type) { - case R_AMDGPU_ABS32: - case R_AMDGPU_ABS64: - return R_ABS; - case R_AMDGPU_REL32: - case R_AMDGPU_REL32_LO: - case R_AMDGPU_REL32_HI: - case R_AMDGPU_REL64: - return R_PC; - case R_AMDGPU_GOTPCREL: - case R_AMDGPU_GOTPCREL32_LO: - case R_AMDGPU_GOTPCREL32_HI: - return R_GOT_PC; - default: - error(getErrorLocation(loc) + "unknown relocation (" + Twine(type) + - ") against symbol " + toString(s)); - return R_NONE; - } -} - -RelType AMDGPU::getDynRel(RelType type) const { - if (type == R_AMDGPU_ABS64) - return type; - return R_AMDGPU_NONE; -} - -TargetInfo *elf::getAMDGPUTargetInfo() { - static AMDGPU target; - return ⌖ -} |
