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