.globl _tas | |
_tas: | |
mov r3, #0xCA000000 | |
add r3, r3, #0xFE0000 | |
add r3, r3, #0xBA00 | |
add r3, r3, #0xBE | |
swp r3, r3, [r0] | |
mov r0, r3 | |
mov pc, lr | |
.globl getmcontext | |
getmcontext: | |
str r1, [r0,#4] | |
str r2, [r0,#8] | |
str r3, [r0,#12] | |
str r4, [r0,#16] | |
str r5, [r0,#20] | |
str r6, [r0,#24] | |
str r7, [r0,#28] | |
str r8, [r0,#32] | |
str r9, [r0,#36] | |
str r10, [r0,#40] | |
str r11, [r0,#44] | |
str r12, [r0,#48] | |
str r13, [r0,#52] | |
str r14, [r0,#56] | |
/* store 1 as r0-to-restore */ | |
mov r1, #1 | |
str r1, [r0] | |
/* return 0 */ | |
mov r0, #0 | |
mov pc, lr | |
.globl setmcontext | |
setmcontext: | |
ldr r1, [r0,#4] | |
ldr r2, [r0,#8] | |
ldr r3, [r0,#12] | |
ldr r4, [r0,#16] | |
ldr r5, [r0,#20] | |
ldr r6, [r0,#24] | |
ldr r7, [r0,#28] | |
ldr r8, [r0,#32] | |
ldr r9, [r0,#36] | |
ldr r10, [r0,#40] | |
ldr r11, [r0,#44] | |
ldr r12, [r0,#48] | |
ldr r13, [r0,#52] | |
ldr r14, [r0,#56] | |
ldr r0, [r0] | |
mov pc, lr | |