qemu/tcg
Richard Henderson 37031fefc7 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>
2023-05-16 15:21:38 -07:00
..
aarch64 tcg/aarch64: Convert tcg_out_qemu_{ld,st}_slow_path 2023-05-11 09:53:41 +01:00
arm tcg/arm: Convert tcg_out_qemu_{ld,st}_slow_path 2023-05-11 09:53:41 +01:00
i386 tcg/i386: Set P_REXW in tcg_out_addi_ptr 2023-05-16 15:21:38 -07:00
loongarch64 tcg/loongarch64: Simplify constraints on qemu_ld/st 2023-05-11 09:53:41 +01:00
mips tcg/mips: Simplify constraints on qemu_ld/st 2023-05-11 09:53:41 +01:00
ppc tcg/ppc: Remove unused constraint J 2023-05-11 09:53:41 +01:00
riscv tcg/riscv: Simplify constraints on qemu_ld/st 2023-05-11 09:53:41 +01:00
s390x tcg/s390x: Simplify constraints on qemu_ld/st 2023-05-11 09:53:41 +01:00
sparc64 tcg/sparc64: Pass TCGType to tcg_out_qemu_{ld,st} 2023-05-05 17:21:03 +01:00
tci Document that -singlestep command line option is deprecated 2023-05-02 15:47:40 +01:00
meson.build
optimize.c tcg: Replace tcg_abort with g_assert_not_reached 2023-04-23 08:17:46 +01:00
region.c tcg: use QTree instead of GTree 2023-03-28 15:23:10 -07:00
tcg-common.c
tcg-internal.h tcg: Replace REG_P with arg_loc_reg_p 2023-05-05 17:21:03 +01:00
tcg-ldst.c.inc tcg: Move TCGLabelQemuLdst to tcg.c 2023-05-05 17:21:03 +01:00
tcg-op-gvec.c tcg: Add tcg_gen_gvec_rotrs 2023-05-02 13:05:45 -07:00
tcg-op-vec.c
tcg-op.c
tcg-pool.c.inc
tcg.c include/exec/memop: Add MO_ATOM_* 2023-05-16 15:21:38 -07:00
tci.c