--- /dev/null
+\r
+#include <stdint.h>\r
+#include "platform.h"\r
+#include "primitives.h"\r
+\r
+struct uint192\r
+ softfloat_add192(\r
+ uint64_t a128,\r
+ uint64_t a64,\r
+ uint64_t a0,\r
+ uint64_t b128,\r
+ uint64_t b64,\r
+ uint64_t b0\r
+ )\r
+{\r
+ struct uint192 z;\r
+ unsigned int carry64, carry128;\r
+\r
+ z.v0 = a0 + b0;\r
+ carry64 = ( z.v0 < a0 );\r
+ z.v64 = a64 + b64;\r
+ carry128 = ( z.v64 < a64 );\r
+ z.v128 = a128 + b128;\r
+ z.v64 += carry64;\r
+ carry128 += ( z.v64 < carry64 );\r
+ z.v128 += carry128;\r
+ return z;\r
+\r
+}\r
+\r