RFR (M): 8019519: PPC64 (part 105): C interpreter: implement support for jvmti early return.
serguei.spitsyn at oracle.com
serguei.spitsyn at oracle.com
Fri Jul 5 18:10:23 PDT 2013
Hi Goetz,
As before it looks good in general.
I'm not sure the following change is correct:
- THREAD->clr_pop_frame_in_process();
+ } else {
+ istate->set_msg(return_from_method);
}
The above will reset the *msg* to the *return_from_method*
when it was already set to the *early_return* which is
inconsistent with the *popping_frame* case.
Could you explain why did you make it for non-popping_frame cases only?
It would not surprise me if it does not matter though. :)
Also, one more case needs to be added to the BytecodeInterpreter::C_msg():
322? case BytecodeInterpreter::early_return: return("early_return");
One more comment below...
On 7/4/13 5:39 AM, Lindenmaier, Goetz wrote:
>
> Hi,
>
> pop_frame_in_process will be cleared when the frame manager calls
>
> the interpreter loop again with the message popping_frame.
>
> 6953477 broke our pop_frame tests. I don't see though how pop_frame
>
> could be tested with 6953477, as the capability is not set
>
> if CC_INTERP is defined.
>
It is explicitly disabled in the jvmtiManageCapabilities.cpp:
#ifndef CC_INTERP
jc.can_pop_frame = 1;
jc.can_force_early_return = 1;
#endif // !CC_INTERP
It is because it was not fully implemented yet for CC_INTERP.
You can take the can_force_early_return out of the ifdef.
Thanks,
Serguei
> (I removed a ShouldNotReachHere in the updated change, that was
>
> in the wrong patch of the port but belongs here.)
>
> _/return/_kind is unused. In the updated webrev I also removed the
>
> definition of the field.
>
> I also fixed the syntax stuff.
>
> This is the new webrev:
>
> http://cr.openjdk.java.net/~goetz/webrevs/8019519-cInter_earlyRet-2/
> <http://cr.openjdk.java.net/%7Egoetz/webrevs/8019519-cInter_earlyRet-2/>
>
> Best regards,
>
> Goetz.
>
> *From:*serguei.spitsyn at oracle.com [mailto:serguei.spitsyn at oracle.com]
> *Sent:* Mittwoch, 3. Juli 2013 21:59
> *To:* Lindenmaier, Goetz
> *Cc:* 'hotspot-dev at openjdk.java.net';
> 'ppc-aix-port-dev at openjdk.java.net'; Vladimir Kozlov
> *Subject:* Re: RFR (M): 8019519: PPC64 (part 105): C interpreter:
> implement support for jvmti early return.
>
> Hi Goetz,
>
> The fix looks good in general.
> Thank you for doing this!
>
> A couple of comments:
>
> src/share/vm/interpreter/bytecodeInterpreter.cpp:
>
> It looks like you have accidentally dropped the line:
>
> 2981 THREAD->clr_pop_frame_in_process();
>
>
> What is the reason that the following lines are deleted? (the same as
> Vladimir already asked):
>
> 2962 istate->set_return_kind((Bytecodes::Code)opcode);
> 2987 istate->set_return_kind((Bytecodes::Code)opcode);
>
>
> Thanks,
> Serguei
>
> On 7/3/13 3:24 AM, Lindenmaier, Goetz wrote:
>
> Hi,
>
>
>
> This change implements jvmti early return and pop frame support
>
> in the cppInterpreter. To work properly, the corresponding properties in
>
> JvmtiManageCapabilities::init_onload_capabilities() must be enabled.
>
> We will add this in a later change.
>
>
>
> I would be happy about a review of this change:
>
> http://cr.openjdk.java.net/~goetz/webrevs/8019519-cInter_earlyRet/ <http://cr.openjdk.java.net/%7Egoetz/webrevs/8019519-cInter_earlyRet/>
>
>
>
> Best regards,
>
> Goetz.
>
>
>
More information about the hotspot-dev
mailing list