diff options
Diffstat (limited to 'contrib/libf2c/libF77/lbitbits.c')
-rw-r--r-- | contrib/libf2c/libF77/lbitbits.c | 94 |
1 files changed, 45 insertions, 49 deletions
diff --git a/contrib/libf2c/libF77/lbitbits.c b/contrib/libf2c/libF77/lbitbits.c index 75e9f9c..3b28ae9 100644 --- a/contrib/libf2c/libF77/lbitbits.c +++ b/contrib/libf2c/libF77/lbitbits.c @@ -4,59 +4,55 @@ #define LONGBITS 32 #endif - integer -#ifdef KR_headers -lbit_bits(a, b, len) integer a, b, len; -#else -lbit_bits(integer a, integer b, integer len) -#endif +integer +lbit_bits (integer a, integer b, integer len) { - /* Assume 2's complement arithmetic */ + /* Assume 2's complement arithmetic */ - unsigned long x, y; + unsigned long x, y; - x = (unsigned long) a; - y = (unsigned long)-1L; - x >>= b; - y <<= len; - return (integer)(x & ~y); - } + x = (unsigned long) a; + y = (unsigned long) -1L; + x >>= b; + y <<= len; + return (integer) (x & ~y); +} - integer -#ifdef KR_headers -lbit_cshift(a, b, len) integer a, b, len; -#else -lbit_cshift(integer a, integer b, integer len) -#endif +integer +lbit_cshift (integer a, integer b, integer len) { - unsigned long x, y, z; + unsigned long x, y, z; - x = (unsigned long)a; - if (len <= 0) { - if (len == 0) - return 0; - goto full_len; - } - if (len >= LONGBITS) { - full_len: - if (b >= 0) { - b %= LONGBITS; - return (integer)(x << b | x >> LONGBITS -b ); - } - b = -b; - b %= LONGBITS; - return (integer)(x << LONGBITS - b | x >> b); - } - y = z = (unsigned long)-1; - y <<= len; - z &= ~y; - y &= x; - x &= z; - if (b >= 0) { - b %= len; - return (integer)(y | z & (x << b | x >> len - b)); - } - b = -b; - b %= len; - return (integer)(y | z & (x >> b | x << len - b)); + x = (unsigned long) a; + if (len <= 0) + { + if (len == 0) + return 0; + goto full_len; + } + if (len >= LONGBITS) + { + full_len: + if (b >= 0) + { + b %= LONGBITS; + return (integer) (x << b | x >> (LONGBITS - b)); } + b = -b; + b %= LONGBITS; + return (integer) (x << (LONGBITS - b) | x >> b); + } + y = z = (unsigned long) -1; + y <<= len; + z &= ~y; + y &= x; + x &= z; + if (b >= 0) + { + b %= len; + return (integer) (y | (z & (x << b | x >> (len - b)))); + } + b = -b; + b %= len; + return (integer) (y | (z & (x >> b | x << (len - b)))); +} |