On Mar 16, 2009, at 7:27 AM, Ben Evans wrote: > The idea being that the wide opcode indicates that this call should > be optimised as a tail call, and that the interpreter part of > HotSpot will then (if allowed by protection restrictions) rewrite > the current native stack frame rather than create a new one.
Not optimized: It is a hard tail call. There is not a choice about whether the stack frame should disappear. If the tail call is defeated, there has to be some sort of notification, such as an exception. You might ask "then why is the areturn required afterwards"? The answer is to make it somewhat easier for bytecode-conscious tools to adapt to the new instruction format. In particular, it simplifies the changes to the verifier. (Complex verifier changes are bad.) -- John _______________________________________________ mlvm-dev mailing list [email protected] http://mail.openjdk.java.net/mailman/listinfo/mlvm-dev
