13941996bSPaolo Bonzini# There are namespace pollution issues on Windows, due to osdep.h 23941996bSPaolo Bonzini# bringing in Windows headers that define a FLOAT128 type. 33941996bSPaolo Bonziniif targetos == 'windows' 43941996bSPaolo Bonzini subdir_done() 53941996bSPaolo Bonziniendif 63941996bSPaolo Bonzini 73941996bSPaolo Bonzinifpcflags = [ 83941996bSPaolo Bonzini # softfloat defines 93941996bSPaolo Bonzini '-DSOFTFLOAT_ROUND_ODD', 103941996bSPaolo Bonzini '-DINLINE_LEVEL=5', 113941996bSPaolo Bonzini '-DSOFTFLOAT_FAST_DIV32TO16', 123941996bSPaolo Bonzini '-DSOFTFLOAT_FAST_DIV64TO32', 133941996bSPaolo Bonzini '-DSOFTFLOAT_FAST_INT64', 143941996bSPaolo Bonzini # testfloat defines 153941996bSPaolo Bonzini '-DFLOAT16', 163941996bSPaolo Bonzini '-DFLOAT64', 173941996bSPaolo Bonzini '-DEXTFLOAT80', 183941996bSPaolo Bonzini '-DFLOAT128', 193941996bSPaolo Bonzini '-DFLOAT_ROUND_ODD', 203941996bSPaolo Bonzini '-DLONG_DOUBLE_IS_EXTFLOAT80', 213941996bSPaolo Bonzini] 223941996bSPaolo Bonzini 233941996bSPaolo Bonzinisfdir = 'berkeley-softfloat-3/source' 243941996bSPaolo Bonzinisfspedir = sfdir / '8086-SSE' 253941996bSPaolo Bonzinitfdir = 'berkeley-testfloat-3/source' 263941996bSPaolo Bonzini 273941996bSPaolo Bonzinisfinc = include_directories(sfdir / 'include', sfspedir) 283941996bSPaolo Bonzini 293941996bSPaolo Bonzinitfcflags = [ 304f07e71bSThomas Huth '-Wno-implicit-fallthrough', 313941996bSPaolo Bonzini '-Wno-strict-prototypes', 323941996bSPaolo Bonzini '-Wno-unknown-pragmas', 333941996bSPaolo Bonzini '-Wno-uninitialized', 343941996bSPaolo Bonzini '-Wno-missing-prototypes', 353941996bSPaolo Bonzini '-Wno-return-type', 363941996bSPaolo Bonzini '-Wno-unused-function', 373941996bSPaolo Bonzini '-Wno-error', 383941996bSPaolo Bonzini] 393941996bSPaolo Bonzini 403941996bSPaolo Bonzinitfgencases = [ 413941996bSPaolo Bonzini tfdir / 'genCases_ui32.c', 423941996bSPaolo Bonzini tfdir / 'genCases_ui64.c', 433941996bSPaolo Bonzini tfdir / 'genCases_i32.c', 443941996bSPaolo Bonzini tfdir / 'genCases_i64.c', 453941996bSPaolo Bonzini tfdir / 'genCases_f16.c', 463941996bSPaolo Bonzini tfdir / 'genCases_f32.c', 473941996bSPaolo Bonzini tfdir / 'genCases_f64.c', 483941996bSPaolo Bonzini tfdir / 'genCases_extF80.c', 493941996bSPaolo Bonzini tfdir / 'genCases_f128.c', 503941996bSPaolo Bonzini] 513941996bSPaolo Bonzini 523941996bSPaolo Bonzinitfwritecase = [ 533941996bSPaolo Bonzini tfdir / 'writeCase_a_ui32.c', 543941996bSPaolo Bonzini tfdir / 'writeCase_a_ui64.c', 553941996bSPaolo Bonzini tfdir / 'writeCase_a_f16.c', 563941996bSPaolo Bonzini tfdir / 'writeCase_ab_f16.c', 573941996bSPaolo Bonzini tfdir / 'writeCase_abc_f16.c', 583941996bSPaolo Bonzini tfdir / 'writeCase_a_f32.c', 593941996bSPaolo Bonzini tfdir / 'writeCase_ab_f32.c', 603941996bSPaolo Bonzini tfdir / 'writeCase_abc_f32.c', 613941996bSPaolo Bonzini tfdir / 'writeCase_a_f64.c', 623941996bSPaolo Bonzini tfdir / 'writeCase_ab_f64.c', 633941996bSPaolo Bonzini tfdir / 'writeCase_abc_f64.c', 643941996bSPaolo Bonzini tfdir / 'writeCase_a_extF80M.c', 653941996bSPaolo Bonzini tfdir / 'writeCase_ab_extF80M.c', 663941996bSPaolo Bonzini tfdir / 'writeCase_a_f128M.c', 673941996bSPaolo Bonzini tfdir / 'writeCase_ab_f128M.c', 683941996bSPaolo Bonzini tfdir / 'writeCase_abc_f128M.c', 693941996bSPaolo Bonzini tfdir / 'writeCase_z_bool.c', 703941996bSPaolo Bonzini tfdir / 'writeCase_z_ui32.c', 713941996bSPaolo Bonzini tfdir / 'writeCase_z_ui64.c', 723941996bSPaolo Bonzini tfdir / 'writeCase_z_f16.c', 733941996bSPaolo Bonzini tfdir / 'writeCase_z_f32.c', 743941996bSPaolo Bonzini tfdir / 'writeCase_z_f64.c', 753941996bSPaolo Bonzini tfdir / 'writeCase_z_extF80M.c', 763941996bSPaolo Bonzini tfdir / 'writeCase_z_f128M.c', 773941996bSPaolo Bonzini] 783941996bSPaolo Bonzini 793941996bSPaolo Bonzinitftest = [ 803941996bSPaolo Bonzini tfdir / 'test_a_ui32_z_f16.c', 813941996bSPaolo Bonzini tfdir / 'test_a_ui32_z_f32.c', 823941996bSPaolo Bonzini tfdir / 'test_a_ui32_z_f64.c', 833941996bSPaolo Bonzini tfdir / 'test_a_ui32_z_extF80.c', 843941996bSPaolo Bonzini tfdir / 'test_a_ui32_z_f128.c', 853941996bSPaolo Bonzini tfdir / 'test_a_ui64_z_f16.c', 863941996bSPaolo Bonzini tfdir / 'test_a_ui64_z_f32.c', 873941996bSPaolo Bonzini tfdir / 'test_a_ui64_z_f64.c', 883941996bSPaolo Bonzini tfdir / 'test_a_ui64_z_extF80.c', 893941996bSPaolo Bonzini tfdir / 'test_a_ui64_z_f128.c', 903941996bSPaolo Bonzini tfdir / 'test_a_i32_z_f16.c', 913941996bSPaolo Bonzini tfdir / 'test_a_i32_z_f32.c', 923941996bSPaolo Bonzini tfdir / 'test_a_i32_z_f64.c', 933941996bSPaolo Bonzini tfdir / 'test_a_i32_z_extF80.c', 943941996bSPaolo Bonzini tfdir / 'test_a_i32_z_f128.c', 953941996bSPaolo Bonzini tfdir / 'test_a_i64_z_f16.c', 963941996bSPaolo Bonzini tfdir / 'test_a_i64_z_f32.c', 973941996bSPaolo Bonzini tfdir / 'test_a_i64_z_f64.c', 983941996bSPaolo Bonzini tfdir / 'test_a_i64_z_extF80.c', 993941996bSPaolo Bonzini tfdir / 'test_a_i64_z_f128.c', 1003941996bSPaolo Bonzini tfdir / 'test_a_f16_z_ui32_rx.c', 1013941996bSPaolo Bonzini tfdir / 'test_a_f16_z_ui64_rx.c', 1023941996bSPaolo Bonzini tfdir / 'test_a_f16_z_i32_rx.c', 1033941996bSPaolo Bonzini tfdir / 'test_a_f16_z_i64_rx.c', 1043941996bSPaolo Bonzini tfdir / 'test_a_f16_z_ui32_x.c', 1053941996bSPaolo Bonzini tfdir / 'test_a_f16_z_ui64_x.c', 1063941996bSPaolo Bonzini tfdir / 'test_a_f16_z_i32_x.c', 1073941996bSPaolo Bonzini tfdir / 'test_a_f16_z_i64_x.c', 1083941996bSPaolo Bonzini tfdir / 'test_a_f16_z_f32.c', 1093941996bSPaolo Bonzini tfdir / 'test_a_f16_z_f64.c', 1103941996bSPaolo Bonzini tfdir / 'test_a_f16_z_extF80.c', 1113941996bSPaolo Bonzini tfdir / 'test_a_f16_z_f128.c', 1123941996bSPaolo Bonzini tfdir / 'test_az_f16.c', 1133941996bSPaolo Bonzini tfdir / 'test_az_f16_rx.c', 1143941996bSPaolo Bonzini tfdir / 'test_abz_f16.c', 1153941996bSPaolo Bonzini tfdir / 'test_abcz_f16.c', 1163941996bSPaolo Bonzini tfdir / 'test_ab_f16_z_bool.c', 1173941996bSPaolo Bonzini tfdir / 'test_a_f32_z_ui32_rx.c', 1183941996bSPaolo Bonzini tfdir / 'test_a_f32_z_ui64_rx.c', 1193941996bSPaolo Bonzini tfdir / 'test_a_f32_z_i32_rx.c', 1203941996bSPaolo Bonzini tfdir / 'test_a_f32_z_i64_rx.c', 1213941996bSPaolo Bonzini tfdir / 'test_a_f32_z_ui32_x.c', 1223941996bSPaolo Bonzini tfdir / 'test_a_f32_z_ui64_x.c', 1233941996bSPaolo Bonzini tfdir / 'test_a_f32_z_i32_x.c', 1243941996bSPaolo Bonzini tfdir / 'test_a_f32_z_i64_x.c', 1253941996bSPaolo Bonzini tfdir / 'test_a_f32_z_f16.c', 1263941996bSPaolo Bonzini tfdir / 'test_a_f32_z_f64.c', 1273941996bSPaolo Bonzini tfdir / 'test_a_f32_z_extF80.c', 1283941996bSPaolo Bonzini tfdir / 'test_a_f32_z_f128.c', 1293941996bSPaolo Bonzini tfdir / 'test_az_f32.c', 1303941996bSPaolo Bonzini tfdir / 'test_az_f32_rx.c', 1313941996bSPaolo Bonzini tfdir / 'test_abz_f32.c', 1323941996bSPaolo Bonzini tfdir / 'test_abcz_f32.c', 1333941996bSPaolo Bonzini tfdir / 'test_ab_f32_z_bool.c', 1343941996bSPaolo Bonzini tfdir / 'test_a_f64_z_ui32_rx.c', 1353941996bSPaolo Bonzini tfdir / 'test_a_f64_z_ui64_rx.c', 1363941996bSPaolo Bonzini tfdir / 'test_a_f64_z_i32_rx.c', 1373941996bSPaolo Bonzini tfdir / 'test_a_f64_z_i64_rx.c', 1383941996bSPaolo Bonzini tfdir / 'test_a_f64_z_ui32_x.c', 1393941996bSPaolo Bonzini tfdir / 'test_a_f64_z_ui64_x.c', 1403941996bSPaolo Bonzini tfdir / 'test_a_f64_z_i32_x.c', 1413941996bSPaolo Bonzini tfdir / 'test_a_f64_z_i64_x.c', 1423941996bSPaolo Bonzini tfdir / 'test_a_f64_z_f16.c', 1433941996bSPaolo Bonzini tfdir / 'test_a_f64_z_f32.c', 1443941996bSPaolo Bonzini tfdir / 'test_a_f64_z_extF80.c', 1453941996bSPaolo Bonzini tfdir / 'test_a_f64_z_f128.c', 1463941996bSPaolo Bonzini tfdir / 'test_az_f64.c', 1473941996bSPaolo Bonzini tfdir / 'test_az_f64_rx.c', 1483941996bSPaolo Bonzini tfdir / 'test_abz_f64.c', 1493941996bSPaolo Bonzini tfdir / 'test_abcz_f64.c', 1503941996bSPaolo Bonzini tfdir / 'test_ab_f64_z_bool.c', 1513941996bSPaolo Bonzini tfdir / 'test_a_extF80_z_ui32_rx.c', 1523941996bSPaolo Bonzini tfdir / 'test_a_extF80_z_ui64_rx.c', 1533941996bSPaolo Bonzini tfdir / 'test_a_extF80_z_i32_rx.c', 1543941996bSPaolo Bonzini tfdir / 'test_a_extF80_z_i64_rx.c', 1553941996bSPaolo Bonzini tfdir / 'test_a_extF80_z_ui32_x.c', 1563941996bSPaolo Bonzini tfdir / 'test_a_extF80_z_ui64_x.c', 1573941996bSPaolo Bonzini tfdir / 'test_a_extF80_z_i32_x.c', 1583941996bSPaolo Bonzini tfdir / 'test_a_extF80_z_i64_x.c', 1593941996bSPaolo Bonzini tfdir / 'test_a_extF80_z_f16.c', 1603941996bSPaolo Bonzini tfdir / 'test_a_extF80_z_f32.c', 1613941996bSPaolo Bonzini tfdir / 'test_a_extF80_z_f64.c', 1623941996bSPaolo Bonzini tfdir / 'test_a_extF80_z_f128.c', 1633941996bSPaolo Bonzini tfdir / 'test_az_extF80.c', 1643941996bSPaolo Bonzini tfdir / 'test_az_extF80_rx.c', 1653941996bSPaolo Bonzini tfdir / 'test_abz_extF80.c', 1663941996bSPaolo Bonzini tfdir / 'test_ab_extF80_z_bool.c', 1673941996bSPaolo Bonzini tfdir / 'test_a_f128_z_ui32_rx.c', 1683941996bSPaolo Bonzini tfdir / 'test_a_f128_z_ui64_rx.c', 1693941996bSPaolo Bonzini tfdir / 'test_a_f128_z_i32_rx.c', 1703941996bSPaolo Bonzini tfdir / 'test_a_f128_z_i64_rx.c', 1713941996bSPaolo Bonzini tfdir / 'test_a_f128_z_ui32_x.c', 1723941996bSPaolo Bonzini tfdir / 'test_a_f128_z_ui64_x.c', 1733941996bSPaolo Bonzini tfdir / 'test_a_f128_z_i32_x.c', 1743941996bSPaolo Bonzini tfdir / 'test_a_f128_z_i64_x.c', 1753941996bSPaolo Bonzini tfdir / 'test_a_f128_z_f16.c', 1763941996bSPaolo Bonzini tfdir / 'test_a_f128_z_f32.c', 1773941996bSPaolo Bonzini tfdir / 'test_a_f128_z_f64.c', 1783941996bSPaolo Bonzini tfdir / 'test_a_f128_z_extF80.c', 1793941996bSPaolo Bonzini tfdir / 'test_az_f128.c', 1803941996bSPaolo Bonzini tfdir / 'test_az_f128_rx.c', 1813941996bSPaolo Bonzini tfdir / 'test_abz_f128.c', 1823941996bSPaolo Bonzini tfdir / 'test_abcz_f128.c', 1833941996bSPaolo Bonzini tfdir / 'test_ab_f128_z_bool.c', 1843941996bSPaolo Bonzini] 1853941996bSPaolo Bonzini 1863941996bSPaolo Bonzinilibtestfloat = static_library( 1873941996bSPaolo Bonzini 'testfloat', 1883941996bSPaolo Bonzini files( 1893941996bSPaolo Bonzini tfdir / 'uint128_inline.c', 1903941996bSPaolo Bonzini tfdir / 'uint128.c', 1913941996bSPaolo Bonzini tfdir / 'fail.c', 1923941996bSPaolo Bonzini tfdir / 'functions_common.c', 1933941996bSPaolo Bonzini tfdir / 'functionInfos.c', 1943941996bSPaolo Bonzini tfdir / 'standardFunctionInfos.c', 1953941996bSPaolo Bonzini tfdir / 'random.c', 1963941996bSPaolo Bonzini tfdir / 'genCases_common.c', 1973941996bSPaolo Bonzini tfgencases, 1983941996bSPaolo Bonzini tfdir / 'genCases_writeTestsTotal.c', 1993941996bSPaolo Bonzini tfdir / 'verCases_inline.c', 2003941996bSPaolo Bonzini tfdir / 'verCases_common.c', 2013941996bSPaolo Bonzini tfdir / 'verCases_writeFunctionName.c', 2023941996bSPaolo Bonzini tfdir / 'readHex.c', 2033941996bSPaolo Bonzini tfdir / 'writeHex.c', 2043941996bSPaolo Bonzini tfwritecase, 2053941996bSPaolo Bonzini tfdir / 'testLoops_common.c', 2063941996bSPaolo Bonzini tftest, 2073941996bSPaolo Bonzini ), 2083941996bSPaolo Bonzini include_directories: sfinc, 2093941996bSPaolo Bonzini c_args: tfcflags + fpcflags, 2103941996bSPaolo Bonzini) 2113941996bSPaolo Bonzini 2123941996bSPaolo Bonzinisfcflags = [ 2134f07e71bSThomas Huth '-Wno-implicit-fallthrough', 2143941996bSPaolo Bonzini '-Wno-missing-prototypes', 2153941996bSPaolo Bonzini '-Wno-redundant-decls', 2163941996bSPaolo Bonzini '-Wno-return-type', 2173941996bSPaolo Bonzini '-Wno-error', 2183941996bSPaolo Bonzini] 2193941996bSPaolo Bonzini 2203941996bSPaolo Bonzinilibsoftfloat = static_library( 2213941996bSPaolo Bonzini 'softfloat', 2223941996bSPaolo Bonzini files( 2233941996bSPaolo Bonzini # primitives 2243941996bSPaolo Bonzini sfdir / 's_eq128.c', 2253941996bSPaolo Bonzini sfdir / 's_le128.c', 2263941996bSPaolo Bonzini sfdir / 's_lt128.c', 2273941996bSPaolo Bonzini sfdir / 's_shortShiftLeft128.c', 2283941996bSPaolo Bonzini sfdir / 's_shortShiftRight128.c', 2293941996bSPaolo Bonzini sfdir / 's_shortShiftRightJam64.c', 2303941996bSPaolo Bonzini sfdir / 's_shortShiftRightJam64Extra.c', 2313941996bSPaolo Bonzini sfdir / 's_shortShiftRightJam128.c', 2323941996bSPaolo Bonzini sfdir / 's_shortShiftRightJam128Extra.c', 2333941996bSPaolo Bonzini sfdir / 's_shiftRightJam32.c', 2343941996bSPaolo Bonzini sfdir / 's_shiftRightJam64.c', 2353941996bSPaolo Bonzini sfdir / 's_shiftRightJam64Extra.c', 2363941996bSPaolo Bonzini sfdir / 's_shiftRightJam128.c', 2373941996bSPaolo Bonzini sfdir / 's_shiftRightJam128Extra.c', 2383941996bSPaolo Bonzini sfdir / 's_shiftRightJam256M.c', 2393941996bSPaolo Bonzini sfdir / 's_countLeadingZeros8.c', 2403941996bSPaolo Bonzini sfdir / 's_countLeadingZeros16.c', 2413941996bSPaolo Bonzini sfdir / 's_countLeadingZeros32.c', 2423941996bSPaolo Bonzini sfdir / 's_countLeadingZeros64.c', 2433941996bSPaolo Bonzini sfdir / 's_add128.c', 2443941996bSPaolo Bonzini sfdir / 's_add256M.c', 2453941996bSPaolo Bonzini sfdir / 's_sub128.c', 2463941996bSPaolo Bonzini sfdir / 's_sub256M.c', 2473941996bSPaolo Bonzini sfdir / 's_mul64ByShifted32To128.c', 2483941996bSPaolo Bonzini sfdir / 's_mul64To128.c', 2493941996bSPaolo Bonzini sfdir / 's_mul128By32.c', 2503941996bSPaolo Bonzini sfdir / 's_mul128To256M.c', 2513941996bSPaolo Bonzini sfdir / 's_approxRecip_1Ks.c', 2523941996bSPaolo Bonzini sfdir / 's_approxRecip32_1.c', 2533941996bSPaolo Bonzini sfdir / 's_approxRecipSqrt_1Ks.c', 2543941996bSPaolo Bonzini sfdir / 's_approxRecipSqrt32_1.c', 2553941996bSPaolo Bonzini # others 2563941996bSPaolo Bonzini sfdir / 's_roundToUI32.c', 2573941996bSPaolo Bonzini sfdir / 's_roundToUI64.c', 2583941996bSPaolo Bonzini sfdir / 's_roundToI32.c', 2593941996bSPaolo Bonzini sfdir / 's_roundToI64.c', 2603941996bSPaolo Bonzini sfdir / 's_normSubnormalF16Sig.c', 2613941996bSPaolo Bonzini sfdir / 's_roundPackToF16.c', 2623941996bSPaolo Bonzini sfdir / 's_normRoundPackToF16.c', 2633941996bSPaolo Bonzini sfdir / 's_addMagsF16.c', 2643941996bSPaolo Bonzini sfdir / 's_subMagsF16.c', 2653941996bSPaolo Bonzini sfdir / 's_mulAddF16.c', 2663941996bSPaolo Bonzini sfdir / 's_normSubnormalF32Sig.c', 2673941996bSPaolo Bonzini sfdir / 's_roundPackToF32.c', 2683941996bSPaolo Bonzini sfdir / 's_normRoundPackToF32.c', 2693941996bSPaolo Bonzini sfdir / 's_addMagsF32.c', 2703941996bSPaolo Bonzini sfdir / 's_subMagsF32.c', 2713941996bSPaolo Bonzini sfdir / 's_mulAddF32.c', 2723941996bSPaolo Bonzini sfdir / 's_normSubnormalF64Sig.c', 2733941996bSPaolo Bonzini sfdir / 's_roundPackToF64.c', 2743941996bSPaolo Bonzini sfdir / 's_normRoundPackToF64.c', 2753941996bSPaolo Bonzini sfdir / 's_addMagsF64.c', 2763941996bSPaolo Bonzini sfdir / 's_subMagsF64.c', 2773941996bSPaolo Bonzini sfdir / 's_mulAddF64.c', 2783941996bSPaolo Bonzini sfdir / 's_normSubnormalExtF80Sig.c', 2793941996bSPaolo Bonzini sfdir / 's_roundPackToExtF80.c', 2803941996bSPaolo Bonzini sfdir / 's_normRoundPackToExtF80.c', 2813941996bSPaolo Bonzini sfdir / 's_addMagsExtF80.c', 2823941996bSPaolo Bonzini sfdir / 's_subMagsExtF80.c', 2833941996bSPaolo Bonzini sfdir / 's_normSubnormalF128Sig.c', 2843941996bSPaolo Bonzini sfdir / 's_roundPackToF128.c', 2853941996bSPaolo Bonzini sfdir / 's_normRoundPackToF128.c', 2863941996bSPaolo Bonzini sfdir / 's_addMagsF128.c', 2873941996bSPaolo Bonzini sfdir / 's_subMagsF128.c', 2883941996bSPaolo Bonzini sfdir / 's_mulAddF128.c', 2893941996bSPaolo Bonzini sfdir / 'softfloat_state.c', 2903941996bSPaolo Bonzini sfdir / 'ui32_to_f16.c', 2913941996bSPaolo Bonzini sfdir / 'ui32_to_f32.c', 2923941996bSPaolo Bonzini sfdir / 'ui32_to_f64.c', 2933941996bSPaolo Bonzini sfdir / 'ui32_to_extF80.c', 2943941996bSPaolo Bonzini sfdir / 'ui32_to_extF80M.c', 2953941996bSPaolo Bonzini sfdir / 'ui32_to_f128.c', 2963941996bSPaolo Bonzini sfdir / 'ui32_to_f128M.c', 2973941996bSPaolo Bonzini sfdir / 'ui64_to_f16.c', 2983941996bSPaolo Bonzini sfdir / 'ui64_to_f32.c', 2993941996bSPaolo Bonzini sfdir / 'ui64_to_f64.c', 3003941996bSPaolo Bonzini sfdir / 'ui64_to_extF80.c', 3013941996bSPaolo Bonzini sfdir / 'ui64_to_extF80M.c', 3023941996bSPaolo Bonzini sfdir / 'ui64_to_f128.c', 3033941996bSPaolo Bonzini sfdir / 'ui64_to_f128M.c', 3043941996bSPaolo Bonzini sfdir / 'i32_to_f16.c', 3053941996bSPaolo Bonzini sfdir / 'i32_to_f32.c', 3063941996bSPaolo Bonzini sfdir / 'i32_to_f64.c', 3073941996bSPaolo Bonzini sfdir / 'i32_to_extF80.c', 3083941996bSPaolo Bonzini sfdir / 'i32_to_extF80M.c', 3093941996bSPaolo Bonzini sfdir / 'i32_to_f128.c', 3103941996bSPaolo Bonzini sfdir / 'i32_to_f128M.c', 3113941996bSPaolo Bonzini sfdir / 'i64_to_f16.c', 3123941996bSPaolo Bonzini sfdir / 'i64_to_f32.c', 3133941996bSPaolo Bonzini sfdir / 'i64_to_f64.c', 3143941996bSPaolo Bonzini sfdir / 'i64_to_extF80.c', 3153941996bSPaolo Bonzini sfdir / 'i64_to_extF80M.c', 3163941996bSPaolo Bonzini sfdir / 'i64_to_f128.c', 3173941996bSPaolo Bonzini sfdir / 'i64_to_f128M.c', 3183941996bSPaolo Bonzini sfdir / 'f16_to_ui32.c', 3193941996bSPaolo Bonzini sfdir / 'f16_to_ui64.c', 3203941996bSPaolo Bonzini sfdir / 'f16_to_i32.c', 3213941996bSPaolo Bonzini sfdir / 'f16_to_i64.c', 3223941996bSPaolo Bonzini sfdir / 'f16_to_ui32_r_minMag.c', 3233941996bSPaolo Bonzini sfdir / 'f16_to_ui64_r_minMag.c', 3243941996bSPaolo Bonzini sfdir / 'f16_to_i32_r_minMag.c', 3253941996bSPaolo Bonzini sfdir / 'f16_to_i64_r_minMag.c', 3263941996bSPaolo Bonzini sfdir / 'f16_to_f32.c', 3273941996bSPaolo Bonzini sfdir / 'f16_to_f64.c', 3283941996bSPaolo Bonzini sfdir / 'f16_to_extF80.c', 3293941996bSPaolo Bonzini sfdir / 'f16_to_extF80M.c', 3303941996bSPaolo Bonzini sfdir / 'f16_to_f128.c', 3313941996bSPaolo Bonzini sfdir / 'f16_to_f128M.c', 3323941996bSPaolo Bonzini sfdir / 'f16_roundToInt.c', 3333941996bSPaolo Bonzini sfdir / 'f16_add.c', 3343941996bSPaolo Bonzini sfdir / 'f16_sub.c', 3353941996bSPaolo Bonzini sfdir / 'f16_mul.c', 3363941996bSPaolo Bonzini sfdir / 'f16_mulAdd.c', 3373941996bSPaolo Bonzini sfdir / 'f16_div.c', 3383941996bSPaolo Bonzini sfdir / 'f16_rem.c', 3393941996bSPaolo Bonzini sfdir / 'f16_sqrt.c', 3403941996bSPaolo Bonzini sfdir / 'f16_eq.c', 3413941996bSPaolo Bonzini sfdir / 'f16_le.c', 3423941996bSPaolo Bonzini sfdir / 'f16_lt.c', 3433941996bSPaolo Bonzini sfdir / 'f16_eq_signaling.c', 3443941996bSPaolo Bonzini sfdir / 'f16_le_quiet.c', 3453941996bSPaolo Bonzini sfdir / 'f16_lt_quiet.c', 3463941996bSPaolo Bonzini sfdir / 'f16_isSignalingNaN.c', 3473941996bSPaolo Bonzini sfdir / 'f32_to_ui32.c', 3483941996bSPaolo Bonzini sfdir / 'f32_to_ui64.c', 3493941996bSPaolo Bonzini sfdir / 'f32_to_i32.c', 3503941996bSPaolo Bonzini sfdir / 'f32_to_i64.c', 3513941996bSPaolo Bonzini sfdir / 'f32_to_ui32_r_minMag.c', 3523941996bSPaolo Bonzini sfdir / 'f32_to_ui64_r_minMag.c', 3533941996bSPaolo Bonzini sfdir / 'f32_to_i32_r_minMag.c', 3543941996bSPaolo Bonzini sfdir / 'f32_to_i64_r_minMag.c', 3553941996bSPaolo Bonzini sfdir / 'f32_to_f16.c', 3563941996bSPaolo Bonzini sfdir / 'f32_to_f64.c', 3573941996bSPaolo Bonzini sfdir / 'f32_to_extF80.c', 3583941996bSPaolo Bonzini sfdir / 'f32_to_extF80M.c', 3593941996bSPaolo Bonzini sfdir / 'f32_to_f128.c', 3603941996bSPaolo Bonzini sfdir / 'f32_to_f128M.c', 3613941996bSPaolo Bonzini sfdir / 'f32_roundToInt.c', 3623941996bSPaolo Bonzini sfdir / 'f32_add.c', 3633941996bSPaolo Bonzini sfdir / 'f32_sub.c', 3643941996bSPaolo Bonzini sfdir / 'f32_mul.c', 3653941996bSPaolo Bonzini sfdir / 'f32_mulAdd.c', 3663941996bSPaolo Bonzini sfdir / 'f32_div.c', 3673941996bSPaolo Bonzini sfdir / 'f32_rem.c', 3683941996bSPaolo Bonzini sfdir / 'f32_sqrt.c', 3693941996bSPaolo Bonzini sfdir / 'f32_eq.c', 3703941996bSPaolo Bonzini sfdir / 'f32_le.c', 3713941996bSPaolo Bonzini sfdir / 'f32_lt.c', 3723941996bSPaolo Bonzini sfdir / 'f32_eq_signaling.c', 3733941996bSPaolo Bonzini sfdir / 'f32_le_quiet.c', 3743941996bSPaolo Bonzini sfdir / 'f32_lt_quiet.c', 3753941996bSPaolo Bonzini sfdir / 'f32_isSignalingNaN.c', 3763941996bSPaolo Bonzini sfdir / 'f64_to_ui32.c', 3773941996bSPaolo Bonzini sfdir / 'f64_to_ui64.c', 3783941996bSPaolo Bonzini sfdir / 'f64_to_i32.c', 3793941996bSPaolo Bonzini sfdir / 'f64_to_i64.c', 3803941996bSPaolo Bonzini sfdir / 'f64_to_ui32_r_minMag.c', 3813941996bSPaolo Bonzini sfdir / 'f64_to_ui64_r_minMag.c', 3823941996bSPaolo Bonzini sfdir / 'f64_to_i32_r_minMag.c', 3833941996bSPaolo Bonzini sfdir / 'f64_to_i64_r_minMag.c', 3843941996bSPaolo Bonzini sfdir / 'f64_to_f16.c', 3853941996bSPaolo Bonzini sfdir / 'f64_to_f32.c', 3863941996bSPaolo Bonzini sfdir / 'f64_to_extF80.c', 3873941996bSPaolo Bonzini sfdir / 'f64_to_extF80M.c', 3883941996bSPaolo Bonzini sfdir / 'f64_to_f128.c', 3893941996bSPaolo Bonzini sfdir / 'f64_to_f128M.c', 3903941996bSPaolo Bonzini sfdir / 'f64_roundToInt.c', 3913941996bSPaolo Bonzini sfdir / 'f64_add.c', 3923941996bSPaolo Bonzini sfdir / 'f64_sub.c', 3933941996bSPaolo Bonzini sfdir / 'f64_mul.c', 3943941996bSPaolo Bonzini sfdir / 'f64_mulAdd.c', 3953941996bSPaolo Bonzini sfdir / 'f64_div.c', 3963941996bSPaolo Bonzini sfdir / 'f64_rem.c', 3973941996bSPaolo Bonzini sfdir / 'f64_sqrt.c', 3983941996bSPaolo Bonzini sfdir / 'f64_eq.c', 3993941996bSPaolo Bonzini sfdir / 'f64_le.c', 4003941996bSPaolo Bonzini sfdir / 'f64_lt.c', 4013941996bSPaolo Bonzini sfdir / 'f64_eq_signaling.c', 4023941996bSPaolo Bonzini sfdir / 'f64_le_quiet.c', 4033941996bSPaolo Bonzini sfdir / 'f64_lt_quiet.c', 4043941996bSPaolo Bonzini sfdir / 'f64_isSignalingNaN.c', 4053941996bSPaolo Bonzini sfdir / 'extF80_to_ui32.c', 4063941996bSPaolo Bonzini sfdir / 'extF80_to_ui64.c', 4073941996bSPaolo Bonzini sfdir / 'extF80_to_i32.c', 4083941996bSPaolo Bonzini sfdir / 'extF80_to_i64.c', 4093941996bSPaolo Bonzini sfdir / 'extF80_to_ui32_r_minMag.c', 4103941996bSPaolo Bonzini sfdir / 'extF80_to_ui64_r_minMag.c', 4113941996bSPaolo Bonzini sfdir / 'extF80_to_i32_r_minMag.c', 4123941996bSPaolo Bonzini sfdir / 'extF80_to_i64_r_minMag.c', 4133941996bSPaolo Bonzini sfdir / 'extF80_to_f16.c', 4143941996bSPaolo Bonzini sfdir / 'extF80_to_f32.c', 4153941996bSPaolo Bonzini sfdir / 'extF80_to_f64.c', 4163941996bSPaolo Bonzini sfdir / 'extF80_to_f128.c', 4173941996bSPaolo Bonzini sfdir / 'extF80_roundToInt.c', 4183941996bSPaolo Bonzini sfdir / 'extF80_add.c', 4193941996bSPaolo Bonzini sfdir / 'extF80_sub.c', 4203941996bSPaolo Bonzini sfdir / 'extF80_mul.c', 4213941996bSPaolo Bonzini sfdir / 'extF80_div.c', 4223941996bSPaolo Bonzini sfdir / 'extF80_rem.c', 4233941996bSPaolo Bonzini sfdir / 'extF80_sqrt.c', 4243941996bSPaolo Bonzini sfdir / 'extF80_eq.c', 4253941996bSPaolo Bonzini sfdir / 'extF80_le.c', 4263941996bSPaolo Bonzini sfdir / 'extF80_lt.c', 4273941996bSPaolo Bonzini sfdir / 'extF80_eq_signaling.c', 4283941996bSPaolo Bonzini sfdir / 'extF80_le_quiet.c', 4293941996bSPaolo Bonzini sfdir / 'extF80_lt_quiet.c', 4303941996bSPaolo Bonzini sfdir / 'extF80_isSignalingNaN.c', 4313941996bSPaolo Bonzini sfdir / 'extF80M_to_ui32.c', 4323941996bSPaolo Bonzini sfdir / 'extF80M_to_ui64.c', 4333941996bSPaolo Bonzini sfdir / 'extF80M_to_i32.c', 4343941996bSPaolo Bonzini sfdir / 'extF80M_to_i64.c', 4353941996bSPaolo Bonzini sfdir / 'extF80M_to_ui32_r_minMag.c', 4363941996bSPaolo Bonzini sfdir / 'extF80M_to_ui64_r_minMag.c', 4373941996bSPaolo Bonzini sfdir / 'extF80M_to_i32_r_minMag.c', 4383941996bSPaolo Bonzini sfdir / 'extF80M_to_i64_r_minMag.c', 4393941996bSPaolo Bonzini sfdir / 'extF80M_to_f16.c', 4403941996bSPaolo Bonzini sfdir / 'extF80M_to_f32.c', 4413941996bSPaolo Bonzini sfdir / 'extF80M_to_f64.c', 4423941996bSPaolo Bonzini sfdir / 'extF80M_to_f128M.c', 4433941996bSPaolo Bonzini sfdir / 'extF80M_roundToInt.c', 4443941996bSPaolo Bonzini sfdir / 'extF80M_add.c', 4453941996bSPaolo Bonzini sfdir / 'extF80M_sub.c', 4463941996bSPaolo Bonzini sfdir / 'extF80M_mul.c', 4473941996bSPaolo Bonzini sfdir / 'extF80M_div.c', 4483941996bSPaolo Bonzini sfdir / 'extF80M_rem.c', 4493941996bSPaolo Bonzini sfdir / 'extF80M_sqrt.c', 4503941996bSPaolo Bonzini sfdir / 'extF80M_eq.c', 4513941996bSPaolo Bonzini sfdir / 'extF80M_le.c', 4523941996bSPaolo Bonzini sfdir / 'extF80M_lt.c', 4533941996bSPaolo Bonzini sfdir / 'extF80M_eq_signaling.c', 4543941996bSPaolo Bonzini sfdir / 'extF80M_le_quiet.c', 4553941996bSPaolo Bonzini sfdir / 'extF80M_lt_quiet.c', 4563941996bSPaolo Bonzini sfdir / 'f128_to_ui32.c', 4573941996bSPaolo Bonzini sfdir / 'f128_to_ui64.c', 4583941996bSPaolo Bonzini sfdir / 'f128_to_i32.c', 4593941996bSPaolo Bonzini sfdir / 'f128_to_i64.c', 4603941996bSPaolo Bonzini sfdir / 'f128_to_ui32_r_minMag.c', 4613941996bSPaolo Bonzini sfdir / 'f128_to_ui64_r_minMag.c', 4623941996bSPaolo Bonzini sfdir / 'f128_to_i32_r_minMag.c', 4633941996bSPaolo Bonzini sfdir / 'f128_to_i64_r_minMag.c', 4643941996bSPaolo Bonzini sfdir / 'f128_to_f16.c', 4653941996bSPaolo Bonzini sfdir / 'f128_to_f32.c', 4663941996bSPaolo Bonzini sfdir / 'f128_to_extF80.c', 4673941996bSPaolo Bonzini sfdir / 'f128_to_f64.c', 4683941996bSPaolo Bonzini sfdir / 'f128_roundToInt.c', 4693941996bSPaolo Bonzini sfdir / 'f128_add.c', 4703941996bSPaolo Bonzini sfdir / 'f128_sub.c', 4713941996bSPaolo Bonzini sfdir / 'f128_mul.c', 4723941996bSPaolo Bonzini sfdir / 'f128_mulAdd.c', 4733941996bSPaolo Bonzini sfdir / 'f128_div.c', 4743941996bSPaolo Bonzini sfdir / 'f128_rem.c', 4753941996bSPaolo Bonzini sfdir / 'f128_sqrt.c', 4763941996bSPaolo Bonzini sfdir / 'f128_eq.c', 4773941996bSPaolo Bonzini sfdir / 'f128_le.c', 4783941996bSPaolo Bonzini sfdir / 'f128_lt.c', 4793941996bSPaolo Bonzini sfdir / 'f128_eq_signaling.c', 4803941996bSPaolo Bonzini sfdir / 'f128_le_quiet.c', 4813941996bSPaolo Bonzini sfdir / 'f128_lt_quiet.c', 4823941996bSPaolo Bonzini sfdir / 'f128_isSignalingNaN.c', 4833941996bSPaolo Bonzini sfdir / 'f128M_to_ui32.c', 4843941996bSPaolo Bonzini sfdir / 'f128M_to_ui64.c', 4853941996bSPaolo Bonzini sfdir / 'f128M_to_i32.c', 4863941996bSPaolo Bonzini sfdir / 'f128M_to_i64.c', 4873941996bSPaolo Bonzini sfdir / 'f128M_to_ui32_r_minMag.c', 4883941996bSPaolo Bonzini sfdir / 'f128M_to_ui64_r_minMag.c', 4893941996bSPaolo Bonzini sfdir / 'f128M_to_i32_r_minMag.c', 4903941996bSPaolo Bonzini sfdir / 'f128M_to_i64_r_minMag.c', 4913941996bSPaolo Bonzini sfdir / 'f128M_to_f16.c', 4923941996bSPaolo Bonzini sfdir / 'f128M_to_f32.c', 4933941996bSPaolo Bonzini sfdir / 'f128M_to_extF80M.c', 4943941996bSPaolo Bonzini sfdir / 'f128M_to_f64.c', 4953941996bSPaolo Bonzini sfdir / 'f128M_roundToInt.c', 4963941996bSPaolo Bonzini sfdir / 'f128M_add.c', 4973941996bSPaolo Bonzini sfdir / 'f128M_sub.c', 4983941996bSPaolo Bonzini sfdir / 'f128M_mul.c', 4993941996bSPaolo Bonzini sfdir / 'f128M_mulAdd.c', 5003941996bSPaolo Bonzini sfdir / 'f128M_div.c', 5013941996bSPaolo Bonzini sfdir / 'f128M_rem.c', 5023941996bSPaolo Bonzini sfdir / 'f128M_sqrt.c', 5033941996bSPaolo Bonzini sfdir / 'f128M_eq.c', 5043941996bSPaolo Bonzini sfdir / 'f128M_le.c', 5053941996bSPaolo Bonzini sfdir / 'f128M_lt.c', 5063941996bSPaolo Bonzini sfdir / 'f128M_eq_signaling.c', 5073941996bSPaolo Bonzini sfdir / 'f128M_le_quiet.c', 5083941996bSPaolo Bonzini sfdir / 'f128M_lt_quiet.c', 5093941996bSPaolo Bonzini # spe 5103941996bSPaolo Bonzini sfspedir / 'softfloat_raiseFlags.c', 5113941996bSPaolo Bonzini sfspedir / 's_f16UIToCommonNaN.c', 5123941996bSPaolo Bonzini sfspedir / 's_commonNaNToF16UI.c', 5133941996bSPaolo Bonzini sfspedir / 's_propagateNaNF16UI.c', 5143941996bSPaolo Bonzini sfspedir / 's_f32UIToCommonNaN.c', 5153941996bSPaolo Bonzini sfspedir / 's_commonNaNToF32UI.c', 5163941996bSPaolo Bonzini sfspedir / 's_propagateNaNF32UI.c', 5173941996bSPaolo Bonzini sfspedir / 's_f64UIToCommonNaN.c', 5183941996bSPaolo Bonzini sfspedir / 's_commonNaNToF64UI.c', 5193941996bSPaolo Bonzini sfspedir / 's_propagateNaNF64UI.c', 5203941996bSPaolo Bonzini sfspedir / 'extF80M_isSignalingNaN.c', 5213941996bSPaolo Bonzini sfspedir / 's_extF80UIToCommonNaN.c', 5223941996bSPaolo Bonzini sfspedir / 's_commonNaNToExtF80UI.c', 5233941996bSPaolo Bonzini sfspedir / 's_propagateNaNExtF80UI.c', 5243941996bSPaolo Bonzini sfspedir / 'f128M_isSignalingNaN.c', 5253941996bSPaolo Bonzini sfspedir / 's_f128UIToCommonNaN.c', 5263941996bSPaolo Bonzini sfspedir / 's_commonNaNToF128UI.c', 5273941996bSPaolo Bonzini sfspedir / 's_propagateNaNF128UI.c', 5283941996bSPaolo Bonzini ), 5293941996bSPaolo Bonzini include_directories: sfinc, 5303941996bSPaolo Bonzini c_args: sfcflags + fpcflags, 5313941996bSPaolo Bonzini) 5323941996bSPaolo Bonzini 5333941996bSPaolo Bonzinifpcflags += [ 5343941996bSPaolo Bonzini # work around TARGET_* poisoning 5353941996bSPaolo Bonzini '-DHW_POISON_H', 5363941996bSPaolo Bonzini # define a target to match testfloat's implementation-defined choices, such as 5373941996bSPaolo Bonzini # whether to raise the invalid flag when dealing with NaNs in muladd. 5383941996bSPaolo Bonzini '-DTARGET_ARM', 5393941996bSPaolo Bonzini # FIXME: uiZ may be used uninitialized in this function 5403941996bSPaolo Bonzini '-Wno-uninitialized', 5413941996bSPaolo Bonzini] 5423941996bSPaolo Bonzini 5433941996bSPaolo Bonzinifptest = executable( 5443941996bSPaolo Bonzini 'fp-test', 5453941996bSPaolo Bonzini ['fp-test.c', tfdir / 'slowfloat.c', '../../fpu/softfloat.c'], 5463941996bSPaolo Bonzini link_with: [libtestfloat, libsoftfloat], 5473941996bSPaolo Bonzini dependencies: [qemuutil], 5483941996bSPaolo Bonzini include_directories: [sfinc, include_directories(tfdir)], 5493941996bSPaolo Bonzini c_args: fpcflags, 5503941996bSPaolo Bonzini) 5513941996bSPaolo Bonzinisoftfloat_conv_tests = { 5523941996bSPaolo Bonzini 'float-to-float': 'f16_to_f32 f16_to_f64 f16_to_extF80 f16_to_f128 ' + 5533941996bSPaolo Bonzini 'f32_to_f16 f32_to_f64 f32_to_extF80 ' + 5543941996bSPaolo Bonzini 'f64_to_f16 f64_to_f32 ' + 5553941996bSPaolo Bonzini 'extF80_to_f16 extF80_to_f32 ' + 5563941996bSPaolo Bonzini 'extF80_to_f64 extF80_to_f128 ' + 5573941996bSPaolo Bonzini 'f128_to_f16', 5583941996bSPaolo Bonzini 'int-to-float': 'i32_to_f16 i64_to_f16 i32_to_f32 i64_to_f32 ' + 559*90d00452SAlex Bennée 'i32_to_f64 i64_to_f64 ' + 560*90d00452SAlex Bennée 'i32_to_extF80 i64_to_extF80 ' + 561*90d00452SAlex Bennée 'i32_to_f128 i64_to_f128', 5623941996bSPaolo Bonzini 'uint-to-float': 'ui32_to_f16 ui64_to_f16 ui32_to_f32 ui64_to_f32 ' + 5633941996bSPaolo Bonzini 'ui32_to_f64 ui64_to_f64 ui64_to_f128 ' + 5643941996bSPaolo Bonzini 'ui32_to_extF80 ui64_to_extF80', 5653941996bSPaolo Bonzini 'float-to-int': 'f16_to_i32 f16_to_i32_r_minMag ' + 5663941996bSPaolo Bonzini 'f32_to_i32 f32_to_i32_r_minMag ' + 5673941996bSPaolo Bonzini 'f64_to_i32 f64_to_i32_r_minMag ' + 5683941996bSPaolo Bonzini 'extF80_to_i32 extF80_to_i32_r_minMag ' + 5693941996bSPaolo Bonzini 'f128_to_i32 f128_to_i32_r_minMag ' + 5703941996bSPaolo Bonzini 'f16_to_i64 f16_to_i64_r_minMag ' + 5713941996bSPaolo Bonzini 'f32_to_i64 f32_to_i64_r_minMag ' + 5723941996bSPaolo Bonzini 'f64_to_i64 f64_to_i64_r_minMag ' + 5733941996bSPaolo Bonzini 'extF80_to_i64 extF80_to_i64_r_minMag ' + 5743941996bSPaolo Bonzini 'f128_to_i64 f128_to_i64_r_minMag', 5753941996bSPaolo Bonzini 'float-to-uint': 'f16_to_ui32 f16_to_ui32_r_minMag ' + 5763941996bSPaolo Bonzini 'f32_to_ui32 f32_to_ui32_r_minMag ' + 5773941996bSPaolo Bonzini 'f64_to_ui32 f64_to_ui32_r_minMag ' + 5783941996bSPaolo Bonzini 'extF80_to_ui32 extF80_to_ui32_r_minMag ' + 5793941996bSPaolo Bonzini 'f128_to_ui32 f128_to_ui32_r_minMag ' + 5803941996bSPaolo Bonzini 'f16_to_ui64 f16_to_ui64_r_minMag ' + 5813941996bSPaolo Bonzini 'f32_to_ui64 f32_to_ui64_r_minMag ' + 5823941996bSPaolo Bonzini 'f64_to_ui64 f64_to_ui64_r_minMag ' + 5833941996bSPaolo Bonzini 'extF80_to_ui64 extF80_to_ui64_r_minMag ' + 5843941996bSPaolo Bonzini 'f128_to_ui64 f128_to_ui64_r_minMag', 5853941996bSPaolo Bonzini 'round-to-integer': 'f16_roundToInt f32_roundToInt ' + 586*90d00452SAlex Bennée 'f64_roundToInt extF80_roundToInt f128_roundToInt' 5873941996bSPaolo Bonzini} 5883941996bSPaolo Bonzinisoftfloat_tests = { 5893941996bSPaolo Bonzini 'eq_signaling' : 'compare', 5903941996bSPaolo Bonzini 'le' : 'compare', 5913941996bSPaolo Bonzini 'le_quiet' : 'compare', 5923941996bSPaolo Bonzini 'lt_quiet' : 'compare', 5933941996bSPaolo Bonzini 'add': 'ops', 5943941996bSPaolo Bonzini 'sub': 'ops', 5953941996bSPaolo Bonzini 'mul': 'ops', 5963941996bSPaolo Bonzini 'div': 'ops', 5973941996bSPaolo Bonzini 'rem': 'ops', 5983941996bSPaolo Bonzini 'sqrt': 'ops' 5993941996bSPaolo Bonzini} 6003941996bSPaolo Bonzini# The full test suite can take a bit of time, default to a quick run 6013941996bSPaolo Bonzini# "-l 2 -r all" can take more than a day for some operations and is best 6023941996bSPaolo Bonzini# run manually 6033941996bSPaolo Bonzinifptest_args = ['-s', '-l', '1'] 6043941996bSPaolo Bonzinifptest_rounding_args = ['-r', 'all'] 6053941996bSPaolo Bonzini 6063941996bSPaolo Bonzini# Conversion Routines: 6073941996bSPaolo Bonziniforeach k, v : softfloat_conv_tests 60834f02e9fSPaolo Bonzini test('fp-test-' + k, fptest, 6093941996bSPaolo Bonzini args: fptest_args + fptest_rounding_args + v.split(), 6103941996bSPaolo Bonzini suite: ['softfloat', 'softfloat-conv']) 6113941996bSPaolo Bonziniendforeach 6123941996bSPaolo Bonzini 6133941996bSPaolo Bonziniforeach k, v : softfloat_tests 61434f02e9fSPaolo Bonzini test('fp-test-' + k, fptest, 6153941996bSPaolo Bonzini args: fptest_args + fptest_rounding_args + 616*90d00452SAlex Bennée ['f16_' + k, 'f32_' + k, 'f64_' + k, 'f128_' + k, 'extF80_' + k], 6173941996bSPaolo Bonzini suite: ['softfloat', 'softfloat-' + v]) 6183941996bSPaolo Bonziniendforeach 619*90d00452SAlex Bennée 620*90d00452SAlex Bennée# FIXME: extF80_{mulAdd} (missing) 62134f02e9fSPaolo Bonzinitest('fp-test-mulAdd', fptest, 6223941996bSPaolo Bonzini # no fptest_rounding_args 6233941996bSPaolo Bonzini args: fptest_args + 6243941996bSPaolo Bonzini ['f16_mulAdd', 'f32_mulAdd', 'f64_mulAdd', 'f128_mulAdd'], 625dc1d91acSPaolo Bonzini suite: ['softfloat-slow', 'softfloat-ops-slow'], timeout: 90) 6263941996bSPaolo Bonzini 6273941996bSPaolo Bonzinifpbench = executable( 6283941996bSPaolo Bonzini 'fp-bench', 6293941996bSPaolo Bonzini ['fp-bench.c', '../../fpu/softfloat.c'], 6303941996bSPaolo Bonzini link_with: [libtestfloat, libsoftfloat], 6313941996bSPaolo Bonzini dependencies: [qemuutil], 6323941996bSPaolo Bonzini include_directories: [sfinc, include_directories(tfdir)], 6333941996bSPaolo Bonzini c_args: fpcflags, 6343941996bSPaolo Bonzini) 6352fa3546cSRichard Henderson 6362fa3546cSRichard Hendersonfptestlog2 = executable( 6372fa3546cSRichard Henderson 'fp-test-log2', 6382fa3546cSRichard Henderson ['fp-test-log2.c', '../../fpu/softfloat.c'], 6392fa3546cSRichard Henderson link_with: [libsoftfloat], 6402fa3546cSRichard Henderson dependencies: [qemuutil], 6412fa3546cSRichard Henderson include_directories: [sfinc], 6422fa3546cSRichard Henderson c_args: fpcflags, 6432fa3546cSRichard Henderson) 6442fa3546cSRichard Hendersontest('fp-test-log2', fptestlog2, 6452fa3546cSRichard Henderson suite: ['softfloat', 'softfloat-ops']) 646