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) { |