all: VPCLMULQDQ instruction (#360)
Adds VEX and EVEX encoded versions of the `PCLMULQDQ` carry-less quadword multiplication instruction. These are added via the `opcodesextra` mechanism #345, since they're missing from the opcodes database. Contributed by @vsivsi. Extracted from #349 with minor tweaks. Co-authored-by: Vaughn Iverson <vsivsi@yahoo.com>
This commit is contained in:
committed by
GitHub
parent
b893b32213
commit
7dac51aabf
@@ -58405,10 +58405,14 @@ func VPBROADCASTW_Z(mrx, k, xyz operand.Op) { ctx.VPBROADCASTW_Z(mrx, k, xyz) }
|
||||
//
|
||||
// VPCLMULQDQ imm8 m128 xmm xmm
|
||||
// VPCLMULQDQ imm8 xmm xmm xmm
|
||||
// VPCLMULQDQ imm8 m256 ymm ymm
|
||||
// VPCLMULQDQ imm8 ymm ymm ymm
|
||||
// VPCLMULQDQ imm8 m512 zmm zmm
|
||||
// VPCLMULQDQ imm8 zmm zmm zmm
|
||||
//
|
||||
// Construct and append a VPCLMULQDQ instruction to the active function.
|
||||
func (c *Context) VPCLMULQDQ(i, mx, x, x1 operand.Op) {
|
||||
c.addinstruction(x86.VPCLMULQDQ(i, mx, x, x1))
|
||||
func (c *Context) VPCLMULQDQ(i, mxyz, xyz, xyz1 operand.Op) {
|
||||
c.addinstruction(x86.VPCLMULQDQ(i, mxyz, xyz, xyz1))
|
||||
}
|
||||
|
||||
// VPCLMULQDQ: Carry-Less Quadword Multiplication.
|
||||
@@ -58417,10 +58421,14 @@ func (c *Context) VPCLMULQDQ(i, mx, x, x1 operand.Op) {
|
||||
//
|
||||
// VPCLMULQDQ imm8 m128 xmm xmm
|
||||
// VPCLMULQDQ imm8 xmm xmm xmm
|
||||
// VPCLMULQDQ imm8 m256 ymm ymm
|
||||
// VPCLMULQDQ imm8 ymm ymm ymm
|
||||
// VPCLMULQDQ imm8 m512 zmm zmm
|
||||
// VPCLMULQDQ imm8 zmm zmm zmm
|
||||
//
|
||||
// Construct and append a VPCLMULQDQ instruction to the active function.
|
||||
// Operates on the global context.
|
||||
func VPCLMULQDQ(i, mx, x, x1 operand.Op) { ctx.VPCLMULQDQ(i, mx, x, x1) }
|
||||
func VPCLMULQDQ(i, mxyz, xyz, xyz1 operand.Op) { ctx.VPCLMULQDQ(i, mxyz, xyz, xyz1) }
|
||||
|
||||
// VPCMPB: Compare Packed Signed Byte Values.
|
||||
//
|
||||
|
||||
Reference in New Issue
Block a user