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

Side by Side Diff: src/hydrogen-instructions.h

Issue 9265004: Support inlining at call-sites with mismatched number of arguments. (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Created 8 years, 11 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
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 1294 matching lines...) Expand 10 before | Expand all | Expand 10 after
1305 DECLARE_CONCRETE_INSTRUCTION(StackCheck) 1305 DECLARE_CONCRETE_INSTRUCTION(StackCheck)
1306 1306
1307 private: 1307 private:
1308 Type type_; 1308 Type type_;
1309 }; 1309 };
1310 1310
1311 1311
1312 class HEnterInlined: public HTemplateInstruction<0> { 1312 class HEnterInlined: public HTemplateInstruction<0> {
1313 public: 1313 public:
1314 HEnterInlined(Handle<JSFunction> closure, 1314 HEnterInlined(Handle<JSFunction> closure,
1315 int arguments,
Kevin Millikin (Chromium) 2012/01/19 10:26:34 Make it sound like a number: "argument_count_" or
1315 FunctionLiteral* function, 1316 FunctionLiteral* function,
1316 CallKind call_kind) 1317 CallKind call_kind)
1317 : closure_(closure), 1318 : closure_(closure),
1319 arguments_(arguments),
1318 function_(function), 1320 function_(function),
1319 call_kind_(call_kind) { 1321 call_kind_(call_kind) {
1320 } 1322 }
1321 1323
1322 virtual void PrintDataTo(StringStream* stream); 1324 virtual void PrintDataTo(StringStream* stream);
1323 1325
1324 Handle<JSFunction> closure() const { return closure_; } 1326 Handle<JSFunction> closure() const { return closure_; }
1327 int arguments() const { return arguments_; }
1325 FunctionLiteral* function() const { return function_; } 1328 FunctionLiteral* function() const { return function_; }
1326 CallKind call_kind() const { return call_kind_; } 1329 CallKind call_kind() const { return call_kind_; }
1327 1330
1328 virtual Representation RequiredInputRepresentation(int index) { 1331 virtual Representation RequiredInputRepresentation(int index) {
1329 return Representation::None(); 1332 return Representation::None();
1330 } 1333 }
1331 1334
1332 DECLARE_CONCRETE_INSTRUCTION(EnterInlined) 1335 DECLARE_CONCRETE_INSTRUCTION(EnterInlined)
1333 1336
1334 private: 1337 private:
1335 Handle<JSFunction> closure_; 1338 Handle<JSFunction> closure_;
1339 int arguments_;
1336 FunctionLiteral* function_; 1340 FunctionLiteral* function_;
1337 CallKind call_kind_; 1341 CallKind call_kind_;
1338 }; 1342 };
1339 1343
1340 1344
1341 class HLeaveInlined: public HTemplateInstruction<0> { 1345 class HLeaveInlined: public HTemplateInstruction<0> {
1342 public: 1346 public:
1343 HLeaveInlined() {} 1347 HLeaveInlined() {}
1344 1348
1345 virtual Representation RequiredInputRepresentation(int index) { 1349 virtual Representation RequiredInputRepresentation(int index) {
(...skipping 3177 matching lines...) Expand 10 before | Expand all | Expand 10 after
4523 4527
4524 DECLARE_CONCRETE_INSTRUCTION(In) 4528 DECLARE_CONCRETE_INSTRUCTION(In)
4525 }; 4529 };
4526 4530
4527 #undef DECLARE_INSTRUCTION 4531 #undef DECLARE_INSTRUCTION
4528 #undef DECLARE_CONCRETE_INSTRUCTION 4532 #undef DECLARE_CONCRETE_INSTRUCTION
4529 4533
4530 } } // namespace v8::internal 4534 } } // namespace v8::internal
4531 4535
4532 #endif // V8_HYDROGEN_INSTRUCTIONS_H_ 4536 #endif // V8_HYDROGEN_INSTRUCTIONS_H_
OLDNEW
« src/hydrogen.cc ('K') | « src/hydrogen.cc ('k') | src/ia32/builtins-ia32.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698