Mercurial > hg > graal-compiler
changeset 19:a73cc31728fe
6614036: REGRESSION: Java server x86 VM intermittently crash with SIGSEGV (0xb)
Summary: restore destination address in x86 32-bit checkcast_arraycopy stub
Reviewed-by: jrose, kvn, never
author | rasbold |
---|---|
date | Wed, 05 Dec 2007 09:03:00 -0800 |
parents | c7d713375c94 |
children | e195fe4c40c7 |
files | src/cpu/x86/vm/stubGenerator_x86_32.cpp |
diffstat | 1 files changed, 3 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/src/cpu/x86/vm/stubGenerator_x86_32.cpp Wed Dec 05 09:02:00 2007 -0800 +++ b/src/cpu/x86/vm/stubGenerator_x86_32.cpp Wed Dec 05 09:03:00 2007 -0800 @@ -1416,8 +1416,8 @@ // ======== end loop ======== // It was a real error; we must depend on the caller to finish the job. - // Register rdx = -1 * number of *remaining* oops, r14 = *total* oops. - // Emit GC store barriers for the oops we have copied (r14 + rdx), + // Register "count" = -1 * number of *remaining* oops, length_arg = *total* oops. + // Emit GC store barriers for the oops we have copied (length_arg + count), // and report their number to the caller. __ addl(count, length_arg); // transfers = (length - remaining) __ movl(rax, count); // save the value @@ -1430,6 +1430,7 @@ // Come here on success only. __ BIND(L_do_card_marks); __ movl(count, length_arg); + __ movl(to, to_arg); // reload gen_write_ref_array_post_barrier(to, count); __ xorl(rax, rax); // return 0 on success