From 7268c2a19bce2db72b90e3ea3b133482c3ff4e58 Mon Sep 17 00:00:00 2001 From: George Hotz Date: Wed, 27 Oct 2021 13:00:14 -0700 Subject: [PATCH] mips: support reading and writing of hi/lo regs --- qemu/target/mips/unicorn.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/qemu/target/mips/unicorn.c b/qemu/target/mips/unicorn.c index 00e1c26a..2f8ed5f9 100644 --- a/qemu/target/mips/unicorn.c +++ b/qemu/target/mips/unicorn.c @@ -77,6 +77,12 @@ static void reg_read(CPUMIPSState *env, unsigned int regid, void *value) switch (regid) { default: break; + case UC_MIPS_REG_HI: + *(mipsreg_t *)value = env->active_tc.HI[0]; + break; + case UC_MIPS_REG_LO: + *(mipsreg_t *)value = env->active_tc.LO[0]; + break; case UC_MIPS_REG_PC: *(mipsreg_t *)value = env->active_tc.PC; break; @@ -103,6 +109,12 @@ static void reg_write(CPUMIPSState *env, unsigned int regid, const void *value) switch (regid) { default: break; + case UC_MIPS_REG_HI: + env->active_tc.HI[0] = *(mipsreg_t *)value; + break; + case UC_MIPS_REG_LO: + env->active_tc.LO[0] = *(mipsreg_t *)value; + break; case UC_MIPS_REG_PC: env->active_tc.PC = *(mipsreg_t *)value; break;