brintos

brintos / llvm-project-archived public Read only

0
0
Text · 2.4 KiB · 113dbe1 Raw
75 lines · c
1//===-- AArch64FixupKinds.h - AArch64 Specific Fixup Entries ----*- C++ -*-===//2//3// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.4// See https://llvm.org/LICENSE.txt for license information.5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception6//7//===----------------------------------------------------------------------===//8 9#ifndef LLVM_LIB_TARGET_AARCH64_MCTARGETDESC_AARCH64FIXUPKINDS_H10#define LLVM_LIB_TARGET_AARCH64_MCTARGETDESC_AARCH64FIXUPKINDS_H11 12#include "llvm/MC/MCFixup.h"13 14namespace llvm {15namespace AArch64 {16 17enum Fixups {18  // A 21-bit pc-relative immediate inserted into an ADR instruction.19  fixup_aarch64_pcrel_adr_imm21 = FirstTargetFixupKind,20 21  // A 21-bit pc-relative immediate inserted into an ADRP instruction.22  fixup_aarch64_pcrel_adrp_imm21,23 24  // 12-bit fixup for add/sub instructions. No alignment adjustment. All value25  // bits are encoded.26  fixup_aarch64_add_imm12,27 28  // unsigned 12-bit fixups for load and store instructions.29  fixup_aarch64_ldst_imm12_scale1,30  fixup_aarch64_ldst_imm12_scale2,31  fixup_aarch64_ldst_imm12_scale4,32  fixup_aarch64_ldst_imm12_scale8,33  fixup_aarch64_ldst_imm12_scale16,34 35  // The high 19 bits of a 21-bit pc-relative immediate. Same encoding as36  // fixup_aarch64_pcrel_adrhi, except this is used by pc-relative loads and37  // generates relocations directly when necessary.38  fixup_aarch64_ldr_pcrel_imm19,39 40  // FIXME: comment41  fixup_aarch64_movw,42 43  // The high 9 bits of a 11-bit pc-relative immediate.44  fixup_aarch64_pcrel_branch9,45 46  // The high 14 bits of a 21-bit pc-relative immediate.47  fixup_aarch64_pcrel_branch14,48 49  // The high 16 bits of a 18-bit unsigned PC-relative immediate. Used by50  // pointer authentication, only within a function, so no relocation can be51  // generated.52  fixup_aarch64_pcrel_branch16,53 54  // The high 19 bits of a 21-bit pc-relative immediate. Same encoding as55  // fixup_aarch64_pcrel_adrhi, except this is use by b.cc and generates56  // relocations directly when necessary.57  fixup_aarch64_pcrel_branch19,58 59  // The high 26 bits of a 28-bit pc-relative immediate.60  fixup_aarch64_pcrel_branch26,61 62  // The high 26 bits of a 28-bit pc-relative immediate. Distinguished from63  // branch26 only on ELF.64  fixup_aarch64_pcrel_call26,65 66  // Marker67  LastTargetFixupKind,68  NumTargetFixupKinds = LastTargetFixupKind - FirstTargetFixupKind69};70 71} // end namespace AArch6472} // end namespace llvm73 74#endif75