regs.mmu_ssw |= read ? MMU030_SSW_RW : 0;
regs.mmu_ssw |= flags;
regs.mmu_ssw |= fc;
- // store in wb3_data because stack frame creation may modify data buffer.
+ // temporary store in 68040+ variables because stack frame creation may modify them.
regs.wb3_data = mmu030_data_buffer_out;
+ regs.wb2_address = mmu030_state[1];
bBusErrorReadWrite = read;
mm030_stageb_address = addr;
m68k_areg (regs, 7) -= 2;
x_put_word (m68k_areg (regs, 7), mmu030_state[2]);
m68k_areg (regs, 7) -= 2;
- x_put_word (m68k_areg (regs, 7), mmu030_state[1]);
+ x_put_word (m68k_areg(regs, 7), regs.wb2_address); // = mmu030_state[1]
m68k_areg (regs, 7) -= 2;
x_put_word (m68k_areg (regs, 7), mmu030_state[0]);
// data input buffer = fault address