diff options
Diffstat (limited to 'llvm/lib/Target/Sparc/SparcInstrInfo.td')
-rw-r--r-- | llvm/lib/Target/Sparc/SparcInstrInfo.td | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/llvm/lib/Target/Sparc/SparcInstrInfo.td b/llvm/lib/Target/Sparc/SparcInstrInfo.td index 73dbdc4f443e..f26f4a1c1a84 100644 --- a/llvm/lib/Target/Sparc/SparcInstrInfo.td +++ b/llvm/lib/Target/Sparc/SparcInstrInfo.td @@ -1676,7 +1676,10 @@ def : Pat<(store (i32 0), ADDRri:$dst), (STri ADDRri:$dst, (i32 G0))>; // store bar for all atomic_fence in V8. let Predicates = [HasNoV9] in - def : Pat<(atomic_fence imm, imm), (STBAR)>; + def : Pat<(atomic_fence timm, timm), (STBAR)>; + +let Predicates = [HasV9] in + def : Pat<(atomic_fence timm, timm), (MEMBARi 0xf)>; // atomic_load addr -> load addr def : Pat<(i32 (atomic_load_8 ADDRrr:$src)), (LDUBrr ADDRrr:$src)>; |