9 lbit_bits(a
, b
, len
) integer a
, b
, len
;
11 lbit_bits(integer a
, integer b
, integer len
)
14 /* Assume 2's complement arithmetic */
18 x
= (unsigned long) a
;
19 y
= (unsigned long)-1L;
22 return (integer
)(x
& ~y
);
27 lbit_cshift(a
, b
, len
) integer a
, b
, len
;
29 lbit_cshift(integer a
, integer b
, integer len
)
32 unsigned long x
, y
, z
;
40 if (len
>= LONGBITS
) {
44 return (integer
)(x
<< b
| x
>> LONGBITS
-b
);
48 return (integer
)(x
<< LONGBITS
- b
| x
>> b
);
50 y
= z
= (unsigned long)-1;
57 return (integer
)(y
| z
& (x
<< b
| x
>> len
- b
));
61 return (integer
)(y
| z
& (x
>> b
| x
<< len
- b
));