| Index: src/mips64/macro-assembler-mips64.cc
|
| diff --git a/src/mips64/macro-assembler-mips64.cc b/src/mips64/macro-assembler-mips64.cc
|
| index 3185285a461e500b895967a4a0de59901e7b0f3c..31ab175edcb3237bd07f8018c90648f9b5ae3a95 100644
|
| --- a/src/mips64/macro-assembler-mips64.cc
|
| +++ b/src/mips64/macro-assembler-mips64.cc
|
| @@ -4706,90 +4706,6 @@ void MacroAssembler::AllocateJSValue(Register result, Register constructor,
|
| STATIC_ASSERT(JSValue::kSize == 4 * kPointerSize);
|
| }
|
|
|
| -
|
| -void MacroAssembler::CopyBytes(Register src,
|
| - Register dst,
|
| - Register length,
|
| - Register scratch) {
|
| - Label align_loop_1, word_loop, byte_loop, byte_loop_1, done;
|
| -
|
| - // Align src before copying in word size chunks.
|
| - Branch(&byte_loop, le, length, Operand(kPointerSize));
|
| - bind(&align_loop_1);
|
| - And(scratch, src, kPointerSize - 1);
|
| - Branch(&word_loop, eq, scratch, Operand(zero_reg));
|
| - lbu(scratch, MemOperand(src));
|
| - Daddu(src, src, 1);
|
| - sb(scratch, MemOperand(dst));
|
| - Daddu(dst, dst, 1);
|
| - Dsubu(length, length, Operand(1));
|
| - Branch(&align_loop_1, ne, length, Operand(zero_reg));
|
| -
|
| - // Copy bytes in word size chunks.
|
| - bind(&word_loop);
|
| - if (emit_debug_code()) {
|
| - And(scratch, src, kPointerSize - 1);
|
| - Assert(eq, kExpectingAlignmentForCopyBytes,
|
| - scratch, Operand(zero_reg));
|
| - }
|
| - Branch(&byte_loop, lt, length, Operand(kPointerSize));
|
| - ld(scratch, MemOperand(src));
|
| - Daddu(src, src, kPointerSize);
|
| -
|
| - // TODO(kalmard) check if this can be optimized to use sw in most cases.
|
| - // Can't use unaligned access - copy byte by byte.
|
| - if (kArchEndian == kLittle) {
|
| - sb(scratch, MemOperand(dst, 0));
|
| - dsrl(scratch, scratch, 8);
|
| - sb(scratch, MemOperand(dst, 1));
|
| - dsrl(scratch, scratch, 8);
|
| - sb(scratch, MemOperand(dst, 2));
|
| - dsrl(scratch, scratch, 8);
|
| - sb(scratch, MemOperand(dst, 3));
|
| - dsrl(scratch, scratch, 8);
|
| - sb(scratch, MemOperand(dst, 4));
|
| - dsrl(scratch, scratch, 8);
|
| - sb(scratch, MemOperand(dst, 5));
|
| - dsrl(scratch, scratch, 8);
|
| - sb(scratch, MemOperand(dst, 6));
|
| - dsrl(scratch, scratch, 8);
|
| - sb(scratch, MemOperand(dst, 7));
|
| - } else {
|
| - sb(scratch, MemOperand(dst, 7));
|
| - dsrl(scratch, scratch, 8);
|
| - sb(scratch, MemOperand(dst, 6));
|
| - dsrl(scratch, scratch, 8);
|
| - sb(scratch, MemOperand(dst, 5));
|
| - dsrl(scratch, scratch, 8);
|
| - sb(scratch, MemOperand(dst, 4));
|
| - dsrl(scratch, scratch, 8);
|
| - sb(scratch, MemOperand(dst, 3));
|
| - dsrl(scratch, scratch, 8);
|
| - sb(scratch, MemOperand(dst, 2));
|
| - dsrl(scratch, scratch, 8);
|
| - sb(scratch, MemOperand(dst, 1));
|
| - dsrl(scratch, scratch, 8);
|
| - sb(scratch, MemOperand(dst, 0));
|
| - }
|
| - Daddu(dst, dst, 8);
|
| -
|
| - Dsubu(length, length, Operand(kPointerSize));
|
| - Branch(&word_loop);
|
| -
|
| - // Copy the last bytes if any left.
|
| - bind(&byte_loop);
|
| - Branch(&done, eq, length, Operand(zero_reg));
|
| - bind(&byte_loop_1);
|
| - lbu(scratch, MemOperand(src));
|
| - Daddu(src, src, 1);
|
| - sb(scratch, MemOperand(dst));
|
| - Daddu(dst, dst, 1);
|
| - Dsubu(length, length, Operand(1));
|
| - Branch(&byte_loop_1, ne, length, Operand(zero_reg));
|
| - bind(&done);
|
| -}
|
| -
|
| -
|
| void MacroAssembler::InitializeFieldsWithFiller(Register current_address,
|
| Register end_address,
|
| Register filler) {
|
|
|