<div id="reply-content">I didn't knew this list was in German :-)
    </div>
    <div id="FC7BB0A1F6FE4392881C16A439191326"></div>
     
    <p style="color: #A0A0A8;">Le mercredi 1 août 2012 Ã  18:26, Roman Kennke a Ã©crit :</p>
    <blockquote type="cite" style="border-left-style:solid;border-width:1px;margin-left:0px;padding-left:10px;">
        <div id="quoted-message-content"><div><div>Hi Christian!</div><div><br></div><div>Danke für den Tip, ich hab mir die Implementierungen in TemplateTable</div><div>und auch die existierenden Implementierungen für die anderen invoke*</div><div>bytecodes in bytecodeInterpreter.cpp angeschaut, und bin mit folgender</div><div>Implementierung herausgekommen:</div><div><br></div><div>      CASE(_invokehandle): {</div><div>        if (!EnableInvokeDynamic) {</div><div>          ShouldNotReachHere();</div><div>        }</div><div><br></div><div>        u2 index = Bytes::get_native_u2(pc+1);</div><div><br></div><div>        ConstantPoolCacheEntry* cache = cp-&gt;entry_at(index);</div><div><br></div><div>        if (! cache-&gt;is_resolved((Bytecodes::Code) opcode)) {</div><div>          CALL_VM(InterpreterRuntime::resolve_invokehandle(THREAD),</div><div>                  handle_exception);</div><div>          cache = cp-&gt;entry_at(index);</div><div>        }</div><div><br></div><div>        oop result = cache-&gt;f1_as_instance();</div><div><br></div><div>        VERIFY_OOP(result);</div><div>        oop method_handle = java_lang_invoke_CallSite::target(result);</div><div>        CHECK_NULL(method_handle);</div><div><br></div><div>        istate-&gt;set_msg(call_method_handle);</div><div>        istate-&gt;set_callee((methodOop) method_handle);</div><div>        istate-&gt;set_bcp_advance(3);</div><div><br></div><div>        UPDATE_PC_AND_RETURN(0); // I'll be back...</div><div>      }</div><div><br></div><div>Kannst Du kurz drüberschauen ob das korrekt aussieht? Das Problem ist,</div><div>daß ich wirklich nicht 100% weiß, was invokehandle eigentlich macht.</div><div>Soweit ich das verstehe, löst es einen polymorphen Methodenaufruf zu</div><div>MethodHandle.invoke*() auf und springt dann zu selbigem.</div><div><br></div><div>Ich brauch echt ein bisschen Hilfe.. Hotspot und JSR292 sind noch</div><div>ziemlich kalte Wasser für mich zum reinspringen ;-)</div><div><br></div><div>Cheers, Roman</div><div><br></div><div><br></div><div>Am Dienstag, den 31.07.2012, 17:28 -0700 schrieb Christian Thalinger:</div><blockquote type="cite"><div><div>On Jul 31, 2012, at 8:24 AM, Roman Kennke wrote:</div><div><br></div><blockquote type="cite"><div><div>Am Dienstag, den 31.07.2012, 14:19 +0200 schrieb Roman Kennke:</div><blockquote type="cite"><div><div>Hi there,</div><div><br></div><div>I am currently (trying to) get the Hotspot-Zero port in shape for MLVM.</div><div>I am running into a road block here:</div><div><br></div><div>#  Internal Error</div><div>(/home/rkennke/src/openjdk/hotspot-comp/hotspot/src/share/vm/interpreter/bytecodeInterpreter.cpp:2464), pid=18585, tid=140737337317120</div><div>#  fatal error: Unimplemented opcode 232 = invokehandle</div><div><br></div><div>Looking at bytecodeInterpreter.cpp it seem to simply not handle</div><div>invokehandle. I would like to add this, but I don't know what exactly</div><div>this bytecode is supposed to do. Could you give me pointers to the</div><div>necessary information or provide some help with this? (Or maybe I am</div><div>doing something wrong here, and should not arrive there at all?)</div></div></blockquote><div><br></div><div>I disabled the invokevirtual-&gt;invokehandle rewriting for now (this</div><div>should be safe/correct, right?), and it brings me further into my</div><div>unimplemented handler for vmIntrinsics::_invokeBasic. Need to figure out</div><div>what this is supposed to do (any hints about this one?)..</div></div></blockquote><div><br></div><div>You can't disable the rewriting and run JSR 292 code.  That simply won't work.  Look at one of the implementations of TemplateTable::_invokehandle and try to do the same in the C++ interpreter.</div><div><br></div><div>-- Chris</div><div><br></div><blockquote type="cite"><div><div><br></div><div>Regards,</div><div>Roman</div><div><br></div><div><br></div><div>_______________________________________________</div><div>mlvm-dev mailing list</div><div>mlvm-dev@openjdk.java.net</div><div>http://mail.openjdk.java.net/mailman/listinfo/mlvm-dev</div></div></blockquote><div><br></div><div>_______________________________________________</div><div>mlvm-dev mailing list</div><div>mlvm-dev@openjdk.java.net</div><div>http://mail.openjdk.java.net/mailman/listinfo/mlvm-dev</div></div></blockquote><div><br></div><div><br></div><div>_______________________________________________</div><div>mlvm-dev mailing list</div><div>mlvm-dev@openjdk.java.net</div><div>http://mail.openjdk.java.net/mailman/listinfo/mlvm-dev</div></div></div>
         
         
         
         
    </blockquote>
     
    <div>
        <br>
    </div>