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

Side by Side Diff: src/lithium.h

Issue 9215010: Merge r10006, r10087 and r10126 from bleeding edge to the 3.6 branch. (Closed) Base URL: http://v8.googlecode.com/svn/branches/3.6/
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
« no previous file with comments | « src/ia32/lithium-ia32.h ('k') | src/objects.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 2011 the V8 project authors. All rights reserved. 1 // Copyright 2011 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 424 matching lines...) Expand 10 before | Expand all | Expand 10 after
435 int parameter_count, 435 int parameter_count,
436 int argument_count, 436 int argument_count,
437 int value_count, 437 int value_count,
438 LEnvironment* outer) 438 LEnvironment* outer)
439 : closure_(closure), 439 : closure_(closure),
440 arguments_stack_height_(argument_count), 440 arguments_stack_height_(argument_count),
441 deoptimization_index_(Safepoint::kNoDeoptimizationIndex), 441 deoptimization_index_(Safepoint::kNoDeoptimizationIndex),
442 translation_index_(-1), 442 translation_index_(-1),
443 ast_id_(ast_id), 443 ast_id_(ast_id),
444 parameter_count_(parameter_count), 444 parameter_count_(parameter_count),
445 pc_offset_(-1),
445 values_(value_count), 446 values_(value_count),
446 representations_(value_count), 447 representations_(value_count),
447 spilled_registers_(NULL), 448 spilled_registers_(NULL),
448 spilled_double_registers_(NULL), 449 spilled_double_registers_(NULL),
449 outer_(outer) { 450 outer_(outer) {
450 } 451 }
451 452
452 Handle<JSFunction> closure() const { return closure_; } 453 Handle<JSFunction> closure() const { return closure_; }
453 int arguments_stack_height() const { return arguments_stack_height_; } 454 int arguments_stack_height() const { return arguments_stack_height_; }
454 int deoptimization_index() const { return deoptimization_index_; } 455 int deoptimization_index() const { return deoptimization_index_; }
455 int translation_index() const { return translation_index_; } 456 int translation_index() const { return translation_index_; }
456 int ast_id() const { return ast_id_; } 457 int ast_id() const { return ast_id_; }
457 int parameter_count() const { return parameter_count_; } 458 int parameter_count() const { return parameter_count_; }
459 int pc_offset() const { return pc_offset_; }
458 LOperand** spilled_registers() const { return spilled_registers_; } 460 LOperand** spilled_registers() const { return spilled_registers_; }
459 LOperand** spilled_double_registers() const { 461 LOperand** spilled_double_registers() const {
460 return spilled_double_registers_; 462 return spilled_double_registers_;
461 } 463 }
462 const ZoneList<LOperand*>* values() const { return &values_; } 464 const ZoneList<LOperand*>* values() const { return &values_; }
463 LEnvironment* outer() const { return outer_; } 465 LEnvironment* outer() const { return outer_; }
464 466
465 void AddValue(LOperand* operand, Representation representation) { 467 void AddValue(LOperand* operand, Representation representation) {
466 values_.Add(operand); 468 values_.Add(operand);
467 representations_.Add(representation); 469 representations_.Add(representation);
468 } 470 }
469 471
470 bool HasTaggedValueAt(int index) const { 472 bool HasTaggedValueAt(int index) const {
471 return representations_[index].IsTagged(); 473 return representations_[index].IsTagged();
472 } 474 }
473 475
474 void Register(int deoptimization_index, int translation_index) { 476 void Register(int deoptimization_index,
477 int translation_index,
478 int pc_offset) {
475 ASSERT(!HasBeenRegistered()); 479 ASSERT(!HasBeenRegistered());
476 deoptimization_index_ = deoptimization_index; 480 deoptimization_index_ = deoptimization_index;
477 translation_index_ = translation_index; 481 translation_index_ = translation_index;
482 pc_offset_ = pc_offset;
478 } 483 }
479 bool HasBeenRegistered() const { 484 bool HasBeenRegistered() const {
480 return deoptimization_index_ != Safepoint::kNoDeoptimizationIndex; 485 return deoptimization_index_ != Safepoint::kNoDeoptimizationIndex;
481 } 486 }
482 487
483 void SetSpilledRegisters(LOperand** registers, 488 void SetSpilledRegisters(LOperand** registers,
484 LOperand** double_registers) { 489 LOperand** double_registers) {
485 spilled_registers_ = registers; 490 spilled_registers_ = registers;
486 spilled_double_registers_ = double_registers; 491 spilled_double_registers_ = double_registers;
487 } 492 }
488 493
489 void PrintTo(StringStream* stream); 494 void PrintTo(StringStream* stream);
490 495
491 private: 496 private:
492 Handle<JSFunction> closure_; 497 Handle<JSFunction> closure_;
493 int arguments_stack_height_; 498 int arguments_stack_height_;
494 int deoptimization_index_; 499 int deoptimization_index_;
495 int translation_index_; 500 int translation_index_;
496 int ast_id_; 501 int ast_id_;
497 int parameter_count_; 502 int parameter_count_;
503 int pc_offset_;
498 ZoneList<LOperand*> values_; 504 ZoneList<LOperand*> values_;
499 ZoneList<Representation> representations_; 505 ZoneList<Representation> representations_;
500 506
501 // Allocation index indexed arrays of spill slot operands for registers 507 // Allocation index indexed arrays of spill slot operands for registers
502 // that are also in spill slots at an OSR entry. NULL for environments 508 // that are also in spill slots at an OSR entry. NULL for environments
503 // that do not correspond to an OSR entry. 509 // that do not correspond to an OSR entry.
504 LOperand** spilled_registers_; 510 LOperand** spilled_registers_;
505 LOperand** spilled_double_registers_; 511 LOperand** spilled_double_registers_;
506 512
507 LEnvironment* outer_; 513 LEnvironment* outer_;
(...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after
583 ShallowIterator current_iterator_; 589 ShallowIterator current_iterator_;
584 }; 590 };
585 591
586 592
587 int ElementsKindToShiftSize(ElementsKind elements_kind); 593 int ElementsKindToShiftSize(ElementsKind elements_kind);
588 594
589 595
590 } } // namespace v8::internal 596 } } // namespace v8::internal
591 597
592 #endif // V8_LITHIUM_H_ 598 #endif // V8_LITHIUM_H_
OLDNEW
« no previous file with comments | « src/ia32/lithium-ia32.h ('k') | src/objects.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698