diff options
author | Olivier Nicole <olivier@chnik.fr> | 2022-01-24 13:35:15 +0100 |
---|---|---|
committer | Olivier Nicole <olivier@chnik.fr> | 2022-02-01 15:27:54 +0100 |
commit | 9154d97f587b24a5e53fafdd2ee711cc4997c8a1 (patch) | |
tree | b857b5dae6e732980cc1dacf71bcd9b12da1228d /asmcomp/amd64 | |
parent | 8db757e4712b2488bd89d454e37dbc6ba350e28c (diff) | |
download | ocaml-9154d97f587b24a5e53fafdd2ee711cc4997c8a1.tar.gz |
Introduce atomic loads in Cmm and Mach IRs
Diffstat (limited to 'asmcomp/amd64')
-rw-r--r-- | asmcomp/amd64/emit.mlp | 22 |
1 files changed, 11 insertions, 11 deletions
diff --git a/asmcomp/amd64/emit.mlp b/asmcomp/amd64/emit.mlp index ef768b11d8..b7208c1ff4 100644 --- a/asmcomp/amd64/emit.mlp +++ b/asmcomp/amd64/emit.mlp @@ -574,27 +574,27 @@ let emit_instr env fallthrough i = if n <> 0 then cfi_adjust_cfa_offset n; env.stack_offset <- env.stack_offset + n - | Lop(Iload(chunk, addr, _mut)) -> + | Lop(Iload { memory_chunk; addressing_mode; _ }) -> let dest = res i 0 in - begin match chunk with + begin match memory_chunk with | Word_int | Word_val -> - I.mov (addressing addr QWORD i 0) dest + I.mov (addressing addressing_mode QWORD i 0) dest | Byte_unsigned -> - I.movzx (addressing addr BYTE i 0) dest + I.movzx (addressing addressing_mode BYTE i 0) dest | Byte_signed -> - I.movsx (addressing addr BYTE i 0) dest + I.movsx (addressing addressing_mode BYTE i 0) dest | Sixteen_unsigned -> - I.movzx (addressing addr WORD i 0) dest + I.movzx (addressing addressing_mode WORD i 0) dest | Sixteen_signed -> - I.movsx (addressing addr WORD i 0) dest; + I.movsx (addressing addressing_mode WORD i 0) dest; | Thirtytwo_unsigned -> - I.mov (addressing addr DWORD i 0) (res32 i 0) + I.mov (addressing addressing_mode DWORD i 0) (res32 i 0) | Thirtytwo_signed -> - I.movsxd (addressing addr DWORD i 0) dest + I.movsxd (addressing addressing_mode DWORD i 0) dest | Single -> - I.cvtss2sd (addressing addr REAL4 i 0) dest + I.cvtss2sd (addressing addressing_mode REAL4 i 0) dest | Double -> - I.movsd (addressing addr REAL8 i 0) dest + I.movsd (addressing addressing_mode REAL8 i 0) dest end | Lop(Istore(chunk, addr, _)) -> begin match chunk with |