OLD | NEW |
1 // Copyright 2012 the V8 project authors. All rights reserved. | 1 // Copyright 2012 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 1565 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1576 StrictModeFlag strict_mode, | 1576 StrictModeFlag strict_mode, |
1577 Handle<Code> generic_stub) { | 1577 Handle<Code> generic_stub) { |
1578 State ic_state = target()->ic_state(); | 1578 State ic_state = target()->ic_state(); |
1579 KeyedAccessGrowMode grow_mode = IsGrowStubKind(stub_kind) | 1579 KeyedAccessGrowMode grow_mode = IsGrowStubKind(stub_kind) |
1580 ? ALLOW_JSARRAY_GROWTH | 1580 ? ALLOW_JSARRAY_GROWTH |
1581 : DO_NOT_ALLOW_JSARRAY_GROWTH; | 1581 : DO_NOT_ALLOW_JSARRAY_GROWTH; |
1582 | 1582 |
1583 // Don't handle megamorphic property accesses for INTERCEPTORS or CALLBACKS | 1583 // Don't handle megamorphic property accesses for INTERCEPTORS or CALLBACKS |
1584 // via megamorphic stubs, since they don't have a map in their relocation info | 1584 // via megamorphic stubs, since they don't have a map in their relocation info |
1585 // and so the stubs can't be harvested for the object needed for a map check. | 1585 // and so the stubs can't be harvested for the object needed for a map check. |
1586 if (target()->type() != NORMAL) { | 1586 if (target()->type() != Code::NORMAL) { |
1587 TRACE_GENERIC_IC("KeyedIC", "non-NORMAL target type"); | 1587 TRACE_GENERIC_IC("KeyedIC", "non-NORMAL target type"); |
1588 return generic_stub; | 1588 return generic_stub; |
1589 } | 1589 } |
1590 | 1590 |
1591 bool monomorphic = false; | 1591 bool monomorphic = false; |
1592 bool is_transition_stub = IsTransitionStubKind(stub_kind); | 1592 bool is_transition_stub = IsTransitionStubKind(stub_kind); |
1593 Handle<Map> receiver_map(receiver->map()); | 1593 Handle<Map> receiver_map(receiver->map()); |
1594 Handle<Map> monomorphic_map = receiver_map; | 1594 Handle<Map> monomorphic_map = receiver_map; |
1595 MapHandleList target_receiver_maps; | 1595 MapHandleList target_receiver_maps; |
1596 if (ic_state == UNINITIALIZED || ic_state == PREMONOMORPHIC) { | 1596 if (ic_state == UNINITIALIZED || ic_state == PREMONOMORPHIC) { |
(...skipping 1072 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2669 #undef ADDR | 2669 #undef ADDR |
2670 }; | 2670 }; |
2671 | 2671 |
2672 | 2672 |
2673 Address IC::AddressFromUtilityId(IC::UtilityId id) { | 2673 Address IC::AddressFromUtilityId(IC::UtilityId id) { |
2674 return IC_utilities[id]; | 2674 return IC_utilities[id]; |
2675 } | 2675 } |
2676 | 2676 |
2677 | 2677 |
2678 } } // namespace v8::internal | 2678 } } // namespace v8::internal |
OLD | NEW |