Syscall

References:

  • target/mips/translate.c

    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;
}

More

Created Sep 16, 2020 // Last Updated Sep 16, 2020

If you could revise
the fundmental principles of
computer system design
to improve security...

... what would you change?