diff options
author | Andrew Waterman <waterman@s141.Millennium.Berkeley.EDU> | 2011-06-19 21:45:58 -0700 |
---|---|---|
committer | Andrew Waterman <waterman@s141.Millennium.Berkeley.EDU> | 2011-06-19 21:45:58 -0700 |
commit | 1e163c715550e20e239976a22e00869884713e54 (patch) | |
tree | dbcf7b10e35421c72758df098057014fef7ffff7 /softfloat/s_add192.c | |
parent | 0edaecc54329048eb91ad6a45338265ef1a4569c (diff) | |
download | pk-1e163c715550e20e239976a22e00869884713e54.zip pk-1e163c715550e20e239976a22e00869884713e54.tar.gz pk-1e163c715550e20e239976a22e00869884713e54.tar.bz2 |
fixed build after repo split
Diffstat (limited to 'softfloat/s_add192.c')
-rwxr-xr-x | softfloat/s_add192.c | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/softfloat/s_add192.c b/softfloat/s_add192.c new file mode 100755 index 0000000..543eb5d --- /dev/null +++ b/softfloat/s_add192.c @@ -0,0 +1,30 @@ +
+#include <stdint.h>
+#include "platform.h"
+#include "primitives.h"
+
+struct uint192
+ softfloat_add192(
+ uint64_t a128,
+ uint64_t a64,
+ uint64_t a0,
+ uint64_t b128,
+ uint64_t b64,
+ uint64_t b0
+ )
+{
+ struct uint192 z;
+ unsigned int carry64, carry128;
+
+ z.v0 = a0 + b0;
+ carry64 = ( z.v0 < a0 );
+ z.v64 = a64 + b64;
+ carry128 = ( z.v64 < a64 );
+ z.v128 = a128 + b128;
+ z.v64 += carry64;
+ carry128 += ( z.v64 < carry64 );
+ z.v128 += carry128;
+ return z;
+
+}
+
|