[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH 2/4] PPC: Fix lsxw bounds checks
From: |
Cormac O'Brien |
Subject: |
[Qemu-devel] [PATCH 2/4] PPC: Fix lsxw bounds checks |
Date: |
Sat, 22 Aug 2015 10:32:11 -0500 |
From: Alexander Graf <address@hidden>
The lsxw instruction checks whether the desired string actually fits
into all defined registers. Unfortunately it does the calculation wrong,
resulting in illegal instruction traps for loads that really should fit.
Fix it up, making Mac OS happier.
Signed-off-by: Alexander Graf <address@hidden>
---
target-ppc/mem_helper.c | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/target-ppc/mem_helper.c b/target-ppc/mem_helper.c
index 6d37dae..7e1f234 100644
--- a/target-ppc/mem_helper.c
+++ b/target-ppc/mem_helper.c
@@ -100,8 +100,9 @@ void helper_lswx(CPUPPCState *env, target_ulong addr,
uint32_t reg,
uint32_t ra, uint32_t rb)
{
if (likely(xer_bc != 0)) {
- if (unlikely((ra != 0 && reg < ra && (reg + xer_bc) > ra) ||
- (reg < rb && (reg + xer_bc) > rb))) {
+ int num_used_regs = (xer_bc + 3) / 4;
+ if (unlikely((ra != 0 && reg < ra && (reg + num_used_regs) > ra) ||
+ (reg < rb && (reg + num_used_regs) > rb))) {
helper_raise_exception_err(env, POWERPC_EXCP_PROGRAM,
POWERPC_EXCP_INVAL |
POWERPC_EXCP_INVAL_LSWX);
--
2.5.0
- [Qemu-devel] [PATCH RFC 0/4] Mac OS 9 compatibility improvements, Cormac O'Brien, 2015/08/22
- [Qemu-devel] [PATCH 2/4] PPC: Fix lsxw bounds checks,
Cormac O'Brien <=
- [Qemu-devel] [PATCH 1/4] PPC: Allow Rc bit to be set on mtspr, Cormac O'Brien, 2015/08/22
- [Qemu-devel] [PATCH 3/4] PPC: mac99: Always add USB controller, Cormac O'Brien, 2015/08/22
- [Qemu-devel] [PATCH RFC 4/4] PPC: fix CUDA packet header size, Cormac O'Brien, 2015/08/22
- Re: [Qemu-devel] [PATCH RFC 0/4] Mac OS 9 compatibility improvements, Mark Cave-Ayland, 2015/08/23
- Re: [Qemu-devel] [PATCH RFC 0/4] Mac OS 9 compatibility improvements, Alexander Graf, 2015/08/24
- Re: [Qemu-devel] [PATCH RFC 0/4] Mac OS 9 compatibility improvements, Alexander Graf, 2015/08/24