//===--- ELF_x86_64.h - JIT link functions for ELF/x86-64 ---*- C++ -*-===//
//
// 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
//
//===----------------------------------------------------------------------===//
//
// jit-link functions for ELF/x86-64.
//
//===----------------------------------------------------------------------===//

#ifndef LLVM_EXECUTIONENGINE_JITLINK_ELF_X86_64_H
#define LLVM_EXECUTIONENGINE_JITLINK_ELF_X86_64_H

#include "llvm/ExecutionEngine/JITLink/JITLink.h"

namespace llvm {
namespace jitlink {

namespace ELF_x86_64_Edges {
enum ELFX86RelocationKind : Edge::Kind {
  Branch32 = Edge::FirstRelocation,
  Branch32ToStub,
  Pointer32,
  Pointer64,
  Pointer64Anon,
  PCRel32,
  PCRel32Minus1,
  PCRel32Minus2,
  PCRel32Minus4,
  PCRel32Anon,
  PCRel32Minus1Anon,
  PCRel32Minus2Anon,
  PCRel32Minus4Anon,
  PCRel32GOTLoad,
  PCRel32GOT,
  PCRel32TLV,
  Delta32,
  Delta64,
  NegDelta32,
  NegDelta64,
};

} // end namespace ELF_x86_64_Edges

/// jit-link the given object buffer, which must be a ELF x86-64 object file.
void jitLink_ELF_x86_64(std::unique_ptr<JITLinkContext> Ctx);
/// Return the string name of the given ELF x86-64 edge kind.
StringRef getELFX86RelocationKindName(Edge::Kind R);
} // end namespace jitlink
} // end namespace llvm

#endif // LLVM_EXECUTIONENGINE_JITLINK_ELF_X86_64_H
