summaryrefslogtreecommitdiff
path: root/compiler
diff options
context:
space:
mode:
authorBodigrim <andrew.lelechenko@gmail.com>2023-04-01 20:08:38 +0100
committerMarge Bot <ben+marge-bot@smart-cactus.org>2023-04-02 19:00:09 -0400
commit43ebd5dcdb7ff65b6afccbdee22d2c27f9df6b1c (patch)
tree93caa8db000ee058592992c79951ca4bad7e6e01 /compiler
parentf60f6110c1d08cb1885dce1984d5051de03dce8e (diff)
downloadhaskell-43ebd5dcdb7ff65b6afccbdee22d2c27f9df6b1c.tar.gz
cmm: implement parsing of MO_AtomicRMW from hand-written CMM files
Fixes #23206
Diffstat (limited to 'compiler')
-rw-r--r--compiler/GHC/Cmm/Parser.y6
1 files changed, 6 insertions, 0 deletions
diff --git a/compiler/GHC/Cmm/Parser.y b/compiler/GHC/Cmm/Parser.y
index 6ba2d9df71..29870dc647 100644
--- a/compiler/GHC/Cmm/Parser.y
+++ b/compiler/GHC/Cmm/Parser.y
@@ -1137,6 +1137,12 @@ callishMachOps platform = listToUFM $
, allWidths "load_seqcst" (\w -> MO_AtomicRead w MemOrderSeqCst)
, allWidths "store_release" (\w -> MO_AtomicWrite w MemOrderRelease)
, allWidths "store_seqcst" (\w -> MO_AtomicWrite w MemOrderSeqCst)
+ , allWidths "fetch_add" (\w -> MO_AtomicRMW w AMO_Add)
+ , allWidths "fetch_sub" (\w -> MO_AtomicRMW w AMO_Sub)
+ , allWidths "fetch_and" (\w -> MO_AtomicRMW w AMO_And)
+ , allWidths "fetch_nand" (\w -> MO_AtomicRMW w AMO_Nand)
+ , allWidths "fetch_or" (\w -> MO_AtomicRMW w AMO_Or)
+ , allWidths "fetch_xor" (\w -> MO_AtomicRMW w AMO_Xor)
]
where
allWidths