| OLD | NEW |
| 1 // Copyright 2014 the V8 project authors. All rights reserved. | 1 // Copyright 2014 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 #include "test/cctest/cctest.h" | 6 #include "test/cctest/cctest.h" |
| 7 | 7 |
| 8 #include "src/api.h" | 8 #include "src/api.h" |
| 9 #include "src/debug/debug.h" | 9 #include "src/debug/debug.h" |
| 10 #include "src/execution.h" | 10 #include "src/execution.h" |
| (...skipping 22 matching lines...) Expand all Loading... |
| 33 CHECK_EQ(0, vector->ic_with_type_info_count()); | 33 CHECK_EQ(0, vector->ic_with_type_info_count()); |
| 34 CHECK_EQ(0, vector->ic_generic_count()); | 34 CHECK_EQ(0, vector->ic_generic_count()); |
| 35 CHECK_EQ(0, vector->Slots()); | 35 CHECK_EQ(0, vector->Slots()); |
| 36 CHECK_EQ(0, vector->ICSlots()); | 36 CHECK_EQ(0, vector->ICSlots()); |
| 37 | 37 |
| 38 FeedbackVectorSpec one_slot(1); | 38 FeedbackVectorSpec one_slot(1); |
| 39 vector = factory->NewTypeFeedbackVector(&one_slot); | 39 vector = factory->NewTypeFeedbackVector(&one_slot); |
| 40 CHECK_EQ(1, vector->Slots()); | 40 CHECK_EQ(1, vector->Slots()); |
| 41 CHECK_EQ(0, vector->ICSlots()); | 41 CHECK_EQ(0, vector->ICSlots()); |
| 42 | 42 |
| 43 FeedbackVectorSpec one_icslot(0, Code::CALL_IC); | 43 ZoneFeedbackVectorSpec one_icslot(zone, 0, 1); |
| 44 one_icslot.SetKind(0, Code::CALL_IC); |
| 44 vector = factory->NewTypeFeedbackVector(&one_icslot); | 45 vector = factory->NewTypeFeedbackVector(&one_icslot); |
| 45 CHECK_EQ(0, vector->Slots()); | 46 CHECK_EQ(0, vector->Slots()); |
| 46 CHECK_EQ(1, vector->ICSlots()); | 47 CHECK_EQ(1, vector->ICSlots()); |
| 47 | 48 |
| 48 ZoneFeedbackVectorSpec spec(zone, 3, 5); | 49 ZoneFeedbackVectorSpec spec(zone, 3, 5); |
| 49 for (int i = 0; i < 5; i++) spec.SetKind(i, Code::CALL_IC); | 50 for (int i = 0; i < 5; i++) spec.SetKind(i, Code::CALL_IC); |
| 50 vector = factory->NewTypeFeedbackVector(&spec); | 51 vector = factory->NewTypeFeedbackVector(&spec); |
| 51 CHECK_EQ(3, vector->Slots()); | 52 CHECK_EQ(3, vector->Slots()); |
| 52 CHECK_EQ(5, vector->ICSlots()); | 53 CHECK_EQ(5, vector->ICSlots()); |
| 53 | 54 |
| (...skipping 422 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 476 f = GetFunction("testcompound"); | 477 f = GetFunction("testcompound"); |
| 477 | 478 |
| 478 // There should be 3 LOAD_ICs, for load of a and load of x.old and x.young. | 479 // There should be 3 LOAD_ICs, for load of a and load of x.old and x.young. |
| 479 feedback_vector = handle(f->shared()->feedback_vector(), isolate); | 480 feedback_vector = handle(f->shared()->feedback_vector(), isolate); |
| 480 CHECK_EQ(3, feedback_vector->ICSlots()); | 481 CHECK_EQ(3, feedback_vector->ICSlots()); |
| 481 CHECK(feedback_vector->GetKind(FeedbackVectorICSlot(0)) == Code::LOAD_IC); | 482 CHECK(feedback_vector->GetKind(FeedbackVectorICSlot(0)) == Code::LOAD_IC); |
| 482 CHECK(feedback_vector->GetKind(FeedbackVectorICSlot(1)) == Code::LOAD_IC); | 483 CHECK(feedback_vector->GetKind(FeedbackVectorICSlot(1)) == Code::LOAD_IC); |
| 483 CHECK(feedback_vector->GetKind(FeedbackVectorICSlot(2)) == Code::LOAD_IC); | 484 CHECK(feedback_vector->GetKind(FeedbackVectorICSlot(2)) == Code::LOAD_IC); |
| 484 } | 485 } |
| 485 } | 486 } |
| OLD | NEW |