143 lines · c
1//===-- HexagonFixupKinds.h - Hexagon Specific Fixup Entries --------------===//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_HEXAGON_HEXAGONFIXUPKINDS_H10#define LLVM_HEXAGON_HEXAGONFIXUPKINDS_H11 12#include "llvm/MC/MCFixup.h"13 14namespace llvm {15namespace Hexagon {16enum Fixups {17 // Branch fixups for R_HEX_B{22,15,7}_PCREL.18 fixup_Hexagon_B22_PCREL = FirstTargetFixupKind,19 fixup_Hexagon_B15_PCREL,20 fixup_Hexagon_B7_PCREL,21 fixup_Hexagon_LO16,22 fixup_Hexagon_HI16,23 fixup_Hexagon_32,24 fixup_Hexagon_16,25 fixup_Hexagon_8,26 fixup_Hexagon_GPREL16_0,27 fixup_Hexagon_GPREL16_1,28 fixup_Hexagon_GPREL16_2,29 fixup_Hexagon_GPREL16_3,30 fixup_Hexagon_HL16,31 fixup_Hexagon_B13_PCREL,32 fixup_Hexagon_B9_PCREL,33 fixup_Hexagon_B32_PCREL_X,34 fixup_Hexagon_32_6_X,35 fixup_Hexagon_B22_PCREL_X,36 fixup_Hexagon_B15_PCREL_X,37 fixup_Hexagon_B13_PCREL_X,38 fixup_Hexagon_B9_PCREL_X,39 fixup_Hexagon_B7_PCREL_X,40 fixup_Hexagon_16_X,41 fixup_Hexagon_12_X,42 fixup_Hexagon_11_X,43 fixup_Hexagon_10_X,44 fixup_Hexagon_9_X,45 fixup_Hexagon_8_X,46 fixup_Hexagon_7_X,47 fixup_Hexagon_6_X,48 fixup_Hexagon_32_PCREL,49 fixup_Hexagon_COPY,50 fixup_Hexagon_GLOB_DAT,51 fixup_Hexagon_JMP_SLOT,52 fixup_Hexagon_RELATIVE,53 fixup_Hexagon_PLT_B22_PCREL,54 fixup_Hexagon_GOTREL_LO16,55 fixup_Hexagon_GOTREL_HI16,56 fixup_Hexagon_GOTREL_32,57 fixup_Hexagon_GOT_LO16,58 fixup_Hexagon_GOT_HI16,59 fixup_Hexagon_GOT_32,60 fixup_Hexagon_GOT_16,61 fixup_Hexagon_DTPMOD_32,62 fixup_Hexagon_DTPREL_LO16,63 fixup_Hexagon_DTPREL_HI16,64 fixup_Hexagon_DTPREL_32,65 fixup_Hexagon_DTPREL_16,66 fixup_Hexagon_GD_PLT_B22_PCREL,67 fixup_Hexagon_LD_PLT_B22_PCREL,68 fixup_Hexagon_GD_GOT_LO16,69 fixup_Hexagon_GD_GOT_HI16,70 fixup_Hexagon_GD_GOT_32,71 fixup_Hexagon_GD_GOT_16,72 fixup_Hexagon_LD_GOT_LO16,73 fixup_Hexagon_LD_GOT_HI16,74 fixup_Hexagon_LD_GOT_32,75 fixup_Hexagon_LD_GOT_16,76 fixup_Hexagon_IE_LO16,77 fixup_Hexagon_IE_HI16,78 fixup_Hexagon_IE_32,79 fixup_Hexagon_IE_16,80 fixup_Hexagon_IE_GOT_LO16,81 fixup_Hexagon_IE_GOT_HI16,82 fixup_Hexagon_IE_GOT_32,83 fixup_Hexagon_IE_GOT_16,84 fixup_Hexagon_TPREL_LO16,85 fixup_Hexagon_TPREL_HI16,86 fixup_Hexagon_TPREL_32,87 fixup_Hexagon_TPREL_16,88 fixup_Hexagon_6_PCREL_X,89 fixup_Hexagon_GOTREL_32_6_X,90 fixup_Hexagon_GOTREL_16_X,91 fixup_Hexagon_GOTREL_11_X,92 fixup_Hexagon_GOT_32_6_X,93 fixup_Hexagon_GOT_16_X,94 fixup_Hexagon_GOT_11_X,95 fixup_Hexagon_DTPREL_32_6_X,96 fixup_Hexagon_DTPREL_16_X,97 fixup_Hexagon_DTPREL_11_X,98 fixup_Hexagon_GD_GOT_32_6_X,99 fixup_Hexagon_GD_GOT_16_X,100 fixup_Hexagon_GD_GOT_11_X,101 fixup_Hexagon_LD_GOT_32_6_X,102 fixup_Hexagon_LD_GOT_16_X,103 fixup_Hexagon_LD_GOT_11_X,104 fixup_Hexagon_IE_32_6_X,105 fixup_Hexagon_IE_16_X,106 fixup_Hexagon_IE_GOT_32_6_X,107 fixup_Hexagon_IE_GOT_16_X,108 fixup_Hexagon_IE_GOT_11_X,109 fixup_Hexagon_TPREL_32_6_X,110 fixup_Hexagon_TPREL_16_X,111 fixup_Hexagon_TPREL_11_X,112 fixup_Hexagon_23_REG,113 fixup_Hexagon_27_REG,114 fixup_Hexagon_GD_PLT_B22_PCREL_X,115 fixup_Hexagon_GD_PLT_B32_PCREL_X,116 fixup_Hexagon_LD_PLT_B22_PCREL_X,117 fixup_Hexagon_LD_PLT_B32_PCREL_X,118 119 LastTargetFixupKind,120 NumTargetFixupKinds = LastTargetFixupKind - FirstTargetFixupKind121};122enum FixupBitmaps : unsigned {123 Word8 = 0xff,124 Word16 = 0xffff,125 Word32 = 0xffffffff,126 Word32_LO = 0x00c03fff,127 Word32_HL = 0x0, // Not Implemented128 Word32_GP = 0x0, // Not Implemented129 Word32_B7 = 0x00001f18,130 Word32_B9 = 0x003000fe,131 Word32_B13 = 0x00202ffe,132 Word32_B15 = 0x00df20fe,133 Word32_B22 = 0x01ff3ffe,134 Word32_R6 = 0x000007e0,135 Word32_U6 = 0x0, // Not Implemented136 Word32_U16 = 0x0, // Not Implemented137 Word32_X26 = 0x0fff3fff138};139} // namespace Hexagon140} // namespace llvm141 142#endif // LLVM_HEXAGON_HEXAGONFIXUPKINDS_H143