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

Side by Side Diff: src/mips64/macro-assembler-mips64.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 unified diff | Download patch
« no previous file with comments | « src/mips64/macro-assembler-mips64.h ('k') | src/ppc/macro-assembler-ppc.h » ('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 #if V8_TARGET_ARCH_MIPS64 7 #if V8_TARGET_ARCH_MIPS64
8 8
9 #include "src/base/division-by-constant.h" 9 #include "src/base/division-by-constant.h"
10 #include "src/bootstrapper.h" 10 #include "src/bootstrapper.h"
(...skipping 4688 matching lines...) Expand 10 before | Expand all | Expand 10 after
4699 // Initialize the JSValue. 4699 // Initialize the JSValue.
4700 LoadGlobalFunctionInitialMap(constructor, scratch1, scratch2); 4700 LoadGlobalFunctionInitialMap(constructor, scratch1, scratch2);
4701 sd(scratch1, FieldMemOperand(result, HeapObject::kMapOffset)); 4701 sd(scratch1, FieldMemOperand(result, HeapObject::kMapOffset));
4702 LoadRoot(scratch1, Heap::kEmptyFixedArrayRootIndex); 4702 LoadRoot(scratch1, Heap::kEmptyFixedArrayRootIndex);
4703 sd(scratch1, FieldMemOperand(result, JSObject::kPropertiesOffset)); 4703 sd(scratch1, FieldMemOperand(result, JSObject::kPropertiesOffset));
4704 sd(scratch1, FieldMemOperand(result, JSObject::kElementsOffset)); 4704 sd(scratch1, FieldMemOperand(result, JSObject::kElementsOffset));
4705 sd(value, FieldMemOperand(result, JSValue::kValueOffset)); 4705 sd(value, FieldMemOperand(result, JSValue::kValueOffset));
4706 STATIC_ASSERT(JSValue::kSize == 4 * kPointerSize); 4706 STATIC_ASSERT(JSValue::kSize == 4 * kPointerSize);
4707 } 4707 }
4708 4708
4709
4710 void MacroAssembler::CopyBytes(Register src,
4711 Register dst,
4712 Register length,
4713 Register scratch) {
4714 Label align_loop_1, word_loop, byte_loop, byte_loop_1, done;
4715
4716 // Align src before copying in word size chunks.
4717 Branch(&byte_loop, le, length, Operand(kPointerSize));
4718 bind(&align_loop_1);
4719 And(scratch, src, kPointerSize - 1);
4720 Branch(&word_loop, eq, scratch, Operand(zero_reg));
4721 lbu(scratch, MemOperand(src));
4722 Daddu(src, src, 1);
4723 sb(scratch, MemOperand(dst));
4724 Daddu(dst, dst, 1);
4725 Dsubu(length, length, Operand(1));
4726 Branch(&align_loop_1, ne, length, Operand(zero_reg));
4727
4728 // Copy bytes in word size chunks.
4729 bind(&word_loop);
4730 if (emit_debug_code()) {
4731 And(scratch, src, kPointerSize - 1);
4732 Assert(eq, kExpectingAlignmentForCopyBytes,
4733 scratch, Operand(zero_reg));
4734 }
4735 Branch(&byte_loop, lt, length, Operand(kPointerSize));
4736 ld(scratch, MemOperand(src));
4737 Daddu(src, src, kPointerSize);
4738
4739 // TODO(kalmard) check if this can be optimized to use sw in most cases.
4740 // Can't use unaligned access - copy byte by byte.
4741 if (kArchEndian == kLittle) {
4742 sb(scratch, MemOperand(dst, 0));
4743 dsrl(scratch, scratch, 8);
4744 sb(scratch, MemOperand(dst, 1));
4745 dsrl(scratch, scratch, 8);
4746 sb(scratch, MemOperand(dst, 2));
4747 dsrl(scratch, scratch, 8);
4748 sb(scratch, MemOperand(dst, 3));
4749 dsrl(scratch, scratch, 8);
4750 sb(scratch, MemOperand(dst, 4));
4751 dsrl(scratch, scratch, 8);
4752 sb(scratch, MemOperand(dst, 5));
4753 dsrl(scratch, scratch, 8);
4754 sb(scratch, MemOperand(dst, 6));
4755 dsrl(scratch, scratch, 8);
4756 sb(scratch, MemOperand(dst, 7));
4757 } else {
4758 sb(scratch, MemOperand(dst, 7));
4759 dsrl(scratch, scratch, 8);
4760 sb(scratch, MemOperand(dst, 6));
4761 dsrl(scratch, scratch, 8);
4762 sb(scratch, MemOperand(dst, 5));
4763 dsrl(scratch, scratch, 8);
4764 sb(scratch, MemOperand(dst, 4));
4765 dsrl(scratch, scratch, 8);
4766 sb(scratch, MemOperand(dst, 3));
4767 dsrl(scratch, scratch, 8);
4768 sb(scratch, MemOperand(dst, 2));
4769 dsrl(scratch, scratch, 8);
4770 sb(scratch, MemOperand(dst, 1));
4771 dsrl(scratch, scratch, 8);
4772 sb(scratch, MemOperand(dst, 0));
4773 }
4774 Daddu(dst, dst, 8);
4775
4776 Dsubu(length, length, Operand(kPointerSize));
4777 Branch(&word_loop);
4778
4779 // Copy the last bytes if any left.
4780 bind(&byte_loop);
4781 Branch(&done, eq, length, Operand(zero_reg));
4782 bind(&byte_loop_1);
4783 lbu(scratch, MemOperand(src));
4784 Daddu(src, src, 1);
4785 sb(scratch, MemOperand(dst));
4786 Daddu(dst, dst, 1);
4787 Dsubu(length, length, Operand(1));
4788 Branch(&byte_loop_1, ne, length, Operand(zero_reg));
4789 bind(&done);
4790 }
4791
4792
4793 void MacroAssembler::InitializeFieldsWithFiller(Register current_address, 4709 void MacroAssembler::InitializeFieldsWithFiller(Register current_address,
4794 Register end_address, 4710 Register end_address,
4795 Register filler) { 4711 Register filler) {
4796 Label loop, entry; 4712 Label loop, entry;
4797 Branch(&entry); 4713 Branch(&entry);
4798 bind(&loop); 4714 bind(&loop);
4799 sd(filler, MemOperand(current_address)); 4715 sd(filler, MemOperand(current_address));
4800 Daddu(current_address, current_address, kPointerSize); 4716 Daddu(current_address, current_address, kPointerSize);
4801 bind(&entry); 4717 bind(&entry);
4802 Branch(&loop, ult, current_address, Operand(end_address)); 4718 Branch(&loop, ult, current_address, Operand(end_address));
(...skipping 2503 matching lines...) Expand 10 before | Expand all | Expand 10 after
7306 if (mag.shift > 0) sra(result, result, mag.shift); 7222 if (mag.shift > 0) sra(result, result, mag.shift);
7307 srl(at, dividend, 31); 7223 srl(at, dividend, 31);
7308 Addu(result, result, Operand(at)); 7224 Addu(result, result, Operand(at));
7309 } 7225 }
7310 7226
7311 7227
7312 } // namespace internal 7228 } // namespace internal
7313 } // namespace v8 7229 } // namespace v8
7314 7230
7315 #endif // V8_TARGET_ARCH_MIPS64 7231 #endif // V8_TARGET_ARCH_MIPS64
OLDNEW
« no previous file with comments | « src/mips64/macro-assembler-mips64.h ('k') | src/ppc/macro-assembler-ppc.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698