mirror of
https://github.com/holub/mame
synced 2025-04-22 16:31:49 +03:00
powerpc: 601 has POWER and PowerPC instructions, allow both in disassembly. [R. Belmont]
This commit is contained in:
parent
cd0bc5ac39
commit
fef1df775a
@ -751,6 +751,9 @@ class ppc601_device : public ppc_device
|
||||
{
|
||||
public:
|
||||
ppc601_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
|
||||
|
||||
protected:
|
||||
virtual std::unique_ptr<util::disasm_interface> create_disassembler() override;
|
||||
};
|
||||
|
||||
|
||||
|
@ -30,8 +30,8 @@ public:
|
||||
I_POWERPC = 1 << 1,
|
||||
};
|
||||
|
||||
powerpc_disassembler(bool powerpc = true)
|
||||
: m_implementation(powerpc ? I_POWERPC : I_POWER)
|
||||
powerpc_disassembler(implementation impl = I_POWERPC)
|
||||
: m_implementation(impl)
|
||||
{
|
||||
};
|
||||
virtual ~powerpc_disassembler() = default;
|
||||
@ -157,7 +157,7 @@ class power_disassembler : public powerpc_disassembler
|
||||
{
|
||||
public:
|
||||
power_disassembler()
|
||||
: powerpc_disassembler(false)
|
||||
: powerpc_disassembler(implementation::I_POWER)
|
||||
{
|
||||
};
|
||||
};
|
||||
|
@ -285,6 +285,13 @@ ppc601_device::ppc601_device(const machine_config &mconfig, const char *tag, dev
|
||||
{
|
||||
}
|
||||
|
||||
std::unique_ptr<util::disasm_interface> ppc601_device::create_disassembler()
|
||||
{
|
||||
// 601 has both POWER and PowerPC instructions
|
||||
printf("601 create_disassembler\n");
|
||||
return std::make_unique<powerpc_disassembler>((powerpc_disassembler::implementation)(powerpc_disassembler::I_POWER|powerpc_disassembler::I_POWERPC));
|
||||
}
|
||||
|
||||
ppc604_device::ppc604_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
|
||||
: ppc_device(mconfig, PPC604, tag, owner, clock, 32, 64, PPC_MODEL_604, PPCCAP_OEA | PPCCAP_VEA | PPCCAP_FPU | PPCCAP_MISALIGNED | PPCCAP_604_MMU, 4, address_map_constructor())
|
||||
{
|
||||
@ -1219,7 +1226,7 @@ void ppc_device::device_reset()
|
||||
|
||||
std::unique_ptr<util::disasm_interface> ppc_device::create_disassembler()
|
||||
{
|
||||
return std::make_unique<powerpc_disassembler>();
|
||||
return std::make_unique<powerpc_disassembler>(powerpc_disassembler::I_POWERPC);
|
||||
}
|
||||
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user