1*45699Sbostic /* Aregister.c 1.2 90/12/04 */ 229630Ssam 3*45699Sbostic #include "align.h" 429630Ssam 529630Ssam /* 629630Ssam * Return the specified register from the big structure. 729630Ssam */ 829630Ssam 929630Ssam long 1029630Ssam Register (infop, number) 1129630Ssam process_info *infop; 1229630Ssam long number; 1329630Ssam { 1429630Ssam 1529630Ssam switch (number) { 1629630Ssam case 0: return (r0); 1729630Ssam case 1: return (r1); 1829630Ssam case 2: return (r2); 1929630Ssam case 3: return (r3); 2029630Ssam case 4: return (r4); 2129630Ssam case 5: return (r5); 2229630Ssam case 6: return (r6); 2329630Ssam case 7: return (r7); 2429630Ssam case 8: return (r8); 2529630Ssam case 9: return (r9); 2629630Ssam case 10: return (r10); 2729630Ssam case 11: return (r11); 2829630Ssam case 12: return (r12); 2929630Ssam case 13: return (fp); 3029630Ssam case 14: return (sp); 3129630Ssam case 15: return (pc); 3229630Ssam } 3329630Ssam } 3429630Ssam 3529630Ssam 3629630Ssam /* 3729630Ssam * Replace a given register with the given value. 3829630Ssam */ 3929630Ssam Replace (infop,number, newvalue) 4029630Ssam process_info *infop; 4129630Ssam long number; 4229630Ssam long newvalue; 4329630Ssam { 4429630Ssam 4529630Ssam switch (number) { 4629630Ssam case 0: r0 = newvalue; return; 4729630Ssam case 1: r1 = newvalue; return; 4829630Ssam case 2: r2 = newvalue; return; 4929630Ssam case 3: r3 = newvalue; return; 5029630Ssam case 4: r4 = newvalue; return; 5129630Ssam case 5: r5 = newvalue; return; 5229630Ssam case 6: r6 = newvalue; return; 5329630Ssam case 7: r7 = newvalue; return; 5429630Ssam case 8: r8 = newvalue; return; 5529630Ssam case 9: r9 = newvalue; return; 5629630Ssam case 10: r10 = newvalue; return; 5729630Ssam case 11: r11 = newvalue; return; 5829630Ssam case 12: r12 = newvalue; return; 5929630Ssam case 13: fp = newvalue; return; 6029630Ssam case 14: sp = newvalue & ~3; return; 6129630Ssam case 15: pc = newvalue; return; 6229630Ssam } 6329630Ssam } 64