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

Unified Diff: src/x64/macro-assembler-x64.cc

Issue 2434753003: [cleanup] Delete MacroAssembler::CopyBytes, it is dead code (Closed)
Patch Set: update .golden files Created 4 years, 2 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « src/x64/macro-assembler-x64.h ('k') | src/x87/macro-assembler-x87.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: src/x64/macro-assembler-x64.cc
diff --git a/src/x64/macro-assembler-x64.cc b/src/x64/macro-assembler-x64.cc
index 0a739dacfb0c472ee72de508b5c4552852cc4086..08117b2c218e73d7ff7b53c8bed829cd08cdc6f0 100644
--- a/src/x64/macro-assembler-x64.cc
+++ b/src/x64/macro-assembler-x64.cc
@@ -5174,93 +5174,6 @@ void MacroAssembler::AllocateJSValue(Register result, Register constructor,
STATIC_ASSERT(JSValue::kSize == 4 * kPointerSize);
}
-
-// Copy memory, byte-by-byte, from source to destination. Not optimized for
-// long or aligned copies. The contents of scratch and length are destroyed.
-// Destination is incremented by length, source, length and scratch are
-// clobbered.
-// A simpler loop is faster on small copies, but slower on large ones.
-// The cld() instruction must have been emitted, to set the direction flag(),
-// before calling this function.
-void MacroAssembler::CopyBytes(Register destination,
- Register source,
- Register length,
- int min_length,
- Register scratch) {
- DCHECK(min_length >= 0);
- if (emit_debug_code()) {
- cmpl(length, Immediate(min_length));
- Assert(greater_equal, kInvalidMinLength);
- }
- Label short_loop, len8, len16, len24, done, short_string;
-
- const int kLongStringLimit = 4 * kPointerSize;
- if (min_length <= kLongStringLimit) {
- cmpl(length, Immediate(kPointerSize));
- j(below, &short_string, Label::kNear);
- }
-
- DCHECK(source.is(rsi));
- DCHECK(destination.is(rdi));
- DCHECK(length.is(rcx));
-
- if (min_length <= kLongStringLimit) {
- cmpl(length, Immediate(2 * kPointerSize));
- j(below_equal, &len8, Label::kNear);
- cmpl(length, Immediate(3 * kPointerSize));
- j(below_equal, &len16, Label::kNear);
- cmpl(length, Immediate(4 * kPointerSize));
- j(below_equal, &len24, Label::kNear);
- }
-
- // Because source is 8-byte aligned in our uses of this function,
- // we keep source aligned for the rep movs operation by copying the odd bytes
- // at the end of the ranges.
- movp(scratch, length);
- shrl(length, Immediate(kPointerSizeLog2));
- repmovsp();
- // Move remaining bytes of length.
- andl(scratch, Immediate(kPointerSize - 1));
- movp(length, Operand(source, scratch, times_1, -kPointerSize));
- movp(Operand(destination, scratch, times_1, -kPointerSize), length);
- addp(destination, scratch);
-
- if (min_length <= kLongStringLimit) {
- jmp(&done, Label::kNear);
- bind(&len24);
- movp(scratch, Operand(source, 2 * kPointerSize));
- movp(Operand(destination, 2 * kPointerSize), scratch);
- bind(&len16);
- movp(scratch, Operand(source, kPointerSize));
- movp(Operand(destination, kPointerSize), scratch);
- bind(&len8);
- movp(scratch, Operand(source, 0));
- movp(Operand(destination, 0), scratch);
- // Move remaining bytes of length.
- movp(scratch, Operand(source, length, times_1, -kPointerSize));
- movp(Operand(destination, length, times_1, -kPointerSize), scratch);
- addp(destination, length);
- jmp(&done, Label::kNear);
-
- bind(&short_string);
- if (min_length == 0) {
- testl(length, length);
- j(zero, &done, Label::kNear);
- }
-
- bind(&short_loop);
- movb(scratch, Operand(source, 0));
- movb(Operand(destination, 0), scratch);
- incp(source);
- incp(destination);
- decl(length);
- j(not_zero, &short_loop, Label::kNear);
- }
-
- bind(&done);
-}
-
-
void MacroAssembler::InitializeFieldsWithFiller(Register current_address,
Register end_address,
Register filler) {
« no previous file with comments | « src/x64/macro-assembler-x64.h ('k') | src/x87/macro-assembler-x87.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698