fpu/softfloat: re-factor int/uint to float

These are considerably simpler as the lower order integers can just
use the higher order conversion function. As the decomposed fractional
part is a full 64 bit rounding and inexact handling comes from the
pack functions.

Backports commit c02e1fb80b553d47420f7492de4bc590c2461a86 from qemu
This commit is contained in:
Alex Bennée 2018-03-08 12:10:00 -05:00 committed by Lioncash
parent acb4b1d5b1
commit b389a8c7c4
No known key found for this signature in database
GPG key ID: 4E3C3CC1031BA9C7
16 changed files with 242 additions and 181 deletions

View file

@ -2301,10 +2301,12 @@
#define int16_to_float32 int16_to_float32_aarch64
#define int16_to_float64 int16_to_float64_aarch64
#define int32_to_float128 int32_to_float128_aarch64
#define int32_to_float16 int32_to_float16_aarch64
#define int32_to_float32 int32_to_float32_aarch64
#define int32_to_float64 int32_to_float64_aarch64
#define int32_to_floatx80 int32_to_floatx80_aarch64
#define int64_to_float128 int64_to_float128_aarch64
#define int64_to_float16 int64_to_float16_aarch64
#define int64_to_float32 int64_to_float32_aarch64
#define int64_to_float64 int64_to_float64_aarch64
#define int64_to_floatx80 int64_to_floatx80_aarch64
@ -3614,11 +3616,14 @@
#define type_table_add type_table_add_aarch64
#define type_table_get type_table_get_aarch64
#define type_table_lookup type_table_lookup_aarch64
#define uint16_to_float16 uint16_to_float16_aarch64
#define uint16_to_float32 uint16_to_float32_aarch64
#define uint16_to_float64 uint16_to_float64_aarch64
#define uint32_to_float16 uint32_to_float16_aarch64
#define uint32_to_float32 uint32_to_float32_aarch64
#define uint32_to_float64 uint32_to_float64_aarch64
#define uint64_to_float128 uint64_to_float128_aarch64
#define uint64_to_float16 uint64_to_float16_aarch64
#define uint64_to_float32 uint64_to_float32_aarch64
#define uint64_to_float64 uint64_to_float64_aarch64
#define unassigned_io_ops unassigned_io_ops_aarch64

View file

@ -2301,10 +2301,12 @@
#define int16_to_float32 int16_to_float32_aarch64eb
#define int16_to_float64 int16_to_float64_aarch64eb
#define int32_to_float128 int32_to_float128_aarch64eb
#define int32_to_float16 int32_to_float16_aarch64eb
#define int32_to_float32 int32_to_float32_aarch64eb
#define int32_to_float64 int32_to_float64_aarch64eb
#define int32_to_floatx80 int32_to_floatx80_aarch64eb
#define int64_to_float128 int64_to_float128_aarch64eb
#define int64_to_float16 int64_to_float16_aarch64eb
#define int64_to_float32 int64_to_float32_aarch64eb
#define int64_to_float64 int64_to_float64_aarch64eb
#define int64_to_floatx80 int64_to_floatx80_aarch64eb
@ -3614,11 +3616,14 @@
#define type_table_add type_table_add_aarch64eb
#define type_table_get type_table_get_aarch64eb
#define type_table_lookup type_table_lookup_aarch64eb
#define uint16_to_float16 uint16_to_float16_aarch64eb
#define uint16_to_float32 uint16_to_float32_aarch64eb
#define uint16_to_float64 uint16_to_float64_aarch64eb
#define uint32_to_float16 uint32_to_float16_aarch64eb
#define uint32_to_float32 uint32_to_float32_aarch64eb
#define uint32_to_float64 uint32_to_float64_aarch64eb
#define uint64_to_float128 uint64_to_float128_aarch64eb
#define uint64_to_float16 uint64_to_float16_aarch64eb
#define uint64_to_float32 uint64_to_float32_aarch64eb
#define uint64_to_float64 uint64_to_float64_aarch64eb
#define unassigned_io_ops unassigned_io_ops_aarch64eb

View file

@ -2301,10 +2301,12 @@
#define int16_to_float32 int16_to_float32_arm
#define int16_to_float64 int16_to_float64_arm
#define int32_to_float128 int32_to_float128_arm
#define int32_to_float16 int32_to_float16_arm
#define int32_to_float32 int32_to_float32_arm
#define int32_to_float64 int32_to_float64_arm
#define int32_to_floatx80 int32_to_floatx80_arm
#define int64_to_float128 int64_to_float128_arm
#define int64_to_float16 int64_to_float16_arm
#define int64_to_float32 int64_to_float32_arm
#define int64_to_float64 int64_to_float64_arm
#define int64_to_floatx80 int64_to_floatx80_arm
@ -3614,11 +3616,14 @@
#define type_table_add type_table_add_arm
#define type_table_get type_table_get_arm
#define type_table_lookup type_table_lookup_arm
#define uint16_to_float16 uint16_to_float16_arm
#define uint16_to_float32 uint16_to_float32_arm
#define uint16_to_float64 uint16_to_float64_arm
#define uint32_to_float16 uint32_to_float16_arm
#define uint32_to_float32 uint32_to_float32_arm
#define uint32_to_float64 uint32_to_float64_arm
#define uint64_to_float128 uint64_to_float128_arm
#define uint64_to_float16 uint64_to_float16_arm
#define uint64_to_float32 uint64_to_float32_arm
#define uint64_to_float64 uint64_to_float64_arm
#define unassigned_io_ops unassigned_io_ops_arm

View file

@ -2301,10 +2301,12 @@
#define int16_to_float32 int16_to_float32_armeb
#define int16_to_float64 int16_to_float64_armeb
#define int32_to_float128 int32_to_float128_armeb
#define int32_to_float16 int32_to_float16_armeb
#define int32_to_float32 int32_to_float32_armeb
#define int32_to_float64 int32_to_float64_armeb
#define int32_to_floatx80 int32_to_floatx80_armeb
#define int64_to_float128 int64_to_float128_armeb
#define int64_to_float16 int64_to_float16_armeb
#define int64_to_float32 int64_to_float32_armeb
#define int64_to_float64 int64_to_float64_armeb
#define int64_to_floatx80 int64_to_floatx80_armeb
@ -3614,11 +3616,14 @@
#define type_table_add type_table_add_armeb
#define type_table_get type_table_get_armeb
#define type_table_lookup type_table_lookup_armeb
#define uint16_to_float16 uint16_to_float16_armeb
#define uint16_to_float32 uint16_to_float32_armeb
#define uint16_to_float64 uint16_to_float64_armeb
#define uint32_to_float16 uint32_to_float16_armeb
#define uint32_to_float32 uint32_to_float32_armeb
#define uint32_to_float64 uint32_to_float64_armeb
#define uint64_to_float128 uint64_to_float128_armeb
#define uint64_to_float16 uint64_to_float16_armeb
#define uint64_to_float32 uint64_to_float32_armeb
#define uint64_to_float64 uint64_to_float64_armeb
#define unassigned_io_ops unassigned_io_ops_armeb

View file

