1//===-- PPCFixupKinds.h - PPC Specific Fixup Entries ------------*- C++ -*-===// 2// 3// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 4// See https://llvm.org/LICENSE.txt for license information. 5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 6// 7//===----------------------------------------------------------------------===// 8 9#ifndef LLVM_LIB_TARGET_POWERPC_MCTARGETDESC_PPCFIXUPKINDS_H 10#define LLVM_LIB_TARGET_POWERPC_MCTARGETDESC_PPCFIXUPKINDS_H 11 12#include "llvm/MC/MCFixup.h" 13 14#undef PPC 15 16namespace llvm { 17namespace PPC { 18enum Fixups { 19 // 24-bit PC relative relocation for direct branches like 'b' and 'bl'. 20 fixup_ppc_br24 = FirstTargetFixupKind, 21 22 // 24-bit PC relative relocation for direct branches like 'b' and 'bl' where 23 // the caller does not use the TOC. 24 fixup_ppc_br24_notoc, 25 26 /// 14-bit PC relative relocation for conditional branches. 27 fixup_ppc_brcond14, 28 29 /// 24-bit absolute relocation for direct branches like 'ba' and 'bla'. 30 fixup_ppc_br24abs, 31 32 /// 14-bit absolute relocation for conditional branches. 33 fixup_ppc_brcond14abs, 34 35 /// A 16-bit fixup corresponding to lo16(_foo) or ha16(_foo) for instrs like 36 /// 'li' or 'addis'. 37 fixup_ppc_half16, 38 39 /// A 14-bit fixup corresponding to lo16(_foo) with implied 2 zero bits for 40 /// instrs like 'std'. 41 fixup_ppc_half16ds, 42 43 // A 34-bit fixup corresponding to PC-relative paddi. 44 fixup_ppc_pcrel34, 45 46 /// Not a true fixup, but ties a symbol to a call to __tls_get_addr for the 47 /// TLS general and local dynamic models, or inserts the thread-pointer 48 /// register number. 49 fixup_ppc_nofixup, 50 51 // Marker 52 LastTargetFixupKind, 53 NumTargetFixupKinds = LastTargetFixupKind - FirstTargetFixupKind 54}; 55} 56} 57 58#endif 59