OLD | NEW |
1 // Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file |
2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
4 | 4 |
5 #include "vm/runtime_entry.h" | 5 #include "vm/runtime_entry.h" |
6 | 6 |
7 #include "vm/assembler.h" | 7 #include "vm/assembler.h" |
8 #include "vm/ast.h" | 8 #include "vm/ast.h" |
9 #include "vm/code_patcher.h" | 9 #include "vm/code_patcher.h" |
10 #include "vm/compiler.h" | 10 #include "vm/compiler.h" |
(...skipping 2323 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2334 const Object& value = Object::Handle(arguments.ArgAt(1)); | 2334 const Object& value = Object::Handle(arguments.ArgAt(1)); |
2335 field.RecordStore(value); | 2335 field.RecordStore(value); |
2336 } | 2336 } |
2337 | 2337 |
2338 | 2338 |
2339 DEFINE_RUNTIME_ENTRY(InitStaticField, 1) { | 2339 DEFINE_RUNTIME_ENTRY(InitStaticField, 1) { |
2340 const Field& field = Field::CheckedHandle(arguments.ArgAt(0)); | 2340 const Field& field = Field::CheckedHandle(arguments.ArgAt(0)); |
2341 field.EvaluateInitializer(); | 2341 field.EvaluateInitializer(); |
2342 } | 2342 } |
2343 | 2343 |
| 2344 // Use expected function signatures to help MSVC compiler resolve overloading. |
| 2345 typedef double (*UnaryMathCFunction)(double x); |
| 2346 typedef double (*BinaryMathCFunction)(double x, double y); |
| 2347 |
| 2348 DEFINE_RAW_LEAF_RUNTIME_ENTRY( |
| 2349 LibcPow, |
| 2350 2, |
| 2351 true /* is_float */, |
| 2352 reinterpret_cast<RuntimeFunction>(static_cast<BinaryMathCFunction>(&pow))); |
| 2353 |
| 2354 DEFINE_RAW_LEAF_RUNTIME_ENTRY( |
| 2355 DartModulo, |
| 2356 2, |
| 2357 true /* is_float */, |
| 2358 reinterpret_cast<RuntimeFunction>( |
| 2359 static_cast<BinaryMathCFunction>(&DartModulo))); |
| 2360 |
| 2361 DEFINE_RAW_LEAF_RUNTIME_ENTRY( |
| 2362 LibcAtan2, |
| 2363 2, |
| 2364 true /* is_float */, |
| 2365 reinterpret_cast<RuntimeFunction>( |
| 2366 static_cast<BinaryMathCFunction>(&atan2_ieee))); |
| 2367 |
| 2368 DEFINE_RAW_LEAF_RUNTIME_ENTRY( |
| 2369 LibcFloor, |
| 2370 1, |
| 2371 true /* is_float */, |
| 2372 reinterpret_cast<RuntimeFunction>(static_cast<UnaryMathCFunction>(&floor))); |
| 2373 |
| 2374 DEFINE_RAW_LEAF_RUNTIME_ENTRY( |
| 2375 LibcCeil, |
| 2376 1, |
| 2377 true /* is_float */, |
| 2378 reinterpret_cast<RuntimeFunction>(static_cast<UnaryMathCFunction>(&ceil))); |
| 2379 |
| 2380 DEFINE_RAW_LEAF_RUNTIME_ENTRY( |
| 2381 LibcTrunc, |
| 2382 1, |
| 2383 true /* is_float */, |
| 2384 reinterpret_cast<RuntimeFunction>(static_cast<UnaryMathCFunction>(&trunc))); |
| 2385 |
| 2386 DEFINE_RAW_LEAF_RUNTIME_ENTRY( |
| 2387 LibcRound, |
| 2388 1, |
| 2389 true /* is_float */, |
| 2390 reinterpret_cast<RuntimeFunction>(static_cast<UnaryMathCFunction>(&round))); |
| 2391 |
| 2392 DEFINE_RAW_LEAF_RUNTIME_ENTRY( |
| 2393 LibcCos, |
| 2394 1, |
| 2395 true /* is_float */, |
| 2396 reinterpret_cast<RuntimeFunction>(static_cast<UnaryMathCFunction>(&cos))); |
| 2397 |
| 2398 DEFINE_RAW_LEAF_RUNTIME_ENTRY( |
| 2399 LibcSin, |
| 2400 1, |
| 2401 true /* is_float */, |
| 2402 reinterpret_cast<RuntimeFunction>(static_cast<UnaryMathCFunction>(&sin))); |
| 2403 |
| 2404 DEFINE_RAW_LEAF_RUNTIME_ENTRY( |
| 2405 LibcAsin, |
| 2406 1, |
| 2407 true /* is_float */, |
| 2408 reinterpret_cast<RuntimeFunction>(static_cast<UnaryMathCFunction>(&asin))); |
| 2409 |
| 2410 DEFINE_RAW_LEAF_RUNTIME_ENTRY( |
| 2411 LibcAcos, |
| 2412 1, |
| 2413 true /* is_float */, |
| 2414 reinterpret_cast<RuntimeFunction>(static_cast<UnaryMathCFunction>(&acos))); |
| 2415 |
| 2416 DEFINE_RAW_LEAF_RUNTIME_ENTRY( |
| 2417 LibcTan, |
| 2418 1, |
| 2419 true /* is_float */, |
| 2420 reinterpret_cast<RuntimeFunction>(static_cast<UnaryMathCFunction>(&tan))); |
| 2421 |
| 2422 DEFINE_RAW_LEAF_RUNTIME_ENTRY( |
| 2423 LibcAtan, |
| 2424 1, |
| 2425 true /* is_float */, |
| 2426 reinterpret_cast<RuntimeFunction>(static_cast<UnaryMathCFunction>(&atan))); |
| 2427 |
2344 } // namespace dart | 2428 } // namespace dart |
OLD | NEW |