Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(29)

Side by Side Diff: src/x87/code-stubs-x87.cc

Issue 2147013002: [stubs] Removed "Vector" ornamentation from StoreIC stubs names. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Created 4 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« src/code-stubs.h ('K') | « src/x64/code-stubs-x64.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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_X87 5 #if V8_TARGET_ARCH_X87
6 6
7 #include "src/code-stubs.h" 7 #include "src/code-stubs.h"
8 #include "src/api-arguments.h" 8 #include "src/api-arguments.h"
9 #include "src/base/bits.h" 9 #include "src/base/bits.h"
10 #include "src/bootstrapper.h" 10 #include "src/bootstrapper.h"
(...skipping 3346 matching lines...) Expand 10 before | Expand all | Expand 10 after
3357 // If the name comparison succeeded, we know we have a fixed array with 3357 // If the name comparison succeeded, we know we have a fixed array with
3358 // at least one map/handler pair. 3358 // at least one map/handler pair.
3359 __ mov(feedback, FieldOperand(vector, slot, times_half_pointer_size, 3359 __ mov(feedback, FieldOperand(vector, slot, times_half_pointer_size,
3360 FixedArray::kHeaderSize + kPointerSize)); 3360 FixedArray::kHeaderSize + kPointerSize));
3361 HandleArrayCases(masm, receiver, key, vector, slot, feedback, false, &miss); 3361 HandleArrayCases(masm, receiver, key, vector, slot, feedback, false, &miss);
3362 3362
3363 __ bind(&miss); 3363 __ bind(&miss);
3364 KeyedLoadIC::GenerateMiss(masm); 3364 KeyedLoadIC::GenerateMiss(masm);
3365 } 3365 }
3366 3366
3367 3367 void StoreICTrampolineStub::Generate(MacroAssembler* masm) {
3368 void VectorStoreICTrampolineStub::Generate(MacroAssembler* masm) {
3369 __ EmitLoadTypeFeedbackVector(VectorStoreICDescriptor::VectorRegister()); 3368 __ EmitLoadTypeFeedbackVector(VectorStoreICDescriptor::VectorRegister());
3370 VectorStoreICStub stub(isolate(), state()); 3369 StoreICStub stub(isolate(), state());
3371 stub.GenerateForTrampoline(masm); 3370 stub.GenerateForTrampoline(masm);
3372 } 3371 }
3373 3372
3374 3373 void KeyedStoreICTrampolineStub::Generate(MacroAssembler* masm) {
3375 void VectorKeyedStoreICTrampolineStub::Generate(MacroAssembler* masm) {
3376 __ EmitLoadTypeFeedbackVector(VectorStoreICDescriptor::VectorRegister()); 3374 __ EmitLoadTypeFeedbackVector(VectorStoreICDescriptor::VectorRegister());
3377 VectorKeyedStoreICStub stub(isolate(), state()); 3375 KeyedStoreICStub stub(isolate(), state());
3378 stub.GenerateForTrampoline(masm); 3376 stub.GenerateForTrampoline(masm);
3379 } 3377 }
3380 3378
3379 void StoreICStub::Generate(MacroAssembler* masm) { GenerateImpl(masm, false); }
3381 3380
3382 void VectorStoreICStub::Generate(MacroAssembler* masm) { 3381 void StoreICStub::GenerateForTrampoline(MacroAssembler* masm) {
3383 GenerateImpl(masm, false);
3384 }
3385
3386
3387 void VectorStoreICStub::GenerateForTrampoline(MacroAssembler* masm) {
3388 GenerateImpl(masm, true); 3382 GenerateImpl(masm, true);
3389 } 3383 }
3390 3384
3391 3385
3392 // value is on the stack already. 3386 // value is on the stack already.
3393 static void HandlePolymorphicStoreCase(MacroAssembler* masm, Register receiver, 3387 static void HandlePolymorphicStoreCase(MacroAssembler* masm, Register receiver,
3394 Register key, Register vector, 3388 Register key, Register vector,
3395 Register slot, Register feedback, 3389 Register slot, Register feedback,
3396 bool is_polymorphic, Label* miss) { 3390 bool is_polymorphic, Label* miss) {
3397 // feedback initially contains the feedback array 3391 // feedback initially contains the feedback array
(...skipping 115 matching lines...) Expand 10 before | Expand all | Expand 10 after
3513 __ j(not_equal, miss); 3507 __ j(not_equal, miss);
3514 __ mov(weak_cell, FieldOperand(vector, slot, times_half_pointer_size, 3508 __ mov(weak_cell, FieldOperand(vector, slot, times_half_pointer_size,
3515 FixedArray::kHeaderSize + kPointerSize)); 3509 FixedArray::kHeaderSize + kPointerSize));
3516 __ lea(weak_cell, FieldOperand(weak_cell, Code::kHeaderSize)); 3510 __ lea(weak_cell, FieldOperand(weak_cell, Code::kHeaderSize));
3517 __ mov(Operand::StaticVariable(virtual_register), weak_cell); 3511 __ mov(Operand::StaticVariable(virtual_register), weak_cell);
3518 __ pop(weak_cell); // Pop "value". 3512 __ pop(weak_cell); // Pop "value".
3519 // jump to the handler. 3513 // jump to the handler.
3520 __ jmp(Operand::StaticVariable(virtual_register)); 3514 __ jmp(Operand::StaticVariable(virtual_register));
3521 } 3515 }
3522 3516
3523 3517 void StoreICStub::GenerateImpl(MacroAssembler* masm, bool in_frame) {
3524 void VectorStoreICStub::GenerateImpl(MacroAssembler* masm, bool in_frame) {
3525 Register receiver = VectorStoreICDescriptor::ReceiverRegister(); // edx 3518 Register receiver = VectorStoreICDescriptor::ReceiverRegister(); // edx
3526 Register key = VectorStoreICDescriptor::NameRegister(); // ecx 3519 Register key = VectorStoreICDescriptor::NameRegister(); // ecx
3527 Register value = VectorStoreICDescriptor::ValueRegister(); // eax 3520 Register value = VectorStoreICDescriptor::ValueRegister(); // eax
3528 Register vector = VectorStoreICDescriptor::VectorRegister(); // ebx 3521 Register vector = VectorStoreICDescriptor::VectorRegister(); // ebx
3529 Register slot = VectorStoreICDescriptor::SlotRegister(); // edi 3522 Register slot = VectorStoreICDescriptor::SlotRegister(); // edi
3530 Label miss; 3523 Label miss;
3531 3524
3532 __ push(value); 3525 __ push(value);
3533 3526
3534 Register scratch = value; 3527 Register scratch = value;
(...skipping 27 matching lines...) Expand all
3562 __ pop(slot); 3555 __ pop(slot);
3563 Label no_pop_miss; 3556 Label no_pop_miss;
3564 __ jmp(&no_pop_miss); 3557 __ jmp(&no_pop_miss);
3565 3558
3566 __ bind(&miss); 3559 __ bind(&miss);
3567 __ pop(value); 3560 __ pop(value);
3568 __ bind(&no_pop_miss); 3561 __ bind(&no_pop_miss);
3569 StoreIC::GenerateMiss(masm); 3562 StoreIC::GenerateMiss(masm);
3570 } 3563 }
3571 3564
3572 3565 void KeyedStoreICStub::Generate(MacroAssembler* masm) {
3573 void VectorKeyedStoreICStub::Generate(MacroAssembler* masm) {
3574 GenerateImpl(masm, false); 3566 GenerateImpl(masm, false);
3575 } 3567 }
3576 3568
3577 3569 void KeyedStoreICStub::GenerateForTrampoline(MacroAssembler* masm) {
3578 void VectorKeyedStoreICStub::GenerateForTrampoline(MacroAssembler* masm) {
3579 GenerateImpl(masm, true); 3570 GenerateImpl(masm, true);
3580 } 3571 }
3581 3572
3582 3573
3583 static void HandlePolymorphicKeyedStoreCase(MacroAssembler* masm, 3574 static void HandlePolymorphicKeyedStoreCase(MacroAssembler* masm,
3584 Register receiver, Register key, 3575 Register receiver, Register key,
3585 Register vector, Register slot, 3576 Register vector, Register slot,
3586 Register feedback, Label* miss) { 3577 Register feedback, Label* miss) {
3587 // feedback initially contains the feedback array 3578 // feedback initially contains the feedback array
3588 Label next, next_loop, prepare_next; 3579 Label next, next_loop, prepare_next;
(...skipping 92 matching lines...) Expand 10 before | Expand all | Expand 10 after
3681 __ pop(key); 3672 __ pop(key);
3682 __ pop(vector); 3673 __ pop(vector);
3683 __ pop(receiver); 3674 __ pop(receiver);
3684 __ jmp(miss); 3675 __ jmp(miss);
3685 3676
3686 __ bind(&load_smi_map); 3677 __ bind(&load_smi_map);
3687 __ LoadRoot(receiver_map, Heap::kHeapNumberMapRootIndex); 3678 __ LoadRoot(receiver_map, Heap::kHeapNumberMapRootIndex);
3688 __ jmp(&compare_map); 3679 __ jmp(&compare_map);
3689 } 3680 }
3690 3681
3691 void VectorKeyedStoreICStub::GenerateImpl(MacroAssembler* masm, bool in_frame) { 3682 void KeyedStoreICStub::GenerateImpl(MacroAssembler* masm, bool in_frame) {
3692 Register receiver = VectorStoreICDescriptor::ReceiverRegister(); // edx 3683 Register receiver = VectorStoreICDescriptor::ReceiverRegister(); // edx
3693 Register key = VectorStoreICDescriptor::NameRegister(); // ecx 3684 Register key = VectorStoreICDescriptor::NameRegister(); // ecx
3694 Register value = VectorStoreICDescriptor::ValueRegister(); // eax 3685 Register value = VectorStoreICDescriptor::ValueRegister(); // eax
3695 Register vector = VectorStoreICDescriptor::VectorRegister(); // ebx 3686 Register vector = VectorStoreICDescriptor::VectorRegister(); // ebx
3696 Register slot = VectorStoreICDescriptor::SlotRegister(); // edi 3687 Register slot = VectorStoreICDescriptor::SlotRegister(); // edi
3697 Label miss; 3688 Label miss;
3698 3689
3699 __ push(value); 3690 __ push(value);
3700 3691
3701 Register scratch = value; 3692 Register scratch = value;
(...skipping 1585 matching lines...) Expand 10 before | Expand all | Expand 10 after
5287 kStackUnwindSpace, nullptr, return_value_operand, 5278 kStackUnwindSpace, nullptr, return_value_operand,
5288 NULL); 5279 NULL);
5289 } 5280 }
5290 5281
5291 #undef __ 5282 #undef __
5292 5283
5293 } // namespace internal 5284 } // namespace internal
5294 } // namespace v8 5285 } // namespace v8
5295 5286
5296 #endif // V8_TARGET_ARCH_X87 5287 #endif // V8_TARGET_ARCH_X87
OLDNEW
« src/code-stubs.h ('K') | « src/x64/code-stubs-x64.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698