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:28 UTC

[jira] Closed: (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 closed HARMONY-1681.
--------------------------------------


> [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