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