xref: /original-bsd/sys/tahoe/align/Aregister.c (revision cd18b70b)
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 }
64