@ -1501,6 +1501,169 @@ FLOAT_TO_UINT(64, 64)
#undef FLOAT_TO_UINT
/*
* Integer to float conversions
*
* Returns the result of converting the two's complement integer `a'
* to the floating-point format. The conversion is performed according
* to the IEC/IEEE Standard for Binary Floating-Point Arithmetic.
*/
static FloatParts int_to_float(int64_t a, float_status *status)
{
FloatParts r;
if (a == 0) {
r.cls = float_class_zero;
r.sign = false;
} else if (a == (1ULL << 63)) {
r.cls = float_class_normal;
r.sign = true;
r.frac = DECOMPOSED_IMPLICIT_BIT;
r.exp = 63;
} else {
uint64_t f;
if (a < 0) {
f = -a;
r.sign = true;
} else {
f = a;
r.sign = false;
}
int shift = clz64(f) - 1;
r.cls = float_class_normal;
r.exp = (DECOMPOSED_BINARY_POINT - shift);
r.frac = f << shift;
}
return r;
}
float16 int64_to_float16(int64_t a, float_status *status)
{
FloatParts pa = int_to_float(a, status);
return float16_round_pack_canonical(pa, status);
}
float16 int32_to_float16(int32_t a, float_status *status)
{
return int64_to_float16(a, status);
}
float16 int16_to_float16(int16_t a, float_status *status)
{
return int64_to_float16(a, status);
}
float32 int64_to_float32(int64_t a, float_status *status)
{
FloatParts pa = int_to_float(a, status);
return float32_round_pack_canonical(pa, status);
}
float32 int32_to_float32(int32_t a, float_status *status)
{
return int64_to_float32(a, status);
}
float32 int16_to_float32(int16_t a, float_status *status)
{
return int64_to_float32(a, status);
}
float64 int64_to_float64(int64_t a, float_status *status)
{
FloatParts pa = int_to_float(a, status);
return float64_round_pack_canonical(pa, status);
}
float64 int32_to_float64(int32_t a, float_status *status)
{
return int64_to_float64(a, status);
}
float64 int16_to_float64(int16_t a, float_status *status)
{
return int64_to_float64(a, status);
}
/*
* Unsigned Integer to float conversions
*
* Returns the result of converting the unsigned integer `a' to the
* floating-point format. The conversion is performed according to the
* IEC/IEEE Standard for Binary Floating-Point Arithmetic.
*/
static FloatParts uint_to_float(uint64_t a, float_status *status)
{
FloatParts r = { .sign = false};
if (a == 0) {
r.cls = float_class_zero;
} else {
int spare_bits = clz64(a) - 1;
r.cls = float_class_normal;
r.exp = DECOMPOSED_BINARY_POINT - spare_bits;
if (spare_bits < 0) {
shift64RightJamming(a, -spare_bits, &a);
r.frac = a;
} else {
r.frac = a << spare_bits;
}
}
return r;
}
float16 uint64_to_float16(uint64_t a, float_status *status)
{
FloatParts pa = uint_to_float(a, status);
return float16_round_pack_canonical(pa, status);
}
float16 uint32_to_float16(uint32_t a, float_status *status)
{
return uint64_to_float16(a, status);
}
float16 uint16_to_float16(uint16_t a, float_status *status)
{
return uint64_to_float16(a, status);
}
float32 uint64_to_float32(uint64_t a, float_status *status)
{
FloatParts pa = uint_to_float(a, status);
return float32_round_pack_canonical(pa, status);
}
float32 uint32_to_float32(uint32_t a, float_status *status)
{
return uint64_to_float32(a, status);
}
float32 uint16_to_float32(uint16_t a, float_status *status)
{
return uint64_to_float32(a, status);
}
float64 uint64_to_float64(uint64_t a, float_status *status)
{
FloatParts pa = uint_to_float(a, status);
return float64_round_pack_canonical(pa, status);
}
float64 uint32_to_float64(uint32_t a, float_status *status)
{
return uint64_to_float64(a, status);
}
float64 uint16_to_float64(uint16_t a, float_status *status)
{
return uint64_to_float64(a, status);
}
/*----------------------------------------------------------------------------
| Takes a 64-bit fixed-point value `absZ' with binary point between bits 6
| and 7, and returns the properly rounded 32-bit integer corresponding to the
@ -2563,45 +2726,6 @@ static float128
}
/*----------------------------------------------------------------------------
| Returns the result of converting the 32-bit two's complement integer `a'
| to the single-precision floating-point format. The conversion is performed
| according to the IEC/IEEE Standard for Binary Floating-Point Arithmetic.
*----------------------------------------------------------------------------*/
float32 int32_to_float32(int32_t a, float_status *status)
{
flag zSign;
if ( a == 0 ) return float32_zero;
if ( a == (int32_t) 0x80000000 ) return packFloat32( 1, 0x9E, 0 );
zSign = ( a < 0 );
return normalizeRoundAndPackFloat32( zSign, 0x9C, zSign ? - a : a, status );
}
/*----------------------------------------------------------------------------
| Returns the result of converting the 32-bit two's complement integer `a'
| to the double-precision floating-point format. The conversion is performed
| according to the IEC/IEEE Standard for Binary Floating-Point Arithmetic.
*----------------------------------------------------------------------------*/
float64 int32_to_float64(int32_t a, float_status *status)
{
flag zSign;
uint32_t absA;
int8_t shiftCount;
uint64_t zSig;
if ( a == 0 ) return float64_zero;
zSign = ( a < 0 );
absA = zSign ? - a : a;
shiftCount = countLeadingZeros32( absA ) + 21;
zSig = absA;
return packFloat64( zSign, 0x432 - shiftCount, zSig<<shiftCount );
}
/*----------------------------------------------------------------------------
| Returns the result of converting the 32-bit two's complement integer `a'
| to the extended double-precision floating-point format. The conversion
@ -2647,57 +2771,6 @@ float128 int32_to_float128(int32_t a, float_status *status)
}
/*----------------------------------------------------------------------------
| Returns the result of converting the 64-bit two's complement integer `a'
| to the single-precision floating-point format. The conversion is performed
| according to the IEC/IEEE Standard for Binary Floating-Point Arithmetic.
*----------------------------------------------------------------------------*/
float32 int64_to_float32(int64_t a, float_status *status)
{
flag zSign;
uint64_t absA;
int8_t shiftCount;
if ( a == 0 ) return float32_zero;
zSign = ( a < 0 );
absA = zSign ? - a : a;
shiftCount = countLeadingZeros64( absA ) - 40;
if ( 0 <= shiftCount ) {
return packFloat32( zSign, 0x95 - shiftCount, (uint32_t)(absA<<shiftCount) );
}
else {
shiftCount += 7;
if ( shiftCount < 0 ) {
shift64RightJamming( absA, - shiftCount, &absA );
}
else {
absA <<= shiftCount;
}
return roundAndPackFloat32( zSign, 0x9C - shiftCount, (uint32_t)absA, status );
}
}
/*----------------------------------------------------------------------------
| Returns the result of converting the 64-bit two's complement integer `a'
| to the double-precision floating-point format. The conversion is performed
| according to the IEC/IEEE Standard for Binary Floating-Point Arithmetic.
*----------------------------------------------------------------------------*/
float64 int64_to_float64(int64_t a, float_status *status)
{
flag zSign;
if ( a == 0 ) return float64_zero;
if ( a == (int64_t) LIT64( 0x8000000000000000 ) ) {
return packFloat64( 1, 0x43E, 0 );
}
zSign = ( a < 0 );
return normalizeRoundAndPackFloat64( zSign, 0x43C, zSign ? - a : a, status );
}
/*----------------------------------------------------------------------------
| Returns the result of converting the 64-bit two's complement integer `a'
| to the extended double-precision floating-point format. The conversion
@ -2752,65 +2825,6 @@ float128 int64_to_float128(int64_t a, float_status *status)
}
/*----------------------------------------------------------------------------
| Returns the result of converting the 64-bit unsigned integer `a'
| to the single-precision floating-point format. The conversion is performed
| according to the IEC/IEEE Standard for Binary Floating-Point Arithmetic.
*----------------------------------------------------------------------------*/
float32 uint64_to_float32(uint64_t a, float_status *status)
{
int shiftcount;
if (a == 0) {
return float32_zero;
}
/* Determine (left) shift needed to put first set bit into bit posn 23
* (since packFloat32() expects the binary point between bits 23 and 22);
* this is the fast case for smallish numbers.
*/
shiftcount = countLeadingZeros64(a) - 40;
if (shiftcount >= 0) {
return packFloat32(0, 0x95 - shiftcount, a << shiftcount);
}
/* Otherwise we need to do a round-and-pack. roundAndPackFloat32()
* expects the binary point between bits 30 and 29, hence the + 7.
*/
shiftcount += 7;
if (shiftcount < 0) {
shift64RightJamming(a, -shiftcount, &a);
} else {
a <<= shiftcount;
}
return roundAndPackFloat32(0, 0x9c - shiftcount, a, status);
}
/*----------------------------------------------------------------------------
| Returns the result of converting the 64-bit unsigned integer `a'
| to the double-precision floating-point format. The conversion is performed
| according to the IEC/IEEE Standard for Binary Floating-Point Arithmetic.
*----------------------------------------------------------------------------*/
float64 uint64_to_float64(uint64_t a, float_status *status)
{
int exp = 0x43C;
int shiftcount;
if (a == 0) {
return float64_zero;
}
shiftcount = countLeadingZeros64(a) - 1;
if (shiftcount < 0) {
shift64RightJamming(a, -shiftcount, &a);
} else {
a <<= shiftcount;
}
return roundAndPackFloat64(0, exp - shiftcount, a, status);
}
/*----------------------------------------------------------------------------
| Returns the result of converting the 64-bit unsigned integer `a'
| to the quadruple-precision floating-point format. The conversion is performed
@ -6645,17 +6659,6 @@ int float128_unordered_quiet(float128 a, float128 b, float_status *status)
return 0;
}
/* misc functions */
float32 uint32_to_float32(uint32_t a, float_status *status)
{
return int64_to_float32(a, status);
}
float64 uint32_to_float64(uint32_t a, float_status *status)
{
return int64_to_float64(a, status);
}
#define COMPARE(s, nan_exp) \
static inline int float ## s ## _compare_internal(float ## s a, float ## s b, \
int is_quiet, float_status *status) \

