Revision: 17469
Author: [email protected]
Date: Tue Nov 5 09:40:36 2013 UTC
Log: Removed RelocInfo::target_object_address() and
reconstructed_obj_ptr_.
Depends on https://codereview.chromium.org/46583006/ and has similar
reasoning behind it.
[email protected]
Review URL: https://codereview.chromium.org/50413004
http://code.google.com/p/v8/source/detail?r=17469
Modified:
/branches/bleeding_edge/src/arm/assembler-arm-inl.h
/branches/bleeding_edge/src/assembler.h
/branches/bleeding_edge/src/ia32/assembler-ia32-inl.h
/branches/bleeding_edge/src/mark-compact.cc
/branches/bleeding_edge/src/mips/assembler-mips-inl.h
/branches/bleeding_edge/src/objects.cc
/branches/bleeding_edge/src/serialize.cc
/branches/bleeding_edge/src/x64/assembler-x64-inl.h
=======================================
--- /branches/bleeding_edge/src/arm/assembler-arm-inl.h Tue Nov 5 09:22:35
2013 UTC
+++ /branches/bleeding_edge/src/arm/assembler-arm-inl.h Tue Nov 5 09:40:36
2013 UTC
@@ -135,16 +135,6 @@
return Handle<Object>(reinterpret_cast<Object**>(
Assembler::target_pointer_at(pc_)));
}
-
-
-Object** RelocInfo::target_object_address() {
- // Provide a "natural pointer" to the embedded object,
- // which can be de-referenced during heap iteration.
- ASSERT(IsCodeTarget(rmode_) || rmode_ == EMBEDDED_OBJECT);
- reconstructed_obj_ptr_ =
- reinterpret_cast<Object*>(Assembler::target_pointer_at(pc_));
- return &reconstructed_obj_ptr_;
-}
void RelocInfo::set_target_object(Object* target, WriteBarrierMode mode) {
=======================================
--- /branches/bleeding_edge/src/assembler.h Tue Nov 5 09:22:35 2013 UTC
+++ /branches/bleeding_edge/src/assembler.h Tue Nov 5 09:40:36 2013 UTC
@@ -390,7 +390,6 @@
WriteBarrierMode mode =
UPDATE_WRITE_BARRIER));
INLINE(Object* target_object());
INLINE(Handle<Object> target_object_handle(Assembler* origin));
- INLINE(Object** target_object_address());
INLINE(void set_target_object(Object* target,
WriteBarrierMode mode =
UPDATE_WRITE_BARRIER));
INLINE(Address target_runtime_entry(Assembler* origin));
@@ -486,12 +485,6 @@
double data64_;
};
Code* host_;
- // Code and Embedded Object pointers on some platforms are stored split
- // across two consecutive 32-bit instructions. Heap management
- // routines expect to access these pointers indirectly. The following
- // location provides a place for these pointers to exist naturally
- // when accessed via the Iterator.
- Object* reconstructed_obj_ptr_;
// External-reference pointers are also split across instruction-pairs
// on some platforms, but are accessed via indirect pointers. This
location
// provides a place for that pointer to exist naturally. Its address
=======================================
--- /branches/bleeding_edge/src/ia32/assembler-ia32-inl.h Tue Nov 5
09:22:35 2013 UTC
+++ /branches/bleeding_edge/src/ia32/assembler-ia32-inl.h Tue Nov 5
09:40:36 2013 UTC
@@ -123,12 +123,6 @@
ASSERT(IsCodeTarget(rmode_) || rmode_ == EMBEDDED_OBJECT);
return Memory::Object_Handle_at(pc_);
}
-
-
-Object** RelocInfo::target_object_address() {
- ASSERT(IsCodeTarget(rmode_) || rmode_ == EMBEDDED_OBJECT);
- return &Memory::Object_at(pc_);
-}
void RelocInfo::set_target_object(Object* target, WriteBarrierMode mode) {
=======================================
--- /branches/bleeding_edge/src/mark-compact.cc Thu Oct 24 10:50:35 2013 UTC
+++ /branches/bleeding_edge/src/mark-compact.cc Tue Nov 5 09:40:36 2013 UTC
@@ -93,7 +93,8 @@
ASSERT(rinfo->rmode() == RelocInfo::EMBEDDED_OBJECT);
if (!Code::IsWeakEmbeddedObject(rinfo->host()->kind(),
rinfo->target_object())) {
- VisitPointer(rinfo->target_object_address());
+ Object* p = rinfo->target_object();
+ VisitPointer(&p);
}
}
=======================================
--- /branches/bleeding_edge/src/mips/assembler-mips-inl.h Tue Nov 5
09:22:35 2013 UTC
+++ /branches/bleeding_edge/src/mips/assembler-mips-inl.h Tue Nov 5
09:40:36 2013 UTC
@@ -188,16 +188,6 @@
return Handle<Object>(reinterpret_cast<Object**>(
Assembler::target_address_at(pc_)));
}
-
-
-Object** RelocInfo::target_object_address() {
- // Provide a "natural pointer" to the embedded object,
- // which can be de-referenced during heap iteration.
- ASSERT(IsCodeTarget(rmode_) || rmode_ == EMBEDDED_OBJECT);
- reconstructed_obj_ptr_ =
- reinterpret_cast<Object*>(Assembler::target_address_at(pc_));
- return &reconstructed_obj_ptr_;
-}
void RelocInfo::set_target_object(Object* target, WriteBarrierMode mode) {
=======================================
--- /branches/bleeding_edge/src/objects.cc Tue Nov 5 09:22:35 2013 UTC
+++ /branches/bleeding_edge/src/objects.cc Tue Nov 5 09:40:36 2013 UTC
@@ -10317,7 +10317,8 @@
void ObjectVisitor::VisitEmbeddedPointer(RelocInfo* rinfo) {
ASSERT(rinfo->rmode() == RelocInfo::EMBEDDED_OBJECT);
- VisitPointer(rinfo->target_object_address());
+ Object* p = rinfo->target_object();
+ VisitPointer(&p);
}
=======================================
--- /branches/bleeding_edge/src/serialize.cc Tue Nov 5 09:22:35 2013 UTC
+++ /branches/bleeding_edge/src/serialize.cc Tue Nov 5 09:40:36 2013 UTC
@@ -1668,12 +1668,12 @@
void Serializer::ObjectSerializer::VisitEmbeddedPointer(RelocInfo* rinfo) {
- Object** current = rinfo->target_object_address();
+ Object* current = rinfo->target_object();
int skip = OutputRawData(rinfo->target_address_address(),
kCanReturnSkipInsteadOfSkipping);
HowToCode representation = rinfo->IsCodedSpecially() ? kFromCode :
kPlain;
- serializer_->SerializeObject(*current, representation, kStartOfObject,
skip);
+ serializer_->SerializeObject(current, representation, kStartOfObject,
skip);
bytes_processed_so_far_ += rinfo->target_address_size();
}
=======================================
--- /branches/bleeding_edge/src/x64/assembler-x64-inl.h Tue Nov 5 09:22:35
2013 UTC
+++ /branches/bleeding_edge/src/x64/assembler-x64-inl.h Tue Nov 5 09:40:36
2013 UTC
@@ -301,12 +301,6 @@
return origin->code_target_object_handle_at(pc_);
}
}
-
-
-Object** RelocInfo::target_object_address() {
- ASSERT(IsCodeTarget(rmode_) || rmode_ == EMBEDDED_OBJECT);
- return reinterpret_cast<Object**>(pc_);
-}
Address RelocInfo::target_reference() {
--
--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev
---
You received this message because you are subscribed to the Google Groups "v8-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/groups/opt_out.