OSDN Git Service

ARM: further improve deprecated diagnosis (LDM)
authorSaleem Abdulrasool <compnerd@compnerd.org>
Sat, 20 Dec 2014 20:25:36 +0000 (20:25 +0000)
committerSaleem Abdulrasool <compnerd@compnerd.org>
Sat, 20 Dec 2014 20:25:36 +0000 (20:25 +0000)
commitfc317b6e7be055eeade0588ae0a0aa09d0324647
treed4ab265272cf673635e0ce45dd4e9425a80031a6
parent992d4bb278573449b29007175358fd82938a0ca8
ARM: further improve deprecated diagnosis (LDM)

The ARM ARM states:
  LDM/LDMIA/LDMFD:
    The SP can be in the list. However, ARM deprecates using these instructions
    with SP in the list.

    ARM deprecates using these instructions with both the LR and the PC in the
    list.

  LDMDA/LDMFA/LDMDB/LDMEA/LDMIB/LDMED:
    The SP can be in the list. However, instructions that include the SP in the
    list are deprecated.

    Instructions that include both the LR and the PC in the list are deprecated.

  POP:
    The SP can only be in the list before ARMv7. ARM deprecates any use of ARM
    instructions that include the SP, and the value of the SP after such an
    instruction is UNKNOWN.

    ARM deprecates the use of this instruction with both the LR and the PC in
    the list.

Attempt to diagnose use of deprecated forms of these instructions.  This mirrors
the previous changes to diagnose use of the deprecated forms of STM in ARM mode.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@224682 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Target/ARM/ARMInstrInfo.td
lib/Target/ARM/MCTargetDesc/ARMMCTargetDesc.cpp
test/MC/ARM/arm-load-store-multiple-deprecated.s [moved from test/MC/ARM/arm-store-deprecated.s with 61% similarity]