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_PPC_PPCFIXUPKINDS_H 11 #define LLVM_PPC_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_lo16 - A 16-bit fixup corresponding to lo16(_foo) for instrs 29 /// like 'li'. 30 fixup_ppc_lo16, 31 32 /// fixup_ppc_ha16 - A 16-bit fixup corresponding to ha16(_foo) for instrs 33 /// like 'lis'. 34 fixup_ppc_ha16, 35 36 /// fixup_ppc_lo14 - A 14-bit fixup corresponding to lo16(_foo) for instrs 37 /// like 'std'. 38 fixup_ppc_lo14, 39 40 /// fixup_ppc_toc - Insert value of TOC base (.TOC.). 41 fixup_ppc_toc, 42 43 /// fixup_ppc_toc16 - A 16-bit signed fixup relative to the TOC base. 44 fixup_ppc_toc16, 45 46 /// fixup_ppc_toc16_ds - A 14-bit signed fixup relative to the TOC base with 47 /// implied 2 zero bits 48 fixup_ppc_toc16_ds, 49 50 /// fixup_ppc_tlsreg - Insert thread-pointer register number. 51 fixup_ppc_tlsreg, 52 53 /// fixup_ppc_nofixup - Not a true fixup, but ties a symbol to a call 54 /// to __tls_get_addr for the TLS general and local dynamic models. 55 fixup_ppc_nofixup, 56 57 // Marker 58 LastTargetFixupKind, 59 NumTargetFixupKinds = LastTargetFixupKind - FirstTargetFixupKind 60 }; 61 } 62 } 63 64 #endif 65