dfa8825c1d2e8261912cd32b8db9b702f5c81f6c
[riscv-isa-sim.git] / softfloat / s_mul128By64To192.c
1
2 #include <stdint.h>
3 #include "platform.h"
4 #include "primitives.h"
5
6 struct uint192
7 softfloat_mul128By64To192( uint64_t a64, uint64_t a0, uint64_t b )
8 {
9 struct uint128 p0, p64;
10 struct uint192 z;
11
12 p0 = softfloat_mul64To128( a0, b );
13 z.v0 = p0.v0;
14 p64 = softfloat_mul64To128( a64, b );
15 z.v64 = p64.v0 + p0.v64;
16 z.v128 = p64.v64 + ( z.v64 < p64.v0 );
17 return z;
18
19 }
20