diff options
| author | ptitSeb <sebastien.chev@gmail.com> | 2023-10-09 20:38:19 +0200 |
|---|---|---|
| committer | ptitSeb <sebastien.chev@gmail.com> | 2023-10-09 20:38:19 +0200 |
| commit | 8befcbfacf4a3ffe17d48248baa7411704c1b562 (patch) | |
| tree | 79f6d5adad6fe8dedc2678d8298eaf4491fc4614 /src | |
| parent | b9ea4983f93b93c5b72d6cbb14269cecc54eb8aa (diff) | |
| download | box64-8befcbfacf4a3ffe17d48248baa7411704c1b562.tar.gz box64-8befcbfacf4a3ffe17d48248baa7411704c1b562.zip | |
[ARM64] Fix SIGBUS workaround for STUR
Diffstat (limited to 'src')
| -rw-r--r-- | src/libtools/signals.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/src/libtools/signals.c b/src/libtools/signals.c index 731eaece..726aec25 100644 --- a/src/libtools/signals.c +++ b/src/libtools/signals.c @@ -580,8 +580,8 @@ int sigbus_specialcases(siginfo_t* info, void * ucntx, void* pc, void* _fpsimd) p->uc_mcontext.pc+=4; // go to next opcode return 1; } - if((opcode&0b00111111010000000000000000000000) == 0b00111101000000000000000000000000) { - // this is a STUR that SEGBUS if accessing unaligned device memory + if((opcode&0b10111111111000000000110000000000) == 0b10111000000000000000000000000000) { + // this is a STUR that SIGBUS if accessing unaligned device memory int size = 1<<((opcode>>30)&3); int val = opcode&31; int dest = (opcode>>5)&31; |