1 //===-- PPCFixupKinds.h - PPC Specific Fixup Entries ------------*- C++ -*-===//
2 //
3 //                     The LLVM Compiler Infrastructure
4 //
5 // This file is distributed under the University of Illinois Open Source
6 // License. See LICENSE.TXT for details.
7 //
8 //===----------------------------------------------------------------------===//
9 
10 #ifndef LLVM_LIB_TARGET_POWERPC_MCTARGETDESC_PPCFIXUPKINDS_H
11 #define LLVM_LIB_TARGET_POWERPC_MCTARGETDESC_PPCFIXUPKINDS_H
12 
13 #include "llvm/MC/MCFixup.h"
14 
15 #undef PPC
16 
17 namespace llvm {
18 namespace PPC {
19 enum Fixups {
20   // 24-bit PC relative relocation for direct branches like 'b' and 'bl'.
21   fixup_ppc_br24 = FirstTargetFixupKind,
22 
23   /// 14-bit PC relative relocation for conditional branches.
24   fixup_ppc_brcond14,
25 
26   /// 24-bit absolute relocation for direct branches like 'ba' and 'bla'.
27   fixup_ppc_br24abs,
28 
29   /// 14-bit absolute relocation for conditional branches.
30   fixup_ppc_brcond14abs,
31 
32   /// A 16-bit fixup corresponding to lo16(_foo) or ha16(_foo) for instrs like
33   /// 'li' or 'addis'.
34   fixup_ppc_half16,
35 
36   /// A 14-bit fixup corresponding to lo16(_foo) with implied 2 zero bits for
37   /// instrs like 'std'.
38   fixup_ppc_half16ds,
39 
40   /// Not a true fixup, but ties a symbol to a call to __tls_get_addr for the
41   /// TLS general and local dynamic models, or inserts the thread-pointer
42   /// register number.
43   fixup_ppc_nofixup,
44 
45   // Marker
46   LastTargetFixupKind,
47   NumTargetFixupKinds = LastTargetFixupKind - FirstTargetFixupKind
48 };
49 }
50 }
51 
52 #endif
53