OLD | NEW |
1 | 1 |
2 // Copyright 2011 the V8 project authors. All rights reserved. | 2 // Copyright 2011 the V8 project authors. All rights reserved. |
3 // Redistribution and use in source and binary forms, with or without | 3 // Redistribution and use in source and binary forms, with or without |
4 // modification, are permitted provided that the following conditions are | 4 // modification, are permitted provided that the following conditions are |
5 // met: | 5 // met: |
6 // | 6 // |
7 // * Redistributions of source code must retain the above copyright | 7 // * Redistributions of source code must retain the above copyright |
8 // notice, this list of conditions and the following disclaimer. | 8 // notice, this list of conditions and the following disclaimer. |
9 // * Redistributions in binary form must reproduce the above | 9 // * Redistributions in binary form must reproduce the above |
10 // copyright notice, this list of conditions and the following | 10 // copyright notice, this list of conditions and the following |
(...skipping 595 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
606 __ InitializeRootRegister(); | 606 __ InitializeRootRegister(); |
607 | 607 |
608 __ pop(at); // Get continuation, leave pc on stack. | 608 __ pop(at); // Get continuation, leave pc on stack. |
609 __ pop(ra); | 609 __ pop(ra); |
610 __ Jump(at); | 610 __ Jump(at); |
611 __ stop("Unreachable."); | 611 __ stop("Unreachable."); |
612 } | 612 } |
613 | 613 |
614 | 614 |
615 // Maximum size of a table entry generated below. | 615 // Maximum size of a table entry generated below. |
616 const int Deoptimizer::table_entry_size_ = 6 * Assembler::kInstrSize; | 616 const int Deoptimizer::table_entry_size_ = 7 * Assembler::kInstrSize; |
617 | 617 |
618 void Deoptimizer::TableEntryGenerator::GeneratePrologue() { | 618 void Deoptimizer::TableEntryGenerator::GeneratePrologue() { |
619 Assembler::BlockTrampolinePoolScope block_trampoline_pool(masm()); | 619 Assembler::BlockTrampolinePoolScope block_trampoline_pool(masm()); |
620 | 620 |
621 // Create a sequence of deoptimization entries. | 621 // Create a sequence of deoptimization entries. |
622 // Note that registers are still live when jumping to an entry. | 622 // Note that registers are still live when jumping to an entry. |
623 Label table_start; | 623 Label table_start; |
624 __ bind(&table_start); | 624 __ bind(&table_start); |
625 for (int i = 0; i < count(); i++) { | 625 for (int i = 0; i < count(); i++) { |
626 Label start; | 626 Label start; |
(...skipping 18 matching lines...) Expand all Loading... |
645 } | 645 } |
646 | 646 |
647 ASSERT_EQ(masm()->SizeOfCodeGeneratedSince(&table_start), | 647 ASSERT_EQ(masm()->SizeOfCodeGeneratedSince(&table_start), |
648 count() * table_entry_size_); | 648 count() * table_entry_size_); |
649 } | 649 } |
650 | 650 |
651 #undef __ | 651 #undef __ |
652 | 652 |
653 | 653 |
654 } } // namespace v8::internal | 654 } } // namespace v8::internal |
OLD | NEW |