x64: port some atomics to ISLE (#4212)

* x64: port `fence` to ISLE
* x64: port `atomic_load` to ISLE
* x64: port `atomic_store` to ISLE
This commit is contained in:
Andrew Brown
2022-06-02 14:13:10 -07:00
committed by GitHub
parent 44d1dee76e
commit 816aae6aca
7 changed files with 58 additions and 43 deletions

View File

@@ -988,6 +988,10 @@
(decl amode_offset (Amode u32) Amode)
(extern constructor amode_offset amode_offset)
;; Return a zero offset as an `Offset32`.
(decl zero_offset () Offset32)
(extern constructor zero_offset zero_offset)
;; Shift kinds.
(type ShiftKind extern
@@ -2866,6 +2870,12 @@
(rule (x64_xor_mem ty addr val)
(alu_rm ty (AluRmiROpcode.Xor) addr val))
;;;; Atomics ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(decl x64_mfence () SideEffectNoResult)
(rule (x64_mfence)
(SideEffectNoResult.Inst (MInst.Fence (FenceKind.MFence))))
;;;; Automatic conversions ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(convert Gpr InstOutput output_gpr)