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

Side by Side Diff: src/lithium.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 425 matching lines...) Expand 10 before | Expand all | Expand 10 after
436 ZoneList<LOperand*> pointer_operands_; 436 ZoneList<LOperand*> pointer_operands_;
437 ZoneList<LOperand*> untagged_operands_; 437 ZoneList<LOperand*> untagged_operands_;
438 int position_; 438 int position_;
439 int lithium_position_; 439 int lithium_position_;
440 }; 440 };
441 441
442 442
443 class LEnvironment: public ZoneObject { 443 class LEnvironment: public ZoneObject {
444 public: 444 public:
445 LEnvironment(Handle<JSFunction> closure, 445 LEnvironment(Handle<JSFunction> closure,
446 bool is_arguments_adaptor,
446 int ast_id, 447 int ast_id,
447 int parameter_count, 448 int parameter_count,
448 int argument_count, 449 int argument_count,
449 int value_count, 450 int value_count,
450 LEnvironment* outer) 451 LEnvironment* outer)
451 : closure_(closure), 452 : closure_(closure),
453 is_arguments_adaptor_(is_arguments_adaptor),
452 arguments_stack_height_(argument_count), 454 arguments_stack_height_(argument_count),
453 deoptimization_index_(Safepoint::kNoDeoptimizationIndex), 455 deoptimization_index_(Safepoint::kNoDeoptimizationIndex),
454 translation_index_(-1), 456 translation_index_(-1),
455 ast_id_(ast_id), 457 ast_id_(ast_id),
456 parameter_count_(parameter_count), 458 parameter_count_(parameter_count),
457 pc_offset_(-1), 459 pc_offset_(-1),
458 values_(value_count), 460 values_(value_count),
459 representations_(value_count), 461 representations_(value_count),
460 spilled_registers_(NULL), 462 spilled_registers_(NULL),
461 spilled_double_registers_(NULL), 463 spilled_double_registers_(NULL),
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
498 } 500 }
499 501
500 void SetSpilledRegisters(LOperand** registers, 502 void SetSpilledRegisters(LOperand** registers,
501 LOperand** double_registers) { 503 LOperand** double_registers) {
502 spilled_registers_ = registers; 504 spilled_registers_ = registers;
503 spilled_double_registers_ = double_registers; 505 spilled_double_registers_ = double_registers;
504 } 506 }
505 507
506 void PrintTo(StringStream* stream); 508 void PrintTo(StringStream* stream);
507 509
510 bool is_arguments_adaptor() const { return is_arguments_adaptor_; }
511
508 private: 512 private:
509 Handle<JSFunction> closure_; 513 Handle<JSFunction> closure_;
514 bool is_arguments_adaptor_;
510 int arguments_stack_height_; 515 int arguments_stack_height_;
511 int deoptimization_index_; 516 int deoptimization_index_;
512 int translation_index_; 517 int translation_index_;
513 int ast_id_; 518 int ast_id_;
514 int parameter_count_; 519 int parameter_count_;
515 int pc_offset_; 520 int pc_offset_;
516 ZoneList<LOperand*> values_; 521 ZoneList<LOperand*> values_;
517 ZoneList<Representation> representations_; 522 ZoneList<Representation> representations_;
518 523
519 // Allocation index indexed arrays of spill slot operands for registers 524 // Allocation index indexed arrays of spill slot operands for registers
(...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after
599 ShallowIterator current_iterator_; 604 ShallowIterator current_iterator_;
600 }; 605 };
601 606
602 607
603 int ElementsKindToShiftSize(ElementsKind elements_kind); 608 int ElementsKindToShiftSize(ElementsKind elements_kind);
604 609
605 610
606 } } // namespace v8::internal 611 } } // namespace v8::internal
607 612
608 #endif // V8_LITHIUM_H_ 613 #endif // V8_LITHIUM_H_
OLDNEW
« src/ia32/frames-ia32.h ('K') | « src/ia32/lithium-ia32.cc ('k') | src/objects.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698