mirror of
https://github.com/openjdk/jdk.git
synced 2025-09-19 02:24:40 +02:00
8055494: Add C2 x86 intrinsic for BigInteger::multiplyToLen() method
Add new C2 intrinsic for BigInteger::multiplyToLen() on x86 in 64-bit VM. Reviewed-by: roland
This commit is contained in:
parent
8b93fb04cd
commit
b9e949183d
19 changed files with 1062 additions and 22 deletions
|
@ -888,6 +888,14 @@ private:
|
|||
void addq(Register dst, Address src);
|
||||
void addq(Register dst, Register src);
|
||||
|
||||
#ifdef _LP64
|
||||
//Add Unsigned Integers with Carry Flag
|
||||
void adcxq(Register dst, Register src);
|
||||
|
||||
//Add Unsigned Integers with Overflow Flag
|
||||
void adoxq(Register dst, Register src);
|
||||
#endif
|
||||
|
||||
void addr_nop_4();
|
||||
void addr_nop_5();
|
||||
void addr_nop_7();
|
||||
|
@ -1204,19 +1212,20 @@ private:
|
|||
void idivl(Register src);
|
||||
void divl(Register src); // Unsigned division
|
||||
|
||||
#ifdef _LP64
|
||||
void idivq(Register src);
|
||||
#endif
|
||||
|
||||
void imull(Register dst, Register src);
|
||||
void imull(Register dst, Register src, int value);
|
||||
void imull(Register dst, Address src);
|
||||
|
||||
#ifdef _LP64
|
||||
void imulq(Register dst, Register src);
|
||||
void imulq(Register dst, Register src, int value);
|
||||
#ifdef _LP64
|
||||
void imulq(Register dst, Address src);
|
||||
#endif
|
||||
|
||||
|
||||
// jcc is the generic conditional branch generator to run-
|
||||
// time routines, jcc is used for branches to labels. jcc
|
||||
// takes a branch opcode (cc) and a label (L) and generates
|
||||
|
@ -1408,9 +1417,16 @@ private:
|
|||
void movzwq(Register dst, Register src);
|
||||
#endif
|
||||
|
||||
// Unsigned multiply with RAX destination register
|
||||
void mull(Address src);
|
||||
void mull(Register src);
|
||||
|
||||
#ifdef _LP64
|
||||
void mulq(Address src);
|
||||
void mulq(Register src);
|
||||
void mulxq(Register dst1, Register dst2, Register src);
|
||||
#endif
|
||||
|
||||
// Multiply Scalar Double-Precision Floating-Point Values
|
||||
void mulsd(XMMRegister dst, Address src);
|
||||
void mulsd(XMMRegister dst, XMMRegister src);
|
||||
|
@ -1541,6 +1557,11 @@ private:
|
|||
|
||||
void ret(int imm16);
|
||||
|
||||
#ifdef _LP64
|
||||
void rorq(Register dst, int imm8);
|
||||
void rorxq(Register dst, Register src, int imm8);
|
||||
#endif
|
||||
|
||||
void sahf();
|
||||
|
||||
void sarl(Register dst, int imm8);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue