| .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: | |
| /* r0 will be overwritten */ | |
| str r1, [r0,#4]! | |
| str r2, [r0,#4]! | |
| str r3, [r0,#4]! | |
| str r4, [r0,#4]! | |
| str r5, [r0,#4]! | |
| str r6, [r0,#4]! | |
| str r7, [r0,#4]! | |
| str r8, [r0,#4]! | |
| str r9, [r0,#4]! | |
| str r10, [r0,#4]! | |
| str r11, [r0,#4]! | |
| str r12, [r0,#4]! | |
| str r13, [r0,#4]! | |
| str r14, [r0,#4]! | |
| /* r15 is pc */ | |
| mov r0, #0 | |
| mov pc, lr | |
| .globl setmcontext | |
| setmcontext: | |
| /* r0 will be overwritten */ | |
| ldr r1, [r0,#4]! | |
| ldr r2, [r0,#4]! | |
| ldr r3, [r0,#4]! | |
| ldr r4, [r0,#4]! | |
| ldr r5, [r0,#4]! | |
| ldr r6, [r0,#4]! | |
| ldr r7, [r0,#4]! | |
| ldr r8, [r0,#4]! | |
| ldr r9, [r0,#4]! | |
| ldr r10, [r0,#4]! | |
| ldr r11, [r0,#4]! | |
| ldr r12, [r0,#4]! | |
| ldr r13, [r0,#4]! | |
| ldr r14, [r0,#4]! | |
| /* r15 is pc */ | |
| mov r0, #1 | |
| mov pc, lr | |