OLD | NEW |
1 // Copyright 2012 the V8 project authors. All rights reserved. | 1 // Copyright 2012 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/objects.h" | 5 #include "src/objects.h" |
6 | 6 |
7 #include "src/disasm.h" | 7 #include "src/disasm.h" |
8 #include "src/disassembler.h" | 8 #include "src/disassembler.h" |
9 #include "src/interpreter/bytecodes.h" | 9 #include "src/interpreter/bytecodes.h" |
10 #include "src/objects-inl.h" | 10 #include "src/objects-inl.h" |
(...skipping 554 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
565 FeedbackVectorICSlot slot(i); | 565 FeedbackVectorICSlot slot(i); |
566 Code::Kind kind = GetKind(slot); | 566 Code::Kind kind = GetKind(slot); |
567 os << "\n ICSlot " << i; | 567 os << "\n ICSlot " << i; |
568 if (kind == Code::LOAD_IC) { | 568 if (kind == Code::LOAD_IC) { |
569 LoadICNexus nexus(this, slot); | 569 LoadICNexus nexus(this, slot); |
570 os << " LOAD_IC " << Code::ICState2String(nexus.StateFromFeedback()); | 570 os << " LOAD_IC " << Code::ICState2String(nexus.StateFromFeedback()); |
571 } else if (kind == Code::KEYED_LOAD_IC) { | 571 } else if (kind == Code::KEYED_LOAD_IC) { |
572 KeyedLoadICNexus nexus(this, slot); | 572 KeyedLoadICNexus nexus(this, slot); |
573 os << " KEYED_LOAD_IC " | 573 os << " KEYED_LOAD_IC " |
574 << Code::ICState2String(nexus.StateFromFeedback()); | 574 << Code::ICState2String(nexus.StateFromFeedback()); |
575 } else { | 575 } else if (kind == Code::CALL_IC) { |
576 DCHECK(kind == Code::CALL_IC); | |
577 CallICNexus nexus(this, slot); | 576 CallICNexus nexus(this, slot); |
578 os << " CALL_IC " << Code::ICState2String(nexus.StateFromFeedback()); | 577 os << " CALL_IC " << Code::ICState2String(nexus.StateFromFeedback()); |
| 578 } else if (kind == Code::STORE_IC) { |
| 579 StoreICNexus nexus(this, slot); |
| 580 os << " STORE_IC " << Code::ICState2String(nexus.StateFromFeedback()); |
| 581 } else { |
| 582 DCHECK(kind == Code::KEYED_STORE_IC); |
| 583 KeyedStoreICNexus nexus(this, slot); |
| 584 os << " KEYED_STORE_IC " |
| 585 << Code::ICState2String(nexus.StateFromFeedback()); |
579 } | 586 } |
580 | 587 |
581 os << "\n [" << GetIndex(slot) << "]: " << Brief(Get(slot)); | 588 os << "\n [" << GetIndex(slot) << "]: " << Brief(Get(slot)); |
582 os << "\n [" << (GetIndex(slot) + 1) | 589 os << "\n [" << (GetIndex(slot) + 1) |
583 << "]: " << Brief(get(GetIndex(slot) + 1)); | 590 << "]: " << Brief(get(GetIndex(slot) + 1)); |
584 } | 591 } |
585 } | 592 } |
586 os << "\n"; | 593 os << "\n"; |
587 } | 594 } |
588 | 595 |
(...skipping 676 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1265 } | 1272 } |
1266 } | 1273 } |
1267 | 1274 |
1268 | 1275 |
1269 void JSObject::PrintTransitions(std::ostream& os) { // NOLINT | 1276 void JSObject::PrintTransitions(std::ostream& os) { // NOLINT |
1270 TransitionArray::PrintTransitions(os, map()->raw_transitions()); | 1277 TransitionArray::PrintTransitions(os, map()->raw_transitions()); |
1271 } | 1278 } |
1272 #endif // defined(DEBUG) || defined(OBJECT_PRINT) | 1279 #endif // defined(DEBUG) || defined(OBJECT_PRINT) |
1273 } // namespace internal | 1280 } // namespace internal |
1274 } // namespace v8 | 1281 } // namespace v8 |
OLD | NEW |