You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@harmony.apache.org by "Pavel Afremov (JIRA)" <ji...@apache.org> on 2007/10/22 13:20:50 UTC

[jira] Updated: (HARMONY-4991) [jit] Fix compressed references support for heaps up to 4Gb

     [ https://issues.apache.org/jira/browse/HARMONY-4991?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Pavel Afremov updated HARMONY-4991:
-----------------------------------

    Description: 
I tried to run DRL VM in OPT mode with patch from HARMONY-4982 . The result is sigsegv in jited code. 

at java.lang.AbstractStringBuilder.append0() 
    (Ln 168, ...\classlib\modules\luni\src\main\java\java\lang\AbstractStringBuilder.java " if (newSize > value.length) {") 
at HeapTest.func() 
    (Ln 15, .\HeapTest.java " System.out.println("iteration " + i);") 
at HeapTest.main() 
    (Ln 6, .\HeapTest.java " test.func();") 

The source of it is incorrect signed extension of 32 bit value to 64 bit register (see attached assembly code). 

0000000005967D47 mov eax,dword ptr [rbx+8] 
0000000005967D4A movsxd rax,eax 
0000000005967D4D mov rsi,7FFF0000h 
0000000005967D57 mov r12,rax 
0000000005967D5A add r12,rsi 
0000000005967D5D mov qword ptr [rsp],r12 
0000000005967D61 mov rax,7FFF0000h 
0000000005967D6B cmp r12,rax 
0000000005967D6E je 0000000005967E05 


  was:
I tried to run DRL VM in OPT mode with patch from HARMONY-4982 . The result is sigsegv in jited code. 

at java.lang.AbstractStringBuilder.append0() 
    (Ln 168, ...\classlib\modules\luni\src\main\java\java\lang\AbstractStringBuilder.java " if (newSize > value.length) {") 
at HeapTest.func() 
    (Ln 15, .\HeapTest.java " System.out.println("iteration " + i);") 
at HeapTest.main() 
    (Ln 6, .\HeapTest.java " test.func();") 

The source of it is incorrect signed extension of 32 bit value to 64 bit register (marked by red in attached assembly code). 

0000000005967D47 mov eax,dword ptr [rbx+8] 
0000000005967D4A movsxd rax,eax 
0000000005967D4D mov rsi,7FFF0000h 
0000000005967D57 mov r12,rax 
0000000005967D5A add r12,rsi 
0000000005967D5D mov qword ptr [rsp],r12 
0000000005967D61 mov rax,7FFF0000h 
0000000005967D6B cmp r12,rax 
0000000005967D6E je 0000000005967E05 



> [jit] Fix compressed references support for heaps up to 4Gb
> -----------------------------------------------------------
>
>                 Key: HARMONY-4991
>                 URL: https://issues.apache.org/jira/browse/HARMONY-4991
>             Project: Harmony
>          Issue Type: Bug
>          Components: DRLVM
>         Environment: Linux x86-64 & Windows x86-64
>            Reporter: Pavel Afremov
>            Priority: Critical
>
> I tried to run DRL VM in OPT mode with patch from HARMONY-4982 . The result is sigsegv in jited code. 
> at java.lang.AbstractStringBuilder.append0() 
>     (Ln 168, ...\classlib\modules\luni\src\main\java\java\lang\AbstractStringBuilder.java " if (newSize > value.length) {") 
> at HeapTest.func() 
>     (Ln 15, .\HeapTest.java " System.out.println("iteration " + i);") 
> at HeapTest.main() 
>     (Ln 6, .\HeapTest.java " test.func();") 
> The source of it is incorrect signed extension of 32 bit value to 64 bit register (see attached assembly code). 
> 0000000005967D47 mov eax,dword ptr [rbx+8] 
> 0000000005967D4A movsxd rax,eax 
> 0000000005967D4D mov rsi,7FFF0000h 
> 0000000005967D57 mov r12,rax 
> 0000000005967D5A add r12,rsi 
> 0000000005967D5D mov qword ptr [rsp],r12 
> 0000000005967D61 mov rax,7FFF0000h 
> 0000000005967D6B cmp r12,rax 
> 0000000005967D6E je 0000000005967E05 

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.