53 lines
869 B
ArmAsm
53 lines
869 B
ArmAsm
|
|
.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
|
|
|