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.

Reply via email to