1.1 --- a/src/cpu/x86/vm/stubGenerator_x86_32.cpp Wed Dec 05 09:02:00 2007 -0800 1.2 +++ b/src/cpu/x86/vm/stubGenerator_x86_32.cpp Wed Dec 05 09:03:00 2007 -0800 1.3 @@ -1416,8 +1416,8 @@ 1.4 // ======== end loop ======== 1.5 1.6 // It was a real error; we must depend on the caller to finish the job. 1.7 - // Register rdx = -1 * number of *remaining* oops, r14 = *total* oops. 1.8 - // Emit GC store barriers for the oops we have copied (r14 + rdx), 1.9 + // Register "count" = -1 * number of *remaining* oops, length_arg = *total* oops. 1.10 + // Emit GC store barriers for the oops we have copied (length_arg + count), 1.11 // and report their number to the caller. 1.12 __ addl(count, length_arg); // transfers = (length - remaining) 1.13 __ movl(rax, count); // save the value 1.14 @@ -1430,6 +1430,7 @@ 1.15 // Come here on success only. 1.16 __ BIND(L_do_card_marks); 1.17 __ movl(count, length_arg); 1.18 + __ movl(to, to_arg); // reload 1.19 gen_write_ref_array_post_barrier(to, count); 1.20 __ xorl(rax, rax); // return 0 on success 1.21