Revision: 6136
Author: whe...@chromium.org
Date: Mon Jan  3 06:59:12 2011
Log: Remove RecordWriteStub from X64 and ARM platforms.
Review URL: http://codereview.chromium.org/5986014
http://code.google.com/p/v8/source/detail?r=6136

Modified:
 /branches/bleeding_edge/src/arm/code-stubs-arm.cc
 /branches/bleeding_edge/src/arm/code-stubs-arm.h
 /branches/bleeding_edge/src/arm/codegen-arm.cc
 /branches/bleeding_edge/src/x64/code-stubs-x64.h
 /branches/bleeding_edge/src/x64/codegen-x64.cc
 /branches/bleeding_edge/src/x64/stub-cache-x64.cc

=======================================
--- /branches/bleeding_edge/src/arm/code-stubs-arm.cc Thu Dec 23 08:33:30 2010 +++ /branches/bleeding_edge/src/arm/code-stubs-arm.cc Mon Jan 3 06:59:12 2011
@@ -915,13 +915,6 @@
// Handle number to string in the runtime system if not found in the cache.
   __ TailCallRuntime(Runtime::kNumberToStringSkipCache, 1, 1);
 }
-
-
-void RecordWriteStub::Generate(MacroAssembler* masm) {
-  __ add(offset_, object_, Operand(offset_));
-  __ RecordWriteHelper(object_, offset_, scratch_);
-  __ Ret();
-}


 // On entry lhs_ and rhs_ are the values to be compared.
=======================================
--- /branches/bleeding_edge/src/arm/code-stubs-arm.h Tue Dec 7 03:31:57 2010 +++ /branches/bleeding_edge/src/arm/code-stubs-arm.h Mon Jan 3 06:59:12 2011
@@ -437,43 +437,6 @@
 };


-class RecordWriteStub : public CodeStub {
- public:
-  RecordWriteStub(Register object, Register offset, Register scratch)
-      : object_(object), offset_(offset), scratch_(scratch) { }
-
-  void Generate(MacroAssembler* masm);
-
- private:
-  Register object_;
-  Register offset_;
-  Register scratch_;
-
-  // Minor key encoding in 12 bits. 4 bits for each of the three
-  // registers (object, offset and scratch) OOOOAAAASSSS.
-  class ScratchBits: public BitField<uint32_t, 0, 4> {};
-  class OffsetBits: public BitField<uint32_t, 4, 4> {};
-  class ObjectBits: public BitField<uint32_t, 8, 4> {};
-
-  Major MajorKey() { return RecordWrite; }
-
-  int MinorKey() {
-    // Encode the registers.
-    return ObjectBits::encode(object_.code()) |
-           OffsetBits::encode(offset_.code()) |
-           ScratchBits::encode(scratch_.code());
-  }
-
-#ifdef DEBUG
-  void Print() {
-    PrintF("RecordWriteStub (object reg %d), (offset reg %d),"
-           " (scratch reg %d)\n",
-           object_.code(), offset_.code(), scratch_.code());
-  }
-#endif
-};
-
-
 // Enter C code from generated RegExp code in a way that allows
 // the C code to fix the return address in case of a GC.
 // Currently only needed on ARM.
=======================================
--- /branches/bleeding_edge/src/arm/codegen-arm.cc      Thu Dec 16 00:58:42 2010
+++ /branches/bleeding_edge/src/arm/codegen-arm.cc      Mon Jan  3 06:59:12 2011
@@ -5618,12 +5618,10 @@
   // (or them and test against Smi mask.)

   __ mov(tmp2, tmp1);
-  RecordWriteStub recordWrite1(tmp1, index1, tmp3);
-  __ CallStub(&recordWrite1);
-
-  RecordWriteStub recordWrite2(tmp2, index2, tmp3);
-  __ CallStub(&recordWrite2);
-
+  __ add(index1, index1, tmp1);
+  __ add(index2, index2, tmp1);
+  __ RecordWriteHelper(tmp1, index1, tmp3);
+  __ RecordWriteHelper(tmp2, index2, tmp3);
   __ bind(&done);

   deferred->BindExit();
