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

Side by Side Diff: src/stub-cache.cc

Issue 300283002: Introduce FieldIndex to unify and abstract property/field offset (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Fix mutable boxed double runtime function Created 6 years, 6 months 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 | Annotate | Revision Log
« no previous file with comments | « src/stub-cache.h ('k') | src/utils.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/v8.h" 5 #include "src/v8.h"
6 6
7 #include "src/api.h" 7 #include "src/api.h"
8 #include "src/arguments.h" 8 #include "src/arguments.h"
9 #include "src/ast.h" 9 #include "src/ast.h"
10 #include "src/code-stubs.h" 10 #include "src/code-stubs.h"
(...skipping 870 matching lines...) Expand 10 before | Expand all | Expand 10 after
881 } 881 }
882 882
883 HandlerFrontendFooter(name, &miss); 883 HandlerFrontendFooter(name, &miss);
884 } 884 }
885 885
886 886
887 Handle<Code> LoadStubCompiler::CompileLoadField( 887 Handle<Code> LoadStubCompiler::CompileLoadField(
888 Handle<HeapType> type, 888 Handle<HeapType> type,
889 Handle<JSObject> holder, 889 Handle<JSObject> holder,
890 Handle<Name> name, 890 Handle<Name> name,
891 PropertyIndex field, 891 FieldIndex field,
892 Representation representation) { 892 Representation representation) {
893 Register reg = HandlerFrontend(type, receiver(), holder, name); 893 Register reg = HandlerFrontend(type, receiver(), holder, name);
894 GenerateLoadField(reg, holder, field, representation); 894 GenerateLoadField(reg, holder, field, representation);
895 895
896 // Return the generated code. 896 // Return the generated code.
897 return GetCode(kind(), Code::FAST, name); 897 return GetCode(kind(), Code::FAST, name);
898 } 898 }
899 899
900 900
901 Handle<Code> LoadStubCompiler::CompileLoadConstant( 901 Handle<Code> LoadStubCompiler::CompileLoadConstant(
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after
959 } 959 }
960 960
961 961
962 void LoadStubCompiler::GenerateLoadPostInterceptor( 962 void LoadStubCompiler::GenerateLoadPostInterceptor(
963 Register interceptor_reg, 963 Register interceptor_reg,
964 Handle<JSObject> interceptor_holder, 964 Handle<JSObject> interceptor_holder,
965 Handle<Name> name, 965 Handle<Name> name,
966 LookupResult* lookup) { 966 LookupResult* lookup) {
967 Handle<JSObject> holder(lookup->holder()); 967 Handle<JSObject> holder(lookup->holder());
968 if (lookup->IsField()) { 968 if (lookup->IsField()) {
969 PropertyIndex field = lookup->GetFieldIndex(); 969 FieldIndex field = lookup->GetFieldIndex();
970 if (interceptor_holder.is_identical_to(holder)) { 970 if (interceptor_holder.is_identical_to(holder)) {
971 GenerateLoadField( 971 GenerateLoadField(
972 interceptor_reg, holder, field, lookup->representation()); 972 interceptor_reg, holder, field, lookup->representation());
973 } else { 973 } else {
974 // We found FIELD property in prototype chain of interceptor's holder. 974 // We found FIELD property in prototype chain of interceptor's holder.
975 // Retrieve a field from field's holder. 975 // Retrieve a field from field's holder.
976 Register reg = HandlerFrontend( 976 Register reg = HandlerFrontend(
977 IC::CurrentTypeOf(interceptor_holder, isolate()), 977 IC::CurrentTypeOf(interceptor_holder, isolate()),
978 interceptor_reg, holder, name); 978 interceptor_reg, holder, name);
979 GenerateLoadField( 979 GenerateLoadField(
(...skipping 501 matching lines...) Expand 10 before | Expand all | Expand 10 after
1481 Handle<FunctionTemplateInfo>( 1481 Handle<FunctionTemplateInfo>(
1482 FunctionTemplateInfo::cast(signature->receiver())); 1482 FunctionTemplateInfo::cast(signature->receiver()));
1483 } 1483 }
1484 } 1484 }
1485 1485
1486 is_simple_api_call_ = true; 1486 is_simple_api_call_ = true;
1487 } 1487 }
1488 1488
1489 1489
1490 } } // namespace v8::internal 1490 } } // namespace v8::internal
OLDNEW
« no previous file with comments | « src/stub-cache.h ('k') | src/utils.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698