diff options
Diffstat (limited to 'arm7/asm/OS_spinLock.s')
-rw-r--r-- | arm7/asm/OS_spinLock.s | 278 |
1 files changed, 0 insertions, 278 deletions
diff --git a/arm7/asm/OS_spinLock.s b/arm7/asm/OS_spinLock.s deleted file mode 100644 index bb15916e..00000000 --- a/arm7/asm/OS_spinLock.s +++ /dev/null @@ -1,278 +0,0 @@ - .include "asm/macros.inc" - .include "global.inc" - - .section .bss - - .global _03807780 -_03807780: ;0x03807780 - .space 0x03807784 - 0x03807780 - - .section .text - - arm_func_start OS_UnLockCartridge -OS_UnLockCartridge: ; 0x037F8A18 - ldr r1, _037F8A20 ; =OS_UnlockCartridge - bx r1 -_037F8A20: .word OS_UnlockCartridge - - arm_func_start OS_GetLockID -OS_GetLockID: ; 0x037F8A24 - ldr r3, _037F8AB4 ; =0x027FFFB8 - ldr r1, [r3] - mov r2, #0 - mov r0, #-2147483648 ; 0x80000000 -_037F8A34: - tst r1, r0 - bne _037F8A50 - add r2, r2, #1 - cmp r2, #32 - beq _037F8A50 - mov r0, r0, lsr #1 - b _037F8A34 -_037F8A50: - cmp r2, #32 - movne r0, #128 ; 0x80 - bne _037F8A98 - add r3, r3, #4 - ldr r1, [r3] - mov r2, #0 - mov r0, #-2147483648 ; 0x80000000 -_037F8A6C: - tst r1, r0 - bne _037F8A88 - add r2, r2, #1 - cmp r2, #32 - beq _037F8A88 - mov r0, r0, lsr #1 - b _037F8A6C -_037F8A88: - cmp r2, #32 - ldr r0, _037F8AB8 ; =0xFFFFFFFD - bxeq lr - mov r0, #160 ; 0xa0 -_037F8A98: - add r0, r0, r2 - mov r1, #-2147483648 ; 0x80000000 - mov r1, r1, lsr r2 - ldr r2, [r3] - bic r2, r2, r1 - str r2, [r3] - bx lr -_037F8AB4: .word 0x027FFFB8 -_037F8AB8: .word 0xFFFFFFFD - - arm_func_start OS_ReleaseLockID -OS_ReleaseLockID: ; 0x037F8ABC - ldr r3, _037F8AE8 ; =0x027FFFB8 - cmp r0, #160 ; 0xa0 - addpl r3, r3, #4 - subpl r0, r0, #160 ; 0xa0 - submi r0, r0, #128 ; 0x80 - mov r1, #-2147483648 ; 0x80000000 - mov r1, r1, lsr r0 - ldr r2, [r3] - orr r2, r2, r1 - str r2, [r3] - bx lr -_037F8AE8: .word 0x027FFFB8 - - arm_func_start OS_ReadOwnerOfLockWord -OS_ReadOwnerOfLockWord: ; 0x037F8AEC - ldrh r0, [r0, #4] - bx lr - - arm_func_start OSi_FreeCartridgeBus -OSi_FreeCartridgeBus: ;0x037F8AF4 - bx lr - - arm_func_start OSi_AllocateCartridgeBus -OSi_AllocateCartridgeBus: ;0x037F8AF8 - bx lr - - arm_func_start OS_TryLockCartridge -OS_TryLockCartridge: ; 0x037F8AFC - ldr r1, _037F8B10 ; =0x027FFFE8 - ldr r2, _037F8B14 ; =OSi_AllocateCartridgeBus - mov r3, #1 - ldr ip, _037F8B18 ; =OSi_DoTryLockByWord - bx ip -_037F8B10: .word 0x027FFFE8 -_037F8B14: .word OSi_AllocateCartridgeBus -_037F8B18: .word OSi_DoTryLockByWord - - arm_func_start OS_UnlockCartridge -OS_UnlockCartridge: ; 0x037F8B1C - ldr r1, _037F8B30 ; =0x027FFFE8 - ldr r2, _037F8B34 ; =OSi_FreeCartridgeBus - mov r3, #1 - ldr ip, _037F8B38 ; =OSi_DoUnlockByWord - bx ip -_037F8B30: .word 0x027FFFE8 -_037F8B34: .word OSi_FreeCartridgeBus -_037F8B38: .word OSi_DoUnlockByWord - - arm_func_start OS_LockCartridge -OS_LockCartridge: ; 0x037F8B3C - ldr r1, _037F8B50 ; =0x027FFFE8 - ldr r2, _037F8B54 ; =OSi_AllocateCartridgeBus - mov r3, #1 - ldr ip, _037F8B58 ; =OSi_DoLockByWord - bx ip -_037F8B50: .word 0x027FFFE8 -_037F8B54: .word OSi_AllocateCartridgeBus -_037F8B58: .word OSi_DoLockByWord - - arm_func_start OSi_DoTryLockByWord -OSi_DoTryLockByWord: ; 0x037F8B5C - stmdb sp!, {r4, r5, r6, r7, r8, r9, lr} - sub sp, sp, #4 - mov r9, r0 - mov r8, r1 - mov r7, r2 - movs r6, r3 - beq _037F8B84 - bl OS_DisableInterrupts_IrqAndFiq - mov r5, r0 - b _037F8B8C -_037F8B84: - bl OS_DisableInterrupts - mov r5, r0 -_037F8B8C: - mov r0, r9 - mov r1, r8 - bl MI_SwapWord - movs r4, r0 - bne _037F8BB4 - cmp r7, #0 - beq _037F8BB0 - mov lr, pc - bx r7 -_037F8BB0: - strh r9, [r8, #4] -_037F8BB4: - cmp r6, #0 - beq _037F8BC8 - mov r0, r5 - bl OS_RestoreInterrupts_IrqAndFiq - b _037F8BD0 -_037F8BC8: - mov r0, r5 - bl OS_RestoreInterrupts -_037F8BD0: - mov r0, r4 - add sp, sp, #4 - ldmia sp!, {r4, r5, r6, r7, r8, r9, lr} - bx lr - - arm_func_start OSi_DoUnlockByWord -OSi_DoUnlockByWord: ; 0x037F8BE0 - stmdb sp!, {r4, r5, r6, r7, lr} - sub sp, sp, #4 - mov r7, r1 - mov r6, r2 - mov r5, r3 - ldrh r1, [r7, #4] - cmp r0, r1 - mvnne r0, #1 - bne _037F8C60 - cmp r5, #0 - beq _037F8C18 - bl OS_DisableInterrupts_IrqAndFiq - mov r4, r0 - b _037F8C20 -_037F8C18: - bl OS_DisableInterrupts - mov r4, r0 -_037F8C20: - mov r0, #0 - strh r0, [r7, #4] - cmp r6, #0 - beq _037F8C38 - mov lr, pc - bx r6 -_037F8C38: - mov r0, #0 - str r0, [r7] - cmp r5, #0 - beq _037F8C54 - mov r0, r4 - bl OS_RestoreInterrupts_IrqAndFiq - b _037F8C5C -_037F8C54: - mov r0, r4 - bl OS_RestoreInterrupts -_037F8C5C: - mov r0, #0 -_037F8C60: - add sp, sp, #4 - ldmia sp!, {r4, r5, r6, r7, lr} - bx lr - - arm_func_start OSi_DoLockByWord -OSi_DoLockByWord: ; 0x037F8C6C - stmdb sp!, {r4, r5, r6, r7, r8, lr} - mov r8, r0 - mov r7, r1 - mov r6, r2 - mov r5, r3 - mov r4, #1024 ; 0x400 - b _037F8C90 -_037F8C88: - mov r0, r4 - bl FUN_037F8CB4 -_037F8C90: - mov r0, r8 - mov r1, r7 - mov r2, r6 - mov r3, r5 - bl OSi_DoTryLockByWord - cmp r0, #0 - bgt _037F8C88 - ldmia sp!, {r4, r5, r6, r7, r8, lr} - bx lr - - arm_func_start FUN_037F8CB4 -FUN_037F8CB4: ; 0x037F8CB4 ;part of the above func? - ldr ip, _037F8CBC ; =SVC_WaitByLoop - bx ip -_037F8CBC: .word SVC_WaitByLoop - - arm_func_start OS_InitLock -OS_InitLock: ; 0x037F8CC0 - stmdb sp!, {r4, r5, lr} - sub sp, sp, #4 - ldr r0, _037F8D38 ; =_03807780 - ldr r1, [r0] - cmp r1, #0 - bne _037F8D2C - mov r1, #1 - str r1, [r0] - mov r0, #0 - ldr r4, _037F8D3C ; =0x027FFFF0 - strh r0, [r4, #6] - mov r5, #1024 ; 0x400 - b _037F8CFC -_037F8CF4: - mov r0, r5 - bl FUN_037F8CB4 -_037F8CFC: - ldrh r0, [r4, #4] - cmp r0, #127 ; 0x7f - bne _037F8CF4 - mvn r1, #0 - ldr r0, _037F8D40 ; =0x027FFFB8 - str r1, [r0] - mov r0, #65536 ; 0x10000 - rsb r1, r0, #0 - ldr r0, _037F8D44 ; =0x027FFFBC - str r1, [r0] - mov r0, #191 ; 0xbf - strh r0, [r4, #6] -_037F8D2C: - add sp, sp, #4 - ldmia sp!, {r4, r5, lr} - bx lr -_037F8D38: .word _03807780 -_037F8D3C: .word 0x027FFFF0 -_037F8D40: .word 0x027FFFB8 -_037F8D44: .word 0x027FFFBC |