RFR(S): 8009981: nashorn tests fail with -XX:+VerifyStack

Christian Thalinger christian.thalinger at oracle.com
Wed Mar 13 10:40:21 PDT 2013


On Mar 13, 2013, at 6:36 AM, Roland Westrelin <roland.westrelin at oracle.com> wrote:

> nmethod::preserve_callee_argument_oops() doesn't take the invokedynamic/invokehandle appendix argument into account and actually has some leftover from the previous JSR292 implementation.
> 
> http://cr.openjdk.java.net/~roland/8009981/webrev.00/

src/share/vm/runtime/deoptimization.cpp:

I'm confused by that code.  Does Bytecode_invoke invoke represent the instruction at cur_code?  If so you could replace:

  if (cur_code != Bytecodes::_invokestatic && cur_code != Bytecodes::_invokedynamic) {

by:

  if (invoke.has_receiver()) {

src/share/vm/runtime/frame.cpp:

   void oops_do() {
     if (_has_receiver) {
       handle_oop_offset();
       _offset++;
     }
     iterate_parameters();
+    if (_has_appendix) {
+      handle_oop_offset();
+    }
   }

Shouldn't there be an _offset++ after the appendix too?

Otherwise this looks good.  Thanks for spotting the left-over code.

-- Chris

> 
> Roland.



More information about the hotspot-compiler-dev mailing list