1 struct Ureg 2 { 3 union { 4 uintptr pc; 5 uintptr regs[1]; 6 }; 7 uintptr r1; /* link */ 8 union{ 9 uintptr r2; 10 uintptr sp; 11 uintptr usp; 12 }; 13 uintptr r3; /* sb */ 14 uintptr r4; 15 uintptr r5; 16 uintptr r6; /* up in kernel */ 17 uintptr r7; /* m in kernel */ 18 union{ 19 uintptr r8; 20 uintptr arg; 21 uintptr ret; 22 }; 23 uintptr r9; 24 uintptr r10; 25 uintptr r11; 26 uintptr r12; 27 uintptr r13; 28 uintptr r14; 29 uintptr r15; 30 uintptr r16; 31 uintptr r17; 32 uintptr r18; 33 uintptr r19; 34 uintptr r20; 35 uintptr r21; 36 uintptr r22; 37 uintptr r23; 38 uintptr r24; 39 uintptr r25; 40 uintptr r26; 41 uintptr r27; 42 uintptr r28; 43 uintptr r29; 44 uintptr r30; 45 uintptr r31; 46 47 /* csrs: generally supervisor ones */ 48 uintptr status; 49 uintptr ie; 50 union { 51 uintptr cause; 52 uintptr type; 53 }; 54 uintptr tval; /* faulting address */ 55 56 uintptr curmode; 57 }; 58