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.