aboutsummaryrefslogtreecommitdiff
path: root/backend/include/rcc/Target/RISCV/RISCVFixupKinds.h
blob: e030bfc462665dfb131c5f0620303bc6c5f75e71 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
// SPDX-License-Identifier: GPL-3.0-or-later

#ifndef RCC_TARGET_RISCV_RISCVFIXUPKINDS_H
#define RCC_TARGET_RISCV_RISCVFIXUPKINDS_H

#include "rcc/MC/MCFixup.h"

#include <cstdint>

namespace rcc::riscv {

enum class RISCVFixupKind : mc::MCFixupKind {
  High20 = mc::fixup_kind::FirstTarget,
  Low12I,
  Low12S,
  PCRelativeHigh20,
  GOTPCRelativeHigh20,
  PCRelativeLow12I,
  PCRelativeLow12S,
  JAL,
  Branch,
  RVCJump,
  RVCBranch,
  CallPLT,
};

[[nodiscard]] constexpr mc::MCFixupKind fixupKind(RISCVFixupKind Kind) noexcept {
  return static_cast<mc::MCFixupKind>(Kind);
}

} // namespace rcc::riscv

#endif // RCC_TARGET_RISCV_RISCVFIXUPKINDS_H