From: Toni Wilen Date: Sun, 2 Dec 2018 13:00:41 +0000 (+0200) Subject: Clear unaligned state after whole unaligned access sequence is complete. X-Git-Tag: 4100~8 X-Git-Url: https://git.unchartedbackwaters.co.uk/w/?a=commitdiff_plain;h=ee126eb6e7131516bd779604e87c97a26c1dbeab;p=francis%2Fwinuae.git Clear unaligned state after whole unaligned access sequence is complete. --- diff --git a/cpummu30.cpp b/cpummu30.cpp index d56c9fc3..8664c0a8 100644 --- a/cpummu30.cpp +++ b/cpummu30.cpp @@ -2634,6 +2634,7 @@ static void mmu030_unaligned_read_continue(uaecptr addr, int fc, unaligned_read_ #if MMUDEBUG write_log(_T("unaligned_read_continue_e: %08x %d %08x %08x\n"), addr, fc, mmu030_data_buffer_out, st); #endif + unalign_clear(); } typedef void (*unaligned_write_func)(uaecptr addr, uae_u32 val, uae_u32 fc, int size, int flags); @@ -2709,6 +2710,7 @@ static void mmu030_unaligned_write_continue(uaecptr addr, int fc, unaligned_writ #if MMUDEBUG write_log(_T("unaligned_write_continue_e: %08x %d %08x %08x\n"), addr, fc, mmu030_data_buffer_out, st); #endif + unalign_clear(); } void m68k_do_rte_mmu030 (uaecptr a7) @@ -2786,6 +2788,7 @@ void m68k_do_rte_mmu030 (uaecptr a7) mmu030_ad_v[idxsize].val = mmu030_data_buffer_in_v; } } + unalign_clear(); } // did we have ins fault and RB bit cleared? if ((ssw & MMU030_SSW_FB) && !(ssw & MMU030_SSW_RB)) { @@ -3173,6 +3176,7 @@ void m68k_do_rte_mmu030c (uaecptr a7) mmu030_ad_v[idxsize].val = mmu030_data_buffer_in_v; } } + unalign_clear(); } // Retried data access is the only memory access that can be done after this.