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/v8.h" | 5 #include "src/v8.h" |
6 | 6 |
7 #include "src/accessors.h" | 7 #include "src/accessors.h" |
8 #include "src/api.h" | 8 #include "src/api.h" |
9 #include "src/arguments.h" | 9 #include "src/arguments.h" |
10 #include "src/base/bits.h" | 10 #include "src/base/bits.h" |
(...skipping 2629 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2640 DCHECK(args.smi_at(1) >= 0); | 2640 DCHECK(args.smi_at(1) >= 0); |
2641 uint32_t index = args.smi_at(1); | 2641 uint32_t index = args.smi_at(1); |
2642 Handle<Object> result; | 2642 Handle<Object> result; |
2643 ASSIGN_RETURN_FAILURE_ON_EXCEPTION( | 2643 ASSIGN_RETURN_FAILURE_ON_EXCEPTION( |
2644 isolate, result, | 2644 isolate, result, |
2645 JSObject::GetElementWithInterceptor(receiver, receiver, index)); | 2645 JSObject::GetElementWithInterceptor(receiver, receiver, index)); |
2646 return *result; | 2646 return *result; |
2647 } | 2647 } |
2648 | 2648 |
2649 | 2649 |
2650 RUNTIME_FUNCTION(VectorLoadIC_MissFromStubFailure) { | 2650 RUNTIME_FUNCTION(LoadIC_MissFromStubFailure) { |
2651 // TODO(mvstanton): To be enabled when ICs can accept a vector and slot | 2651 TimerEventScope<TimerEventIcMiss> timer(isolate); |
2652 return NULL; | 2652 HandleScope scope(isolate); |
| 2653 DCHECK(args.length() == 2); |
| 2654 LoadIC ic(IC::EXTRA_CALL_FRAME, isolate); |
| 2655 Handle<Object> receiver = args.at<Object>(0); |
| 2656 Handle<Name> key = args.at<Name>(1); |
| 2657 ic.UpdateState(receiver, key); |
| 2658 Handle<Object> result; |
| 2659 ASSIGN_RETURN_FAILURE_ON_EXCEPTION(isolate, result, ic.Load(receiver, key)); |
| 2660 return *result; |
2653 } | 2661 } |
2654 | 2662 |
2655 | 2663 |
2656 RUNTIME_FUNCTION(VectorKeyedLoadIC_MissFromStubFailure) { | |
2657 // TODO(mvstanton): To be enabled when ICs can accept a vector and slot | |
2658 return NULL; | |
2659 } | |
2660 | |
2661 | |
2662 static const Address IC_utilities[] = { | 2664 static const Address IC_utilities[] = { |
2663 #define ADDR(name) FUNCTION_ADDR(name), | 2665 #define ADDR(name) FUNCTION_ADDR(name), |
2664 IC_UTIL_LIST(ADDR) NULL | 2666 IC_UTIL_LIST(ADDR) NULL |
2665 #undef ADDR | 2667 #undef ADDR |
2666 }; | 2668 }; |
2667 | 2669 |
2668 | 2670 |
2669 Address IC::AddressFromUtilityId(IC::UtilityId id) { return IC_utilities[id]; } | 2671 Address IC::AddressFromUtilityId(IC::UtilityId id) { return IC_utilities[id]; } |
2670 } | 2672 } |
2671 } // namespace v8::internal | 2673 } // namespace v8::internal |
OLD | NEW |