harmony-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From mfur...@apache.org
Subject svn commit: r578122 - in /harmony/enhanced/drlvm/trunk/vm/jitrino/src/jet: bcproc.cpp cg_meth.cpp rt.cpp
Date Fri, 21 Sep 2007 14:07:38 GMT
Author: mfursov
Date: Fri Sep 21 07:07:37 2007
New Revision: 578122

URL: http://svn.apache.org/viewvc?rev=578122&view=rev
Log:
Fix for HARMONY-4839 [drlvm][jit][jet] Support for GC enumeration at breakpoints


Modified:
    harmony/enhanced/drlvm/trunk/vm/jitrino/src/jet/bcproc.cpp
    harmony/enhanced/drlvm/trunk/vm/jitrino/src/jet/cg_meth.cpp
    harmony/enhanced/drlvm/trunk/vm/jitrino/src/jet/rt.cpp

Modified: harmony/enhanced/drlvm/trunk/vm/jitrino/src/jet/bcproc.cpp
URL: http://svn.apache.org/viewvc/harmony/enhanced/drlvm/trunk/vm/jitrino/src/jet/bcproc.cpp?rev=578122&r1=578121&r2=578122&view=diff
==============================================================================
--- harmony/enhanced/drlvm/trunk/vm/jitrino/src/jet/bcproc.cpp (original)
+++ harmony/enhanced/drlvm/trunk/vm/jitrino/src/jet/bcproc.cpp Fri Sep 21 07:07:37 2007
@@ -91,6 +91,9 @@
         // Do not allow values to cross instruction boundaries
         // on a temporary registers
         vpark();
+        // We must have GC info at every bytecode instruction
+        // to support possible enumeration at a breakpoint 
+        gen_gc_stack(-1, false);
     }
 
     const bool has_fall_through = !jinst.is_set(OPF_DEAD_END);

Modified: harmony/enhanced/drlvm/trunk/vm/jitrino/src/jet/cg_meth.cpp
URL: http://svn.apache.org/viewvc/harmony/enhanced/drlvm/trunk/vm/jitrino/src/jet/cg_meth.cpp?rev=578122&r1=578121&r2=578122&view=diff
==============================================================================
--- harmony/enhanced/drlvm/trunk/vm/jitrino/src/jet/cg_meth.cpp (original)
+++ harmony/enhanced/drlvm/trunk/vm/jitrino/src/jet/cg_meth.cpp Fri Sep 21 07:07:37 2007
@@ -768,8 +768,8 @@
     // on registers.
     if (opcod != OPCODE_INVOKEINTERFACE && meth != NULL) {
         stackFix = gen_stack_to_args(true, cs, 0);
-        gen_gc_stack(-1, true);
         vpark();
+        gen_gc_stack(-1, true);
     }
     //
     // Check for null here - we just spilled all the args and 
@@ -814,8 +814,8 @@
 
         //2.  call java method
         stackFix = gen_stack_to_args(true, cs, 0);
-        gen_gc_stack(-1, true);
         vpark();
+        gen_gc_stack(-1, true);
         
         AR gr = valloc(iplatf);
         ld(jobj, gr, gr_ret); //load indirect addr
@@ -843,8 +843,8 @@
         rlock(gr_ret);
         //st(jobj, gr_ret, m_base, voff(m_stack.scratch()));
         stackFix = gen_stack_to_args(true, cs, 0);
-        gen_gc_stack(-1, true);
         vpark();
+        gen_gc_stack(-1, true);
         unsigned offset = method_get_offset(meth);
         //ld(jobj, gr_ret, m_base, voff(m_stack.scratch()));
         runlock(gr_ret);

Modified: harmony/enhanced/drlvm/trunk/vm/jitrino/src/jet/rt.cpp
URL: http://svn.apache.org/viewvc/harmony/enhanced/drlvm/trunk/vm/jitrino/src/jet/rt.cpp?rev=578122&r1=578121&r2=578122&view=diff
==============================================================================
--- harmony/enhanced/drlvm/trunk/vm/jitrino/src/jet/rt.cpp (original)
+++ harmony/enhanced/drlvm/trunk/vm/jitrino/src/jet/rt.cpp Fri Sep 21 07:07:37 2007
@@ -267,8 +267,8 @@
 void rt_enum(JIT_Handle jit, Method_Handle method, 
              GC_Enumeration_Handle henum, JitFrameContext * context)
 {
-    if (!context->is_ip_past) {
-        // The IP pointts directly to the instructions - this must be a 
+    if (!context->is_ip_past && !StaticConsts::g_jvmtiMode) {
+        // The IP points directly to the instructions - this must be a 
         // hardware NPE happened. Check the presumption:
         assert(method_get_num_handlers(method) == 0);
 #ifdef _DEBUG



Mime
View raw message