--- /dev/null
+\r
+#include <stdint.h>\r
+#include "platform.h"\r
+#include "primitives.h"\r
+\r
+struct uint192\r
+ softfloat_sub192(\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 borrow64, borrow128;\r
+\r
+ z.v0 = a0 - b0;\r
+ borrow64 = ( a0 < b0 );\r
+ z.v64 = a64 - b64;\r
+ borrow128 = ( a64 < b64 );\r
+ z.v128 = a128 - b128;\r
+ borrow128 += ( z.v64 < borrow64 );\r
+ z.v64 -= borrow64;\r
+ z.v128 -= borrow128;\r
+ return z;\r
+\r
+}\r
+\r