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