1262261Sdim//===-- SparcFixupKinds.h - Sparc Specific Fixup Entries --------*- C++ -*-===//
2262261Sdim//
3262261Sdim//                     The LLVM Compiler Infrastructure
4262261Sdim//
5262261Sdim// This file is distributed under the University of Illinois Open Source
6262261Sdim// License. See LICENSE.TXT for details.
7262261Sdim//
8262261Sdim//===----------------------------------------------------------------------===//
9262261Sdim
10262261Sdim#ifndef LLVM_SPARC_FIXUPKINDS_H
11262261Sdim#define LLVM_SPARC_FIXUPKINDS_H
12262261Sdim
13262261Sdim#include "llvm/MC/MCFixup.h"
14262261Sdim
15262261Sdimnamespace llvm {
16262261Sdim  namespace Sparc {
17262261Sdim    enum Fixups {
18262261Sdim      // fixup_sparc_call30 - 30-bit PC relative relocation for call
19262261Sdim      fixup_sparc_call30 = FirstTargetFixupKind,
20262261Sdim
21262261Sdim      /// fixup_sparc_br22 - 22-bit PC relative relocation for
22262261Sdim      /// branches
23262261Sdim      fixup_sparc_br22,
24262261Sdim
25262261Sdim      /// fixup_sparc_br19 - 19-bit PC relative relocation for
26262261Sdim      /// branches on icc/xcc
27262261Sdim      fixup_sparc_br19,
28262261Sdim
29262261Sdim      /// fixup_sparc_hi22  - 22-bit fixup corresponding to %hi(foo)
30262261Sdim      /// for sethi
31262261Sdim      fixup_sparc_hi22,
32262261Sdim
33262261Sdim      /// fixup_sparc_lo10  - 10-bit fixup corresponding to %lo(foo)
34262261Sdim      fixup_sparc_lo10,
35262261Sdim
36262261Sdim      /// fixup_sparc_h44  - 22-bit fixup corresponding to %h44(foo)
37262261Sdim      fixup_sparc_h44,
38262261Sdim
39262261Sdim      /// fixup_sparc_m44  - 10-bit fixup corresponding to %m44(foo)
40262261Sdim      fixup_sparc_m44,
41262261Sdim
42262261Sdim      /// fixup_sparc_l44  - 12-bit fixup corresponding to %l44(foo)
43262261Sdim      fixup_sparc_l44,
44262261Sdim
45262261Sdim      /// fixup_sparc_hh  -  22-bit fixup corresponding to %hh(foo)
46262261Sdim      fixup_sparc_hh,
47262261Sdim
48262261Sdim      /// fixup_sparc_hm  -  10-bit fixup corresponding to %hm(foo)
49262261Sdim      fixup_sparc_hm,
50262261Sdim
51262261Sdim      /// fixup_sparc_pc22 - 22-bit fixup corresponding to %pc22(foo)
52262261Sdim      fixup_sparc_pc22,
53262261Sdim
54262261Sdim      /// fixup_sparc_pc10 - 10-bit fixup corresponding to %pc10(foo)
55262261Sdim      fixup_sparc_pc10,
56262261Sdim
57262261Sdim      /// fixup_sparc_got22 - 22-bit fixup corresponding to %got22(foo)
58262261Sdim      fixup_sparc_got22,
59262261Sdim
60262261Sdim      /// fixup_sparc_got10 - 10-bit fixup corresponding to %got10(foo)
61262261Sdim      fixup_sparc_got10,
62262261Sdim
63262261Sdim      /// fixup_sparc_wplt30
64262261Sdim      fixup_sparc_wplt30,
65262261Sdim
66262261Sdim      /// fixups for Thread Local Storage
67262261Sdim      fixup_sparc_tls_gd_hi22,
68262261Sdim      fixup_sparc_tls_gd_lo10,
69262261Sdim      fixup_sparc_tls_gd_add,
70262261Sdim      fixup_sparc_tls_gd_call,
71262261Sdim      fixup_sparc_tls_ldm_hi22,
72262261Sdim      fixup_sparc_tls_ldm_lo10,
73262261Sdim      fixup_sparc_tls_ldm_add,
74262261Sdim      fixup_sparc_tls_ldm_call,
75262261Sdim      fixup_sparc_tls_ldo_hix22,
76262261Sdim      fixup_sparc_tls_ldo_lox10,
77262261Sdim      fixup_sparc_tls_ldo_add,
78262261Sdim      fixup_sparc_tls_ie_hi22,
79262261Sdim      fixup_sparc_tls_ie_lo10,
80262261Sdim      fixup_sparc_tls_ie_ld,
81262261Sdim      fixup_sparc_tls_ie_ldx,
82262261Sdim      fixup_sparc_tls_ie_add,
83262261Sdim      fixup_sparc_tls_le_hix22,
84262261Sdim      fixup_sparc_tls_le_lox10,
85262261Sdim
86262261Sdim      // Marker
87262261Sdim      LastTargetFixupKind,
88262261Sdim      NumTargetFixupKinds = LastTargetFixupKind - FirstTargetFixupKind
89262261Sdim    };
90262261Sdim  }
91262261Sdim}
92262261Sdim
93262261Sdim#endif
94