< prev index next >

src/hotspot/cpu/x86/stubGenerator_x86_64.cpp

Print this page
rev 49172 : 8197405: Improve messages of AbstractMethodErrors and IncompatibleClassChangeErrors.
Reviewed-by: coleenp, dholmes, mdoerr, njian


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;


< prev index next >