--- a/hotspot/src/cpu/x86/vm/stubGenerator_x86_32.cpp Tue Jan 14 14:51:47 2014 +0100
+++ b/hotspot/src/cpu/x86/vm/stubGenerator_x86_32.cpp Tue Jan 14 17:46:48 2014 -0800
@@ -2403,6 +2403,9 @@
// c_rarg3 - r vector byte array address
// c_rarg4 - input length
//
+ // Output:
+ // rax - input length
+ //
address generate_cipherBlockChaining_encryptAESCrypt() {
assert(UseAES, "need AES instructions and misaligned SSE support");
__ align(CodeEntryAlignment);
@@ -2483,7 +2486,7 @@
__ movdqu(Address(rvec, 0), xmm_result); // final value of r stored in rvec of CipherBlockChaining object
handleSOERegisters(false /*restoring*/);
- __ movl(rax, 0); // return 0 (why?)
+ __ movptr(rax, len_param); // return length
__ leave(); // required for proper stackwalking of RuntimeStub frame
__ ret(0);
@@ -2557,6 +2560,9 @@
// c_rarg3 - r vector byte array address
// c_rarg4 - input length
//
+ // Output:
+ // rax - input length
+ //
address generate_cipherBlockChaining_decryptAESCrypt() {
assert(UseAES, "need AES instructions and misaligned SSE support");
@@ -2650,7 +2656,7 @@
__ movptr(rvec , rvec_param); // restore this since used in loop
__ movdqu(Address(rvec, 0), xmm_temp); // final value of r stored in rvec of CipherBlockChaining object
handleSOERegisters(false /*restoring*/);
- __ movl(rax, 0); // return 0 (why?)
+ __ movptr(rax, len_param); // return length
__ leave(); // required for proper stackwalking of RuntimeStub frame
__ ret(0);