References:
mips_tr_translate_insn()
--> decode_opc() // !(ctx->hflags & MIPS_HFLAG_M16)
--> decode_opc_special()
--> generate_exception_end(ctx, EXCP_SYSCALL)
generate_exception_end()
-> generate_exception_err()
// target/mips/translate.c
// generate_exception_end(ctx, EXCP_SYSCALL) --> generate_exception_err(ctx, excp, 0)
static inline void generate_exception_err(DisasContext *ctx, MipsExcp excp,
int err)
{
TCGv_i32 texcp = tcg_const_i32(excp);
TCGv_i32 terr = tcg_const_i32(err);
save_cpu_state(ctx, 1);
gen_helper_raise_exception_err(cpu_env, texcp, terr);
tcg_temp_free_i32(terr);
tcg_temp_free_i32(texcp);
ctx->base.is_jmp = DISAS_NORETURN;
}
If you could revise
the fundmental principles of
computer system design
to improve security...
... what would you change?