From 6adf45347fb3ff7961ee6464a50be81be5753b67 Mon Sep 17 00:00:00 2001 From: mooglyguy Date: Sun, 31 Dec 2017 13:48:24 +0100 Subject: [PATCH] drcbex86: Fix remainder clobbering quotient, thanks smf, nw --- src/devices/cpu/drcbex86.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/devices/cpu/drcbex86.cpp b/src/devices/cpu/drcbex86.cpp index 8566e31f62b..cb70ea0bf00 100644 --- a/src/devices/cpu/drcbex86.cpp +++ b/src/devices/cpu/drcbex86.cpp @@ -6720,7 +6720,8 @@ int drcbe_x86::ddivu(uint64_t &dstlo, uint64_t &dsthi, uint64_t src1, uint64_t s return FLAG_V; dstlo = src1 / src2; - dsthi = src1 % src2; + if (&dstlo != &dsthi) + dsthi = src1 % src2; return ((dstlo == 0) << 2) | ((dstlo >> 60) & FLAG_S); } @@ -6736,7 +6737,8 @@ int drcbe_x86::ddivs(uint64_t &dstlo, uint64_t &dsthi, int64_t src1, int64_t src return FLAG_V; dstlo = src1 / src2; - dsthi = src1 % src2; + if (&dstlo != &dsthi) + dsthi = src1 % src2; return ((dstlo == 0) << 2) | ((dstlo >> 60) & FLAG_S); }