1*45699Sbostic /* Ashal.c 1.2 90/12/04 */ 229631Ssam 3*45699Sbostic #include "align.h" 429631Ssam shal(infop) process_info *infop; 529631Ssam /* 629631Ssam /* Shift arithmetic left (longword). 729631Ssam /* Checks for overflow. 829631Ssam /* 929631Ssam /*******************************/ 1029631Ssam { 1129631Ssam register long Register_12; /* Has to be first reg ! */ 1229631Ssam register long Register_11; 1329631Ssam register long Register_10; 1429631Ssam 1529631Ssam Register_12 = operand(infop,0)->data; 1629631Ssam Register_11 = operand(infop,1)->data; 1729631Ssam Register_10=psl; 1829631Ssam Set_psl(r10); /* restore the user psl */ 1929631Ssam asm (" shal r12,r11,r10"); 2029631Ssam asm (" movpsl r12"); 2129631Ssam New_cc (Register_12); 2229631Ssam write_back (infop, Register_10, operand(infop,2)); 2329631Ssam } 24