xref: /aosp_15_r20/external/llvm/lib/Target/Lanai/MCTargetDesc/LanaiFixupKinds.h (revision 9880d6810fe72a1726cb53787c6711e909410d58)
1*9880d681SAndroid Build Coastguard Worker //===-- LanaiFixupKinds.h - Lanai Specific Fixup Entries --------*- C++ -*-===//
2*9880d681SAndroid Build Coastguard Worker //
3*9880d681SAndroid Build Coastguard Worker //                     The LLVM Compiler Infrastructure
4*9880d681SAndroid Build Coastguard Worker //
5*9880d681SAndroid Build Coastguard Worker // This file is distributed under the University of Illinois Open Source
6*9880d681SAndroid Build Coastguard Worker // License. See LICENSE.TXT for details.
7*9880d681SAndroid Build Coastguard Worker //
8*9880d681SAndroid Build Coastguard Worker //===----------------------------------------------------------------------===//
9*9880d681SAndroid Build Coastguard Worker 
10*9880d681SAndroid Build Coastguard Worker #ifndef LLVM_LIB_TARGET_LANAI_MCTARGETDESC_LANAIFIXUPKINDS_H
11*9880d681SAndroid Build Coastguard Worker #define LLVM_LIB_TARGET_LANAI_MCTARGETDESC_LANAIFIXUPKINDS_H
12*9880d681SAndroid Build Coastguard Worker 
13*9880d681SAndroid Build Coastguard Worker #include "llvm/MC/MCFixup.h"
14*9880d681SAndroid Build Coastguard Worker 
15*9880d681SAndroid Build Coastguard Worker namespace llvm {
16*9880d681SAndroid Build Coastguard Worker namespace Lanai {
17*9880d681SAndroid Build Coastguard Worker // Although most of the current fixup types reflect a unique relocation
18*9880d681SAndroid Build Coastguard Worker // one can have multiple fixup types for a given relocation and thus need
19*9880d681SAndroid Build Coastguard Worker // to be uniquely named.
20*9880d681SAndroid Build Coastguard Worker //
21*9880d681SAndroid Build Coastguard Worker // This table *must* be in the save order of
22*9880d681SAndroid Build Coastguard Worker // MCFixupKindInfo Infos[Lanai::NumTargetFixupKinds]
23*9880d681SAndroid Build Coastguard Worker // in LanaiAsmBackend.cpp.
24*9880d681SAndroid Build Coastguard Worker //
25*9880d681SAndroid Build Coastguard Worker enum Fixups {
26*9880d681SAndroid Build Coastguard Worker   // Results in R_Lanai_NONE
27*9880d681SAndroid Build Coastguard Worker   FIXUP_LANAI_NONE = FirstTargetFixupKind,
28*9880d681SAndroid Build Coastguard Worker 
29*9880d681SAndroid Build Coastguard Worker   FIXUP_LANAI_21,   // 21-bit symbol relocation
30*9880d681SAndroid Build Coastguard Worker   FIXUP_LANAI_21_F, // 21-bit symbol relocation, last two bits masked to 0
31*9880d681SAndroid Build Coastguard Worker   FIXUP_LANAI_25,   // 25-bit branch targets
32*9880d681SAndroid Build Coastguard Worker   FIXUP_LANAI_32,   // general 32-bit relocation
33*9880d681SAndroid Build Coastguard Worker   FIXUP_LANAI_HI16, // upper 16-bits of a symbolic relocation
34*9880d681SAndroid Build Coastguard Worker   FIXUP_LANAI_LO16, // lower 16-bits of a symbolic relocation
35*9880d681SAndroid Build Coastguard Worker 
36*9880d681SAndroid Build Coastguard Worker   // Marker
37*9880d681SAndroid Build Coastguard Worker   LastTargetFixupKind,
38*9880d681SAndroid Build Coastguard Worker   NumTargetFixupKinds = LastTargetFixupKind - FirstTargetFixupKind
39*9880d681SAndroid Build Coastguard Worker };
40*9880d681SAndroid Build Coastguard Worker } // namespace Lanai
41*9880d681SAndroid Build Coastguard Worker } // namespace llvm
42*9880d681SAndroid Build Coastguard Worker 
43*9880d681SAndroid Build Coastguard Worker #endif // LLVM_LIB_TARGET_LANAI_MCTARGETDESC_LANAIFIXUPKINDS_H
44