- (if (and (alien-integer-type-signed type)
- (<= (alien-type-bits type) 16))
- `(sign-extend ,alien ,(alien-type-bits type))
+ (if (<= (alien-type-bits type) 16)
+ (if (alien-integer-type-signed type)
+ `(sign-extend ,alien ,(alien-type-bits type))
+ `(logand ,alien ,(1- (ash 1 (alien-type-bits type)))))