qemu/tcg
Pierrick Bouvier b709da5d29 plugins: save value during memory accesses
Different code paths handle memory accesses:
- tcg generated code
- load/store helpers
- atomic helpers

This value is saved in cpu->neg.plugin_mem_value_{high,low}. Values are
written only for accessed word size (upper bits are not set).

Atomic operations are doing read/write at the same time, so we generate
two memory callbacks instead of one, to allow plugins to access distinct
values.

For now, we can have access only up to 128 bits, thus split this in two
64 bits words. When QEMU will support wider operations, we'll be able to
reconsider this.

Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
Signed-off-by: Pierrick Bouvier <pierrick.bouvier@linaro.org>
Message-Id: <20240724194708.1843704-2-pierrick.bouvier@linaro.org>
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Message-Id: <20240916085400.1046925-5-alex.bennee@linaro.org>
2024-09-19 15:58:01 +01:00
..
aarch64 tcg/aarch64: Support TCG_TARGET_HAS_tst_vec 2024-05-22 19:05:25 -07:00
arm tcg/arm: Support TCG_TARGET_HAS_tst_vec 2024-05-22 19:05:26 -07:00
i386 Revert "host/i386: assume presence of POPCNT" 2024-06-28 14:44:51 +02:00
loongarch64 tcg/loongarch64: Fix tcg_out_movi vs some pcrel pointers 2024-06-19 13:50:22 -07:00
mips tcg: Add TCGConst argument to tcg_target_const_match 2024-02-03 23:53:48 +00:00
ppc tcg/ppc: Sync tcg_out_test and constraints 2024-08-08 09:03:35 +10:00
riscv util/cpuinfo-riscv: Support host/cpuinfo.h for riscv 2024-07-03 10:24:12 -07:00
s390x tcg: Introduce TCG_TARGET_HAS_tst_vec 2024-05-22 19:05:21 -07:00
sparc64 tcg/sparc64: Support TCG_COND_TST{EQ,NE} 2024-02-03 23:53:49 +00:00
tci tcg/tci: Support TCG_COND_TST{EQ,NE} 2024-02-05 22:45:41 +00:00
debuginfo.c accel/tcg: Move perf and debuginfo support to tcg/ 2024-01-29 21:04:10 +10:00
meson.build meson: Drop the .fa library suffix 2024-07-03 18:41:26 +02:00
optimize.c tcg/optimize: Fix TCG_COND_TST* simplification of setcond2 2024-07-03 10:24:12 -07:00
perf.c accel/tcg: Move perf and debuginfo support to tcg/ 2024-01-29 21:04:10 +10:00
region.c tcg: Make the cleanup-on-error path unique 2024-01-23 13:22:46 +10:00
tcg-common.c tcg: Silent -Wmissing-field-initializers warning 2023-02-27 22:29:01 +01:00
tcg-internal.h tcg/optimize: Lower TCG_COND_TST{EQ,NE} if unsupported 2024-02-03 23:43:50 +00: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 write_aofs to GVecGen3i 2024-05-06 12:55:50 -07:00
tcg-op-ldst.c plugins: save value during memory accesses 2024-09-19 15:58:01 +01:00
tcg-op-vec.c tcg: Expand TCG_COND_TST* if not TCG_TARGET_HAS_tst_vec 2024-05-22 19:05:25 -07:00
tcg-op.c tcg: Remove INDEX_op_plugin_cb_{start,end} 2024-04-30 16:12:05 -07:00
tcg-pool.c.inc tcg: Introduce tcg_splitwx_to_{rx,rw} 2021-01-07 05:09:41 -10:00
tcg.c plugins: Merge alloc_tcg_plugin_context into plugin_gen_tb_start 2024-05-15 08:55:18 +02:00
tci.c tcg: Make tcg/helper-info.h self-contained 2024-04-30 16:12:05 -07:00