forked from OSchip/llvm-project
[Thumb2] BXJ should be undefined for v7M, v8A
The Thumb2 BXJ instruction (Branch and Exchange Jazelle) is not defined for v7M or v8A. It is defined for all other Thumb2-supporting architectures (v6T2, v7A and v7R). llvm-svn: 218445
This commit is contained in:
parent
bc4ce3a224
commit
3256b26ef2
|
@ -3632,7 +3632,7 @@ def t2IT : Thumb2XI<(outs), (ins it_pred:$cc, it_mask:$mask),
|
|||
// Branch and Exchange Jazelle -- for disassembly only
|
||||
// Rm = Inst{19-16}
|
||||
def t2BXJ : T2I<(outs), (ins rGPR:$func), NoItinerary, "bxj", "\t$func", []>,
|
||||
Sched<[WriteBr]> {
|
||||
Sched<[WriteBr]>, Requires<[IsThumb2, IsNotMClass, PreV8]> {
|
||||
bits<4> func;
|
||||
let Inst{31-27} = 0b11110;
|
||||
let Inst{26} = 0;
|
||||
|
|
|
@ -0,0 +1,10 @@
|
|||
@ RUN: llvm-mc -triple=thumbv6t2--none-eabi -show-encoding < %s | FileCheck %s
|
||||
@ RUN: llvm-mc -triple=thumbv7a--none-eabi -show-encoding < %s | FileCheck %s
|
||||
@ RUN: llvm-mc -triple=thumbv7r--none-eabi -show-encoding < %s | FileCheck %s
|
||||
@ RUN: not llvm-mc -triple=thumbv7m--none-eabi -show-encoding < %s 2>&1 | FileCheck %s --check-prefix=UNDEF
|
||||
@ RUN: not llvm-mc -triple=thumbv8a--none-eabi -show-encoding < %s 2>&1 | FileCheck %s --check-prefix=UNDEF
|
||||
|
||||
bxj r2
|
||||
|
||||
@ CHECK: bxj r2 @ encoding: [0xc2,0xf3,0x00,0x8f]
|
||||
@ UNDEF: error: instruction requires: arm-mode
|
Loading…
Reference in New Issue