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_IA32 | 7 #if V8_TARGET_ARCH_IA32 |
8 | 8 |
9 #include "src/code-factory.h" | 9 #include "src/code-factory.h" |
10 #include "src/code-stubs.h" | 10 #include "src/code-stubs.h" |
(...skipping 1269 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1280 | 1280 |
1281 void FullCodeGenerator::EmitLoadHomeObject(SuperReference* expr) { | 1281 void FullCodeGenerator::EmitLoadHomeObject(SuperReference* expr) { |
1282 Comment cnmt(masm_, "[ SuperReference "); | 1282 Comment cnmt(masm_, "[ SuperReference "); |
1283 | 1283 |
1284 __ mov(LoadDescriptor::ReceiverRegister(), | 1284 __ mov(LoadDescriptor::ReceiverRegister(), |
1285 Operand(ebp, JavaScriptFrameConstants::kFunctionOffset)); | 1285 Operand(ebp, JavaScriptFrameConstants::kFunctionOffset)); |
1286 | 1286 |
1287 Handle<Symbol> home_object_symbol(isolate()->heap()->home_object_symbol()); | 1287 Handle<Symbol> home_object_symbol(isolate()->heap()->home_object_symbol()); |
1288 __ mov(LoadDescriptor::NameRegister(), home_object_symbol); | 1288 __ mov(LoadDescriptor::NameRegister(), home_object_symbol); |
1289 | 1289 |
1290 CallLoadIC(NOT_CONTEXTUAL, expr->HomeObjectFeedbackId()); | 1290 if (FLAG_vector_ics) { |
| 1291 __ mov(VectorLoadICDescriptor::SlotRegister(), |
| 1292 Immediate(Smi::FromInt(expr->HomeObjectFeedbackSlot()))); |
| 1293 CallLoadIC(NOT_CONTEXTUAL); |
| 1294 } else { |
| 1295 CallLoadIC(NOT_CONTEXTUAL, expr->HomeObjectFeedbackId()); |
| 1296 } |
1291 | 1297 |
1292 __ cmp(eax, isolate()->factory()->undefined_value()); | 1298 __ cmp(eax, isolate()->factory()->undefined_value()); |
1293 Label done; | 1299 Label done; |
1294 __ j(not_equal, &done); | 1300 __ j(not_equal, &done); |
1295 __ CallRuntime(Runtime::kThrowNonMethodError, 0); | 1301 __ CallRuntime(Runtime::kThrowNonMethodError, 0); |
1296 __ bind(&done); | 1302 __ bind(&done); |
1297 } | 1303 } |
1298 | 1304 |
1299 | 1305 |
1300 void FullCodeGenerator::EmitLoadGlobalCheckExtensions(VariableProxy* proxy, | 1306 void FullCodeGenerator::EmitLoadGlobalCheckExtensions(VariableProxy* proxy, |
(...skipping 3731 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
5032 DCHECK_EQ(isolate->builtins()->OsrAfterStackCheck()->entry(), | 5038 DCHECK_EQ(isolate->builtins()->OsrAfterStackCheck()->entry(), |
5033 Assembler::target_address_at(call_target_address, | 5039 Assembler::target_address_at(call_target_address, |
5034 unoptimized_code)); | 5040 unoptimized_code)); |
5035 return OSR_AFTER_STACK_CHECK; | 5041 return OSR_AFTER_STACK_CHECK; |
5036 } | 5042 } |
5037 | 5043 |
5038 | 5044 |
5039 } } // namespace v8::internal | 5045 } } // namespace v8::internal |
5040 | 5046 |
5041 #endif // V8_TARGET_ARCH_IA32 | 5047 #endif // V8_TARGET_ARCH_IA32 |
OLD | NEW |