Project

General

Profile

Actions

Emulator Issues #13444

closed

Arm64 JIT goes into a broken state after an ISI exception occurs

Added by Gaberboo 4 months ago. Updated 9 days ago.

Status:
Fixed
Priority:
Normal
Assignee:
-
% Done:

0%

Operating system:
N/A
Issue type:
Bug
Milestone:
Regression:
No
Relates to usability:
No
Relates to performance:
No
Easy:
No
Relates to maintainability:
No
Regression start:
Fixed in:
5.0-20874

Description

Game Name?

Any

Game ID? (right click the game in the game list, Properties, Info tab)

Any

MD5 Hash? (right click the game in the game list, Properties, Verify tab, Verify Integrity button)

N/A

What's the problem? Describe what went wrong.

When an ISI exception occurs Dolphin can crash on any load or store in the exception handler due to using the wrong memory base.

What steps will reproduce the problem?

Using the following gecko code when the ARM64 JIT is selected and fastmem is enabled will crash Dolphin in any game.

04000400 808000c0
04000404 48000000
c0000000 00000001
48000002 00000000

Is the issue present in the latest development version? For future reference, please also write down the version number of the latest development version.

The issue is present in 5.0-20842

If the issue isn't present in the latest stable version, which is the first broken version? (You can find the first broken version by bisecting. Windows users can use the tool https://forums.dolphin-emu.org/Thread-green-notice-development-thread-unofficial-dolphin-bisection-tool-for-finding-broken-builds and anyone who is building Dolphin on their own can use git bisect.)

8bfcd2deb76c542cf3b4a5bd2d6176243243e04b

What are your PC specifications? (CPU, GPU, Operating System, more)
Apple M2
MacOS Sonoma 14.1.1

Is there anything else that can help developers narrow down the issue? (e.g. logs, screenshots,
configuration files, savefiles, savestates)

40:39:593 Core/PowerPC/JitArm64/Jit.cpp:134 E[JIT]: JitArm64 address calculation overflowed. This should never happen! PC 0x000000013a001ec8, access address 0x00000004902bc0c0, memory base 0x00000003102bc000, MSR.DR 0, mem_ptr 0x3102bc000, pbase 0x3102bc000, lbase 0x4902bc000
40:39:593 Core/PowerPC/JitArm64/Jit.cpp:145 E[JIT]: Exception handler - Unhandled fault
40:39:593 Core/PowerPC/JitArm64/JitArm64_BackPatch.cpp:32 E[JIT]: R0: 0x00000000000000c0	R1: 0x0000000fffffc118
40:39:593 Core/PowerPC/JitArm64/JitArm64_BackPatch.cpp:32 E[JIT]: R2: 0x0000000187e01a24	R3: 0x00000001e21206a0
40:39:593 Core/PowerPC/JitArm64/JitArm64_BackPatch.cpp:32 E[JIT]: R4: 0x0000000000000000	R5: 0x0000000000000000
40:39:593 Core/PowerPC/JitArm64/JitArm64_BackPatch.cpp:32 E[JIT]: R6: 0x3030343030303030	R7: 0x0000000000000010
40:39:593 Core/PowerPC/JitArm64/JitArm64_BackPatch.cpp:32 E[JIT]: R8: 0x0000000000000000	R9: 0x2010002030100000
40:39:593 Core/PowerPC/JitArm64/JitArm64_BackPatch.cpp:32 E[JIT]: R10: 0x00000000000e0100	R11: 0x0000000000000001
40:39:593 Core/PowerPC/JitArm64/JitArm64_BackPatch.cpp:32 E[JIT]: R12: 0x0000000000000000	R13: 0x00000001016a8334
40:39:593 Core/PowerPC/JitArm64/JitArm64_BackPatch.cpp:32 E[JIT]: R14: 0x00000001016a8345	R15: 0x0000000000000005
40:39:593 Core/PowerPC/JitArm64/JitArm64_BackPatch.cpp:32 E[JIT]: R16: 0x0000000188149db4	R17: 0x0000000000000238
40:39:593 Core/PowerPC/JitArm64/JitArm64_BackPatch.cpp:32 E[JIT]: R18: 0x0000000000000000	R19: 0x0000000000000000
40:39:593 Core/PowerPC/JitArm64/JitArm64_BackPatch.cpp:32 E[JIT]: R20: 0x0000000000000000	R21: 0x0000000000000000
40:39:593 Core/PowerPC/JitArm64/JitArm64_BackPatch.cpp:32 E[JIT]: R22: 0x0000000080000000	R23: 0x0000000000000000
40:39:593 Core/PowerPC/JitArm64/JitArm64_BackPatch.cpp:32 E[JIT]: R24: 0x0000000000000000	R25: 0x0000000000000800
40:39:593 Core/PowerPC/JitArm64/JitArm64_BackPatch.cpp:32 E[JIT]: R26: 0x0000000000000400	R27: 0x0000000000000000
40:39:593 Core/PowerPC/JitArm64/JitArm64_BackPatch.cpp:32 E[JIT]: R28: 0x00000004902bc000	R29: 0x00000001502b6290
40:39:593 Core/PowerPC/JitArm64/JitArm64_BackPatch.cpp:35 E[JIT]: R30: 0x000000013a001ec4	SP: 0x000000016fdbeac0
40:39:593 Core/PowerPC/JitArm64/JitArm64_BackPatch.cpp:37 E[JIT]: Access Address: 0x00000004902bc0c0
40:39:593 Core/PowerPC/JitArm64/JitArm64_BackPatch.cpp:38 E[JIT]: PC: 0x000000013a001ec8
40:39:593 Core/PowerPC/JitArm64/JitArm64_BackPatch.cpp:40 E[JIT]: Memory Around PC
40:39:593 Core/PowerPC/JitArm64/JitArm64_BackPatch.cpp:50 E[JIT]: 0x000000013a001ea8: b902efa0 5280001a 72a0001a 17fffc53
40:39:593 Core/PowerPC/JitArm64/JitArm64_BackPatch.cpp:50 E[JIT]: 0x000000013a001eb8: 54000065 5280801a 17fffc6e d2801800
40:39:593 Core/PowerPC/JitArm64/JitArm64_BackPatch.cpp:50 E[JIT]: 0x000000013a001ec8: b8606b9b 5ac00b7b b9002bbb b942efa0
40:39:593 Core/PowerPC/JitArm64/JitArm64_BackPatch.cpp:50 E[JIT]: 0x000000013a001ed8: 71001000 b902efa0 5280809a 72a0001a
40:39:593 Core/PowerPC/JitArm64/JitArm64_BackPatch.cpp:53 E[JIT]: Full block: a0ef02b91a0080521a00a07253fcff17650000541a8080526efcff17001880d29b6b60b87b0bc05abb2b00b9a0ef42b900100071a0ef02b99a8080521a00a072
Actions #1

Updated by JosJuice 4 months ago

Could you test if this fixes it? https://github.com/dolphin-emu/dolphin/pull/12464

Actions #2

Updated by JosJuice 9 days ago

  • Status changed from New to Fixed
  • Fixed in set to 5.0-20874
Actions

Also available in: Atom PDF