mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-23 03:02:36 +01:00
8144a0e6eb
GNU as documentation states that a `.thumb_func` directive implies `.thumb`, teach the asm parser to switch mode whenever it's encountered. On the other hand the labeled form, exclusive to Apple's toolchain, doesn't switch mode at all. Reviewed By: nickdesaulniers, peter.smith Differential Revision: https://reviews.llvm.org/D101975
32 lines
513 B
ArmAsm
32 lines
513 B
ArmAsm
@ 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
|
|
|
|
.arm
|
|
@ Ensure the nop is assembled in thumb mode, even though the baz symbol is
|
|
@ defined later.
|
|
.thumb_func
|
|
nop
|
|
@ CHECK: .code 16
|
|
@ CHECK-NEXT: nop
|
|
@ CHECK-LABEL: baz
|
|
baz:
|
|
bx lr
|