1*29631Ssam /* Ashal.c 1.1 86/07/20 */ 2*29631Ssam 3*29631Ssam #include "../tahoealign/align.h" 4*29631Ssam shal(infop) process_info *infop; 5*29631Ssam /* 6*29631Ssam /* Shift arithmetic left (longword). 7*29631Ssam /* Checks for overflow. 8*29631Ssam /* 9*29631Ssam /*******************************/ 10*29631Ssam { 11*29631Ssam register long Register_12; /* Has to be first reg ! */ 12*29631Ssam register long Register_11; 13*29631Ssam register long Register_10; 14*29631Ssam 15*29631Ssam Register_12 = operand(infop,0)->data; 16*29631Ssam Register_11 = operand(infop,1)->data; 17*29631Ssam Register_10=psl; 18*29631Ssam Set_psl(r10); /* restore the user psl */ 19*29631Ssam asm (" shal r12,r11,r10"); 20*29631Ssam asm (" movpsl r12"); 21*29631Ssam New_cc (Register_12); 22*29631Ssam write_back (infop, Register_10, operand(infop,2)); 23*29631Ssam } 24