mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-25 20:23:11 +01:00
821541ceec
Early versions of the ARMv7 reference manuals considered the sp register as a deprecated register for ldm/stm familiy of instructions. However, later versions such as ARM DDI 0406C.d added a note to the Appendix: D9.3 Use of the SP as a general-purpose register Most ARM instructions, unlike Thumb instructions, provide exactly the same access to the SP as to R0-R12. This means that it is possible to use the SP as a general-purpose register. Earlier issues of this manual deprecated the use of SP in an ARM instruction, in any way that is deprecated, not permitted, or not possible in the corresponding Thumb instruction. However, user feedback indicates a number of cases where these instructions are useful. Therefore, ARM no longer deprecates these instruction uses. Also Armv8 manuals no longer consider SP as deprecated register for ldm/ stm A32 instructions. Furthermore, GNU as also does not print a deprecated warning when using SP with those instructions. Drop deprecation warning for pop/ldm/push/stm instructions. Patch by: Stefan Agner. Differential Revision: https://reviews.llvm.org/D82692
44 lines
1.2 KiB
ArmAsm
44 lines
1.2 KiB
ArmAsm
// REQUIRES: asserts
|
|
// RUN: llvm-mc < %s -triple=armv4t-linux-gnueabi -filetype=obj -o %t.o -no-deprecated-warn -stats 2>&1 | FileCheck %s
|
|
// RUN: llvm-mc < %s -triple=armv4t-linux-gnueabi -filetype=obj -o %t.o -stats 2>&1 | FileCheck %s
|
|
|
|
.text
|
|
.syntax unified
|
|
.eabi_attribute 67, "2.09" @ Tag_conformance
|
|
.cpu arm7tdmi
|
|
.eabi_attribute 6, 2 @ Tag_CPU_arch
|
|
.eabi_attribute 8, 1 @ Tag_ARM_ISA_use
|
|
.eabi_attribute 17, 1 @ Tag_ABI_PCS_GOT_use
|
|
.eabi_attribute 20, 1 @ Tag_ABI_FP_denormal
|
|
.eabi_attribute 21, 1 @ Tag_ABI_FP_exceptions
|
|
.eabi_attribute 23, 3 @ Tag_ABI_FP_number_model
|
|
.eabi_attribute 34, 0 @ Tag_CPU_unaligned_access
|
|
.eabi_attribute 24, 1 @ Tag_ABI_align_needed
|
|
.eabi_attribute 25, 1 @ Tag_ABI_align_preserved
|
|
.eabi_attribute 38, 1 @ Tag_ABI_FP_16bit_format
|
|
.eabi_attribute 18, 4 @ Tag_ABI_PCS_wchar_t
|
|
.eabi_attribute 26, 2 @ Tag_ABI_enum_size
|
|
.eabi_attribute 14, 0 @ Tag_ABI_PCS_R9_use
|
|
.file "t.c"
|
|
.globl foo
|
|
.p2align 2
|
|
.type foo,%function
|
|
foo: @ @foo
|
|
.fnstart
|
|
@ %bb.0: @ %entry
|
|
mov r0, #0
|
|
bx lr
|
|
stmia r4!, {r12-r14}
|
|
.Lfunc_end0:
|
|
.Ltmp0:
|
|
.size foo, .Ltmp0-foo
|
|
.cantunwind
|
|
.fnend
|
|
|
|
|
|
|
|
// CHECK: Statistic
|
|
// CHECK-NOT: warning
|
|
|
|
// WARN: warning
|