|
|
@ -56,7 +56,7 @@ public:
|
|
|
|
if (!memory.IsValidVirtualAddressRange(vaddr, sizeof(u32))) {
|
|
|
|
if (!memory.IsValidVirtualAddressRange(vaddr, sizeof(u32))) {
|
|
|
|
return std::nullopt;
|
|
|
|
return std::nullopt;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return MemoryRead32(vaddr);
|
|
|
|
return memory.Read32(vaddr);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void MemoryWrite8(u64 vaddr, u8 value) override {
|
|
|
|
void MemoryWrite8(u64 vaddr, u8 value) override {
|
|
|
@ -111,7 +111,7 @@ public:
|
|
|
|
parent.LogBacktrace();
|
|
|
|
parent.LogBacktrace();
|
|
|
|
LOG_ERROR(Core_ARM,
|
|
|
|
LOG_ERROR(Core_ARM,
|
|
|
|
"Unimplemented instruction @ 0x{:X} for {} instructions (instr = {:08X})", pc,
|
|
|
|
"Unimplemented instruction @ 0x{:X} for {} instructions (instr = {:08X})", pc,
|
|
|
|
num_instructions, MemoryRead32(pc));
|
|
|
|
num_instructions, memory.Read32(pc));
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void InstructionCacheOperationRaised(Dynarmic::A64::InstructionCacheOperation op,
|
|
|
|
void InstructionCacheOperationRaised(Dynarmic::A64::InstructionCacheOperation op,
|
|
|
@ -156,7 +156,7 @@ public:
|
|
|
|
|
|
|
|
|
|
|
|
parent.LogBacktrace();
|
|
|
|
parent.LogBacktrace();
|
|
|
|
LOG_CRITICAL(Core_ARM, "ExceptionRaised(exception = {}, pc = {:08X}, code = {:08X})",
|
|
|
|
LOG_CRITICAL(Core_ARM, "ExceptionRaised(exception = {}, pc = {:08X}, code = {:08X})",
|
|
|
|
static_cast<std::size_t>(exception), pc, MemoryRead32(pc));
|
|
|
|
static_cast<std::size_t>(exception), pc, memory.Read32(pc));
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|