Skip to content

Commit 196c321

Browse files
committed
ARM: update build attributes for ABI r2.09
Update names for the names as per the current ABI errata. Mark deprecated tags as such. llvm-svn: 199576
1 parent 278a9f4 commit 196c321

File tree

5 files changed

+28
-17
lines changed

5 files changed

+28
-17
lines changed

llvm/include/llvm/Support/ARMBuildAttributes.h

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -33,8 +33,6 @@ enum SpecialAttr {
3333
enum AttrType {
3434
// Rest correspond to ELF/.ARM.attributes
3535
File = 1,
36-
Section = 2,
37-
Symbol = 3,
3836
CPU_raw_name = 4,
3937
CPU_name = 5,
4038
CPU_arch = 6,
@@ -55,8 +53,8 @@ enum AttrType {
5553
ABI_FP_exceptions = 21,
5654
ABI_FP_user_exceptions = 22,
5755
ABI_FP_number_model = 23,
58-
ABI_align8_needed = 24,
59-
ABI_align8_preserved = 25,
56+
ABI_align_needed = 24,
57+
ABI_align_preserved = 25,
6058
ABI_enum_size = 26,
6159
ABI_HardFP_use = 27,
6260
ABI_VFP_args = 28,
@@ -67,14 +65,20 @@ enum AttrType {
6765
CPU_unaligned_access = 34,
6866
FP_HP_extension = 36,
6967
ABI_FP_16bit_format = 38,
70-
MPextension_use = 42, // was 70, 2.08 ABI
68+
MPextension_use = 42, // recoded from 70 (ABI r2.08)
7169
DIV_use = 44,
72-
nodefaults = 64,
7370
also_compatible_with = 65,
74-
T2EE_use = 66,
7571
conformance = 67,
7672
Virtualization_use = 68,
77-
MPextension_use_old = 70
73+
74+
/// Legacy Tags
75+
Section = 2, // deprecated (ABI r2.09)
76+
Symbol = 3, // deprecated (ABI r2.09)
77+
ABI_align8_needed = 24, // renamed to ABI_align_needed (ABI r2.09)
78+
ABI_align8_preserved = 25, // renamed to ABI_align_preserved (ABI r2.09)
79+
nodefaults = 64, // deprecated (ABI r2.09)
80+
T2EE_use = 66, // deprecated (ABI r2.09)
81+
MPextension_use_old = 70 // recoded to MPextension_use (ABI r2.08)
7882
};
7983

8084
StringRef AttrTypeAsString(unsigned Attr, bool HasTagPrefix = true);

llvm/lib/Support/ARMBuildAttrs.cpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -40,8 +40,8 @@ const struct {
4040
{ ARMBuildAttrs::ABI_FP_exceptions, "Tag_ABI_FP_exceptions" },
4141
{ ARMBuildAttrs::ABI_FP_user_exceptions, "Tag_ABI_FP_user_exceptions" },
4242
{ ARMBuildAttrs::ABI_FP_number_model, "Tag_ABI_FP_number_model" },
43-
{ ARMBuildAttrs::ABI_align8_needed, "Tag_ABI_align8_needed" },
44-
{ ARMBuildAttrs::ABI_align8_preserved, "Tag_ABI_align8_preserved" },
43+
{ ARMBuildAttrs::ABI_align_needed, "Tag_ABI_align_needed" },
44+
{ ARMBuildAttrs::ABI_align_preserved, "Tag_ABI_align_preserved" },
4545
{ ARMBuildAttrs::ABI_enum_size, "Tag_ABI_enum_size" },
4646
{ ARMBuildAttrs::ABI_HardFP_use, "Tag_ABI_HardFP_use" },
4747
{ ARMBuildAttrs::ABI_VFP_args, "Tag_ABI_VFP_args" },
@@ -62,9 +62,9 @@ const struct {
6262

6363
// Legacy Names
6464
{ ARMBuildAttrs::FP_arch, "Tag_VFP_arch" },
65-
{ ARMBuildAttrs::ABI_align8_needed, "Tag_ABI_align_needed" },
66-
{ ARMBuildAttrs::ABI_align8_preserved, "Tag_ABI_align_preserved" },
6765
{ ARMBuildAttrs::FP_HP_extension, "Tag_VFP_HP_extension" },
66+
{ ARMBuildAttrs::ABI_align_needed, "Tag_ABI_align8_needed" },
67+
{ ARMBuildAttrs::ABI_align_preserved, "Tag_ABI_align8_preserved" },
6868
};
6969
}
7070

llvm/lib/Target/ARM/ARMAsmPrinter.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -699,8 +699,8 @@ void ARMAsmPrinter::emitAttributes() {
699699

700700
// FIXME: add more flags to ARMBuildAttributes.h
701701
// 8-bytes alignment stuff.
702-
ATS.emitAttribute(ARMBuildAttrs::ABI_align8_needed, 1);
703-
ATS.emitAttribute(ARMBuildAttrs::ABI_align8_preserved, 1);
702+
ATS.emitAttribute(ARMBuildAttrs::ABI_align_needed, 1);
703+
ATS.emitAttribute(ARMBuildAttrs::ABI_align_preserved, 1);
704704

705705
// ABI_HardFP_use attribute to indicate single precision FP.
706706
if (Subtarget->isFPOnlySP())

llvm/test/CodeGen/ARM/build-attributes.ll

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -170,7 +170,7 @@
170170
; CORTEX-A7-NOFPU: .eabi_attribute 24, 1
171171
; CORTEX-A7-FPUV4: .eabi_attribute 24, 1
172172

173-
; Tag_ABI_align8_preserved
173+
; Tag_ABI_align_preserved
174174
; CORTEX-A7-CHECK: .eabi_attribute 25, 1
175175
; CORTEX-A7-NOFPU: .eabi_attribute 25, 1
176176
; CORTEX-A7-FPUV4: .eabi_attribute 25, 1

llvm/test/MC/ARM/directive-eabi_attribute-2.s

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -43,9 +43,9 @@
4343
@ CHECK: .eabi_attribute 22, 1
4444
.eabi_attribute Tag_ABI_FP_number_model, 3
4545
@ CHECK: .eabi_attribute 23, 3
46-
.eabi_attribute Tag_ABI_align8_needed, 1
46+
.eabi_attribute Tag_ABI_align_needed, 1
4747
@ CHECK: .eabi_attribute 24, 1
48-
.eabi_attribute Tag_ABI_align8_preserved, 2
48+
.eabi_attribute Tag_ABI_align_preserved, 2
4949
@ CHECK: .eabi_attribute 25, 2
5050
.eabi_attribute Tag_ABI_enum_size, 3
5151
@ CHECK: .eabi_attribute 26, 3
@@ -82,6 +82,13 @@
8282
.eabi_attribute Tag_Virtualization_use, 0
8383
@ CHECK: .eabi_attribute 68, 0
8484

85+
@ ===--- Compatibility Checks ---===
86+
87+
.eabi_attribute Tag_ABI_align8_needed, 1
88+
@ CHECK: .eabi_attribute 24, 1
89+
.eabi_attribute Tag_ABI_align8_preserved, 2
90+
@ CHECK: .eabi_attribute 25, 2
91+
8592
@ ===--- GNU AS Compatibility Checks ---===
8693

8794
.eabi_attribute 2 * 2 + 1, "cortex-a9"

0 commit comments

Comments
 (0)