xref: /openbsd/sys/arch/hppa/spmath/hppa.h (revision 274d7c50)
1 /*	$OpenBSD: hppa.h,v 1.5 2002/05/07 22:19:30 mickey Exp $	*/
2 /*
3   (c) Copyright 1986 HEWLETT-PACKARD COMPANY
4   To anyone who acknowledges that this file is provided "AS IS"
5   without any express or implied warranty:
6       permission to use, copy, modify, and distribute this file
7   for any purpose is hereby granted without fee, provided that
8   the above copyright notice and this notice appears in all
9   copies, and that the name of Hewlett-Packard Company not be
10   used in advertising or publicity pertaining to distribution
11   of the software without specific, written prior permission.
12   Hewlett-Packard Company makes no representations about the
13   suitability of this software for any purpose.
14 */
15 /* @(#)hppa.h: Revision: 2.7.88.1 Date: 93/12/07 15:06:26 */
16 
17 /* amount is assumed to be a constant between 0 and 32 (non-inclusive) */
18 #define Shiftdouble(left,right,amount,dest)			\
19     /* int left, right, amount, dest; */			\
20     dest = ((left) << (32-(amount))) | ((unsigned int)(right) >> (amount))
21 
22 /* amount must be less than 32 */
23 #define Variableshiftdouble(left,right,amount,dest)		\
24     /* unsigned int left, right;  int amount, dest; */		\
25     if (amount == 0) dest = right;				\
26     else dest = ((((unsigned) left)&0x7fffffff) << (32-(amount))) |	\
27 	((unsigned) right >> (amount))
28 
29 /* amount must be between 0 and 32 (non-inclusive) */
30 #define Variable_shift_double(left,right,amount,dest)		\
31     /* unsigned int left, right;  int amount, dest; */		\
32     dest = (left << (32-(amount))) | ((unsigned) right >> (amount))
33