From 657a6c3e256545297849aa56bbb9daf46375f9d8 Mon Sep 17 00:00:00 2001 From: mothran Date: Sat, 12 Sep 2015 10:29:35 -0700 Subject: [PATCH] modified the sparc reg get/set functions to use the current reg window ptr --- qemu/target-sparc/unicorn.c | 8 ++++---- qemu/target-sparc/unicorn64.c | 8 ++++---- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/qemu/target-sparc/unicorn.c b/qemu/target-sparc/unicorn.c index 19e3ab0e..f070d07d 100644 --- a/qemu/target-sparc/unicorn.c +++ b/qemu/target-sparc/unicorn.c @@ -57,10 +57,10 @@ int sparc_reg_read(struct uc_struct *uc, unsigned int regid, void *value) *(int32_t *)value = SPARC_CPU(uc, mycpu)->env.pc; break; case UC_SPARC_REG_SP: - *(int32_t *)value = SPARC_CPU(uc, mycpu)->env.regbase[6]; + *(int32_t *)value = SPARC_CPU(uc, mycpu)->env.regwptr[6]; break; case UC_SPARC_REG_FP: - *(int32_t *)value = SPARC_CPU(uc, mycpu)->env.regbase[22]; + *(int32_t *)value = SPARC_CPU(uc, mycpu)->env.regwptr[22]; break; } } @@ -88,10 +88,10 @@ int sparc_reg_write(struct uc_struct *uc, unsigned int regid, const void *value) SPARC_CPU(uc, mycpu)->env.npc = *(uint32_t *)value + 4; break; case UC_SPARC_REG_SP: - SPARC_CPU(uc, mycpu)->env.regbase[6] = *(uint32_t *)value; + SPARC_CPU(uc, mycpu)->env.regwptr[6] = *(uint32_t *)value; break; case UC_SPARC_REG_FP: - SPARC_CPU(uc, mycpu)->env.regbase[22] = *(uint32_t *)value; + SPARC_CPU(uc, mycpu)->env.regwptr[22] = *(uint32_t *)value; break; } } diff --git a/qemu/target-sparc/unicorn64.c b/qemu/target-sparc/unicorn64.c index eb88c095..5def992e 100644 --- a/qemu/target-sparc/unicorn64.c +++ b/qemu/target-sparc/unicorn64.c @@ -40,10 +40,10 @@ int sparc_reg_read(struct uc_struct *uc, unsigned int regid, void *value) *(int64_t *)value = SPARC_CPU(uc, mycpu)->env.pc; break; case UC_SPARC_REG_SP: - *(int64_t *)value = SPARC_CPU(uc, mycpu)->env.regbase[6]; + *(int64_t *)value = SPARC_CPU(uc, mycpu)->env.regwptr[6]; break; case UC_SPARC_REG_FP: - *(int64_t *)value = SPARC_CPU(uc, mycpu)->env.regbase[22]; + *(int64_t *)value = SPARC_CPU(uc, mycpu)->env.regwptr[22]; break; } } @@ -71,10 +71,10 @@ int sparc_reg_write(struct uc_struct *uc, unsigned int regid, const void *value) SPARC_CPU(uc, mycpu)->env.npc = *(uint64_t *)value + 8; break; case UC_SPARC_REG_SP: - SPARC_CPU(uc, mycpu)->env.regbase[6] = *(uint64_t *)value; + SPARC_CPU(uc, mycpu)->env.regwptr[6] = *(uint64_t *)value; break; case UC_SPARC_REG_FP: - SPARC_CPU(uc, mycpu)->env.regbase[22] = *(uint64_t *)value; + SPARC_CPU(uc, mycpu)->env.regwptr[22] = *(uint64_t *)value; break; } }