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 "vm/globals.h" | 5 #include "vm/globals.h" |
6 #if defined(TARGET_ARCH_IA32) | 6 #if defined(TARGET_ARCH_IA32) && !defined(DART_PRECOMPILED_RUNTIME) |
7 | 7 |
8 #include "vm/assembler.h" | 8 #include "vm/assembler.h" |
9 #include "vm/compiler.h" | 9 #include "vm/compiler.h" |
10 #include "vm/dart_entry.h" | 10 #include "vm/dart_entry.h" |
11 #include "vm/flow_graph_compiler.h" | 11 #include "vm/flow_graph_compiler.h" |
12 #include "vm/instructions.h" | 12 #include "vm/instructions.h" |
13 #include "vm/heap.h" | 13 #include "vm/heap.h" |
14 #include "vm/object_store.h" | 14 #include "vm/object_store.h" |
15 #include "vm/resolver.h" | 15 #include "vm/resolver.h" |
16 #include "vm/scavenger.h" | 16 #include "vm/scavenger.h" |
(...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
87 __ movl(Assembler::VMTagAddress(), Immediate(VMTag::kDartTagId)); | 87 __ movl(Assembler::VMTagAddress(), Immediate(VMTag::kDartTagId)); |
88 | 88 |
89 // Reset exit frame information in Isolate structure. | 89 // Reset exit frame information in Isolate structure. |
90 __ movl(Address(THR, Thread::top_exit_frame_info_offset()), Immediate(0)); | 90 __ movl(Address(THR, Thread::top_exit_frame_info_offset()), Immediate(0)); |
91 | 91 |
92 __ LeaveFrame(); | 92 __ LeaveFrame(); |
93 __ ret(); | 93 __ ret(); |
94 } | 94 } |
95 | 95 |
96 | 96 |
97 // Print the stop message. | |
98 DEFINE_LEAF_RUNTIME_ENTRY(void, PrintStopMessage, 1, const char* message) { | |
99 OS::Print("Stop message: %s\n", message); | |
100 } | |
101 END_LEAF_RUNTIME_ENTRY | |
102 | |
103 | |
104 // Input parameters: | 97 // Input parameters: |
105 // ESP : points to return address. | 98 // ESP : points to return address. |
106 // EAX : stop message (const char*). | 99 // EAX : stop message (const char*). |
107 // Must preserve all registers, except EAX. | 100 // Must preserve all registers, except EAX. |
108 void StubCode::GeneratePrintStopMessageStub(Assembler* assembler) { | 101 void StubCode::GeneratePrintStopMessageStub(Assembler* assembler) { |
109 __ EnterCallRuntimeFrame(1 * kWordSize); | 102 __ EnterCallRuntimeFrame(1 * kWordSize); |
110 __ movl(Address(ESP, 0), EAX); | 103 __ movl(Address(ESP, 0), EAX); |
111 __ CallRuntime(kPrintStopMessageRuntimeEntry, 1); | 104 __ CallRuntime(kPrintStopMessageRuntimeEntry, 1); |
112 __ LeaveCallRuntimeFrame(); | 105 __ LeaveCallRuntimeFrame(); |
113 __ ret(); | 106 __ ret(); |
(...skipping 2021 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2135 __ int3(); | 2128 __ int3(); |
2136 } | 2129 } |
2137 | 2130 |
2138 | 2131 |
2139 void StubCode::GenerateAsynchronousGapMarkerStub(Assembler* assembler) { | 2132 void StubCode::GenerateAsynchronousGapMarkerStub(Assembler* assembler) { |
2140 __ int3(); | 2133 __ int3(); |
2141 } | 2134 } |
2142 | 2135 |
2143 } // namespace dart | 2136 } // namespace dart |
2144 | 2137 |
2145 #endif // defined TARGET_ARCH_IA32 | 2138 #endif // defined(TARGET_ARCH_IA32) && !defined(DART_PRECOMPILED_RUNTIME) |
OLD | NEW |