summary refs log tree commit diff stats
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)
downloadfocaccia-qemu-ba3fb2a735963cf3988ef9476d134a8418baa436.tar.gz
focaccia-qemu-ba3fb2a735963cf3988ef9476d134a8418baa436.zip
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;
 
 /**