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

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: finished implementation, extended tests, ported to x64&arm 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 1322 matching lines...) Expand 10 before | Expand all | Expand 10 after
1333 DECLARE_CONCRETE_INSTRUCTION(StackCheck) 1333 DECLARE_CONCRETE_INSTRUCTION(StackCheck)
1334 1334
1335 private: 1335 private:
1336 Type type_; 1336 Type type_;
1337 }; 1337 };
1338 1338
1339 1339
1340 class HEnterInlined: public HTemplateInstruction<0> { 1340 class HEnterInlined: public HTemplateInstruction<0> {
1341 public: 1341 public:
1342 HEnterInlined(Handle<JSFunction> closure, 1342 HEnterInlined(Handle<JSFunction> closure,
1343 int arguments_count,
1343 FunctionLiteral* function, 1344 FunctionLiteral* function,
1344 CallKind call_kind) 1345 CallKind call_kind)
1345 : closure_(closure), 1346 : closure_(closure),
1347 arguments_count_(arguments_count),
1346 function_(function), 1348 function_(function),
1347 call_kind_(call_kind) { 1349 call_kind_(call_kind) {
1348 } 1350 }
1349 1351
1350 virtual void PrintDataTo(StringStream* stream); 1352 virtual void PrintDataTo(StringStream* stream);
1351 1353
1352 Handle<JSFunction> closure() const { return closure_; } 1354 Handle<JSFunction> closure() const { return closure_; }
1355 int arguments_count() const { return arguments_count_; }
1353 FunctionLiteral* function() const { return function_; } 1356 FunctionLiteral* function() const { return function_; }
1354 CallKind call_kind() const { return call_kind_; } 1357 CallKind call_kind() const { return call_kind_; }
1355 1358
1356 virtual Representation RequiredInputRepresentation(int index) { 1359 virtual Representation RequiredInputRepresentation(int index) {
1357 return Representation::None(); 1360 return Representation::None();
1358 } 1361 }
1359 1362
1360 DECLARE_CONCRETE_INSTRUCTION(EnterInlined) 1363 DECLARE_CONCRETE_INSTRUCTION(EnterInlined)
1361 1364
1362 private: 1365 private:
1363 Handle<JSFunction> closure_; 1366 Handle<JSFunction> closure_;
1367 int arguments_count_;
1364 FunctionLiteral* function_; 1368 FunctionLiteral* function_;
1365 CallKind call_kind_; 1369 CallKind call_kind_;
1366 }; 1370 };
1367 1371
1368 1372
1369 class HLeaveInlined: public HTemplateInstruction<0> { 1373 class HLeaveInlined: public HTemplateInstruction<0> {
1370 public: 1374 public:
1371 HLeaveInlined() {} 1375 HLeaveInlined() {}
1372 1376
1373 virtual Representation RequiredInputRepresentation(int index) { 1377 virtual Representation RequiredInputRepresentation(int index) {
(...skipping 3177 matching lines...) Expand 10 before | Expand all | Expand 10 after
4551 4555
4552 DECLARE_CONCRETE_INSTRUCTION(In) 4556 DECLARE_CONCRETE_INSTRUCTION(In)
4553 }; 4557 };
4554 4558
4555 #undef DECLARE_INSTRUCTION 4559 #undef DECLARE_INSTRUCTION
4556 #undef DECLARE_CONCRETE_INSTRUCTION 4560 #undef DECLARE_CONCRETE_INSTRUCTION
4557 4561
4558 } } // namespace v8::internal 4562 } } // namespace v8::internal
4559 4563
4560 #endif // V8_HYDROGEN_INSTRUCTIONS_H_ 4564 #endif // V8_HYDROGEN_INSTRUCTIONS_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698