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>
This commit is contained in:
Richard Henderson 2024-04-02 19:46:33 -10:00
parent ddfa9f1176
commit ba3fb2a735
2 changed files with 53 additions and 0 deletions

View file

@ -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;
/**