changeset 7803:d853290566af

8071654: disassembler handles embedded OOPs not uniformly Summary: Remove (currently dead) code that prints oops within disassembled instructions. Reviewed-by: kvn, thartmann, roland
author zmajo
date Thu, 29 Jan 2015 19:16:47 +0100
parents ea802a4750aa
children 54365b7cd56e 778fd0840124 7ed418950e15
files src/share/vm/code/nmethod.cpp src/share/vm/code/nmethod.hpp src/share/vm/compiler/disassembler.cpp
diffstat 3 files changed, 0 insertions(+), 31 deletions(-) [+]
line wrap: on
line diff
--- a/src/share/vm/code/nmethod.cpp	Thu Jan 29 10:26:02 2015 -0800
+++ b/src/share/vm/code/nmethod.cpp	Thu Jan 29 19:16:47 2015 +0100
@@ -2310,17 +2310,6 @@
 #endif // !SHARK
 }
 
-
-oop nmethod::embeddedOop_at(u_char* p) {
-  RelocIterator iter(this, p, p + 1);
-  while (iter.next())
-    if (iter.type() == relocInfo::oop_type) {
-      return iter.oop_reloc()->oop_value();
-    }
-  return NULL;
-}
-
-
 inline bool includes(void* p, void* from, void* to) {
   return from <= p && p < to;
 }
--- a/src/share/vm/code/nmethod.hpp	Thu Jan 29 10:26:02 2015 -0800
+++ b/src/share/vm/code/nmethod.hpp	Thu Jan 29 19:16:47 2015 +0100
@@ -730,11 +730,6 @@
   int  compile_id() const                         { return _compile_id; }
   const char* compile_kind() const;
 
-  // For debugging
-  // CompiledIC*    IC_at(char* p) const;
-  // PrimitiveIC*   primitiveIC_at(char* p) const;
-  oop embeddedOop_at(address p);
-
   // tells if any of this method's dependencies have been invalidated
   // (this is expensive!)
   static void check_all_dependencies(DepChange& changes);
--- a/src/share/vm/compiler/disassembler.cpp	Thu Jan 29 10:26:02 2015 -0800
+++ b/src/share/vm/compiler/disassembler.cpp	Thu Jan 29 19:16:47 2015 +0100
@@ -345,21 +345,6 @@
       if (WizardMode) st->print(" " INTPTR_FORMAT, (intptr_t)adr);
       return;
     }
-
-    oop obj;
-    if (_nm != NULL
-        && (obj = _nm->embeddedOop_at(cur_insn())) != NULL
-        && (address) obj == adr
-        && Universe::heap()->is_in(obj)
-        && Universe::heap()->is_in(obj->klass())) {
-      julong c = st->count();
-      obj->print_value_on(st);
-      if (st->count() == c) {
-        // No output.  (Can happen in product builds.)
-        st->print("(a %s)", obj->klass()->external_name());
-      }
-      return;
-    }
   }
 
   // Fall through to a simple (hexadecimal) numeral.