diff options
author | Johan Tibell <johan.tibell@gmail.com> | 2014-07-23 13:12:10 +0200 |
---|---|---|
committer | Johan Tibell <johan.tibell@gmail.com> | 2014-07-23 21:03:03 +0200 |
commit | fc53ed5da1a2455b0da2f8ef3ec317e1a96ed83d (patch) | |
tree | 2e4a49bea45586334e51551a6392dd42b1800391 /compiler/nativeGen/X86/Instr.hs | |
parent | c11b35f5c5efe8f11039583c493e245bb6bcb33c (diff) | |
download | haskell-fc53ed5da1a2455b0da2f8ef3ec317e1a96ed83d.tar.gz |
Add missing memory fence to atomicWriteIntArray#
Diffstat (limited to 'compiler/nativeGen/X86/Instr.hs')
-rw-r--r-- | compiler/nativeGen/X86/Instr.hs | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/compiler/nativeGen/X86/Instr.hs b/compiler/nativeGen/X86/Instr.hs index 82e52df1e5..172ce93f50 100644 --- a/compiler/nativeGen/X86/Instr.hs +++ b/compiler/nativeGen/X86/Instr.hs @@ -330,6 +330,7 @@ data Instr | LOCK Instr -- lock prefix | XADD Size Operand Operand -- src (r), dst (r/m) | CMPXCHG Size Operand Operand -- src (r), dst (r/m), eax implicit + | MFENCE data PrefetchVariant = NTA | Lvl0 | Lvl1 | Lvl2 @@ -437,6 +438,7 @@ x86_regUsageOfInstr platform instr LOCK i -> x86_regUsageOfInstr platform i XADD _ src dst -> usageMM src dst CMPXCHG _ src dst -> usageRMM src dst (OpReg eax) + MFENCE -> noUsage _other -> panic "regUsage: unrecognised instr" where @@ -606,6 +608,7 @@ x86_patchRegsOfInstr instr env LOCK i -> LOCK (x86_patchRegsOfInstr i env) XADD sz src dst -> patch2 (XADD sz) src dst CMPXCHG sz src dst -> patch2 (CMPXCHG sz) src dst + MFENCE -> instr _other -> panic "patchRegs: unrecognised instr" |