mirror of https://github.com/xemu-project/xemu.git
ppc/ppc405: Introduce a store helper for SPR_40x_PID
The PID SPR of the 405 CPU contains the translation ID of the TLB which is a 8-bit field. Enforce the mask with a store helper. Cc: Christophe Leroy <christophe.leroy@c-s.fr> Reviewed-by: Richard Henderson <richard.henderson@linaro.org> Signed-off-by: Cédric Le Goater <clg@kaod.org> Message-Id: <20211222064025.1541490-8-clg@kaod.org> Signed-off-by: Cédric Le Goater <clg@kaod.org> Message-Id: <20220103063441.3424853-9-clg@kaod.org> Signed-off-by: Cédric Le Goater <clg@kaod.org>
This commit is contained in:
parent
c316203c1e
commit
dd69d140ce
|
@ -1454,7 +1454,7 @@ static void register_405_sprs(CPUPPCState *env)
|
|||
/* MMU */
|
||||
spr_register(env, SPR_40x_PID, "PID",
|
||||
SPR_NOACCESS, SPR_NOACCESS,
|
||||
&spr_read_generic, &spr_write_generic,
|
||||
&spr_read_generic, &spr_write_40x_pid,
|
||||
0x00000000);
|
||||
spr_register(env, SPR_4xx_CCR0, "CCR0",
|
||||
SPR_NOACCESS, SPR_NOACCESS,
|
||||
|
|
|
@ -89,6 +89,7 @@ void spr_write_40x_dbcr0(DisasContext *ctx, int sprn, int gprn);
|
|||
void spr_write_40x_sler(DisasContext *ctx, int sprn, int gprn);
|
||||
void spr_write_40x_tcr(DisasContext *ctx, int sprn, int gprn);
|
||||
void spr_write_40x_tsr(DisasContext *ctx, int sprn, int gprn);
|
||||
void spr_write_40x_pid(DisasContext *ctx, int sprn, int gprn);
|
||||
void spr_write_booke_tcr(DisasContext *ctx, int sprn, int gprn);
|
||||
void spr_write_booke_tsr(DisasContext *ctx, int sprn, int gprn);
|
||||
void spr_read_403_pbr(DisasContext *ctx, int gprn, int sprn);
|
||||
|
|
|
@ -890,6 +890,14 @@ void spr_write_40x_tsr(DisasContext *ctx, int sprn, int gprn)
|
|||
gen_helper_store_40x_tsr(cpu_env, cpu_gpr[gprn]);
|
||||
}
|
||||
|
||||
void spr_write_40x_pid(DisasContext *ctx, int sprn, int gprn)
|
||||
{
|
||||
TCGv t0 = tcg_temp_new();
|
||||
tcg_gen_andi_tl(t0, cpu_gpr[gprn], 0xFF);
|
||||
gen_store_spr(SPR_40x_PID, t0);
|
||||
tcg_temp_free(t0);
|
||||
}
|
||||
|
||||
void spr_write_booke_tcr(DisasContext *ctx, int sprn, int gprn)
|
||||
{
|
||||
gen_icount_io_start(ctx);
|
||||
|
|
Loading…
Reference in New Issue