1*45699Sbostic /* Ashar.c 1.2 90/12/04 */ 229632Ssam 329632Ssam 4*45699Sbostic #include "align.h" 529632Ssam shar(infop) process_info *infop; 629632Ssam /* 729632Ssam /* Shift arithmetic right (longword). 829632Ssam /* 929632Ssam /*******************************/ 1029632Ssam { 1129632Ssam register long Register_12; /* Has to be first reg ! */ 1229632Ssam register long Register_11; 1329632Ssam register long Register_10; 1429632Ssam 1529632Ssam Register_12 = operand(infop,0)->data; 1629632Ssam Register_11 = operand(infop,1)->data; 1729632Ssam Register_10=psl; 1829632Ssam Set_psl(r10); /* restore the user psl */ 1929632Ssam asm (" shar r12,r11,r10"); 2029632Ssam asm (" movpsl r12"); 2129632Ssam New_cc (Register_12); 2229632Ssam write_back (infop, Register_10, operand(infop,2)); 2329632Ssam } 24