rsc | f51bf04 | 2005-11-01 18:35:44 +0000 | [diff] [blame] | 1 | |
| 2 | .globl _tas |
| 3 | _tas: |
| 4 | mov r3, #0xCA000000 |
| 5 | add r3, r3, #0xFE0000 |
| 6 | add r3, r3, #0xBA00 |
| 7 | add r3, r3, #0xBE |
| 8 | swp r3, r3, [r0] |
| 9 | mov r0, r3 |
| 10 | mov pc, lr |
| 11 | |
rsc | 1e05fdf | 2005-11-04 16:34:19 +0000 | [diff] [blame] | 12 | .globl getmcontext |
| 13 | getmcontext: |
rsc | 9aa463c | 2005-11-03 00:13:33 +0000 | [diff] [blame] | 14 | str r1, [r0,#4] |
| 15 | str r2, [r0,#8] |
| 16 | str r3, [r0,#12] |
| 17 | str r4, [r0,#16] |
| 18 | str r5, [r0,#20] |
| 19 | str r6, [r0,#24] |
| 20 | str r7, [r0,#28] |
| 21 | str r8, [r0,#32] |
| 22 | str r9, [r0,#36] |
| 23 | str r10, [r0,#40] |
| 24 | str r11, [r0,#44] |
| 25 | str r12, [r0,#48] |
| 26 | str r13, [r0,#52] |
| 27 | str r14, [r0,#56] |
| 28 | /* store 1 as r0-to-restore */ |
| 29 | mov r1, #1 |
| 30 | str r1, [r0] |
| 31 | /* return 0 */ |
rsc | f51bf04 | 2005-11-01 18:35:44 +0000 | [diff] [blame] | 32 | mov r0, #0 |
| 33 | mov pc, lr |
| 34 | |
rsc | 1e05fdf | 2005-11-04 16:34:19 +0000 | [diff] [blame] | 35 | .globl setmcontext |
| 36 | setmcontext: |
rsc | 9aa463c | 2005-11-03 00:13:33 +0000 | [diff] [blame] | 37 | ldr r1, [r0,#4] |
| 38 | ldr r2, [r0,#8] |
| 39 | ldr r3, [r0,#12] |
| 40 | ldr r4, [r0,#16] |
| 41 | ldr r5, [r0,#20] |
| 42 | ldr r6, [r0,#24] |
| 43 | ldr r7, [r0,#28] |
| 44 | ldr r8, [r0,#32] |
| 45 | ldr r9, [r0,#36] |
| 46 | ldr r10, [r0,#40] |
| 47 | ldr r11, [r0,#44] |
| 48 | ldr r12, [r0,#48] |
| 49 | ldr r13, [r0,#52] |
| 50 | ldr r14, [r0,#56] |
| 51 | ldr r0, [r0] |
rsc | f51bf04 | 2005-11-01 18:35:44 +0000 | [diff] [blame] | 52 | mov pc, lr |
| 53 | |