[llvm] [WebAssembly] MC support for acquire-release atomics (PR #183656)

Derek Schuff via llvm-commits llvm-commits at lists.llvm.org
Mon Mar 2 13:55:06 PST 2026


================
@@ -58,6 +65,55 @@ MCCodeEmitter *llvm::createWebAssemblyMCCodeEmitter(const MCInstrInfo &MCII,
   return new WebAssemblyMCCodeEmitter(MCII, Ctx);
 }
 
+uint8_t WebAssemblyMCCodeEmitter::getEncodedMemOrder(uint8_t Order,
+                                                     unsigned Opcode) const {
+  if (Order == wasm::WASM_MEM_ORDER_ACQ_REL) {
+    StringRef Name = MCII.getName(Opcode);
+    if (Name.contains("RMW") || Name.contains("CMPXCHG"))
+      return wasm::WASM_MEM_ORDER_RMW_ACQ_REL;
+  }
+  return Order;
+}
+
+void WebAssemblyMCCodeEmitter::encodeMemArg(const MCInst &MI, unsigned I,
----------------
dschuff wrote:

Yeah, makes sense. When we add multimemory it would go here too; basically it's everything other than the offset. not sure what's the best name.

https://github.com/llvm/llvm-project/pull/183656


More information about the llvm-commits mailing list