osaca_version: 0.3.0
isa: "x86"
# Contains all operand-irregular instruction forms OSACA supports for x86.
# Operand-regular for a x86 AT&T instruction form with N operands in the shape of
#   mnemonic op1 ... opN
# means that opN is the only destination operand and op1 to op(N-1) are source operands.
instruction_forms:
    - name: adc
      operands:
        - class: "register"
          name: "gpr"
          source: true
          destination: false
        - class: "register"
          name: "gpr"
          source: true
          destination: true
    - name: adc
      operands:
        - class: "immediate"
          imd: "int"
          source: true
          destination: false
        - class: "register"
          name: "gpr"
          source: true
          destination: true
    - name: adc
      operands:
        - class: "register"
          name: "gpr"
          source: true
          destination: false
        - class: "register"
          name: "gpr"
          source: true
          destination: true
    - name: add
      operands:
        - class: "immediate"
          imd: "int"
          source: true
          destination: false
        - class: "register"
          name: "gpr"
          source: true
          destination: true
      hidden_operands:
        - class: "flag"
          name: "OF"
          source: true
          destination: false
        - class: "flag"
          name: "SF"
          source: false
          destination: true
        - class: "flag"
          name: "ZF"
          source: false
          destination: true
        - class: "flag"
          name: "AF"
          source: false
          destination: true
        - class: "flag"
          name: "PF"
          source: false
          destination: true
        - class: "flag"
          name: "CF"
          source: false
          destination: true
    - name: add
      operands:
        - class: "register"
          name: "gpr"
          source: true
          destination: false
        - class: "register"
          name: "gpr"
          source: true
          destination: true
      hidden_operands:
        - class: "flag"
          name: "OF"
          source: false
          destination: true
        - class: "flag"
          name: "SF"
          source: false
          destination: true
        - class: "flag"
          name: "ZF"
          source: false
          destination: true
        - class: "flag"
          name: "AF"
          source: false
          destination: true
        - class: "flag"
          name: "PF"
          source: false
          destination: true
        - class: "flag"
          name: "CF"
          source: false
          destination: true
    - name: add
      operands:
        - class: "immediate"
          imd: "int"
          source: true
          destination: false
        - class: "memory"
          base: "*"
          offset: "*"
          index: "*"
          scale: "*"
          source: true
          destination: true
      hidden_operands:
        - class: "flag"
          name: "OF"
          source: false
          destination: true
        - class: "flag"
          name: "SF"
          source: false
          destination: true
        - class: "flag"
          name: "ZF"
          source: false
          destination: true
        - class: "flag"
          name: "AF"
          source: false
          destination: true
        - class: "flag"
          name: "PF"
          source: false
          destination: true
        - class: "flag"
          name: "CF"
          source: false
          destination: true
    - name: add
      operands:
        - class: "register"
          name: "gpr"
          source: true
          destination: false
        - class: "memory"
          base: "*"
          offset: "*"
          index: "*"
          scale: "*"
          source: true
          destination: true
      hidden_operands:
        - class: "flag"
          name: "OF"
          source: false
          destination: true
        - class: "flag"
          name: "SF"
          source: false
          destination: true
        - class: "flag"
          name: "ZF"
          source: false
          destination: true
        - class: "flag"
          name: "AF"
          source: false
          destination: true
        - class: "flag"
          name: "PF"
          source: false
          destination: true
        - class: "flag"
          name: "CF"
          source: false
          destination: true
    - name: addsd
      operands:
        - class: "register"
          name: "xmm"
          source: true
          destination: true
        - class: "register"
          name: "xmm"
          source: true
          destination: false
    - name: addss
      operands:
        - class: "register"
          name: "xmm"
          source: true
          destination: true
        - class: "register"
          name: "xmm"
          source: true
          destination: false
    - name: and
      operands:
        - class: "immediate"
          imd: "int"
          source: true
          destination: false
        - class: "register"
          name: "gpr"
          source: true
          destination: true
    - name: and
      operands:
        - class: "register"
          name: "gpr"
          source: true
          destination: false
        - class: "register"
          name: "gpr"
          source: true
          destination: true
    - name: and
      operands:
        - class: "immediate"
          imd: "int"
          source: true
          destination: false
        - class: "memory"
          base: "*"
          offset: "*"
          index: "*"
          scale: "*"
          source: true
          destination: true
    - name: and
      operands:
        - class: "register"
          name: "gpr"
          source: true
          destination: false
        - class: "memory"
          base: "*"
          offset: "*"
          index: "*"
          scale: "*"
          source: true
          destination: true
    - name: andn
      operands:
        - class: "register"
          name: "gpr"
          source: true
          destination: false
        - class: "register"
          name: "gpr"
          source: true
          destination: false
        - class: "register"
          name: "gpr"
          source: false
          destination: true
    - name: blsr
      operands:
        - class: "register"
          name: "gpr"
          source: true
          destination: false
        - class: "register"
          name: "gpr"
          source: false
          destination: true
    - name: bsf
      operands:
        - class: "register"
          name: "gpr"
          source: true
          destination: false
        - class: "register"
          name: "gpr"
          source: false
          destination: true
    - name: bsr
      operands:
        - class: "register"
          name: "gpr"
          source: true
          destination: false
        - class: "register"
          name: "gpr"
          source: false
          destination: true
    - name: bts
      operands:
        - class: "immediate"
          imd: "int"
          source: true
          destination: false
        - class: "register"
          name: "gpr"
          source: true
          destination: true
    - name: bts
      operands:
        - class: "register"
          name: "gpr"
          source: true
          destination: false
        - class: "register"
          name: "gpr"
          source: true
          destination: true
    - name: bts
      operands:
        - class: "immediate"
          imd: "int"
          source: true
          destination: false
        - class: "memory"
          base: "*"
          offset: "*"
          index: "*"
          scale: "*"
          source: true
          destination: true
    - name: bts
      operands:
        - class: "register"
          name: "gpr"
          source: true
          destination: false
        - class: "memory"
          base: "*"
          offset: "*"
          index: "*"
          scale: "*"
          source: true
          destination: true
    - name: cld
      operands: []
      hidden_operands:
        - class: "flag"
          name: "DF"
          source: false
          destination: true
    - name: cbtw
      operands: []
      hidden_operands:
        - class: "register"
          name: "al"
          source: true
          destination: false
        - class: "register"
          name: "ax"
          source: false
          destination: true
    - name: cwtl
      operands: []
      hidden_operands:
        - class: "register"
          name: "ax"
          source: true
          destination: false
        - class: "register"
          name: "eax"
          source: false
          destination: true
    - name: cwtd
      operands: []
      hidden_operands:
        - class: "register"
          name: "ax"
          source: true
          destination: false
        - class: "register"
          name: "dx"
          source: false
          destination: true
        - class: "register"
          name: "ax"
          source: false
          destination: true
    - name: cltd
      operands: []
      hidden_operands:
        - class: "register"
          name: "eax"
          source: true
          destination: false
        - class: "register"
          name: "edx"
          source: false
          destination: true
        - class: "register"
          name: "eax"
          source: false
          destination: true
    - name: cltq
      operands: []
      hidden_operands:
        - class: "register"
          name: "eax"
          source: true
          destination: false
        - class: "register"
          name: "rax"
          source: false
          destination: true
    - name: cqtq
      operands: []
      hidden_operands:
        - class: "register"
          name: "rax"
          source: true
          destination: false
        - class: "register"
          name: "rdx"
          source: false
          destination: true
        - class: "register"
          name: "rax"
          source: false
          destination: true
    - name: cmova
      operands:
        - class: "register"
          name: "gpr"
          source: true
          destination: false
        - class: "register"
          name: "gpr"
          source: false
          destination: true
      hidden_operands:
        - class: "flag"
          name: "CF"
          source: true
          destination: false
        - class: "flag"
          name: "ZF"
          source: true
          destination: false
    - name: cmova
      operands:
        - class: "memory"
          base: "*"
          offset: "*"
          index: "*"
          scale: "*"
          source: true
          destination: false
        - class: "register"
          name: "gpr"
          source: false
          destination: true
      hidden_operands:
        - class: "flag"
          name: "CF"
          source: true
          destination: false
        - class: "flag"
          name: "ZF"
          source: true
          destination: false
    - name: cmova
      operands:
        - class: "register"
          name: "gpr"
          source: true
          destination: false
        - class: "memory"
          base: "*"
          offset: "*"
          index: "*"
          scale: "*"
          source: false
          destination: true
      hidden_operands:
        - class: "flag"
          name: "CF"
          source: true
          destination: false
        - class: "flag"
          name: "ZF"
          source: true
          destination: false
    - name: cmovae
      operands:
        - class: "register"
          name: "gpr"
          source: true
          destination: false
        - class: "register"
          name: "gpr"
          source: false
          destination: true
      hidden_operands:
        - class: "flag"
          name: "CF"
          source: true
          destination: false
    - name: cmovae
      operands:
        - class: "memory"
          base: "*"
          offset: "*"
          index: "*"
          scale: "*"
          source: true
          destination: false
        - class: "register"
          name: "gpr"
          source: false
          destination: true
      hidden_operands:
        - class: "flag"
          name: "CF"
          source: true
          destination: false
    - name: cmovae
      operands:
        - class: "register"
          name: "gpr"
          source: true
          destination: false
        - class: "memory"
          base: "*"
          offset: "*"
          index: "*"
          scale: "*"
          source: false
          destination: true
      hidden_operands:
        - class: "flag"
          name: "CF"
          source: true
          destination: false
    - name: cmovb
      operands:
        - class: "register"
          name: "gpr"
          source: true
          destination: false
        - class: "register"
          name: "gpr"
          source: false
          destination: true
      hidden_operands:
        - class: "flag"
          name: "CF"
          source: true
          destination: false
    - name: cmovb
      operands:
        - class: "memory"
          base: "*"
          offset: "*"
          index: "*"
          scale: "*"
          source: true
          destination: false
        - class: "register"
          name: "gpr"
          source: false
          destination: true
      hidden_operands:
        - class: "flag"
          name: "CF"
          source: true
          destination: false
    - name: cmovb
      operands:
        - class: "register"
          name: "gpr"
          source: true
          destination: false
        - class: "memory"
          base: "*"
          offset: "*"
          index: "*"
          scale: "*"
          source: false
          destination: true
      hidden_operands:
        - class: "flag"
          name: "CF"
          source: true
          destination: false
    - name: cmovbe
      operands:
        - class: "register"
          name: "gpr"
          source: true
          destination: false
        - class: "register"
          name: "gpr"
          source: false
          destination: true
      hidden_operands:
        - class: "flag"
          name: "CF"
          source: true
          destination: false
        - class: "flag"
          name: "ZF"
          source: true
          destination: false
    - name: cmovbe
      operands:
        - class: "memory"
          base: "*"
          offset: "*"
          index: "*"
          scale: "*"
          source: true
          destination: false
        - class: "register"
          name: "gpr"
          source: false
          destination: true
      hidden_operands:
        - class: "flag"
          name: "CF"
          source: true
          destination: false
        - class: "flag"
          name: "ZF"
          source: true
          destination: false
    - name: cmovbe
      operands:
        - class: "register"
          name: "gpr"
          source: true
          destination: false
        - class: "memory"
          base: "*"
          offset: "*"
          index: "*"
          scale: "*"
          source: false
          destination: true
      hidden_operands:
        - class: "flag"
          name: "CF"
          source: true
          destination: false
        - class: "flag"
          name: "ZF"
          source: true
          destination: false
    - name: cmovc
      operands:
        - class: "register"
          name: "gpr"
          source: true
          destination: false
        - class: "register"
          name: "gpr"
          source: false
          destination: true
      hidden_operands:
        - class: "flag"
          name: "CF"
          source: true
          destination: false
    - name: cmovc
      operands:
        - class: "memory"
          base: "*"
          offset: "*"
          index: "*"
          scale: "*"
          source: true
          destination: false
        - class: "register"
          name: "gpr"
          source: false
          destination: true
      hidden_operands:
        - class: "flag"
          name: "CF"
          source: true
          destination: false
    - name: cmovc
      operands:
        - class: "register"
          name: "gpr"
          source: true
          destination: false
        - class: "memory"
          base: "*"
          offset: "*"
          index: "*"
          scale: "*"
          source: false
          destination: true
      hidden_operands:
        - class: "flag"
          name: "CF"
          source: true
          destination: false
    - name: cmove
      operands:
        - class: "register"
          name: "gpr"
          source: true
          destination: false
        - class: "register"
          name: "gpr"
          source: false
          destination: true
      hidden_operands:
        - class: "flag"
          name: "ZF"
          source: true
          destination: false
    - name: cmove
      operands:
        - class: "memory"
          base: "*"
          offset: "*"
          index: "*"
          scale: "*"
          source: true
          destination: false
        - class: "register"
          name: "gpr"
          source: false
          destination: true
      hidden_operands:
        - class: "flag"
          name: "ZF"
          source: true
          destination: false
    - name: cmove
      operands:
        - class: "register"
          name: "gpr"
          source: true
          destination: false
        - class: "memory"
          base: "*"
          offset: "*"
          index: "*"
          scale: "*"
          source: false
          destination: true
      hidden_operands:
        - class: "flag"
          name: "ZF"
          source: true
          destination: false
    - name: cmovg
      operands:
        - class: "register"
          name: "gpr"
          source: true
          destination: false
        - class: "register"
          name: "gpr"
          source: false
          destination: true
      hidden_operands:
        - class: "flag"
          name: "ZF"
          source: true
          destination: false
        - class: "flag"
          name: "SF"
          source: true
          destination: false
    - name: cmovg
      operands:
        - class: "memory"
          base: "*"
          offset: "*"
          index: "*"
          scale: "*"
          source: true
          destination: false
        - class: "register"
          name: "gpr"
          source: false
          destination: true
      hidden_operands:
        - class: "flag"
          name: "ZF"
          source: true
          destination: false
        - class: "flag"
          name: "SF"
          source: true
          destination: false
    - name: cmovg
      operands:
        - class: "register"
          name: "gpr"
          source: true
          destination: false
        - class: "memory"
          base: "*"
          offset: "*"
          index: "*"
          scale: "*"
          source: false
          destination: true
      hidden_operands:
        - class: "flag"
          name: "ZF"
          source: true
          destination: false
        - class: "flag"
          name: "SF"
          source: true
          destination: false
    - name: cmovge
      operands:
        - class: "register"
          name: "gpr"
          source: true
          destination: false
        - class: "register"
          name: "gpr"
          source: false
          destination: true
      hidden_operands:
        - class: "flag"
          name: "SF"
          source: true
          destination: false
    - name: cmovge
      operands:
        - class: "memory"
          base: "*"
          offset: "*"
          index: "*"
          scale: "*"
          source: true
          destination: false
        - class: "register"
          name: "gpr"
          source: false
          destination: true
      hidden_operands:
        - class: "flag"
          name: "SF"
          source: true
          destination: false
    - name: cmovge
      operands:
        - class: "register"
          name: "gpr"
          source: true
          destination: false
        - class: "memory"
          base: "*"
          offset: "*"
          index: "*"
          scale: "*"
          source: false
          destination: true
      hidden_operands:
        - class: "flag"
          name: "SF"
          source: true
          destination: false
    - name: cmovl
      operands:
        - class: "register"
          name: "gpr"
          source: true
          destination: false
        - class: "register"
          name: "gpr"
          source: false
          destination: true
      hidden_operands:
        - class: "flag"
          name: "SF"
          source: true
          destination: false
        - class: "flag"
          name: "OF"
          source: true
          destination: false
    - name: cmovl
      operands:
        - class: "memory"
          base: "*"
          offset: "*"
          index: "*"
          scale: "*"
          source: true
          destination: false
        - class: "register"
          name: "gpr"
          source: false
          destination: true
      hidden_operands:
        - class: "flag"
          name: "SF"
          source: true
          destination: false
        - class: "flag"
          name: "OF"
          source: true
          destination: false
    - name: cmovl
      operands:
        - class: "register"
          name: "gpr"
          source: true
          destination: false
        - class: "memory"
          base: "*"
          offset: "*"
          index: "*"
          scale: "*"
          source: false
          destination: true
      hidden_operands:
        - class: "flag"
          name: "SF"
          source: true
          destination: false
        - class: "flag"
          name: "OF"
          source: true
          destination: false
    - name: cmovle
      operands:
        - class: "register"
          name: "gpr"
          source: true
          destination: false
        - class: "register"
          name: "gpr"
          source: false
          destination: true
      hidden_operands:
        - class: "flag"
          name: "ZF"
          source: true
          destination: false
        - class: "flag"
          name: "SF"
          source: true
          destination: false
        - class: "flag"
          name: "OF"
          source: true
          destination: false
    - name: cmovle
      operands:
        - class: "memory"
          base: "*"
          offset: "*"
          index: "*"
          scale: "*"
          source: true
          destination: false
        - class: "register"
          name: "gpr"
          source: false
          destination: true
      hidden_operands:
        - class: "flag"
          name: "ZF"
          source: true
          destination: false
        - class: "flag"
          name: "SF"
          source: true
          destination: false
        - class: "flag"
          name: "OF"
          source: true
          destination: false
    - name: cmovle
      operands:
        - class: "register"
          name: "gpr"
          source: true
          destination: false
        - class: "memory"
          base: "*"
          offset: "*"
          index: "*"
          scale: "*"
          source: false
          destination: true
      hidden_operands:
        - class: "flag"
          name: "ZF"
          source: true
          destination: false
        - class: "flag"
          name: "SF"
          source: true
          destination: false
        - class: "flag"
          name: "OF"
          source: true
          destination: false
    - name: cmovna
      operands:
        - class: "register"
          name: "gpr"
          source: true
          destination: false
        - class: "register"
          name: "gpr"
          source: false
          destination: true
      hidden_operands:
        - class: "flag"
          name: "CF"
          source: true
          destination: false
        - class: "flag"
          name: "ZF"
          source: true
          destination: false
    - name: cmovna
      operands:
        - class: "memory"
          base: "*"
          offset: "*"
          index: "*"
          scale: "*"
          source: true
          destination: false
        - class: "register"
          name: "gpr"
          source: false
          destination: true
      hidden_operands:
        - class: "flag"
          name: "CF"
          source: true
          destination: false
        - class: "flag"
          name: "ZF"
          source: true
          destination: false
    - name: cmovna
      operands:
        - class: "register"
          name: "gpr"
          source: true
          destination: false
        - class: "memory"
          base: "*"
          offset: "*"
          index: "*"
          scale: "*"
          source: false
          destination: true
      hidden_operands:
        - class: "flag"
          name: "CF"
          source: true
          destination: false
        - class: "flag"
          name: "ZF"
          source: true
          destination: false
    - name: cmovnae
      operands:
        - class: "register"
          name: "gpr"
          source: true
          destination: false
        - class: "register"
          name: "gpr"
          source: false
          destination: true
      hidden_operands:
        - class: "flag"
          name: "CF"
          source: true
          destination: false
    - name: cmovnae
      operands:
        - class: "memory"
          base: "*"
          offset: "*"
          index: "*"
          scale: "*"
          source: true
          destination: false
        - class: "register"
          name: "gpr"
          source: false
          destination: true
      hidden_operands:
        - class: "flag"
          name: "CF"
          source: true
          destination: false
    - name: cmovnae
      operands:
        - class: "register"
          name: "gpr"
          source: true
          destination: false
        - class: "memory"
          base: "*"
          offset: "*"
          index: "*"
          scale: "*"
          source: false
          destination: true
      hidden_operands:
        - class: "flag"
          name: "CF"
          source: true
          destination: false
    - name: cmovnb
      operands:
        - class: "register"
          name: "gpr"
          source: true
          destination: false
        - class: "register"
          name: "gpr"
          source: false
          destination: true
      hidden_operands:
        - class: "flag"
          name: "CF"
          source: true
          destination: false
    - name: cmovnb
      operands:
        - class: "memory"
          base: "*"
          offset: "*"
          index: "*"
          scale: "*"
          source: true
          destination: false
        - class: "register"
          name: "gpr"
          source: false
          destination: true
      hidden_operands:
        - class: "flag"
          name: "CF"
          source: true
          destination: false
    - name: cmovnb
      operands:
        - class: "register"
          name: "gpr"
          source: true
          destination: false
        - class: "memory"
          base: "*"
          offset: "*"
          index: "*"
          scale: "*"
          source: false
          destination: true
      hidden_operands:
        - class: "flag"
          name: "CF"
          source: true
          destination: false
    - name: cmovnbe
      operands:
        - class: "register"
          name: "gpr"
          source: true
          destination: false
        - class: "register"
          name: "gpr"
          source: false
          destination: true
      hidden_operands:
        - class: "flag"
          name: "CF"
          source: true
          destination: false
        - class: "flag"
          name: "ZF"
          source: true
          destination: false
    - name: cmovnbe
      operands:
        - class: "memory"
          base: "*"
          offset: "*"
          index: "*"
          scale: "*"
          source: true
          destination: false
        - class: "register"
          name: "gpr"
          source: false
          destination: true
      hidden_operands:
        - class: "flag"
          name: "CF"
          source: true
          destination: false
        - class: "flag"
          name: "ZF"
          source: true
          destination: false
    - name: cmovnbe
      operands:
        - class: "register"
          name: "gpr"
          source: true
          destination: false
        - class: "memory"
          base: "*"
          offset: "*"
          index: "*"
          scale: "*"
          source: false
          destination: true
      hidden_operands:
        - class: "flag"
          name: "CF"
          source: true
          destination: false
        - class: "flag"
          name: "ZF"
          source: true
          destination: false
    - name: cmovnc
      operands:
        - class: "register"
          name: "gpr"
          source: true
          destination: false
        - class: "register"
          name: "gpr"
          source: false
          destination: true
      hidden_operands:
        - class: "flag"
          name: "CF"
          source: true
          destination: false
    - name: cmovnc
      operands:
        - class: "memory"
          base: "*"
          offset: "*"
          index: "*"
          scale: "*"
          source: true
          destination: false
        - class: "register"
          name: "gpr"
          source: false
          destination: true
      hidden_operands:
        - class: "flag"
          name: "CF"
          source: true
          destination: false
    - name: cmovnc
      operands:
        - class: "register"
          name: "gpr"
          source: true
          destination: false
        - class: "memory"
          base: "*"
          offset: "*"
          index: "*"
          scale: "*"
          source: false
          destination: true
      hidden_operands:
        - class: "flag"
          name: "CF"
          source: true
          destination: false
    - name: cmovne
      operands:
        - class: "register"
          name: "gpr"
          source: true
          destination: false
        - class: "register"
          name: "gpr"
          source: false
          destination: true
      hidden_operands:
        - class: "flag"
          name: "ZF"
          source: true
          destination: false
    - name: cmovne
      operands:
        - class: "memory"
          base: "*"
          offset: "*"
          index: "*"
          scale: "*"
          source: true
          destination: false
        - class: "register"
          name: "gpr"
          source: false
          destination: true
      hidden_operands:
        - class: "flag"
          name: "ZF"
          source: true
          destination: false
    - name: cmovne
      operands:
        - class: "register"
          name: "gpr"
          source: true
          destination: false
        - class: "memory"
          base: "*"
          offset: "*"
          index: "*"
          scale: "*"
          source: false
          destination: true
      hidden_operands:
        - class: "flag"
          name: "ZF"
          source: true
          destination: false
    - name: cmovng
      operands:
        - class: "register"
          name: "gpr"
          source: true
          destination: false
        - class: "register"
          name: "gpr"
          source: false
          destination: true
      hidden_operands:
        - class: "flag"
          name: "ZF"
          source: true
          destination: false
        - class: "flag"
          name: "SF"
          source: true
          destination: false
        - class: "flag"
          name: "OF"
          source: true
          destination: false
    - name: cmovng
      operands:
        - class: "memory"
          base: "*"
          offset: "*"
          index: "*"
          scale: "*"
          source: true
          destination: false
        - class: "register"
          name: "gpr"
          source: false
          destination: true
      hidden_operands:
        - class: "flag"
          name: "ZF"
          source: true
          destination: false
        - class: "flag"
          name: "SF"
          source: true
          destination: false
        - class: "flag"
          name: "OF"
          source: true
          destination: false
    - name: cmovng
      operands:
        - class: "register"
          name: "gpr"
          source: true
          destination: false
        - class: "memory"
          base: "*"
          offset: "*"
          index: "*"
          scale: "*"
          source: false
          destination: true
      hidden_operands:
        - class: "flag"
          name: "ZF"
          source: true
          destination: false
        - class: "flag"
          name: "SF"
          source: true
          destination: false
        - class: "flag"
          name: "OF"
          source: true
          destination: false
    - name: cmovnge
      operands:
        - class: "register"
          name: "gpr"
          source: true
          destination: false
        - class: "register"
          name: "gpr"
          source: false
          destination: true
      hidden_operands:
        - class: "flag"
          name: "ZF"
          source: true
          destination: false
        - class: "flag"
          name: "OF"
          source: true
          destination: false
    - name: cmovnge
      operands:
        - class: "memory"
          base: "*"
          offset: "*"
          index: "*"
          scale: "*"
          source: true
          destination: false
        - class: "register"
          name: "gpr"
          source: false
          destination: true
      hidden_operands:
        - class: "flag"
          name: "ZF"
          source: true
          destination: false
        - class: "flag"
          name: "OF"
          source: true
          destination: false
    - name: cmovnge
      operands:
        - class: "register"
          name: "gpr"
          source: true
          destination: false
        - class: "memory"
          base: "*"
          offset: "*"
          index: "*"
          scale: "*"
          source: false
          destination: true
      hidden_operands:
        - class: "flag"
          name: "ZF"
          source: true
          destination: false
        - class: "flag"
          name: "OF"
          source: true
          destination: false
    - name: cmovnl
      operands:
        - class: "register"
          name: "gpr"
          source: true
          destination: false
        - class: "register"
          name: "gpr"
          source: false
          destination: true
      hidden_operands:
        - class: "flag"
          name: "SF"
          source: true
          destination: false
        - class: "flag"
          name: "OF"
          source: true
          destination: false
    - name: cmovnl
      operands:
        - class: "memory"
          base: "*"
          offset: "*"
          index: "*"
          scale: "*"
          source: true
          destination: false
        - class: "register"
          name: "gpr"
          source: false
          destination: true
      hidden_operands:
        - class: "flag"
          name: "SF"
          source: true
          destination: false
        - class: "flag"
          name: "OF"
          source: true
          destination: false
    - name: cmovnl
      operands:
        - class: "register"
          name: "gpr"
          source: true
          destination: false
        - class: "memory"
          base: "*"
          offset: "*"
          index: "*"
          scale: "*"
          source: false
          destination: true
      hidden_operands:
        - class: "flag"
          name: "SF"
          source: true
          destination: false
        - class: "flag"
          name: "OF"
          source: true
          destination: false
    - name: cmovnle
      operands:
        - class: "register"
          name: "gpr"
          source: true
          destination: false
        - class: "register"
          name: "gpr"
          source: false
          destination: true
      hidden_operands:
        - class: "flag"
          name: "ZF"
          source: true
          destination: false
        - class: "flag"
          name: "SF"
          source: true
          destination: false
        - class: "flag"
          name: "OF"
          source: true
          destination: false
    - name: cmovnle
      operands:
        - class: "memory"
          base: "*"
          offset: "*"
          index: "*"
          scale: "*"
          source: true
          destination: false
        - class: "register"
          name: "gpr"
          source: false
          destination: true
      hidden_operands:
        - class: "flag"
          name: "ZF"
          source: true
          destination: false
        - class: "flag"
          name: "SF"
          source: true
          destination: false
        - class: "flag"
          name: "OF"
          source: true
          destination: false
    - name: cmovnle
      operands:
        - class: "register"
          name: "gpr"
          source: true
          destination: false
        - class: "memory"
          base: "*"
          offset: "*"
          index: "*"
          scale: "*"
          source: false
          destination: true
      hidden_operands:
        - class: "flag"
          name: "ZF"
          source: true
          destination: false
        - class: "flag"
          name: "SF"
          source: true
          destination: false
        - class: "flag"
          name: "OF"
          source: true
          destination: false
    - name: cmovno
      operands:
        - class: "register"
          name: "gpr"
          source: true
          destination: false
        - class: "register"
          name: "gpr"
          source: false
          destination: true
      hidden_operands:
        - class: "flag"
          name: "OF"
          source: true
          destination: false
    - name: cmovno
      operands:
        - class: "memory"
          base: "*"
          offset: "*"
          index: "*"
          scale: "*"
          source: true
          destination: false
        - class: "register"
          name: "gpr"
          source: false
          destination: true
      hidden_operands:
        - class: "flag"
          name: "OF"
          source: true
          destination: false
    - name: cmovno
      operands:
        - class: "register"
          name: "gpr"
          source: true
          destination: false
        - class: "memory"
          base: "*"
          offset: "*"
          index: "*"
          scale: "*"
          source: false
          destination: true
      hidden_operands:
        - class: "flag"
          name: "OF"
          source: true
          destination: false
    - name: cmovnp
      operands:
        - class: "register"
          name: "gpr"
          source: true
          destination: false
        - class: "register"
          name: "gpr"
          source: false
          destination: true
      hidden_operands:
        - class: "flag"
          name: "PF"
          source: true
          destination: false
    - name: cmovnp
      operands:
        - class: "memory"
          base: "*"
          offset: "*"
          index: "*"
          scale: "*"
          source: true
          destination: false
        - class: "register"
          name: "gpr"
          source: false
          destination: true
      hidden_operands:
        - class: "flag"
          name: "PF"
          source: true
          destination: false
    - name: cmovnp
      operands:
        - class: "register"
          name: "gpr"
          source: true
          destination: false
        - class: "memory"
          base: "*"
          offset: "*"
          index: "*"
          scale: "*"
          source: false
          destination: true
      hidden_operands:
        - class: "flag"
          name: "PF"
          source: true
          destination: false
    - name: cmovns
      operands:
        - class: "register"
          name: "gpr"
          source: true
          destination: false
        - class: "register"
          name: "gpr"
          source: false
          destination: true
      hidden_operands:
        - class: "flag"
          name: "SF"
          source: true
          destination: false
    - name: cmovns
      operands:
        - class: "memory"
          base: "*"
          offset: "*"
          index: "*"
          scale: "*"
          source: true
          destination: false
        - class: "register"
          name: "gpr"
          source: false
          destination: true
      hidden_operands:
        - class: "flag"
          name: "SF"
          source: true
          destination: false
    - name: cmovns
      operands:
        - class: "register"
          name: "gpr"
          source: true
          destination: false
        - class: "memory"
          base: "*"
          offset: "*"
          index: "*"
          scale: "*"
          source: false
          destination: true
      hidden_operands:
        - class: "flag"
          name: "SF"
          source: true
          destination: false
    - name: cmovnz
      operands:
        - class: "register"
          name: "gpr"
          source: true
          destination: false
        - class: "register"
          name: "gpr"
          source: false
          destination: true
      hidden_operands:
        - class: "flag"
          name: "ZF"
          source: true
          destination: false
    - name: cmovnz
      operands:
        - class: "memory"
          base: "*"
          offset: "*"
          index: "*"
          scale: "*"
          source: true
          destination: false
        - class: "register"
          name: "gpr"
          source: false
          destination: true
      hidden_operands:
        - class: "flag"
          name: "ZF"
          source: true
          destination: false
    - name: cmovnz
      operands:
        - class: "register"
          name: "gpr"
          source: true
          destination: false
        - class: "memory"
          base: "*"
          offset: "*"
          index: "*"
          scale: "*"
          source: false
          destination: true
      hidden_operands:
        - class: "flag"
          name: "ZF"
          source: true
          destination: false
    - name: cmovo
      operands:
        - class: "register"
          name: "gpr"
          source: true
          destination: false
        - class: "register"
          name: "gpr"
          source: false
          destination: true
      hidden_operands:
        - class: "flag"
          name: "OF"
          source: true
          destination: false
    - name: cmovo
      operands:
        - class: "memory"
          base: "*"
          offset: "*"
          index: "*"
          scale: "*"
          source: true
          destination: false
        - class: "register"
          name: "gpr"
          source: false
          destination: true
      hidden_operands:
        - class: "flag"
          name: "OF"
          source: true
          destination: false
    - name: cmovo
      operands:
        - class: "register"
          name: "gpr"
          source: true
          destination: false
        - class: "memory"
          base: "*"
          offset: "*"
          index: "*"
          scale: "*"
          source: false
          destination: true
      hidden_operands:
        - class: "flag"
          name: "OF"
          source: true
          destination: false
    - name: cmovp
      operands:
        - class: "register"
          name: "gpr"
          source: true
          destination: false
        - class: "register"
          name: "gpr"
          source: false
          destination: true
      hidden_operands:
        - class: "flag"
          name: "PF"
          source: true
          destination: false
    - name: cmovp
      operands:
        - class: "memory"
          base: "*"
          offset: "*"
          index: "*"
          scale: "*"
          source: true
          destination: false
        - class: "register"
          name: "gpr"
          source: false
          destination: true
      hidden_operands:
        - class: "flag"
          name: "PF"
          source: true
          destination: false
    - name: cmovp
      operands:
        - class: "register"
          name: "gpr"
          source: true
          destination: false
        - class: "memory"
          base: "*"
          offset: "*"
          index: "*"
          scale: "*"
          source: false
          destination: true
      hidden_operands:
        - class: "flag"
          name: "PF"
          source: true
          destination: false
    - name: cmovpe
      operands:
        - class: "register"
          name: "gpr"
          source: true
          destination: false
        - class: "register"
          name: "gpr"
          source: false
          destination: true
      hidden_operands:
        - class: "flag"
          name: "PF"
          source: true
          destination: false
    - name: cmovpe
      operands:
        - class: "memory"
          base: "*"
          offset: "*"
          index: "*"
          scale: "*"
          source: true
          destination: false
        - class: "register"
          name: "gpr"
          source: false
          destination: true
      hidden_operands:
        - class: "flag"
          name: "PF"
          source: true
          destination: false
    - name: cmovpe
      operands:
        - class: "register"
          name: "gpr"
          source: true
          destination: false
        - class: "memory"
          base: "*"
          offset: "*"
          index: "*"
          scale: "*"
          source: false
          destination: true
      hidden_operands:
        - class: "flag"
          name: "PF"
          source: true
          destination: false
    - name: cmovpo
      operands:
        - class: "register"
          name: "gpr"
          source: true
          destination: false
        - class: "register"
          name: "gpr"
          source: false
          destination: true
      hidden_operands:
        - class: "flag"
          name: "PF"
          source: true
          destination: false
    - name: cmovpo
      operands:
        - class: "memory"
          base: "*"
          offset: "*"
          index: "*"
          scale: "*"
          source: true
          destination: false
        - class: "register"
          name: "gpr"
          source: false
          destination: true
      hidden_operands:
        - class: "flag"
          name: "PF"
          source: true
          destination: false
    - name: cmovpo
      operands:
        - class: "register"
          name: "gpr"
          source: true
          destination: false
        - class: "memory"
          base: "*"
          offset: "*"
          index: "*"
          scale: "*"
          source: false
          destination: true
      hidden_operands:
        - class: "flag"
          name: "PF"
          source: true
          destination: false
    - name: cmovs
      operands:
        - class: "register"
          name: "gpr"
          source: true
          destination: false
        - class: "register"
          name: "gpr"
          source: false
          destination: true
      hidden_operands:
        - class: "flag"
          name: "SF"
          source: true
          destination: false
    - name: cmovs
      operands:
        - class: "memory"
          base: "*"
          offset: "*"
          index: "*"
          scale: "*"
          source: true
          destination: false
        - class: "register"
          name: "gpr"
          source: false
          destination: true
      hidden_operands:
        - class: "flag"
          name: "SF"
          source: true
          destination: false
    - name: cmovs
      operands:
        - class: "register"
          name: "gpr"
          source: true
          destination: false
        - class: "memory"
          base: "*"
          offset: "*"
          index: "*"
          scale: "*"
          source: false
          destination: true
      hidden_operands:
        - class: "flag"
          name: "SF"
          source: true
          destination: false
    - name: cmovz
      operands:
        - class: "register"
          name: "gpr"
          source: true
          destination: false
        - class: "register"
          name: "gpr"
          source: false
          destination: true
      hidden_operands:
        - class: "flag"
          name: "ZF"
          source: true
          destination: false
    - name: cmovz
      operands:
        - class: "memory"
          base: "*"
          offset: "*"
          index: "*"
          scale: "*"
          source: true
          destination: false
        - class: "register"
          name: "gpr"
          source: false
          destination: true
      hidden_operands:
        - class: "flag"
          name: "ZF"
          source: true
          destination: false
    - name: cmovz
      operands:
        - class: "register"
          name: "gpr"
          source: true
          destination: false
        - class: "memory"
          base: "*"
          offset: "*"
          index: "*"
          scale: "*"
          source: false
          destination: true
      hidden_operands:
        - class: "flag"
          name: "ZF"
          source: true
          destination: false
    - name: cmp
      operands:
        - class: "immediate"
          imd: "int"
          source: true
          destination: false
        - class: "register"
          name: "gpr"
          source: true
          destination: false
      hidden_operands:
        - class: "flag"
          name: "CF"
          source: false
          destination: true
        - class: "flag"
          name: "OF"
          source: false
          destination: true
        - class: "flag"
          name: "SF"
          source: false
          destination: true
        - class: "flag"
          name: "ZF"
          source: false
          destination: true
        - class: "flag"
          name: "AF"
          source: false
          destination: true
        - class: "flag"
          name: "PF"
          source: false
          destination: true
    - name: cmp
      operands:
        - class: "immediate"
          imd: "int"
          source: true
          destination: false
        - class: "memory"
          base: "*"
          offset: "*"
          index: "*"
          scale: "*"
          source: true
          destination: false
      hidden_operands:
        - class: "flag"
          name: "CF"
          source: false
          destination: true
        - class: "flag"
          name: "OF"
          source: false
          destination: true
        - class: "flag"
          name: "SF"
          source: false
          destination: true
        - class: "flag"
          name: "ZF"
          source: false
          destination: true
        - class: "flag"
          name: "AF"
          source: false
          destination: true
        - class: "flag"
          name: "PF"
          source: false
          destination: true
    - name: cmp
      operands:
        - class: "register"
          name: "gpr"
          source: true
          destination: false
        - class: "register"
          name: "gpr"
          source: true
          destination: false
      hidden_operands:
        - class: "flag"
          name: "CF"
          source: false
          destination: true
        - class: "flag"
          name: "OF"
          source: false
          destination: true
        - class: "flag"
          name: "SF"
          source: false
          destination: true
        - class: "flag"
          name: "ZF"
          source: false
          destination: true
        - class: "flag"
          name: "AF"
          source: false
          destination: true
        - class: "flag"
          name: "PF"
          source: false
          destination: true
    - name: cmp
      operands:
        - class: "register"
          name: "gpr"
          source: true
          destination: false
        - class: "memory"
          base: "*"
          offset: "*"
          index: "*"
          scale: "*"
          source: true
          destination: false
      hidden_operands:
        - class: "flag"
          name: "CF"
          source: false
          destination: true
        - class: "flag"
          name: "OF"
          source: false
          destination: true
        - class: "flag"
          name: "SF"
          source: false
          destination: true
        - class: "flag"
          name: "ZF"
          source: false
          destination: true
        - class: "flag"
          name: "AF"
          source: false
          destination: true
        - class: "flag"
          name: "PF"
          source: false
          destination: true
    - name: cmpxchg
      operands:
        - class: "register"
          name: "gpr"
          source: true
          destination: false
        - class: "register"
          name: "gpr"
          source: true
          destination: true
      hidden_operands:
        - class: "register"
          name: "rax"
          source: true
          destination: true
        - class: "flag"
          name: "ZF"
          source: true
          destination: true
    - name: cmpxchg
      operands:
        - class: "memory"
          base: "*"
          offset: "*"
          index: "*"
          scale: "*"
          source: true
          destination: false
        - class: "register"
          name: "gpr"
          source: true
          destination: true
      hidden_operands:
        - class: "register"
          name: "rax"
          source: true
          destination: true
        - class: "flag"
          name: "ZF"
          source: true
          destination: true
    - name: cmpxchg
      operands:
        - class: "register"
          name: "gpr"
          source: true
          destination: false
        - class: "memory"
          base: "*"
          offset: "*"
          index: "*"
          scale: "*"
          source: true
          destination: true
      hidden_operands:
        - class: "register"
          name: "rax"
          source: true
          destination: true
        - class: "flag"
          name: "ZF"
          source: true
          destination: true
    - name: dec
      operands:
        - class: "register"
          name: "gpr"
          source: true
          destination: true
      hidden_operands:
        - class: "flag"
          name: "OF"
          source: false
          destination: true
        - class: "flag"
          name: "SF"
          source: false
          destination: true
        - class: "flag"
          name: "ZF"
          source: false
          destination: true
        - class: "flag"
          name: "AF"
          source: false
          destination: true
        - class: "flag"
          name: "PF"
          source: false
          destination: true
    - name: dec
      operands:
        - class: "memory"
          base: "*"
          offset: "*"
          index: "*"
          scale: "*"
          source: true
          destination: true
      hidden_operands:
        - class: "flag"
          name: "OF"
          source: false
          destination: true
        - class: "flag"
          name: "SF"
          source: false
          destination: true
        - class: "flag"
          name: "ZF"
          source: false
          destination: true
        - class: "flag"
          name: "AF"
          source: false
          destination: true
        - class: "flag"
          name: "PF"
          source: false
          destination: true
    - name: imul
      operands:
        - class: "register"
          name: "gpr"
          source: true
          destination: false
        - class: "register"
          name: "gpr"
          source: true
          destination: true
      hidden_operands:
        - class: "flag"
          name: "CF"
          source: false
          destination: true
        - class: "flag"
          name: "OF"
          source: false
          destination: true
    - name: imul
      operands:
        - class: "memory"
          base: "*"
          offset: "*"
          index: "*"
          scale: "*"
          source: true
          destination: false
        - class: "register"
          name: "gpr"
          source: true
          destination: true
      hidden_operands:
        - class: "flag"
          name: "CF"
          source: false
          destination: true
        - class: "flag"
          name: "OF"
          source: false
          destination: true
    - name: inc
      operands:
        - class: "register"
          name: "gpr"
          source: true
          destination: true
      hidden_operands:
        - class: "flag"
          name: "OF"
          source: false
          destination: true
        - class: "flag"
          name: "SF"
          source: false
          destination: true
        - class: "flag"
          name: "ZF"
          source: false
          destination: true
        - class: "flag"
          name: "AF"
          source: false
          destination: true
        - class: "flag"
          name: "PF"
          source: false
          destination: true
    - name: inc
      operands:
        - class: "memory"
          base: "*"
          offset: "*"
          index: "*"
          scale: "*"
          source: true
          destination: true
      hidden_operands:
        - class: "flag"
          name: "OF"
          source: false
          destination: true
        - class: "flag"
          name: "SF"
          source: false
          destination: true
        - class: "flag"
          name: "ZF"
          source: false
          destination: true
        - class: "flag"
          name: "AF"
          source: false
          destination: true
        - class: "flag"
          name: "PF"
          source: false
          destination: true
    - name: ldmxcsr
      operands:
        - class: "memory"
          base: "*"
          offset: "*"
          index: "*"
          scale: "*"
          source: true
          destination: false
      # TODO sets MXCSR
    - name: mulsd
      operands:
        - class: "register"
          name: "xmm"
          source: true
          destination: false
        - class: "register"
          name: "xmm"
          source: true
          destination: true
    - name: mulss
      operands:
        - class: "register"
          name: "xmm"
          source: true
          destination: false
        - class: "register"
          name: "xmm"
          source: true
          destination: true
    - name: mulpd
      operands:
        - class: "register"
          name: "xmm"
          source: true
          destination: false
        - class: "register"
          name: "xmm"
          source: true
          destination: true
    - name: push
      operands:
        - class: "register"
          name: "gpr"
          source: true
          destination: false
      hidden_operands:
        - class: "memory"
          base: "gpr"
          offset: ~
          index: ~
          scale: 1
          source: false
          destination: true
        - class: "register"
          name: "rsp"
          source: true
          destination: true
    - name: pushfq
      operands: []
      hidden_operands:
        - class: "memory"
          base: "gpr"
          offset: ~
          index: ~
          scale: 1
          source: false
          destination: true
        - class: "register"
          name: "rsp"
          source: true
          destination: true
        # All of EFLAGS and RFLAGS, without VM and RF
        - class: "flag"
          name: "CF"
          source: true
          destination: false
        - class: "flag"
          name: "PF"
          source: true
          destination: false
        - class: "flag"
          name: "AF"
          source: true
          destination: false
        - class: "flag"
          name: "ZF"
          source: true
          destination: false
        - class: "flag"
          name: "SF"
          source: true
          destination: false
        - class: "flag"
          name: "TF"
          source: true
          destination: false
        - class: "flag"
          name: "IF"
          source: true
          destination: false
        - class: "flag"
          name: "DF"
          source: true
          destination: false
        - class: "flag"
          name: "OF"
          source: true
          destination: false
        - class: "flag"
          name: "IOPL"
          source: true
          destination: false
        - class: "flag"
          name: "NT"
          source: true
          destination: false
        - class: "flag"
          name: "AC"
          source: true
          destination: false
        - class: "flag"
          name: "VIF"
          source: true
          destination: false
        - class: "flag"
          name: "VIP"
          source: true
          destination: false
        - class: "flag"
          name: "ID"
          source: true
          destination: false
    - name: sub
      operands:
        - class: "immediate"
          imd: "int"
          source: true
          destination: false
        - class: "register"
          name: "gpr"
          source: true
          destination: true
      hidden_operands:
        - class: "flag"
          name: "OF"
          source: false
          destination: true
        - class: "flag"
          name: "SF"
          source: false
          destination: true
        - class: "flag"
          name: "ZF"
          source: false
          destination: true
        - class: "flag"
          name: "AF"
          source: false
          destination: true
        - class: "flag"
          name: "PF"
          source: false
          destination: true
        - class: "flag"
          name: "CF"
          source: false
          destination: true
    - name: sub
      operands:
        - class: "register"
          name: "gpr"
          source: true
          destination: false
        - class: "register"
          name: "gpr"
          source: true
          destination: true
      hidden_operands:
        - class: "flag"
          name: "OF"
          source: false
          destination: true
        - class: "flag"
          name: "SF"
          source: false
          destination: true
        - class: "flag"
          name: "ZF"
          source: false
          destination: true
        - class: "flag"
          name: "AF"
          source: false
          destination: true
        - class: "flag"
          name: "PF"
          source: false
          destination: true
        - class: "flag"
          name: "CF"
          source: false
          destination: true
    - name: sub
      operands:
        - class: "immediate"
          imd: "int"
          source: true
          destination: false
        - class: "memory"
          base: "*"
          offset: "*"
          index: "*"
          scale: "*"
          source: true
          destination: true
      hidden_operands:
        - class: "flag"
          name: "OF"
          source: false
          destination: true
        - class: "flag"
          name: "SF"
          source: false
          destination: true
        - class: "flag"
          name: "ZF"
          source: false
          destination: true
        - class: "flag"
          name: "AF"
          source: false
          destination: true
        - class: "flag"
          name: "PF"
          source: false
          destination: true
        - class: "flag"
          name: "CF"
          source: false
          destination: true
    - name: sub
      operands:
        - class: "register"
          name: "gpr"
          source: true
          destination: false
        - class: "memory"
          base: "*"
          offset: "*"
          index: "*"
          scale: "*"
          source: true
          destination: true
      hidden_operands:
        - class: "flag"
          name: "OF"
          source: false
          destination: true
        - class: "flag"
          name: "SF"
          source: false
          destination: true
        - class: "flag"
          name: "ZF"
          source: false
          destination: true
        - class: "flag"
          name: "AF"
          source: false
          destination: true
        - class: "flag"
          name: "PF"
          source: false
          destination: true
        - class: "flag"
          name: "CF"
          source: false
          destination: true
    - name: test
      operands:
        - class: "register"
          name: "gpr"
          source: true
          destination: false
        - class: "register"
          name: "gpr"
          source: true
          destination: false
      hidden_operands:
        - class: "flag"
          name: "SF"
          source: false
          destination: true
        - class: "flag"
          name: "ZF"
          source: false
          destination: true
        - class: "flag"
          name: "PF"
          source: false
          destination: true
    - name: test
      operands:
        - class: "register"
          name: "gpr"
          source: true
          destination: false
        - class: "memory"
          base: "*"
          offset: "*"
          index: "*"
          scale: "*"
          source: true
          destination: false
      hidden_operands:
        - class: "flag"
          name: "SF"
          source: false
          destination: true
        - class: "flag"
          name: "ZF"
          source: false
          destination: true
        - class: "flag"
          name: "PF"
          source: false
          destination: true
    - name: test
      operands:
        - class: "immediate"
          imd: "int"
          source: true
          destination: false
        - class: "memory"
          base: "*"
          offset: "*"
          index: "*"
          scale: "*"
          source: true
          destination: false
      hidden_operands:
        - class: "flag"
          name: "SF"
          source: false
          destination: true
        - class: "flag"
          name: "ZF"
          source: false
          destination: true
        - class: "flag"
          name: "PF"
          source: false
          destination: true
    - name: test
      operands:
        - class: "immediate"
          imd: "int"
          source: true
          destination: false
        - class: "register"
          name: "gpr"
          source: true
          destination: false
      hidden_operands:
        - class: "flag"
          name: "SF"
          source: false
          destination: true
        - class: "flag"
          name: "ZF"
          source: false
          destination: true
        - class: "flag"
          name: "PF"
          source: false
          destination: true
    - name: vldmxcsr
      operands:
        - class: "memory"
          base: "*"
          offset: "*"
          index: "*"
          scale: "*"
          source: true
          destination: false
      # TODO sets MXCSR
    - name: [vfmadd132pd, vfmadd213pd, vfmadd231pd]
      operands:
        - class: "register"
          name: "*"
          source: true
          destination: false
        - class: "register"
          name: "*"
          source: true
          destination: false
        - class: "register"
          name: "*"
          source: true
          destination: true
    - name: [vfmadd132ps, vfmadd213ps, vfmadd231ps]
      operands:
        - class: "register"
          name: "*"
          source: true
          destination: false
        - class: "register"
          name: "*"
          source: true
          destination: false
        - class: "register"
          name: "*"
          source: true
          destination: true
    - name: [vfmadd132sd, vfmadd213sd, vfmadd231sd]
      operands:
        - class: "register"
          name: "xmm"
          source: true
          destination: false
        - class: "register"
          name: "xmm"
          source: true
          destination: false
        - class: "register"
          name: "xmm"
          source: true
          destination: true
    - name: [vfmadd132ss, vfmadd213ss, vfmadd231ss]
      operands:
        - class: "register"
          name: "xmm"
          source: true
          destination: false
        - class: "register"
          name: "xmm"
          source: true
          destination: false
        - class: "register"
          name: "xmm"
          source: true
          destination: true
    - name: [vfmaddsub132pd, vfmaddsub213pd, vfmaddsub231pd]
      operands:
        - class: "register"
          name: "*"
          source: true
          destination: false
        - class: "register"
          name: "*"
          source: true
          destination: false
        - class: "register"
          name: "*"
          source: true
          destination: true
    - name: [vfmaddsub132ps, vfmaddsub213ps, vfmaddsub231ps]
      operands:
        - class: "register"
          name: "*"
          source: true
          destination: false
        - class: "register"
          name: "*"
          source: true
          destination: false
        - class: "register"
          name: "*"
          source: true
          destination: true
    - name: vextractf128
      operands:
        - class: "immediate"
          imd: "int"
          source: true
          destination: false
        - class: "register"
          name: "ymm"
          source: true
          destination: false
        - class: "register"
          name: "xmm"
          source: true
          destination: true
    - name: vextractf128
      operands:
        - class: "immediate"
          imd: "int"
          source: true
          destination: false
        - class: "register"
          name: "ymm"
          source: true
          destination: false
        - class: "memory"
          base: "*"
          offset: "*"
          index: "*"
          scale: "*"
          source: true
          destination: true
    - name: vzeroall
      operands: []
      hidden_operands:
        - class: "register"
          name: "ymm0"
          source: false
          destination: true
        - class: "register"
          name: "ymm1"
          source: false
          destination: true
        - class: "register"
          name: "ymm2"
          source: false
          destination: true
        - class: "register"
          name: "ymm3"
          source: false
          destination: true
        - class: "register"
          name: "ymm4"
          source: false
          destination: true
        - class: "register"
          name: "ymm5"
          source: false
          destination: true
        - class: "register"
          name: "ymm6"
          source: false
          destination: true
        - class: "register"
          name: "ymm7"
          source: false
          destination: true
        - class: "register"
          name: "ymm8"
          source: false
          destination: true
        - class: "register"
          name: "ymm9"
          source: false
          destination: true
        - class: "register"
          name: "ymm10"
          source: false
          destination: true
        - class: "register"
          name: "ymm11"
          source: false
          destination: true
        - class: "register"
          name: "ymm12"
          source: false
          destination: true
        - class: "register"
          name: "ymm13"
          source: false
          destination: true
        - class: "register"
          name: "ymm14"
          source: false
          destination: true
        - class: "register"
          name: "ymm15"
          source: false
          destination: true
    - name: vzeroupper
      operands: []
      # TODO not quite correct:
      # only upper half is zeroed, not the xmm part
      hidden_operands:
        - class: "register"
          name: "ymm0"
          source: false
          destination: true
        - class: "register"
          name: "ymm1"
          source: false
          destination: true
        - class: "register"
          name: "ymm2"
          source: false
          destination: true
        - class: "register"
          name: "ymm3"
          source: false
          destination: true
        - class: "register"
          name: "ymm4"
          source: false
          destination: true
        - class: "register"
          name: "ymm5"
          source: false
          destination: true
        - class: "register"
          name: "ymm6"
          source: false
          destination: true
        - class: "register"
          name: "ymm7"
          source: false
          destination: true
        - class: "register"
          name: "ymm8"
          source: false
          destination: true
        - class: "register"
          name: "ymm9"
          source: false
          destination: true
        - class: "register"
          name: "ymm10"
          source: false
          destination: true
        - class: "register"
          name: "ymm11"
          source: false
          destination: true
        - class: "register"
          name: "ymm12"
          source: false
          destination: true
        - class: "register"
          name: "ymm13"
          source: false
          destination: true
        - class: "register"
          name: "ymm14"
          source: false
          destination: true
        - class: "register"
          name: "ymm15"
          source: false
          destination: true
