| OLD | NEW |
| 1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2013, 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 <setjmp.h> // NOLINT | 5 #include <setjmp.h> // NOLINT |
| 6 #include <stdlib.h> | 6 #include <stdlib.h> |
| 7 | 7 |
| 8 #include "vm/globals.h" | 8 #include "vm/globals.h" |
| 9 #if defined(TARGET_ARCH_MIPS) | 9 #if defined(TARGET_ARCH_MIPS) |
| 10 | 10 |
| (...skipping 1250 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1261 (redirection->argument_count() <= 2)); | 1261 (redirection->argument_count() <= 2)); |
| 1262 // double values are passed and returned in floating point registers. | 1262 // double values are passed and returned in floating point registers. |
| 1263 SimulatorLeafFloatRuntimeCall target = | 1263 SimulatorLeafFloatRuntimeCall target = |
| 1264 reinterpret_cast<SimulatorLeafFloatRuntimeCall>(external); | 1264 reinterpret_cast<SimulatorLeafFloatRuntimeCall>(external); |
| 1265 double d0 = 0.0; | 1265 double d0 = 0.0; |
| 1266 double d6 = get_fregister_double(F12); | 1266 double d6 = get_fregister_double(F12); |
| 1267 double d7 = get_fregister_double(F14); | 1267 double d7 = get_fregister_double(F14); |
| 1268 d0 = target(d6, d7); | 1268 d0 = target(d6, d7); |
| 1269 set_fregister_double(F0, d0); | 1269 set_fregister_double(F0, d0); |
| 1270 } else if (redirection->call_kind() == kBootstrapNativeCall) { | 1270 } else if (redirection->call_kind() == kBootstrapNativeCall) { |
| 1271 ASSERT(redirection->argument_count() == 1); |
| 1271 NativeArguments* arguments; | 1272 NativeArguments* arguments; |
| 1272 arguments = reinterpret_cast<NativeArguments*>(get_register(A0)); | 1273 arguments = reinterpret_cast<NativeArguments*>(get_register(A0)); |
| 1273 SimulatorBootstrapNativeCall target = | 1274 SimulatorBootstrapNativeCall target = |
| 1274 reinterpret_cast<SimulatorBootstrapNativeCall>(external); | 1275 reinterpret_cast<SimulatorBootstrapNativeCall>(external); |
| 1275 target(arguments); | 1276 target(arguments); |
| 1276 set_register(V0, icount_); // Zap result register from void function. | 1277 set_register(V0, icount_); // Zap result register from void function. |
| 1277 set_register(V1, icount_); | 1278 set_register(V1, icount_); |
| 1278 } else { | 1279 } else { |
| 1279 ASSERT(redirection->call_kind() == kNativeCall); | 1280 ASSERT(redirection->call_kind() == kNativeCall); |
| 1280 NativeArguments* arguments; | 1281 NativeArguments* arguments; |
| (...skipping 1202 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2483 set_register(kExceptionObjectReg, bit_cast<int32_t>(raw_exception)); | 2484 set_register(kExceptionObjectReg, bit_cast<int32_t>(raw_exception)); |
| 2484 set_register(kStackTraceObjectReg, bit_cast<int32_t>(raw_stacktrace)); | 2485 set_register(kStackTraceObjectReg, bit_cast<int32_t>(raw_stacktrace)); |
| 2485 buf->Longjmp(); | 2486 buf->Longjmp(); |
| 2486 } | 2487 } |
| 2487 | 2488 |
| 2488 } // namespace dart | 2489 } // namespace dart |
| 2489 | 2490 |
| 2490 #endif // defined(USING_SIMULATOR) | 2491 #endif // defined(USING_SIMULATOR) |
| 2491 | 2492 |
| 2492 #endif // defined TARGET_ARCH_MIPS | 2493 #endif // defined TARGET_ARCH_MIPS |
| OLD | NEW |