diff options
Diffstat (limited to 'llvm/include/llvm/Target/GenericOpcodes.td')
-rw-r--r-- | llvm/include/llvm/Target/GenericOpcodes.td | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/llvm/include/llvm/Target/GenericOpcodes.td b/llvm/include/llvm/Target/GenericOpcodes.td index 489b569d990..76e672a37af 100644 --- a/llvm/include/llvm/Target/GenericOpcodes.td +++ b/llvm/include/llvm/Target/GenericOpcodes.td @@ -482,6 +482,28 @@ def G_STORE : Instruction { let mayStore = 1; } +// Generic atomic load. Expects a MachineMemOperand in addition to explicit +// operands. Technically, we could have handled this as a G_LOAD, however we +// decided to keep it separate on the basis that atomic loads tend to have +// very different handling to non-atomic loads. +def G_ATOMIC_LOAD : Instruction { + let OutOperandList = (outs type0:$dst); + let InOperandList = (ins ptype1:$addr); + let hasSideEffects = 0; + let mayLoad = 1; +} + +// Generic atomic store. Expects a MachineMemOperand in addition to explicit +// operands. Technically, we could have handled this as a G_STORE, however we +// decided to keep it separate on the basis that atomic stores tend to have +// very different handling to non-atomic stores. +def G_ATOMIC_STORE : Instruction { + let OutOperandList = (outs); + let InOperandList = (ins type0:$src, ptype1:$addr); + let hasSideEffects = 0; + let mayStore = 1; +} + // Generic atomic cmpxchg with internal success check. Expects a // MachineMemOperand in addition to explicit operands. def G_ATOMIC_CMPXCHG_WITH_SUCCESS : Instruction { |