Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(2)

Side by Side Diff: src/ic/ic.cc

Issue 1436493002: [builtins] Introduce specialized Call/CallFunction builtins. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Created 5 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « src/ic/ic.h ('k') | src/ic/ic-state.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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/ic/ic.h" 5 #include "src/ic/ic.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 1571 matching lines...) Expand 10 before | Expand all | Expand 10 after
1582 1582
1583 LookupIterator it(object, name); 1583 LookupIterator it(object, name);
1584 if (FLAG_use_ic) UpdateCaches(&it, value, store_mode); 1584 if (FLAG_use_ic) UpdateCaches(&it, value, store_mode);
1585 1585
1586 MAYBE_RETURN_NULL( 1586 MAYBE_RETURN_NULL(
1587 Object::SetProperty(&it, value, language_mode(), store_mode)); 1587 Object::SetProperty(&it, value, language_mode(), store_mode));
1588 return value; 1588 return value;
1589 } 1589 }
1590 1590
1591 1591
1592 Handle<Code> CallIC::initialize_stub(Isolate* isolate, int argc) { 1592 Handle<Code> CallIC::initialize_stub(Isolate* isolate, int argc,
1593 CallICTrampolineStub stub(isolate, CallICState(argc)); 1593 ConvertReceiverMode mode) {
1594 CallICTrampolineStub stub(isolate, CallICState(argc, mode));
1594 Handle<Code> code = stub.GetCode(); 1595 Handle<Code> code = stub.GetCode();
1595 return code; 1596 return code;
1596 } 1597 }
1597 1598
1598 1599
1599 Handle<Code> CallIC::initialize_stub_in_optimized_code(Isolate* isolate, 1600 Handle<Code> CallIC::initialize_stub_in_optimized_code(
1600 int argc) { 1601 Isolate* isolate, int argc, ConvertReceiverMode mode) {
1601 CallICStub stub(isolate, CallICState(argc)); 1602 CallICStub stub(isolate, CallICState(argc, mode));
1602 Handle<Code> code = stub.GetCode(); 1603 Handle<Code> code = stub.GetCode();
1603 return code; 1604 return code;
1604 } 1605 }
1605 1606
1606 1607
1607 static Handle<Code> StoreICInitializeStubHelper( 1608 static Handle<Code> StoreICInitializeStubHelper(
1608 Isolate* isolate, ExtraICState extra_state, 1609 Isolate* isolate, ExtraICState extra_state,
1609 InlineCacheState initialization_state) { 1610 InlineCacheState initialization_state) {
1610 Handle<Code> ic = PropertyICCompiler::ComputeStore( 1611 Handle<Code> ic = PropertyICCompiler::ComputeStore(
1611 isolate, initialization_state, extra_state); 1612 isolate, initialization_state, extra_state);
(...skipping 1526 matching lines...) Expand 10 before | Expand all | Expand 10 after
3138 KeyedLoadICNexus nexus(vector, vector_slot); 3139 KeyedLoadICNexus nexus(vector, vector_slot);
3139 KeyedLoadIC ic(IC::EXTRA_CALL_FRAME, isolate, &nexus); 3140 KeyedLoadIC ic(IC::EXTRA_CALL_FRAME, isolate, &nexus);
3140 ic.UpdateState(receiver, key); 3141 ic.UpdateState(receiver, key);
3141 ASSIGN_RETURN_FAILURE_ON_EXCEPTION(isolate, result, ic.Load(receiver, key)); 3142 ASSIGN_RETURN_FAILURE_ON_EXCEPTION(isolate, result, ic.Load(receiver, key));
3142 } 3143 }
3143 3144
3144 return *result; 3145 return *result;
3145 } 3146 }
3146 } // namespace internal 3147 } // namespace internal
3147 } // namespace v8 3148 } // namespace v8
OLDNEW
« no previous file with comments | « src/ic/ic.h ('k') | src/ic/ic-state.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698