diff options
Diffstat (limited to 'arm7/asm')
-rw-r--r-- | arm7/asm/OS_context.s | 65 |
1 files changed, 0 insertions, 65 deletions
diff --git a/arm7/asm/OS_context.s b/arm7/asm/OS_context.s deleted file mode 100644 index 21479b1f..00000000 --- a/arm7/asm/OS_context.s +++ /dev/null @@ -1,65 +0,0 @@ - .include "asm/macros.inc" - .include "global.inc" - - .text - - arm_func_start OS_InitContext -OS_InitContext: ; 0x037F9740 - add r1, r1, #4 - str r1, [r0, #64] ; 0x40 - str r2, [r0, #68] ; 0x44 - sub r2, r2, #64 ; 0x40 - tst r2, #4 - subne r2, r2, #4 - str r2, [r0, #56] ; 0x38 - ands r1, r1, #1 - movne r1, #63 ; 0x3f - moveq r1, #31 - str r1, [r0] - mov r1, #0 - str r1, [r0, #4] - str r1, [r0, #8] - str r1, [r0, #12] - str r1, [r0, #16] - str r1, [r0, #20] - str r1, [r0, #24] - str r1, [r0, #28] - str r1, [r0, #32] - str r1, [r0, #36] ; 0x24 - str r1, [r0, #40] ; 0x28 - str r1, [r0, #44] ; 0x2c - str r1, [r0, #48] ; 0x30 - str r1, [r0, #52] ; 0x34 - str r1, [r0, #60] ; 0x3c - bx lr - - arm_func_start OS_SaveContext -OS_SaveContext: ; 0x037F97AC - add r1, r0, #0 - mrs r2, CPSR - str r2, [r1], #4 - mov r0, #211 ; 0xd3 - msr CPSR_c, r0 - str sp, [r1, #64] ; 0x40 - msr CPSR_c, r2 - mov r0, #1 - stmia r1, {r0, r1, r2, r3, r4, r5, r6, r7, r8, r9, sl, fp, ip, sp, lr} - adr r0, _037F97E0 - str r0, [r1, #60] ; 0x3c - mov r0, #0 - bx lr - - arm_func_start OS_LoadContext -OS_LoadContext: ; 0x037F97E0 -_037F97E0: ; needed because otherwise it breaks - mrs r1, CPSR - bic r1, r1, #31 - orr r1, r1, #211 ; 0xd3 - msr CPSR_c, r1 - ldr r1, [r0], #4 - msr SPSR_fsxc, r1 - ldr sp, [r0, #64] ; 0x40 - ldr lr, [r0, #60] ; 0x3c - ldmia r0, {r0, r1, r2, r3, r4, r5, r6, r7, r8, r9, sl, fp, ip, sp, lr}^ - nop ; (mov r0, r0) - subs pc, lr, #4 |