=======================================
--- /branches/bleeding_edge/src/x64/code-stubs-x64.h Tue Dec 7 03:31:57 2010 +++ /branches/bleeding_edge/src/x64/code-stubs-x64.h Mon Jan 3 06:59:12 2011
@@ -87,7 +87,7 @@
     ASSERT(OpBits::is_valid(Token::NUM_TOKENS));
   }

-  GenericBinaryOpStub(int key, BinaryOpIC::TypeInfo type_info)
+  GenericBinaryOpStub(int key, BinaryOpIC::TypeInfo runtime_operands_type)
       : op_(OpBits::decode(key)),
         mode_(ModeBits::decode(key)),
         flags_(FlagBits::decode(key)),
@@ -95,7 +95,7 @@
         args_reversed_(ArgsReversedBits::decode(key)),
         static_operands_type_(TypeInfo::ExpandedRepresentation(
             StaticTypeInfoBits::decode(key))),
-        runtime_operands_type_(type_info),
+        runtime_operands_type_(runtime_operands_type),
         name_(NULL) {
   }

@@ -348,42 +348,6 @@
 };


-class RecordWriteStub : public CodeStub {
- public:
-  RecordWriteStub(Register object, Register addr, Register scratch)
-      : object_(object), addr_(addr), scratch_(scratch) { }
-
-  void Generate(MacroAssembler* masm);
-
- private:
-  Register object_;
-  Register addr_;
-  Register scratch_;
-
-#ifdef DEBUG
-  void Print() {
- PrintF("RecordWriteStub (object reg %d), (addr reg %d), (scratch reg %d)\n",
-           object_.code(), addr_.code(), scratch_.code());
-  }
-#endif
-
-  // Minor key encoding in 12 bits. 4 bits for each of the three
-  // registers (object, address and scratch) OOOOAAAASSSS.
-  class ScratchBits : public BitField<uint32_t, 0, 4> {};
-  class AddressBits : public BitField<uint32_t, 4, 4> {};
-  class ObjectBits : public BitField<uint32_t, 8, 4> {};
-
-  Major MajorKey() { return RecordWrite; }
-
-  int MinorKey() {
-    // Encode the registers.
-    return ObjectBits::encode(object_.code()) |
-           AddressBits::encode(addr_.code()) |
-           ScratchBits::encode(scratch_.code());
-  }
-};
-
-
 } }  // namespace v8::internal

 #endif  // V8_X64_CODE_STUBS_X64_H_
=======================================
--- /branches/bleeding_edge/src/x64/codegen-x64.cc      Mon Dec 20 01:38:56 2010
+++ /branches/bleeding_edge/src/x64/codegen-x64.cc      Mon Jan  3 06:59:12 2011
@@ -6813,12 +6813,8 @@
   // (or them and test against Smi mask.)

   __ movq(tmp2.reg(), tmp1.reg());
-  RecordWriteStub recordWrite1(tmp2.reg(), index1.reg(), object.reg());
-  __ CallStub(&recordWrite1);
-
-  RecordWriteStub recordWrite2(tmp1.reg(), index2.reg(), object.reg());
-  __ CallStub(&recordWrite2);
-
+  __ RecordWriteHelper(tmp1.reg(), index1.reg(), object.reg());
+  __ RecordWriteHelper(tmp2.reg(), index2.reg(), object.reg());
   __ bind(&done);

   deferred->BindExit();
@@ -8812,11 +8808,6 @@

 #undef __

-void RecordWriteStub::Generate(MacroAssembler* masm) {
-  masm->RecordWriteHelper(object_, addr_, scratch_);
-  masm->ret(0);
-}
-
 } }  // namespace v8::internal

 #endif  // V8_TARGET_ARCH_X64
=======================================
--- /branches/bleeding_edge/src/x64/stub-cache-x64.cc Tue Dec 14 10:53:48 2010 +++ /branches/bleeding_edge/src/x64/stub-cache-x64.cc Mon Jan 3 06:59:12 2011
@@ -1248,8 +1248,7 @@

       __ InNewSpace(rbx, rcx, equal, &exit);

-      RecordWriteStub stub(rbx, rdx, rcx);
-      __ CallStub(&stub);
+      __ RecordWriteHelper(rbx, rdx, rcx);

       __ ret((argc + 1) * kPointerSize);

--
v8-dev mailing list
v8-dev@googlegroups.com
http://groups.google.com/group/v8-dev

Reply via email to