1*45699Sbostic /* Ashrl.c 1.2 90/12/04 */ 229634Ssam 329634Ssam 4*45699Sbostic #include "align.h" 529634Ssam shrl(infop) process_info *infop; 629634Ssam /* 729634Ssam /* Shift logical right (longword). 829634Ssam /* 929634Ssam /*******************************/ 1029634Ssam { 1129634Ssam register long Register_12; /* Has to be first reg ! */ 1229634Ssam register long Register_11; 1329634Ssam register long Register_10; 1429634Ssam 1529634Ssam Register_12 = operand(infop,0)->data; 1629634Ssam Register_11 = operand(infop,1)->data; 1729634Ssam Register_10=psl; 1829634Ssam Set_psl(r10); /* restore the user psl */ 1929634Ssam asm (" shrl r12,r11,r10"); 2029634Ssam asm (" movpsl r12"); 2129634Ssam New_cc (Register_12); 2229634Ssam write_back (infop, Register_10, operand(infop,2)); 2329634Ssam } 24