1 //===-- PPCFixupKinds.h - PPC 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-exception
6 //
7 //===----------------------------------------------------------------------===//
8 
9 #ifndef LLVM_LIB_TARGET_POWERPC_MCTARGETDESC_PPCFIXUPKINDS_H
10 #define LLVM_LIB_TARGET_POWERPC_MCTARGETDESC_PPCFIXUPKINDS_H
11 
12 #include "llvm/MC/MCFixup.h"
13 
14 #undef PPC
15 
16 namespace llvm {
17 namespace PPC {
18 enum Fixups {
19   // 24-bit PC relative relocation for direct branches like 'b' and 'bl'.
20   fixup_ppc_br24 = FirstTargetFixupKind,
21 
22   /// 14-bit PC relative relocation for conditional branches.
23   fixup_ppc_brcond14,
24 
25   /// 24-bit absolute relocation for direct branches like 'ba' and 'bla'.
26   fixup_ppc_br24abs,
27 
28   /// 14-bit absolute relocation for conditional branches.
29   fixup_ppc_brcond14abs,
30 
31   /// A 16-bit fixup corresponding to lo16(_foo) or ha16(_foo) for instrs like
32   /// 'li' or 'addis'.
33   fixup_ppc_half16,
34 
35   /// A 14-bit fixup corresponding to lo16(_foo) with implied 2 zero bits for
36   /// instrs like 'std'.
37   fixup_ppc_half16ds,
38 
39   /// Not a true fixup, but ties a symbol to a call to __tls_get_addr for the
40   /// TLS general and local dynamic models, or inserts the thread-pointer
41   /// register number.
42   fixup_ppc_nofixup,
43 
44   // Marker
45   LastTargetFixupKind,
46   NumTargetFixupKinds = LastTargetFixupKind - FirstTargetFixupKind
47 };
48 }
49 }
50 
51 #endif
52