mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-25 04:02:41 +01:00
Really control isel of barrier instructions with cpu feature.
llvm-svn: 110787
This commit is contained in:
parent
e5bab36c75
commit
e67c4c3723
@ -2371,7 +2371,7 @@ def MOVCCi : AI1<0b1101, (outs GPR:$dst),
|
|||||||
// memory barriers protect the atomic sequences
|
// memory barriers protect the atomic sequences
|
||||||
let hasSideEffects = 1 in {
|
let hasSideEffects = 1 in {
|
||||||
def DMBsy : AInoP<(outs), (ins), Pseudo, NoItinerary, "dmb", "",
|
def DMBsy : AInoP<(outs), (ins), Pseudo, NoItinerary, "dmb", "",
|
||||||
[(ARMMemBarrier)]>, Requires<[IsARM, HasV7]> {
|
[(ARMMemBarrier)]>, Requires<[IsARM, HasDB]> {
|
||||||
let Inst{31-4} = 0xf57ff05;
|
let Inst{31-4} = 0xf57ff05;
|
||||||
// FIXME: add support for options other than a full system DMB
|
// FIXME: add support for options other than a full system DMB
|
||||||
// See DMB disassembly-only variants below.
|
// See DMB disassembly-only variants below.
|
||||||
@ -2379,7 +2379,7 @@ def DMBsy : AInoP<(outs), (ins), Pseudo, NoItinerary, "dmb", "",
|
|||||||
}
|
}
|
||||||
|
|
||||||
def DSBsy : AInoP<(outs), (ins), Pseudo, NoItinerary, "dsb", "",
|
def DSBsy : AInoP<(outs), (ins), Pseudo, NoItinerary, "dsb", "",
|
||||||
[(ARMSyncBarrier)]>, Requires<[IsARM, HasV7]> {
|
[(ARMSyncBarrier)]>, Requires<[IsARM, HasDB]> {
|
||||||
let Inst{31-4} = 0xf57ff04;
|
let Inst{31-4} = 0xf57ff04;
|
||||||
// FIXME: add support for options other than a full system DSB
|
// FIXME: add support for options other than a full system DSB
|
||||||
// See DSB disassembly-only variants below.
|
// See DSB disassembly-only variants below.
|
||||||
|
@ -2230,14 +2230,14 @@ def t2MOVCCror : T2I_movcc_sh<0b11, (outs rGPR:$dst),
|
|||||||
// memory barriers protect the atomic sequences
|
// memory barriers protect the atomic sequences
|
||||||
let hasSideEffects = 1 in {
|
let hasSideEffects = 1 in {
|
||||||
def t2DMBsy : AInoP<(outs), (ins), ThumbFrm, NoItinerary, "dmb", "",
|
def t2DMBsy : AInoP<(outs), (ins), ThumbFrm, NoItinerary, "dmb", "",
|
||||||
[(ARMMemBarrier)]>, Requires<[HasDB]> {
|
[(ARMMemBarrier)]>, Requires<[IsThumb, HasDB]> {
|
||||||
let Inst{31-4} = 0xF3BF8F5;
|
let Inst{31-4} = 0xF3BF8F5;
|
||||||
// FIXME: add support for options other than a full system DMB
|
// FIXME: add support for options other than a full system DMB
|
||||||
let Inst{3-0} = 0b1111;
|
let Inst{3-0} = 0b1111;
|
||||||
}
|
}
|
||||||
|
|
||||||
def t2DSBsy : AInoP<(outs), (ins), ThumbFrm, NoItinerary, "dsb", "",
|
def t2DSBsy : AInoP<(outs), (ins), ThumbFrm, NoItinerary, "dsb", "",
|
||||||
[(ARMSyncBarrier)]>, Requires<[HasDB]> {
|
[(ARMSyncBarrier)]>, Requires<[IsThumb, HasDB]> {
|
||||||
let Inst{31-4} = 0xF3BF8F4;
|
let Inst{31-4} = 0xF3BF8F4;
|
||||||
// FIXME: add support for options other than a full system DSB
|
// FIXME: add support for options other than a full system DSB
|
||||||
let Inst{3-0} = 0b1111;
|
let Inst{3-0} = 0b1111;
|
||||||
|
Loading…
Reference in New Issue
Block a user