Local dynamic TLS model for direct object output. Create the correct TLS MIPS
[oota-llvm.git] / lib / Target / Mips / MCTargetDesc / MipsFixupKinds.h
1 //===-- Mips/MipsFixupKinds.h - Mips 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_Mips_MipsFIXUPKINDS_H
11 #define LLVM_Mips_MipsFIXUPKINDS_H
12
13 #include "llvm/MC/MCFixup.h"
14
15 namespace llvm {
16 namespace Mips {
17   // Although most of the current fixup types reflect a unique relocation
18   // one can have multiple fixup types for a given relocation and thus need
19   // to be uniquely named.
20   //
21   // This table *must* be in the save order of
22   // MCFixupKindInfo Infos[Mips::NumTargetFixupKinds]
23   // in MipsAsmBackend.cpp.
24   //
25   enum Fixups {
26     // Branch fixups resulting in R_MIPS_16.
27     fixup_Mips_16 = FirstTargetFixupKind,
28
29     // Pure 32 bit data fixup resulting in - R_MIPS_32.
30     fixup_Mips_32,
31
32     // Full 32 bit data relative data fixup resulting in - R_MIPS_REL32.
33     fixup_Mips_REL32,
34
35     // Jump 26 bit fixup resulting in - R_MIPS_26.
36     fixup_Mips_26,
37
38     // Pure upper 16 bit fixup resulting in - R_MIPS_HI16.
39     fixup_Mips_HI16,
40
41     // Pure lower 16 bit fixup resulting in - R_MIPS_LO16.
42     fixup_Mips_LO16,
43
44     // 16 bit fixup for GP offest resulting in - R_MIPS_GPREL16.
45     fixup_Mips_GPREL16,
46
47     // 16 bit literal fixup resulting in - R_MIPS_LITERAL.
48     fixup_Mips_LITERAL,
49
50     // Global symbol fixup resulting in - R_MIPS_GOT16.
51     fixup_Mips_GOT_Global,
52
53     // Local symbol fixup resulting in - R_MIPS_GOT16.
54     fixup_Mips_GOT_Local,
55
56     // PC relative branch fixup resulting in - R_MIPS_PC16.
57     fixup_Mips_PC16,
58
59     // resulting in - R_MIPS_CALL16.
60     fixup_Mips_CALL16,
61
62     // resulting in - R_MIPS_GPREL32.
63     fixup_Mips_GPREL32,
64
65     // resulting in - R_MIPS_SHIFT5.
66     fixup_Mips_SHIFT5,
67
68     // resulting in - R_MIPS_SHIFT6.
69     fixup_Mips_SHIFT6,
70
71     // Pure 64 bit data fixup resulting in - R_MIPS_64.
72     fixup_Mips_64,
73
74     // resulting in - R_MIPS_TLS_GD.
75     fixup_Mips_TLSGD,
76
77     // resulting in - R_MIPS_TLS_GOTTPREL.
78     fixup_Mips_GOTTPREL,
79
80     // resulting in - R_MIPS_TLS_TPREL_HI16.
81     fixup_Mips_TPREL_HI,
82
83     // resulting in - R_MIPS_TLS_TPREL_LO16.
84     fixup_Mips_TPREL_LO,
85
86     // resulting in - R_MIPS_TLS_LDM.
87     fixup_Mips_TLSLDM,
88
89     // resulting in - R_MIPS_TLS_DTPREL_HI16.
90     fixup_Mips_DTPREL_HI,
91
92     // resulting in - R_MIPS_TLS_DTPREL_LO16.
93     fixup_Mips_DTPREL_LO,
94
95     // PC relative branch fixup resulting in - R_MIPS_PC16
96     fixup_Mips_Branch_PCRel,
97
98     // Marker
99     LastTargetFixupKind,
100     NumTargetFixupKinds = LastTargetFixupKind - FirstTargetFixupKind
101   };
102 } // namespace Mips
103 } // namespace llvm
104
105
106 #endif // LLVM_Mips_MipsFIXUPKINDS_H