blob: 709daa4e4bfdb10400bfdc9f16f709a8f3301e62 [file] [log] [blame]
Chris Lattner79fa3712010-11-15 05:57:53 +00001//===-- 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
Sylvestre Ledru37ef20d2013-03-17 12:40:42 +000015#undef PPC
16
Chris Lattner79fa3712010-11-15 05:57:53 +000017namespace llvm {
18namespace PPC {
19enum Fixups {
Chris Lattner85e37682010-11-15 06:12:22 +000020 // fixup_ppc_br24 - 24-bit PC relative relocation for direct branches like 'b'
21 // and 'bl'.
Chris Lattner79fa3712010-11-15 05:57:53 +000022 fixup_ppc_br24 = FirstTargetFixupKind,
23
Chris Lattner85e37682010-11-15 06:12:22 +000024 /// fixup_ppc_brcond14 - 14-bit PC relative relocation for conditional
25 /// branches.
26 fixup_ppc_brcond14,
27
Chris Lattner65661122010-11-15 06:33:39 +000028 /// 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,
Adhemerval Zanellaf2aceda2012-10-25 12:27:42 +000039
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,
Bill Schmidtca4a0c92012-12-04 16:18:08 +000049
50 /// fixup_ppc_tlsreg - Insert thread-pointer register number.
51 fixup_ppc_tlsreg,
Bill Schmidtc56f1d32012-12-11 20:30:11 +000052
Bill Schmidt24b8dd62012-12-12 19:29:35 +000053 /// 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,
Chris Lattner65661122010-11-15 06:33:39 +000056
Chris Lattner79fa3712010-11-15 05:57:53 +000057 // Marker
58 LastTargetFixupKind,
59 NumTargetFixupKinds = LastTargetFixupKind - FirstTargetFixupKind
60};
61}
62}
63
64#endif