OLD | NEW |
1 // Copyright 2013 the V8 project authors. All rights reserved. | 1 // Copyright 2013 the V8 project authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "src/v8.h" | 5 #include "src/v8.h" |
6 | 6 |
7 #include "src/accessors.h" | 7 #include "src/accessors.h" |
8 #include "src/allocation-site-scopes.h" | 8 #include "src/allocation-site-scopes.h" |
9 #include "src/api.h" | 9 #include "src/api.h" |
10 #include "src/arguments.h" | 10 #include "src/arguments.h" |
(...skipping 11110 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
11121 | 11121 |
11122 #ifdef ENABLE_DISASSEMBLER | 11122 #ifdef ENABLE_DISASSEMBLER |
11123 | 11123 |
11124 void DeoptimizationInputData::DeoptimizationInputDataPrint( | 11124 void DeoptimizationInputData::DeoptimizationInputDataPrint( |
11125 OStream& os) { // NOLINT | 11125 OStream& os) { // NOLINT |
11126 disasm::NameConverter converter; | 11126 disasm::NameConverter converter; |
11127 int deopt_count = DeoptCount(); | 11127 int deopt_count = DeoptCount(); |
11128 os << "Deoptimization Input Data (deopt points = " << deopt_count << ")\n"; | 11128 os << "Deoptimization Input Data (deopt points = " << deopt_count << ")\n"; |
11129 if (0 != deopt_count) { | 11129 if (0 != deopt_count) { |
11130 os << " index ast id argc pc"; | 11130 os << " index ast id argc pc"; |
11131 if (FLAG_print_code_verbose) os << " commands"; | 11131 if (FLAG_print_code_verbose) os << "commands"; |
11132 os << "\n"; | 11132 os << "\n"; |
11133 } | 11133 } |
11134 for (int i = 0; i < deopt_count; i++) { | 11134 for (int i = 0; i < deopt_count; i++) { |
11135 // TODO(svenpanne) Add some basic formatting to our streams. | 11135 // TODO(svenpanne) Add some basic formatting to our streams. |
11136 Vector<char> buf1 = Vector<char>::New(128); | 11136 Vector<char> buf1 = Vector<char>::New(128); |
11137 SNPrintF(buf1, "%6d %6d %6d %6d", i, AstId(i).ToInt(), | 11137 SNPrintF(buf1, "%6d %6d %6d %6d", i, AstId(i).ToInt(), |
11138 ArgumentsStackHeight(i)->value(), Pc(i)->value()); | 11138 ArgumentsStackHeight(i)->value(), Pc(i)->value()); |
11139 os << buf1.start(); | 11139 os << buf1.start(); |
11140 | 11140 |
11141 if (!FLAG_print_code_verbose) { | 11141 if (!FLAG_print_code_verbose) { |
11142 os << "\n"; | 11142 os << "\n"; |
11143 continue; | 11143 continue; |
11144 } | 11144 } |
11145 // Print details of the frame translation. | 11145 // Print details of the frame translation. |
11146 int translation_index = TranslationIndex(i)->value(); | 11146 int translation_index = TranslationIndex(i)->value(); |
11147 TranslationIterator iterator(TranslationByteArray(), translation_index); | 11147 TranslationIterator iterator(TranslationByteArray(), translation_index); |
11148 Translation::Opcode opcode = | 11148 Translation::Opcode opcode = |
11149 static_cast<Translation::Opcode>(iterator.Next()); | 11149 static_cast<Translation::Opcode>(iterator.Next()); |
11150 DCHECK(Translation::BEGIN == opcode); | 11150 DCHECK(Translation::BEGIN == opcode); |
11151 int frame_count = iterator.Next(); | 11151 int frame_count = iterator.Next(); |
11152 int jsframe_count = iterator.Next(); | 11152 int jsframe_count = iterator.Next(); |
11153 os << " " << Translation::StringFor(opcode) | 11153 os << " " << Translation::StringFor(opcode) |
11154 << " {frame count=" << frame_count | 11154 << " {frame count=" << frame_count |
11155 << ", js frame count=" << jsframe_count << "}\n"; | 11155 << ", js frame count=" << jsframe_count << "}\n"; |
11156 | 11156 |
11157 while (iterator.HasNext() && | 11157 while (iterator.HasNext() && |
11158 Translation::BEGIN != | 11158 Translation::BEGIN != |
11159 (opcode = static_cast<Translation::Opcode>(iterator.Next()))) { | 11159 (opcode = static_cast<Translation::Opcode>(iterator.Next()))) { |
11160 Vector<char> buf2 = Vector<char>::New(128); | 11160 Vector<char> buf2 = Vector<char>::New(128); |
11161 SNPrintF(buf2, "%27s %s ", "", Translation::StringFor(opcode)); | 11161 SNPrintF(buf2, "%24s %s ", "", Translation::StringFor(opcode)); |
11162 os << buf2.start(); | 11162 os << buf2.start(); |
11163 | 11163 |
11164 switch (opcode) { | 11164 switch (opcode) { |
11165 case Translation::BEGIN: | 11165 case Translation::BEGIN: |
11166 UNREACHABLE(); | 11166 UNREACHABLE(); |
11167 break; | 11167 break; |
11168 | 11168 |
11169 case Translation::JS_FRAME: { | 11169 case Translation::JS_FRAME: { |
11170 int ast_id = iterator.Next(); | 11170 int ast_id = iterator.Next(); |
11171 int function_id = iterator.Next(); | 11171 int function_id = iterator.Next(); |
(...skipping 105 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
11277 } | 11277 } |
11278 } | 11278 } |
11279 os << "\n"; | 11279 os << "\n"; |
11280 } | 11280 } |
11281 } | 11281 } |
11282 | 11282 |
11283 int return_address_patch_count = ReturnAddressPatchCount(); | 11283 int return_address_patch_count = ReturnAddressPatchCount(); |
11284 if (return_address_patch_count != 0) { | 11284 if (return_address_patch_count != 0) { |
11285 os << "Return address patch data (count = " << return_address_patch_count | 11285 os << "Return address patch data (count = " << return_address_patch_count |
11286 << ")\n"; | 11286 << ")\n"; |
11287 os << " index pc patched_pc\n"; | 11287 os << "index pc patched_pc\n"; |
11288 } | 11288 } |
11289 for (int i = 0; i < return_address_patch_count; i++) { | 11289 for (int i = 0; i < return_address_patch_count; i++) { |
11290 Vector<char> buf = Vector<char>::New(128); | 11290 Vector<char> buf = Vector<char>::New(128); |
11291 SNPrintF(buf, "%6d %6d %12d\n", i, ReturnAddressPc(i)->value(), | 11291 SNPrintF(buf, "%6d %6d %10d", i, ReturnAddressPc(i)->value(), |
11292 PatchedAddressPc(i)->value()); | 11292 PatchedAddressPc(i)->value()); |
11293 os << buf.start(); | 11293 os << buf.start(); |
11294 } | 11294 } |
11295 } | 11295 } |
11296 | 11296 |
11297 | 11297 |
11298 void DeoptimizationOutputData::DeoptimizationOutputDataPrint( | 11298 void DeoptimizationOutputData::DeoptimizationOutputDataPrint( |
11299 OStream& os) { // NOLINT | 11299 OStream& os) { // NOLINT |
11300 os << "Deoptimization Output Data (deopt points = " << this->DeoptPoints() | 11300 os << "Deoptimization Output Data (deopt points = " << this->DeoptPoints() |
11301 << ")\n"; | 11301 << ")\n"; |
(...skipping 5596 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
16898 #define ERROR_MESSAGES_TEXTS(C, T) T, | 16898 #define ERROR_MESSAGES_TEXTS(C, T) T, |
16899 static const char* error_messages_[] = { | 16899 static const char* error_messages_[] = { |
16900 ERROR_MESSAGES_LIST(ERROR_MESSAGES_TEXTS) | 16900 ERROR_MESSAGES_LIST(ERROR_MESSAGES_TEXTS) |
16901 }; | 16901 }; |
16902 #undef ERROR_MESSAGES_TEXTS | 16902 #undef ERROR_MESSAGES_TEXTS |
16903 return error_messages_[reason]; | 16903 return error_messages_[reason]; |
16904 } | 16904 } |
16905 | 16905 |
16906 | 16906 |
16907 } } // namespace v8::internal | 16907 } } // namespace v8::internal |
OLD | NEW |