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