ppc: Fix sign extension issue in mtmsr(d) emulation
Signed-off-by: Michael Neuling <mikey@neuling.org> Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org> Reviewed-by: David Gibson <david@gibson.dropbear.id.au> Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
This commit is contained in:
parent
f9ef0527ff
commit
c409bc5daf
@ -4381,7 +4381,7 @@ static void gen_mtmsrd(DisasContext *ctx)
|
||||
/* Special form that does not need any synchronisation */
|
||||
TCGv t0 = tcg_temp_new();
|
||||
tcg_gen_andi_tl(t0, cpu_gpr[rS(ctx->opcode)], (1 << MSR_RI) | (1 << MSR_EE));
|
||||
tcg_gen_andi_tl(cpu_msr, cpu_msr, ~((1 << MSR_RI) | (1 << MSR_EE)));
|
||||
tcg_gen_andi_tl(cpu_msr, cpu_msr, ~(target_ulong)((1 << MSR_RI) | (1 << MSR_EE)));
|
||||
tcg_gen_or_tl(cpu_msr, cpu_msr, t0);
|
||||
tcg_temp_free(t0);
|
||||
} else {
|
||||
@ -4412,7 +4412,7 @@ static void gen_mtmsr(DisasContext *ctx)
|
||||
/* Special form that does not need any synchronisation */
|
||||
TCGv t0 = tcg_temp_new();
|
||||
tcg_gen_andi_tl(t0, cpu_gpr[rS(ctx->opcode)], (1 << MSR_RI) | (1 << MSR_EE));
|
||||
tcg_gen_andi_tl(cpu_msr, cpu_msr, ~((1 << MSR_RI) | (1 << MSR_EE)));
|
||||
tcg_gen_andi_tl(cpu_msr, cpu_msr, ~(target_ulong)((1 << MSR_RI) | (1 << MSR_EE)));
|
||||
tcg_gen_or_tl(cpu_msr, cpu_msr, t0);
|
||||
tcg_temp_free(t0);
|
||||
} else {
|
||||
|
Loading…
Reference in New Issue
Block a user