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

Side by Side Diff: src/mips/macro-assembler-mips.cc

Issue 1027463002: Revert "Merge old data and pointer space." (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Created 5 years, 9 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/mips/macro-assembler-mips.h ('k') | src/mips64/lithium-codegen-mips64.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 2012 the V8 project authors. All rights reserved. 1 // Copyright 2012 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 <limits.h> // For LONG_MIN, LONG_MAX. 5 #include <limits.h> // For LONG_MIN, LONG_MAX.
6 6
7 #include "src/v8.h" 7 #include "src/v8.h"
8 8
9 #if V8_TARGET_ARCH_MIPS 9 #if V8_TARGET_ARCH_MIPS
10 10
(...skipping 3328 matching lines...) Expand 10 before | Expand all | Expand 10 after
3339 lw(t9, MemOperand(topaddr)); 3339 lw(t9, MemOperand(topaddr));
3340 Check(eq, kUnexpectedAllocationTop, result, Operand(t9)); 3340 Check(eq, kUnexpectedAllocationTop, result, Operand(t9));
3341 } 3341 }
3342 // Load allocation limit into t9. Result already contains allocation top. 3342 // Load allocation limit into t9. Result already contains allocation top.
3343 lw(t9, MemOperand(topaddr, limit - top)); 3343 lw(t9, MemOperand(topaddr, limit - top));
3344 } 3344 }
3345 3345
3346 if ((flags & DOUBLE_ALIGNMENT) != 0) { 3346 if ((flags & DOUBLE_ALIGNMENT) != 0) {
3347 // Align the next allocation. Storing the filler map without checking top is 3347 // Align the next allocation. Storing the filler map without checking top is
3348 // safe in new-space because the limit of the heap is aligned there. 3348 // safe in new-space because the limit of the heap is aligned there.
3349 DCHECK((flags & PRETENURE_OLD_POINTER_SPACE) == 0);
3349 DCHECK(kPointerAlignment * 2 == kDoubleAlignment); 3350 DCHECK(kPointerAlignment * 2 == kDoubleAlignment);
3350 And(scratch2, result, Operand(kDoubleAlignmentMask)); 3351 And(scratch2, result, Operand(kDoubleAlignmentMask));
3351 Label aligned; 3352 Label aligned;
3352 Branch(&aligned, eq, scratch2, Operand(zero_reg)); 3353 Branch(&aligned, eq, scratch2, Operand(zero_reg));
3353 if ((flags & PRETENURE) != 0) { 3354 if ((flags & PRETENURE_OLD_DATA_SPACE) != 0) {
3354 Branch(gc_required, Ugreater_equal, result, Operand(t9)); 3355 Branch(gc_required, Ugreater_equal, result, Operand(t9));
3355 } 3356 }
3356 li(scratch2, Operand(isolate()->factory()->one_pointer_filler_map())); 3357 li(scratch2, Operand(isolate()->factory()->one_pointer_filler_map()));
3357 sw(scratch2, MemOperand(result)); 3358 sw(scratch2, MemOperand(result));
3358 Addu(result, result, Operand(kDoubleSize / 2)); 3359 Addu(result, result, Operand(kDoubleSize / 2));
3359 bind(&aligned); 3360 bind(&aligned);
3360 } 3361 }
3361 3362
3362 // Calculate new top and bail out if new space is exhausted. Use result 3363 // Calculate new top and bail out if new space is exhausted. Use result
3363 // to calculate the new top. 3364 // to calculate the new top.
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after
3425 lw(t9, MemOperand(topaddr)); 3426 lw(t9, MemOperand(topaddr));
3426 Check(eq, kUnexpectedAllocationTop, result, Operand(t9)); 3427 Check(eq, kUnexpectedAllocationTop, result, Operand(t9));
3427 } 3428 }
3428 // Load allocation limit into t9. Result already contains allocation top. 3429 // Load allocation limit into t9. Result already contains allocation top.
3429 lw(t9, MemOperand(topaddr, limit - top)); 3430 lw(t9, MemOperand(topaddr, limit - top));
3430 } 3431 }
3431 3432
3432 if ((flags & DOUBLE_ALIGNMENT) != 0) { 3433 if ((flags & DOUBLE_ALIGNMENT) != 0) {
3433 // Align the next allocation. Storing the filler map without checking top is 3434 // Align the next allocation. Storing the filler map without checking top is
3434 // safe in new-space because the limit of the heap is aligned there. 3435 // safe in new-space because the limit of the heap is aligned there.
3436 DCHECK((flags & PRETENURE_OLD_POINTER_SPACE) == 0);
3435 DCHECK(kPointerAlignment * 2 == kDoubleAlignment); 3437 DCHECK(kPointerAlignment * 2 == kDoubleAlignment);
3436 And(scratch2, result, Operand(kDoubleAlignmentMask)); 3438 And(scratch2, result, Operand(kDoubleAlignmentMask));
3437 Label aligned; 3439 Label aligned;
3438 Branch(&aligned, eq, scratch2, Operand(zero_reg)); 3440 Branch(&aligned, eq, scratch2, Operand(zero_reg));
3439 if ((flags & PRETENURE) != 0) { 3441 if ((flags & PRETENURE_OLD_DATA_SPACE) != 0) {
3440 Branch(gc_required, Ugreater_equal, result, Operand(t9)); 3442 Branch(gc_required, Ugreater_equal, result, Operand(t9));
3441 } 3443 }
3442 li(scratch2, Operand(isolate()->factory()->one_pointer_filler_map())); 3444 li(scratch2, Operand(isolate()->factory()->one_pointer_filler_map()));
3443 sw(scratch2, MemOperand(result)); 3445 sw(scratch2, MemOperand(result));
3444 Addu(result, result, Operand(kDoubleSize / 2)); 3446 Addu(result, result, Operand(kDoubleSize / 2));
3445 bind(&aligned); 3447 bind(&aligned);
3446 } 3448 }
3447 3449
3448 // Calculate new top and bail out if new space is exhausted. Use result 3450 // Calculate new top and bail out if new space is exhausted. Use result
3449 // to calculate the new top. Object size may be in words so a shift is 3451 // to calculate the new top. Object size may be in words so a shift is
(...skipping 2631 matching lines...) Expand 10 before | Expand all | Expand 10 after
6081 } 6083 }
6082 if (mag.shift > 0) sra(result, result, mag.shift); 6084 if (mag.shift > 0) sra(result, result, mag.shift);
6083 srl(at, dividend, 31); 6085 srl(at, dividend, 31);
6084 Addu(result, result, Operand(at)); 6086 Addu(result, result, Operand(at));
6085 } 6087 }
6086 6088
6087 6089
6088 } } // namespace v8::internal 6090 } } // namespace v8::internal
6089 6091
6090 #endif // V8_TARGET_ARCH_MIPS 6092 #endif // V8_TARGET_ARCH_MIPS
OLDNEW
« no previous file with comments | « src/mips/macro-assembler-mips.h ('k') | src/mips64/lithium-codegen-mips64.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698