+++ /dev/null
-\r
-#include <stdint.h>\r
-#include "platform.h"\r
-#include "primitives.h"\r
-\r
-struct uint128_extra\r
- softfloat_shift128ExtraRightJam(\r
- uint64_t a64, uint64_t a0, uint64_t extra, unsigned int count )\r
-{\r
- unsigned int negCount;\r
- struct uint128_extra z;\r
-\r
- negCount = - count;\r
- if ( count < 64 ) {\r
- z.v64 = a64>>count;\r
- z.v0 = a64<<( negCount & 63 ) | a0>>count;\r
- z.extra = a0<<( negCount & 63 );\r
- } else {\r
- z.v64 = 0;\r
- if ( count == 64 ) {\r
- z.v0 = a64;\r
- z.extra = a0;\r
- } else {\r
- extra |= a0;\r
- if ( count < 128 ) {\r
- z.v0 = a64>>( count & 63 );\r
- z.extra = a64<<( negCount & 63 );\r
- } else {\r
- z.v0 = 0;\r
- z.extra = ( count == 128 ) ? a64 : ( a64 != 0 );\r
- }\r
- }\r
- }\r
- z.extra |= ( extra != 0 );\r
- return z;\r
-\r
-}\r
-\r