| Index: runtime/vm/runtime_entry.cc
|
| diff --git a/runtime/vm/runtime_entry.cc b/runtime/vm/runtime_entry.cc
|
| index c9008b0478dc3513af0dff9b607bc107dbc93a85..3504e78830f6893a95ed14df30445eecf325dced 100644
|
| --- a/runtime/vm/runtime_entry.cc
|
| +++ b/runtime/vm/runtime_entry.cc
|
| @@ -2341,4 +2341,88 @@ DEFINE_RUNTIME_ENTRY(InitStaticField, 1) {
|
| field.EvaluateInitializer();
|
| }
|
|
|
| +// Use expected function signatures to help MSVC compiler resolve overloading.
|
| +typedef double (*UnaryMathCFunction)(double x);
|
| +typedef double (*BinaryMathCFunction)(double x, double y);
|
| +
|
| +DEFINE_RAW_LEAF_RUNTIME_ENTRY(
|
| + LibcPow,
|
| + 2,
|
| + true /* is_float */,
|
| + reinterpret_cast<RuntimeFunction>(static_cast<BinaryMathCFunction>(&pow)));
|
| +
|
| +DEFINE_RAW_LEAF_RUNTIME_ENTRY(
|
| + DartModulo,
|
| + 2,
|
| + true /* is_float */,
|
| + reinterpret_cast<RuntimeFunction>(
|
| + static_cast<BinaryMathCFunction>(&DartModulo)));
|
| +
|
| +DEFINE_RAW_LEAF_RUNTIME_ENTRY(
|
| + LibcAtan2,
|
| + 2,
|
| + true /* is_float */,
|
| + reinterpret_cast<RuntimeFunction>(
|
| + static_cast<BinaryMathCFunction>(&atan2_ieee)));
|
| +
|
| +DEFINE_RAW_LEAF_RUNTIME_ENTRY(
|
| + LibcFloor,
|
| + 1,
|
| + true /* is_float */,
|
| + reinterpret_cast<RuntimeFunction>(static_cast<UnaryMathCFunction>(&floor)));
|
| +
|
| +DEFINE_RAW_LEAF_RUNTIME_ENTRY(
|
| + LibcCeil,
|
| + 1,
|
| + true /* is_float */,
|
| + reinterpret_cast<RuntimeFunction>(static_cast<UnaryMathCFunction>(&ceil)));
|
| +
|
| +DEFINE_RAW_LEAF_RUNTIME_ENTRY(
|
| + LibcTrunc,
|
| + 1,
|
| + true /* is_float */,
|
| + reinterpret_cast<RuntimeFunction>(static_cast<UnaryMathCFunction>(&trunc)));
|
| +
|
| +DEFINE_RAW_LEAF_RUNTIME_ENTRY(
|
| + LibcRound,
|
| + 1,
|
| + true /* is_float */,
|
| + reinterpret_cast<RuntimeFunction>(static_cast<UnaryMathCFunction>(&round)));
|
| +
|
| +DEFINE_RAW_LEAF_RUNTIME_ENTRY(
|
| + LibcCos,
|
| + 1,
|
| + true /* is_float */,
|
| + reinterpret_cast<RuntimeFunction>(static_cast<UnaryMathCFunction>(&cos)));
|
| +
|
| +DEFINE_RAW_LEAF_RUNTIME_ENTRY(
|
| + LibcSin,
|
| + 1,
|
| + true /* is_float */,
|
| + reinterpret_cast<RuntimeFunction>(static_cast<UnaryMathCFunction>(&sin)));
|
| +
|
| +DEFINE_RAW_LEAF_RUNTIME_ENTRY(
|
| + LibcAsin,
|
| + 1,
|
| + true /* is_float */,
|
| + reinterpret_cast<RuntimeFunction>(static_cast<UnaryMathCFunction>(&asin)));
|
| +
|
| +DEFINE_RAW_LEAF_RUNTIME_ENTRY(
|
| + LibcAcos,
|
| + 1,
|
| + true /* is_float */,
|
| + reinterpret_cast<RuntimeFunction>(static_cast<UnaryMathCFunction>(&acos)));
|
| +
|
| +DEFINE_RAW_LEAF_RUNTIME_ENTRY(
|
| + LibcTan,
|
| + 1,
|
| + true /* is_float */,
|
| + reinterpret_cast<RuntimeFunction>(static_cast<UnaryMathCFunction>(&tan)));
|
| +
|
| +DEFINE_RAW_LEAF_RUNTIME_ENTRY(
|
| + LibcAtan,
|
| + 1,
|
| + true /* is_float */,
|
| + reinterpret_cast<RuntimeFunction>(static_cast<UnaryMathCFunction>(&atan)));
|
| +
|
| } // namespace dart
|
|
|