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   // fixup_ppc_br24 - 24-bit PC relative relocation for direct branches like 'b'
21   // and 'bl'.
22   fixup_ppc_br24 = FirstTargetFixupKind,
23 
24   /// fixup_ppc_brcond14 - 14-bit PC relative relocation for conditional
25   /// branches.
26   fixup_ppc_brcond14,
27 
28   /// fixup_ppc_br24abs - 24-bit absolute relocation for direct branches
29   /// like 'ba' and 'bla'.
30   fixup_ppc_br24abs,
31 
32   /// fixup_ppc_brcond14abs - 14-bit absolute relocation for conditional
33   /// branches.
34   fixup_ppc_brcond14abs,
35 
36   /// fixup_ppc_half16 - A 16-bit fixup corresponding to lo16(_foo)
37   /// or ha16(_foo) for instrs like 'li' or 'addis'.
38   fixup_ppc_half16,
39 
40   /// fixup_ppc_half16ds - A 14-bit fixup corresponding to lo16(_foo) with
41   /// implied 2 zero bits for instrs like 'std'.
42   fixup_ppc_half16ds,
43 
44   /// fixup_ppc_nofixup - Not a true fixup, but ties a symbol to a call
45   /// to __tls_get_addr for the TLS general and local dynamic models,
46   /// or inserts the thread-pointer register number.
47   fixup_ppc_nofixup,
48 
49   // Marker
50   LastTargetFixupKind,
51   NumTargetFixupKinds = LastTargetFixupKind - FirstTargetFixupKind
52 };
53 }
54 }
55 
56 #endif
57