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

Side by Side Diff: src/ic/mips64/handler-compiler-mips64.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/mips/handler-compiler-mips.cc ('k') | src/ic/ppc/handler-compiler-ppc.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 2014 the V8 project authors. All rights reserved. 1 // Copyright 2014 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_MIPS64 5 #if V8_TARGET_ARCH_MIPS64
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 89 matching lines...) Expand 10 before | Expand all | Expand 10 after
100 // Restore context register. 100 // Restore context register.
101 __ Pop(cp, v0); 101 __ Pop(cp, v0);
102 } 102 }
103 __ Ret(); 103 __ Ret();
104 } 104 }
105 105
106 106
107 void PropertyHandlerCompiler::PushVectorAndSlot(Register vector, 107 void PropertyHandlerCompiler::PushVectorAndSlot(Register vector,
108 Register slot) { 108 Register slot) {
109 MacroAssembler* masm = this->masm(); 109 MacroAssembler* masm = this->masm();
110 __ Push(vector, slot); 110 STATIC_ASSERT(LoadWithVectorDescriptor::kSlot <
111 LoadWithVectorDescriptor::kVector);
112 STATIC_ASSERT(StoreWithVectorDescriptor::kSlot <
113 StoreWithVectorDescriptor::kVector);
114 STATIC_ASSERT(StoreTransitionDescriptor::kSlot <
115 StoreTransitionDescriptor::kVector);
116 __ Push(slot, vector);
111 } 117 }
112 118
113 119
114 void PropertyHandlerCompiler::PopVectorAndSlot(Register vector, Register slot) { 120 void PropertyHandlerCompiler::PopVectorAndSlot(Register vector, Register slot) {
115 MacroAssembler* masm = this->masm(); 121 MacroAssembler* masm = this->masm();
116 __ Pop(vector, slot); 122 __ Pop(slot, vector);
117 } 123 }
118 124
119 125
120 void PropertyHandlerCompiler::DiscardVectorAndSlot() { 126 void PropertyHandlerCompiler::DiscardVectorAndSlot() {
121 MacroAssembler* masm = this->masm(); 127 MacroAssembler* masm = this->masm();
122 // Remove vector and slot. 128 // Remove vector and slot.
123 __ Daddu(sp, sp, Operand(2 * kPointerSize)); 129 __ Daddu(sp, sp, Operand(2 * kPointerSize));
124 } 130 }
125 131
132 void PropertyHandlerCompiler::PushReturnAddress(Register tmp) { UNREACHABLE(); }
133
134 void PropertyHandlerCompiler::PopReturnAddress(Register tmp) { UNREACHABLE(); }
126 135
127 void PropertyHandlerCompiler::GenerateDictionaryNegativeLookup( 136 void PropertyHandlerCompiler::GenerateDictionaryNegativeLookup(
128 MacroAssembler* masm, Label* miss_label, Register receiver, 137 MacroAssembler* masm, Label* miss_label, Register receiver,
129 Handle<Name> name, Register scratch0, Register scratch1) { 138 Handle<Name> name, Register scratch0, Register scratch1) {
130 DCHECK(name->IsUniqueName()); 139 DCHECK(name->IsUniqueName());
131 DCHECK(!receiver.is(scratch0)); 140 DCHECK(!receiver.is(scratch0));
132 Counters* counters = masm->isolate()->counters(); 141 Counters* counters = masm->isolate()->counters();
133 __ IncrementCounter(counters->negative_lookups(), 1, scratch0, scratch1); 142 __ IncrementCounter(counters->negative_lookups(), 1, scratch0, scratch1);
134 __ IncrementCounter(counters->negative_lookups_miss(), 1, scratch0, scratch1); 143 __ IncrementCounter(counters->negative_lookups_miss(), 1, scratch0, scratch1);
135 144
(...skipping 210 matching lines...) Expand 10 before | Expand all | Expand 10 after
346 __ li(this->name(), Operand(name)); 355 __ li(this->name(), Operand(name));
347 } 356 }
348 } 357 }
349 358
350 359
351 void NamedStoreHandlerCompiler::GenerateRestoreName(Handle<Name> name) { 360 void NamedStoreHandlerCompiler::GenerateRestoreName(Handle<Name> name) {
352 __ li(this->name(), Operand(name)); 361 __ li(this->name(), Operand(name));
353 } 362 }
354 363
355 364
356 void NamedStoreHandlerCompiler::RearrangeVectorAndSlot(
357 Register current_map, Register destination_map) {
358 DCHECK(false); // Not implemented.
359 }
360
361
362 void NamedStoreHandlerCompiler::GenerateRestoreMap(Handle<Map> transition, 365 void NamedStoreHandlerCompiler::GenerateRestoreMap(Handle<Map> transition,
363 Register map_reg, 366 Register map_reg,
364 Register scratch, 367 Register scratch,
365 Label* miss) { 368 Label* miss) {
366 Handle<WeakCell> cell = Map::WeakCellForMap(transition); 369 Handle<WeakCell> cell = Map::WeakCellForMap(transition);
367 DCHECK(!map_reg.is(scratch)); 370 DCHECK(!map_reg.is(scratch));
368 __ LoadWeakValue(map_reg, cell, miss); 371 __ LoadWeakValue(map_reg, cell, miss);
369 if (transition->CanBeDeprecated()) { 372 if (transition->CanBeDeprecated()) {
370 __ lwu(scratch, FieldMemOperand(map_reg, Map::kBitField3Offset)); 373 __ lwu(scratch, FieldMemOperand(map_reg, Map::kBitField3Offset));
371 __ And(at, scratch, Operand(Map::Deprecated::kMask)); 374 __ And(at, scratch, Operand(Map::Deprecated::kMask));
(...skipping 310 matching lines...) Expand 10 before | Expand all | Expand 10 after
682 // Return the generated code. 685 // Return the generated code.
683 return GetCode(kind(), name); 686 return GetCode(kind(), name);
684 } 687 }
685 688
686 689
687 #undef __ 690 #undef __
688 } // namespace internal 691 } // namespace internal
689 } // namespace v8 692 } // namespace v8
690 693
691 #endif // V8_TARGET_ARCH_MIPS64 694 #endif // V8_TARGET_ARCH_MIPS64
OLDNEW
« no previous file with comments | « src/ic/mips/handler-compiler-mips.cc ('k') | src/ic/ppc/handler-compiler-ppc.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698