| 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 |