OLD | NEW |
1 // Copyright 2012 the V8 project authors. All rights reserved. | 1 // Copyright 2012 the V8 project authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #if V8_TARGET_ARCH_MIPS | 5 #if V8_TARGET_ARCH_MIPS |
6 | 6 |
7 // Note on Mips implementation: | 7 // Note on Mips implementation: |
8 // | 8 // |
9 // The result_register() for mips is the 'v0' register, which is defined | 9 // The result_register() for mips is the 'v0' register, which is defined |
10 // by the ABI to contain function return values. However, the first | 10 // by the ABI to contain function return values. However, the first |
(...skipping 4091 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4102 void FullCodeGenerator::ClearPendingMessage() { | 4102 void FullCodeGenerator::ClearPendingMessage() { |
4103 DCHECK(!result_register().is(a1)); | 4103 DCHECK(!result_register().is(a1)); |
4104 ExternalReference pending_message_obj = | 4104 ExternalReference pending_message_obj = |
4105 ExternalReference::address_of_pending_message_obj(isolate()); | 4105 ExternalReference::address_of_pending_message_obj(isolate()); |
4106 __ LoadRoot(a1, Heap::kTheHoleValueRootIndex); | 4106 __ LoadRoot(a1, Heap::kTheHoleValueRootIndex); |
4107 __ li(at, Operand(pending_message_obj)); | 4107 __ li(at, Operand(pending_message_obj)); |
4108 __ sw(a1, MemOperand(at)); | 4108 __ sw(a1, MemOperand(at)); |
4109 } | 4109 } |
4110 | 4110 |
4111 | 4111 |
4112 void FullCodeGenerator::EmitLoadStoreICSlot(FeedbackVectorSlot slot) { | |
4113 DCHECK(!slot.IsInvalid()); | |
4114 __ li(VectorStoreICTrampolineDescriptor::SlotRegister(), | |
4115 Operand(SmiFromSlot(slot))); | |
4116 } | |
4117 | |
4118 void FullCodeGenerator::DeferredCommands::EmitCommands() { | 4112 void FullCodeGenerator::DeferredCommands::EmitCommands() { |
4119 DCHECK(!result_register().is(a1)); | 4113 DCHECK(!result_register().is(a1)); |
4120 __ Pop(result_register()); // Restore the accumulator. | 4114 __ Pop(result_register()); // Restore the accumulator. |
4121 __ Pop(a1); // Get the token. | 4115 __ Pop(a1); // Get the token. |
4122 for (DeferredCommand cmd : commands_) { | 4116 for (DeferredCommand cmd : commands_) { |
4123 Label skip; | 4117 Label skip; |
4124 __ li(at, Operand(Smi::FromInt(cmd.token))); | 4118 __ li(at, Operand(Smi::FromInt(cmd.token))); |
4125 __ Branch(&skip, ne, a1, Operand(at)); | 4119 __ Branch(&skip, ne, a1, Operand(at)); |
4126 switch (cmd.command) { | 4120 switch (cmd.command) { |
4127 case kReturn: | 4121 case kReturn: |
(...skipping 91 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4219 reinterpret_cast<uint32_t>( | 4213 reinterpret_cast<uint32_t>( |
4220 isolate->builtins()->OsrAfterStackCheck()->entry())); | 4214 isolate->builtins()->OsrAfterStackCheck()->entry())); |
4221 return OSR_AFTER_STACK_CHECK; | 4215 return OSR_AFTER_STACK_CHECK; |
4222 } | 4216 } |
4223 | 4217 |
4224 | 4218 |
4225 } // namespace internal | 4219 } // namespace internal |
4226 } // namespace v8 | 4220 } // namespace v8 |
4227 | 4221 |
4228 #endif // V8_TARGET_ARCH_MIPS | 4222 #endif // V8_TARGET_ARCH_MIPS |
OLD | NEW |