[llvm] 03de2f8 - [ARM] Uses "Sun Style" syntax for section switching
Jian Cai via llvm-commits
llvm-commits at lists.llvm.org
Fri Oct 25 13:31:56 PDT 2019
Author: Jian Cai
Date: 2019-10-25T13:27:35-07:00
New Revision: 03de2f84fc4acf06c719cd007b5459c9d4d0a20c
URL: https://github.com/llvm/llvm-project/commit/03de2f84fc4acf06c719cd007b5459c9d4d0a20c
DIFF: https://github.com/llvm/llvm-project/commit/03de2f84fc4acf06c719cd007b5459c9d4d0a20c.diff
LOG: [ARM] Uses "Sun Style" syntax for section switching
Summary:
Support "Sun Style" syntax for section switching ("#alloc,#write" etc).
https://bugs.llvm.org/show_bug.cgi?id=43759
Reviewers: peter.smith, eli.friedman, kristof.beyls, t.p.northover
Reviewed By: peter.smith
Subscribers: MaskRay, llozano, manojgupta, nickdesaulniers, kristof.beyls, hiraditya, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D69296
Added:
llvm/test/MC/AsmParser/gas-compl-sun-elf.s
Modified:
llvm/include/llvm/MC/MCAsmInfo.h
llvm/lib/Target/ARM/MCTargetDesc/ARMMCAsmInfo.cpp
Removed:
################################################################################
diff --git a/llvm/include/llvm/MC/MCAsmInfo.h b/llvm/include/llvm/MC/MCAsmInfo.h
index 3261c483e0d8..ce24ffb9744d 100644
--- a/llvm/include/llvm/MC/MCAsmInfo.h
+++ b/llvm/include/llvm/MC/MCAsmInfo.h
@@ -215,7 +215,7 @@ class MCAsmInfo {
const char *TPRel64Directive = nullptr;
/// This is true if this target uses "Sun Style" syntax for section switching
- /// ("#alloc,#write" etc) instead of the normal ELF syntax (,"a,w") in
+ /// ("#alloc,#write" etc) alongside the normal ELF syntax (,"a,w") in
/// .section directives. Defaults to false.
bool SunStyleELFSectionSwitchSyntax = false;
diff --git a/llvm/lib/Target/ARM/MCTargetDesc/ARMMCAsmInfo.cpp b/llvm/lib/Target/ARM/MCTargetDesc/ARMMCAsmInfo.cpp
index d30d15df3d00..03505c0876aa 100644
--- a/llvm/lib/Target/ARM/MCTargetDesc/ARMMCAsmInfo.cpp
+++ b/llvm/lib/Target/ARM/MCTargetDesc/ARMMCAsmInfo.cpp
@@ -75,6 +75,10 @@ ARMELFMCAsmInfo::ARMELFMCAsmInfo(const Triple &TheTriple) {
UseParensForSymbolVariant = true;
UseIntegratedAssembler = true;
+
+ // The GNU assembler supports Sun style section switching for Arm targets, and
+ // it is used in projects like the Linux kernel.
+ SunStyleELFSectionSwitchSyntax = true;
}
void ARMELFMCAsmInfo::setUseIntegratedAssembler(bool Value) {
diff --git a/llvm/test/MC/AsmParser/gas-compl-sun-elf.s b/llvm/test/MC/AsmParser/gas-compl-sun-elf.s
new file mode 100644
index 000000000000..7934109d3432
--- /dev/null
+++ b/llvm/test/MC/AsmParser/gas-compl-sun-elf.s
@@ -0,0 +1,13 @@
+@ RUN: llvm-mc -filetype=obj -triple arm-linux-gnu %s -o - | llvm-readelf --sections | FileCheck %s
+
+@ CHECK: .f1 PROGBITS 00000000 000034 000000 00 A 0 0 1
+.section ".f1", #alloc
+
+@ CHECK: .f2 PROGBITS 00000000 000034 000000 00 W 0 0 1
+.section ".f2", #write
+
+@ CHECK: .f3 PROGBITS 00000000 000034 000000 00 A 0 0 1
+.section ".f3", "a"
+
+@ CHECK: .f4 PROGBITS 00000000 000034 000000 00 W 0 0 1
+.section ".f4", "w"
More information about the llvm-commits
mailing list