OLD | NEW |
1 // Copyright 2013 the V8 project authors. All rights reserved. | 1 // Copyright 2013 the V8 project authors. All rights reserved. |
2 // Redistribution and use in source and binary forms, with or without | 2 // Redistribution and use in source and binary forms, with or without |
3 // modification, are permitted provided that the following conditions are | 3 // modification, are permitted provided that the following conditions are |
4 // met: | 4 // met: |
5 // | 5 // |
6 // * Redistributions of source code must retain the above copyright | 6 // * Redistributions of source code must retain the above copyright |
7 // notice, this list of conditions and the following disclaimer. | 7 // notice, this list of conditions and the following disclaimer. |
8 // * Redistributions in binary form must reproduce the above | 8 // * Redistributions in binary form must reproduce the above |
9 // copyright notice, this list of conditions and the following | 9 // copyright notice, this list of conditions and the following |
10 // disclaimer in the documentation and/or other materials provided | 10 // disclaimer in the documentation and/or other materials provided |
(...skipping 10366 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
10377 GetIsolate(), info->target_address(), Deoptimizer::SOFT))) { | 10377 GetIsolate(), info->target_address(), Deoptimizer::SOFT))) { |
10378 CHECK(RelocInfo::IsRuntimeEntry(info->rmode())); | 10378 CHECK(RelocInfo::IsRuntimeEntry(info->rmode())); |
10379 PrintF(" %s\n", last_comment); | 10379 PrintF(" %s\n", last_comment); |
10380 return; | 10380 return; |
10381 } | 10381 } |
10382 } | 10382 } |
10383 } | 10383 } |
10384 } | 10384 } |
10385 | 10385 |
10386 | 10386 |
| 10387 bool Code::CanDeoptAt(Address pc) { |
| 10388 DeoptimizationInputData* deopt_data = |
| 10389 DeoptimizationInputData::cast(deoptimization_data()); |
| 10390 Address code_start_address = instruction_start(); |
| 10391 for (int i = 0; i < deopt_data->DeoptCount(); i++) { |
| 10392 if (deopt_data->Pc(i)->value() == -1) continue; |
| 10393 Address address = code_start_address + deopt_data->Pc(i)->value(); |
| 10394 if (address == pc) return true; |
| 10395 } |
| 10396 return false; |
| 10397 } |
| 10398 |
| 10399 |
10387 // Identify kind of code. | 10400 // Identify kind of code. |
10388 const char* Code::Kind2String(Kind kind) { | 10401 const char* Code::Kind2String(Kind kind) { |
10389 switch (kind) { | 10402 switch (kind) { |
10390 case FUNCTION: return "FUNCTION"; | 10403 case FUNCTION: return "FUNCTION"; |
10391 case OPTIMIZED_FUNCTION: return "OPTIMIZED_FUNCTION"; | 10404 case OPTIMIZED_FUNCTION: return "OPTIMIZED_FUNCTION"; |
10392 case STUB: return "STUB"; | 10405 case STUB: return "STUB"; |
10393 case BUILTIN: return "BUILTIN"; | 10406 case BUILTIN: return "BUILTIN"; |
10394 case LOAD_IC: return "LOAD_IC"; | 10407 case LOAD_IC: return "LOAD_IC"; |
10395 case KEYED_LOAD_IC: return "KEYED_LOAD_IC"; | 10408 case KEYED_LOAD_IC: return "KEYED_LOAD_IC"; |
10396 case STORE_IC: return "STORE_IC"; | 10409 case STORE_IC: return "STORE_IC"; |
(...skipping 5418 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
15815 return static_cast<Type*>(type_raw()); | 15828 return static_cast<Type*>(type_raw()); |
15816 } | 15829 } |
15817 | 15830 |
15818 | 15831 |
15819 void JSGlobalPropertyCell::set_type(Type* type, WriteBarrierMode ignored) { | 15832 void JSGlobalPropertyCell::set_type(Type* type, WriteBarrierMode ignored) { |
15820 set_type_raw(type, ignored); | 15833 set_type_raw(type, ignored); |
15821 } | 15834 } |
15822 | 15835 |
15823 | 15836 |
15824 } } // namespace v8::internal | 15837 } } // namespace v8::internal |
OLD | NEW |