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

Side by Side Diff: src/ic/s390/handler-compiler-s390.cc

Issue 2313093002: [stubs] Port StoreTransitionStub and ElementsTransitionAndStoreStub to TurboFan. (Closed)
Patch Set: Addressing comments Created 4 years, 3 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
« no previous file with comments | « src/ic/ppc/handler-compiler-ppc.cc ('k') | src/ic/x64/handler-compiler-x64.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2015 the V8 project authors. All rights reserved. 1 // Copyright 2015 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_S390 5 #if V8_TARGET_ARCH_S390
6 6
7 #include "src/ic/handler-compiler.h" 7 #include "src/ic/handler-compiler.h"
8 8
9 #include "src/api-arguments.h" 9 #include "src/api-arguments.h"
10 #include "src/field-type.h" 10 #include "src/field-type.h"
(...skipping 87 matching lines...) Expand 10 before | Expand all | Expand 10 after
98 // We have to return the passed value, not the return value of the setter. 98 // We have to return the passed value, not the return value of the setter.
99 // Restore context register. 99 // Restore context register.
100 __ Pop(cp, r2); 100 __ Pop(cp, r2);
101 } 101 }
102 __ Ret(); 102 __ Ret();
103 } 103 }
104 104
105 void PropertyHandlerCompiler::PushVectorAndSlot(Register vector, 105 void PropertyHandlerCompiler::PushVectorAndSlot(Register vector,
106 Register slot) { 106 Register slot) {
107 MacroAssembler* masm = this->masm(); 107 MacroAssembler* masm = this->masm();
108 __ Push(vector, slot); 108 STATIC_ASSERT(LoadWithVectorDescriptor::kSlot <
109 LoadWithVectorDescriptor::kVector);
110 STATIC_ASSERT(StoreWithVectorDescriptor::kSlot <
111 StoreWithVectorDescriptor::kVector);
112 STATIC_ASSERT(StoreTransitionDescriptor::kSlot <
113 StoreTransitionDescriptor::kVector);
114 __ Push(slot, vector);
109 } 115 }
110 116
111 void PropertyHandlerCompiler::PopVectorAndSlot(Register vector, Register slot) { 117 void PropertyHandlerCompiler::PopVectorAndSlot(Register vector, Register slot) {
112 MacroAssembler* masm = this->masm(); 118 MacroAssembler* masm = this->masm();
113 __ Pop(vector, slot); 119 __ Pop(slot, vector);
114 } 120 }
115 121
116 void PropertyHandlerCompiler::DiscardVectorAndSlot() { 122 void PropertyHandlerCompiler::DiscardVectorAndSlot() {
117 MacroAssembler* masm = this->masm(); 123 MacroAssembler* masm = this->masm();
118 // Remove vector and slot. 124 // Remove vector and slot.
119 __ la(sp, MemOperand(sp, 2 * kPointerSize)); 125 __ la(sp, MemOperand(sp, 2 * kPointerSize));
120 } 126 }
121 127
128 void PropertyHandlerCompiler::PushReturnAddress(Register tmp) { UNREACHABLE(); }
129
130 void PropertyHandlerCompiler::PopReturnAddress(Register tmp) { UNREACHABLE(); }
131
122 void PropertyHandlerCompiler::GenerateDictionaryNegativeLookup( 132 void PropertyHandlerCompiler::GenerateDictionaryNegativeLookup(
123 MacroAssembler* masm, Label* miss_label, Register receiver, 133 MacroAssembler* masm, Label* miss_label, Register receiver,
124 Handle<Name> name, Register scratch0, Register scratch1) { 134 Handle<Name> name, Register scratch0, Register scratch1) {
125 DCHECK(name->IsUniqueName()); 135 DCHECK(name->IsUniqueName());
126 DCHECK(!receiver.is(scratch0)); 136 DCHECK(!receiver.is(scratch0));
127 Counters* counters = masm->isolate()->counters(); 137 Counters* counters = masm->isolate()->counters();
128 __ IncrementCounter(counters->negative_lookups(), 1, scratch0, scratch1); 138 __ IncrementCounter(counters->negative_lookups(), 1, scratch0, scratch1);
129 __ IncrementCounter(counters->negative_lookups_miss(), 1, scratch0, scratch1); 139 __ IncrementCounter(counters->negative_lookups_miss(), 1, scratch0, scratch1);
130 140
131 Label done; 141 Label done;
(...skipping 201 matching lines...) Expand 10 before | Expand all | Expand 10 after
333 if (!label->is_unused()) { 343 if (!label->is_unused()) {
334 __ bind(label); 344 __ bind(label);
335 __ mov(this->name(), Operand(name)); 345 __ mov(this->name(), Operand(name));
336 } 346 }
337 } 347 }
338 348
339 void NamedStoreHandlerCompiler::GenerateRestoreName(Handle<Name> name) { 349 void NamedStoreHandlerCompiler::GenerateRestoreName(Handle<Name> name) {
340 __ mov(this->name(), Operand(name)); 350 __ mov(this->name(), Operand(name));
341 } 351 }
342 352
343 void NamedStoreHandlerCompiler::RearrangeVectorAndSlot(
344 Register current_map, Register destination_map) {
345 DCHECK(false); // Not implemented.
346 }
347
348 void NamedStoreHandlerCompiler::GenerateRestoreMap(Handle<Map> transition, 353 void NamedStoreHandlerCompiler::GenerateRestoreMap(Handle<Map> transition,
349 Register map_reg, 354 Register map_reg,
350 Register scratch, 355 Register scratch,
351 Label* miss) { 356 Label* miss) {
352 Handle<WeakCell> cell = Map::WeakCellForMap(transition); 357 Handle<WeakCell> cell = Map::WeakCellForMap(transition);
353 DCHECK(!map_reg.is(scratch)); 358 DCHECK(!map_reg.is(scratch));
354 __ LoadWeakValue(map_reg, cell, miss); 359 __ LoadWeakValue(map_reg, cell, miss);
355 if (transition->CanBeDeprecated()) { 360 if (transition->CanBeDeprecated()) {
356 __ LoadlW(scratch, FieldMemOperand(map_reg, Map::kBitField3Offset)); 361 __ LoadlW(scratch, FieldMemOperand(map_reg, Map::kBitField3Offset));
357 __ DecodeField<Map::Deprecated>(r0, scratch); 362 __ DecodeField<Map::Deprecated>(r0, scratch);
(...skipping 297 matching lines...) Expand 10 before | Expand all | Expand 10 after
655 660
656 // Return the generated code. 661 // Return the generated code.
657 return GetCode(kind(), name); 662 return GetCode(kind(), name);
658 } 663 }
659 664
660 #undef __ 665 #undef __
661 } // namespace internal 666 } // namespace internal
662 } // namespace v8 667 } // namespace v8
663 668
664 #endif // V8_TARGET_ARCH_ARM 669 #endif // V8_TARGET_ARCH_ARM
OLDNEW
« no previous file with comments | « src/ic/ppc/handler-compiler-ppc.cc ('k') | src/ic/x64/handler-compiler-x64.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698