Mercurial > hg > truffle
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 |