diff options
author | David Marcec <dmarcecguzman@gmail.com> | 2018-10-09 03:11:14 +0200 |
---|---|---|
committer | David Marcec <dmarcecguzman@gmail.com> | 2018-10-09 03:11:14 +0200 |
commit | f5631e78d146146dad15607d94ca5d1623ae6696 (patch) | |
tree | 114f1b881f7e2008d6a2d9cd67ef50e7f0103fc8 | |
parent | Actual kill execution when the bit isn't set, not the other way around (diff) | |
download | yuzu-f5631e78d146146dad15607d94ca5d1623ae6696.tar yuzu-f5631e78d146146dad15607d94ca5d1623ae6696.tar.gz yuzu-f5631e78d146146dad15607d94ca5d1623ae6696.tar.bz2 yuzu-f5631e78d146146dad15607d94ca5d1623ae6696.tar.lz yuzu-f5631e78d146146dad15607d94ca5d1623ae6696.tar.xz yuzu-f5631e78d146146dad15607d94ca5d1623ae6696.tar.zst yuzu-f5631e78d146146dad15607d94ca5d1623ae6696.zip |
-rw-r--r-- | src/core/hle/kernel/svc.cpp | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/src/core/hle/kernel/svc.cpp b/src/core/hle/kernel/svc.cpp index 2cae5c8f0..b488b508d 100644 --- a/src/core/hle/kernel/svc.cpp +++ b/src/core/hle/kernel/svc.cpp @@ -301,19 +301,27 @@ static ResultCode ArbitrateUnlock(VAddr mutex_addr) { return Mutex::Release(mutex_addr); } +struct BreakReason { + union { + u64 raw; + BitField<31, 1, u64> dont_kill_application; + }; +}; + /// Break program execution static void Break(u64 reason, u64 info1, u64 info2) { - if ((reason & (1 << 31)) == 0) { - LOG_CRITICAL( + BreakReason break_reason{reason}; + if (break_reason.dont_kill_application) { + LOG_ERROR( Debug_Emulated, "Emulated program broke execution! reason=0x{:016X}, info1=0x{:016X}, info2=0x{:016X}", reason, info1, info2); - ASSERT(false); } else { - LOG_ERROR( + LOG_CRITICAL( Debug_Emulated, "Emulated program broke execution! reason=0x{:016X}, info1=0x{:016X}, info2=0x{:016X}", reason, info1, info2); + ASSERT(false); } } |