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