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 #include "src/v8.h" | 5 #include "src/v8.h" |
6 | 6 |
7 #if V8_TARGET_ARCH_MIPS | 7 #if V8_TARGET_ARCH_MIPS |
8 | 8 |
9 // Note on Mips implementation: | 9 // Note on Mips implementation: |
10 // | 10 // |
(...skipping 1333 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1344 | 1344 |
1345 void FullCodeGenerator::EmitLoadHomeObject(SuperReference* expr) { | 1345 void FullCodeGenerator::EmitLoadHomeObject(SuperReference* expr) { |
1346 Comment cnmt(masm_, "[ SuperReference "); | 1346 Comment cnmt(masm_, "[ SuperReference "); |
1347 | 1347 |
1348 __ lw(LoadDescriptor::ReceiverRegister(), | 1348 __ lw(LoadDescriptor::ReceiverRegister(), |
1349 MemOperand(fp, JavaScriptFrameConstants::kFunctionOffset)); | 1349 MemOperand(fp, JavaScriptFrameConstants::kFunctionOffset)); |
1350 | 1350 |
1351 Handle<Symbol> home_object_symbol(isolate()->heap()->home_object_symbol()); | 1351 Handle<Symbol> home_object_symbol(isolate()->heap()->home_object_symbol()); |
1352 __ li(LoadDescriptor::NameRegister(), home_object_symbol); | 1352 __ li(LoadDescriptor::NameRegister(), home_object_symbol); |
1353 | 1353 |
1354 CallLoadIC(NOT_CONTEXTUAL, expr->HomeObjectFeedbackId()); | 1354 if (FLAG_vector_ics) { |
| 1355 __ li(VectorLoadICDescriptor::SlotRegister(), |
| 1356 Operand(Smi::FromInt(expr->HomeObjectFeedbackSlot()))); |
| 1357 CallLoadIC(NOT_CONTEXTUAL); |
| 1358 } else { |
| 1359 CallLoadIC(NOT_CONTEXTUAL, expr->HomeObjectFeedbackId()); |
| 1360 } |
1355 | 1361 |
1356 Label done; | 1362 Label done; |
1357 __ Branch(&done, ne, v0, Operand(isolate()->factory()->undefined_value())); | 1363 __ Branch(&done, ne, v0, Operand(isolate()->factory()->undefined_value())); |
1358 __ CallRuntime(Runtime::kThrowNonMethodError, 0); | 1364 __ CallRuntime(Runtime::kThrowNonMethodError, 0); |
1359 __ bind(&done); | 1365 __ bind(&done); |
1360 } | 1366 } |
1361 | 1367 |
1362 | 1368 |
1363 void FullCodeGenerator::EmitLoadGlobalCheckExtensions(VariableProxy* proxy, | 1369 void FullCodeGenerator::EmitLoadGlobalCheckExtensions(VariableProxy* proxy, |
1364 TypeofState typeof_state, | 1370 TypeofState typeof_state, |
(...skipping 3718 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
5083 Assembler::target_address_at(pc_immediate_load_address)) == | 5089 Assembler::target_address_at(pc_immediate_load_address)) == |
5084 reinterpret_cast<uint32_t>( | 5090 reinterpret_cast<uint32_t>( |
5085 isolate->builtins()->OsrAfterStackCheck()->entry())); | 5091 isolate->builtins()->OsrAfterStackCheck()->entry())); |
5086 return OSR_AFTER_STACK_CHECK; | 5092 return OSR_AFTER_STACK_CHECK; |
5087 } | 5093 } |
5088 | 5094 |
5089 | 5095 |
5090 } } // namespace v8::internal | 5096 } } // namespace v8::internal |
5091 | 5097 |
5092 #endif // V8_TARGET_ARCH_MIPS | 5098 #endif // V8_TARGET_ARCH_MIPS |
OLD | NEW |