aboutsummaryrefslogtreecommitdiffstats
path: root/contrib/libs/llvm12/lib/Target/PowerPC/MCTargetDesc/PPCFixupKinds.h
blob: 6f3eabab1c88d94d3204909059334729e16c454c (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
//===-- PPCFixupKinds.h - PPC Specific Fixup Entries ------------*- C++ -*-===// 
// 
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 
// See https://llvm.org/LICENSE.txt for license information. 
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 
// 
//===----------------------------------------------------------------------===// 
 
#ifndef LLVM_LIB_TARGET_POWERPC_MCTARGETDESC_PPCFIXUPKINDS_H 
#define LLVM_LIB_TARGET_POWERPC_MCTARGETDESC_PPCFIXUPKINDS_H 
 
#include "llvm/MC/MCFixup.h" 
 
#undef PPC 
 
namespace llvm { 
namespace PPC { 
enum Fixups { 
  // 24-bit PC relative relocation for direct branches like 'b' and 'bl'. 
  fixup_ppc_br24 = FirstTargetFixupKind, 
 
  // 24-bit PC relative relocation for direct branches like 'b' and 'bl' where 
  // the caller does not use the TOC. 
  fixup_ppc_br24_notoc, 
 
  /// 14-bit PC relative relocation for conditional branches. 
  fixup_ppc_brcond14, 
 
  /// 24-bit absolute relocation for direct branches like 'ba' and 'bla'. 
  fixup_ppc_br24abs, 
 
  /// 14-bit absolute relocation for conditional branches. 
  fixup_ppc_brcond14abs, 
 
  /// A 16-bit fixup corresponding to lo16(_foo) or ha16(_foo) for instrs like 
  /// 'li' or 'addis'. 
  fixup_ppc_half16, 
 
  /// A 14-bit fixup corresponding to lo16(_foo) with implied 2 zero bits for 
  /// instrs like 'std'. 
  fixup_ppc_half16ds, 
 
  // A 34-bit fixup corresponding to PC-relative paddi. 
  fixup_ppc_pcrel34, 
 
  // A 34-bit fixup corresponding to Non-PC-relative paddi.
  fixup_ppc_imm34,

  /// Not a true fixup, but ties a symbol to a call to __tls_get_addr for the 
  /// TLS general and local dynamic models, or inserts the thread-pointer 
  /// register number. 
  fixup_ppc_nofixup, 
 
  // Marker 
  LastTargetFixupKind, 
  NumTargetFixupKinds = LastTargetFixupKind - FirstTargetFixupKind 
}; 
} 
} 
 
#endif