mirror of
https://github.com/holub/mame
synced 2025-04-09 18:17:44 +03:00
cpu/m68000: For 68010 only, do not throw away buserr on prefetch (#13405)
This commit is contained in:
parent
3e29087147
commit
e0ea955d1b
@ -18,6 +18,11 @@ m68010_device::m68010_device(const machine_config &mconfig, const char *tag, dev
|
||||
{
|
||||
}
|
||||
|
||||
m68010_device::m68010_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock, address_map_constructor internal_map)
|
||||
: m68000_musashi_device(mconfig, tag, owner, clock, M68010, 16,24, internal_map)
|
||||
{
|
||||
}
|
||||
|
||||
void m68010_device::device_start()
|
||||
{
|
||||
m68000_musashi_device::device_start();
|
||||
|
@ -12,6 +12,7 @@ class m68010_device : public m68000_musashi_device
|
||||
public:
|
||||
// construction/destruction
|
||||
m68010_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock);
|
||||
m68010_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock, address_map_constructor internal_map);
|
||||
|
||||
virtual std::unique_ptr<util::disasm_interface> create_disassembler() override;
|
||||
|
||||
|
@ -604,11 +604,14 @@ inline u32 m68ki_read_imm_16()
|
||||
result = MASK_OUT_ABOVE_16(m_pref_data);
|
||||
m_pc += 2;
|
||||
if (!m_mmu_tmp_buserror_occurred) {
|
||||
|
||||
// prefetch only if no bus error occurred in opcode fetch
|
||||
m_pref_data = m68ki_ic_readimm16(m_pc);
|
||||
m_pref_addr = m_mmu_tmp_buserror_occurred ? ~0 : m_pc;
|
||||
// ignore bus error on prefetch
|
||||
m_mmu_tmp_buserror_occurred = 0;
|
||||
if (!CPU_TYPE_IS_010())
|
||||
{
|
||||
m_mmu_tmp_buserror_occurred = 0;
|
||||
}
|
||||
}
|
||||
|
||||
return result;
|
||||
|
Loading…
Reference in New Issue
Block a user