1.1 --- a/src/cpu/x86/vm/stubGenerator_x86_32.cpp Fri Feb 14 16:17:22 2014 +0100 1.2 +++ b/src/cpu/x86/vm/stubGenerator_x86_32.cpp Tue Jan 14 17:46:48 2014 -0800 1.3 @@ -2403,6 +2403,9 @@ 1.4 // c_rarg3 - r vector byte array address 1.5 // c_rarg4 - input length 1.6 // 1.7 + // Output: 1.8 + // rax - input length 1.9 + // 1.10 address generate_cipherBlockChaining_encryptAESCrypt() { 1.11 assert(UseAES, "need AES instructions and misaligned SSE support"); 1.12 __ align(CodeEntryAlignment); 1.13 @@ -2483,7 +2486,7 @@ 1.14 __ movdqu(Address(rvec, 0), xmm_result); // final value of r stored in rvec of CipherBlockChaining object 1.15 1.16 handleSOERegisters(false /*restoring*/); 1.17 - __ movl(rax, 0); // return 0 (why?) 1.18 + __ movptr(rax, len_param); // return length 1.19 __ leave(); // required for proper stackwalking of RuntimeStub frame 1.20 __ ret(0); 1.21 1.22 @@ -2557,6 +2560,9 @@ 1.23 // c_rarg3 - r vector byte array address 1.24 // c_rarg4 - input length 1.25 // 1.26 + // Output: 1.27 + // rax - input length 1.28 + // 1.29 1.30 address generate_cipherBlockChaining_decryptAESCrypt() { 1.31 assert(UseAES, "need AES instructions and misaligned SSE support"); 1.32 @@ -2650,7 +2656,7 @@ 1.33 __ movptr(rvec , rvec_param); // restore this since used in loop 1.34 __ movdqu(Address(rvec, 0), xmm_temp); // final value of r stored in rvec of CipherBlockChaining object 1.35 handleSOERegisters(false /*restoring*/); 1.36 - __ movl(rax, 0); // return 0 (why?) 1.37 + __ movptr(rax, len_param); // return length 1.38 __ leave(); // required for proper stackwalking of RuntimeStub frame 1.39 __ ret(0); 1.40