View file

@ -2307,10 +2307,12 @@ symbols = (
'int16_to_float32',
'int16_to_float64',
'int32_to_float128',
'int32_to_float16',
'int32_to_float32',
'int32_to_float64',
'int32_to_floatx80',
'int64_to_float128',
'int64_to_float16',
'int64_to_float32',
'int64_to_float64',
'int64_to_floatx80',
@ -3620,11 +3622,14 @@ symbols = (
'type_table_add',
'type_table_get',
'type_table_lookup',
'uint16_to_float16',
'uint16_to_float32',
'uint16_to_float64',
'uint32_to_float16',
'uint32_to_float32',
'uint32_to_float64',
'uint64_to_float128',
'uint64_to_float16',
'uint64_to_float32',
'uint64_to_float64',
'unassigned_io_ops',

View file

@ -197,9 +197,13 @@ enum {
/*----------------------------------------------------------------------------
| Software IEC/IEEE integer-to-floating-point conversion routines.
*----------------------------------------------------------------------------*/
float32 int16_to_float32(int16_t, float_status *status);
float32 int32_to_float32(int32_t, float_status *status);
float64 int16_to_float64(int16_t, float_status *status);
float64 int32_to_float64(int32_t, float_status *status);
float32 uint16_to_float32(uint16_t, float_status *status);
float32 uint32_to_float32(uint32_t, float_status *status);
float64 uint16_to_float64(uint16_t, float_status *status);
float64 uint32_to_float64(uint32_t, float_status *status);
floatx80 int32_to_floatx80(int32_t, float_status *status);
float128 int32_to_float128(int32_t, float_status *status);
@ -211,27 +215,6 @@ float32 uint64_to_float32(uint64_t, float_status *status);
float64 uint64_to_float64(uint64_t, float_status *status);
float128 uint64_to_float128(uint64_t, float_status *status);
/* We provide the int16 versions for symmetry of API with float-to-int */
static inline float32 int16_to_float32(int16_t v, float_status *status)
{
return int32_to_float32(v, status);
}
static inline float32 uint16_to_float32(uint16_t v, float_status *status)
{
return uint32_to_float32(v, status);
}
static inline float64 int16_to_float64(int16_t v, float_status *status)
{
return int32_to_float64(v, status);
}
static inline float64 uint16_to_float64(uint16_t v, float_status *status)
{
return uint32_to_float64(v, status);
}
/*----------------------------------------------------------------------------
| Software half-precision conversion routines.
*----------------------------------------------------------------------------*/
@ -252,6 +235,11 @@ uint64_t float16_to_uint64(float16 a, float_status *status);
int64_t float16_to_int64_round_to_zero(float16, float_status *status);
uint64_t float16_to_uint64_round_to_zero(float16 a, float_status *status);
float16 int16_to_float16(int16_t a, float_status *status);
float16 int32_to_float16(int32_t a, float_status *status);
float16 int64_to_float16(int64_t a, float_status *status);
float16 uint16_to_float16(uint16_t a, float_status *status);
float16 uint32_to_float16(uint32_t a, float_status *status);
float16 uint64_to_float16(uint64_t a, float_status *status);
/*----------------------------------------------------------------------------
| Software half-precision operations.

View file

@ -2301,10 +2301,12 @@
#define int16_to_float32 int16_to_float32_m68k
#define int16_to_float64 int16_to_float64_m68k
#define int32_to_float128 int32_to_float128_m68k
#define int32_to_float16 int32_to_float16_m68k
#define int32_to_float32 int32_to_float32_m68k
#define int32_to_float64 int32_to_float64_m68k
#define int32_to_floatx80 int32_to_floatx80_m68k
#define int64_to_float128 int64_to_float128_m68k
#define int64_to_float16 int64_to_float16_m68k
#define int64_to_float32 int64_to_float32_m68k
#define int64_to_float64 int64_to_float64_m68k
#define int64_to_floatx80 int64_to_floatx80_m68k
@ -3614,11 +3616,14 @@
#define type_table_add type_table_add_m68k
#define type_table_get type_table_get_m68k
#define type_table_lookup type_table_lookup_m68k
#define uint16_to_float16 uint16_to_float16_m68k
#define uint16_to_float32 uint16_to_float32_m68k
#define uint16_to_float64 uint16_to_float64_m68k
#define uint32_to_float16 uint32_to_float16_m68k
#define uint32_to_float32 uint32_to_float32_m68k
#define uint32_to_float64 uint32_to_float64_m68k
#define uint64_to_float128 uint64_to_float128_m68k
#define uint64_to_float16 uint64_to_float16_m68k
#define uint64_to_float32 uint64_to_float32_m68k
#define uint64_to_float64 uint64_to_float64_m68k
#define unassigned_io_ops unassigned_io_ops_m68k

View file

@ -2301,10 +2301,12 @@
#define int16_to_float32 int16_to_float32_mips
#define int16_to_float64 int16_to_float64_mips
#define int32_to_float128 int32_to_float128_mips
#define int32_to_float16 int32_to_float16_mips
#define int32_to_float32 int32_to_float32_mips
#define int32_to_float64 int32_to_float64_mips
#define int32_to_floatx80 int32_to_floatx80_mips
#define int64_to_float128 int64_to_float128_mips
#define int64_to_float16 int64_to_float16_mips
#define int64_to_float32 int64_to_float32_mips
#define int64_to_float64 int64_to_float64_mips
#define int64_to_floatx80 int64_to_floatx80_mips
@ -3614,11 +3616,14 @@
#define type_table_add type_table_add_mips
#define type_table_get type_table_get_mips
#define type_table_lookup type_table_lookup_mips
#define uint16_to_float16 uint16_to_float16_mips
#define uint16_to_float32 uint16_to_float32_mips
#define uint16_to_float64 uint16_to_float64_mips
#define uint32_to_float16 uint32_to_float16_mips
#define uint32_to_float32 uint32_to_float32_mips
#define uint32_to_float64 uint32_to_float64_mips
#define uint64_to_float128 uint64_to_float128_mips
#define uint64_to_float16 uint64_to_float16_mips
#define uint64_to_float32 uint64_to_float32_mips
#define uint64_to_float64 uint64_to_float64_mips
#define unassigned_io_ops unassigned_io_ops_mips

View file

@ -2301,10 +2301,12 @@
#define int16_to_float32 int16_to_float32_mips64
#define int16_to_float64 int16_to_float64_mips64
#define int32_to_float128 int32_to_float128_mips64
#define int32_to_float16 int32_to_float16_mips64
#define int32_to_float32 int32_to_float32_mips64
#define int32_to_float64 int32_to_float64_mips64
#define int32_to_floatx80 int32_to_floatx80_mips64
#define int64_to_float128 int64_to_float128_mips64
#define int64_to_float16 int64_to_float16_mips64
#define int64_to_float32 int64_to_float32_mips64
#define int64_to_float64 int64_to_float64_mips64
#define int64_to_floatx80 int64_to_floatx80_mips64
@ -3614,11 +3616,14 @@
#define type_table_add type_table_add_mips64
#define type_table_get type_table_get_mips64
#define type_table_lookup type_table_lookup_mips64
#define uint16_to_float16 uint16_to_float16_mips64
#define uint16_to_float32 uint16_to_float32_mips64
#define uint16_to_float64 uint16_to_float64_mips64
#define uint32_to_float16 uint32_to_float16_mips64
#define uint32_to_float32 uint32_to_float32_mips64
#define uint32_to_float64 uint32_to_float64_mips64
#define uint64_to_float128 uint64_to_float128_mips64
#define uint64_to_float16 uint64_to_float16_mips64
#define uint64_to_float32 uint64_to_float32_mips64
#define uint64_to_float64 uint64_to_float64_mips64
#define unassigned_io_ops unassigned_io_ops_mips64

View file

@ -2301,10 +2301,12 @@
#define int16_to_float32 int16_to_float32_mips64el
#define int16_to_float64 int16_to_float64_mips64el
#define int32_to_float128 int32_to_float128_mips64el
#define int32_to_float16 int32_to_float16_mips64el
#define int32_to_float32 int32_to_float32_mips64el
#define int32_to_float64 int32_to_float64_mips64el
#define int32_to_floatx80 int32_to_floatx80_mips64el
#define int64_to_float128 int64_to_float128_mips64el
#define int64_to_float16 int64_to_float16_mips64el
#define int64_to_float32 int64_to_float32_mips64el
#define int64_to_float64 int64_to_float64_mips64el
#define int64_to_floatx80 int64_to_floatx80_mips64el
@ -3614,11 +3616,14 @@
#define type_table_add type_table_add_mips64el
#define type_table_get type_table_get_mips64el
#define type_table_lookup type_table_lookup_mips64el
#define uint16_to_float16 uint16_to_float16_mips64el
#define uint16_to_float32 uint16_to_float32_mips64el
#define uint16_to_float64 uint16_to_float64_mips64el
#define uint32_to_float16 uint32_to_float16_mips64el
#define uint32_to_float32 uint32_to_float32_mips64el
#define uint32_to_float64 uint32_to_float64_mips64el
#define uint64_to_float128 uint64_to_float128_mips64el
#define uint64_to_float16 uint64_to_float16_mips64el
#define uint64_to_float32 uint64_to_float32_mips64el
#define uint64_to_float64 uint64_to_float64_mips64el
#define unassigned_io_ops unassigned_io_ops_mips64el

View file

@ -2301,10 +2301,12 @@
#define int16_to_float32 int16_to_float32_mipsel
#define int16_to_float64 int16_to_float64_mipsel
#define int32_to_float128 int32_to_float128_mipsel
#define int32_to_float16 int32_to_float16_mipsel
#define int32_to_float32 int32_to_float32_mipsel
#define int32_to_float64 int32_to_float64_mipsel
#define int32_to_floatx80 int32_to_floatx80_mipsel
#define int64_to_float128 int64_to_float128_mipsel
#define int64_to_float16 int64_to_float16_mipsel
#define int64_to_float32 int64_to_float32_mipsel
#define int64_to_float64 int64_to_float64_mipsel
#define int64_to_floatx80 int64_to_floatx80_mipsel
@ -3614,11 +3616,14 @@
#define type_table_add type_table_add_mipsel
#define type_table_get type_table_get_mipsel
#define type_table_lookup type_table_lookup_mipsel
#define uint16_to_float16 uint16_to_float16_mipsel
#define uint16_to_float32 uint16_to_float32_mipsel
#define uint16_to_float64 uint16_to_float64_mipsel
#define uint32_to_float16 uint32_to_float16_mipsel
#define uint32_to_float32 uint32_to_float32_mipsel
#define uint32_to_float64 uint32_to_float64_mipsel
#define uint64_to_float128 uint64_to_float128_mipsel
#define uint64_to_float16 uint64_to_float16_mipsel
#define uint64_to_float32 uint64_to_float32_mipsel
#define uint64_to_float64 uint64_to_float64_mipsel
#define unassigned_io_ops unassigned_io_ops_mipsel

View file

@ -2301,10 +2301,12 @@
#define int16_to_float32 int16_to_float32_powerpc
#define int16_to_float64 int16_to_float64_powerpc
#define int32_to_float128 int32_to_float128_powerpc
#define int32_to_float16 int32_to_float16_powerpc
#define int32_to_float32 int32_to_float32_powerpc
#define int32_to_float64 int32_to_float64_powerpc
#define int32_to_floatx80 int32_to_floatx80_powerpc
#define int64_to_float128 int64_to_float128_powerpc
#define int64_to_float16 int64_to_float16_powerpc
#define int64_to_float32 int64_to_float32_powerpc
#define int64_to_float64 int64_to_float64_powerpc
#define int64_to_floatx80 int64_to_floatx80_powerpc
@ -3614,11 +3616,14 @@
#define type_table_add type_table_add_powerpc
#define type_table_get type_table_get_powerpc
#define type_table_lookup type_table_lookup_powerpc
#define uint16_to_float16 uint16_to_float16_powerpc
#define uint16_to_float32 uint16_to_float32_powerpc
#define uint16_to_float64 uint16_to_float64_powerpc
#define uint32_to_float16 uint32_to_float16_powerpc
#define uint32_to_float32 uint32_to_float32_powerpc
#define uint32_to_float64 uint32_to_float64_powerpc
#define uint64_to_float128 uint64_to_float128_powerpc
#define uint64_to_float16 uint64_to_float16_powerpc
#define uint64_to_float32 uint64_to_float32_powerpc
#define uint64_to_float64 uint64_to_float64_powerpc
#define unassigned_io_ops unassigned_io_ops_powerpc

View file

@ -2301,10 +2301,12 @@
#define int16_to_float32 int16_to_float32_sparc
#define int16_to_float64 int16_to_float64_sparc
#define int32_to_float128 int32_to_float128_sparc
#define int32_to_float16 int32_to_float16_sparc
#define int32_to_float32 int32_to_float32_sparc
#define int32_to_float64 int32_to_float64_sparc
#define int32_to_floatx80 int32_to_floatx80_sparc
#define int64_to_float128 int64_to_float128_sparc
#define int64_to_float16 int64_to_float16_sparc
#define int64_to_float32 int64_to_float32_sparc
#define int64_to_float64 int64_to_float64_sparc
#define int64_to_floatx80 int64_to_floatx80_sparc
@ -3614,11 +3616,14 @@
#define type_table_add type_table_add_sparc
#define type_table_get type_table_get_sparc
#define type_table_lookup type_table_lookup_sparc
#define uint16_to_float16 uint16_to_float16_sparc
#define uint16_to_float32 uint16_to_float32_sparc
#define uint16_to_float64 uint16_to_float64_sparc
#define uint32_to_float16 uint32_to_float16_sparc
#define uint32_to_float32 uint32_to_float32_sparc
#define uint32_to_float64 uint32_to_float64_sparc
#define uint64_to_float128 uint64_to_float128_sparc
#define uint64_to_float16 uint64_to_float16_sparc
#define uint64_to_float32 uint64_to_float32_sparc
#define uint64_to_float64 uint64_to_float64_sparc
#define unassigned_io_ops unassigned_io_ops_sparc

View file

@ -2301,10 +2301,12 @@
#define int16_to_float32 int16_to_float32_sparc64
#define int16_to_float64 int16_to_float64_sparc64
#define int32_to_float128 int32_to_float128_sparc64
#define int32_to_float16 int32_to_float16_sparc64
#define int32_to_float32 int32_to_float32_sparc64
#define int32_to_float64 int32_to_float64_sparc64
#define int32_to_floatx80 int32_to_floatx80_sparc64
#define int64_to_float128 int64_to_float128_sparc64
#define int64_to_float16 int64_to_float16_sparc64
#define int64_to_float32 int64_to_float32_sparc64
#define int64_to_float64 int64_to_float64_sparc64
#define int64_to_floatx80 int64_to_floatx80_sparc64
@ -3614,11 +3616,14 @@
#define type_table_add type_table_add_sparc64
#define type_table_get type_table_get_sparc64
#define type_table_lookup type_table_lookup_sparc64
#define uint16_to_float16 uint16_to_float16_sparc64
#define uint16_to_float32 uint16_to_float32_sparc64
#define uint16_to_float64 uint16_to_float64_sparc64
#define uint32_to_float16 uint32_to_float16_sparc64
#define uint32_to_float32 uint32_to_float32_sparc64
#define uint32_to_float64 uint32_to_float64_sparc64
#define uint64_to_float128 uint64_to_float128_sparc64
#define uint64_to_float16 uint64_to_float16_sparc64
#define uint64_to_float32 uint64_to_float32_sparc64
#define uint64_to_float64 uint64_to_float64_sparc64
#define unassigned_io_ops unassigned_io_ops_sparc64

View file

@ -2301,10 +2301,12 @@
#define int16_to_float32 int16_to_float32_x86_64
#define int16_to_float64 int16_to_float64_x86_64
#define int32_to_float128 int32_to_float128_x86_64
#define int32_to_float16 int32_to_float16_x86_64
#define int32_to_float32 int32_to_float32_x86_64
#define int32_to_float64 int32_to_float64_x86_64
#define int32_to_floatx80 int32_to_floatx80_x86_64
#define int64_to_float128 int64_to_float128_x86_64
#define int64_to_float16 int64_to_float16_x86_64
#define int64_to_float32 int64_to_float32_x86_64
#define int64_to_float64 int64_to_float64_x86_64
#define int64_to_floatx80 int64_to_floatx80_x86_64
@ -3614,11 +3616,14 @@
#define type_table_add type_table_add_x86_64
#define type_table_get type_table_get_x86_64
#define type_table_lookup type_table_lookup_x86_64
#define uint16_to_float16 uint16_to_float16_x86_64
#define uint16_to_float32 uint16_to_float32_x86_64
#define uint16_to_float64 uint16_to_float64_x86_64
#define uint32_to_float16 uint32_to_float16_x86_64
#define uint32_to_float32 uint32_to_float32_x86_64
#define uint32_to_float64 uint32_to_float64_x86_64
#define uint64_to_float128 uint64_to_float128_x86_64
#define uint64_to_float16 uint64_to_float16_x86_64
#define uint64_to_float32 uint64_to_float32_x86_64
#define uint64_to_float64 uint64_to_float64_x86_64
#define unassigned_io_ops unassigned_io_ops_x86_64