summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLC <mathew1800@gmail.com>2021-02-01 19:36:55 +0100
committerGitHub <noreply@github.com>2021-02-01 19:36:55 +0100
commit5e49b81d4dfee576765689a0c9ce30df88be3da1 (patch)
treef18f45e3e76e0368cc72f307c8dafdeef754fe9c
parentMerge pull request #5859 from Morph1984/nifm (diff)
parentarm_dynarmic_32: Print out CPSR.T on exception (diff)
downloadyuzu-5e49b81d4dfee576765689a0c9ce30df88be3da1.tar
yuzu-5e49b81d4dfee576765689a0c9ce30df88be3da1.tar.gz
yuzu-5e49b81d4dfee576765689a0c9ce30df88be3da1.tar.bz2
yuzu-5e49b81d4dfee576765689a0c9ce30df88be3da1.tar.lz
yuzu-5e49b81d4dfee576765689a0c9ce30df88be3da1.tar.xz
yuzu-5e49b81d4dfee576765689a0c9ce30df88be3da1.tar.zst
yuzu-5e49b81d4dfee576765689a0c9ce30df88be3da1.zip
-rw-r--r--src/core/arm/dynarmic/arm_dynarmic_32.cpp5
-rw-r--r--src/core/arm/dynarmic/arm_dynarmic_32.h4
2 files changed, 7 insertions, 2 deletions
diff --git a/src/core/arm/dynarmic/arm_dynarmic_32.cpp b/src/core/arm/dynarmic/arm_dynarmic_32.cpp
index c650a4dfb..ec4407b6e 100644
--- a/src/core/arm/dynarmic/arm_dynarmic_32.cpp
+++ b/src/core/arm/dynarmic/arm_dynarmic_32.cpp
@@ -71,8 +71,9 @@ public:
}
void ExceptionRaised(u32 pc, Dynarmic::A32::Exception exception) override {
- LOG_CRITICAL(Core_ARM, "ExceptionRaised(exception = {}, pc = {:08X}, code = {:08X})",
- exception, pc, MemoryReadCode(pc));
+ LOG_CRITICAL(Core_ARM,
+ "ExceptionRaised(exception = {}, pc = {:08X}, code = {:08X}, thumb = {})",
+ exception, pc, MemoryReadCode(pc), parent.IsInThumbMode());
UNIMPLEMENTED();
}
diff --git a/src/core/arm/dynarmic/arm_dynarmic_32.h b/src/core/arm/dynarmic/arm_dynarmic_32.h
index 35e9ced48..f6c4d4db9 100644
--- a/src/core/arm/dynarmic/arm_dynarmic_32.h
+++ b/src/core/arm/dynarmic/arm_dynarmic_32.h
@@ -50,6 +50,10 @@ public:
u64 GetTPIDR_EL0() const override;
void ChangeProcessorID(std::size_t new_core_id) override;
+ bool IsInThumbMode() const {
+ return (GetPSTATE() & 0x20) != 0;
+ }
+
void SaveContext(ThreadContext32& ctx) override;
void SaveContext(ThreadContext64& ctx) override {}
void LoadContext(const ThreadContext32& ctx) override;