4408 is_pclmulqdq_supported);
4409 __ movl(rax, crc);
4410 #ifdef _WIN64
4411 __ pop(z);
4412 __ pop(y);
4413 #endif
4414 __ vzeroupper();
4415 __ leave(); // required for proper stackwalking of RuntimeStub frame
4416 __ ret(0);
4417
4418 return start;
4419 }
4420
4421 /**
4422 * Arguments:
4423 *
4424 * Input:
4425 * c_rarg0 - x address
4426 * c_rarg1 - x length
4427 * c_rarg2 - y address
4428 * c_rarg3 - y lenth
4429 * not Win64
4430 * c_rarg4 - z address
4431 * c_rarg5 - z length
4432 * Win64
4433 * rsp+40 - z address
4434 * rsp+48 - z length
4435 */
4436 address generate_multiplyToLen() {
4437 __ align(CodeEntryAlignment);
4438 StubCodeMark mark(this, "StubRoutines", "multiplyToLen");
4439
4440 address start = __ pc();
4441 // Win64: rcx, rdx, r8, r9 (c_rarg0, c_rarg1, ...)
4442 // Unix: rdi, rsi, rdx, rcx, r8, r9 (c_rarg0, c_rarg1, ...)
4443 const Register x = rdi;
4444 const Register xlen = rax;
4445 const Register y = rsi;
4446 const Register ylen = rcx;
4447 const Register z = r8;
4448 const Register zlen = r11;
|
4408 is_pclmulqdq_supported);
4409 __ movl(rax, crc);
4410 #ifdef _WIN64
4411 __ pop(z);
4412 __ pop(y);
4413 #endif
4414 __ vzeroupper();
4415 __ leave(); // required for proper stackwalking of RuntimeStub frame
4416 __ ret(0);
4417
4418 return start;
4419 }
4420
4421 /**
4422 * Arguments:
4423 *
4424 * Input:
4425 * c_rarg0 - x address
4426 * c_rarg1 - x length
4427 * c_rarg2 - y address
4428 * c_rarg3 - y length
4429 * not Win64
4430 * c_rarg4 - z address
4431 * c_rarg5 - z length
4432 * Win64
4433 * rsp+40 - z address
4434 * rsp+48 - z length
4435 */
4436 address generate_multiplyToLen() {
4437 __ align(CodeEntryAlignment);
4438 StubCodeMark mark(this, "StubRoutines", "multiplyToLen");
4439
4440 address start = __ pc();
4441 // Win64: rcx, rdx, r8, r9 (c_rarg0, c_rarg1, ...)
4442 // Unix: rdi, rsi, rdx, rcx, r8, r9 (c_rarg0, c_rarg1, ...)
4443 const Register x = rdi;
4444 const Register xlen = rax;
4445 const Register y = rsi;
4446 const Register ylen = rcx;
4447 const Register z = r8;
4448 const Register zlen = r11;
|