@@ -228,19 +228,20 @@ static void bl_gen_li(const CPUMIPSState *env, void **p,
}
}
-static void bl_gen_dli(void **p, bl_reg rt, uint64_t imm)
+static void bl_gen_dli(const CPUMIPSState *env, void **p,
+ bl_reg rt, uint64_t imm)
{
- bl_gen_li(&MIPS_CPU(first_cpu)->env, p, rt, extract64(imm, 32, 32));
- bl_gen_dsll(&MIPS_CPU(first_cpu)->env, p, rt, rt, 16);
+ bl_gen_li(env, p, rt, extract64(imm, 32, 32));
+ bl_gen_dsll(env, p, rt, rt, 16);
bl_gen_ori(p, rt, rt, extract64(imm, 16, 16));
- bl_gen_dsll(&MIPS_CPU(first_cpu)->env, p, rt, rt, 16);
+ bl_gen_dsll(env, p, rt, rt, 16);
bl_gen_ori(p, rt, rt, extract64(imm, 0, 16));
}
static void bl_gen_load_ulong(void **p, bl_reg rt, target_ulong imm)
{
if (bootcpu_supports_isa(&MIPS_CPU(first_cpu)->env, ISA_MIPS3)) {
- bl_gen_dli(p, rt, imm); /* 64bit */
+ bl_gen_dli(&MIPS_CPU(first_cpu)->env, p, rt, imm); /* 64bit */
} else {
bl_gen_li(&MIPS_CPU(first_cpu)->env, p, rt, imm); /* 32bit */
}
@@ -301,7 +302,7 @@ void bl_gen_write_u32(void **p, target_ulong addr, uint32_t val)
void bl_gen_write_u64(void **p, target_ulong addr, uint64_t val)
{
- bl_gen_dli(p, BL_REG_K0, val);
+ bl_gen_dli(&MIPS_CPU(first_cpu)->env, p, BL_REG_K0, val);
bl_gen_load_ulong(p, BL_REG_K1, addr);
bl_gen_sd(&MIPS_CPU(first_cpu)->env, p, BL_REG_K0, BL_REG_K1, 0x0);
}
Propagate the target specific CPU env to the locally declared bl_gen_dli() function. Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org> --- hw/mips/bootloader.c | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-)