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/disassembler.h" | 5 #include "vm/disassembler.h" |
6 | 6 |
7 #include "vm/assembler.h" | 7 #include "vm/assembler.h" |
8 #include "vm/deopt_instructions.h" | 8 #include "vm/deopt_instructions.h" |
9 #include "vm/globals.h" | 9 #include "vm/globals.h" |
10 #include "vm/il_printer.h" | 10 #include "vm/il_printer.h" |
(...skipping 196 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
207 DeoptTable::ReasonField::decode(reason_and_flags.Value()); | 207 DeoptTable::ReasonField::decode(reason_and_flags.Value()); |
208 ASSERT((0 <= reason) && (reason < ICData::kDeoptNumReasons)); | 208 ASSERT((0 <= reason) && (reason < ICData::kDeoptNumReasons)); |
209 THR_Print( | 209 THR_Print( |
210 "%4" Pd ": 0x%" Px " %s (%s)\n", i, start + offset.Value(), | 210 "%4" Pd ": 0x%" Px " %s (%s)\n", i, start + offset.Value(), |
211 DeoptInfo::ToCString(deopt_table, info), | 211 DeoptInfo::ToCString(deopt_table, info), |
212 DeoptReasonToCString(static_cast<ICData::DeoptReasonId>(reason))); | 212 DeoptReasonToCString(static_cast<ICData::DeoptReasonId>(reason))); |
213 } | 213 } |
214 THR_Print("}\n"); | 214 THR_Print("}\n"); |
215 } | 215 } |
216 | 216 |
217 THR_Print("Stackmaps for function '%s' {\n", function_fullname); | 217 THR_Print("StackMaps for function '%s' {\n", function_fullname); |
218 if (code.stackmaps() != Array::null()) { | 218 if (code.stackmaps() != Array::null()) { |
219 const Array& stackmap_table = Array::Handle(code.stackmaps()); | 219 const Array& stackmap_table = Array::Handle(code.stackmaps()); |
220 Stackmap& map = Stackmap::Handle(); | 220 StackMap& map = StackMap::Handle(); |
221 for (intptr_t i = 0; i < stackmap_table.Length(); ++i) { | 221 for (intptr_t i = 0; i < stackmap_table.Length(); ++i) { |
222 map ^= stackmap_table.At(i); | 222 map ^= stackmap_table.At(i); |
223 THR_Print("%s\n", map.ToCString()); | 223 THR_Print("%s\n", map.ToCString()); |
224 } | 224 } |
225 } | 225 } |
226 THR_Print("}\n"); | 226 THR_Print("}\n"); |
227 | 227 |
228 if (FLAG_print_variable_descriptors) { | 228 if (FLAG_print_variable_descriptors) { |
229 THR_Print("Variable Descriptors for function '%s' {\n", function_fullname); | 229 THR_Print("Variable Descriptors for function '%s' {\n", function_fullname); |
230 intptr_t var_desc_length = | 230 intptr_t var_desc_length = |
(...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
306 bool optimized) { | 306 bool optimized) { |
307 const char* function_fullname = function.ToFullyQualifiedCString(); | 307 const char* function_fullname = function.ToFullyQualifiedCString(); |
308 const Code& code = Code::Handle(function.unoptimized_code()); | 308 const Code& code = Code::Handle(function.unoptimized_code()); |
309 DisassembleCodeHelper(function_fullname, code, optimized); | 309 DisassembleCodeHelper(function_fullname, code, optimized); |
310 } | 310 } |
311 | 311 |
312 | 312 |
313 #endif // !PRODUCT | 313 #endif // !PRODUCT |
314 | 314 |
315 } // namespace dart | 315 } // namespace dart |
OLD | NEW |