Module X86_types.Pcmpstr

See section 4.1 of the Intel® 64 and IA-32 Architectures Software Developer’s Manual, Volumes 2A & 2B: Instruction Set Reference (order numbers 253666 and 253667)

type ssize =
  1. | Bytes
  2. | Words
type ssign =
  1. | Signed
  2. | Unsigned
type agg =
  1. | EqualAny
  2. | Ranges
  3. | EqualEach
  4. | EqualOrdered
type outselectsig =
  1. | LSB
  2. | MSB
type outselectmask =
  1. | Bitmask
  2. | Bytemask
type imm8cb = {
  1. ssize : ssize;
  2. ssign : ssign;
  3. agg : agg;
  4. negintres1 : bool;
  5. maskintres1 : bool;
  6. outselectsig : outselectsig;
  7. outselectmask : outselectmask;
}

See Section 4.1 of Intel manual for more information on the immediate control byte.

i0: 0 = 16 packed bytes 1 = 8 packed words i1: 0 = packed elements are unsigned 1 = packed elements are signed i3:2: 00 = "equal any" 01 = "ranges" 10 = "each each" 11 = "equal ordered" i4: 0 = IntRes1 unmodified 1 = IntRes1 is negated (1's complement) i5: 0 = Negation of IntRes1 is for all 16 (8) bits 1 = Negation of IntRes1 is masked by reg/mem validity i6: 0 = Use least significant bit for IntRes2 1 = Use most significant bit for IntRes2 i7: Undefined, set to 0.

type out =
  1. | Index
  2. | Mask
type len =
  1. | Implicit
  2. | Explicit
type pcmpinfo = {
  1. out : out;
  2. len : len;
}

Information about the type of pcmp instruction.