Disallow YIELD and other allocated nop hints in pre-ARMv6 architectures.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@155983 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Richard Barton 2012-05-02 09:43:18 +00:00
parent a9a568a79d
commit 0a552d611e
5 changed files with 26 additions and 33 deletions

View File

@ -258,16 +258,20 @@ def tNOP : T1pI<(outs), (ins), NoItinerary, "nop", "", []>,
Requires<[IsThumb2]>;
def tYIELD : T1pI<(outs), (ins), NoItinerary, "yield", "", []>,
T1SystemEncoding<0x10>; // A8.6.410
T1SystemEncoding<0x10>, // A8.6.410
Requires<[IsThumb2]>;
def tWFE : T1pI<(outs), (ins), NoItinerary, "wfe", "", []>,
T1SystemEncoding<0x20>; // A8.6.408
T1SystemEncoding<0x20>, // A8.6.408
Requires<[IsThumb2]>;
def tWFI : T1pI<(outs), (ins), NoItinerary, "wfi", "", []>,
T1SystemEncoding<0x30>; // A8.6.409
T1SystemEncoding<0x30>, // A8.6.409
Requires<[IsThumb2]>;
def tSEV : T1pI<(outs), (ins), NoItinerary, "sev", "", []>,
T1SystemEncoding<0x40>; // A8.6.157
T1SystemEncoding<0x40>, // A8.6.157
Requires<[IsThumb2]>;
// The imm operand $val can be used by a debugger to store more information
// about the breakpoint.

View File

@ -635,13 +635,3 @@ _func:
@ CHECK: uxth r1, r4 @ encoding: [0xa1,0xb2]
@------------------------------------------------------------------------------
@ WFE/WFI/YIELD
@------------------------------------------------------------------------------
wfe
wfi
yield
@ CHECK: wfe @ encoding: [0x20,0xbf]
@ CHECK: wfi @ encoding: [0x30,0xbf]
@ CHECK: yield @ encoding: [0x10,0xbf]

View File

@ -138,3 +138,21 @@ error: invalid operand for instruction
@ CHECK-ERRORS: error: source register must be the same as destination
@ CHECK-ERRORS: add r2, sp, ip
@ CHECK-ERRORS: ^
@------------------------------------------------------------------------------
@ WFE/WFI/YIELD - are not supported pre v6T2
@------------------------------------------------------------------------------
wfe
wfi
yield
@ CHECK-ERRORS: error: instruction requires: thumb2
@ CHECK-ERRORS: wfe
@ CHECK-ERRORS: ^
@ CHECK-ERRORS: error: instruction requires: thumb2
@ CHECK-ERRORS: wfi
@ CHECK-ERRORS: ^
@ CHECK-ERRORS: error: instruction requires: thumb2
@ CHECK-ERRORS: yield
@ CHECK-ERRORS: ^

View File

@ -44,13 +44,6 @@
nop
@ CHECK: nop @ encoding: [0xc0,0x46]
wfe
wfi
yield
@ CHECK: wfe @ encoding: [0x20,0xbf]
@ CHECK: wfi @ encoding: [0x30,0xbf]
@ CHECK: yield @ encoding: [0x10,0xbf]
cpsie aif
@ CHECK: cpsie aif @ encoding: [0x67,0xb6]

View File

@ -516,15 +516,3 @@
0xd7 0xb2
0xa1 0xb2
#------------------------------------------------------------------------------
# WFE/WFI/YIELD
#------------------------------------------------------------------------------
# CHECK: wfe
# CHECK: wfi
# CHECK: yield
0x20 0xbf
0x30 0xbf
0x10 0xbf