[xcc] minor performance tweaks
[riscv-isa-sim.git] / softfloat / s_shift64ExtraRightJam.c
1
2 #include <stdint.h>
3 #include "platform.h"
4 #include "primitives.h"
5
6 struct uint64_extra
7 softfloat_shift64ExtraRightJam(
8 uint64_t a, uint64_t extra, unsigned int count )
9 {
10 struct uint64_extra z;
11
12 if ( count < 64 ) {
13 z.v = a>>count;
14 z.extra = a<<( ( - count ) & 63 );
15 } else {
16 z.v = 0;
17 z.extra = ( count == 64 ) ? a : ( a != 0 );
18 }
19 z.extra |= ( extra != 0 );
20 return z;
21
22 }
23