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