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 // Declares a Simulator for ARM instructions if we are not generating a native | 5 // Declares a Simulator for ARM instructions if we are not generating a native |
6 // ARM binary. This Simulator allows us to run and debug ARM code generation on | 6 // ARM binary. This Simulator allows us to run and debug ARM code generation on |
7 // regular desktop machines. | 7 // regular desktop machines. |
8 // Dart calls into generated code by "calling" the InvokeDartCode stub, | 8 // Dart calls into generated code by "calling" the InvokeDartCode stub, |
9 // which will start execution in the Simulator or forwards to the real entry | 9 // which will start execution in the Simulator or forwards to the real entry |
10 // on a ARM HW platform. | 10 // on a ARM HW platform. |
11 | 11 |
12 #ifndef VM_SIMULATOR_ARM_H_ | 12 #ifndef VM_SIMULATOR_ARM_H_ |
13 #define VM_SIMULATOR_ARM_H_ | 13 #define VM_SIMULATOR_ARM_H_ |
14 | 14 |
15 #ifndef VM_SIMULATOR_H_ | 15 #ifndef VM_SIMULATOR_H_ |
16 #error Do not include simulator_arm.h directly; use simulator.h. | 16 #error Do not include simulator_arm.h directly; use simulator.h. |
17 #endif | 17 #endif |
18 | 18 |
19 #include "vm/constants_arm.h" | 19 #include "vm/constants_arm.h" |
20 | 20 |
21 namespace dart { | 21 namespace dart { |
22 | 22 |
23 class Isolate; | 23 class Isolate; |
24 class Mutex; | 24 class Mutex; |
25 class RawObject; | 25 class RawObject; |
26 class SimulatorSetjmpBuffer; | 26 class SimulatorSetjmpBuffer; |
27 class Thread; | 27 class Thread; |
28 | 28 |
| 29 #if !defined(SIMD_VALUE_T_) |
29 typedef struct { | 30 typedef struct { |
30 union { | 31 union { |
31 uint32_t u; | 32 uint32_t u; |
32 float f; | 33 float f; |
33 } data_[4]; | 34 } data_[4]; |
34 } simd_value_t; | 35 } simd_value_t; |
| 36 #endif |
35 | 37 |
36 class Simulator { | 38 class Simulator { |
37 public: | 39 public: |
38 static const uword kSimulatorStackUnderflowSize = 64; | 40 static const uword kSimulatorStackUnderflowSize = 64; |
39 | 41 |
40 Simulator(); | 42 Simulator(); |
41 ~Simulator(); | 43 ~Simulator(); |
42 | 44 |
43 // The currently executing Simulator instance, which is associated to the | 45 // The currently executing Simulator instance, which is associated to the |
44 // current isolate | 46 // current isolate |
(...skipping 227 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
272 } | 274 } |
273 | 275 |
274 friend class SimulatorDebugger; | 276 friend class SimulatorDebugger; |
275 friend class SimulatorSetjmpBuffer; | 277 friend class SimulatorSetjmpBuffer; |
276 DISALLOW_COPY_AND_ASSIGN(Simulator); | 278 DISALLOW_COPY_AND_ASSIGN(Simulator); |
277 }; | 279 }; |
278 | 280 |
279 } // namespace dart | 281 } // namespace dart |
280 | 282 |
281 #endif // VM_SIMULATOR_ARM_H_ | 283 #endif // VM_SIMULATOR_ARM_H_ |
OLD | NEW |