aboutsummaryrefslogtreecommitdiff
path: root/libpsn00b/psxapi/_syscalls.s
diff options
context:
space:
mode:
authorspicyjpeg <thatspicyjpeg@gmail.com>2022-12-18 16:30:02 +0100
committerGitHub <noreply@github.com>2022-12-18 16:30:02 +0100
commitb12b716a9e54c4f1892795a136d6ffeb088ff001 (patch)
tree5888e4a77b207f24ccd9ad148d1c74e9c33400e9 /libpsn00b/psxapi/_syscalls.s
parent77306e187ef1a7ad5d3508ae9acb38edc5b68255 (diff)
parenta3359c0e7d85bf4752cda3b00892ecd5ef691077 (diff)
downloadpsn00bsdk-b12b716a9e54c4f1892795a136d6ffeb088ff001.tar.gz
Merge pull request #68 from spicyjpeg/bugfix
Bugfixes, psxcd rewrite, psxgpu and CMake tweaks (v0.22)
Diffstat (limited to 'libpsn00b/psxapi/_syscalls.s')
-rw-r--r--libpsn00b/psxapi/_syscalls.s17
1 files changed, 9 insertions, 8 deletions
diff --git a/libpsn00b/psxapi/_syscalls.s b/libpsn00b/psxapi/_syscalls.s
index 24864f3..6eaed72 100644
--- a/libpsn00b/psxapi/_syscalls.s
+++ b/libpsn00b/psxapi/_syscalls.s
@@ -27,20 +27,21 @@ ExitCriticalSection:
.global SwEnterCriticalSection
.type SwEnterCriticalSection, @function
SwEnterCriticalSection:
- mfc0 $a0, $12 # cop0r12 &= ~0x00000401
- li $a1, -1026
- and $a0, $a1
- mtc0 $a0, $12
- nop
+ mfc0 $a0, $12 # cop0r12 &= ~0x401
+ li $a1, -1026
+ and $a1, $a0
+ mtc0 $a1, $12
+ andi $a0, 0x0401 # return ((cop0r12_prev & 0x401) == 0x401)
+ sltiu $v0, $a0, 0x0401
- jr $ra
- nop
+ jr $ra
+ xori $v0, 1
.section .text.SwExitCriticalSection
.global SwExitCriticalSection
.type SwExitCriticalSection, @function
SwExitCriticalSection:
- mfc0 $a0, $12 # cop0r12 |= 0x00000401
+ mfc0 $a0, $12 # cop0r12 |= 0x401
nop
ori $a0, 0x0401
mtc0 $a0, $12