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

Side by Side Diff: src/ic/ppc/handler-compiler-ppc.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/mips64/handler-compiler-mips64.cc ('k') | src/ic/s390/handler-compiler-s390.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_PPC 5 #if V8_TARGET_ARCH_PPC
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 90 matching lines...) Expand 10 before | Expand all | Expand 10 after
101 // Restore context register. 101 // Restore context register.
102 __ Pop(cp, r3); 102 __ Pop(cp, r3);
103 } 103 }
104 __ Ret(); 104 __ Ret();
105 } 105 }
106 106
107 107
108 void PropertyHandlerCompiler::PushVectorAndSlot(Register vector, 108 void PropertyHandlerCompiler::PushVectorAndSlot(Register vector,
109 Register slot) { 109 Register slot) {
110 MacroAssembler* masm = this->masm(); 110 MacroAssembler* masm = this->masm();
111 __ Push(vector, slot); 111 STATIC_ASSERT(LoadWithVectorDescriptor::kSlot <
112 LoadWithVectorDescriptor::kVector);
113 STATIC_ASSERT(StoreWithVectorDescriptor::kSlot <
114 StoreWithVectorDescriptor::kVector);
115 STATIC_ASSERT(StoreTransitionDescriptor::kSlot <
116 StoreTransitionDescriptor::kVector);
117 __ Push(slot, vector);
112 } 118 }
113 119
114 120
115 void PropertyHandlerCompiler::PopVectorAndSlot(Register vector, Register slot) { 121 void PropertyHandlerCompiler::PopVectorAndSlot(Register vector, Register slot) {
116 MacroAssembler* masm = this->masm(); 122 MacroAssembler* masm = this->masm();
117 __ Pop(vector, slot); 123 __ Pop(slot, vector);
118 } 124 }
119 125
120 126
121 void PropertyHandlerCompiler::DiscardVectorAndSlot() { 127 void PropertyHandlerCompiler::DiscardVectorAndSlot() {
122 MacroAssembler* masm = this->masm(); 128 MacroAssembler* masm = this->masm();
123 // Remove vector and slot. 129 // Remove vector and slot.
124 __ addi(sp, sp, Operand(2 * kPointerSize)); 130 __ addi(sp, sp, Operand(2 * kPointerSize));
125 } 131 }
126 132
133 void PropertyHandlerCompiler::PushReturnAddress(Register tmp) { UNREACHABLE(); }
134
135 void PropertyHandlerCompiler::PopReturnAddress(Register tmp) { UNREACHABLE(); }
127 136
128 void PropertyHandlerCompiler::GenerateDictionaryNegativeLookup( 137 void PropertyHandlerCompiler::GenerateDictionaryNegativeLookup(
129 MacroAssembler* masm, Label* miss_label, Register receiver, 138 MacroAssembler* masm, Label* miss_label, Register receiver,
130 Handle<Name> name, Register scratch0, Register scratch1) { 139 Handle<Name> name, Register scratch0, Register scratch1) {
131 DCHECK(name->IsUniqueName()); 140 DCHECK(name->IsUniqueName());
132 DCHECK(!receiver.is(scratch0)); 141 DCHECK(!receiver.is(scratch0));
133 Counters* counters = masm->isolate()->counters(); 142 Counters* counters = masm->isolate()->counters();
134 __ IncrementCounter(counters->negative_lookups(), 1, scratch0, scratch1); 143 __ IncrementCounter(counters->negative_lookups(), 1, scratch0, scratch1);
135 __ IncrementCounter(counters->negative_lookups_miss(), 1, scratch0, scratch1); 144 __ IncrementCounter(counters->negative_lookups_miss(), 1, scratch0, scratch1);
136 145
(...skipping 217 matching lines...) Expand 10 before | Expand all | Expand 10 after
354 __ mov(this->name(), Operand(name)); 363 __ mov(this->name(), Operand(name));
355 } 364 }
356 } 365 }
357 366
358 367
359 void NamedStoreHandlerCompiler::GenerateRestoreName(Handle<Name> name) { 368 void NamedStoreHandlerCompiler::GenerateRestoreName(Handle<Name> name) {
360 __ mov(this->name(), Operand(name)); 369 __ mov(this->name(), Operand(name));
361 } 370 }
362 371
363 372
364 void NamedStoreHandlerCompiler::RearrangeVectorAndSlot(
365 Register current_map, Register destination_map) {
366 DCHECK(false); // Not implemented.
367 }
368
369
370 void NamedStoreHandlerCompiler::GenerateRestoreMap(Handle<Map> transition, 373 void NamedStoreHandlerCompiler::GenerateRestoreMap(Handle<Map> transition,
371 Register map_reg, 374 Register map_reg,
372 Register scratch, 375 Register scratch,
373 Label* miss) { 376 Label* miss) {
374 Handle<WeakCell> cell = Map::WeakCellForMap(transition); 377 Handle<WeakCell> cell = Map::WeakCellForMap(transition);
375 DCHECK(!map_reg.is(scratch)); 378 DCHECK(!map_reg.is(scratch));
376 __ LoadWeakValue(map_reg, cell, miss); 379 __ LoadWeakValue(map_reg, cell, miss);
377 if (transition->CanBeDeprecated()) { 380 if (transition->CanBeDeprecated()) {
378 __ lwz(scratch, FieldMemOperand(map_reg, Map::kBitField3Offset)); 381 __ lwz(scratch, FieldMemOperand(map_reg, Map::kBitField3Offset));
379 __ DecodeField<Map::Deprecated>(r0, scratch, SetRC); 382 __ DecodeField<Map::Deprecated>(r0, scratch, SetRC);
(...skipping 311 matching lines...) Expand 10 before | Expand all | Expand 10 after
691 // Return the generated code. 694 // Return the generated code.
692 return GetCode(kind(), name); 695 return GetCode(kind(), name);
693 } 696 }
694 697
695 698
696 #undef __ 699 #undef __
697 } // namespace internal 700 } // namespace internal
698 } // namespace v8 701 } // namespace v8
699 702
700 #endif // V8_TARGET_ARCH_ARM 703 #endif // V8_TARGET_ARCH_ARM
OLDNEW
« no previous file with comments | « src/ic/mips64/handler-compiler-mips64.cc ('k') | src/ic/s390/handler-compiler-s390.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698