You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@harmony.apache.org by "Geir Magnusson Jr (JIRA)" <ji...@apache.org> on 2006/10/06 18:37:24 UTC
[jira] Resolved: (HARMONY-1681) [drlvm][jvmti]{set|get}local
variable may work incorrectly under Jitrino.JET
[ http://issues.apache.org/jira/browse/HARMONY-1681?page=all ]
Geir Magnusson Jr resolved HARMONY-1681.
----------------------------------------
Resolution: Fixed
r453668
Ubuntu 6, smoke, c-unit, ~kernel
> [drlvm][jvmti]{set|get}local variable may work incorrectly under Jitrino.JET
> ----------------------------------------------------------------------------
>
> Key: HARMONY-1681
> URL: http://issues.apache.org/jira/browse/HARMONY-1681
> Project: Harmony
> Issue Type: Bug
> Components: DRLVM
> Reporter: Alex Astapchuk
> Assigned To: Geir Magnusson Jr
> Attachments: jvmti_set_get_local.patch, jvmti_set_get_local.patch, jvmti_set_get_local.patch.nocrlf
>
>
> The problem:
> Implementation of set/get local variable in .jet only operates with
> the local variables in method's stack frame (in memory). It does not
> work if a variable is stored on a register.
> Normaly, Jitrino.JET does not allocate registers for local variables
> globally when running under JVMTI.
> However, many operations may reuest temporary register and store a
> value on it. For example:
> INVOKExxx foo()I ; returned value is now in EAX
> ISTORE_x ; local#x is now on EAX
> <do_something> ; <=get_local_var(x) will get a wrong value here
> The solution:
> To handle such situations, code generator must spill out all registers
> after each bytecode instruction.
> The attached fix does it.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira