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_X64) | 6 #if defined(TARGET_ARCH_X64) |
7 | 7 |
8 #include "vm/assembler.h" | 8 #include "vm/assembler.h" |
9 #include "vm/heap.h" | 9 #include "vm/heap.h" |
10 #include "vm/memory_region.h" | 10 #include "vm/memory_region.h" |
(...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
97 object_pool_.Add(Object::null_object(), Heap::kOld); | 97 object_pool_.Add(Object::null_object(), Heap::kOld); |
98 patchable_pool_entries_.Add(kNotPatchable); | 98 patchable_pool_entries_.Add(kNotPatchable); |
99 } | 99 } |
100 | 100 |
101 if (StubCode::CallToRuntime_entry() != NULL) { | 101 if (StubCode::CallToRuntime_entry() != NULL) { |
102 FindExternalLabel(&StubCode::CallToRuntimeLabel(), kNotPatchable); | 102 FindExternalLabel(&StubCode::CallToRuntimeLabel(), kNotPatchable); |
103 } else { | 103 } else { |
104 object_pool_.Add(Object::null_object(), Heap::kOld); | 104 object_pool_.Add(Object::null_object(), Heap::kOld); |
105 patchable_pool_entries_.Add(kNotPatchable); | 105 patchable_pool_entries_.Add(kNotPatchable); |
106 } | 106 } |
| 107 |
| 108 // Create fixed object pool entries for debugger stubs. |
| 109 if (StubCode::BreakpointStatic_entry() != NULL) { |
| 110 intptr_t index = |
| 111 FindExternalLabel(&StubCode::BreakpointStaticLabel(), kNotPatchable); |
| 112 ASSERT(index == kBreakpointStaticCPIndex); |
| 113 } else { |
| 114 object_pool_.Add(Object::null_object(), Heap::kOld); |
| 115 patchable_pool_entries_.Add(kNotPatchable); |
| 116 } |
| 117 if (StubCode::BreakpointDynamic_entry() != NULL) { |
| 118 intptr_t index = |
| 119 FindExternalLabel(&StubCode::BreakpointDynamicLabel(), kNotPatchable); |
| 120 ASSERT(index == kBreakpointDynamicCPIndex); |
| 121 } else { |
| 122 object_pool_.Add(Object::null_object(), Heap::kOld); |
| 123 patchable_pool_entries_.Add(kNotPatchable); |
| 124 } |
| 125 if (StubCode::BreakpointRuntime_entry() != NULL) { |
| 126 intptr_t index = |
| 127 FindExternalLabel(&StubCode::BreakpointRuntimeLabel(), kNotPatchable); |
| 128 ASSERT(index == kBreakpointRuntimeCPIndex); |
| 129 } else { |
| 130 object_pool_.Add(Object::null_object(), Heap::kOld); |
| 131 patchable_pool_entries_.Add(kNotPatchable); |
| 132 } |
107 } | 133 } |
108 } | 134 } |
109 | 135 |
110 | 136 |
111 void Assembler::InitializeMemoryWithBreakpoints(uword data, intptr_t length) { | 137 void Assembler::InitializeMemoryWithBreakpoints(uword data, intptr_t length) { |
112 memset(reinterpret_cast<void*>(data), Instr::kBreakPointInstruction, length); | 138 memset(reinterpret_cast<void*>(data), Instr::kBreakPointInstruction, length); |
113 } | 139 } |
114 | 140 |
115 | 141 |
116 void Assembler::call(Register reg) { | 142 void Assembler::call(Register reg) { |
(...skipping 2972 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3089 | 3115 |
3090 | 3116 |
3091 const char* Assembler::FpuRegisterName(FpuRegister reg) { | 3117 const char* Assembler::FpuRegisterName(FpuRegister reg) { |
3092 ASSERT((0 <= reg) && (reg < kNumberOfXmmRegisters)); | 3118 ASSERT((0 <= reg) && (reg < kNumberOfXmmRegisters)); |
3093 return xmm_reg_names[reg]; | 3119 return xmm_reg_names[reg]; |
3094 } | 3120 } |
3095 | 3121 |
3096 } // namespace dart | 3122 } // namespace dart |
3097 | 3123 |
3098 #endif // defined TARGET_ARCH_X64 | 3124 #endif // defined TARGET_ARCH_X64 |
OLD | NEW |