osaca_version: 0.5.0 isa: "AArch64" # Contains all operand-irregular instruction forms OSACA supports for AArch64. # Operand-regular for a AArch64 instruction form with N operands in the shape of # mnemonic op1 ... opN # means that op1 is the only destination operand and op2 to op(N) are source operands. instruction_forms: - name: add operands: - class: register prefix: x source: false destination: true - class: register prefix: x source: true destination: false - class: immediate imd: 'int' source: true destination: false operation: "op1['value'] = op2['value'] + op3['value']; op1['name'] = op2['name']" - name: adds operands: - class: register prefix: x source: false destination: true - class: register prefix: x source: true destination: false - class: register prefix: x source: true destination: false hidden_operands: - class: flag name: "N" source: false destination: true - class: flag name: "Z" source: false destination: true - class: flag name: "C" source: false destination: true - class: flag name: "V" source: false destination: true operation: "op1['value'] = op2['value'] + op3['value']; op1['name'] = op2['name']" - name: adds operands: - class: register prefix: x source: false destination: true - class: register prefix: x source: true destination: false - class: immediate imd: 'int' source: true destination: false hidden_operands: - class: flag name: "N" source: false destination: true - class: flag name: "Z" source: false destination: true - class: flag name: "C" source: false destination: true - class: flag name: "V" source: false destination: true operation: "op1['value'] = op2['value'] + op3['value']; op1['name'] = op2['name']" - name: adds operands: - class: register prefix: w source: false destination: true - class: register prefix: w source: true destination: false - class: register prefix: w source: true destination: false hidden_operands: - class: flag name: "N" source: false destination: true - class: flag name: "Z" source: false destination: true - class: flag name: "C" source: false destination: true - class: flag name: "V" source: false destination: true operation: "op1['value'] = op2['value'] + op3['value']; op1['name'] = op2['name']" - name: adds operands: - class: register prefix: w source: false destination: true - class: register prefix: w source: true destination: false - class: immediate imd: 'int' source: true destination: false hidden_operands: - class: flag name: "N" source: false destination: true - class: flag name: "Z" source: false destination: true - class: flag name: "C" source: false destination: true - class: flag name: "V" source: false destination: true operation: "op1['value'] = op2['value'] + op3['value']; op1['name'] = op2['name']" - name: sub operands: - class: register prefix: x source: false destination: true - class: register prefix: x source: true destination: false - class: immediate imd: 'int' source: true destination: false operation: "op1['value'] = op2['value'] - op3['value']; op1['name'] = op2['name']" - name: subs operands: - class: register prefix: x source: false destination: true - class: register prefix: x source: true destination: false - class: register prefix: x source: true destination: false hidden_operands: - class: flag name: "N" source: false destination: true - class: flag name: "Z" source: false destination: true - class: flag name: "C" source: false destination: true - class: flag name: "V" source: false destination: true operation: "op1['value'] = op2['value'] - op3['value']; op1['name'] = op2['name']" - name: subs operands: - class: register prefix: x source: false destination: true - class: register prefix: x source: true destination: false - class: immediate imd: 'int' source: true destination: false hidden_operands: - class: flag name: "N" source: false destination: true - class: flag name: "Z" source: false destination: true - class: flag name: "C" source: false destination: true - class: flag name: "V" source: false destination: true operation: "op1['value'] = op2['value'] - op3['value']; op1['name'] = op2['name']" - name: subs operands: - class: register prefix: w source: false destination: true - class: register prefix: w source: true destination: false - class: register prefix: w source: true destination: false hidden_operands: - class: flag name: "N" source: false destination: true - class: flag name: "Z" source: false destination: true - class: flag name: "C" source: false destination: true - class: flag name: "V" source: false destination: true operation: "op1['value'] = op2['value'] - op3['value']; op1['name'] = op2['name']" - name: subs operands: - class: register prefix: w source: false destination: true - class: register prefix: w source: true destination: false - class: immediate imd: 'int' source: true destination: false hidden_operands: - class: flag name: "N" source: false destination: true - class: flag name: "Z" source: false destination: true - class: flag name: "C" source: false destination: true - class: flag name: "V" source: false destination: true operation: "op1['value'] = op2['value'] - op3['value']; op1['name'] = op2['name']" - name: [adcs, sbcs] operands: - class: register prefix: x source: false destination: true - class: register prefix: x source: true destination: false - class: register prefix: x source: true destination: false hidden_operands: - class: flag name: "N" source: false destination: true - class: flag name: "Z" source: false destination: true - class: flag name: "C" source: true destination: true - class: flag name: "V" source: false destination: true - name: [adcs, sbcs] operands: - class: register prefix: w source: false destination: true - class: register prefix: w source: true destination: false - class: register prefix: w source: true destination: false hidden_operands: - class: flag name: "N" source: false destination: true - class: flag name: "Z" source: false destination: true - class: flag name: "C" source: true destination: true - class: flag name: "V" source: false destination: true - name: negs operands: - class: register prefix: x source: false destination: true - class: register prefix: x source: true destination: false hidden_operands: - class: flag name: "N" source: false destination: true - class: flag name: "Z" source: false destination: true - class: flag name: "C" source: false destination: true - class: flag name: "V" source: false destination: true - name: negs operands: - class: register prefix: w source: false destination: true - class: register prefix: w source: true destination: false hidden_operands: - class: flag name: "N" source: false destination: true - class: flag name: "Z" source: false destination: true - class: flag name: "C" source: false destination: true - class: flag name: "V" source: false destination: true - name: ngcs operands: - class: register prefix: x source: false destination: true - class: register prefix: x source: true destination: false hidden_operands: - class: flag name: "N" source: false destination: true - class: flag name: "Z" source: false destination: true - class: flag name: "C" source: true destination: true - class: flag name: "V" source: false destination: true - name: ngcs operands: - class: register prefix: w source: false destination: true - class: register prefix: w source: true destination: false hidden_operands: - class: flag name: "N" source: false destination: true - class: flag name: "Z" source: false destination: true - class: flag name: "C" source: true destination: true - class: flag name: "V" source: false destination: true - name: [ands, bics] operands: - class: register prefix: x source: false destination: true - class: register prefix: x source: true destination: false - class: register prefix: x source: true destination: false hidden_operands: - class: flag name: "N" source: false destination: true - class: flag name: "Z" source: false destination: true - class: flag name: "C" source: false destination: true - class: flag name: "V" source: false destination: true - name: [ands, bics] operands: - class: register prefix: x source: false destination: true - class: register prefix: x source: true destination: false - class: immediate imd: 'int' source: true destination: false hidden_operands: - class: flag name: "N" source: false destination: true - class: flag name: "Z" source: false destination: true - class: flag name: "C" source: false destination: true - class: flag name: "V" source: false destination: true - name: [ands, bics] operands: - class: register prefix: w source: false destination: true - class: register prefix: w source: true destination: false - class: register prefix: w source: true destination: false hidden_operands: - class: flag name: "N" source: false destination: true - class: flag name: "Z" source: false destination: true - class: flag name: "C" source: false destination: true - class: flag name: "V" source: false destination: true - name: [ands, bics] operands: - class: register prefix: w source: false destination: true - class: register prefix: w source: true destination: false - class: immediate imd: 'int' source: true destination: false hidden_operands: - class: flag name: "N" source: false destination: true - class: flag name: "Z" source: false destination: true - class: flag name: "C" source: false destination: true - class: flag name: "V" source: false destination: true - name: tst operands: - class: register prefix: x source: false destination: true - class: register prefix: x source: true destination: false hidden_operands: - class: flag name: "N" source: false destination: true - class: flag name: "Z" source: false destination: true - class: flag name: "C" source: false destination: true - class: flag name: "V" source: false destination: true - name: tst operands: - class: register prefix: x source: false destination: true - class: immediate imd: 'int' source: true destination: false hidden_operands: - class: flag name: "N" source: false destination: true - class: flag name: "Z" source: false destination: true - class: flag name: "C" source: false destination: true - class: flag name: "V" source: false destination: true - name: tst operands: - class: register prefix: w source: false destination: true - class: register prefix: w source: true destination: false hidden_operands: - class: flag name: "N" source: false destination: true - class: flag name: "Z" source: false destination: true - class: flag name: "C" source: true destination: true - class: flag name: "V" source: false destination: true - name: tst operands: - class: register prefix: w source: false destination: true - class: immediate imd: 'int' source: true destination: false hidden_operands: - class: flag name: "N" source: false destination: true - class: flag name: "Z" source: false destination: true - class: flag name: "C" source: false destination: true - class: flag name: "V" source: false destination: true - name: [b, b.any, b.none] operands: - class: identifier source: false destination: false # - name: [bcc, bcs, b.ne, b.any, b.none, b.lt, b.eq, b.hs, b.gt, bne, beq] # operands: # - class: identifier # source: false # destination: false - name: [beq, b.eq, bne, b.ne] operands: - class: identifier source: false destination: false hidden_operands: - class: flag name: "Z" source: true destination: false - name: [bcs, b.cs, bhs, b.hs, bcc, b.cc, blo, b.lo] operands: - class: identifier source: false destination: false hidden_operands: - class: flag name: "C" source: true destination: false - name: [bhi, b.hi, bls, b.ls] operands: - class: identifier source: false destination: false hidden_operands: - class: flag name: "Z" source: true destination: false - class: flag name: "C" source: true destination: false - name: [bge, b.ge, blt, b.lt] operands: - class: identifier source: false destination: false hidden_operands: - class: flag name: "N" source: true destination: false - class: flag name: "V" source: true destination: false - name: [bgt, b.gt, ble, b.le] operands: - class: identifier source: false destination: false hidden_operands: - class: flag name: "N" source: true destination: false - class: flag name: "Z" source: true destination: false - class: flag name: "V" source: true destination: false - name: [bmi, b.mi, bpl, b.pl] operands: - class: identifier source: false destination: false hidden_operands: - class: flag name: "N" source: true destination: false - name: [bvs, b.vs, bvc, b.vc] operands: - class: identifier source: false destination: false hidden_operands: - class: flag name: "V" source: true destination: false - name: [incb, incd] operands: - class: register prefix: x source: true destination: true - name: [incb, incd] operands: - class: register prefix: x source: true destination: true - class: identifier source: false destination: false - class: identifier source: false destination: false - class: immediate imd: int source: false destination: false - name: [fmla, fmad, mla, fmls, fmsb, mls] operands: - class: register prefix: "*" shape: "*" source: true destination: true - class: register prefix: "*" shape: "*" source: true destination: false - class: register prefix: "*" shape: "*" source: true destination: false - class: register prefix: "*" shape: "*" source: true destination: false - name: [fmla, mla, fmls, mls, smlal, smlal2, smlalb, smlalt, smlsl, smlsl2, smlslb, smlslt, umlal, umlal2, umlalb, umlalt, umlsl, umlsl2, umlslb, umlslt] operands: - class: register prefix: "*" shape: "*" source: true destination: true - class: register prefix: "*" shape: "*" source: true destination: false - class: register prefix: "*" shape: "*" source: true destination: false - name: ldp operands: - class: register prefix: "*" source: false destination: true - class: register prefix: "*" source: false destination: true - class: memory base: "*" offset: "*" index: "*" scale: "*" pre-indexed: "*" post-indexed: "*" source: true destination: false - name: [ldr, ldur, ldrb, ldrh, ldrsb, ldrsh, ldrsw] operands: - class: register prefix: "*" source: false destination: true - class: memory base: "*" offset: "*" index: "*" scale: "*" pre-indexed: "*" post-indexed: "*" source: true destination: false - name: mov operands: - class: register prefix: x source: false destination: true - class: register prefix: x source: true destination: false operation: "op1['name'] = op2['name']; op1['value'] = op2['value']" - name: stp operands: - class: register prefix: "*" source: true destination: false - class: register prefix: "*" source: true destination: false - class: memory base: "*" offset: "*" index: "*" scale: "*" pre-indexed: "*" post-indexed: "*" source: false destination: true - name: [str, stur] operands: - class: register prefix: "*" source: true destination: false - class: memory base: "*" offset: "*" index: "*" scale: "*" pre-indexed: "*" post-indexed: "*" source: false destination: true - name: cmp operands: - class: register prefix: "*" source: true destination: false - class: register prefix: "*" source: true destination: false hidden_operands: - class: flag name: "N" source: false destination: true - class: flag name: "Z" source: false destination: true - class: flag name: "C" source: false destination: true - class: flag name: "V" source: false destination: true - name: cmp operands: - class: register prefix: "*" source: true destination: false - class: immediate imd: "int" source: true destination: false hidden_operands: - class: flag name: "N" source: false destination: true - class: flag name: "Z" source: false destination: true - class: flag name: "C" source: false destination: true - class: flag name: "V" source: false destination: true - name: cmn operands: - class: register prefix: "*" source: true destination: false - class: register prefix: "*" source: true destination: false hidden_operands: - class: flag name: "N" source: false destination: true - class: flag name: "Z" source: false destination: true - class: flag name: "C" source: false destination: true - class: flag name: "V" source: false destination: true - name: cmn operands: - class: register prefix: "*" source: true destination: false - class: immediate imd: "int" source: true destination: false hidden_operands: - class: flag name: "N" source: false destination: true - class: flag name: "Z" source: false destination: true - class: flag name: "C" source: false destination: true - class: flag name: "V" source: false destination: true - name: fcmp operands: - class: register prefix: "*" source: true destination: false - class: register prefix: "*" source: true destination: false - name: fcmp operands: - class: register prefix: "*" source: true destination: false - class: immediate imd: double source: true destination: false - name: fcmp operands: - class: register prefix: "*" source: true destination: false - class: immediate imd: float source: true destination: false - name: [cinc, cinv, cneg] operands: - class: register prefix: "*" source: false destination: true - class: register prefix: "*" source: true destination: false - class: condition ccode: "eq" source: true destination: false hidden_operands: - class: flag name: "Z" source: true destination: false - name: [cinc, cinv, cneg] operands: - class: register prefix: "*" source: false destination: true - class: register prefix: "*" source: true destination: false - class: condition ccode: "ne" source: true destination: false hidden_operands: - class: flag name: "Z" source: true destination: false - name: [cinc, cinv, cneg] operands: - class: register prefix: "*" source: false destination: true - class: register prefix: "*" source: true destination: false - class: condition ccode: "cs" source: true destination: false hidden_operands: - class: flag name: "C" source: true destination: false - name: [cinc, cinv, cneg] operands: - class: register prefix: "*" source: false destination: true - class: register prefix: "*" source: true destination: false - class: condition ccode: "hs" source: true destination: false hidden_operands: - class: flag name: "C" source: true destination: false - name: [cinc, cinv, cneg] operands: - class: register prefix: "*" source: false destination: true - class: register prefix: "*" source: true destination: false - class: condition ccode: "cc" source: true destination: false hidden_operands: - class: flag name: "C" source: true destination: false - name: [cinc, cinv, cneg] operands: - class: register prefix: "*" source: false destination: true - class: register prefix: "*" source: true destination: false - class: condition ccode: "lo" source: true destination: false hidden_operands: - class: flag name: "C" source: true destination: false - name: [cinc, cinv, cneg] operands: - class: register prefix: "*" source: false destination: true - class: register prefix: "*" source: true destination: false - class: condition ccode: "hi" source: true destination: false hidden_operands: - class: flag name: "Z" source: true destination: false - class: flag name: "C" source: true destination: false - name: [cinc, cinv, cneg] operands: - class: register prefix: "*" source: false destination: true - class: register prefix: "*" source: true destination: false - class: condition ccode: "ls" source: true destination: false hidden_operands: - class: flag name: "Z" source: true destination: false - class: flag name: "C" source: true destination: false - name: [cinc, cinv, cneg] operands: - class: register prefix: "*" source: false destination: true - class: register prefix: "*" source: true destination: false - class: condition ccode: "ge" source: true destination: false hidden_operands: - class: flag name: "N" source: true destination: false - class: flag name: "V" source: true destination: false - name: [cinc, cinv, cneg] operands: - class: register prefix: "*" source: false destination: true - class: register prefix: "*" source: true destination: false - class: condition ccode: "lt" source: true destination: false hidden_operands: - class: flag name: "N" source: true destination: false - class: flag name: "V" source: true destination: false - name: [cinc, cinv, cneg] operands: - class: register prefix: "*" source: false destination: true - class: register prefix: "*" source: true destination: false - class: condition ccode: "gt" source: true destination: false hidden_operands: - class: flag name: "N" source: true destination: false - class: flag name: "Z" source: true destination: false - class: flag name: "V" source: true destination: false - name: [cinc, cinv, cneg] operands: - class: register prefix: "*" source: false destination: true - class: register prefix: "*" source: true destination: false - class: condition ccode: "le" source: true destination: false hidden_operands: - class: flag name: "N" source: true destination: false - class: flag name: "Z" source: true destination: false - class: flag name: "V" source: true destination: false - name: [cinc, cinv, cneg] operands: - class: register prefix: "*" source: false destination: true - class: register prefix: "*" source: true destination: false - class: condition ccode: "mi" source: true destination: false hidden_operands: - class: flag name: "N" source: true destination: false - name: [cinc, cinv, cneg] operands: - class: register prefix: "*" source: false destination: true - class: register prefix: "*" source: true destination: false - class: condition ccode: "pl" source: true destination: false hidden_operands: - class: flag name: "N" source: true destination: false - name: [cinc, cinv, cneg] operands: - class: register prefix: "*" source: false destination: true - class: register prefix: "*" source: true destination: false - class: condition ccode: "vs" source: true destination: false hidden_operands: - class: flag name: "V" source: true destination: false - name: [cinc, cinv, cneg] operands: - class: register prefix: "*" source: false destination: true - class: register prefix: "*" source: true destination: false - class: condition ccode: "vc" source: true destination: false hidden_operands: - class: flag name: "V" source: true destination: false - name: [cinc, cinv, cneg] operands: - class: register prefix: "*" source: false destination: true - class: register prefix: "*" source: true destination: false - class: condition ccode: "AL" source: true destination: false hidden_operands: - class: flag name: "Z" source: true destination: false - class: flag name: "C" source: true destination: false - class: flag name: "N" source: true destination: false - class: flag name: "V" source: true destination: false - name: [cset, csetm] operands: - class: register prefix: "*" source: false destination: true - class: condition ccode: "eq" source: true destination: false hidden_operands: - class: flag name: "Z" source: true destination: false - name: [cset, csetm] operands: - class: register prefix: "*" source: false destination: true - class: condition ccode: "ne" source: true destination: false hidden_operands: - class: flag name: "Z" source: true destination: false - name: [cset, csetm] operands: - class: register prefix: "*" source: false destination: true - class: condition ccode: "cs" source: true destination: false hidden_operands: - class: flag name: "C" source: true destination: false - name: [cset, csetm] operands: - class: register prefix: "*" source: false destination: true - class: condition ccode: "hs" source: true destination: false hidden_operands: - class: flag name: "C" source: true destination: false - name: [cset, csetm] operands: - class: register prefix: "*" source: false destination: true - class: condition ccode: "cc" source: true destination: false hidden_operands: - class: flag name: "C" source: true destination: false - name: [cset, csetm] operands: - class: register prefix: "*" source: false destination: true - class: condition ccode: "lo" source: true destination: false hidden_operands: - class: flag name: "C" source: true destination: false - name: [cset, csetm] operands: - class: register prefix: "*" source: false destination: true - class: condition ccode: "hi" source: true destination: false hidden_operands: - class: flag name: "Z" source: true destination: false - class: flag name: "C" source: true destination: false - name: [cset, csetm] operands: - class: register prefix: "*" source: false destination: true - class: condition ccode: "ls" source: true destination: false hidden_operands: - class: flag name: "Z" source: true destination: false - class: flag name: "C" source: true destination: false - name: [cset, csetm] operands: - class: register prefix: "*" source: false destination: true - class: condition ccode: "ge" source: true destination: false hidden_operands: - class: flag name: "N" source: true destination: false - class: flag name: "V" source: true destination: false - name: [cset, csetm] operands: - class: register prefix: "*" source: false destination: true - class: condition ccode: "lt" source: true destination: false hidden_operands: - class: flag name: "N" source: true destination: false - class: flag name: "V" source: true destination: false - name: [cset, csetm] operands: - class: register prefix: "*" source: false destination: true - class: condition ccode: "gt" source: true destination: false hidden_operands: - class: flag name: "N" source: true destination: false - class: flag name: "Z" source: true destination: false - class: flag name: "V" source: true destination: false - name: [cset, csetm] operands: - class: register prefix: "*" source: false destination: true - class: condition ccode: "le" source: true destination: false hidden_operands: - class: flag name: "N" source: true destination: false - class: flag name: "Z" source: true destination: false - class: flag name: "V" source: true destination: false - name: [cset, csetm] operands: - class: register prefix: "*" source: false destination: true - class: condition ccode: "mi" source: true destination: false hidden_operands: - class: flag name: "N" source: true destination: false - name: [cset, csetm] operands: - class: register prefix: "*" source: false destination: true - class: condition ccode: "pl" source: true destination: false hidden_operands: - class: flag name: "N" source: true destination: false - name: [cset, csetm] operands: - class: register prefix: "*" source: false destination: true - class: condition ccode: "vs" source: true destination: false hidden_operands: - class: flag name: "V" source: true destination: false - name: [cset, csetm] operands: - class: register prefix: "*" source: false destination: true - class: condition ccode: "vc" source: true destination: false hidden_operands: - class: flag name: "V" source: true destination: false - name: [cset, csetm] operands: - class: register prefix: "*" source: false destination: true - class: condition ccode: "AL" source: true destination: false hidden_operands: - class: flag name: "Z" source: true destination: false - class: flag name: "C" source: true destination: false - class: flag name: "N" source: true destination: false - class: flag name: "V" source: true destination: false - name: [csel, csinc, csinv, csneg] operands: - class: register prefix: "*" source: false destination: true - class: register prefix: "*" source: true destination: false - class: register prefix: "*" source: true destination: false - class: condition ccode: "eq" source: true destination: false hidden_operands: - class: flag name: "Z" source: true destination: false - name: [csel, csinc, csinv, csneg] operands: - class: register prefix: "*" source: false destination: true - class: register prefix: "*" source: true destination: false - class: register prefix: "*" source: true destination: false - class: condition ccode: "ne" source: true destination: false hidden_operands: - class: flag name: "Z" source: true destination: false - name: [csel, csinc, csinv, csneg] operands: - class: register prefix: "*" source: false destination: true - class: register prefix: "*" source: true destination: false - class: register prefix: "*" source: true destination: false - class: condition ccode: "cs" source: true destination: false hidden_operands: - class: flag name: "C" source: true destination: false - name: [csel, csinc, csinv, csneg] operands: - class: register prefix: "*" source: false destination: true - class: register prefix: "*" source: true destination: false - class: register prefix: "*" source: true destination: false - class: condition ccode: "hs" source: true destination: false hidden_operands: - class: flag name: "C" source: true destination: false - name: [csel, csinc, csinv, csneg] operands: - class: register prefix: "*" source: false destination: true - class: register prefix: "*" source: true destination: false - class: register prefix: "*" source: true destination: false - class: condition ccode: "cc" source: true destination: false hidden_operands: - class: flag name: "C" source: true destination: false - name: [csel, csinc, csinv, csneg] operands: - class: register prefix: "*" source: false destination: true - class: register prefix: "*" source: true destination: false - class: register prefix: "*" source: true destination: false - class: condition ccode: "lo" source: true destination: false hidden_operands: - class: flag name: "C" source: true destination: false - name: [csel, csinc, csinv, csneg] operands: - class: register prefix: "*" source: false destination: true - class: register prefix: "*" source: true destination: false - class: register prefix: "*" source: true destination: false - class: condition ccode: "hi" source: true destination: false hidden_operands: - class: flag name: "Z" source: true destination: false - class: flag name: "C" source: true destination: false - name: [csel, csinc, csinv, csneg] operands: - class: register prefix: "*" source: false destination: true - class: register prefix: "*" source: true destination: false - class: register prefix: "*" source: true destination: false - class: condition ccode: "ls" source: true destination: false hidden_operands: - class: flag name: "Z" source: true destination: false - class: flag name: "C" source: true destination: false - name: [csel, csinc, csinv, csneg] operands: - class: register prefix: "*" source: false destination: true - class: register prefix: "*" source: true destination: false - class: register prefix: "*" source: true destination: false - class: condition ccode: "ge" source: true destination: false hidden_operands: - class: flag name: "N" source: true destination: false - class: flag name: "V" source: true destination: false - name: [csel, csinc, csinv, csneg] operands: - class: register prefix: "*" source: false destination: true - class: register prefix: "*" source: true destination: false - class: register prefix: "*" source: true destination: false - class: condition ccode: "lt" source: true destination: false hidden_operands: - class: flag name: "N" source: true destination: false - class: flag name: "V" source: true destination: false - name: [csel, csinc, csinv, csneg] operands: - class: register prefix: "*" source: false destination: true - class: register prefix: "*" source: true destination: false - class: register prefix: "*" source: true destination: false - class: condition ccode: "gt" source: true destination: false hidden_operands: - class: flag name: "N" source: true destination: false - class: flag name: "Z" source: true destination: false - class: flag name: "V" source: true destination: false - name: [csel, csinc, csinv, csneg] operands: - class: register prefix: "*" source: false destination: true - class: register prefix: "*" source: true destination: false - class: register prefix: "*" source: true destination: false - class: condition ccode: "le" source: true destination: false hidden_operands: - class: flag name: "N" source: true destination: false - class: flag name: "Z" source: true destination: false - class: flag name: "V" source: true destination: false - name: [csel, csinc, csinv, csneg] operands: - class: register prefix: "*" source: false destination: true - class: register prefix: "*" source: true destination: false - class: register prefix: "*" source: true destination: false - class: condition ccode: "mi" source: true destination: false hidden_operands: - class: flag name: "N" source: true destination: false - name: [csel, csinc, csinv, csneg] operands: - class: register prefix: "*" source: false destination: true - class: register prefix: "*" source: true destination: false - class: register prefix: "*" source: true destination: false - class: condition ccode: "pl" source: true destination: false hidden_operands: - class: flag name: "N" source: true destination: false - name: [csel, csinc, csinv, csneg] operands: - class: register prefix: "*" source: false destination: true - class: register prefix: "*" source: true destination: false - class: register prefix: "*" source: true destination: false - class: condition ccode: "vs" source: true destination: false hidden_operands: - class: flag name: "V" source: true destination: false - name: [csel, csinc, csinv, csneg] operands: - class: register prefix: "*" source: false destination: true - class: register prefix: "*" source: true destination: false - class: register prefix: "*" source: true destination: false - class: condition ccode: "vc" source: true destination: false hidden_operands: - class: flag name: "V" source: true destination: false - name: [csel, csinc, csinv, csneg] operands: - class: register prefix: "*" source: false destination: true - class: register prefix: "*" source: true destination: false - class: register prefix: "*" source: true destination: false - class: condition ccode: "AL" source: true destination: false hidden_operands: - class: flag name: "Z" source: true destination: false - class: flag name: "C" source: true destination: false - class: flag name: "N" source: true destination: false - class: flag name: "V" source: true destination: false - name: [ccmn, ccmp] operands: - class: register prefix: "*" source: true destination: false - class: register prefix: "*" source: true destination: false - class: immediate imd: "int" source: true destination: false - class: condition ccode: "EQ" source: true destination: false hidden_operands: - class: flag name: "Z" source: true destination: true - class: flag name: "C" source: false destination: true - class: flag name: "N" source: false destination: true - class: flag name: "V" source: false destination: true - name: [ccmn, ccmp] operands: - class: register prefix: "*" source: true destination: false - class: register prefix: "*" source: true destination: false - class: immediate imd: "int" source: true destination: false - class: condition ccode: "NE" source: true destination: false hidden_operands: - class: flag name: "Z" source: true destination: true - class: flag name: "C" source: false destination: true - class: flag name: "N" source: false destination: true - class: flag name: "V" source: false destination: true - name: [ccmn, ccmp] operands: - class: register prefix: "*" source: true destination: false - class: register prefix: "*" source: true destination: false - class: immediate imd: "int" source: true destination: false - class: condition ccode: "CS" source: true destination: false hidden_operands: - class: flag name: "Z" source: false destination: true - class: flag name: "C" source: true destination: true - class: flag name: "N" source: false destination: true - class: flag name: "V" source: false destination: true - name: [ccmn, ccmp] operands: - class: register prefix: "*" source: true destination: false - class: register prefix: "*" source: true destination: false - class: immediate imd: "int" source: true destination: false - class: condition ccode: "HS" source: true destination: false hidden_operands: - class: flag name: "Z" source: false destination: true - class: flag name: "C" source: true destination: true - class: flag name: "N" source: false destination: true - class: flag name: "V" source: false destination: true - name: [ccmn, ccmp] operands: - class: register prefix: "*" source: true destination: false - class: register prefix: "*" source: true destination: false - class: immediate imd: "int" source: true destination: false - class: condition ccode: "CC" source: true destination: false hidden_operands: - class: flag name: "Z" source: false destination: true - class: flag name: "C" source: true destination: true - class: flag name: "N" source: false destination: true - class: flag name: "V" source: false destination: true - name: [ccmn, ccmp] operands: - class: register prefix: "*" source: true destination: false - class: register prefix: "*" source: true destination: false - class: immediate imd: "int" source: true destination: false - class: condition ccode: "LO" source: true destination: false hidden_operands: - class: flag name: "Z" source: false destination: true - class: flag name: "C" source: true destination: true - class: flag name: "N" source: false destination: true - class: flag name: "V" source: false destination: true - name: [ccmn, ccmp] operands: - class: register prefix: "*" source: true destination: false - class: register prefix: "*" source: true destination: false - class: immediate imd: "int" source: true destination: false - class: condition ccode: "MI" source: true destination: false hidden_operands: - class: flag name: "Z" source: false destination: true - class: flag name: "C" source: false destination: true - class: flag name: "N" source: true destination: true - class: flag name: "V" source: false destination: true - name: [ccmn, ccmp] operands: - class: register prefix: "*" source: true destination: false - class: register prefix: "*" source: true destination: false - class: immediate imd: "int" source: true destination: false - class: condition ccode: "PL" source: true destination: false hidden_operands: - class: flag name: "Z" source: false destination: true - class: flag name: "C" source: false destination: true - class: flag name: "N" source: true destination: true - class: flag name: "V" source: false destination: true - name: [ccmn, ccmp] operands: - class: register prefix: "*" source: true destination: false - class: register prefix: "*" source: true destination: false - class: immediate imd: "int" source: true destination: false - class: condition ccode: "VS" source: true destination: false hidden_operands: - class: flag name: "Z" source: false destination: true - class: flag name: "C" source: false destination: true - class: flag name: "N" source: false destination: true - class: flag name: "V" source: true destination: true - name: [ccmn, ccmp] operands: - class: register prefix: "*" source: true destination: false - class: register prefix: "*" source: true destination: false - class: immediate imd: "int" source: true destination: false - class: condition ccode: "VC" source: true destination: false hidden_operands: - class: flag name: "Z" source: false destination: true - class: flag name: "C" source: false destination: true - class: flag name: "N" source: false destination: true - class: flag name: "V" source: true destination: true - name: [ccmn, ccmp] operands: - class: register prefix: "*" source: true destination: false - class: register prefix: "*" source: true destination: false - class: immediate imd: "int" source: true destination: false - class: condition ccode: "HI" source: true destination: false hidden_operands: - class: flag name: "Z" source: true destination: true - class: flag name: "C" source: true destination: true - class: flag name: "N" source: false destination: true - class: flag name: "V" source: false destination: true - name: [ccmn, ccmp] operands: - class: register prefix: "*" source: true destination: false - class: register prefix: "*" source: true destination: false - class: immediate imd: "int" source: true destination: false - class: condition ccode: "LS" source: true destination: false hidden_operands: - class: flag name: "Z" source: true destination: true - class: flag name: "C" source: true destination: true - class: flag name: "N" source: false destination: true - class: flag name: "V" source: false destination: true - name: [ccmn, ccmp] operands: - class: register prefix: "*" source: true destination: false - class: register prefix: "*" source: true destination: false - class: immediate imd: "int" source: true destination: false - class: condition ccode: "GE" source: true destination: false hidden_operands: - class: flag name: "Z" source: false destination: true - class: flag name: "C" source: false destination: true - class: flag name: "N" source: true destination: true - class: flag name: "V" source: true destination: true - name: [ccmn, ccmp] operands: - class: register prefix: "*" source: true destination: false - class: register prefix: "*" source: true destination: false - class: immediate imd: "int" source: true destination: false - class: condition ccode: "LT" source: true destination: false hidden_operands: - class: flag name: "Z" source: false destination: true - class: flag name: "C" source: false destination: true - class: flag name: "N" source: true destination: true - class: flag name: "V" source: true destination: true - name: [ccmn, ccmp] operands: - class: register prefix: "*" source: true destination: false - class: register prefix: "*" source: true destination: false - class: immediate imd: "int" source: true destination: false - class: condition ccode: "GT" source: true destination: false hidden_operands: - class: flag name: "Z" source: true destination: true - class: flag name: "C" source: false destination: true - class: flag name: "N" source: true destination: true - class: flag name: "V" source: true destination: true - name: [ccmn, ccmp] operands: - class: register prefix: "*" source: true destination: false - class: register prefix: "*" source: true destination: false - class: immediate imd: "int" source: true destination: false - class: condition ccode: "LE" source: true destination: false hidden_operands: - class: flag name: "Z" source: true destination: true - class: flag name: "C" source: false destination: true - class: flag name: "N" source: true destination: true - class: flag name: "V" source: true destination: true - name: [ccmn, ccmp] operands: - class: register prefix: "*" source: true destination: false - class: register prefix: "*" source: true destination: false - class: immediate imd: "int" source: true destination: false - class: condition ccode: "AL" source: true destination: false hidden_operands: - class: flag name: "Z" source: true destination: true - class: flag name: "C" source: true destination: true - class: flag name: "N" source: true destination: true - class: flag name: "V" source: true destination: true - name: [ccmn, ccmp] operands: - class: register prefix: "*" source: true destination: false - class: immediate imd: "int" source: true destination: false - class: immediate imd: "int" source: true destination: false - class: condition ccode: "EQ" source: true destination: false hidden_operands: - class: flag name: "Z" source: true destination: true - class: flag name: "C" source: false destination: true - class: flag name: "N" source: false destination: true - class: flag name: "V" source: false destination: true - name: [ccmn, ccmp] operands: - class: register prefix: "*" source: true destination: false - class: immediate imd: "int" source: true destination: false - class: immediate imd: "int" source: true destination: false - class: condition ccode: "NE" source: true destination: false hidden_operands: - class: flag name: "Z" source: true destination: true - class: flag name: "C" source: false destination: true - class: flag name: "N" source: false destination: true - class: flag name: "V" source: false destination: true - name: [ccmn, ccmp] operands: - class: register prefix: "*" source: true destination: false - class: immediate imd: "int" source: true destination: false - class: immediate imd: "int" source: true destination: false - class: condition ccode: "CS" source: true destination: false hidden_operands: - class: flag name: "Z" source: false destination: true - class: flag name: "C" source: true destination: true - class: flag name: "N" source: false destination: true - class: flag name: "V" source: false destination: true - name: [ccmn, ccmp] operands: - class: register prefix: "*" source: true destination: false - class: immediate imd: "int" source: true destination: false - class: immediate imd: "int" source: true destination: false - class: condition ccode: "HS" source: true destination: false hidden_operands: - class: flag name: "Z" source: false destination: true - class: flag name: "C" source: true destination: true - class: flag name: "N" source: false destination: true - class: flag name: "V" source: false destination: true - name: [ccmn, ccmp] operands: - class: register prefix: "*" source: true destination: false - class: immediate imd: "int" source: true destination: false - class: immediate imd: "int" source: true destination: false - class: condition ccode: "CC" source: true destination: false hidden_operands: - class: flag name: "Z" source: false destination: true - class: flag name: "C" source: true destination: true - class: flag name: "N" source: false destination: true - class: flag name: "V" source: false destination: true - name: [ccmn, ccmp] operands: - class: register prefix: "*" source: true destination: false - class: immediate imd: "int" source: true destination: false - class: immediate imd: "int" source: true destination: false - class: condition ccode: "LO" source: true destination: false hidden_operands: - class: flag name: "Z" source: false destination: true - class: flag name: "C" source: true destination: true - class: flag name: "N" source: false destination: true - class: flag name: "V" source: false destination: true - name: [ccmn, ccmp] operands: - class: register prefix: "*" source: true destination: false - class: immediate imd: "int" source: true destination: false - class: immediate imd: "int" source: true destination: false - class: condition ccode: "MI" source: true destination: false hidden_operands: - class: flag name: "Z" source: false destination: true - class: flag name: "C" source: false destination: true - class: flag name: "N" source: true destination: true - class: flag name: "V" source: false destination: true - name: [ccmn, ccmp] operands: - class: register prefix: "*" source: true destination: false - class: immediate imd: "int" source: true destination: false - class: immediate imd: "int" source: true destination: false - class: condition ccode: "PL" source: true destination: false hidden_operands: - class: flag name: "Z" source: false destination: true - class: flag name: "C" source: false destination: true - class: flag name: "N" source: true destination: true - class: flag name: "V" source: false destination: true - name: [ccmn, ccmp] operands: - class: register prefix: "*" source: true destination: false - class: immediate imd: "int" source: true destination: false - class: immediate imd: "int" source: true destination: false - class: condition ccode: "VS" source: true destination: false hidden_operands: - class: flag name: "Z" source: false destination: true - class: flag name: "C" source: false destination: true - class: flag name: "N" source: false destination: true - class: flag name: "V" source: true destination: true - name: [ccmn, ccmp] operands: - class: register prefix: "*" source: true destination: false - class: immediate imd: "int" source: true destination: false - class: immediate imd: "int" source: true destination: false - class: condition ccode: "VC" source: true destination: false hidden_operands: - class: flag name: "Z" source: false destination: true - class: flag name: "C" source: false destination: true - class: flag name: "N" source: false destination: true - class: flag name: "V" source: true destination: true - name: [ccmn, ccmp] operands: - class: register prefix: "*" source: true destination: false - class: immediate imd: "int" source: true destination: false - class: immediate imd: "int" source: true destination: false - class: condition ccode: "HI" source: true destination: false hidden_operands: - class: flag name: "Z" source: true destination: true - class: flag name: "C" source: true destination: true - class: flag name: "N" source: false destination: true - class: flag name: "V" source: false destination: true - name: [ccmn, ccmp] operands: - class: register prefix: "*" source: true destination: false - class: immediate imd: "int" source: true destination: false - class: immediate imd: "int" source: true destination: false - class: condition ccode: "LS" source: true destination: false hidden_operands: - class: flag name: "Z" source: true destination: true - class: flag name: "C" source: true destination: true - class: flag name: "N" source: false destination: true - class: flag name: "V" source: false destination: true - name: [ccmn, ccmp] operands: - class: register prefix: "*" source: true destination: false - class: immediate imd: "int" source: true destination: false - class: immediate imd: "int" source: true destination: false - class: condition ccode: "GE" source: true destination: false hidden_operands: - class: flag name: "Z" source: false destination: true - class: flag name: "C" source: false destination: true - class: flag name: "N" source: true destination: true - class: flag name: "V" source: true destination: true - name: [ccmn, ccmp] operands: - class: register prefix: "*" source: true destination: false - class: immediate imd: "int" source: true destination: false - class: immediate imd: "int" source: true destination: false - class: condition ccode: "LT" source: true destination: false hidden_operands: - class: flag name: "Z" source: false destination: true - class: flag name: "C" source: false destination: true - class: flag name: "N" source: true destination: true - class: flag name: "V" source: true destination: true - name: [ccmn, ccmp] operands: - class: register prefix: "*" source: true destination: false - class: immediate imd: "int" source: true destination: false - class: immediate imd: "int" source: true destination: false - class: condition ccode: "GT" source: true destination: false hidden_operands: - class: flag name: "Z" source: true destination: true - class: flag name: "C" source: false destination: true - class: flag name: "N" source: true destination: true - class: flag name: "V" source: true destination: true - name: [ccmn, ccmp] operands: - class: register prefix: "*" source: true destination: false - class: immediate imd: "int" source: true destination: false - class: immediate imd: "int" source: true destination: false - class: condition ccode: "LE" source: true destination: false hidden_operands: - class: flag name: "Z" source: true destination: true - class: flag name: "C" source: false destination: true - class: flag name: "N" source: true destination: true - class: flag name: "V" source: true destination: true - name: [ccmn, ccmp] operands: - class: register prefix: "*" source: true destination: false - class: immediate imd: "int" source: true destination: false - class: immediate imd: "int" source: true destination: false - class: condition ccode: "AL" source: true destination: false hidden_operands: - class: flag name: "Z" source: true destination: true - class: flag name: "C" source: true destination: true - class: flag name: "N" source: true destination: true - class: flag name: "V" source: true destination: true - name: [sadalp, uadalp] operands: - class: register prefix: "*" shape: "*" source: true destination: true - class: register prefix: "*" shape: "*" source: true destination: false - name: [sadalp, uadalp, sabal, sabal2, sabalb, sabalt] operands: - class: register prefix: "*" shape: "*" source: true destination: true - class: register prefix: "*" shape: "*" source: true destination: false - class: register prefix: "*" shape: "*" source: true destination: false - name: [ssra, srsra, usra, ursra] operands: - class: register prefix: "*" shape: "*" source: true destination: true - class: register prefix: "*" shape: "*" source: true destination: false - class: immediate imd: "int" source: true destination: false