Chromium Code Reviews| Index: src/ppc/macro-assembler-ppc.cc |
| diff --git a/src/ppc/macro-assembler-ppc.cc b/src/ppc/macro-assembler-ppc.cc |
| index e11e102dbe2794fedd0c4bf84896c21ca04dd4a3..0bbe14240bc29af9dc941eff110f8877b6537801 100644 |
| --- a/src/ppc/macro-assembler-ppc.cc |
| +++ b/src/ppc/macro-assembler-ppc.cc |
| @@ -1510,14 +1510,14 @@ void MacroAssembler::Allocate(int object_size, Register result, |
| void MacroAssembler::Allocate(Register object_size, Register result, |
| - Register scratch1, Register scratch2, |
| + Register result_end, Register scratch, |
| Label* gc_required, AllocationFlags flags) { |
| if (!FLAG_inline_new) { |
| if (emit_debug_code()) { |
| // Trash the registers to simulate an allocation failure. |
| li(result, Operand(0x7091)); |
| - li(scratch1, Operand(0x7191)); |
| - li(scratch2, Operand(0x7291)); |
| + li(scratch, Operand(0x7191)); |
| + li(result_end, Operand(0x7291)); |
| } |
| b(gc_required); |
| return; |
| @@ -1525,13 +1525,13 @@ void MacroAssembler::Allocate(Register object_size, Register result, |
| // Assert that the register arguments are different and that none of |
| // them are ip. ip is used explicitly in the code generated below. |
| - DCHECK(!result.is(scratch1)); |
| - DCHECK(!result.is(scratch2)); |
| - DCHECK(!scratch1.is(scratch2)); |
| + DCHECK(!result.is(scratch)); |
| + DCHECK(!result.is(result_end)); |
| + DCHECK(!scratch.is(result_end)); |
| DCHECK(!object_size.is(ip)); |
| DCHECK(!result.is(ip)); |
| - DCHECK(!scratch1.is(ip)); |
| - DCHECK(!scratch2.is(ip)); |
| + DCHECK(!scratch.is(ip)); |
| + DCHECK(!result_end.is(ip)); |
| // Check relative positions of allocation top and limit addresses. |
| ExternalReference allocation_top = |
| @@ -1543,7 +1543,7 @@ void MacroAssembler::Allocate(Register object_size, Register result, |
| DCHECK((limit - top) == kPointerSize); |
| // Set up allocation top address. |
| - Register topaddr = scratch1; |
| + Register topaddr = scratch; |
| mov(topaddr, Operand(allocation_top)); |
| // This code stores a temporary value in ip. This is OK, as the code below |
| @@ -1572,15 +1572,15 @@ void MacroAssembler::Allocate(Register object_size, Register result, |
| STATIC_ASSERT(kPointerAlignment == kDoubleAlignment); |
| #else |
| STATIC_ASSERT(kPointerAlignment * 2 == kDoubleAlignment); |
| - andi(scratch2, result, Operand(kDoubleAlignmentMask)); |
| + andi(result_end, result, Operand(kDoubleAlignmentMask)); |
| Label aligned; |
| beq(&aligned, cr0); |
| if ((flags & PRETENURE) != 0) { |
| cmpl(result, ip); |
| bge(gc_required); |
| } |
| - mov(scratch2, Operand(isolate()->factory()->one_pointer_filler_map())); |
| - stw(scratch2, MemOperand(result)); |
| + mov(result_end, Operand(isolate()->factory()->one_pointer_filler_map())); |
| + stw(result_end, MemOperand(result)); |
| addi(result, result, Operand(kDoubleSize / 2)); |
| bind(&aligned); |
| #endif |
| @@ -1591,22 +1591,22 @@ void MacroAssembler::Allocate(Register object_size, Register result, |
| // required to get the number of bytes. |
| sub(r0, ip, result); |
| if ((flags & SIZE_IN_WORDS) != 0) { |
| - ShiftLeftImm(scratch2, object_size, Operand(kPointerSizeLog2)); |
| - cmp(r0, scratch2); |
| + ShiftLeftImm(result_end, object_size, Operand(kPointerSizeLog2)); |
| + cmp(r0, result_end); |
| blt(gc_required); |
| - add(scratch2, result, scratch2); |
| + add(result_end, result, result_end); |
| } else { |
| cmp(r0, object_size); |
| blt(gc_required); |
| - add(scratch2, result, object_size); |
| + add(result_end, result, object_size); |
| } |
| // Update allocation top. result temporarily holds the new top. |
| if (emit_debug_code()) { |
| - andi(r0, scratch2, Operand(kObjectAlignmentMask)); |
| + andi(r0, result_end, Operand(kObjectAlignmentMask)); |
| Check(eq, kUnalignedAllocationInNewSpace, cr0); |
| } |
| - StoreP(scratch2, MemOperand(topaddr)); |
| + StoreP(result_end, MemOperand(topaddr)); |
| // Tag object if requested. |
| if ((flags & TAG_OBJECT) != 0) { |
| @@ -2871,25 +2871,25 @@ void MacroAssembler::CopyBytes(Register src, Register dst, Register length, |
| } |
| -void MacroAssembler::InitializeNFieldsWithFiller(Register start_offset, |
| +void MacroAssembler::InitializeNFieldsWithFiller(Register current_address, |
| Register count, |
| Register filler) { |
| Label loop; |
| mtctr(count); |
| bind(&loop); |
| - StoreP(filler, MemOperand(start_offset)); |
| - addi(start_offset, start_offset, Operand(kPointerSize)); |
| + StoreP(filler, MemOperand(current_address)); |
| + addi(current_address, current_address, Operand(kPointerSize)); |
| bdnz(&loop); |
| } |
| -void MacroAssembler::InitializeFieldsWithFiller(Register start_offset, |
| - Register end_offset, |
| +void MacroAssembler::InitializeFieldsWithFiller(Register current_address, |
| + Register end_address, |
| Register filler) { |
| Label done; |
| - sub(r0, end_offset, start_offset, LeaveOE, SetRC); |
| + sub(r0, end_address, current_address, LeaveOE, SetRC); |
| beq(&done, cr0); |
| ShiftRightImm(r0, r0, Operand(kPointerSizeLog2)); |
| - InitializeNFieldsWithFiller(start_offset, r0, filler); |
|
Igor Sheludko
2015/11/23 07:57:34
Does it make sense to rewrite InitializeFieldsWith
|
| + InitializeNFieldsWithFiller(current_address, r0, filler); |
| bind(&done); |
| } |