3 * - By John Hodge (thePowersGang)
6 * - Process management assembly
9 #include "include/assembly.h"
11 .globl KernelThreadHeader
13 @ SP+8: Argument Count
15 @ SP+0: Thread Pointer
18 @ TODO: Do something with the thread pointer
20 ldr r4, [sp],#4 @ Function
40 @ R1: Pointer to where to save old stack
42 @ R3: Pointer to save old IP
43 @ SP+0: New address space
53 @ Only update TTBR0 if the task has an explicit address space
56 mcrne p15, 0, r1, c2, c0, 0 @ Set TTBR0 to r0
73 mov r4, r1 @ Save mem destination
74 str sp, [r0] @ Save SP to SP dest
77 str r0, [r4] @ Save clone return to Mem Dest
79 ldr r0, =Proc_CloneInt_new