Commit | Line | Data |
---|---|---|
344ce65a SL |
1 | /* Aregister.c 1.1 86/07/20 */ |
2 | ||
3 | #include "../tahoealign/align.h" | |
4 | ||
5 | /* | |
6 | * Return the specified register from the big structure. | |
7 | */ | |
8 | ||
9 | long | |
10 | Register (infop, number) | |
11 | process_info *infop; | |
12 | long number; | |
13 | { | |
14 | ||
15 | switch (number) { | |
16 | case 0: return (r0); | |
17 | case 1: return (r1); | |
18 | case 2: return (r2); | |
19 | case 3: return (r3); | |
20 | case 4: return (r4); | |
21 | case 5: return (r5); | |
22 | case 6: return (r6); | |
23 | case 7: return (r7); | |
24 | case 8: return (r8); | |
25 | case 9: return (r9); | |
26 | case 10: return (r10); | |
27 | case 11: return (r11); | |
28 | case 12: return (r12); | |
29 | case 13: return (fp); | |
30 | case 14: return (sp); | |
31 | case 15: return (pc); | |
32 | } | |
33 | } | |
34 | ||
35 | ||
36 | /* | |
37 | * Replace a given register with the given value. | |
38 | */ | |
39 | Replace (infop,number, newvalue) | |
40 | process_info *infop; | |
41 | long number; | |
42 | long newvalue; | |
43 | { | |
44 | ||
45 | switch (number) { | |
46 | case 0: r0 = newvalue; return; | |
47 | case 1: r1 = newvalue; return; | |
48 | case 2: r2 = newvalue; return; | |
49 | case 3: r3 = newvalue; return; | |
50 | case 4: r4 = newvalue; return; | |
51 | case 5: r5 = newvalue; return; | |
52 | case 6: r6 = newvalue; return; | |
53 | case 7: r7 = newvalue; return; | |
54 | case 8: r8 = newvalue; return; | |
55 | case 9: r9 = newvalue; return; | |
56 | case 10: r10 = newvalue; return; | |
57 | case 11: r11 = newvalue; return; | |
58 | case 12: r12 = newvalue; return; | |
59 | case 13: fp = newvalue; return; | |
60 | case 14: sp = newvalue & ~3; return; | |
61 | case 15: pc = newvalue; return; | |
62 | } | |
63 | } |