xref: /original-bsd/sys/tahoe/align/Ashlq.c (revision 7211505a)
1 /*	Ashlq.c	1.1	86/07/20	*/
2 
3 #include "../tahoealign/align.h"
4 shlq(infop) 	process_info *infop;
5 /*
6 /*	Shift left quadword.
7 /*
8 /********************************/
9 {
10 	register	long	Register_12;	/* Has to be first reg ! */
11 	register 	long	Register_11;
12 	register 	long	Register_10;
13 	register	long	*Register_9;
14 	quadword	result;
15 
16 	Register_12 = operand(infop,0)->data;	/* Counter */
17 	Register_9 = &operand(infop,1)->data;	/* Source */
18 
19 	Register_10=psl;
20 	Set_psl(r10);	/* restore the user psl */
21 	asm ("	shlq	r12,(r9),r10");
22 	asm ("	movpsl	r12");
23 	New_cc (Register_12);
24 	result.high = Register_10;
25 	result.low  = Register_11;
26 	write_quadword (infop, result, operand(infop,2));
27 }
28