mirror of
https://github.com/elliotnunn/powermac-rom.git
synced 2024-06-14 09:29:33 +00:00
Use new _AssertAndRelease macro
This is the usual way to release a lock. Most MP calls employ it indirectly, through their return path.
This commit is contained in:
parent
b27256fbb6
commit
fba585b5e3
|
@ -465,16 +465,7 @@ MPCall_70 ; OUTSIDE REFERER
|
|||
rlwinm. r16, r16, 0, 30, 30
|
||||
bne+ ReleaseAndReturnMPCallOOM
|
||||
bl NKCreateAddressSpaceSub
|
||||
sync
|
||||
lwz r16, PSA.SchLock + Lock.Count(r1)
|
||||
cmpwi cr1, r16, 0x00
|
||||
li r16, 0x00
|
||||
bne+ cr1, MPCall_70_0x54
|
||||
mflr r16
|
||||
bl panic
|
||||
|
||||
MPCall_70_0x54
|
||||
stw r16, PSA.SchLock + Lock.Count(r1)
|
||||
_AssertAndRelease PSA.SchLock, scratch=r16
|
||||
mr. r3, r8
|
||||
li r4, 0x00
|
||||
bne+ CommonMPCallReturnPath
|
||||
|
@ -825,13 +816,7 @@ MPCall_72_0x38
|
|||
stw r8, Area.LogicalBase(r31)
|
||||
mr r8, r31
|
||||
bl createarea
|
||||
sync
|
||||
lwz r16, PSA.SchLock + Lock.Count(r1)
|
||||
cmpwi cr1, r16, 0x00
|
||||
li r16, 0x00
|
||||
bne+ cr1, MPCall_72_0x90
|
||||
mflr r16
|
||||
bl panic
|
||||
_AssertAndRelease PSA.SchLock, scratch=r16
|
||||
|
||||
MPCall_72_0x90
|
||||
stw r16, PSA.SchLock + Lock.Count(r1)
|
||||
|
@ -1305,16 +1290,7 @@ createarea_0x5f0
|
|||
bgt+ createarea_0x5f0
|
||||
|
||||
createarea_0x62c
|
||||
sync
|
||||
lwz r16, -0x0ad0(r1)
|
||||
cmpwi cr1, r16, 0x00
|
||||
li r16, 0x00
|
||||
bne+ cr1, createarea_0x648
|
||||
mflr r16
|
||||
bl panic
|
||||
|
||||
createarea_0x648
|
||||
stw r16, -0x0ad0(r1)
|
||||
_AssertAndRelease PSA.PoolLock, scratch=r16
|
||||
|
||||
createarea_0x64c
|
||||
lwz r16, Area.TwoFiftySix(r31)
|
||||
|
@ -1386,16 +1362,7 @@ major_0x102a8_0xc
|
|||
; createarea
|
||||
|
||||
major_0x102c8 ; OUTSIDE REFERER
|
||||
sync
|
||||
lwz r16, -0x0ad0(r1)
|
||||
cmpwi cr1, r16, 0x00
|
||||
li r16, 0x00
|
||||
bne+ cr1, major_0x102c8_0x1c
|
||||
mflr r16
|
||||
bl panic
|
||||
|
||||
major_0x102c8_0x1c
|
||||
stw r16, -0x0ad0(r1)
|
||||
_AssertAndRelease PSA.PoolLock, scratch=r16
|
||||
addi r30, r8, 0x08
|
||||
lwz r8, -0x0420(r1)
|
||||
|
||||
|
@ -1548,13 +1515,7 @@ MPCall_73 ; OUTSIDE REFERER
|
|||
stw r8, Area.TwoFiftySix(r31)
|
||||
mr r8, r31
|
||||
bl createarea
|
||||
sync
|
||||
lwz r16, PSA.SchLock + Lock.Count(r1)
|
||||
cmpwi cr1, r16, 0x00
|
||||
li r16, 0x00
|
||||
bne+ cr1, MPCall_73_0xb0
|
||||
mflr r16
|
||||
bl panic
|
||||
_AssertAndRelease PSA.SchLock, scratch=r16
|
||||
|
||||
MPCall_73_0xb0
|
||||
stw r16, PSA.SchLock + Lock.Count(r1)
|
||||
|
@ -1623,16 +1584,7 @@ MPCall_74_0x5c
|
|||
stw r17, 0x000c(r16)
|
||||
|
||||
MPCall_74_0xbc
|
||||
sync
|
||||
lwz r18, -0x0b90(r1)
|
||||
cmpwi cr1, r18, 0x00
|
||||
li r18, 0x00
|
||||
bne+ cr1, MPCall_74_0xd8
|
||||
mflr r18
|
||||
bl panic
|
||||
|
||||
MPCall_74_0xd8
|
||||
stw r18, -0x0b90(r1)
|
||||
_AssertAndRelease PSA.HTABLock, scratch=r18
|
||||
lwz r8, 0x0040(r31)
|
||||
rlwinm. r16, r29, 0, 25, 25
|
||||
cmpwi cr1, r8, 0x00
|
||||
|
@ -1668,16 +1620,7 @@ MPCall_74_0x14c
|
|||
; r1 = kdp
|
||||
; r8 = maybe the page
|
||||
bl free_list_add_page
|
||||
sync
|
||||
lwz r18, -0x0ad0(r1)
|
||||
cmpwi cr1, r18, 0x00
|
||||
li r18, 0x00
|
||||
bne+ cr1, MPCall_74_0x16c
|
||||
mflr r18
|
||||
bl panic
|
||||
|
||||
MPCall_74_0x16c
|
||||
stw r18, -0x0ad0(r1)
|
||||
_AssertAndRelease PSA.PoolLock, scratch=r18
|
||||
b MPCall_74_0x178
|
||||
|
||||
MPCall_74_0x174
|
||||
|
@ -1717,16 +1660,7 @@ MPCall_74_0x1e0
|
|||
; r1 = kdp
|
||||
; r8 = maybe the page
|
||||
bl free_list_add_page
|
||||
sync
|
||||
lwz r18, -0x0ad0(r1)
|
||||
cmpwi cr1, r18, 0x00
|
||||
li r18, 0x00
|
||||
bne+ cr1, MPCall_74_0x200
|
||||
mflr r18
|
||||
bl panic
|
||||
|
||||
MPCall_74_0x200
|
||||
stw r18, -0x0ad0(r1)
|
||||
_AssertAndRelease PSA.PoolLock, scratch=r18
|
||||
b MPCall_74_0x20c
|
||||
|
||||
MPCall_74_0x208
|
||||
|
@ -1835,16 +1769,7 @@ MPCall_75_0x100
|
|||
ble+ MPCall_75_0x100
|
||||
|
||||
MPCall_75_0x138
|
||||
sync
|
||||
lwz r8, -0x0b90(r1)
|
||||
cmpwi cr1, r8, 0x00
|
||||
li r8, 0x00
|
||||
bne+ cr1, MPCall_75_0x154
|
||||
mflr r8
|
||||
bl panic
|
||||
|
||||
MPCall_75_0x154
|
||||
stw r8, -0x0b90(r1)
|
||||
_AssertAndRelease PSA.HTABLock, scratch=r8
|
||||
lwz r16, Area.TwoFiftySix(r31)
|
||||
rlwinm. r8, r16, 0, 25, 25
|
||||
bne- MPCall_75_0x16c
|
||||
|
@ -1852,16 +1777,7 @@ MPCall_75_0x154
|
|||
bne- MPCall_75_0x16c
|
||||
|
||||
MPCall_75_0x16c
|
||||
sync
|
||||
lwz r8, -0x0ad0(r1)
|
||||
cmpwi cr1, r8, 0x00
|
||||
li r8, 0x00
|
||||
bne+ cr1, MPCall_75_0x188
|
||||
mflr r8
|
||||
bl panic
|
||||
|
||||
MPCall_75_0x188
|
||||
stw r8, -0x0ad0(r1)
|
||||
_AssertAndRelease PSA.PoolLock, scratch=r8
|
||||
b MPCall_75_0x190
|
||||
|
||||
MPCall_75_0x190
|
||||
|
@ -1946,16 +1862,7 @@ MPCall_130 ; OUTSIDE REFERER
|
|||
|
||||
mr r8, r29
|
||||
bl MPCall_95_0x1e4
|
||||
sync
|
||||
lwz r14, -0x0b90(r1)
|
||||
cmpwi cr1, r14, 0x00
|
||||
li r14, 0x00
|
||||
bne+ cr1, MPCall_130_0xcc
|
||||
mflr r14
|
||||
bl panic
|
||||
|
||||
MPCall_130_0xcc
|
||||
stw r14, -0x0b90(r1)
|
||||
_AssertAndRelease PSA.HTABLock, scratch=r14
|
||||
beq+ Local_Panic
|
||||
rlwinm r8, r16, 0, 29, 30
|
||||
lwz r16, 0x0000(r30)
|
||||
|
@ -2023,16 +1930,7 @@ MPCall_130_0x19c
|
|||
li r16, 0x06
|
||||
rlwimi r17, r16, 0, 29, 30
|
||||
stw r17, 0x0000(r30)
|
||||
sync
|
||||
lwz r14, -0x0b90(r1)
|
||||
cmpwi cr1, r14, 0x00
|
||||
li r14, 0x00
|
||||
bne+ cr1, MPCall_130_0x1c8
|
||||
mflr r14
|
||||
bl panic
|
||||
|
||||
MPCall_130_0x1c8
|
||||
stw r14, -0x0b90(r1)
|
||||
_AssertAndRelease PSA.HTABLock, scratch=r14
|
||||
|
||||
; r1 = kdp
|
||||
b ReleaseAndReturnZeroFromMPCall
|
||||
|
@ -2128,16 +2026,7 @@ KCSetAreaAccess_0x118
|
|||
add r29, r29, r19
|
||||
subf. r8, r29, r28
|
||||
bge+ KCSetAreaAccess_0x9c
|
||||
sync
|
||||
lwz r14, -0x0b90(r1)
|
||||
cmpwi cr1, r14, 0x00
|
||||
li r14, 0x00
|
||||
bne+ cr1, KCSetAreaAccess_0x14c
|
||||
mflr r14
|
||||
bl panic
|
||||
|
||||
KCSetAreaAccess_0x14c
|
||||
stw r14, -0x0b90(r1)
|
||||
_AssertAndRelease PSA.HTABLock, scratch=r14
|
||||
|
||||
; r1 = kdp
|
||||
b ReleaseAndReturnZeroFromMPCall
|
||||
|
@ -2173,16 +2062,7 @@ KCSetAreaAccess_0x1bc
|
|||
add r29, r29, r27
|
||||
subf. r8, r29, r28
|
||||
bge+ KCSetAreaAccess_0x1a4
|
||||
sync
|
||||
lwz r14, -0x0b90(r1)
|
||||
cmpwi cr1, r14, 0x00
|
||||
li r14, 0x00
|
||||
bne+ cr1, KCSetAreaAccess_0x1e4
|
||||
mflr r14
|
||||
bl panic
|
||||
|
||||
KCSetAreaAccess_0x1e4
|
||||
stw r14, -0x0b90(r1)
|
||||
_AssertAndRelease PSA.HTABLock, scratch=r14
|
||||
|
||||
; r1 = kdp
|
||||
b ReleaseAndReturnZeroFromMPCall
|
||||
|
@ -2370,16 +2250,7 @@ MPCall_123 ; OUTSIDE REFERER
|
|||
bltl- cr5, MPCall_95_0x2e0
|
||||
bltl- cr5, MPCall_95_0x348
|
||||
lwz r17, 0x0000(r30)
|
||||
sync
|
||||
lwz r14, -0x0b90(r1)
|
||||
cmpwi cr1, r14, 0x00
|
||||
li r14, 0x00
|
||||
bne+ cr1, MPCall_123_0xa4
|
||||
mflr r14
|
||||
bl panic
|
||||
|
||||
MPCall_123_0xa4
|
||||
stw r14, -0x0b90(r1)
|
||||
_AssertAndRelease PSA.HTABLock, scratch=r14
|
||||
bl major_0x10d38
|
||||
mr r5, r18
|
||||
|
||||
|
@ -2670,16 +2541,7 @@ MPCall_81_0x70
|
|||
rlwimi r5, r4, 0, 20, 31
|
||||
|
||||
MPCall_81_0xa4
|
||||
sync
|
||||
lwz r8, -0x0b90(r1)
|
||||
cmpwi cr1, r8, 0x00
|
||||
li r8, 0x00
|
||||
bne+ cr1, MPCall_81_0xc0
|
||||
mflr r8
|
||||
bl panic
|
||||
|
||||
MPCall_81_0xc0
|
||||
stw r8, -0x0b90(r1)
|
||||
_AssertAndRelease PSA.HTABLock, scratch=r8
|
||||
b ReleaseAndReturnMPCall
|
||||
|
||||
MPCall_81_0xc8
|
||||
|
@ -2771,16 +2633,7 @@ MPCall_98_0x10c
|
|||
|
||||
MPCall_98_0x118
|
||||
stw r16, 0x013c(r6)
|
||||
sync
|
||||
lwz r8, -0x0b90(r1)
|
||||
cmpwi cr1, r8, 0x00
|
||||
li r8, 0x00
|
||||
bne+ cr1, MPCall_98_0x138
|
||||
mflr r8
|
||||
bl panic
|
||||
|
||||
MPCall_98_0x138
|
||||
stw r8, -0x0b90(r1)
|
||||
_AssertAndRelease PSA.HTABLock, scratch=r8
|
||||
b ReleaseAndReturnMPCall
|
||||
|
||||
MPCall_98_0x140
|
||||
|
@ -2846,16 +2699,7 @@ MPCall_83 ; OUTSIDE REFERER
|
|||
_Lock PSA.PoolLock, scratch1=r16, scratch2=r17
|
||||
|
||||
bl MPCall_83_0x90
|
||||
sync
|
||||
lwz r16, -0x0ad0(r1)
|
||||
cmpwi cr1, r16, 0x00
|
||||
li r16, 0x00
|
||||
bne+ cr1, MPCall_83_0x38
|
||||
mflr r16
|
||||
bl panic
|
||||
|
||||
MPCall_83_0x38
|
||||
stw r16, -0x0ad0(r1)
|
||||
_AssertAndRelease PSA.PoolLock, scratch=r16
|
||||
mr. r4, r8
|
||||
bne+ ReturnZeroFromMPCall
|
||||
|
||||
|
@ -2939,16 +2783,7 @@ MPCall_84_0x3c
|
|||
li r3, 0x00
|
||||
|
||||
MPCall_84_0x48
|
||||
sync
|
||||
lwz r16, -0x0ad0(r1)
|
||||
cmpwi cr1, r16, 0x00
|
||||
li r16, 0x00
|
||||
bne+ cr1, MPCall_84_0x64
|
||||
mflr r16
|
||||
bl panic
|
||||
|
||||
MPCall_84_0x64
|
||||
stw r16, -0x0ad0(r1)
|
||||
_AssertAndRelease PSA.PoolLock, scratch=r16
|
||||
b CommonMPCallReturnPath
|
||||
|
||||
|
||||
|
@ -3065,16 +2900,7 @@ KCMapPage_0x8c
|
|||
bl MPCall_95_0x1e4
|
||||
beq+ Local_Panic
|
||||
lwz r29, 0x0000(r30)
|
||||
sync
|
||||
lwz r14, -0x0b90(r1)
|
||||
cmpwi cr1, r14, 0x00
|
||||
li r14, 0x00
|
||||
bne+ cr1, KCMapPage_0xd0
|
||||
mflr r14
|
||||
bl panic
|
||||
|
||||
KCMapPage_0xd0
|
||||
stw r14, -0x0b90(r1)
|
||||
_AssertAndRelease PSA.HTABLock, scratch=r14
|
||||
clrlwi. r8, r29, 0x1f
|
||||
bne+ ReleaseAndReturnMPCallOOM
|
||||
lwz r17, 0x0134(r6)
|
||||
|
@ -3084,16 +2910,7 @@ KCMapPage_0xd0
|
|||
_Lock PSA.PoolLock, scratch1=r16, scratch2=r17
|
||||
|
||||
bl MPCall_83_0x90
|
||||
sync
|
||||
lwz r16, -0x0ad0(r1)
|
||||
cmpwi cr1, r16, 0x00
|
||||
li r16, 0x00
|
||||
bne+ cr1, KCMapPage_0x120
|
||||
mflr r16
|
||||
bl panic
|
||||
|
||||
KCMapPage_0x120
|
||||
stw r16, -0x0ad0(r1)
|
||||
_AssertAndRelease PSA.PoolLock, scratch=r16
|
||||
mr. r5, r8
|
||||
beq+ MPCall_83_0x5c
|
||||
|
||||
|
@ -3246,29 +3063,11 @@ KCUnmapPages_0x148
|
|||
stw r28, Area.Length2(r31)
|
||||
|
||||
KCUnmapPages_0x158
|
||||
sync
|
||||
lwz r14, -0x0b90(r1)
|
||||
cmpwi cr1, r14, 0x00
|
||||
li r14, 0x00
|
||||
bne+ cr1, KCUnmapPages_0x174
|
||||
mflr r14
|
||||
bl panic
|
||||
|
||||
KCUnmapPages_0x174
|
||||
stw r14, -0x0b90(r1)
|
||||
_AssertAndRelease PSA.HTABLock, scratch=r14
|
||||
|
||||
; r1 = kdp
|
||||
bne+ cr3, ReleaseAndReturnZeroFromMPCall
|
||||
sync
|
||||
lwz r14, -0x0ad0(r1)
|
||||
cmpwi cr1, r14, 0x00
|
||||
li r14, 0x00
|
||||
bne+ cr1, KCUnmapPages_0x198
|
||||
mflr r14
|
||||
bl panic
|
||||
|
||||
KCUnmapPages_0x198
|
||||
stw r14, -0x0ad0(r1)
|
||||
_AssertAndRelease PSA.PoolLock, scratch=r14
|
||||
|
||||
; r1 = kdp
|
||||
b ReleaseAndReturnZeroFromMPCall
|
||||
|
@ -3329,31 +3128,13 @@ NKMakePhysicallyContiguous_0xac
|
|||
add r28, r28, r29
|
||||
subf. r8, r27, r5
|
||||
bge+ NKMakePhysicallyContiguous_0x80
|
||||
sync
|
||||
lwz r14, -0x0b90(r1)
|
||||
cmpwi cr1, r14, 0x00
|
||||
li r14, 0x00
|
||||
bne+ cr1, NKMakePhysicallyContiguous_0xd8
|
||||
mflr r14
|
||||
bl panic
|
||||
|
||||
NKMakePhysicallyContiguous_0xd8
|
||||
stw r14, -0x0b90(r1)
|
||||
_AssertAndRelease PSA.HTABLock, scratch=r14
|
||||
|
||||
; r1 = kdp
|
||||
b ReleaseAndReturnZeroFromMPCall
|
||||
|
||||
NKMakePhysicallyContiguous_0xe0
|
||||
sync
|
||||
lwz r14, -0x0b90(r1)
|
||||
cmpwi cr1, r14, 0x00
|
||||
li r14, 0x00
|
||||
bne+ cr1, NKMakePhysicallyContiguous_0xfc
|
||||
mflr r14
|
||||
bl panic
|
||||
|
||||
NKMakePhysicallyContiguous_0xfc
|
||||
stw r14, -0x0b90(r1)
|
||||
_AssertAndRelease PSA.HTABLock, scratch=r14
|
||||
|
||||
_Lock PSA.PoolLock, scratch1=r16, scratch2=r17
|
||||
|
||||
|
@ -3373,29 +3154,11 @@ NKMakePhysicallyContiguous_0xfc
|
|||
dc.l 0x4bff9554
|
||||
|
||||
NKMakePhysicallyContiguous_0x150
|
||||
sync
|
||||
lwz r16, -0x0b90(r1)
|
||||
cmpwi cr1, r16, 0x00
|
||||
li r16, 0x00
|
||||
bne+ cr1, NKMakePhysicallyContiguous_0x16c
|
||||
mflr r16
|
||||
bl panic
|
||||
|
||||
NKMakePhysicallyContiguous_0x16c
|
||||
stw r16, -0x0b90(r1)
|
||||
_AssertAndRelease PSA.HTABLock, scratch=r16
|
||||
b ReleaseAndReturnMPCallOOM
|
||||
|
||||
NKMakePhysicallyContiguous_0x174
|
||||
sync
|
||||
lwz r16, -0x0ad0(r1)
|
||||
cmpwi cr1, r16, 0x00
|
||||
li r16, 0x00
|
||||
bne+ cr1, NKMakePhysicallyContiguous_0x190
|
||||
mflr r16
|
||||
bl panic
|
||||
|
||||
NKMakePhysicallyContiguous_0x190
|
||||
stw r16, -0x0ad0(r1)
|
||||
_AssertAndRelease PSA.PoolLock, scratch=r16
|
||||
b ReleaseAndReturnMPCallOOM
|
||||
|
||||
|
||||
|
@ -3459,16 +3222,7 @@ KCLockPages_0x94
|
|||
stw r16, PSA.UnheldFreePageCount(r1)
|
||||
|
||||
KCLockPages_0xc8
|
||||
sync
|
||||
lwz r16, -0x0ad0(r1)
|
||||
cmpwi cr1, r16, 0x00
|
||||
li r16, 0x00
|
||||
bne+ cr1, KCLockPages_0xe4
|
||||
mflr r16
|
||||
bl panic
|
||||
|
||||
KCLockPages_0xe4
|
||||
stw r16, -0x0ad0(r1)
|
||||
_AssertAndRelease PSA.PoolLock, scratch=r16
|
||||
ble+ ReleaseAndReturnMPCallOOM
|
||||
mr r27, r4
|
||||
|
||||
|
@ -3566,16 +3320,7 @@ KCUnlockPages_0xc4
|
|||
lwz r16, PSA.UnheldFreePageCount(r1)
|
||||
add r16, r16, r28
|
||||
stw r16, PSA.UnheldFreePageCount(r1)
|
||||
sync
|
||||
lwz r16, -0x0ad0(r1)
|
||||
cmpwi cr1, r16, 0x00
|
||||
li r16, 0x00
|
||||
bne+ cr1, KCUnlockPages_0x114
|
||||
mflr r16
|
||||
bl panic
|
||||
|
||||
KCUnlockPages_0x114
|
||||
stw r16, -0x0ad0(r1)
|
||||
_AssertAndRelease PSA.PoolLock, scratch=r16
|
||||
|
||||
; r1 = kdp
|
||||
b ReleaseAndReturnZeroFromMPCall
|
||||
|
@ -3646,16 +3391,7 @@ KCHoldPages_0x90
|
|||
stw r16, PSA.UnheldFreePageCount(r1)
|
||||
|
||||
KCHoldPages_0xc4
|
||||
sync
|
||||
lwz r16, -0x0ad0(r1)
|
||||
cmpwi cr1, r16, 0x00
|
||||
li r16, 0x00
|
||||
bne+ cr1, KCHoldPages_0xe0
|
||||
mflr r16
|
||||
bl panic
|
||||
|
||||
KCHoldPages_0xe0
|
||||
stw r16, -0x0ad0(r1)
|
||||
_AssertAndRelease PSA.PoolLock, scratch=r16
|
||||
ble+ ReleaseAndReturnMPCallOOM
|
||||
mr r27, r4
|
||||
|
||||
|
@ -3753,16 +3489,7 @@ KCUnholdPages_0xc4
|
|||
lwz r16, PSA.UnheldFreePageCount(r1)
|
||||
add r16, r16, r28
|
||||
stw r16, PSA.UnheldFreePageCount(r1)
|
||||
sync
|
||||
lwz r16, -0x0ad0(r1)
|
||||
cmpwi cr1, r16, 0x00
|
||||
li r16, 0x00
|
||||
bne+ cr1, KCUnholdPages_0x114
|
||||
mflr r16
|
||||
bl panic
|
||||
|
||||
KCUnholdPages_0x114
|
||||
stw r16, -0x0ad0(r1)
|
||||
_AssertAndRelease PSA.PoolLock, scratch=r16
|
||||
|
||||
; r1 = kdp
|
||||
b ReleaseAndReturnZeroFromMPCall
|
||||
|
@ -3799,16 +3526,7 @@ MPCall_91 ; OUTSIDE REFERER
|
|||
bltl- cr5, MPCall_95_0x2e0
|
||||
bltl- cr5, MPCall_95_0x348
|
||||
lwz r29, 0x0000(r30)
|
||||
sync
|
||||
lwz r14, -0x0b90(r1)
|
||||
cmpwi cr1, r14, 0x00
|
||||
li r14, 0x00
|
||||
bne+ cr1, MPCall_91_0x94
|
||||
mflr r14
|
||||
bl panic
|
||||
|
||||
MPCall_91_0x94
|
||||
stw r14, -0x0b90(r1)
|
||||
_AssertAndRelease PSA.HTABLock, scratch=r14
|
||||
mr r8, r4
|
||||
bl MPCall_95_0x254
|
||||
li r19, 0x00
|
||||
|
@ -3832,16 +3550,7 @@ MPCall_91_0xac
|
|||
b ReleaseAndReturnZeroFromMPCall
|
||||
|
||||
MPCall_91_0xcc
|
||||
sync
|
||||
lwz r14, -0x0b90(r1)
|
||||
cmpwi cr1, r14, 0x00
|
||||
li r14, 0x00
|
||||
bne+ cr1, MPCall_91_0xe8
|
||||
mflr r14
|
||||
bl panic
|
||||
|
||||
MPCall_91_0xe8
|
||||
stw r14, -0x0b90(r1)
|
||||
_AssertAndRelease PSA.HTABLock, scratch=r14
|
||||
b ReleaseAndReturnMPCallOOM
|
||||
|
||||
|
||||
|
@ -3893,31 +3602,13 @@ MPCall_92_0x9c
|
|||
or r16, r16, r8
|
||||
and r16, r16, r9
|
||||
stw r16, 0x0000(r30)
|
||||
sync
|
||||
lwz r14, -0x0b90(r1)
|
||||
cmpwi cr1, r14, 0x00
|
||||
li r14, 0x00
|
||||
bne+ cr1, MPCall_92_0xd0
|
||||
mflr r14
|
||||
bl panic
|
||||
|
||||
MPCall_92_0xd0
|
||||
stw r14, -0x0b90(r1)
|
||||
_AssertAndRelease PSA.HTABLock, scratch=r14
|
||||
|
||||
; r1 = kdp
|
||||
b ReleaseAndReturnZeroFromMPCall
|
||||
|
||||
MPCall_92_0xd8
|
||||
sync
|
||||
lwz r14, -0x0b90(r1)
|
||||
cmpwi cr1, r14, 0x00
|
||||
li r14, 0x00
|
||||
bne+ cr1, MPCall_92_0xf4
|
||||
mflr r14
|
||||
bl panic
|
||||
|
||||
MPCall_92_0xf4
|
||||
stw r14, -0x0b90(r1)
|
||||
_AssertAndRelease PSA.HTABLock, scratch=r14
|
||||
b ReleaseAndReturnMPCallOOM
|
||||
|
||||
|
||||
|
@ -4000,16 +3691,7 @@ MPCall_94 ; OUTSIDE REFERER
|
|||
bltl- cr5, MPCall_95_0x348
|
||||
|
||||
MPCall_94_0xa0
|
||||
sync
|
||||
lwz r16, -0x0b90(r1)
|
||||
cmpwi cr1, r16, 0x00
|
||||
li r16, 0x00
|
||||
bne+ cr1, MPCall_94_0xbc
|
||||
mflr r16
|
||||
bl panic
|
||||
|
||||
MPCall_94_0xbc
|
||||
stw r16, -0x0b90(r1)
|
||||
_AssertAndRelease PSA.HTABLock, scratch=r16
|
||||
|
||||
; r1 = kdp
|
||||
b ReleaseAndReturnZeroFromMPCall
|
||||
|
@ -4149,16 +3831,7 @@ MPCall_95_0xe0
|
|||
mr r8, r29
|
||||
bl MPCall_95_0x1e4
|
||||
beq+ Local_Panic
|
||||
sync
|
||||
lwz r16, -0x0b90(r1)
|
||||
cmpwi cr1, r16, 0x00
|
||||
li r16, 0x00
|
||||
bne+ cr1, MPCall_95_0x134
|
||||
mflr r16
|
||||
bl panic
|
||||
|
||||
MPCall_95_0x134
|
||||
stw r16, -0x0b90(r1)
|
||||
_AssertAndRelease PSA.HTABLock, scratch=r16
|
||||
lwz r16, 0x0000(r30)
|
||||
clrlwi. r8, r16, 0x1f
|
||||
beq- MPCall_95_0x180
|
||||
|
|
|
@ -207,16 +207,7 @@ print_common_0x80
|
|||
mtspr srr1, r27
|
||||
|
||||
print_common_0x8c
|
||||
sync
|
||||
lwz r30, -0x0af0(r1)
|
||||
cmpwi cr1, r30, 0x00
|
||||
li r30, 0x00
|
||||
bne+ cr1, print_common_0xa8
|
||||
mflr r30
|
||||
bl panic
|
||||
|
||||
print_common_0xa8
|
||||
stw r30, -0x0af0(r1)
|
||||
_AssertAndRelease PSA.DbugLock, scratch=r30
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -588,16 +588,7 @@ major_0x02ccc_0x430
|
|||
major_0x02ccc_0x4a8
|
||||
mr r8, r31
|
||||
bl TaskReadyAsPrev
|
||||
sync
|
||||
lwz r31, PSA.SchLock + Lock.Count(r1)
|
||||
cmpwi cr1, r31, 0x00
|
||||
li r31, 0x00
|
||||
bne+ cr1, major_0x02ccc_0x4cc
|
||||
mflr r31
|
||||
bl panic
|
||||
|
||||
major_0x02ccc_0x4cc
|
||||
stw r31, PSA.SchLock + Lock.Count(r1)
|
||||
_AssertAndRelease PSA.SchLock, scratch=r31
|
||||
mtcr r28
|
||||
bns- cr6, major_0x02ccc_0x504
|
||||
lwz r8, 0x0064(r6)
|
||||
|
@ -688,16 +679,7 @@ IntDecrementer_0x54
|
|||
addi r8, r8, 0x01
|
||||
stw r8, 0x0e8c(r1)
|
||||
bl TimerDispatch
|
||||
sync
|
||||
lwz r8, PSA.SchLock + Lock.Count(r1)
|
||||
cmpwi cr1, r8, 0x00
|
||||
li r8, 0x00
|
||||
bne+ cr1, IntDecrementer_0x9c
|
||||
mflr r8
|
||||
bl panic
|
||||
|
||||
IntDecrementer_0x9c
|
||||
stw r8, PSA.SchLock + Lock.Count(r1)
|
||||
_AssertAndRelease PSA.SchLock, scratch=r8
|
||||
|
||||
; r6 = ewa
|
||||
bl Restore_r14_r31
|
||||
|
@ -1115,16 +1097,7 @@ IntDSIOtherOther_0x1c8
|
|||
_Lock PSA.HTABLock, scratch1=r28, scratch2=r31
|
||||
|
||||
bl PagingFunc1
|
||||
sync
|
||||
lwz r28, -0x0b90(r1)
|
||||
cmpwi cr1, r28, 0x00
|
||||
li r28, 0x00
|
||||
bne+ cr1, IntDSIOtherOther_0x208
|
||||
mflr r28
|
||||
bl panic
|
||||
|
||||
IntDSIOtherOther_0x208
|
||||
stw r28, -0x0b90(r1)
|
||||
_AssertAndRelease PSA.HTABLock, scratch=r28
|
||||
mfsprg r28, 2
|
||||
mtlr r28
|
||||
beq+ IntDSIOtherOther_0x19c
|
||||
|
@ -1195,16 +1168,7 @@ IntMachineCheckMemRetry ; OUTSIDE REFERER
|
|||
IntMachineCheckMemRetry_0x124
|
||||
sync
|
||||
isync
|
||||
sync
|
||||
lwz r28, -0x0b90(r1)
|
||||
cmpwi cr1, r28, 0x00
|
||||
li r28, 0x00
|
||||
bne+ cr1, IntMachineCheckMemRetry_0x148
|
||||
mflr r28
|
||||
bl panic
|
||||
|
||||
IntMachineCheckMemRetry_0x148
|
||||
stw r28, -0x0b90(r1)
|
||||
_AssertAndRelease PSA.HTABLock, scratch=r28
|
||||
|
||||
IntMachineCheckMemRetry_0x14c ; OUTSIDE REFERER
|
||||
cmplw r10, r19
|
||||
|
@ -1249,16 +1213,7 @@ IntISI ; OUTSIDE REFERER
|
|||
|
||||
mr r27, r10
|
||||
bl PagingFunc1
|
||||
sync
|
||||
lwz r28, -0x0b90(r1)
|
||||
cmpwi cr1, r28, 0x00
|
||||
li r28, 0x00
|
||||
bne+ cr1, IntISI_0x50
|
||||
mflr r28
|
||||
bl panic
|
||||
|
||||
IntISI_0x50
|
||||
stw r28, -0x0b90(r1)
|
||||
_AssertAndRelease PSA.HTABLock, scratch=r28
|
||||
mfsprg r8, 0
|
||||
bne- major_0x039dc
|
||||
mfsprg r24, 3
|
||||
|
@ -1392,16 +1347,7 @@ IntDSIOther ; OUTSIDE REFERER
|
|||
|
||||
mfspr r27, dar
|
||||
bl PagingFunc1
|
||||
sync
|
||||
lwz r28, -0x0b90(r1)
|
||||
cmpwi cr1, r28, 0x00
|
||||
li r28, 0x00
|
||||
bne+ cr1, IntDSIOther_0x58
|
||||
mflr r28
|
||||
bl panic
|
||||
|
||||
IntDSIOther_0x58
|
||||
stw r28, -0x0b90(r1)
|
||||
_AssertAndRelease PSA.HTABLock, scratch=r28
|
||||
mfsprg r8, 0
|
||||
bne+ major_0x039dc
|
||||
lmw r14, 0x0038(r8)
|
||||
|
@ -1898,16 +1844,7 @@ IntPerfMonitor ; OUTSIDE REFERER
|
|||
bl major_0x0db04
|
||||
|
||||
IntPerfMonitor_0x88
|
||||
sync
|
||||
lwz r8, PSA.SchLock + Lock.Count(r1)
|
||||
cmpwi cr1, r8, 0x00
|
||||
li r8, 0x00
|
||||
bne+ cr1, IntPerfMonitor_0xa4
|
||||
mflr r8
|
||||
bl panic
|
||||
|
||||
IntPerfMonitor_0xa4
|
||||
stw r8, PSA.SchLock + Lock.Count(r1)
|
||||
_AssertAndRelease PSA.SchLock, scratch=r8
|
||||
|
||||
; r6 = ewa
|
||||
bl Restore_r14_r31
|
||||
|
@ -1944,16 +1881,7 @@ IntThermalEvent ; OUTSIDE REFERER
|
|||
bl major_0x0db04
|
||||
|
||||
IntThermalEvent_0x68
|
||||
sync
|
||||
lwz r8, PSA.SchLock + Lock.Count(r1)
|
||||
cmpwi cr1, r8, 0x00
|
||||
li r8, 0x00
|
||||
bne+ cr1, IntThermalEvent_0x84
|
||||
mflr r8
|
||||
bl panic
|
||||
|
||||
IntThermalEvent_0x84
|
||||
stw r8, PSA.SchLock + Lock.Count(r1)
|
||||
_AssertAndRelease PSA.SchLock, scratch=r8
|
||||
|
||||
; r6 = ewa
|
||||
bl Restore_r14_r31
|
||||
|
|
|
@ -134,17 +134,7 @@ MPCallBad ; OUTSIDE REFERER
|
|||
; MPCall_75
|
||||
|
||||
ReleaseAndMPCallWasBad ; OUTSIDE REFERER
|
||||
sync
|
||||
lwz r16, PSA.SchLock + Lock.Count(r1)
|
||||
cmpwi cr1, r16, 0x00
|
||||
li r16, 0x00
|
||||
|
||||
bne+ cr1, @dont_panic
|
||||
mflr r16
|
||||
bl panic
|
||||
@dont_panic
|
||||
|
||||
stw r16, PSA.SchLock + Lock.Count(r1)
|
||||
_AssertAndRelease PSA.SchLock, scratch=r16
|
||||
b MPCallBad
|
||||
|
||||
|
||||
|
@ -241,17 +231,7 @@ ReleaseAndMPCallWasBad ; OUTSIDE REFERER
|
|||
; > r1 = kdp
|
||||
|
||||
ReleaseAndReturnZeroFromMPCall ; OUTSIDE REFERER
|
||||
sync
|
||||
lwz r16, PSA.SchLock + Lock.Count(r1)
|
||||
cmpwi cr1, r16, 0x00
|
||||
li r16, 0x00
|
||||
|
||||
bne+ cr1, @dont_panic
|
||||
mflr r16
|
||||
bl panic
|
||||
@dont_panic
|
||||
|
||||
stw r16, PSA.SchLock + Lock.Count(r1)
|
||||
_AssertAndRelease PSA.SchLock, scratch=r16
|
||||
|
||||
|
||||
|
||||
|
@ -347,17 +327,7 @@ ReturnZeroFromMPCall ; OUTSIDE REFERER
|
|||
; MPCall_95
|
||||
|
||||
major_0x0af60 ; OUTSIDE REFERER
|
||||
sync
|
||||
lwz r16, PSA.SchLock + Lock.Count(r1)
|
||||
cmpwi cr1, r16, 0x00
|
||||
li r16, 0x00
|
||||
|
||||
bne+ cr1, @dont_panic
|
||||
mflr r16
|
||||
bl panic
|
||||
@dont_panic
|
||||
|
||||
stw r16, PSA.SchLock + Lock.Count(r1)
|
||||
_AssertAndRelease PSA.SchLock, scratch=r16
|
||||
|
||||
|
||||
|
||||
|
@ -391,51 +361,21 @@ major_0x0af60_0x20 ; OUTSIDE REFERER
|
|||
|
||||
|
||||
ReleaseAndTimeoutMPCall ; OUTSIDE REFERER
|
||||
sync
|
||||
lwz r16, PSA.SchLock + Lock.Count(r1)
|
||||
cmpwi cr1, r16, 0x00
|
||||
li r16, 0x00
|
||||
|
||||
bne+ cr1, @dont_panic
|
||||
mflr r16
|
||||
bl panic
|
||||
@dont_panic
|
||||
|
||||
stw r16, PSA.SchLock + Lock.Count(r1)
|
||||
_AssertAndRelease PSA.SchLock, scratch=r16
|
||||
li r3, kMPTimeOutErr
|
||||
b CommonMPCallReturnPath
|
||||
|
||||
|
||||
|
||||
ReleaseAndReturnMPCallTaskAborted ; OUTSIDE REFERER
|
||||
sync
|
||||
lwz r16, PSA.SchLock + Lock.Count(r1)
|
||||
cmpwi cr1, r16, 0x00
|
||||
li r16, 0x00
|
||||
|
||||
bne+ cr1, @dont_panic
|
||||
mflr r16
|
||||
bl panic
|
||||
@dont_panic
|
||||
|
||||
stw r16, PSA.SchLock + Lock.Count(r1)
|
||||
_AssertAndRelease PSA.SchLock, scratch=r16
|
||||
li r3, kMPTaskAbortedErr
|
||||
b CommonMPCallReturnPath
|
||||
|
||||
|
||||
|
||||
ReleaseAndReturnMPCallOOM ; OUTSIDE REFERER
|
||||
sync
|
||||
lwz r16, PSA.SchLock + Lock.Count(r1)
|
||||
cmpwi cr1, r16, 0x00
|
||||
li r16, 0x00
|
||||
|
||||
bne+ cr1, @dont_panic
|
||||
mflr r16
|
||||
bl panic
|
||||
@dont_panic
|
||||
|
||||
stw r16, PSA.SchLock + Lock.Count(r1)
|
||||
_AssertAndRelease PSA.SchLock, scratch=r16
|
||||
|
||||
|
||||
|
||||
|
@ -472,16 +412,7 @@ ReturnMPCallOOM ; OUTSIDE REFERER
|
|||
; MPCall_52
|
||||
|
||||
ReleaseAndReturnMPCallBlueBlocking ; OUTSIDE REFERER
|
||||
sync
|
||||
lwz r16, PSA.SchLock + Lock.Count(r1)
|
||||
cmpwi cr1, r16, 0x00
|
||||
li r16, 0x00
|
||||
bne+ cr1, major_0x0b02c_0x1c
|
||||
mflr r16
|
||||
bl panic
|
||||
|
||||
major_0x0b02c_0x1c
|
||||
stw r16, PSA.SchLock + Lock.Count(r1)
|
||||
_AssertAndRelease PSA.SchLock + Lock.Count, scratch=r16
|
||||
|
||||
|
||||
|
||||
|
@ -526,16 +457,7 @@ ReturnMPCallBlueBlocking ; OUTSIDE REFERER
|
|||
; MPCall_129
|
||||
|
||||
major_0x0b054 ; OUTSIDE REFERER
|
||||
sync
|
||||
lwz r16, PSA.SchLock + Lock.Count(r1)
|
||||
cmpwi cr1, r16, 0x00
|
||||
li r16, 0x00
|
||||
bne+ cr1, major_0x0b054_0x1c
|
||||
mflr r16
|
||||
bl panic
|
||||
|
||||
major_0x0b054_0x1c
|
||||
stw r16, PSA.SchLock + Lock.Count(r1)
|
||||
_AssertAndRelease PSA.SchLock + Lock.Count, scratch=r16
|
||||
|
||||
|
||||
|
||||
|
@ -643,34 +565,14 @@ ReturnParamErrFromMPCall ; OUTSIDE REFERER
|
|||
; MPCall_129
|
||||
|
||||
ReleaseAndReturnMPCallPrivilegedErr ; OUTSIDE REFERER
|
||||
sync
|
||||
lwz r16, PSA.SchLock + Lock.Count(r1)
|
||||
cmpwi cr1, r16, 0x00
|
||||
li r16, 0x00
|
||||
|
||||
bne+ cr1, @dont_panic
|
||||
mflr r16
|
||||
bl panic
|
||||
@dont_panic
|
||||
|
||||
stw r16, PSA.SchLock + Lock.Count(r1)
|
||||
_AssertAndRelease PSA.SchLock, scratch=r16
|
||||
li r3, kMPPrivilegedErr
|
||||
b CommonMPCallReturnPath
|
||||
|
||||
|
||||
|
||||
ReleaseAndReturnMPCallInvalidIDErr ; OUTSIDE REFERER
|
||||
sync
|
||||
lwz r16, PSA.SchLock + Lock.Count(r1)
|
||||
cmpwi cr1, r16, 0x00
|
||||
li r16, 0x00
|
||||
|
||||
bne+ cr1, @dont_panic
|
||||
mflr r16
|
||||
bl panic
|
||||
@dont_panic
|
||||
|
||||
stw r16, PSA.SchLock + Lock.Count(r1)
|
||||
_AssertAndRelease PSA.SchLock, scratch=r16
|
||||
|
||||
|
||||
|
||||
|
@ -705,16 +607,7 @@ ReturnMPCallInvalidIDErr ; OUTSIDE REFERER
|
|||
; KCUnholdPages
|
||||
|
||||
major_0x0b0cc ; OUTSIDE REFERER
|
||||
sync
|
||||
lwz r16, PSA.SchLock + Lock.Count(r1)
|
||||
cmpwi cr1, r16, 0x00
|
||||
li r16, 0x00
|
||||
bne+ cr1, major_0x0b0cc_0x1c
|
||||
mflr r16
|
||||
bl panic
|
||||
|
||||
major_0x0b0cc_0x1c
|
||||
stw r16, PSA.SchLock + Lock.Count(r1)
|
||||
_AssertAndRelease PSA.SchLock + Lock.Count, scratch=r16
|
||||
li r3, -0x725a
|
||||
b CommonMPCallReturnPath
|
||||
|
||||
|
@ -757,17 +650,7 @@ AlternateMPCallReturnPath ; OUTSIDE REFERER
|
|||
b TrulyCommonMPCallReturnPath
|
||||
|
||||
ReleaseAndReturnMPCall ; OUTSIDE REFERER
|
||||
sync
|
||||
lwz r16, PSA.SchLock + Lock.Count(r1)
|
||||
cmpwi cr1, r16, 0x00
|
||||
li r16, 0x00
|
||||
|
||||
bne+ cr1, @dont_panic
|
||||
mflr r16
|
||||
bl panic
|
||||
@dont_panic
|
||||
|
||||
stw r16, PSA.SchLock + Lock.Count(r1)
|
||||
_AssertAndRelease PSA.SchLock, scratch=r16
|
||||
|
||||
|
||||
|
||||
|
@ -852,16 +735,7 @@ MPCall_0 ; OUTSIDE REFERER
|
|||
bl VMDoSomeIO
|
||||
mr r7, r30
|
||||
mr r6, r29
|
||||
sync
|
||||
lwz r16, -0x0b90(r1)
|
||||
cmpwi cr1, r16, 0x00
|
||||
li r16, 0x00
|
||||
bne+ cr1, MPCall_0_0x8c
|
||||
mflr r16
|
||||
bl panic
|
||||
|
||||
MPCall_0_0x8c
|
||||
stw r16, -0x0b90(r1)
|
||||
_AssertAndRelease PSA.HTABLock, scratch=r16
|
||||
|
||||
_Lock PSA.PoolLock, scratch1=r16, scratch2=r17
|
||||
|
||||
|
@ -872,31 +746,13 @@ MPCall_0_0x8c
|
|||
; r8 = anywhere in new page (phys)
|
||||
; r9 = page_virt
|
||||
bl ExtendPool
|
||||
sync
|
||||
lwz r16, -0x0ad0(r1)
|
||||
cmpwi cr1, r16, 0x00
|
||||
li r16, 0x00
|
||||
bne+ cr1, MPCall_0_0xd0
|
||||
mflr r16
|
||||
bl panic
|
||||
|
||||
MPCall_0_0xd0
|
||||
stw r16, -0x0ad0(r1)
|
||||
_AssertAndRelease PSA.PoolLock, scratch=r16
|
||||
b ReturnZeroFromMPCall
|
||||
|
||||
MPCall_0_0xd8
|
||||
mr r7, r30
|
||||
mr r6, r29
|
||||
sync
|
||||
lwz r16, -0x0b90(r1)
|
||||
cmpwi cr1, r16, 0x00
|
||||
li r16, 0x00
|
||||
bne+ cr1, MPCall_0_0xfc
|
||||
mflr r16
|
||||
bl panic
|
||||
|
||||
MPCall_0_0xfc
|
||||
stw r16, -0x0b90(r1)
|
||||
_AssertAndRelease PSA.HTABLock, scratch=r16
|
||||
b ReturnMPCallOOM
|
||||
|
||||
|
||||
|
@ -1148,16 +1004,7 @@ MPCall_6 ; OUTSIDE REFERER
|
|||
bne+ cr1, ReleaseAndReturnMPCallOOM
|
||||
mr r8, r3
|
||||
bl DeleteID
|
||||
sync
|
||||
lwz r16, PSA.SchLock + Lock.Count(r1)
|
||||
cmpwi cr1, r16, 0x00
|
||||
li r16, 0x00
|
||||
bne+ cr1, MPCall_6_0x68
|
||||
mflr r16
|
||||
bl panic
|
||||
|
||||
MPCall_6_0x68
|
||||
stw r16, PSA.SchLock + Lock.Count(r1)
|
||||
_AssertAndRelease PSA.SchLock + Lock.Count, scratch=r16
|
||||
mr r8, r31
|
||||
bl PoolFree
|
||||
b ReturnZeroFromMPCall
|
||||
|
@ -1184,16 +1031,7 @@ MPCall_6_0xb4
|
|||
bl TaskReadyAsPrev
|
||||
mr r8, r31
|
||||
bl major_0x14af8
|
||||
sync
|
||||
lwz r16, PSA.SchLock + Lock.Count(r1)
|
||||
cmpwi cr1, r16, 0x00
|
||||
li r16, 0x00
|
||||
bne+ cr1, MPCall_6_0xec
|
||||
mflr r16
|
||||
bl panic
|
||||
|
||||
MPCall_6_0xec
|
||||
stw r16, PSA.SchLock + Lock.Count(r1)
|
||||
_AssertAndRelease PSA.SchLock + Lock.Count, scratch=r16
|
||||
b CommonMPCallReturnPath
|
||||
|
||||
|
||||
|
@ -1238,16 +1076,7 @@ KCYieldWithHint_0x68
|
|||
KCYieldWithHint_0x7c
|
||||
mr r8, r31
|
||||
bl major_0x14af8
|
||||
sync
|
||||
lwz r16, PSA.SchLock + Lock.Count(r1)
|
||||
cmpwi cr1, r16, 0x00
|
||||
li r16, 0x00
|
||||
bne+ cr1, KCYieldWithHint_0xa0
|
||||
mflr r16
|
||||
bl panic
|
||||
|
||||
KCYieldWithHint_0xa0
|
||||
stw r16, PSA.SchLock + Lock.Count(r1)
|
||||
_AssertAndRelease PSA.SchLock + Lock.Count, scratch=r16
|
||||
b CommonMPCallReturnPath
|
||||
|
||||
|
||||
|
@ -1872,21 +1701,8 @@ KCStartCPU ; OUTSIDE REFERER
|
|||
andi. r8, r8, 0xbfcf
|
||||
stw r8, Task.ContextBlock + ContextBlock.MSR(r31)
|
||||
|
||||
sync ; flush pending lwarxen?
|
||||
|
||||
|
||||
; This feels like cheating with the Sch lock
|
||||
|
||||
lwz r16, PSA.SchLock + Lock.Count(r1)
|
||||
cmpwi cr1, r16, 0
|
||||
li r16, 0
|
||||
|
||||
bne+ cr1, @do_not_panic
|
||||
mflr r16
|
||||
bl panic
|
||||
@do_not_panic
|
||||
|
||||
stw r16, PSA.SchLock + Lock.Count(r1)
|
||||
_AssertAndRelease PSA.SchLock, scratch=r16
|
||||
|
||||
|
||||
; Some EWA/KDP stuff I do not understand
|
||||
|
@ -1982,16 +1798,7 @@ KCStopScheduling ; OUTSIDE REFERER
|
|||
stw r8, 0x01fc(r31)
|
||||
|
||||
KCStopScheduling_0x94
|
||||
sync
|
||||
lwz r16, PSA.SchLock + Lock.Count(r1)
|
||||
cmpwi cr1, r16, 0x00
|
||||
li r16, 0x00
|
||||
bne+ cr1, KCStopScheduling_0xb0
|
||||
mflr r16
|
||||
bl panic
|
||||
|
||||
KCStopScheduling_0xb0
|
||||
stw r16, PSA.SchLock + Lock.Count(r1)
|
||||
_AssertAndRelease PSA.SchLock + Lock.Count, scratch=r16
|
||||
b MPCall_6_0x78
|
||||
|
||||
|
||||
|
@ -2508,16 +2315,7 @@ MPCall_115_0x64
|
|||
cmpwi r16, 0x00
|
||||
beq+ MPCall_115_0x54
|
||||
stw r30, 0x000c(r31)
|
||||
sync
|
||||
lwz r16, -0x0af0(r1)
|
||||
cmpwi cr1, r16, 0x00
|
||||
li r16, 0x00
|
||||
bne+ cr1, MPCall_115_0x90
|
||||
mflr r16
|
||||
bl panic
|
||||
|
||||
MPCall_115_0x90
|
||||
stw r16, -0x0af0(r1)
|
||||
_AssertAndRelease PSA.DbugLock, scratch=r16
|
||||
|
||||
MPCall_115_0x94
|
||||
cmpwi r5, 0x00
|
||||
|
|
|
@ -162,6 +162,19 @@ HalfLoadedReg set (®)
|
|||
mr r9, &scratch2
|
||||
ENDM
|
||||
|
||||
MACRO
|
||||
_AssertAndRelease &lockoffset, &scratch==r18
|
||||
sync
|
||||
lwz &scratch, &lockoffset(r1)
|
||||
cmpwi cr1, &scratch, 0
|
||||
li &scratch, 0
|
||||
bne+ cr1, @okay
|
||||
mflr &scratch
|
||||
bl panic
|
||||
|
||||
@okay stw &scratch, &lockoffset(r1)
|
||||
ENDM
|
||||
|
||||
MACRO
|
||||
_bset &dest, &src, &bit
|
||||
|
||||
|
|
|
@ -266,17 +266,8 @@ PoolFree ; OUTSIDE REFERER
|
|||
|
||||
PoolCommonReturn ; OUTSIDE REFERER
|
||||
mfsprg r18, 0
|
||||
sync
|
||||
|
||||
lwz r15, PSA.PoolLock + Lock.Count(r1)
|
||||
cmpwi cr1, r15, 0
|
||||
li r15, 0
|
||||
bne+ cr1, @no_panic
|
||||
mflr r15
|
||||
bl panic
|
||||
@no_panic
|
||||
|
||||
stw r15, PSA.PoolLock + Lock.Count(r1)
|
||||
_AssertAndRelease PSA.PoolLock, scratch=r15
|
||||
|
||||
lwz r17, EWA.PoolSavedLR(r18)
|
||||
mtlr r17
|
||||
|
|
|
@ -98,31 +98,12 @@ CommonPIHPath_0xc ; OUTSIDE REFERER
|
|||
and r13, r13, r29
|
||||
|
||||
@negative
|
||||
sync
|
||||
lwz r8, PSA.PIHLock(r1)
|
||||
cmpwi cr1, r8, 0
|
||||
li r8, 0
|
||||
|
||||
bne+ cr1, @pih_unlocked
|
||||
mflr r8
|
||||
bl panic
|
||||
@pih_unlocked
|
||||
|
||||
stw r8, PSA.PIHLock(r1) ; redundant
|
||||
_AssertAndRelease PSA.PIHLock, scratch=r8
|
||||
bl Restore_r20_r31
|
||||
b skeleton_key
|
||||
|
||||
CommonPIHPath_0x78
|
||||
sync
|
||||
lwz r8, -0x0b70(r1)
|
||||
cmpwi cr1, r8, 0x00
|
||||
li r8, 0x00
|
||||
bne+ cr1, CommonPIHPath_0x94
|
||||
mflr r8
|
||||
bl panic
|
||||
|
||||
CommonPIHPath_0x94
|
||||
stw r8, -0x0b70(r1)
|
||||
_AssertAndRelease PSA.PIHLock, scratch=r8
|
||||
bl Save_r14_r19
|
||||
|
||||
_Lock PSA.SchLock, scratch1=r8, scratch2=r9
|
||||
|
@ -139,16 +120,7 @@ CommonPIHPath_0x94
|
|||
stw r9, 0x0010(r30)
|
||||
stw r22, 0x0014(r30)
|
||||
bl major_0x0db04
|
||||
sync
|
||||
lwz r8, PSA.SchLock + Lock.Count(r1)
|
||||
cmpwi cr1, r8, 0x00
|
||||
li r8, 0x00
|
||||
bne+ cr1, CommonPIHPath_0xf4
|
||||
mflr r8
|
||||
bl panic
|
||||
|
||||
CommonPIHPath_0xf4
|
||||
stw r8, PSA.SchLock + Lock.Count(r1)
|
||||
_AssertAndRelease PSA.SchLock, scratch=r8
|
||||
|
||||
; r6 = ewa
|
||||
bl Restore_r14_r31
|
||||
|
@ -158,16 +130,7 @@ CommonPIHPath_0x100
|
|||
li r27, 0x00
|
||||
lwz r23, 0x067c(r1)
|
||||
stw r27, -0x0428(r1)
|
||||
sync
|
||||
lwz r8, PSA.SchLock + Lock.Count(r1)
|
||||
cmpwi cr1, r8, 0x00
|
||||
li r8, 0x00
|
||||
bne+ cr1, CommonPIHPath_0x128
|
||||
mflr r8
|
||||
bl panic
|
||||
|
||||
CommonPIHPath_0x128
|
||||
stw r8, PSA.SchLock + Lock.Count(r1)
|
||||
_AssertAndRelease PSA.SchLock, scratch=r8
|
||||
bl Restore_r14_r19
|
||||
|
||||
_Lock PSA.PIHLock, scratch1=r8, scratch2=r9
|
||||
|
@ -175,18 +138,7 @@ CommonPIHPath_0x128
|
|||
b CommonPIHPath_0xc
|
||||
|
||||
CommonPIHPath_0x14c
|
||||
sync
|
||||
lwz r8, -0x0b70(r1)
|
||||
cmpwi cr1, r8, 0x00
|
||||
li r8, 0x00
|
||||
bne+ cr1, CommonPIHPath_0x168
|
||||
mflr r8
|
||||
bl panic
|
||||
|
||||
CommonPIHPath_0x168
|
||||
|
||||
; This is where we have some real fun...
|
||||
stw r8, -0x0b70(r1)
|
||||
_AssertAndRelease PSA.PIHLock, scratch=r8
|
||||
bl Save_r14_r19
|
||||
|
||||
_Lock PSA.SchLock, scratch1=r16, scratch2=r17
|
||||
|
@ -245,16 +197,7 @@ CommonPIHPath_0x218
|
|||
CommonPIHPath_0x230
|
||||
mr r8, r31
|
||||
bl major_0x14af8
|
||||
sync
|
||||
lwz r16, PSA.SchLock + Lock.Count(r1)
|
||||
cmpwi cr1, r16, 0x00
|
||||
li r16, 0x00
|
||||
bne+ cr1, CommonPIHPath_0x254
|
||||
mflr r16
|
||||
bl panic
|
||||
|
||||
CommonPIHPath_0x254
|
||||
stw r16, PSA.SchLock + Lock.Count(r1)
|
||||
_AssertAndRelease PSA.SchLock, scratch=r16
|
||||
|
||||
; r6 = ewa
|
||||
bl Restore_r14_r31
|
||||
|
|
|
@ -1602,16 +1602,7 @@ NKDeleteTimer ; OUTSIDE REFERER
|
|||
bl major_0x136c8
|
||||
|
||||
NKDeleteTimer_0x48
|
||||
sync
|
||||
lwz r16, PSA.SchLock + Lock.Count(r1)
|
||||
cmpwi cr1, r16, 0x00
|
||||
li r16, 0x00
|
||||
bne+ cr1, NKDeleteTimer_0x64
|
||||
mflr r16
|
||||
bl panic
|
||||
|
||||
NKDeleteTimer_0x64
|
||||
stw r16, PSA.SchLock + Lock.Count(r1)
|
||||
_AssertAndRelease PSA.SchLock, scratch=r16
|
||||
lwz r8, 0x001c(r31)
|
||||
cmpwi r8, 0x00
|
||||
bnel- PoolFree
|
||||
|
|
|
@ -172,16 +172,7 @@ kcRTASDispatch_0x190
|
|||
lwz r29, 0x01ec(r6)
|
||||
lwz r30, 0x01f4(r6)
|
||||
lwz r31, 0x01fc(r6)
|
||||
sync
|
||||
lwz r8, -0x0b10(r1)
|
||||
cmpwi cr1, r8, 0x00
|
||||
li r8, 0x00
|
||||
bne+ cr1, kcRTASDispatch_0x268
|
||||
mflr r8
|
||||
bl panic
|
||||
|
||||
kcRTASDispatch_0x268
|
||||
stw r8, -0x0b10(r1)
|
||||
_AssertAndRelease PSA.RTASLock, scratch=r8
|
||||
li r3, 0x00
|
||||
b skeleton_key
|
||||
|
||||
|
|
|
@ -1267,16 +1267,7 @@ major_0x142dc_0x1bc
|
|||
lbz r28, 0x0019(r31)
|
||||
stb r27, 0x0018(r31)
|
||||
stb r28, -0x0117(r14)
|
||||
sync
|
||||
lwz r27, PSA.SchLock + Lock.Count(r1)
|
||||
cmpwi cr1, r27, 0x00
|
||||
li r27, 0x00
|
||||
bne+ cr1, major_0x142dc_0x1e8
|
||||
mflr r27
|
||||
bl panic
|
||||
|
||||
major_0x142dc_0x1e8
|
||||
stw r27, PSA.SchLock + Lock.Count(r1)
|
||||
_AssertAndRelease PSA.SchLock, scratch=r27
|
||||
|
||||
; r6 = ewa
|
||||
bl Restore_r14_r31
|
||||
|
@ -1587,16 +1578,7 @@ major_0x14548_0x24c
|
|||
lfd f31, 0x02f8(r6)
|
||||
|
||||
major_0x14548_0x380
|
||||
sync
|
||||
lwz r8, PSA.SchLock + Lock.Count(r1)
|
||||
cmpwi cr1, r8, 0x00
|
||||
li r8, 0x00
|
||||
bne+ cr1, major_0x14548_0x39c
|
||||
mflr r8
|
||||
bl panic
|
||||
|
||||
major_0x14548_0x39c
|
||||
stw r8, PSA.SchLock + Lock.Count(r1)
|
||||
_AssertAndRelease PSA.SchLock, scratch=r8
|
||||
|
||||
; sprg0 = for r1 and r6
|
||||
; r1 = kdp
|
||||
|
@ -2182,16 +2164,7 @@ StopProcessor
|
|||
stw r17, 0x0008(r18)
|
||||
stw r17, 0x000c(r16)
|
||||
bl TasksFuncThatIsNotAMPCall
|
||||
sync
|
||||
lwz r16, PSA.SchLock + Lock.Count(r1)
|
||||
cmpwi cr1, r16, 0x00
|
||||
li r16, 0x00
|
||||
bne+ cr1, StopProcessor_0xa0
|
||||
mflr r16
|
||||
bl panic
|
||||
|
||||
StopProcessor_0xa0
|
||||
stw r16, PSA.SchLock + Lock.Count(r1)
|
||||
_AssertAndRelease PSA.SchLock, scratch=r16
|
||||
_log 'SIGP kStopProcessor^n'
|
||||
li r3, 0x03
|
||||
lhz r4, 0x022a(r31)
|
||||
|
|
|
@ -398,16 +398,7 @@ MPCall_9 ; OUTSIDE REFERER
|
|||
stb r17, 0x0019(r31)
|
||||
mr r8, r31
|
||||
bl major_0x14af8_0xa0
|
||||
sync
|
||||
lwz r16, PSA.SchLock + Lock.Count(r1)
|
||||
cmpwi cr1, r16, 0x00
|
||||
li r16, 0x00
|
||||
bne+ cr1, MPCall_9_0x8c
|
||||
mflr r16
|
||||
bl panic
|
||||
|
||||
MPCall_9_0x8c
|
||||
stw r16, PSA.SchLock + Lock.Count(r1)
|
||||
_AssertAndRelease PSA.SchLock, scratch=r16
|
||||
subi r10, r10, 4
|
||||
b MPCall_6_0x78
|
||||
|
||||
|
@ -728,16 +719,7 @@ KCThrowException_0xb8
|
|||
stb r17, 0x0019(r31)
|
||||
mr r8, r31
|
||||
bl major_0x14af8_0xa0
|
||||
sync
|
||||
lwz r16, PSA.SchLock + Lock.Count(r1)
|
||||
cmpwi cr1, r16, 0x00
|
||||
li r16, 0x00
|
||||
bne+ cr1, KCThrowException_0xf0
|
||||
mflr r16
|
||||
bl panic
|
||||
|
||||
KCThrowException_0xf0
|
||||
stw r16, PSA.SchLock + Lock.Count(r1)
|
||||
_AssertAndRelease PSA.SchLock, scratch=r16
|
||||
subi r10, r10, 4
|
||||
b MPCall_6_0x78
|
||||
|
||||
|
|
|
@ -513,16 +513,9 @@ panic_common
|
|||
_log ' - wish me luck.^n'
|
||||
bl prereturn
|
||||
lwz r8, 0x0904(r1)
|
||||
sync
|
||||
|
||||
lwz r9, PSA.ThudLock + Lock.Count(r1)
|
||||
cmpwi cr1, r9, 0x00
|
||||
li r9, 0x00
|
||||
bne+ cr1, @0x7b4
|
||||
mflr r9
|
||||
bl panic
|
||||
@0x7b4
|
||||
stw r9, PSA.ThudLock + Lock.Count(r1)
|
||||
_AssertAndRelease PSA.ThudLock, scratch=r9
|
||||
|
||||
mtlr r8
|
||||
blr
|
||||
|
||||
|
|
|
@ -188,16 +188,7 @@ VMReturn ; OUTSIDE REFERER
|
|||
lwz r16, 0x0040(r8)
|
||||
lwz r7, -0x0010(r8)
|
||||
lwz r6, -0x0014(r8)
|
||||
sync
|
||||
lwz r8, -0x0b90(r1)
|
||||
cmpwi cr1, r8, 0x00
|
||||
li r8, 0x00
|
||||
bne+ cr1, VMReturn_0x4c
|
||||
mflr r8
|
||||
bl panic
|
||||
|
||||
VMReturn_0x4c
|
||||
stw r8, -0x0b90(r1)
|
||||
_AssertAndRelease PSA.HTABLock, scratch=r8
|
||||
b skeleton_key
|
||||
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user