summaryrefslogtreecommitdiff
path: root/backend/src/backend/gen8_context.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'backend/src/backend/gen8_context.cpp')
-rw-r--r--backend/src/backend/gen8_context.cpp11
1 files changed, 11 insertions, 0 deletions
diff --git a/backend/src/backend/gen8_context.cpp b/backend/src/backend/gen8_context.cpp
index 40825681..aea87df2 100644
--- a/backend/src/backend/gen8_context.cpp
+++ b/backend/src/backend/gen8_context.cpp
@@ -1029,6 +1029,17 @@ namespace gbe
p->UNTYPED_WRITEA64(addr, elemNum*2);
}
+ void Gen8Context::emitAtomicA64Instruction(const SelectionInstruction &insn)
+ {
+ const GenRegister src = ra->genReg(insn.src(0));
+ const GenRegister dst = ra->genReg(insn.dst(0));
+ const uint32_t function = insn.extra.function;
+ unsigned srcNum = insn.extra.elem;
+ const GenRegister bti = ra->genReg(insn.src(srcNum));
+ GBE_ASSERT(bti.value.ud == 0xff);
+ p->ATOMICA64(dst, function, src, bti, srcNum);
+ }
+
void Gen8Context::emitPackLongInstruction(const SelectionInstruction &insn) {
const GenRegister src = ra->genReg(insn.src(0));
const GenRegister dst = ra->genReg(insn.dst(0));