OSDN Git Service

Fix BXJ is undefined in AArch32.
authorCharlie Turner <charlie.turner@arm.com>
Wed, 15 Apr 2015 17:28:23 +0000 (17:28 +0000)
committerCharlie Turner <charlie.turner@arm.com>
Wed, 15 Apr 2015 17:28:23 +0000 (17:28 +0000)
commitfdb3720f58fbeb599c5146317415d76d1bf3f2ee
treefcc3442686b97b39bbae774df7a361fb3381d790
parent11df480f67ca7042cf7b7b4d4a43745ab270779b
Fix BXJ is undefined in AArch32.

BXJ was incorrectly said to be unsupported in ARMv8-A. It is not
supported in the A64 instruction set, but it is supported in the T32
and A32 instruction sets, because it's listed as an instruction in the
ARM ARM section F7.1.28.

Using SP as an operand to BXJ changed from UNPREDICTABLE to
PREDICTABLE in v8-A. This patch reflects that update as well.

This was found by MCHammer.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@235024 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Target/ARM/ARMInstrThumb2.td
lib/Target/ARM/AsmParser/ARMAsmParser.cpp
test/MC/ARM/thumb2-bxj-v8.s [new file with mode: 0644]
test/MC/ARM/thumb2-bxj.s