libTriton version 1.0 build 1592
|
[internal] List of the supported semantics for the x86 and x86-64 architectures.
Mnemonic | Extensions | Description |
---|---|---|
AAA | ASCII Adjust After Addition | |
AAD | ASCII Adjust AX Before Division | |
AAM | ASCII Adjust AX After Multiply | |
AAS | ASCII Adjust AL After Subtraction | |
ADC | Add with Carry | |
ADCX | adx | Unsigned Integer Addition of Two Operands with Carry Flag |
ADD | Add | |
AND | Logical AND | |
ANDN | bmi1 | Logical AND NOT |
ANDNPD | sse2 | Bitwise Logical AND NOT of Packed Double-Precision Floating-Point Values |
ANDNPS | sse1 | Bitwise Logical AND NOT of Packed Single-Precision Floating-Point Values |
ANDPD | sse2 | Bitwise Logical AND of Packed Double-Precision Floating-Point Values |
ANDPS | sse1 | Bitwise Logical AND of Packed Single-Precision Floating-Point Values |
BEXTR | bmi1/tbm | Bit Field Extract |
BLSI | bmi1 | Extract Lowest Set Isolated Bit |
BLSMSK | bmi1 | Get Mask Up to Lowest Set Bit |
BLSR | bmi1 | Reset Lowest Set Bit |
BSF | Bit Scan Forward | |
BSR | Bit Scan Reverse | |
BSWAP | Byte Swap | |
BT | Bit Test | |
BTC | Bit Test and Complement | |
BTR | Bit Test and Reset | |
BTS | Bit Test and Set | |
CALL | Call Procedure | |
CBW | Convert byte (al) to word (ax) | |
CDQ | Convert dword (eax) to qword (edx:eax) | |
CDQE | Convert dword (eax) to qword (rax) | |
CLC | Clear Carry Flag | |
CLD | Clear Direction Flag | |
CLFLUSH | sse2 | Flush Cache Line |
CLI | Clear Interrupt Flag | |
CLTS | Clear Task-Switched Flag in CR0 | |
CMC | Complement Carry Flag | |
CMOVA | Move if not below | |
CMOVAE | Move if not below or equal | |
CMOVB | Move if below | |
CMOVBE | Move if below or equal | |
CMOVE | Move if zero | |
CMOVG | Move if not less | |
CMOVGE | Move if not less or equal | |
CMOVL | Move if less | |
CMOVLE | Move if less or equal | |
CMOVNE | Move if not zero | |
CMOVNO | Move if not overflow | |
CMOVNP | Move if not parity | |
CMOVNS | Move if not sign | |
CMOVO | Move if overflow | |
CMOVP | Move if parity | |
CMOVS | Move if sign | |
CMP | Compare Two Operands | |
CMPSB | Compare byte at address | |
CMPSD | Compare doubleword at address | |
CMPSQ | Compare quadword at address | |
CMPSW | Compare word at address | |
CMPXCHG | Compare and Exchange | |
CMPXCHG16B | Compare and Exchange 16 Bytes | |
CMPXCHG8B | Compare and Exchange 8 Bytes | |
CPUID | CPU Identification | |
CQO | Convert qword (rax) to oword (rdx:rax) | |
CWD | Convert word (ax) to dword (dx:ax) | |
CWDE | Convert word (ax) to dword (eax) | |
DEC | Decrement by 1 | |
DIV | Unsigned Divide | |
ENDBR32 | No Operation | |
ENDBR64 | No Operation | |
EXTRACTPS | sse4.1 | Extract Packed Single Precision Floating-Point Value |
IDIV | Signed Divide | |
IMUL | Signed Multiply | |
INC | Increment by 1 | |
INVD | Invalidate Internal Caches | |
INVLPG | Invalidate TLB Entry | |
JA | Jump if not below (Jump if above) | |
JAE | Jump if not below or equal (Jump if above or equal) | |
JB | Jump if below | |
JBE | Jump if below or equal | |
JCXZ | Jump if cx is zero | |
JE | Jump if zero (Jump if equal) | |
JECXZ | Jump if ecx is zero | |
JG | Jump if not less or equal (Jump if greater) | |
JGE | Jump if not less (Jump if not less) | |
JL | Jump if less | |
JLE | Jump if less or equal | |
JMP | Jump | |
JNE | Jump if not equal | |
JNO | Jump if not overflow | |
JNP | Jump if not parity | |
JNS | Jump if not sign | |
JO | Jump if overflow | |
JP | Jump if parity | |
JRCXZ | Jump if rcx is zero | |
JS | Jump if sign | |
LAHF | Load Status Flags into AH Register | |
LDDQU | sse3 | Load Unaligned Integer 128 Bits |
LDMXCSR | sse1 | Load MXCSR Register |
LEA | Load Effective Address | |
LEAVE | High Level Procedure Exit | |
LFENCE | sse2 | Load Fence |
LODSB | Load byte at address | |
LODSD | Load doubleword at address | |
LODSQ | Load quadword at address | |
LODSW | Load word at address | |
LOOP | Loop According to ECX Counter | |
LZCNT | Count the Number of Leading Zero Bits | |
FXRSTOR | sse1 | Restore the x87 FPU, MMX, XMM, and MXCSR register state from m512byte |
FXRSTOR64 | sse1 | Restore the x87 FPU, MMX, XMM, and MXCSR register state from m512byte (REX.W = 1) |
FXSAVE | sse1 | Save the x87 FPU, MMX, XMM, and MXCSR register state to m512byte |
FXSAVE64 | sse1 | Save the x87 FPU, MMX, XMM, and MXCSR register state to m512byte (REX.W = 1) |
INT3 | Generate breakpoint trap. | |
MFENCE | sse2 | Memory Fence |
MOV | Move | |
MOVABS | Move | |
MOVAPD | sse2 | Move Aligned Packed Double-Precision Floating-Point Values |
MOVAPS | sse1 | Move Aligned Packed Single-Precision Floating-Point Values |
MOVBE | mmx/sse2 | Move Data After Swapping Bytes |
MOVD | mmx/sse2 | Move Doubleword |
MOVDDUP | sse3 | Move One Double-FP and Duplicate |
MOVDQ2Q | sse2 | Move Quadword from XMM to MMX Technology Register |
MOVDQA | sse2 | Move Aligned Double Quadword |
MOVDQU | sse2 | Move Unaligned Double Quadword |
MOVHLPS | sse1 | Move Packed Single-Precision Floating-Point Values High to Low |
MOVHPD | sse2 | Move High Packed Double-Precision Floating-Point Values |
MOVHPS | sse1 | Move High Packed Single-Precision Floating-Point Values |
MOVLHPS | sse1 | Move Packed Single-Precision Floating-Point Values Low to High |
MOVLPD | sse2 | Move Low Packed Double-Precision Floating-Point Values |
MOVLPS | sse1 | Move Low Packed Single-Precision Floating-Point Values |
MOVMSKPD | sse2 | Extract Packed Double-Precision Floating-Point Sign Mask |
MOVMSKPS | sse1 | Extract Packed Single-Precision Floating-Point Sign Mask |
MOVNTDQ | sse2 | Store Double Quadword Using Non-Temporal Hint |
MOVNTI | sse2 | Store Doubleword Using Non-Temporal Hint |
MOVNTPD | sse2 | Store Packed Double-Precision Floating-Point Values Using Non-Temporal Hint |
MOVNTPS | sse1 | Store Packed Single-Precision Floating-Point Values Using Non-Temporal Hint |
MOVNTQ | sse1 | Store of Quadword Using Non-Temporal Hint |
MOVQ | mmx/sse2 | Move Quadword |
MOVQ2DQ | sse2 | Move Quadword from MMX Technology to XMM Register |
MOVSB | Move byte at address | |
MOVSD | Move doubleword at address | |
MOVSHDUP | sse3 | Move Packed Single-FP High and Duplicate |
MOVSLDUP | sse3 | Move Packed Single-FP Low and Duplicate |
MOVSQ | Move quadword at address | |
MOVSW | Move word at address | |
MOVSX | Move with Sign-Extension | |
MOVSXD | Move with Sign-Extension | |
MOVUPD | see2 | Move Unaligned Packed Double-Precision Floating- Point Values |
MOVUPS | see1 | Move Unaligned Packed Single-Precision Floating- Point Values |
MOVSS | sse1 | Move Scalar Single-Precision Floating- Point Values |
MOVZX | Move with Zero-Extend | |
MUL | Unsigned Multiply | |
MULX | bmi2 | Unsigned Multiply Without Affecting Flags |
NEG | Two's Complement Negation | |
NOP | No Operation | |
NOT | One's Complement Negation | |
OR | Logical Inclusive OR | |
ORPD | sse2 | Bitwise Logical OR of Double-Precision Floating-Point Values |
ORPS | sse1 | Bitwise Logical OR of Single-Precision Floating-Point Values |
PACKUSWB | mmx/sse2 | Pack with Unsigned Saturation |
PACKSSDW | mmx/sse2 | Pack with Signed Saturation |
PACKSSWB | mmx/sse2 | Pack with Signed Saturation |
PADDB | mmx/sse2 | Add packed byte integers |
PADDD | mmx/sse2 | Add packed doubleword integers |
PADDQ | mmx/sse2 | Add packed quadword integers |
PADDW | mmx/sse2 | Add packed word integers |
PALIGNR | sse3 | Packed Align Right |
PAND | mmx/sse2 | Logical AND |
PANDN | mmx/sse2 | Logical AND NOT |
PAUSE | sse2 | Spin Loop Hint |
PAVGB | sse1 | Average Packed Unsigned Byte Integers |
PAVGW | sse1 | Average Packed Unsigned Word Integers |
PCMPEQB | mmx/sse2 | Compare Packed Data for Equal (bytes) |
PCMPEQD | mmx/sse2 | Compare Packed Data for Equal (dwords) |
PCMPEQW | mmx/sse2 | Compare Packed Data for Equal (words) |
PCMPGTB | mmx/sse2 | Compare Packed Data for Greater Than (bytes) |
PCMPGTD | mmx/sse2 | Compare Packed Data for Greater Than (dwords) |
PCMPGTW | mmx/sse2 | Compare Packed Data for Greater Than (words) |
PEXTRB | sse4.1 | Extract Byte |
PEXTRD | sse4.1 | Extract Dword |
PEXTRQ | sse4.1 | Extract Qword |
PEXTRW | sse4.1 | Extract Word |
PINSRB | sse4.1 | Insert Byte |
PINSRD | sse4.1 | Insert Dword |
PINSRQ | sse4.1 | Insert Qword |
PINSRW | sse2 | Insert Word |
PMADDWD | mmx/sse2 | Multiply and Add Packed Integers |
PMAXSB | sse4.1 | Maximum of Packed Signed Byte Integers |
PMAXSD | sse4.1 | Maximum of Packed Signed Doubleword Integers |
PMAXSW | sse1 | Maximum of Packed Signed Word Integers |
PMAXUB | sse1 | Maximum of Packed Unsigned Byte Integers |
PMAXUD | sse4.1 | Maximum of Packed Unsigned Doubleword Integers |
PMAXUW | sse4.1 | Maximum of Packed Unsigned Word Integers |
PMINSB | sse4.1 | Minimum of Packed Signed Byte Integers |
PMINSD | sse4.1 | Minimum of Packed Signed Doubleword Integers |
PMINSW | sse1 | Minimum of Packed Signed Word Integers |
PMINUB | sse1 | Minimum of Packed Unsigned Byte Integers |
PMINUD | sse4.1 | Minimum of Packed Unsigned Doubleword Integers |
PMINUW | sse4.1 | Minimum of Packed Unsigned Word Integers |
PMOVMSKB | sse1 | Move Byte Mask |
PMOVSXBD | sse4.1 | Sign Extend 4 Packed Signed 8-bit Integers |
PMOVSXBQ | sse4.1 | Sign Extend 2 Packed Signed 8-bit Integers |
PMOVSXBW | sse4.1 | Sign Extend 8 Packed Signed 8-bit Integers |
PMOVSXDQ | sse4.1 | Sign Extend 2 Packed Signed 32-bit Integers |
PMOVSXWD | sse4.1 | Sign Extend 4 Packed Signed 16-bit Integers |
PMOVSXWQ | sse4.1 | Sign Extend 2 Packed Signed 16-bit Integers |
PMOVZXBD | sse4.1 | Zero Extend 4 Packed Signed 8-bit Integers |
PMOVZXBQ | sse4.1 | Zero Extend 2 Packed Signed 8-bit Integers |
PMOVZXBW | sse4.1 | Zero Extend 8 Packed Signed 8-bit Integers |
PMOVZXDQ | sse4.1 | Zero Extend 2 Packed Signed 32-bit Integers |
PMOVZXWD | sse4.1 | Zero Extend 4 Packed Signed 16-bit Integers |
PMOVZXWQ | sse4.1 | Zero Extend 2 Packed Signed 16-bit Integers |
PMULHW | sse4.1 | Multiply Packed Signed Integers and Store High Result |
PMULLD | sse4.1 | Multiply Packed Integers and Store Low Result |
PMULLW | sse4.1 | Multiply Packed Signed Integers and Store Low Result |
PMULUDQ | sse2 | Multiply Unsigned Doubleword Integer |
POP | Pop a Value from the Stack | |
POPCNT | Count Number of Bits Set to 1 | |
POPAL/POPAD | Pop All General-Purpose Registers | |
POPF | Pop Stack into lower 16-bit of EFLAGS Register | |
POPFD | Pop Stack into EFLAGS Register | |
POPFQ | Pop Stack into RFLAGS Register | |
POR | mmx/sse2 | Bitwise Logical OR |
PREFETCH | 3DNow | Move data from m8 closer to the processor without expecting to write back |
PREFETCHNTA | mmx/sse1 | Move data from m8 closer to the processor using NTA hint |
PREFETCHT0 | mmx/sse1 | Move data from m8 closer to the processor using T0 hint |
PREFETCHT1 | mmx/sse1 | Move data from m8 closer to the processor using T1 hint |
PREFETCHT2 | mmx/sse1 | Move data from m8 closer to the processor using T2 hint |
PREFETCHW | 3DNow | Move data from m8 closer to the processor in anticipation of a write |
PSHUFB | sse3 | Shuffle bytes according to contents |
PSHUFD | sse2 | Shuffle Packed Doublewords |
PSHUFHW | sse2 | Shuffle Packed High Words |
PSHUFLW | sse2 | Shuffle Packed Low Words |
PSHUFW | sse1 | Shuffle Packed Words |
PSLLD | mmx/ssed2 | Shift Doubleword Left Logical |
PSLLDQ | sse2 | Shift Double Quadword Left Logical |
PSLLQ | mmx/ssed2 | Shift Quadword Left Logical |
PSLLW | mmx/ssed2 | Shift Word Left Logical |
PSRAD | mmx/ssed2 | Shift Packed Doubleword Right Arithmetic |
PSRAW | mmx/ssed2 | Shift Packed Word Right Arithmetic |
PSRLD | sse2 | Shift Packed Doubleword Right Logical |
PSRLDQ | sse2 | Shift Double Quadword Right Logical |
PSRLQ | sse2 | Shift Quadword Right Logical |
PSRLW | sse2 | Shift Word Right Logical |
PSUBB | mmx/sse2 | Subtract packed byte integers |
PSUBD | mmx/sse2 | Subtract packed doubleword integers |
PSUBQ | mmx/sse2 | Subtract packed quadword integers |
PSUBW | mmx/sse2 | Subtract packed word integers |
PTEST | sse4.1 | Logical Compare |
PUNPCKHBW | mmx,sse2 | Unpack High Data (Unpack and interleave high-order bytes) |
PUNPCKHDQ | mmx,sse2 | Unpack High Data (Unpack and interleave high-order doublewords) |
PUNPCKHQDQ | sse2 | Unpack High Data (Unpack and interleave high-order quadwords) |
PUNPCKHWD | mmx,sse2 | Unpack High Data (Unpack and interleave high-order words) |
PUNPCKLBW | mmx,sse2 | Unpack Low Data (Unpack and interleave low-order bytes) |
PUNPCKLDQ | mmx,sse2 | Unpack Low Data (Unpack and interleave low-order doublewords) |
PUNPCKLQDQ | sse2 | Unpack Low Data (Unpack and interleave low-order quadwords) |
PUNPCKLWD | mmx,sse2 | Unpack Low Data (Unpack and interleave low-order words) |
PUSH | Push a Value onto the Stack | |
PUSHAL/PUSHAD | Push All General-Purpose Registers | |
PUSHFD | Push EFLAGS Register onto the Stack | |
PUSHFQ | Push RFLAGS Register onto the Stack | |
PXOR | mmx/sse2 | Logical Exclusive OR |
RCL | Rotate Left with Carry | |
RCR | Rotate Right with Carry | |
RDTSC | Read Time-Stamp Counter | |
RET | Return from Procedure | |
ROL | Rotate Left | |
ROR | Rotate Right | |
RORX | bmi2 | Rotate Right Logical Without Affecting Flags |
SAHF | Store AH into Flags | |
SAL | Shift Left | |
SAR | Shift Right Signed | |
SARX | bmi2 | Shift arithmetic right without affecting flags |
SBB | Integer Subtraction with Borrow | |
SCASB | Scan byte at address | |
SCASD | Scan doubleword at address | |
SCASQ | Scan quadword at address | |
SCASW | Scan word at address | |
SETA | Set byte if above | |
SETAE | Set byte if above or equal | |
SETB | Set byte if below | |
SETBE | Set byte if below or equal | |
SETE | Set byte if zero | |
SETG | Set byte if greater | |
SETGE | Set byte if greater or equal | |
SETL | Set byte if less | |
SETLE | Set byte if less or equal | |
SETNE | Set byte if not zero | |
SETNO | Set byte if not overflow | |
SETNP | Set byte if not parity | |
SETNS | Set byte if not sign | |
SETO | Set byte if overflow | |
SETP | Set byte if parity | |
SETS | Set byte if sign | |
SFENCE | sse1 | Store Fence |
SHL | Shift Left | |
SHLD | Double-precision Shift Left | |
SHLX | bmi2 | Shift Logical Left Without Affecting Flags |
SHR | Shift Right Unsigned | |
SHRD | Double Precision Shift Right | |
SHRX | bmi2 | Shift Logical Right Without Affecting Flags |
STC | Set Carry Flag | |
STD | Set Direction Flag | |
STI | Set Interrupt Flag | |
STMXCSR | sse1 | Store MXCSR Register State |
STOSB | Store byte at address | |
STOSD | Store doubleword at address | |
STOSQ | Store quadword at address | |
STOSW | Store word at address | |
SUB | Subtract | |
SYSCALL | Fast System Call | |
SYSENTER | Fast System Call | |
TEST | Logical Compare | |
TZCNT | bmi1 | Count the Number of Trailing Zero Bits |
UNPCKHPD | sse2 | Unpack and Interleave High Packed Double- Precision Floating-Point Values |
UNPCKHPS | sse1 | Unpack and Interleave High Packed Single-Precision Floating-Point Values |
UNPCKLPD | sse2 | Unpack and Interleave Low Packed Double-Precision Floating-Point Values |
UNPCKLPS | sse1 | Unpack and Interleave Low Packed Single-Precision Floating-Point Values |
VERR | Set ZF=1 if segment specified with r/m16 can be read | |
VERW | Set ZF=1 if segment specified with r/m16 can be written | |
VEXTRACTI128 | avx2 | VEX Extract Packed Integer Values |
VMOVD | avx | VEX Move Doubleword |
VMOVDQA | avx | VEX Move aligned packed integer values |
VMOVDQU | avx | VEX Move unaligned packed integer values |
VMOVNTDQ | avx | VEX Store Double Quadword Using Non-Temporal Hint |
VMOVQ | avx | VEX Move Quadword |
VMOVSD | avx | VEX Move or Merge Scalar Double-Precision Floating-Point Value |
VMOVAPS | avx | VEX Move Aligned Packed Single-Precision Floating-Point Values |
VMOVUPS | avx | VEX Move Unaligned Packed Single-Precision Floating-Point Values |
VPACKUSWB | avx/avx2 | VEX Pack with Unsigned Saturation |
VPACKSSDW | avx/avx2 | VEX Pack with Signed Saturation |
VPACKSSWB | avx/avx2 | VEX Pack with Signed Saturation |
VPADDB | avx/avx2 | VEX Add Packed Byte Integers |
VPADDD | avx/avx2 | VEX Add Packed Doubleword Integers |
VPADDW | avx/avx2 | VEX Add Packed Word Integers |
VPAND | avx/avx2 | VEX Logical AND |
VPANDN | avx/avx2 | VEX Logical AND NOT |
VPERM2I128 | avx2 | VEX Permute Integer Values |
VPERMQ | avx2 | VEX Qwords Element Permutation |
VPEXTRB | avx/avx2 | VEX Extract Byte |
VPEXTRD | avx/avx2 | VEX Extract Dword |
VPEXTRQ | avx/avx2 | VEX Extract Qword |
VPEXTRW | avx/avx2 | VEX Extract Word |
VPBROADCASTB | avx2 | VEX Load Byte Integer and broadcast |
VPCMPEQB | avx/avx2 | VEX Compare packed Bytes for equality |
VPCMPEQD | avx/avx2 | VEX Compare packed Doublewords for equality |
VPCMPEQQ | avx/avx2 | VEX Compare packed Quadwords for equality |
VPCMPEQW | avx/avx2 | VEX Compare packed Words for equality |
VPCMPGTB | avx/avx2 | VEX Compare Packed Bytes for Greater Than |
VPCMPGTD | avx/avx2 | VEX Compare Packed Doublewords for Greater Than |
VPCMPGTW | avx/avx2 | VEX Compare Packed Words for Greater Than |
VPMADDWD | avx/avx | VEX Multiply and Add Packed Integers |
VPMOVMSKB | avx/avx2 | VEX Move Byte Mask |
VPMINUB | avx/avx2 | VEX Minimum of Packed Unsigned Byte Integers |
VPMULHW | avx/avx2 | VEX Multiply Packed Signed Integers and Store High Result |
VPMULLW | avx/avx2 | VEX Multiply Packed Signed Integers and Store Low Result |
VPOR | avx/avx2 | VEX Logical OR |
VPSHUFD | avx/avx2 | VEX Shuffle Packed Doublewords |
VPSIGNW | avx/avx2 | VEX Packed SIGN |
VPSLLDQ | avx/avx2 | VEX Shift Packed Double Quadword Left Logical |
VPSLLW | avx/avx2 | VEX Shift Packed Word Left Logical |
VPSRAD | avx/avx2 | VEX Shift Packed Doubleword Right Arithmetic |
VPSRAW | avx/avx2 | VEX Shift Packed Word Right Arithmetic |
VPSRLDQ | avx/avx2 | VEX Shift Packed Double Quadword Right Logical |
VPSRLW | avx/avx2 | VEX Shift Packed Word Right Logical |
VPSUBB | avx/avx2 | VEX Subtract packed Byte integers |
VPSUBD | avx/avx2 | VEX Subtract packed Doubleword integers |
VPSUBQ | avx/avx2 | VEX Subtract packed Quadword integers |
VPSUBW | avx/avx2 | VEX Subtract packed Word integers |
VPTEST | avx | VEX Logical Compare |
VPUNPCKHBW | avx/avx2 | VEX Unpack High Data (Unpack and interleave high-order bytes) |
VPUNPCKHDQ | avx/avx2 | VEX Unpack High Data (Unpack and interleave high-order doublewords) |
VPUNPCKHQDQ | avx/avx2 | VEX Unpack High Data (Unpack and interleave high-order quadwords) |
VPUNPCKHWD | avx/avx2 | VEX Unpack High Data (Unpack and interleave high-order words) |
VPUNPCKLBW | avx/avx2 | VEX Unpack Low Data (Unpack and interleave low-order bytes) |
VPUNPCKLDQ | avx/avx2 | VEX Unpack Low Data (Unpack and interleave low-order doublewords) |
VPUNPCKLQDQ | avx/avx2 | VEX Unpack Low Data (Unpack and interleave low-order quadwords) |
VPUNPCKLWD | avx/avx2 | VEX Unpack Low Data (Unpack and interleave low-order words) |
VPXOR | avx/avx2 | VEX Logical XOR |
VXORPS | avx | VEX Bitwise Logical XOR for Single-Precision Floating-Point Values |
WAIT | Wait | |
WBINVD | Write Back and Invalidate Cache | |
XADD | Exchange and Add | |
XCHG | Exchange Register/Memory with Register | |
XOR | Logical Exclusive OR | |
XORPD | sse2 | Bitwise Logical XOR for Double-Precision Floating-Point Values |
XORPS | sse1 | Bitwise Logical XOR for Single-Precision Floating-Point Values |