[PATCH] D82692: [ARM] do not consider sp as deprecated for ldm/stm

Stefan Agner via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Fri Jun 26 16:48:19 PDT 2020


falstaff84 created this revision.
falstaff84 added reviewers: psmith, simon_tatham, efriedma.
Herald added subscribers: llvm-commits, danielkiss, hiraditya, kristof.beyls.
Herald added a project: LLVM.

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.


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D82692

Files:
  llvm/lib/Target/ARM/MCTargetDesc/ARMMCTargetDesc.cpp
  llvm/test/MC/ARM/arm-load-store-multiple-deprecated.s

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D82692.273863.patch
Type: text/x-patch
Size: 9786 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20200626/290c6f22/attachment.bin>


More information about the llvm-commits mailing list