target/mips: Advance pc after semihosting exception

Delay generating the exception until after we know the
insn length, and record that length in env->error_code.

Fixes: 8ec7e3c53d ("target/mips: Use an exception for semihosting")
Resolves: https://gitlab.com/qemu-project/qemu/-/issues/1126
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
This commit is contained in:
Richard Henderson 2022-07-29 19:17:02 -07:00
parent 430a388ef4
commit d44971e725
6 changed files with 16 additions and 11 deletions

View file

@ -51,6 +51,10 @@ typedef struct DisasContext {
int gi;
} DisasContext;
#define DISAS_STOP DISAS_TARGET_0
#define DISAS_EXIT DISAS_TARGET_1
#define DISAS_SEMIHOST DISAS_TARGET_2
/* MIPS major opcodes */
#define MASK_OP_MAJOR(op) (op & (0x3F << 26))