| OLD | NEW |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 |
| OLD | NEW |