OLD | NEW |
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 689 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
700 COMPILED_STUB_FRAME, | 700 COMPILED_STUB_FRAME, |
701 REGISTER, | 701 REGISTER, |
702 INT32_REGISTER, | 702 INT32_REGISTER, |
703 UINT32_REGISTER, | 703 UINT32_REGISTER, |
704 DOUBLE_REGISTER, | 704 DOUBLE_REGISTER, |
705 STACK_SLOT, | 705 STACK_SLOT, |
706 INT32_STACK_SLOT, | 706 INT32_STACK_SLOT, |
707 UINT32_STACK_SLOT, | 707 UINT32_STACK_SLOT, |
708 DOUBLE_STACK_SLOT, | 708 DOUBLE_STACK_SLOT, |
709 LITERAL, | 709 LITERAL, |
710 ARGUMENTS_OBJECT, | 710 ARGUMENTS_OBJECT |
711 | |
712 // A prefix indicating that the next command is a duplicate of the one | |
713 // that follows it. | |
714 DUPLICATE | |
715 }; | 711 }; |
716 | 712 |
717 Translation(TranslationBuffer* buffer, int frame_count, int jsframe_count, | 713 Translation(TranslationBuffer* buffer, int frame_count, int jsframe_count, |
718 Zone* zone) | 714 Zone* zone) |
719 : buffer_(buffer), | 715 : buffer_(buffer), |
720 index_(buffer->CurrentIndex()), | 716 index_(buffer->CurrentIndex()), |
721 zone_(zone) { | 717 zone_(zone) { |
722 buffer_->Add(BEGIN, zone); | 718 buffer_->Add(BEGIN, zone); |
723 buffer_->Add(frame_count, zone); | 719 buffer_->Add(frame_count, zone); |
724 buffer_->Add(jsframe_count, zone); | 720 buffer_->Add(jsframe_count, zone); |
(...skipping 11 matching lines...) Expand all Loading... |
736 void StoreRegister(Register reg); | 732 void StoreRegister(Register reg); |
737 void StoreInt32Register(Register reg); | 733 void StoreInt32Register(Register reg); |
738 void StoreUint32Register(Register reg); | 734 void StoreUint32Register(Register reg); |
739 void StoreDoubleRegister(DoubleRegister reg); | 735 void StoreDoubleRegister(DoubleRegister reg); |
740 void StoreStackSlot(int index); | 736 void StoreStackSlot(int index); |
741 void StoreInt32StackSlot(int index); | 737 void StoreInt32StackSlot(int index); |
742 void StoreUint32StackSlot(int index); | 738 void StoreUint32StackSlot(int index); |
743 void StoreDoubleStackSlot(int index); | 739 void StoreDoubleStackSlot(int index); |
744 void StoreLiteral(int literal_id); | 740 void StoreLiteral(int literal_id); |
745 void StoreArgumentsObject(bool args_known, int args_index, int args_length); | 741 void StoreArgumentsObject(bool args_known, int args_index, int args_length); |
746 void MarkDuplicate(); | |
747 | 742 |
748 Zone* zone() const { return zone_; } | 743 Zone* zone() const { return zone_; } |
749 | 744 |
750 static int NumberOfOperandsFor(Opcode opcode); | 745 static int NumberOfOperandsFor(Opcode opcode); |
751 | 746 |
752 #if defined(OBJECT_PRINT) || defined(ENABLE_DISASSEMBLER) | 747 #if defined(OBJECT_PRINT) || defined(ENABLE_DISASSEMBLER) |
753 static const char* StringFor(Opcode opcode); | 748 static const char* StringFor(Opcode opcode); |
754 #endif | 749 #endif |
755 | 750 |
756 // A literal id which refers to the JSFunction itself. | 751 // A literal id which refers to the JSFunction itself. |
(...skipping 187 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
944 Object** expression_stack_; | 939 Object** expression_stack_; |
945 int source_position_; | 940 int source_position_; |
946 | 941 |
947 friend class Deoptimizer; | 942 friend class Deoptimizer; |
948 }; | 943 }; |
949 #endif | 944 #endif |
950 | 945 |
951 } } // namespace v8::internal | 946 } } // namespace v8::internal |
952 | 947 |
953 #endif // V8_DEOPTIMIZER_H_ | 948 #endif // V8_DEOPTIMIZER_H_ |
OLD | NEW |