qemu/include/exec
Alex Bennée cfd405eae6 accel/tcg: allow plugin instrumentation to be disable via cflags
When icount is enabled and we recompile an MMIO access we end up
double counting the instruction execution. To avoid this we introduce
the CF_MEMI cflag which only allows memory instrumentation for the
next TB (which won't yet have been counted). As this is part of the
hashed compile flags we will only execute the generated TB while
coming out of a cpu_io_recompile.

While we are at it delete the old TODO. We might as well keep the
translation handy as it's likely you will repeatedly hit it on each
MMIO access.

Reported-by: Aaron Lindsay <aaron@os.amperecomputing.com>
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Tested-by: Aaron Lindsay <aaron@os.amperecomputing.com>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Message-Id: <20210213130325.14781-21-alex.bennee@linaro.org>
2021-02-18 08:19:23 +00:00
..
user nomaintainer: Fix Lesser GPL version number 2020-11-15 17:04:40 +01:00
address-spaces.h
confidential-guest-support.h confidential guest support: Introduce cgs "ready" flag 2021-02-08 16:57:38 +11:00
cpu_ldst.h exec: Rename guest_{addr,range}_valid to *_untagged 2021-02-16 11:04:53 +00:00
cpu-all.h linux-user/aarch64: Implement PROT_MTE 2021-02-16 13:08:46 +00:00
cpu-common.h vl: extract softmmu/globals.c 2020-12-15 12:51:50 -05:00
cpu-defs.h exec/cpu-defs: Remove TCG backends dependency 2021-02-05 10:24:14 -10:00
cputlb.h overall/alpha tcg cpus|hppa: Fix Lesser GPL version number 2020-11-15 16:43:54 +01:00
exec-all.h accel/tcg: allow plugin instrumentation to be disable via cflags 2021-02-18 08:19:23 +00:00
gdbstub.h gdbstub: Remove unused gdb_get_float32() and gdb_get_float64() 2021-02-15 09:38:47 +00:00
gen-icount.h tcg: Use tcg_constant_i32 with icount expander 2021-01-13 08:39:08 -10:00
helper-gen.h tcg: Add support for a helper with 7 arguments 2020-02-11 16:29:16 -08:00
helper-head.h tcg: Add support for a helper with 7 arguments 2020-02-11 16:29:16 -08:00
helper-proto.h tcg: Use memset for large vector byte replication 2021-01-04 06:32:58 -10:00
helper-tcg.h tcg: Add support for a helper with 7 arguments 2020-02-11 16:29:16 -08:00
hwaddr.h move MemMapEntry 2020-09-30 11:29:56 +02:00
ioport.h nomaintainer: Fix Lesser GPL version number 2020-11-15 17:04:40 +01:00
log.h tcg: Introduce tcg_splitwx_to_{rx,rw} 2021-01-07 05:09:41 -10:00
memattrs.h cputlb: Byte swap memory transaction attribute 2019-09-03 08:30:39 -07:00
memop.h cputlb: Replace size and endian operands for MemOp 2019-09-03 08:30:39 -07:00
memory_ldst_cached.h.inc fuzz: ignore address_space_map is_write flag 2021-02-08 14:43:54 +01:00
memory_ldst_phys.h.inc nomaintainer: Fix Lesser GPL version number 2020-11-15 17:04:40 +01:00
memory_ldst.h.inc nomaintainer: Fix Lesser GPL version number 2020-11-15 17:04:40 +01:00
memory-internal.h cputlb: Merge and move memory_notdirty_write_{prepare,complete} 2019-09-25 10:44:29 -07:00
memory.h memory: alloc RAM from file at offset 2021-02-09 20:53:56 +00:00
plugin-gen.h accel/tcg: allow plugin instrumentation to be disable via cflags 2021-02-18 08:19:23 +00:00
poison.h poison: remove GNUC check 2020-12-15 12:53:13 -05:00
ram_addr.h memory: alloc RAM from file at offset 2021-02-09 20:53:56 +00:00
ramblock.h ram_addr: Split RAMBlock definition 2020-01-29 11:28:59 +01:00
ramlist.h qemu/atomic.h: rename atomic_ to qatomic_ 2020-09-23 16:07:44 +01:00
softmmu-semi.h include: Make headers more self-contained 2019-08-16 13:31:51 +02:00
target_page.h migration: Make savevm.c target independent 2017-05-18 19:21:00 +02:00
tb-context.h exec: Move TranslationBlock typedef to qemu/typedefs.h 2021-02-18 08:19:08 +00:00
tb-hash.h overall/alpha tcg cpus|hppa: Fix Lesser GPL version number 2020-11-15 16:43:54 +01:00
tb-lookup.h qemu/atomic.h: rename atomic_ to qatomic_ 2020-09-23 16:07:44 +01:00
translate-all.h remove TCG includes from common code 2021-01-02 21:03:36 +01:00
translator.h tcg: Make DisasContextBase.tb const 2021-01-07 05:09:41 -10:00