]> git.unchartedbackwaters.co.uk Git - francis/winuae.git/commitdiff
Add more logging.
authorToni Wilen <twilen@winuae.net>
Sun, 2 Dec 2018 13:01:17 +0000 (15:01 +0200)
committerToni Wilen <twilen@winuae.net>
Sun, 2 Dec 2018 13:01:17 +0000 (15:01 +0200)
cpummu30.cpp

index 8664c0a8f25c931d36995c5e9ca893ec221f3cd0..06d1fb781ec79a45b4c4f73f76f721814f9e3382 100644 (file)
@@ -2399,28 +2399,37 @@ uae_u32 REGPARAM2 mmu030_get_ilong_unaligned(uaecptr addr, uae_u32 fc, int flags
        return res;
 }
 
-static void unalign_init(bool l, bool l2)
+static void unalign_init(uaecptr addr, bool l, bool l2)
 {
        if (l2)
                mmu030_state[1] |= MMU030_STATEFLAG1_SUBACCESSX;
        if (l)
                mmu030_state[1] |= MMU030_STATEFLAG1_SUBACCESSL;
        mmu030_state[1] |= MMU030_STATEFLAG1_SUBACCESS0;
+#if MMU030_DEBUG > 1
+       write_log(_T("unalign_init %08x %08x %d %d\n"), addr, mmu030_state[1], l, l2);
+#endif
 }
 static void unalign_set(int state)
 {
        mmu030_state[1] |= (1 << state) << (MMU030_STATEFLAG1_SUBACCESS_SHIFT + 1);
+#if MMU030_DEBUG > 1
+       write_log(_T("unalign_set %d %08x\n"), state, mmu030_state[1]);
+#endif
 }
 static void unalign_clear(void)
 {
+#if MMU030_DEBUG > 1
+       write_log(_T("unalign_clear %08x %08x\n"), mmu030_state[1], mmu030_data_buffer_out);
+#endif
        mmu030_state[1] &= ~(MMU030_STATEFLAG1_SUBACCESSL | MMU030_STATEFLAG1_SUBACCESSX |
                MMU030_STATEFLAG1_SUBACCESS0 | MMU030_STATEFLAG1_SUBACCESS1 | MMU030_STATEFLAG1_SUBACCESS2 | MMU030_STATEFLAG1_SUBACCESS3);
 }
 
 uae_u16 REGPARAM2 mmu030_get_word_unaligned(uaecptr addr, uae_u32 fc, int flags)
 {
-       unalign_init(false, false);
-       mmu030_data_buffer_out = (uae_u16)mmu030_get_generic(addr, fc, sz_byte, flags | MMU030_SSW_SIZE_W) << 8;
+       unalign_init(addr, false, false);
+       mmu030_data_buffer_out = mmu030_get_generic(addr, fc, sz_byte, flags | MMU030_SSW_SIZE_W) << 8;
        unalign_set(0);
        mmu030_data_buffer_out |= mmu030_get_generic(addr + 1, fc, sz_byte, flags | MMU030_SSW_SIZE_B);
        unalign_clear();
@@ -2430,13 +2439,13 @@ uae_u16 REGPARAM2 mmu030_get_word_unaligned(uaecptr addr, uae_u32 fc, int flags)
 uae_u32 REGPARAM2 mmu030_get_long_unaligned(uaecptr addr, uae_u32 fc, int flags)
 {
        if (likely(!(addr & 1))) {
-               unalign_init(true, false);
-               mmu030_data_buffer_out = (uae_u32)mmu030_get_generic(addr, fc, sz_word, flags | MMU030_SSW_SIZE_L) << 16;
+               unalign_init(addr, true, false);
+               mmu030_data_buffer_out = mmu030_get_generic(addr, fc, sz_word, flags | MMU030_SSW_SIZE_L) << 16;
                unalign_set(0);
                mmu030_data_buffer_out |= mmu030_get_generic(addr + 2, fc, sz_word, flags | MMU030_SSW_SIZE_W);
        } else {
-               unalign_init(true, true);
-               mmu030_data_buffer_out = (uae_u32)mmu030_get_generic(addr, fc, sz_byte, flags | MMU030_SSW_SIZE_L) << 24;
+               unalign_init(addr, true, true);
+               mmu030_data_buffer_out = mmu030_get_generic(addr, fc, sz_byte, flags | MMU030_SSW_SIZE_L) << 24;
                unalign_set(0);
                mmu030_data_buffer_out |= mmu030_get_generic(addr + 1, fc, sz_word, flags | MMU030_SSW_SIZE_W) << 8;
                unalign_set(1);
@@ -2449,12 +2458,12 @@ uae_u32 REGPARAM2 mmu030_get_long_unaligned(uaecptr addr, uae_u32 fc, int flags)
 void REGPARAM2 mmu030_put_long_unaligned(uaecptr addr, uae_u32 val, uae_u32 fc, int flags)
 {
        if (likely(!(addr & 1))) {
-               unalign_init(true, false);
+               unalign_init(addr, true, false);
                mmu030_put_generic(addr, val >> 16, fc, sz_word, flags | MMU030_SSW_SIZE_L);
                unalign_set(0);
                mmu030_put_generic(addr + 2, val, fc, sz_word, flags | MMU030_SSW_SIZE_W);
        } else {
-               unalign_init(true, true);
+               unalign_init(addr, true, true);
                mmu030_put_generic(addr, val >> 24, fc, sz_byte, flags | MMU030_SSW_SIZE_L);
                unalign_set(0);
                mmu030_put_generic(addr + 1, val >> 8, fc, sz_word, flags | MMU030_SSW_SIZE_W);
@@ -2466,7 +2475,7 @@ void REGPARAM2 mmu030_put_long_unaligned(uaecptr addr, uae_u32 val, uae_u32 fc,
 
 void REGPARAM2 mmu030_put_word_unaligned(uaecptr addr, uae_u16 val, uae_u32 fc, int flags)
 {
-       unalign_init(false, false);
+       unalign_init(addr, false, false);
        mmu030_put_generic(addr, val >> 8, fc, sz_byte, flags | MMU030_SSW_SIZE_W);
        unalign_set(0);
        mmu030_put_generic(addr + 1, val, fc, sz_byte, flags | MMU030_SSW_SIZE_B);
@@ -2855,9 +2864,9 @@ void m68k_do_rte_mmu030 (uaecptr a7)
 #endif
 
 #if MMU030_DEBUG
-                       write_log(_T("%08x %08x %08x %08x %08x %d %d %d %08x %08x\n"),
+                       write_log(_T("%08x %08x %08x %08x %08x %d %d %d %08x %08x %04x\n"),
                                mmu030_state[1], mmu030_state[2], mmu030_disp_store[0], mmu030_disp_store[1],
-                               addr, read, size, fc, mmu030_data_buffer_out, mmu030_ad[idxsize].val);
+                               addr, read, size, fc, mmu030_data_buffer_out, mmu030_ad[idxsize].val, ssw);
 #endif
 
                        if (read) {