]> CyberLeo.Net >> Repos - FreeBSD/releng/10.0.git/blob - contrib/llvm/lib/Target/AArch64/MCTargetDesc/AArch64FixupKinds.h
- Copy stable/10 (r259064) to releng/10.0 as part of the
[FreeBSD/releng/10.0.git] / contrib / llvm / lib / Target / AArch64 / MCTargetDesc / AArch64FixupKinds.h
1 //=- AArch64/AArch64FixupKinds.h - AArch64 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 // This file describes the LLVM fixups applied to MCInsts in the AArch64
11 // backend.
12 //
13 //===----------------------------------------------------------------------===//
14
15 #ifndef LLVM_AARCH64_AARCH64FIXUPKINDS_H
16 #define LLVM_AARCH64_AARCH64FIXUPKINDS_H
17
18 #include "llvm/MC/MCFixup.h"
19
20 namespace llvm {
21   namespace AArch64 {
22     enum Fixups {
23       fixup_a64_ld_prel = FirstTargetFixupKind,
24       fixup_a64_adr_prel,
25       fixup_a64_adr_prel_page,
26
27       fixup_a64_add_lo12,
28
29       fixup_a64_ldst8_lo12,
30       fixup_a64_ldst16_lo12,
31       fixup_a64_ldst32_lo12,
32       fixup_a64_ldst64_lo12,
33       fixup_a64_ldst128_lo12,
34
35       fixup_a64_tstbr,
36       fixup_a64_condbr,
37       fixup_a64_uncondbr,
38       fixup_a64_call,
39
40       fixup_a64_movw_uabs_g0,
41       fixup_a64_movw_uabs_g0_nc,
42       fixup_a64_movw_uabs_g1,
43       fixup_a64_movw_uabs_g1_nc,
44       fixup_a64_movw_uabs_g2,
45       fixup_a64_movw_uabs_g2_nc,
46       fixup_a64_movw_uabs_g3,
47
48       fixup_a64_movw_sabs_g0,
49       fixup_a64_movw_sabs_g1,
50       fixup_a64_movw_sabs_g2,
51
52       fixup_a64_adr_prel_got_page,
53       fixup_a64_ld64_got_lo12_nc,
54
55       // Produce offsets relative to the module's dynamic TLS area.
56       fixup_a64_movw_dtprel_g2,
57       fixup_a64_movw_dtprel_g1,
58       fixup_a64_movw_dtprel_g1_nc,
59       fixup_a64_movw_dtprel_g0,
60       fixup_a64_movw_dtprel_g0_nc,
61       fixup_a64_add_dtprel_hi12,
62       fixup_a64_add_dtprel_lo12,
63       fixup_a64_add_dtprel_lo12_nc,
64       fixup_a64_ldst8_dtprel_lo12,
65       fixup_a64_ldst8_dtprel_lo12_nc,
66       fixup_a64_ldst16_dtprel_lo12,
67       fixup_a64_ldst16_dtprel_lo12_nc,
68       fixup_a64_ldst32_dtprel_lo12,
69       fixup_a64_ldst32_dtprel_lo12_nc,
70       fixup_a64_ldst64_dtprel_lo12,
71       fixup_a64_ldst64_dtprel_lo12_nc,
72
73       // Produce the GOT entry containing a variable's address in TLS's
74       // initial-exec mode.
75       fixup_a64_movw_gottprel_g1,
76       fixup_a64_movw_gottprel_g0_nc,
77       fixup_a64_adr_gottprel_page,
78       fixup_a64_ld64_gottprel_lo12_nc,
79       fixup_a64_ld_gottprel_prel19,
80
81       // Produce offsets relative to the thread pointer: TPIDR_EL0.
82       fixup_a64_movw_tprel_g2,
83       fixup_a64_movw_tprel_g1,
84       fixup_a64_movw_tprel_g1_nc,
85       fixup_a64_movw_tprel_g0,
86       fixup_a64_movw_tprel_g0_nc,
87       fixup_a64_add_tprel_hi12,
88       fixup_a64_add_tprel_lo12,
89       fixup_a64_add_tprel_lo12_nc,
90       fixup_a64_ldst8_tprel_lo12,
91       fixup_a64_ldst8_tprel_lo12_nc,
92       fixup_a64_ldst16_tprel_lo12,
93       fixup_a64_ldst16_tprel_lo12_nc,
94       fixup_a64_ldst32_tprel_lo12,
95       fixup_a64_ldst32_tprel_lo12_nc,
96       fixup_a64_ldst64_tprel_lo12,
97       fixup_a64_ldst64_tprel_lo12_nc,
98
99       // Produce the special fixups used by the general-dynamic TLS model.
100       fixup_a64_tlsdesc_adr_page,
101       fixup_a64_tlsdesc_ld64_lo12_nc,
102       fixup_a64_tlsdesc_add_lo12_nc,
103       fixup_a64_tlsdesc_call,
104
105
106       // Marker
107       LastTargetFixupKind,
108       NumTargetFixupKinds = LastTargetFixupKind - FirstTargetFixupKind
109     };
110   }
111 }
112
113 #endif