mirror of
https://github.com/RPCSX/llvm.git
synced 2025-02-13 17:20:28 +00:00
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:
parent
a9a568a79d
commit
0a552d611e
@ -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.
|
||||
|
@ -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]
|
||||
|
@ -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: ^
|
||||
|
||||
|
@ -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]
|
||||
|
||||
|
@ -516,15 +516,3 @@
|
||||
|
||||
0xd7 0xb2
|
||||
0xa1 0xb2
|
||||
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
# WFE/WFI/YIELD
|
||||
#------------------------------------------------------------------------------
|
||||
# CHECK: wfe
|
||||
# CHECK: wfi
|
||||
# CHECK: yield
|
||||
|
||||
0x20 0xbf
|
||||
0x30 0xbf
|
||||
0x10 0xbf
|
||||
|
Loading…
x
Reference in New Issue
Block a user