src/ppe/pk/ppe42/ppe42_gcc.c
/// A 64 bit arithmetic left shift.
///
/// Note that shifts with negative shift counts or shifts with shift counts
/// longer than 63 bits are undefined.
A 64 bit arithmetic left shift.
Note that shifts with negative shift counts or shifts with shift counts
longer than 63 bits are undefined.
A 64 bit arithmetic left shift . Note that shifts with negative shift counts or shifts with shift counts longer than 63 bits are undefined .
uint64_t
__ashldi3(uint64_t x, int i)
{
    Uint64 input, result;
    if (i == 0) {
        return x;
    }
    input.value = x;
    if (i >= 32) {
        result.word[1] = 0;
        result.word[0] = input.word[1] << (i - 32);
    } else {
        result.word[1] = input.word[1] << i;
        result.word[0] = (input.word[0] << i) | (input.word[1] >> (32 - i));
    }
    return result.value ;
}
uint64_t __ashldi3 ( uint64_t x , int i ) { Uint64 input , result ; if ( i == 0 ) { return x ; } input . value = x ; if ( i >= 32 ) { result . word [ 1 ] = 0 ; result . word [ 0 ] = input . word [ 1 ] << ( i - 32 ) ; } else { result . word [ 1 ] = input . word [ 1 ] << i ; result . word [ 0 ] = ( input . word [ 0 ] << i ) | ( input . word [ 1 ] >> ( 32 - i ) ) ; } return result . value ; }
A 64 bit arithmetic left shift.
A 64 bit arithmetic left shift .