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