+++ /dev/null
-\r
-#include <stdint.h>\r
-#include "platform.h"\r
-#include "primitives.h"\r
-\r
-struct uint128 softfloat_mul64To128( uint64_t a, uint64_t b )\r
-{\r
- uint32_t a32, a0, b32, b0;\r
- struct uint128 z;\r
- uint64_t mid1, mid2, mid;\r
-\r
- a32 = a>>32;\r
- a0 = a;\r
- b32 = b>>32;\r
- b0 = b;\r
- z.v0 = (uint64_t) a0 * b0;\r
- mid1 = (uint64_t) a32 * b0;\r
- mid2 = (uint64_t) a0 * b32;\r
- z.v64 = (uint64_t) a32 * b32;\r
- mid = mid1 + mid2;\r
- z.v64 += ( (uint64_t) ( mid < mid1 ) )<<32 | mid>>32;\r
- mid <<= 32;\r
- z.v0 += mid;\r
- z.v64 += ( z.v0 < mid );\r
- return z;\r
-\r
-}\r
-\r