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

Side by Side Diff: src/s390/codegen-s390.cc

Issue 1848003002: s390: Remove usages of Heap::NewSpaceStart and its external reference (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Add kNear Created 4 years, 8 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/crankshaft/s390/lithium-s390.cc ('k') | src/s390/macro-assembler-s390.h » ('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 #include "src/s390/codegen-s390.h" 5 #include "src/s390/codegen-s390.h"
6 6
7 #if V8_TARGET_ARCH_S390 7 #if V8_TARGET_ARCH_S390
8 8
9 #include "src/codegen.h" 9 #include "src/codegen.h"
10 #include "src/macro-assembler.h" 10 #include "src/macro-assembler.h"
(...skipping 105 matching lines...) Expand 10 before | Expand all | Expand 10 after
116 116
117 void ElementsTransitionGenerator::GenerateMapChangeElementsTransition( 117 void ElementsTransitionGenerator::GenerateMapChangeElementsTransition(
118 MacroAssembler* masm, Register receiver, Register key, Register value, 118 MacroAssembler* masm, Register receiver, Register key, Register value,
119 Register target_map, AllocationSiteMode mode, 119 Register target_map, AllocationSiteMode mode,
120 Label* allocation_memento_found) { 120 Label* allocation_memento_found) {
121 Register scratch_elements = r6; 121 Register scratch_elements = r6;
122 DCHECK(!AreAliased(receiver, key, value, target_map, scratch_elements)); 122 DCHECK(!AreAliased(receiver, key, value, target_map, scratch_elements));
123 123
124 if (mode == TRACK_ALLOCATION_SITE) { 124 if (mode == TRACK_ALLOCATION_SITE) {
125 DCHECK(allocation_memento_found != NULL); 125 DCHECK(allocation_memento_found != NULL);
126 __ JumpIfJSArrayHasAllocationMemento(receiver, scratch_elements, 126 __ JumpIfJSArrayHasAllocationMemento(receiver, scratch_elements, r1,
127 allocation_memento_found); 127 allocation_memento_found);
128 } 128 }
129 129
130 // Set transitioned map. 130 // Set transitioned map.
131 __ StoreP(target_map, FieldMemOperand(receiver, HeapObject::kMapOffset)); 131 __ StoreP(target_map, FieldMemOperand(receiver, HeapObject::kMapOffset));
132 __ RecordWriteField(receiver, HeapObject::kMapOffset, target_map, r1, 132 __ RecordWriteField(receiver, HeapObject::kMapOffset, target_map, r1,
133 kLRHasNotBeenSaved, kDontSaveFPRegs, EMIT_REMEMBERED_SET, 133 kLRHasNotBeenSaved, kDontSaveFPRegs, EMIT_REMEMBERED_SET,
134 OMIT_SMI_CHECK); 134 OMIT_SMI_CHECK);
135 } 135 }
136 136
137 void ElementsTransitionGenerator::GenerateSmiToDouble( 137 void ElementsTransitionGenerator::GenerateSmiToDouble(
138 MacroAssembler* masm, Register receiver, Register key, Register value, 138 MacroAssembler* masm, Register receiver, Register key, Register value,
139 Register target_map, AllocationSiteMode mode, Label* fail) { 139 Register target_map, AllocationSiteMode mode, Label* fail) {
140 // lr contains the return address 140 // lr contains the return address
141 Label loop, entry, convert_hole, gc_required, only_change_map, done; 141 Label loop, entry, convert_hole, gc_required, only_change_map, done;
142 Register elements = r6; 142 Register elements = r6;
143 Register length = r7; 143 Register length = r7;
144 Register array = r8; 144 Register array = r8;
145 Register array_end = array; 145 Register array_end = array;
146 146
147 // target_map parameter can be clobbered. 147 // target_map parameter can be clobbered.
148 Register scratch1 = target_map; 148 Register scratch1 = target_map;
149 Register scratch2 = r1; 149 Register scratch2 = r1;
150 150
151 // Verify input registers don't conflict with locals. 151 // Verify input registers don't conflict with locals.
152 DCHECK(!AreAliased(receiver, key, value, target_map, elements, length, array, 152 DCHECK(!AreAliased(receiver, key, value, target_map, elements, length, array,
153 scratch2)); 153 scratch2));
154 154
155 if (mode == TRACK_ALLOCATION_SITE) { 155 if (mode == TRACK_ALLOCATION_SITE) {
156 __ JumpIfJSArrayHasAllocationMemento(receiver, elements, fail); 156 __ JumpIfJSArrayHasAllocationMemento(receiver, elements, scratch2, fail);
157 } 157 }
158 158
159 // Check for empty arrays, which only require a map transition and no changes 159 // Check for empty arrays, which only require a map transition and no changes
160 // to the backing store. 160 // to the backing store.
161 __ LoadP(elements, FieldMemOperand(receiver, JSObject::kElementsOffset)); 161 __ LoadP(elements, FieldMemOperand(receiver, JSObject::kElementsOffset));
162 __ CompareRoot(elements, Heap::kEmptyFixedArrayRootIndex); 162 __ CompareRoot(elements, Heap::kEmptyFixedArrayRootIndex);
163 __ beq(&only_change_map, Label::kNear); 163 __ beq(&only_change_map, Label::kNear);
164 164
165 // Preserve lr and use r14 as a temporary register. 165 // Preserve lr and use r14 as a temporary register.
166 __ push(r14); 166 __ push(r14);
(...skipping 104 matching lines...) Expand 10 before | Expand all | Expand 10 after
271 Register length = r7; 271 Register length = r7;
272 Register scratch = r1; 272 Register scratch = r1;
273 Register scratch3 = r9; 273 Register scratch3 = r9;
274 Register hole_value = r9; 274 Register hole_value = r9;
275 275
276 // Verify input registers don't conflict with locals. 276 // Verify input registers don't conflict with locals.
277 DCHECK(!AreAliased(receiver, key, value, target_map, elements, array, length, 277 DCHECK(!AreAliased(receiver, key, value, target_map, elements, array, length,
278 scratch)); 278 scratch));
279 279
280 if (mode == TRACK_ALLOCATION_SITE) { 280 if (mode == TRACK_ALLOCATION_SITE) {
281 __ JumpIfJSArrayHasAllocationMemento(receiver, elements, fail); 281 __ JumpIfJSArrayHasAllocationMemento(receiver, elements, scratch3, fail);
282 } 282 }
283 283
284 // Check for empty arrays, which only require a map transition and no changes 284 // Check for empty arrays, which only require a map transition and no changes
285 // to the backing store. 285 // to the backing store.
286 __ LoadP(elements, FieldMemOperand(receiver, JSObject::kElementsOffset)); 286 __ LoadP(elements, FieldMemOperand(receiver, JSObject::kElementsOffset));
287 __ CompareRoot(elements, Heap::kEmptyFixedArrayRootIndex); 287 __ CompareRoot(elements, Heap::kEmptyFixedArrayRootIndex);
288 __ beq(&only_change_map); 288 __ beq(&only_change_map);
289 289
290 __ Push(target_map, receiver, key, value); 290 __ Push(target_map, receiver, key, value);
291 __ LoadP(length, FieldMemOperand(elements, FixedArray::kLengthOffset)); 291 __ LoadP(length, FieldMemOperand(elements, FixedArray::kLengthOffset));
(...skipping 374 matching lines...) Expand 10 before | Expand all | Expand 10 after
666 // (kNoCodeAgeSequenceLength - kCodeAgingSequenceLength) bytes. 666 // (kNoCodeAgeSequenceLength - kCodeAgingSequenceLength) bytes.
667 patcher.masm()->nop(); // 2-byte nops(). 667 patcher.masm()->nop(); // 2-byte nops().
668 } 668 }
669 } 669 }
670 } 670 }
671 671
672 } // namespace internal 672 } // namespace internal
673 } // namespace v8 673 } // namespace v8
674 674
675 #endif // V8_TARGET_ARCH_S390 675 #endif // V8_TARGET_ARCH_S390
OLDNEW
« no previous file with comments | « src/crankshaft/s390/lithium-s390.cc ('k') | src/s390/macro-assembler-s390.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698