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

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

Issue 83753002: Use the HandlerFrontendHeader in most call compilers. (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: X64 port Created 7 years 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
OLDNEW
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 888 matching lines...) Expand 10 before | Expand all | Expand 10 after
899 int argc, 899 int argc,
900 Code::Kind kind, 900 Code::Kind kind,
901 Code::ExtraICState extra_state, 901 Code::ExtraICState extra_state,
902 InlineCacheHolderFlag cache_holder = OWN_MAP); 902 InlineCacheHolderFlag cache_holder = OWN_MAP);
903 903
904 Handle<Code> CompileCallField(Handle<JSObject> object, 904 Handle<Code> CompileCallField(Handle<JSObject> object,
905 Handle<JSObject> holder, 905 Handle<JSObject> holder,
906 PropertyIndex index, 906 PropertyIndex index,
907 Handle<Name> name); 907 Handle<Name> name);
908 908
909 void CompileHandlerFrontend(Handle<Object> object, 909 // Patch the global proxy over the global object if the global object is the
910 Handle<JSObject> holder, 910 // receiver.
911 Handle<Name> name, 911 void PatchGlobalProxy(Handle<Object> object);
912 CheckType check); 912
913 // Returns the register containing the holder of |name|.
914 Register HandlerFrontendHeader(Handle<Object> object,
915 Handle<JSObject> holder,
916 Handle<Name> name,
917 CheckType check,
918 Label* miss);
919 void HandlerFrontendFooter(Label* miss);
913 920
914 void CompileHandlerBackend(Handle<JSFunction> function); 921 void CompileHandlerBackend(Handle<JSFunction> function);
915 922
916 Handle<Code> CompileCallConstant(Handle<Object> object, 923 Handle<Code> CompileCallConstant(Handle<Object> object,
917 Handle<JSObject> holder, 924 Handle<JSObject> holder,
918 Handle<Name> name, 925 Handle<Name> name,
919 CheckType check, 926 CheckType check,
920 Handle<JSFunction> function); 927 Handle<JSFunction> function);
921 928
922 Handle<Code> CompileCallInterceptor(Handle<JSObject> object, 929 Handle<Code> CompileCallInterceptor(Handle<JSObject> object,
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
960 Handle<JSFunction> function, 967 Handle<JSFunction> function,
961 Handle<String> name); 968 Handle<String> name);
962 969
963 Handle<Code> GetCode(Code::StubType type, Handle<Name> name); 970 Handle<Code> GetCode(Code::StubType type, Handle<Name> name);
964 Handle<Code> GetCode(Handle<JSFunction> function); 971 Handle<Code> GetCode(Handle<JSFunction> function);
965 972
966 const ParameterCount& arguments() { return arguments_; } 973 const ParameterCount& arguments() { return arguments_; }
967 974
968 void GenerateNameCheck(Handle<Name> name, Label* miss); 975 void GenerateNameCheck(Handle<Name> name, Label* miss);
969 976
970 void GenerateGlobalReceiverCheck(Handle<JSObject> object,
971 Handle<JSObject> holder,
972 Handle<Name> name,
973 Label* miss);
974
975 // Generates code to load the function from the cell checking that 977 // Generates code to load the function from the cell checking that
976 // it still contains the same function. 978 // it still contains the same function.
977 void GenerateLoadFunctionFromCell(Handle<Cell> cell, 979 void GenerateLoadFunctionFromCell(Handle<Cell> cell,
978 Handle<JSFunction> function, 980 Handle<JSFunction> function,
979 Label* miss); 981 Label* miss);
980 982
981 // Generates a jump to CallIC miss stub. 983 // Generates a jump to CallIC miss stub.
982 void GenerateMissBranch(); 984 void GenerateMissBranch();
983 985
984 const ParameterCount arguments_; 986 const ParameterCount arguments_;
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after
1039 Handle<JSFunction> constant_function_; 1041 Handle<JSFunction> constant_function_;
1040 bool is_simple_api_call_; 1042 bool is_simple_api_call_;
1041 Handle<FunctionTemplateInfo> expected_receiver_type_; 1043 Handle<FunctionTemplateInfo> expected_receiver_type_;
1042 Handle<CallHandlerInfo> api_call_info_; 1044 Handle<CallHandlerInfo> api_call_info_;
1043 }; 1045 };
1044 1046
1045 1047
1046 } } // namespace v8::internal 1048 } } // namespace v8::internal
1047 1049
1048 #endif // V8_STUB_CACHE_H_ 1050 #endif // V8_STUB_CACHE_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698