diff options
| author | Jian Cai <caij2003@gmail.com> | 2019-10-25 11:05:31 -0700 |
|---|---|---|
| committer | Jian Cai <jiancai@google.com> | 2019-10-25 13:27:35 -0700 |
| commit | 03de2f84fc4acf06c719cd007b5459c9d4d0a20c (patch) | |
| tree | 9ae669511d65280028113bb8246c9a329212ac52 /llvm | |
| parent | 171cf5302f43776b07615e32b2ffd6ddf4e5d890 (diff) | |
| download | bcm5719-llvm-03de2f84fc4acf06c719cd007b5459c9d4d0a20c.tar.gz bcm5719-llvm-03de2f84fc4acf06c719cd007b5459c9d4d0a20c.zip | |
[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
Diffstat (limited to 'llvm')
| -rw-r--r-- | llvm/include/llvm/MC/MCAsmInfo.h | 2 | ||||
| -rw-r--r-- | llvm/lib/Target/ARM/MCTargetDesc/ARMMCAsmInfo.cpp | 4 | ||||
| -rw-r--r-- | llvm/test/MC/AsmParser/gas-compl-sun-elf.s | 13 |
3 files changed, 18 insertions, 1 deletions
diff --git a/llvm/include/llvm/MC/MCAsmInfo.h b/llvm/include/llvm/MC/MCAsmInfo.h index 3261c483e0d..ce24ffb9744 100644 --- a/llvm/include/llvm/MC/MCAsmInfo.h +++ b/llvm/include/llvm/MC/MCAsmInfo.h @@ -215,7 +215,7 @@ protected: 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 d30d15df3d0..03505c0876a 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 00000000000..7934109d343 --- /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" |

