[PATCH] D101975: [AsmParser][ARM] Make .thumb_func imply .thumb
LemonBoy via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Thu May 6 02:28:43 PDT 2021
LemonBoy updated this revision to Diff 343331.
LemonBoy added a comment.
Herald added a subscriber: emaste.
Fix LLD test.
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D101975/new/
https://reviews.llvm.org/D101975
Files:
lld/test/ELF/arm-ldrlit-err.s
llvm/lib/Target/ARM/AsmParser/ARMAsmParser.cpp
llvm/test/MC/ARM/thumb_func-implies-thumb.s
Index: llvm/test/MC/ARM/thumb_func-implies-thumb.s
===================================================================
--- /dev/null
+++ llvm/test/MC/ARM/thumb_func-implies-thumb.s
@@ -0,0 +1,20 @@
+@ RUN: llvm-mc -triple=armv7-darwin- -show-encoding < %s | FileCheck %s
+.syntax unified
+
+.text
+
+.arm
+@ Ensure the plain form switches mode.
+.thumb_func
+@ CHECK: .code 16
+@ CHECK-LABEL: foo
+foo:
+ bx lr
+
+.arm
+@ Ensure the labeled form doesn't switch mode.
+.thumb_func bar
+@ CHECK-NOT: .code 16
+@ CHECK-LABEL: bar
+bar:
+ bx lr
Index: llvm/lib/Target/ARM/AsmParser/ARMAsmParser.cpp
===================================================================
--- llvm/lib/Target/ARM/AsmParser/ARMAsmParser.cpp
+++ llvm/lib/Target/ARM/AsmParser/ARMAsmParser.cpp
@@ -11167,6 +11167,12 @@
"unexpected token in '.thumb_func' directive"))
return true;
+ // .thumb_func implies .thumb
+ if (!isThumb())
+ SwitchMode();
+
+ getParser().getStreamer().emitAssemblerFlag(MCAF_Code16);
+
NextSymbolIsThumb = true;
return false;
}
Index: lld/test/ELF/arm-ldrlit-err.s
===================================================================
--- lld/test/ELF/arm-ldrlit-err.s
+++ lld/test/ELF/arm-ldrlit-err.s
@@ -8,6 +8,9 @@
bx lr
nop
nop
+ nop
+ nop
+ nop
.section .text.1, "ax", %progbits
.global _start
@@ -27,3 +30,4 @@
.balign 4
high:
bx lr
+ nop
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D101975.343331.patch
Type: text/x-patch
Size: 1406 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20210506/0a3e0d5c/attachment.bin>
More information about the llvm-commits
mailing list