aboutsummaryrefslogtreecommitdiff
path: root/include/exec
diff options
context:
space:
mode:
authorRichard Henderson <richard.henderson@linaro.org>2024-04-02 19:46:33 -1000
committerRichard Henderson <richard.henderson@linaro.org>2024-05-15 08:54:32 +0200
commitba3fb2a735963cf3988ef9476d134a8418baa436 (patch)
tree4bd315a692a8f8a12b575c19a598d247ed88f8df /include/exec
parentddfa9f11766c532209d4ce848c12761d28730338 (diff)
accel/tcg: Record mmio bytes during translation
This will be able to replace plugin_insn_append, and will be usable for disassembly. Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Diffstat (limited to 'include/exec')
-rw-r--r--include/exec/translator.h12
1 files changed, 12 insertions, 0 deletions
diff --git a/include/exec/translator.h b/include/exec/translator.h
index 348985c3a3..4a86907ecc 100644
--- a/include/exec/translator.h
+++ b/include/exec/translator.h
@@ -90,6 +90,18 @@ typedef struct DisasContextBase {
bool plugin_enabled;
struct TCGOp *insn_start;
void *host_addr[2];
+
+ /*
+ * Record insn data that we cannot read directly from host memory.
+ * There are only two reasons we cannot use host memory:
+ * (1) We are executing from I/O,
+ * (2) We are executing a synthetic instruction (s390x EX).
+ * In both cases we need record exactly one instruction,
+ * and thus the maximum amount of data we record is limited.
+ */
+ int record_start;
+ int record_len;
+ uint8_t record[32];
} DisasContextBase;
/**