comparison src/cpu/x86/vm/stubGenerator_x86_64.cpp @ 11246:2d4df4c43ae2

fixed bug in java.util.zip.CRC32.updateBytes stub: non-scratch register c_arg3 (i.e. rcx on Unix) was being used, overwriting a live value
author Doug Simon <doug.simon@oracle.com>
date Wed, 07 Aug 2013 16:35:16 +0200
parents 6b0fd0964b87
children abba25b953a2
comparison
equal deleted inserted replaced
11245:d89a5dbaaaf6 11246:2d4df4c43ae2
3645 // Unix: rdi, rsi, rdx, rcx, r8, r9 (c_rarg0, c_rarg1, ...) 3645 // Unix: rdi, rsi, rdx, rcx, r8, r9 (c_rarg0, c_rarg1, ...)
3646 // rscratch1: r10 3646 // rscratch1: r10
3647 const Register crc = c_rarg0; // crc 3647 const Register crc = c_rarg0; // crc
3648 const Register buf = c_rarg1; // source java byte array address 3648 const Register buf = c_rarg1; // source java byte array address
3649 const Register len = c_rarg2; // length 3649 const Register len = c_rarg2; // length
3650 const Register table = c_rarg3; // crc_table address (reuse register) 3650 const Register table = rscratch1;// crc_table address
3651 const Register tmp = r11; 3651 const Register tmp = rscratch2;
3652 assert_different_registers(crc, buf, len, table, tmp, rax); 3652 assert_different_registers(crc, buf, len, table, tmp, rax);
3653 3653
3654 BLOCK_COMMENT("Entry:"); 3654 BLOCK_COMMENT("Entry:");
3655 __ enter(); // required for proper stackwalking of RuntimeStub frame 3655 __ enter(); // required for proper stackwalking of RuntimeStub frame
3656 3656