ARMv7M vs. ARMv7E-M support.
authorJim Grosbach <grosbach@apple.com>
Fri, 1 Jul 2011 21:12:19 +0000 (21:12 +0000)
committerJim Grosbach <grosbach@apple.com>
Fri, 1 Jul 2011 21:12:19 +0000 (21:12 +0000)
commita7603982dbf9e240ecc7ed6eddcd1cdb868107ac
tree87a983d92fb76b9bfbd27279864c36283ec030bc
parent5b1b4489cf3a0f56f8be0673fc5cc380a32d277b
ARMv7M vs. ARMv7E-M support.

The DSP instructions in the Thumb2 instruction set are an optional extension
in the Cortex-M* archtitecture. When present, the implementation is considered
an "ARMv7E-M implementation," and when not, an "ARMv7-M implementation."

Add a subtarget feature hook for the v7e-m instructions and hook it up. The
cortex-m3 cpu is an example of a v7m implementation, while the cortex-m4 is
a v7e-m implementation.

rdar://9572992

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@134261 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Target/ARM/ARM.td
lib/Target/ARM/ARMISelLowering.cpp
lib/Target/ARM/ARMInstrInfo.td
lib/Target/ARM/ARMInstrThumb2.td
lib/Target/ARM/ARMSubtarget.cpp
lib/Target/ARM/ARMSubtarget.h
test/CodeGen/Thumb2/thumb2-mulhi.ll
test/CodeGen/Thumb2/thumb2-smla.ll
test/CodeGen/Thumb2/thumb2-smul.ll