1 /*- 2 * Copyright (c) 1986 The Regents of the University of California. 3 * All rights reserved. 4 * 5 * This code is derived from software contributed to Berkeley by 6 * Computer Consoles Inc. 7 * 8 * %sccs.include.redist.c% 9 * 10 * @(#)Aregister.c 7.1 (Berkeley) 12/06/90 11 */ 12 13 #include "align.h" 14 15 /* 16 * Return the specified register from the big structure. 17 */ 18 19 long Register(infop,number)20Register (infop, number) 21 process_info *infop; 22 long number; 23 { 24 25 switch (number) { 26 case 0: return (r0); 27 case 1: return (r1); 28 case 2: return (r2); 29 case 3: return (r3); 30 case 4: return (r4); 31 case 5: return (r5); 32 case 6: return (r6); 33 case 7: return (r7); 34 case 8: return (r8); 35 case 9: return (r9); 36 case 10: return (r10); 37 case 11: return (r11); 38 case 12: return (r12); 39 case 13: return (fp); 40 case 14: return (sp); 41 case 15: return (pc); 42 } 43 } 44 45 46 /* 47 * Replace a given register with the given value. 48 */ Replace(infop,number,newvalue)49Replace (infop,number, newvalue) 50 process_info *infop; 51 long number; 52 long newvalue; 53 { 54 55 switch (number) { 56 case 0: r0 = newvalue; return; 57 case 1: r1 = newvalue; return; 58 case 2: r2 = newvalue; return; 59 case 3: r3 = newvalue; return; 60 case 4: r4 = newvalue; return; 61 case 5: r5 = newvalue; return; 62 case 6: r6 = newvalue; return; 63 case 7: r7 = newvalue; return; 64 case 8: r8 = newvalue; return; 65 case 9: r9 = newvalue; return; 66 case 10: r10 = newvalue; return; 67 case 11: r11 = newvalue; return; 68 case 12: r12 = newvalue; return; 69 case 13: fp = newvalue; return; 70 case 14: sp = newvalue & ~3; return; 71 case 15: pc = newvalue; return; 72 } 73 } 74