xref: /csrg-svn/sys/tahoe/align/Astorer.c (revision 29636)
1*29636Ssam /*	Astorer.c	1.1	86/07/20	*/
2*29636Ssam 
3*29636Ssam #include "../tahoealign/align.h"
4*29636Ssam storer(infop)	process_info *infop;
5*29636Ssam /*
6*29636Ssam /*	Store multiple registers.
7*29636Ssam /*
8*29636Ssam /***************************************/
9*29636Ssam {
10*29636Ssam 	register int mask, next_register, new_address;
11*29636Ssam 
12*29636Ssam 	mask = operand(infop,0)->data & 0x3fff;	/* Bits 0 to 13 only */
13*29636Ssam 	new_address = operand(infop,1)->address;
14*29636Ssam 	next_register = 0;				/* Register # */
15*29636Ssam 	while (next_register <= 13)
16*29636Ssam 	{
17*29636Ssam 		if (mask & 1 << next_register)
18*29636Ssam 		{
19*29636Ssam 			put_longword (infop, Register (infop, next_register),
20*29636Ssam 				new_address);
21*29636Ssam 			new_address += 4;
22*29636Ssam 		}
23*29636Ssam 		next_register++;
24*29636Ssam 	}
25*29636Ssam }
26