Home
last modified time | relevance | path

Searched hist:"37031 fefc777a715320f86fc35ee3dd82d9d945e" (Results 1 – 2 of 2) sorted by relevance

/qemu/include/exec/
H A Dmemop.h37031fefc777a715320f86fc35ee3dd82d9d945e Fri Oct 21 11:24:40 UTC 2022 Richard Henderson <richard.henderson@linaro.org> include/exec/memop: Add MO_ATOM_*

This field may be used to describe the precise atomicity requirements
of the guest, which may then be used to constrain the methods by which
it may be emulated by the host.

For instance, the AArch64 LDP (32-bit) instruction changes semantics
with ARMv8.4 LSE2, from

MO_64 | MO_ATOM_IFALIGN_PAIR
(64-bits, single-copy atomic only on 4 byte units,
nonatomic if not aligned by 4),

to

MO_64 | MO_ATOM_WITHIN16
(64-bits, single-copy atomic within a 16 byte block)

The former may be implemented with two 4 byte loads, or a single 8 byte
load if that happens to be efficient on the host. The latter may not
be implemented with two 4 byte loads and may also require a helper when
misaligned.

Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
/qemu/tcg/
H A Dtcg.c37031fefc777a715320f86fc35ee3dd82d9d945e Fri Oct 21 11:24:40 UTC 2022 Richard Henderson <richard.henderson@linaro.org> include/exec/memop: Add MO_ATOM_*

This field may be used to describe the precise atomicity requirements
of the guest, which may then be used to constrain the methods by which
it may be emulated by the host.

For instance, the AArch64 LDP (32-bit) instruction changes semantics
with ARMv8.4 LSE2, from

MO_64 | MO_ATOM_IFALIGN_PAIR
(64-bits, single-copy atomic only on 4 byte units,
nonatomic if not aligned by 4),

to

MO_64 | MO_ATOM_WITHIN16
(64-bits, single-copy atomic within a 16 byte block)

The former may be implemented with two 4 byte loads, or a single 8 byte
load if that happens to be efficient on the host. The latter may not
be implemented with two 4 byte loads and may also require a helper when
misaligned.

Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>