| 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 810 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 821 ? Deoptimizer::LAZY | 821 ? Deoptimizer::LAZY |
| 822 : Deoptimizer::EAGER; | 822 : Deoptimizer::EAGER; |
| 823 Address entry = | 823 Address entry = |
| 824 Deoptimizer::GetDeoptimizationEntry(isolate(), id, bailout_type); | 824 Deoptimizer::GetDeoptimizationEntry(isolate(), id, bailout_type); |
| 825 if (entry == NULL) { | 825 if (entry == NULL) { |
| 826 Abort("bailout was not prepared"); | 826 Abort("bailout was not prepared"); |
| 827 return; | 827 return; |
| 828 } | 828 } |
| 829 | 829 |
| 830 ASSERT(FLAG_deopt_every_n_times < 2); // Other values not supported on MIPS. | 830 ASSERT(FLAG_deopt_every_n_times < 2); // Other values not supported on MIPS. |
| 831 if (FLAG_deopt_every_n_times == 1 && info_->opt_count() == id) { | 831 if (FLAG_deopt_every_n_times == 1 && |
| 832 !info()->IsStub() && |
| 833 info()->opt_count() == id) { |
| 832 __ Jump(entry, RelocInfo::RUNTIME_ENTRY); | 834 __ Jump(entry, RelocInfo::RUNTIME_ENTRY); |
| 833 return; | 835 return; |
| 834 } | 836 } |
| 835 | 837 |
| 836 if (FLAG_trap_on_deopt) { | 838 if (FLAG_trap_on_deopt) { |
| 837 Label skip; | 839 Label skip; |
| 838 if (cc != al) { | 840 if (cc != al) { |
| 839 __ Branch(&skip, NegateCondition(cc), src1, src2); | 841 __ Branch(&skip, NegateCondition(cc), src1, src2); |
| 840 } | 842 } |
| 841 __ stop("trap_on_deopt"); | 843 __ stop("trap_on_deopt"); |
| (...skipping 5255 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 6097 __ Subu(scratch, result, scratch); | 6099 __ Subu(scratch, result, scratch); |
| 6098 __ lw(result, FieldMemOperand(scratch, | 6100 __ lw(result, FieldMemOperand(scratch, |
| 6099 FixedArray::kHeaderSize - kPointerSize)); | 6101 FixedArray::kHeaderSize - kPointerSize)); |
| 6100 __ bind(&done); | 6102 __ bind(&done); |
| 6101 } | 6103 } |
| 6102 | 6104 |
| 6103 | 6105 |
| 6104 #undef __ | 6106 #undef __ |
| 6105 | 6107 |
| 6106 } } // namespace v8::internal | 6108 } } // namespace v8::internal |
| OLD | NEW |