llvm.org GIT mirror llvm / 2ca352d
[ARM] Add support for FP_HP_extension build attribute git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@194470 91177308-0d34-0410-b5e6-96231b3b80d8 Bradley Smith 6 years ago
4 changed file(s) with 31 addition(s) and 7 deletion(s). Raw diff Collapse all Expand all
702702
703703 // FIXME: Should we signal R9 usage?
704704
705 if (Subtarget->hasFP16())
706 ATS.emitAttribute(ARMBuildAttrs::FP_HP_extension, ARMBuildAttrs::AllowHPFP);
707
705708 if (Subtarget->hasMPExtension())
706709 ATS.emitAttribute(ARMBuildAttrs::MPextension_use, ARMBuildAttrs::AllowMP);
707710
5858 ABI_FP_optimization_goals = 31,
5959 compatibility = 32,
6060 CPU_unaligned_access = 34,
61 VFP_HP_extension = 36,
61 FP_HP_extension = 36,
6262 ABI_FP_16bit_format = 38,
6363 MPextension_use = 42, // was 70, 2.08 ABI
6464 DIV_use = 44,
145145 BaseAAPCS = 0,
146146 HardFPAAPCS = 1,
147147
148 // Tag_FP_HP_extension, (=36), uleb128
149 AllowHPFP = 1, // Allow use of Half Precision FP
150
148151 // Tag_MPextension_use, (=42), uleb128
149152 AllowMP = 1, // Allow use of MP extensions
150153
2828 ; V6: .eabi_attribute 25, 1
2929 ; V6-NOT: .eabi_attribute 27
3030 ; V6-NOT: .eabi_attribute 28
31 ; V6-NOT: .eabi_attribute 36
3132 ; V6-NOT: .eabi_attribute 42
3233 ; V6-NOT: .eabi_attribute 68
3334
3940 ; V6M: .eabi_attribute 25, 1
4041 ; V6M-NOT: .eabi_attribute 27
4142 ; V6M-NOT: .eabi_attribute 28
43 ; V6M-NOT: .eabi_attribute 36
4244 ; V6M-NOT: .eabi_attribute 42
4345 ; V6M-NOT: .eabi_attribute 68
4446
5456 ; ARM1156T2F-S: .eabi_attribute 25, 1
5557 ; ARM1156T2F-S-NOT: .eabi_attribute 27
5658 ; ARM1156T2F-S-NOT: .eabi_attribute 28
59 ; ARM1156T2F-S-NOT: .eabi_attribute 36
5760 ; ARM1156T2F-S-NOT: .eabi_attribute 42
5861 ; ARM1156T2F-S-NOT: .eabi_attribute 68
5962
6568 ; V7M: .eabi_attribute 25, 1
6669 ; V7M-NOT: .eabi_attribute 27
6770 ; V7M-NOT: .eabi_attribute 28
71 ; V7M-NOT: .eabi_attribute 36
6872 ; V7M-NOT: .eabi_attribute 42
6973 ; V7M: .eabi_attribute 44, 0
7074 ; V7M-NOT: .eabi_attribute 68
7882 ; V7: .eabi_attribute 25, 1
7983 ; V7-NOT: .eabi_attribute 27
8084 ; V7-NOT: .eabi_attribute 28
85 ; V7-NOT: .eabi_attribute 36
8186 ; V7-NOT: .eabi_attribute 42
8287 ; V7-NOT: .eabi_attribute 68
8388
119124 ; CORTEX-A9-SOFT: .eabi_attribute 25, 1
120125 ; CORTEX-A9-SOFT-NOT: .eabi_attribute 27
121126 ; CORTEX-A9-SOFT-NOT: .eabi_attribute 28
127 ; CORTEX-A9-SOFT: .eabi_attribute 36, 1
122128 ; CORTEX-A9-SOFT-NOT: .eabi_attribute 42
123129 ; CORTEX-A9-SOFT: .eabi_attribute 68, 1
124130
135141 ; CORTEX-A9-HARD: .eabi_attribute 25, 1
136142 ; CORTEX-A9-HARD-NOT: .eabi_attribute 27
137143 ; CORTEX-A9-HARD: .eabi_attribute 28, 1
144 ; CORTEX-A9-HARD: .eabi_attribute 36, 1
138145 ; CORTEX-A9-HARD-NOT: .eabi_attribute 42
139146 ; CORTEX-A9-HARD: .eabi_attribute 68, 1
140147
151158 ; CORTEX-A9-MP: .eabi_attribute 25, 1
152159 ; CORTEX-A9-NOT: .eabi_attribute 27
153160 ; CORTEX-A9-NOT: .eabi_attribute 28
161 ; CORTEX-A9-MP: .eabi_attribute 36, 1
154162 ; CORTEX-A9-MP: .eabi_attribute 42, 1
155163 ; CORTEX-A9-MP: .eabi_attribute 68, 1
156164
165173 ; CORTEX-A15: .eabi_attribute 23, 3
166174 ; CORTEX-A15: .eabi_attribute 24, 1
167175 ; CORTEX-A15: .eabi_attribute 25, 1
176 ; CORTEX-A15-NOT: .eabi_attribute 27
177 ; CORTEX-A15-NOT: .eabi_attribute 28
178 ; CORTEX-A15: .eabi_attribute 36, 1
168179 ; CORTEX-A15: .eabi_attribute 42, 1
169180 ; CORTEX-A15: .eabi_attribute 44, 2
170 ; CORTEX-A15-NOT: .eabi_attribute 27
171 ; CORTEX-A15-NOT: .eabi_attribute 28
172181 ; CORTEX-A15: .eabi_attribute 68, 3
173182
174183 ; CORTEX-M0: .cpu cortex-m0
180189 ; CORTEX-M0: .eabi_attribute 25, 1
181190 ; CORTEX-M0-NOT: .eabi_attribute 27
182191 ; CORTEX-M0-NOT: .eabi_attribute 28
192 ; CORTEX-M0-NOT: .eabi_attribute 36
183193 ; CORTEX-M0-NOT: .eabi_attribute 42
184194 ; CORTEX-M0-NOT: .eabi_attribute 68
185195
196206 ; CORTEX-M4-SOFT: .eabi_attribute 25, 1
197207 ; CORTEX-M4-SOFT: .eabi_attribute 27, 1
198208 ; CORTEX-M4-SOFT-NOT: .eabi_attribute 28
209 ; CORTEX-M4-SOFT: .eabi_attribute 36, 1
199210 ; CORTEX-M4-SOFT-NOT: .eabi_attribute 42
200211 ; CORTEX-M4-SOFT: .eabi_attribute 44, 0
201212 ; CORTEX-M4-SOFT-NOT: .eabi_attribute 68
213224 ; CORTEX-M4-HARD: .eabi_attribute 25, 1
214225 ; CORTEX-M4-HARD: .eabi_attribute 27, 1
215226 ; CORTEX-M4-HARD: .eabi_attribute 28, 1
227 ; CORTEX-M4-HARD: .eabi_attribute 36, 1
216228 ; CORTEX-M4-HARD-NOT: .eabi_attribute 42
217229 ; CORTEX-M4-HARD: .eabi_attribute 44, 0
218230 ; CORTEX-M4-HRAD-NOT: .eabi_attribute 68
230242 ; CORTEX-R5: .eabi_attribute 25, 1
231243 ; CORTEX-R5: .eabi_attribute 27, 1
232244 ; CORTEX-R5-NOT: .eabi_attribute 28
245 ; CORTEX-R5-NOT: .eabi_attribute 36
233246 ; CORTEX-R5-NOT: .eabi_attribute 42
234247 ; CORTEX-R5: .eabi_attribute 44, 2
235248 ; CORTEX-R5-NOT: .eabi_attribute 68
245258 ; CORTEX-A53: .eabi_attribute 25, 1
246259 ; CORTEX-A53-NOT: .eabi_attribute 27
247260 ; CORTEX-A53-NOT: .eabi_attribute 28
261 ; CORTEX-A53: .eabi_attribute 36, 1
248262 ; CORTEX-A53: .eabi_attribute 42, 1
249263 ; CORTEX-A53: .eabi_attribute 44, 2
250264 ; CORTEX-A53: .eabi_attribute 68, 3
260274 ; CORTEX-A57: .eabi_attribute 25, 1
261275 ; CORTEX-A57-NOT: .eabi_attribute 27
262276 ; CORTEX-A57-NOT: .eabi_attribute 28
277 ; CORTEX-A57: .eabi_attribute 36, 1
263278 ; CORTEX-A57: .eabi_attribute 42, 1
264279 ; CORTEX-A57: .eabi_attribute 44, 2
265280 ; CORTEX-A57: .eabi_attribute 68, 3
4444 // Tag_ABI_VFP_args (=28)
4545 .eabi_attribute 28, 1
4646
47 // Tag_FP_HP_extension (=36)
48 .eabi_attribute 36, 1
49
4750 // Tag_MPextension_use (=42)
4851 .eabi_attribute 42, 1
4952
6770 // CHECK-NEXT: ]
6871 // CHECK-NEXT: Address: 0x0
6972 // CHECK-NEXT: Offset: 0x34
70 // CHECK-NEXT: Size: 68
73 // CHECK-NEXT: Size: 70
7174 // CHECK-NEXT: Link: 0
7275 // CHECK-NEXT: Info: 0
7376 // CHECK-NEXT: AddressAlignment: 1
7477 // CHECK-NEXT: EntrySize: 0
7578 // CHECK-NEXT: SectionData (
76 // CHECK-NEXT: 0000: 41430000 00616561 62690001 39000000
79 // CHECK-NEXT: 0000: 41450000 00616561 62690001 3B000000
7780 // CHECK-NEXT: 0010: 05434F52 5445582D 41380006 0A074108
7881 // CHECK-NEXT: 0020: 0109020A 030C0214 01150117 01180119
79 // CHECK-NEXT: 0030: 011B001C 012A012C 0244036E A0018101
80 // CHECK-NEXT: 0040: 01FA0101
82 // CHECK-NEXT: 0030: 011B001C 0124012A 012C0244 036EA001
83 // CHECK-NEXT: 0040: 810101FA 0101
8184 // CHECK-NEXT: )