summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author Olivier Galibert <galibert@pobox.com>2021-03-26 14:42:30 +0100
committer Olivier Galibert <galibert@pobox.com>2021-03-26 16:50:13 +0100
commit707ce1121b60345f801ec62b402497284b750c2e (patch)
treefb55ef7b11546b18d7de789120996f4074580211
parentccf190b4a93554a827674294eeb67eb07d4ec391 (diff)
ppc: fix mmu/exceptions debug messages
-rw-r--r--src/devices/cpu/powerpc/ppcdrc.cpp15
1 files changed, 12 insertions, 3 deletions
diff --git a/src/devices/cpu/powerpc/ppcdrc.cpp b/src/devices/cpu/powerpc/ppcdrc.cpp
index 2f244d7825f..e93adcdda26 100644
--- a/src/devices/cpu/powerpc/ppcdrc.cpp
+++ b/src/devices/cpu/powerpc/ppcdrc.cpp
@@ -1739,7 +1739,10 @@ void ppc_device::generate_sequence_instruction(drcuml_block &block, compiler_sta
if (PRINTF_MMU)
{
const char *text = "Compiler page fault @ %08X\n";
- UML_MOV(block, mem(&m_core->format), (uintptr_t)text); // mov [format],text
+ if (sizeof(uintptr_t) == 8)
+ UML_DMOV(block, mem(&m_core->format), (uintptr_t)text); // mov [format],text
+ else
+ UML_MOV(block, mem(&m_core->format), (uintptr_t)text); // mov [format],text
UML_MOV(block, mem(&m_core->arg0), desc->pc); // mov [arg0],desc->pc
UML_CALLC(block, cfunc_printf_debug, this); // callc printf_debug
}
@@ -1757,7 +1760,10 @@ void ppc_device::generate_sequence_instruction(drcuml_block &block, compiler_sta
if (PRINTF_MMU)
{
const char *text = "Checking TLB at @ %08X\n";
- UML_MOV(block, mem(&m_core->format), (uintptr_t)text); // mov [format],text
+ if (sizeof(uintptr_t) == 8)
+ UML_DMOV(block, mem(&m_core->format), (uintptr_t)text); // mov [format],text
+ else
+ UML_MOV(block, mem(&m_core->format), (uintptr_t)text); // mov [format],text
UML_MOV(block, mem(&m_core->arg0), desc->pc); // mov [arg0],desc->pc
UML_CALLC(block, cfunc_printf_debug, this); // callc printf_debug
}
@@ -1772,7 +1778,10 @@ void ppc_device::generate_sequence_instruction(drcuml_block &block, compiler_sta
if (PRINTF_MMU)
{
const char *text = "No valid TLB @ %08X\n";
- UML_MOV(block, mem(&m_core->format), (uintptr_t)text); // mov [format],text
+ if (sizeof(uintptr_t) == 8)
+ UML_DMOV(block, mem(&m_core->format), (uintptr_t)text); // mov [format],text
+ else
+ UML_MOV(block, mem(&m_core->format), (uintptr_t)text); // mov [format],text
UML_MOV(block, mem(&m_core->arg0), desc->pc); // mov [arg0],desc->pc
UML_CALLC(block, cfunc_printf_debug, this); // callc printf_debug
}