mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-01-06 20:32:19 +00:00
Fix the assembler strings for a couple of atomic instructions. Doesn't really matter much in practice, but it's a bit cleaner.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139563 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
2d539691a1
commit
f73c881f4a
@ -713,7 +713,7 @@ def LCMPXCHG32 : I<0xB1, MRMDestMem, (outs), (ins i32mem:$ptr, GR32:$swap),
|
|||||||
let Defs = [RAX, EFLAGS], Uses = [RAX], isCodeGenOnly = 1 in {
|
let Defs = [RAX, EFLAGS], Uses = [RAX], isCodeGenOnly = 1 in {
|
||||||
def LCMPXCHG64 : RI<0xB1, MRMDestMem, (outs), (ins i64mem:$ptr, GR64:$swap),
|
def LCMPXCHG64 : RI<0xB1, MRMDestMem, (outs), (ins i64mem:$ptr, GR64:$swap),
|
||||||
"lock\n\t"
|
"lock\n\t"
|
||||||
"cmpxchgq\t$swap,$ptr",
|
"cmpxchg{q}\t{$swap, $ptr|$ptr, $swap}",
|
||||||
[(X86cas addr:$ptr, GR64:$swap, 8)]>, TB, LOCK;
|
[(X86cas addr:$ptr, GR64:$swap, 8)]>, TB, LOCK;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -736,7 +736,7 @@ def LXADD32 : I<0xC1, MRMSrcMem, (outs GR32:$dst), (ins GR32:$val, i32mem:$ptr),
|
|||||||
TB, LOCK;
|
TB, LOCK;
|
||||||
def LXADD64 : RI<0xC1, MRMSrcMem, (outs GR64:$dst), (ins GR64:$val,i64mem:$ptr),
|
def LXADD64 : RI<0xC1, MRMSrcMem, (outs GR64:$dst), (ins GR64:$val,i64mem:$ptr),
|
||||||
"lock\n\t"
|
"lock\n\t"
|
||||||
"xadd\t$val, $ptr",
|
"xadd{q}\t{$val, $ptr|$ptr, $val}",
|
||||||
[(set GR64:$dst, (atomic_load_add_64 addr:$ptr, GR64:$val))]>,
|
[(set GR64:$dst, (atomic_load_add_64 addr:$ptr, GR64:$val))]>,
|
||||||
TB, LOCK;
|
TB, LOCK;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user