aboutsummaryrefslogtreecommitdiff
path: root/softfloat/s_shortShift192Left.c
blob: ea1c8cee0505845113f74a1b19371af9cdc3c18a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
// See LICENSE.SoftFloat for license details.


#include <stdint.h>
#include "platform.h"
#include "primitives.h"

struct uint192
 softfloat_shortShift192Left(
     uint64_t a128, uint64_t a64, uint64_t a0, unsigned int count )
{
    unsigned int negCount;
    struct uint192 z;

    negCount = - count;
    z.v128 = a128<<count | a64>>( negCount & 63 );
    z.v64 = a64<<count | a0>>( negCount & 63 );
    z.v0 = a0<<count;
    return z;

}