temporary undoing of renaming
[riscv-isa-sim.git] / softfloat / s_add192.c
diff --git a/softfloat/s_add192.c b/softfloat/s_add192.c
new file mode 100755 (executable)
index 0000000..543eb5d
--- /dev/null
@@ -0,0 +1,30 @@
+\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