diff src/share/vm/runtime/sharedRuntime.hpp @ 1207:74c848d437ab

6921922: fix for 6911204 breaks tagged stack interpreter Reviewed-by: kvn
author never
date Wed, 03 Feb 2010 12:28:30 -0800
parents cf0685d550f1
children 3cf667df43ef
line wrap: on
line diff
--- a/src/share/vm/runtime/sharedRuntime.hpp	Mon Feb 01 16:49:49 2010 -0800
+++ b/src/share/vm/runtime/sharedRuntime.hpp	Wed Feb 03 12:28:30 2010 -0800
@@ -540,13 +540,30 @@
   address _c2i_entry;
   address _c2i_unverified_entry;
 
+#ifdef ASSERT
+  // Captures code and signature used to generate this adapter when
+  // verifing adapter equivalence.
+  unsigned char* _saved_code;
+  int            _code_length;
+  BasicType*     _saved_sig;
+  int            _total_args_passed;
+#endif
+
   void init(AdapterFingerPrint* fingerprint, address i2c_entry, address c2i_entry, address c2i_unverified_entry) {
     _fingerprint = fingerprint;
     _i2c_entry = i2c_entry;
     _c2i_entry = c2i_entry;
     _c2i_unverified_entry = c2i_unverified_entry;
+#ifdef ASSERT
+    _saved_code = NULL;
+    _code_length = 0;
+    _saved_sig = NULL;
+    _total_args_passed = 0;
+#endif
   }
 
+  void deallocate();
+
   // should never be used
   AdapterHandlerEntry();
 
@@ -566,6 +583,12 @@
     return (AdapterHandlerEntry*)BasicHashtableEntry::next();
   }
 
+#ifdef ASSERT
+  // Used to verify that code generated for shared adapters is equivalent
+  void save_code(unsigned char* code, int length, int total_args_passed, BasicType* sig_bt);
+  bool compare_code(unsigned char* code, int length, int total_args_passed, BasicType* sig_bt);
+#endif
+
 #ifndef PRODUCT
   void print();
 #endif /* PRODUCT */