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_X87 | 7 #if V8_TARGET_ARCH_X87 |
8 | 8 |
9 #include "src/base/bits.h" | 9 #include "src/base/bits.h" |
10 #include "src/bootstrapper.h" | 10 #include "src/bootstrapper.h" |
(...skipping 4292 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4303 // at least one map/handler pair. | 4303 // at least one map/handler pair. |
4304 __ mov(feedback, FieldOperand(vector, slot, times_half_pointer_size, | 4304 __ mov(feedback, FieldOperand(vector, slot, times_half_pointer_size, |
4305 FixedArray::kHeaderSize + kPointerSize)); | 4305 FixedArray::kHeaderSize + kPointerSize)); |
4306 HandleArrayCases(masm, receiver, key, vector, slot, feedback, false, &miss); | 4306 HandleArrayCases(masm, receiver, key, vector, slot, feedback, false, &miss); |
4307 | 4307 |
4308 __ bind(&miss); | 4308 __ bind(&miss); |
4309 KeyedLoadIC::GenerateMiss(masm); | 4309 KeyedLoadIC::GenerateMiss(masm); |
4310 } | 4310 } |
4311 | 4311 |
4312 | 4312 |
| 4313 void VectorStoreICTrampolineStub::Generate(MacroAssembler* masm) { |
| 4314 EmitLoadTypeFeedbackVector(masm, VectorStoreICDescriptor::VectorRegister()); |
| 4315 VectorStoreICStub stub(isolate(), state()); |
| 4316 stub.GenerateForTrampoline(masm); |
| 4317 } |
| 4318 |
| 4319 |
| 4320 void VectorKeyedStoreICTrampolineStub::Generate(MacroAssembler* masm) { |
| 4321 EmitLoadTypeFeedbackVector(masm, VectorStoreICDescriptor::VectorRegister()); |
| 4322 VectorKeyedStoreICStub stub(isolate(), state()); |
| 4323 stub.GenerateForTrampoline(masm); |
| 4324 } |
| 4325 |
| 4326 |
| 4327 void VectorStoreICStub::Generate(MacroAssembler* masm) { |
| 4328 GenerateImpl(masm, false); |
| 4329 } |
| 4330 |
| 4331 |
| 4332 void VectorStoreICStub::GenerateForTrampoline(MacroAssembler* masm) { |
| 4333 GenerateImpl(masm, true); |
| 4334 } |
| 4335 |
| 4336 |
| 4337 void VectorStoreICStub::GenerateImpl(MacroAssembler* masm, bool in_frame) { |
| 4338 Label miss; |
| 4339 |
| 4340 // TODO(mvstanton): Implement. |
| 4341 __ bind(&miss); |
| 4342 StoreIC::GenerateMiss(masm); |
| 4343 } |
| 4344 |
| 4345 |
| 4346 void VectorKeyedStoreICStub::Generate(MacroAssembler* masm) { |
| 4347 GenerateImpl(masm, false); |
| 4348 } |
| 4349 |
| 4350 |
| 4351 void VectorKeyedStoreICStub::GenerateForTrampoline(MacroAssembler* masm) { |
| 4352 GenerateImpl(masm, true); |
| 4353 } |
| 4354 |
| 4355 |
| 4356 void VectorKeyedStoreICStub::GenerateImpl(MacroAssembler* masm, bool in_frame) { |
| 4357 Label miss; |
| 4358 |
| 4359 // TODO(mvstanton): Implement. |
| 4360 __ bind(&miss); |
| 4361 KeyedStoreIC::GenerateMiss(masm); |
| 4362 } |
| 4363 |
| 4364 |
4313 void CallICTrampolineStub::Generate(MacroAssembler* masm) { | 4365 void CallICTrampolineStub::Generate(MacroAssembler* masm) { |
4314 EmitLoadTypeFeedbackVector(masm, ebx); | 4366 EmitLoadTypeFeedbackVector(masm, ebx); |
4315 CallICStub stub(isolate(), state()); | 4367 CallICStub stub(isolate(), state()); |
4316 __ jmp(stub.GetCode(), RelocInfo::CODE_TARGET); | 4368 __ jmp(stub.GetCode(), RelocInfo::CODE_TARGET); |
4317 } | 4369 } |
4318 | 4370 |
4319 | 4371 |
4320 void CallIC_ArrayTrampolineStub::Generate(MacroAssembler* masm) { | 4372 void CallIC_ArrayTrampolineStub::Generate(MacroAssembler* masm) { |
4321 EmitLoadTypeFeedbackVector(masm, ebx); | 4373 EmitLoadTypeFeedbackVector(masm, ebx); |
4322 CallIC_ArrayStub stub(isolate(), state()); | 4374 CallIC_ArrayStub stub(isolate(), state()); |
(...skipping 760 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
5083 ApiParameterOperand(2), kStackSpace, nullptr, | 5135 ApiParameterOperand(2), kStackSpace, nullptr, |
5084 Operand(ebp, 7 * kPointerSize), NULL); | 5136 Operand(ebp, 7 * kPointerSize), NULL); |
5085 } | 5137 } |
5086 | 5138 |
5087 | 5139 |
5088 #undef __ | 5140 #undef __ |
5089 | 5141 |
5090 } } // namespace v8::internal | 5142 } } // namespace v8::internal |
5091 | 5143 |
5092 #endif // V8_TARGET_ARCH_X87 | 5144 #endif // V8_TARGET_ARCH_X87 |
OLD | NEW |