12607 lines
434 KiB
C++
12607 lines
434 KiB
C++
/*===- TableGen'erated file -------------------------------------*- C++ -*-===*\
|
|
|* *|
|
|
|*Assembly Writer Source Fragment *|
|
|
|* *|
|
|
|* Automatically generated file, do not edit! *|
|
|
|* *|
|
|
\*===----------------------------------------------------------------------===*/
|
|
|
|
/* Capstone Disassembly Engine, http://www.capstone-engine.org */
|
|
/* By Nguyen Anh Quynh <aquynh@gmail.com>, 2013-2014 */
|
|
|
|
/// printInstruction - This method is automatically generated by tablegen
|
|
/// from the instruction set description.
|
|
static void printInstruction(MCInst *MI, SStream *O, MCRegisterInfo *MRI)
|
|
{
|
|
static const uint32_t OpInfo[] = {
|
|
0U, // PHI
|
|
0U, // INLINEASM
|
|
0U, // CFI_INSTRUCTION
|
|
0U, // EH_LABEL
|
|
0U, // GC_LABEL
|
|
0U, // KILL
|
|
0U, // EXTRACT_SUBREG
|
|
0U, // INSERT_SUBREG
|
|
0U, // IMPLICIT_DEF
|
|
0U, // SUBREG_TO_REG
|
|
0U, // COPY_TO_REGCLASS
|
|
2694U, // DBG_VALUE
|
|
0U, // REG_SEQUENCE
|
|
0U, // COPY
|
|
2687U, // BUNDLE
|
|
2704U, // LIFETIME_START
|
|
2674U, // LIFETIME_END
|
|
0U, // STACKMAP
|
|
0U, // PATCHPOINT
|
|
0U, // LOAD_STACK_GUARD
|
|
6182U, // ABSv16i8
|
|
553920550U, // ABSv1i64
|
|
1074272294U, // ABSv2i32
|
|
1611405350U, // ABSv2i64
|
|
2148538406U, // ABSv4i16
|
|
2685671462U, // ABSv4i32
|
|
3222804518U, // ABSv8i16
|
|
3759937574U, // ABSv8i8
|
|
17049662U, // ADCSWr
|
|
17049662U, // ADCSXr
|
|
17048298U, // ADCWr
|
|
17048298U, // ADCXr
|
|
537400863U, // ADDHNv2i64_v2i32
|
|
571748634U, // ADDHNv2i64_v4i32
|
|
1074796063U, // ADDHNv4i32_v4i16
|
|
1108881690U, // ADDHNv4i32_v8i16
|
|
1644179738U, // ADDHNv8i16_v16i8
|
|
1612453407U, // ADDHNv8i16_v8i8
|
|
2147489464U, // ADDPv16i8
|
|
2684884664U, // ADDPv2i32
|
|
537663160U, // ADDPv2i64
|
|
1610884792U, // ADDPv2i64p
|
|
3222279864U, // ADDPv4i16
|
|
1075058360U, // ADDPv4i32
|
|
1612191416U, // ADDPv8i16
|
|
3759937208U, // ADDPv8i8
|
|
17049674U, // ADDSWri
|
|
0U, // ADDSWrr
|
|
17049674U, // ADDSWrs
|
|
17049674U, // ADDSWrx
|
|
17049674U, // ADDSXri
|
|
0U, // ADDSXrr
|
|
17049674U, // ADDSXrs
|
|
17049674U, // ADDSXrx
|
|
17049674U, // ADDSXrx64
|
|
272671U, // ADDVv16i8v
|
|
2147756319U, // ADDVv4i16v
|
|
2684627231U, // ADDVv4i32v
|
|
3221498143U, // ADDVv8i16v
|
|
3758369055U, // ADDVv8i8v
|
|
17048359U, // ADDWri
|
|
0U, // ADDWrr
|
|
17048359U, // ADDWrs
|
|
17048359U, // ADDWrx
|
|
17048359U, // ADDXri
|
|
0U, // ADDXrr
|
|
17048359U, // ADDXrs
|
|
17048359U, // ADDXrx
|
|
17048359U, // ADDXrx64
|
|
2147488551U, // ADDv16i8
|
|
17048359U, // ADDv1i64
|
|
2684883751U, // ADDv2i32
|
|
537662247U, // ADDv2i64
|
|
3222278951U, // ADDv4i16
|
|
1075057447U, // ADDv4i32
|
|
1612190503U, // ADDv8i16
|
|
3759936295U, // ADDv8i8
|
|
0U, // ADJCALLSTACKDOWN
|
|
0U, // ADJCALLSTACKUP
|
|
553920403U, // ADR
|
|
50603811U, // ADRP
|
|
33567598U, // AESDrr
|
|
33567656U, // AESErr
|
|
4852U, // AESIMCrr
|
|
4860U, // AESMCrr
|
|
17049680U, // ANDSWri
|
|
0U, // ANDSWrr
|
|
17049680U, // ANDSWrs
|
|
17049680U, // ANDSXri
|
|
0U, // ANDSXrr
|
|
17049680U, // ANDSXrs
|
|
17048425U, // ANDWri
|
|
0U, // ANDWrr
|
|
17048425U, // ANDWrs
|
|
17048425U, // ANDXri
|
|
0U, // ANDXrr
|
|
17048425U, // ANDXrs
|
|
2147488617U, // ANDv16i8
|
|
3759936361U, // ANDv8i8
|
|
17049553U, // ASRVWr
|
|
17049553U, // ASRVXr
|
|
16935U, // B
|
|
67380710U, // BFMWri
|
|
67380710U, // BFMXri
|
|
0U, // BICSWrr
|
|
17049668U, // BICSWrs
|
|
0U, // BICSXrr
|
|
17049668U, // BICSXrs
|
|
0U, // BICWrr
|
|
17048303U, // BICWrs
|
|
0U, // BICXrr
|
|
17048303U, // BICXrs
|
|
2147488495U, // BICv16i8
|
|
84423407U, // BICv2i32
|
|
84947695U, // BICv4i16
|
|
85209839U, // BICv4i32
|
|
85471983U, // BICv8i16
|
|
3759936239U, // BICv8i8
|
|
2147488704U, // BIFv16i8
|
|
3759936448U, // BIFv8i8
|
|
2181052603U, // BITv16i8
|
|
3793500347U, // BITv8i8
|
|
17641U, // BL
|
|
2107319U, // BLR
|
|
2107279U, // BR
|
|
21688U, // BRK
|
|
2181051810U, // BSLv16i8
|
|
3793499554U, // BSLv8i8
|
|
27247U, // Bcc
|
|
100936257U, // CBNZW
|
|
100936257U, // CBNZX
|
|
100936242U, // CBZW
|
|
100936242U, // CBZX
|
|
17049144U, // CCMNWi
|
|
17049144U, // CCMNWr
|
|
17049144U, // CCMNXi
|
|
17049144U, // CCMNXr
|
|
17049316U, // CCMPWi
|
|
17049316U, // CCMPWr
|
|
17049316U, // CCMPXi
|
|
17049316U, // CCMPXr
|
|
2107924U, // CLREX
|
|
553920604U, // CLSWr
|
|
553920604U, // CLSXr
|
|
6236U, // CLSv16i8
|
|
1074272348U, // CLSv2i32
|
|
2148538460U, // CLSv4i16
|
|
2685671516U, // CLSv4i32
|
|
3222804572U, // CLSv8i16
|
|
3759937628U, // CLSv8i8
|
|
553921084U, // CLZWr
|
|
553921084U, // CLZXr
|
|
6716U, // CLZv16i8
|
|
1074272828U, // CLZv2i32
|
|
2148538940U, // CLZv4i16
|
|
2685671996U, // CLZv4i32
|
|
3222805052U, // CLZv8i16
|
|
3759938108U, // CLZv8i8
|
|
2147489643U, // CMEQv16i8
|
|
5995U, // CMEQv16i8rz
|
|
17049451U, // CMEQv1i64
|
|
553920363U, // CMEQv1i64rz
|
|
2684884843U, // CMEQv2i32
|
|
1074272107U, // CMEQv2i32rz
|
|
537663339U, // CMEQv2i64
|
|
1611405163U, // CMEQv2i64rz
|
|
3222280043U, // CMEQv4i16
|
|
2148538219U, // CMEQv4i16rz
|
|
1075058539U, // CMEQv4i32
|
|
2685671275U, // CMEQv4i32rz
|
|
1612191595U, // CMEQv8i16
|
|
3222804331U, // CMEQv8i16rz
|
|
3759937387U, // CMEQv8i8
|
|
3759937387U, // CMEQv8i8rz
|
|
2147488636U, // CMGEv16i8
|
|
4988U, // CMGEv16i8rz
|
|
17048444U, // CMGEv1i64
|
|
553919356U, // CMGEv1i64rz
|
|
2684883836U, // CMGEv2i32
|
|
1074271100U, // CMGEv2i32rz
|
|
537662332U, // CMGEv2i64
|
|
1611404156U, // CMGEv2i64rz
|
|
3222279036U, // CMGEv4i16
|
|
2148537212U, // CMGEv4i16rz
|
|
1075057532U, // CMGEv4i32
|
|
2685670268U, // CMGEv4i32rz
|
|
1612190588U, // CMGEv8i16
|
|
3222803324U, // CMGEv8i16rz
|
|
3759936380U, // CMGEv8i8
|
|
3759936380U, // CMGEv8i8rz
|
|
2147489972U, // CMGTv16i8
|
|
6324U, // CMGTv16i8rz
|
|
17049780U, // CMGTv1i64
|
|
553920692U, // CMGTv1i64rz
|
|
2684885172U, // CMGTv2i32
|
|
1074272436U, // CMGTv2i32rz
|
|
537663668U, // CMGTv2i64
|
|
1611405492U, // CMGTv2i64rz
|
|
3222280372U, // CMGTv4i16
|
|
2148538548U, // CMGTv4i16rz
|
|
1075058868U, // CMGTv4i32
|
|
2685671604U, // CMGTv4i32rz
|
|
1612191924U, // CMGTv8i16
|
|
3222804660U, // CMGTv8i16rz
|
|
3759937716U, // CMGTv8i8
|
|
3759937716U, // CMGTv8i8rz
|
|
2147488916U, // CMHIv16i8
|
|
17048724U, // CMHIv1i64
|
|
2684884116U, // CMHIv2i32
|
|
537662612U, // CMHIv2i64
|
|
3222279316U, // CMHIv4i16
|
|
1075057812U, // CMHIv4i32
|
|
1612190868U, // CMHIv8i16
|
|
3759936660U, // CMHIv8i8
|
|
2147489878U, // CMHSv16i8
|
|
17049686U, // CMHSv1i64
|
|
2684885078U, // CMHSv2i32
|
|
537663574U, // CMHSv2i64
|
|
3222280278U, // CMHSv4i16
|
|
1075058774U, // CMHSv4i32
|
|
1612191830U, // CMHSv8i16
|
|
3759937622U, // CMHSv8i8
|
|
4995U, // CMLEv16i8rz
|
|
553919363U, // CMLEv1i64rz
|
|
1074271107U, // CMLEv2i32rz
|
|
1611404163U, // CMLEv2i64rz
|
|
2148537219U, // CMLEv4i16rz
|
|
2685670275U, // CMLEv4i32rz
|
|
3222803331U, // CMLEv8i16rz
|
|
3759936387U, // CMLEv8i8rz
|
|
6342U, // CMLTv16i8rz
|
|
553920710U, // CMLTv1i64rz
|
|
1074272454U, // CMLTv2i32rz
|
|
1611405510U, // CMLTv2i64rz
|
|
2148538566U, // CMLTv4i16rz
|
|
2685671622U, // CMLTv4i32rz
|
|
3222804678U, // CMLTv8i16rz
|
|
3759937734U, // CMLTv8i8rz
|
|
2147490013U, // CMTSTv16i8
|
|
17049821U, // CMTSTv1i64
|
|
2684885213U, // CMTSTv2i32
|
|
537663709U, // CMTSTv2i64
|
|
3222280413U, // CMTSTv4i16
|
|
1075058909U, // CMTSTv4i32
|
|
1612191965U, // CMTSTv8i16
|
|
3759937757U, // CMTSTv8i8
|
|
6348U, // CNTv16i8
|
|
3759937740U, // CNTv8i8
|
|
272763U, // CPYi16
|
|
537143675U, // CPYi32
|
|
1074014587U, // CPYi64
|
|
1610885499U, // CPYi8
|
|
17048098U, // CRC32Brr
|
|
17048106U, // CRC32CBrr
|
|
17048575U, // CRC32CHrr
|
|
17050039U, // CRC32CWrr
|
|
17050123U, // CRC32CXrr
|
|
17048558U, // CRC32Hrr
|
|
17050017U, // CRC32Wrr
|
|
17050092U, // CRC32Xrr
|
|
17048888U, // CSELWr
|
|
17048888U, // CSELXr
|
|
17048323U, // CSINCWr
|
|
17048323U, // CSINCXr
|
|
17049971U, // CSINVWr
|
|
17049971U, // CSINVXr
|
|
17048544U, // CSNEGWr
|
|
17048544U, // CSNEGXr
|
|
20524U, // DCPS1
|
|
20889U, // DCPS2
|
|
20938U, // DCPS3
|
|
29235U, // DMB
|
|
2719U, // DRPS
|
|
29324U, // DSB
|
|
553654070U, // DUPv16i8gpr
|
|
1610618678U, // DUPv16i8lane
|
|
554178358U, // DUPv2i32gpr
|
|
537401142U, // DUPv2i32lane
|
|
554440502U, // DUPv2i64gpr
|
|
1074534198U, // DUPv2i64lane
|
|
554702646U, // DUPv4i16gpr
|
|
1054518U, // DUPv4i16lane
|
|
554964790U, // DUPv4i32gpr
|
|
538187574U, // DUPv4i32lane
|
|
555226934U, // DUPv8i16gpr
|
|
1578806U, // DUPv8i16lane
|
|
555489078U, // DUPv8i8gpr
|
|
1612453686U, // DUPv8i8lane
|
|
0U, // EONWrr
|
|
17049150U, // EONWrs
|
|
0U, // EONXrr
|
|
17049150U, // EONXrs
|
|
17049538U, // EORWri
|
|
0U, // EORWrr
|
|
17049538U, // EORWrs
|
|
17049538U, // EORXri
|
|
0U, // EORXrr
|
|
17049538U, // EORXrs
|
|
2147489730U, // EORv16i8
|
|
3759937474U, // EORv8i8
|
|
2724U, // ERET
|
|
17049585U, // EXTRWrri
|
|
17049585U, // EXTRXrri
|
|
2147490026U, // EXTv16i8
|
|
3759937770U, // EXTv8i8
|
|
0U, // F128CSEL
|
|
17048340U, // FABD32
|
|
17048340U, // FABD64
|
|
2684883732U, // FABDv2f32
|
|
537662228U, // FABDv2f64
|
|
1075057428U, // FABDv4f32
|
|
553920549U, // FABSDr
|
|
553920549U, // FABSSr
|
|
1074272293U, // FABSv2f32
|
|
1611405349U, // FABSv2f64
|
|
2685671461U, // FABSv4f32
|
|
17048436U, // FACGE32
|
|
17048436U, // FACGE64
|
|
2684883828U, // FACGEv2f32
|
|
537662324U, // FACGEv2f64
|
|
1075057524U, // FACGEv4f32
|
|
17049772U, // FACGT32
|
|
17049772U, // FACGT64
|
|
2684885164U, // FACGTv2f32
|
|
537663660U, // FACGTv2f64
|
|
1075058860U, // FACGTv4f32
|
|
17048358U, // FADDDrr
|
|
2684884663U, // FADDPv2f32
|
|
537663159U, // FADDPv2f64
|
|
1074013879U, // FADDPv2i32p
|
|
1610884791U, // FADDPv2i64p
|
|
1075058359U, // FADDPv4f32
|
|
17048358U, // FADDSrr
|
|
2684883750U, // FADDv2f32
|
|
537662246U, // FADDv2f64
|
|
1075057446U, // FADDv4f32
|
|
17049315U, // FCCMPDrr
|
|
17048473U, // FCCMPEDrr
|
|
17048473U, // FCCMPESrr
|
|
17049315U, // FCCMPSrr
|
|
17049450U, // FCMEQ32
|
|
17049450U, // FCMEQ64
|
|
2164533098U, // FCMEQv1i32rz
|
|
2164533098U, // FCMEQv1i64rz
|
|
2684884842U, // FCMEQv2f32
|
|
537663338U, // FCMEQv2f64
|
|
2684884842U, // FCMEQv2i32rz
|
|
3222017898U, // FCMEQv2i64rz
|
|
1075058538U, // FCMEQv4f32
|
|
3759413098U, // FCMEQv4i32rz
|
|
17048443U, // FCMGE32
|
|
17048443U, // FCMGE64
|
|
2164532091U, // FCMGEv1i32rz
|
|
2164532091U, // FCMGEv1i64rz
|
|
2684883835U, // FCMGEv2f32
|
|
537662331U, // FCMGEv2f64
|
|
2684883835U, // FCMGEv2i32rz
|
|
3222016891U, // FCMGEv2i64rz
|
|
1075057531U, // FCMGEv4f32
|
|
3759412091U, // FCMGEv4i32rz
|
|
17049779U, // FCMGT32
|
|
17049779U, // FCMGT64
|
|
2164533427U, // FCMGTv1i32rz
|
|
2164533427U, // FCMGTv1i64rz
|
|
2684885171U, // FCMGTv2f32
|
|
537663667U, // FCMGTv2f64
|
|
2684885171U, // FCMGTv2i32rz
|
|
3222018227U, // FCMGTv2i64rz
|
|
1075058867U, // FCMGTv4f32
|
|
3759413427U, // FCMGTv4i32rz
|
|
2164532098U, // FCMLEv1i32rz
|
|
2164532098U, // FCMLEv1i64rz
|
|
2684883842U, // FCMLEv2i32rz
|
|
3222016898U, // FCMLEv2i64rz
|
|
3759412098U, // FCMLEv4i32rz
|
|
2164533445U, // FCMLTv1i32rz
|
|
2164533445U, // FCMLTv1i64rz
|
|
2684885189U, // FCMLTv2i32rz
|
|
3222018245U, // FCMLTv2i64rz
|
|
3759413445U, // FCMLTv4i32rz
|
|
2369258U, // FCMPDri
|
|
553920234U, // FCMPDrr
|
|
2368417U, // FCMPEDri
|
|
553919393U, // FCMPEDrr
|
|
2368417U, // FCMPESri
|
|
553919393U, // FCMPESrr
|
|
2369258U, // FCMPSri
|
|
553920234U, // FCMPSrr
|
|
17048887U, // FCSELDrrr
|
|
17048887U, // FCSELSrrr
|
|
553920541U, // FCVTASUWDr
|
|
553920541U, // FCVTASUWSr
|
|
553920541U, // FCVTASUXDr
|
|
553920541U, // FCVTASUXSr
|
|
553920541U, // FCVTASv1i32
|
|
553920541U, // FCVTASv1i64
|
|
1074272285U, // FCVTASv2f32
|
|
1611405341U, // FCVTASv2f64
|
|
2685671453U, // FCVTASv4f32
|
|
553920751U, // FCVTAUUWDr
|
|
553920751U, // FCVTAUUWSr
|
|
553920751U, // FCVTAUUXDr
|
|
553920751U, // FCVTAUUXSr
|
|
553920751U, // FCVTAUv1i32
|
|
553920751U, // FCVTAUv1i64
|
|
1074272495U, // FCVTAUv2f32
|
|
1611405551U, // FCVTAUv2f64
|
|
2685671663U, // FCVTAUv4f32
|
|
553920740U, // FCVTDHr
|
|
553920740U, // FCVTDSr
|
|
553920740U, // FCVTHDr
|
|
553920740U, // FCVTHSr
|
|
1074533828U, // FCVTLv2i32
|
|
2148799940U, // FCVTLv4i16
|
|
2685145352U, // FCVTLv4i32
|
|
3222540552U, // FCVTLv8i16
|
|
553920615U, // FCVTMSUWDr
|
|
553920615U, // FCVTMSUWSr
|
|
553920615U, // FCVTMSUXDr
|
|
553920615U, // FCVTMSUXSr
|
|
553920615U, // FCVTMSv1i32
|
|
553920615U, // FCVTMSv1i64
|
|
1074272359U, // FCVTMSv2f32
|
|
1611405415U, // FCVTMSv2f64
|
|
2685671527U, // FCVTMSv4f32
|
|
553920767U, // FCVTMUUWDr
|
|
553920767U, // FCVTMUUWSr
|
|
553920767U, // FCVTMUUXDr
|
|
553920767U, // FCVTMUUXSr
|
|
553920767U, // FCVTMUv1i32
|
|
553920767U, // FCVTMUv1i64
|
|
1074272511U, // FCVTMUv2f32
|
|
1611405567U, // FCVTMUv2f64
|
|
2685671679U, // FCVTMUv4f32
|
|
553920628U, // FCVTNSUWDr
|
|
553920628U, // FCVTNSUWSr
|
|
553920628U, // FCVTNSUXDr
|
|
553920628U, // FCVTNSUXSr
|
|
553920628U, // FCVTNSv1i32
|
|
553920628U, // FCVTNSv1i64
|
|
1074272372U, // FCVTNSv2f32
|
|
1611405428U, // FCVTNSv2f64
|
|
2685671540U, // FCVTNSv4f32
|
|
553920775U, // FCVTNUUWDr
|
|
553920775U, // FCVTNUUWSr
|
|
553920775U, // FCVTNUUXDr
|
|
553920775U, // FCVTNUUXSr
|
|
553920775U, // FCVTNUv1i32
|
|
553920775U, // FCVTNUv1i64
|
|
1074272519U, // FCVTNUv2f32
|
|
1611405575U, // FCVTNUv2f64
|
|
2685671687U, // FCVTNUv4f32
|
|
1611142770U, // FCVTNv2i32
|
|
2685408882U, // FCVTNv4i16
|
|
1645490510U, // FCVTNv4i32
|
|
2719494478U, // FCVTNv8i16
|
|
553920644U, // FCVTPSUWDr
|
|
553920644U, // FCVTPSUWSr
|
|
553920644U, // FCVTPSUXDr
|
|
553920644U, // FCVTPSUXSr
|
|
553920644U, // FCVTPSv1i32
|
|
553920644U, // FCVTPSv1i64
|
|
1074272388U, // FCVTPSv2f32
|
|
1611405444U, // FCVTPSv2f64
|
|
2685671556U, // FCVTPSv4f32
|
|
553920783U, // FCVTPUUWDr
|
|
553920783U, // FCVTPUUWSr
|
|
553920783U, // FCVTPUUXDr
|
|
553920783U, // FCVTPUUXSr
|
|
553920783U, // FCVTPUv1i32
|
|
553920783U, // FCVTPUv1i64
|
|
1074272527U, // FCVTPUv2f32
|
|
1611405583U, // FCVTPUv2f64
|
|
2685671695U, // FCVTPUv4f32
|
|
553920740U, // FCVTSDr
|
|
553920740U, // FCVTSHr
|
|
553920168U, // FCVTXNv1i64
|
|
1611142824U, // FCVTXNv2f32
|
|
1645490564U, // FCVTXNv4f32
|
|
17049759U, // FCVTZSSWDri
|
|
17049759U, // FCVTZSSWSri
|
|
17049759U, // FCVTZSSXDri
|
|
17049759U, // FCVTZSSXSri
|
|
553920671U, // FCVTZSUWDr
|
|
553920671U, // FCVTZSUWSr
|
|
553920671U, // FCVTZSUXDr
|
|
553920671U, // FCVTZSUXSr
|
|
17049759U, // FCVTZS_IntSWDri
|
|
17049759U, // FCVTZS_IntSWSri
|
|
17049759U, // FCVTZS_IntSXDri
|
|
17049759U, // FCVTZS_IntSXSri
|
|
553920671U, // FCVTZS_IntUWDr
|
|
553920671U, // FCVTZS_IntUWSr
|
|
553920671U, // FCVTZS_IntUXDr
|
|
553920671U, // FCVTZS_IntUXSr
|
|
1074272415U, // FCVTZS_Intv2f32
|
|
1611405471U, // FCVTZS_Intv2f64
|
|
2685671583U, // FCVTZS_Intv4f32
|
|
17049759U, // FCVTZSd
|
|
17049759U, // FCVTZSs
|
|
553920671U, // FCVTZSv1i32
|
|
553920671U, // FCVTZSv1i64
|
|
1074272415U, // FCVTZSv2f32
|
|
1611405471U, // FCVTZSv2f64
|
|
2684885151U, // FCVTZSv2i32_shift
|
|
537663647U, // FCVTZSv2i64_shift
|
|
2685671583U, // FCVTZSv4f32
|
|
1075058847U, // FCVTZSv4i32_shift
|
|
17049879U, // FCVTZUSWDri
|
|
17049879U, // FCVTZUSWSri
|
|
17049879U, // FCVTZUSXDri
|
|
17049879U, // FCVTZUSXSri
|
|
553920791U, // FCVTZUUWDr
|
|
553920791U, // FCVTZUUWSr
|
|
553920791U, // FCVTZUUXDr
|
|
553920791U, // FCVTZUUXSr
|
|
17049879U, // FCVTZU_IntSWDri
|
|
17049879U, // FCVTZU_IntSWSri
|
|
17049879U, // FCVTZU_IntSXDri
|
|
17049879U, // FCVTZU_IntSXSri
|
|
553920791U, // FCVTZU_IntUWDr
|
|
553920791U, // FCVTZU_IntUWSr
|
|
553920791U, // FCVTZU_IntUXDr
|
|
553920791U, // FCVTZU_IntUXSr
|
|
1074272535U, // FCVTZU_Intv2f32
|
|
1611405591U, // FCVTZU_Intv2f64
|
|
2685671703U, // FCVTZU_Intv4f32
|
|
17049879U, // FCVTZUd
|
|
17049879U, // FCVTZUs
|
|
553920791U, // FCVTZUv1i32
|
|
553920791U, // FCVTZUv1i64
|
|
1074272535U, // FCVTZUv2f32
|
|
1611405591U, // FCVTZUv2f64
|
|
2684885271U, // FCVTZUv2i32_shift
|
|
537663767U, // FCVTZUv2i64_shift
|
|
2685671703U, // FCVTZUv4f32
|
|
1075058967U, // FCVTZUv4i32_shift
|
|
17049898U, // FDIVDrr
|
|
17049898U, // FDIVSrr
|
|
2684885290U, // FDIVv2f32
|
|
537663786U, // FDIVv2f64
|
|
1075058986U, // FDIVv4f32
|
|
17048394U, // FMADDDrrr
|
|
17048394U, // FMADDSrrr
|
|
17050100U, // FMAXDrr
|
|
17049087U, // FMAXNMDrr
|
|
2684884729U, // FMAXNMPv2f32
|
|
537663225U, // FMAXNMPv2f64
|
|
1074013945U, // FMAXNMPv2i32p
|
|
1610884857U, // FMAXNMPv2i64p
|
|
1075058425U, // FMAXNMPv4f32
|
|
17049087U, // FMAXNMSrr
|
|
2684627285U, // FMAXNMVv4i32v
|
|
2684884479U, // FMAXNMv2f32
|
|
537662975U, // FMAXNMv2f64
|
|
1075058175U, // FMAXNMv4f32
|
|
2684884802U, // FMAXPv2f32
|
|
537663298U, // FMAXPv2f64
|
|
1074014018U, // FMAXPv2i32p
|
|
1610884930U, // FMAXPv2i64p
|
|
1075058498U, // FMAXPv4f32
|
|
17050100U, // FMAXSrr
|
|
2684627340U, // FMAXVv4i32v
|
|
2684885492U, // FMAXv2f32
|
|
537663988U, // FMAXv2f64
|
|
1075059188U, // FMAXv4f32
|
|
17049126U, // FMINDrr
|
|
17049079U, // FMINNMDrr
|
|
2684884720U, // FMINNMPv2f32
|
|
537663216U, // FMINNMPv2f64
|
|
1074013936U, // FMINNMPv2i32p
|
|
1610884848U, // FMINNMPv2i64p
|
|
1075058416U, // FMINNMPv4f32
|
|
17049079U, // FMINNMSrr
|
|
2684627276U, // FMINNMVv4i32v
|
|
2684884471U, // FMINNMv2f32
|
|
537662967U, // FMINNMv2f64
|
|
1075058167U, // FMINNMv4f32
|
|
2684884744U, // FMINPv2f32
|
|
537663240U, // FMINPv2f64
|
|
1074013960U, // FMINPv2i32p
|
|
1610884872U, // FMINPv2i64p
|
|
1075058440U, // FMINPv4f32
|
|
17049126U, // FMINSrr
|
|
2684627294U, // FMINVv4i32v
|
|
2684884518U, // FMINv2f32
|
|
537663014U, // FMINv2f64
|
|
1075058214U, // FMINv4f32
|
|
67404282U, // FMLAv1i32_indexed
|
|
67404282U, // FMLAv1i64_indexed
|
|
2718446074U, // FMLAv2f32
|
|
571224570U, // FMLAv2f64
|
|
2718446074U, // FMLAv2i32_indexed
|
|
571224570U, // FMLAv2i64_indexed
|
|
1108619770U, // FMLAv4f32
|
|
1108619770U, // FMLAv4i32_indexed
|
|
67405921U, // FMLSv1i32_indexed
|
|
67405921U, // FMLSv1i64_indexed
|
|
2718447713U, // FMLSv2f32
|
|
571226209U, // FMLSv2f64
|
|
2718447713U, // FMLSv2i32_indexed
|
|
571226209U, // FMLSv2i64_indexed
|
|
1108621409U, // FMLSv4f32
|
|
1108621409U, // FMLSv4i32_indexed
|
|
1074014586U, // FMOVDXHighr
|
|
553920890U, // FMOVDXr
|
|
117713274U, // FMOVDi
|
|
553920890U, // FMOVDr
|
|
553920890U, // FMOVSWr
|
|
117713274U, // FMOVSi
|
|
553920890U, // FMOVSr
|
|
553920890U, // FMOVWSr
|
|
556276090U, // FMOVXDHighr
|
|
553920890U, // FMOVXDr
|
|
117971322U, // FMOVv2f32_ns
|
|
118233466U, // FMOVv2f64_ns
|
|
118757754U, // FMOVv4f32_ns
|
|
17048257U, // FMSUBDrrr
|
|
17048257U, // FMSUBSrrr
|
|
17049035U, // FMULDrr
|
|
17049035U, // FMULSrr
|
|
17050139U, // FMULX32
|
|
17050139U, // FMULX64
|
|
17050139U, // FMULXv1i32_indexed
|
|
17050139U, // FMULXv1i64_indexed
|
|
2684885531U, // FMULXv2f32
|
|
537664027U, // FMULXv2f64
|
|
2684885531U, // FMULXv2i32_indexed
|
|
537664027U, // FMULXv2i64_indexed
|
|
1075059227U, // FMULXv4f32
|
|
1075059227U, // FMULXv4i32_indexed
|
|
17049035U, // FMULv1i32_indexed
|
|
17049035U, // FMULv1i64_indexed
|
|
2684884427U, // FMULv2f32
|
|
537662923U, // FMULv2f64
|
|
2684884427U, // FMULv2i32_indexed
|
|
537662923U, // FMULv2i64_indexed
|
|
1075058123U, // FMULv4f32
|
|
1075058123U, // FMULv4i32_indexed
|
|
553919443U, // FNEGDr
|
|
553919443U, // FNEGSr
|
|
1074271187U, // FNEGv2f32
|
|
1611404243U, // FNEGv2f64
|
|
2685670355U, // FNEGv4f32
|
|
17048401U, // FNMADDDrrr
|
|
17048401U, // FNMADDSrrr
|
|
17048264U, // FNMSUBDrrr
|
|
17048264U, // FNMSUBSrrr
|
|
17049041U, // FNMULDrr
|
|
17049041U, // FNMULSrr
|
|
553919369U, // FRECPEv1i32
|
|
553919369U, // FRECPEv1i64
|
|
1074271113U, // FRECPEv2f32
|
|
1611404169U, // FRECPEv2f64
|
|
2685670281U, // FRECPEv4f32
|
|
17049724U, // FRECPS32
|
|
17049724U, // FRECPS64
|
|
2684885116U, // FRECPSv2f32
|
|
537663612U, // FRECPSv2f64
|
|
1075058812U, // FRECPSv4f32
|
|
553921058U, // FRECPXv1i32
|
|
553921058U, // FRECPXv1i64
|
|
553919002U, // FRINTADr
|
|
553919002U, // FRINTASr
|
|
1074270746U, // FRINTAv2f32
|
|
1611403802U, // FRINTAv2f64
|
|
2685669914U, // FRINTAv4f32
|
|
553919658U, // FRINTIDr
|
|
553919658U, // FRINTISr
|
|
1074271402U, // FRINTIv2f32
|
|
1611404458U, // FRINTIv2f64
|
|
2685670570U, // FRINTIv4f32
|
|
553920007U, // FRINTMDr
|
|
553920007U, // FRINTMSr
|
|
1074271751U, // FRINTMv2f32
|
|
1611404807U, // FRINTMv2f64
|
|
2685670919U, // FRINTMv4f32
|
|
553920106U, // FRINTNDr
|
|
553920106U, // FRINTNSr
|
|
1074271850U, // FRINTNv2f32
|
|
1611404906U, // FRINTNv2f64
|
|
2685671018U, // FRINTNv4f32
|
|
553920297U, // FRINTPDr
|
|
553920297U, // FRINTPSr
|
|
1074272041U, // FRINTPv2f32
|
|
1611405097U, // FRINTPv2f64
|
|
2685671209U, // FRINTPv4f32
|
|
553921066U, // FRINTXDr
|
|
553921066U, // FRINTXSr
|
|
1074272810U, // FRINTXv2f32
|
|
1611405866U, // FRINTXv2f64
|
|
2685671978U, // FRINTXv4f32
|
|
553921101U, // FRINTZDr
|
|
553921101U, // FRINTZSr
|
|
1074272845U, // FRINTZv2f32
|
|
1611405901U, // FRINTZv2f64
|
|
2685672013U, // FRINTZv4f32
|
|
553919406U, // FRSQRTEv1i32
|
|
553919406U, // FRSQRTEv1i64
|
|
1074271150U, // FRSQRTEv2f32
|
|
1611404206U, // FRSQRTEv2f64
|
|
2685670318U, // FRSQRTEv4f32
|
|
17049745U, // FRSQRTS32
|
|
17049745U, // FRSQRTS64
|
|
2684885137U, // FRSQRTSv2f32
|
|
537663633U, // FRSQRTSv2f64
|
|
1075058833U, // FRSQRTSv4f32
|
|
553920726U, // FSQRTDr
|
|
553920726U, // FSQRTSr
|
|
1074272470U, // FSQRTv2f32
|
|
1611405526U, // FSQRTv2f64
|
|
2685671638U, // FSQRTv4f32
|
|
17048237U, // FSUBDrr
|
|
17048237U, // FSUBSrr
|
|
2684883629U, // FSUBv2f32
|
|
537662125U, // FSUBv2f64
|
|
1075057325U, // FSUBv4f32
|
|
23145U, // HINT
|
|
22720U, // HLT
|
|
21258U, // HVC
|
|
137115759U, // INSvi16gpr
|
|
153892975U, // INSvi16lane
|
|
137377903U, // INSvi32gpr
|
|
691026031U, // INSvi32lane
|
|
136853615U, // INSvi64gpr
|
|
1227372655U, // INSvi64lane
|
|
137640047U, // INSvi8gpr
|
|
1765029999U, // INSvi8lane
|
|
29329U, // ISB
|
|
36885U, // LD1Fourv16b
|
|
3710997U, // LD1Fourv16b_POST
|
|
45077U, // LD1Fourv1d
|
|
3981333U, // LD1Fourv1d_POST
|
|
53269U, // LD1Fourv2d
|
|
3727381U, // LD1Fourv2d_POST
|
|
61461U, // LD1Fourv2s
|
|
3997717U, // LD1Fourv2s_POST
|
|
69653U, // LD1Fourv4h
|
|
4005909U, // LD1Fourv4h_POST
|
|
77845U, // LD1Fourv4s
|
|
3751957U, // LD1Fourv4s_POST
|
|
86037U, // LD1Fourv8b
|
|
4022293U, // LD1Fourv8b_POST
|
|
94229U, // LD1Fourv8h
|
|
3768341U, // LD1Fourv8h_POST
|
|
36885U, // LD1Onev16b
|
|
4235285U, // LD1Onev16b_POST
|
|
45077U, // LD1Onev1d
|
|
4505621U, // LD1Onev1d_POST
|
|
53269U, // LD1Onev2d
|
|
4251669U, // LD1Onev2d_POST
|
|
61461U, // LD1Onev2s
|
|
4522005U, // LD1Onev2s_POST
|
|
69653U, // LD1Onev4h
|
|
4530197U, // LD1Onev4h_POST
|
|
77845U, // LD1Onev4s
|
|
4276245U, // LD1Onev4s_POST
|
|
86037U, // LD1Onev8b
|
|
4546581U, // LD1Onev8b_POST
|
|
94229U, // LD1Onev8h
|
|
4292629U, // LD1Onev8h_POST
|
|
38769U, // LD1Rv16b
|
|
4761457U, // LD1Rv16b_POST
|
|
46961U, // LD1Rv1d
|
|
4507505U, // LD1Rv1d_POST
|
|
55153U, // LD1Rv2d
|
|
4515697U, // LD1Rv2d_POST
|
|
63345U, // LD1Rv2s
|
|
5048177U, // LD1Rv2s_POST
|
|
71537U, // LD1Rv4h
|
|
5318513U, // LD1Rv4h_POST
|
|
79729U, // LD1Rv4s
|
|
5064561U, // LD1Rv4s_POST
|
|
87921U, // LD1Rv8b
|
|
4810609U, // LD1Rv8b_POST
|
|
96113U, // LD1Rv8h
|
|
5343089U, // LD1Rv8h_POST
|
|
36885U, // LD1Threev16b
|
|
5546005U, // LD1Threev16b_POST
|
|
45077U, // LD1Threev1d
|
|
5816341U, // LD1Threev1d_POST
|
|
53269U, // LD1Threev2d
|
|
5562389U, // LD1Threev2d_POST
|
|
61461U, // LD1Threev2s
|
|
5832725U, // LD1Threev2s_POST
|
|
69653U, // LD1Threev4h
|
|
5840917U, // LD1Threev4h_POST
|
|
77845U, // LD1Threev4s
|
|
5586965U, // LD1Threev4s_POST
|
|
86037U, // LD1Threev8b
|
|
5857301U, // LD1Threev8b_POST
|
|
94229U, // LD1Threev8h
|
|
5603349U, // LD1Threev8h_POST
|
|
36885U, // LD1Twov16b
|
|
3973141U, // LD1Twov16b_POST
|
|
45077U, // LD1Twov1d
|
|
4243477U, // LD1Twov1d_POST
|
|
53269U, // LD1Twov2d
|
|
3989525U, // LD1Twov2d_POST
|
|
61461U, // LD1Twov2s
|
|
4259861U, // LD1Twov2s_POST
|
|
69653U, // LD1Twov4h
|
|
4268053U, // LD1Twov4h_POST
|
|
77845U, // LD1Twov4s
|
|
4014101U, // LD1Twov4s_POST
|
|
86037U, // LD1Twov8b
|
|
4284437U, // LD1Twov8b_POST
|
|
94229U, // LD1Twov8h
|
|
4030485U, // LD1Twov8h_POST
|
|
6131733U, // LD1i16
|
|
6397973U, // LD1i16_POST
|
|
6139925U, // LD1i32
|
|
6668309U, // LD1i32_POST
|
|
6148117U, // LD1i64
|
|
6938645U, // LD1i64_POST
|
|
6156309U, // LD1i8
|
|
7208981U, // LD1i8_POST
|
|
38775U, // LD2Rv16b
|
|
5285751U, // LD2Rv16b_POST
|
|
46967U, // LD2Rv1d
|
|
4245367U, // LD2Rv1d_POST
|
|
55159U, // LD2Rv2d
|
|
4253559U, // LD2Rv2d_POST
|
|
63351U, // LD2Rv2s
|
|
4523895U, // LD2Rv2s_POST
|
|
71543U, // LD2Rv4h
|
|
5056375U, // LD2Rv4h_POST
|
|
79735U, // LD2Rv4s
|
|
4540279U, // LD2Rv4s_POST
|
|
87927U, // LD2Rv8b
|
|
5334903U, // LD2Rv8b_POST
|
|
96119U, // LD2Rv8h
|
|
5080951U, // LD2Rv8h_POST
|
|
36947U, // LD2Twov16b
|
|
3973203U, // LD2Twov16b_POST
|
|
53331U, // LD2Twov2d
|
|
3989587U, // LD2Twov2d_POST
|
|
61523U, // LD2Twov2s
|
|
4259923U, // LD2Twov2s_POST
|
|
69715U, // LD2Twov4h
|
|
4268115U, // LD2Twov4h_POST
|
|
77907U, // LD2Twov4s
|
|
4014163U, // LD2Twov4s_POST
|
|
86099U, // LD2Twov8b
|
|
4284499U, // LD2Twov8b_POST
|
|
94291U, // LD2Twov8h
|
|
4030547U, // LD2Twov8h_POST
|
|
6131795U, // LD2i16
|
|
6660179U, // LD2i16_POST
|
|
6139987U, // LD2i32
|
|
6930515U, // LD2i32_POST
|
|
6148179U, // LD2i64
|
|
7462995U, // LD2i64_POST
|
|
6156371U, // LD2i8
|
|
6422611U, // LD2i8_POST
|
|
38781U, // LD3Rv16b
|
|
7645053U, // LD3Rv16b_POST
|
|
46973U, // LD3Rv1d
|
|
5818237U, // LD3Rv1d_POST
|
|
55165U, // LD3Rv2d
|
|
5826429U, // LD3Rv2d_POST
|
|
63357U, // LD3Rv2s
|
|
7931773U, // LD3Rv2s_POST
|
|
71549U, // LD3Rv4h
|
|
8202109U, // LD3Rv4h_POST
|
|
79741U, // LD3Rv4s
|
|
7948157U, // LD3Rv4s_POST
|
|
87933U, // LD3Rv8b
|
|
7694205U, // LD3Rv8b_POST
|
|
96125U, // LD3Rv8h
|
|
8226685U, // LD3Rv8h_POST
|
|
37317U, // LD3Threev16b
|
|
5546437U, // LD3Threev16b_POST
|
|
53701U, // LD3Threev2d
|
|
5562821U, // LD3Threev2d_POST
|
|
61893U, // LD3Threev2s
|
|
5833157U, // LD3Threev2s_POST
|
|
70085U, // LD3Threev4h
|
|
5841349U, // LD3Threev4h_POST
|
|
78277U, // LD3Threev4s
|
|
5587397U, // LD3Threev4s_POST
|
|
86469U, // LD3Threev8b
|
|
5857733U, // LD3Threev8b_POST
|
|
94661U, // LD3Threev8h
|
|
5603781U, // LD3Threev8h_POST
|
|
6132165U, // LD3i16
|
|
8495557U, // LD3i16_POST
|
|
6140357U, // LD3i32
|
|
8765893U, // LD3i32_POST
|
|
6148549U, // LD3i64
|
|
9036229U, // LD3i64_POST
|
|
6156741U, // LD3i8
|
|
9306565U, // LD3i8_POST
|
|
37341U, // LD4Fourv16b
|
|
3711453U, // LD4Fourv16b_POST
|
|
53725U, // LD4Fourv2d
|
|
3727837U, // LD4Fourv2d_POST
|
|
61917U, // LD4Fourv2s
|
|
3998173U, // LD4Fourv2s_POST
|
|
70109U, // LD4Fourv4h
|
|
4006365U, // LD4Fourv4h_POST
|
|
78301U, // LD4Fourv4s
|
|
3752413U, // LD4Fourv4s_POST
|
|
86493U, // LD4Fourv8b
|
|
4022749U, // LD4Fourv8b_POST
|
|
94685U, // LD4Fourv8h
|
|
3768797U, // LD4Fourv8h_POST
|
|
38787U, // LD4Rv16b
|
|
5023619U, // LD4Rv16b_POST
|
|
46979U, // LD4Rv1d
|
|
3983235U, // LD4Rv1d_POST
|
|
55171U, // LD4Rv2d
|
|
3991427U, // LD4Rv2d_POST
|
|
63363U, // LD4Rv2s
|
|
4261763U, // LD4Rv2s_POST
|
|
71555U, // LD4Rv4h
|
|
4532099U, // LD4Rv4h_POST
|
|
79747U, // LD4Rv4s
|
|
4278147U, // LD4Rv4s_POST
|
|
87939U, // LD4Rv8b
|
|
5072771U, // LD4Rv8b_POST
|
|
96131U, // LD4Rv8h
|
|
4556675U, // LD4Rv8h_POST
|
|
6132189U, // LD4i16
|
|
6922717U, // LD4i16_POST
|
|
6140381U, // LD4i32
|
|
7455197U, // LD4i32_POST
|
|
6148573U, // LD4i64
|
|
9560541U, // LD4i64_POST
|
|
6156765U, // LD4i8
|
|
6685149U, // LD4i8_POST
|
|
26485304U, // LDARB
|
|
26485801U, // LDARH
|
|
26486665U, // LDARW
|
|
26486665U, // LDARX
|
|
553920315U, // LDAXPW
|
|
553920315U, // LDAXPX
|
|
26485358U, // LDAXRB
|
|
26485855U, // LDAXRH
|
|
26486787U, // LDAXRW
|
|
26486787U, // LDAXRX
|
|
553920258U, // LDNPDi
|
|
553920258U, // LDNPQi
|
|
553920258U, // LDNPSi
|
|
553920258U, // LDNPWi
|
|
553920258U, // LDNPXi
|
|
553920190U, // LDPDi
|
|
604276414U, // LDPDpost
|
|
604276414U, // LDPDpre
|
|
553920190U, // LDPQi
|
|
604276414U, // LDPQpost
|
|
604276414U, // LDPQpre
|
|
553920974U, // LDPSWi
|
|
604277198U, // LDPSWpost
|
|
604277198U, // LDPSWpre
|
|
553920190U, // LDPSi
|
|
604276414U, // LDPSpost
|
|
604276414U, // LDPSpre
|
|
553920190U, // LDPWi
|
|
604276414U, // LDPWpost
|
|
604276414U, // LDPWpre
|
|
553920190U, // LDPXi
|
|
604276414U, // LDPXpost
|
|
604276414U, // LDPXpre
|
|
1150583359U, // LDRBBpost
|
|
76841535U, // LDRBBpre
|
|
26485311U, // LDRBBroW
|
|
26485311U, // LDRBBroX
|
|
26485311U, // LDRBBui
|
|
1150584728U, // LDRBpost
|
|
76842904U, // LDRBpre
|
|
26486680U, // LDRBroW
|
|
26486680U, // LDRBroX
|
|
26486680U, // LDRBui
|
|
100935576U, // LDRDl
|
|
1150584728U, // LDRDpost
|
|
76842904U, // LDRDpre
|
|
26486680U, // LDRDroW
|
|
26486680U, // LDRDroX
|
|
26486680U, // LDRDui
|
|
1150583856U, // LDRHHpost
|
|
76842032U, // LDRHHpre
|
|
26485808U, // LDRHHroW
|
|
26485808U, // LDRHHroX
|
|
26485808U, // LDRHHui
|
|
1150584728U, // LDRHpost
|
|
76842904U, // LDRHpre
|
|
26486680U, // LDRHroW
|
|
26486680U, // LDRHroX
|
|
26486680U, // LDRHui
|
|
100935576U, // LDRQl
|
|
1150584728U, // LDRQpost
|
|
76842904U, // LDRQpre
|
|
26486680U, // LDRQroW
|
|
26486680U, // LDRQroX
|
|
26486680U, // LDRQui
|
|
1150583446U, // LDRSBWpost
|
|
76841622U, // LDRSBWpre
|
|
26485398U, // LDRSBWroW
|
|
26485398U, // LDRSBWroX
|
|
26485398U, // LDRSBWui
|
|
1150583446U, // LDRSBXpost
|
|
76841622U, // LDRSBXpre
|
|
26485398U, // LDRSBXroW
|
|
26485398U, // LDRSBXroX
|
|
26485398U, // LDRSBXui
|
|
1150583933U, // LDRSHWpost
|
|
76842109U, // LDRSHWpre
|
|
26485885U, // LDRSHWroW
|
|
26485885U, // LDRSHWroX
|
|
26485885U, // LDRSHWui
|
|
1150583933U, // LDRSHXpost
|
|
76842109U, // LDRSHXpre
|
|
26485885U, // LDRSHXroW
|
|
26485885U, // LDRSHXroX
|
|
26485885U, // LDRSHXui
|
|
100936149U, // LDRSWl
|
|
1150585301U, // LDRSWpost
|
|
76843477U, // LDRSWpre
|
|
26487253U, // LDRSWroW
|
|
26487253U, // LDRSWroX
|
|
26487253U, // LDRSWui
|
|
100935576U, // LDRSl
|
|
1150584728U, // LDRSpost
|
|
76842904U, // LDRSpre
|
|
26486680U, // LDRSroW
|
|
26486680U, // LDRSroX
|
|
26486680U, // LDRSui
|
|
100935576U, // LDRWl
|
|
1150584728U, // LDRWpost
|
|
76842904U, // LDRWpre
|
|
26486680U, // LDRWroW
|
|
26486680U, // LDRWroX
|
|
26486680U, // LDRWui
|
|
100935576U, // LDRXl
|
|
1150584728U, // LDRXpost
|
|
76842904U, // LDRXpre
|
|
26486680U, // LDRXroW
|
|
26486680U, // LDRXroX
|
|
26486680U, // LDRXui
|
|
26485324U, // LDTRBi
|
|
26485821U, // LDTRHi
|
|
26485405U, // LDTRSBWi
|
|
26485405U, // LDTRSBXi
|
|
26485892U, // LDTRSHWi
|
|
26485892U, // LDTRSHXi
|
|
26487260U, // LDTRSWi
|
|
26486752U, // LDTRWi
|
|
26486752U, // LDTRXi
|
|
26485344U, // LDURBBi
|
|
26486775U, // LDURBi
|
|
26486775U, // LDURDi
|
|
26485841U, // LDURHHi
|
|
26486775U, // LDURHi
|
|
26486775U, // LDURQi
|
|
26485413U, // LDURSBWi
|
|
26485413U, // LDURSBXi
|
|
26485900U, // LDURSHWi
|
|
26485900U, // LDURSHXi
|
|
26487268U, // LDURSWi
|
|
26486775U, // LDURSi
|
|
26486775U, // LDURWi
|
|
26486775U, // LDURXi
|
|
553920343U, // LDXPW
|
|
553920343U, // LDXPX
|
|
26485366U, // LDXRB
|
|
26485863U, // LDXRH
|
|
26486794U, // LDXRW
|
|
26486794U, // LDXRX
|
|
0U, // LOADgot
|
|
17049003U, // LSLVWr
|
|
17049003U, // LSLVXr
|
|
17049558U, // LSRVWr
|
|
17049558U, // LSRVXr
|
|
17048395U, // MADDWrrr
|
|
17048395U, // MADDXrrr
|
|
2181050875U, // MLAv16i8
|
|
2718446075U, // MLAv2i32
|
|
2718446075U, // MLAv2i32_indexed
|
|
3255841275U, // MLAv4i16
|
|
3255841275U, // MLAv4i16_indexed
|
|
1108619771U, // MLAv4i32
|
|
1108619771U, // MLAv4i32_indexed
|
|
1645752827U, // MLAv8i16
|
|
1645752827U, // MLAv8i16_indexed
|
|
3793498619U, // MLAv8i8
|
|
2181052514U, // MLSv16i8
|
|
2718447714U, // MLSv2i32
|
|
2718447714U, // MLSv2i32_indexed
|
|
3255842914U, // MLSv4i16
|
|
3255842914U, // MLSv4i16_indexed
|
|
1108621410U, // MLSv4i32
|
|
1108621410U, // MLSv4i32_indexed
|
|
1645754466U, // MLSv8i16
|
|
1645754466U, // MLSv8i16_indexed
|
|
3793500258U, // MLSv8i8
|
|
168043698U, // MOVID
|
|
721425586U, // MOVIv16b_ns
|
|
168563890U, // MOVIv2d_ns
|
|
1795691698U, // MOVIv2i32
|
|
1795691698U, // MOVIv2s_msl
|
|
1796215986U, // MOVIv4i16
|
|
1796478130U, // MOVIv4i32
|
|
1796478130U, // MOVIv4s_msl
|
|
723260594U, // MOVIv8b_ns
|
|
1796740274U, // MOVIv8i16
|
|
84157629U, // MOVKWi
|
|
84157629U, // MOVKXi
|
|
1795434146U, // MOVNWi
|
|
1795434146U, // MOVNXi
|
|
1795435093U, // MOVZWi
|
|
1795435093U, // MOVZXi
|
|
0U, // MOVaddr
|
|
0U, // MOVaddrBA
|
|
0U, // MOVaddrCP
|
|
0U, // MOVaddrEXT
|
|
0U, // MOVaddrJT
|
|
0U, // MOVaddrTLS
|
|
0U, // MOVi32imm
|
|
0U, // MOVi64imm
|
|
201599116U, // MRS
|
|
137179U, // MSR
|
|
141275U, // MSRpstate
|
|
17048258U, // MSUBWrrr
|
|
17048258U, // MSUBXrrr
|
|
2147489228U, // MULv16i8
|
|
2684884428U, // MULv2i32
|
|
2684884428U, // MULv2i32_indexed
|
|
3222279628U, // MULv4i16
|
|
3222279628U, // MULv4i16_indexed
|
|
1075058124U, // MULv4i32
|
|
1075058124U, // MULv4i32_indexed
|
|
1612191180U, // MULv8i16
|
|
1612191180U, // MULv8i16_indexed
|
|
3759936972U, // MULv8i8
|
|
1795691679U, // MVNIv2i32
|
|
1795691679U, // MVNIv2s_msl
|
|
1796215967U, // MVNIv4i16
|
|
1796478111U, // MVNIv4i32
|
|
1796478111U, // MVNIv4s_msl
|
|
1796740255U, // MVNIv8i16
|
|
5076U, // NEGv16i8
|
|
553919444U, // NEGv1i64
|
|
1074271188U, // NEGv2i32
|
|
1611404244U, // NEGv2i64
|
|
2148537300U, // NEGv4i16
|
|
2685670356U, // NEGv4i32
|
|
3222803412U, // NEGv8i16
|
|
3759936468U, // NEGv8i8
|
|
6353U, // NOTv16i8
|
|
3759937745U, // NOTv8i8
|
|
0U, // ORNWrr
|
|
17049189U, // ORNWrs
|
|
0U, // ORNXrr
|
|
17049189U, // ORNXrs
|
|
2147489381U, // ORNv16i8
|
|
3759937125U, // ORNv8i8
|
|
17049548U, // ORRWri
|
|
0U, // ORRWrr
|
|
17049548U, // ORRWrs
|
|
17049548U, // ORRXri
|
|
0U, // ORRXrr
|
|
17049548U, // ORRXrs
|
|
2147489740U, // ORRv16i8
|
|
84424652U, // ORRv2i32
|
|
84948940U, // ORRv4i16
|
|
85211084U, // ORRv4i32
|
|
85473228U, // ORRv8i16
|
|
3759937484U, // ORRv8i8
|
|
2149060822U, // PMULLv16i8
|
|
228070797U, // PMULLv1i64
|
|
244846806U, // PMULLv2i64
|
|
3759674765U, // PMULLv8i8
|
|
2147489240U, // PMULv16i8
|
|
3759936984U, // PMULv8i8
|
|
101070321U, // PRFMl
|
|
26621425U, // PRFMroW
|
|
26621425U, // PRFMroX
|
|
26621425U, // PRFMui
|
|
26621455U, // PRFUMi
|
|
537400862U, // RADDHNv2i64_v2i32
|
|
571748633U, // RADDHNv2i64_v4i32
|
|
1074796062U, // RADDHNv4i32_v4i16
|
|
1108881689U, // RADDHNv4i32_v8i16
|
|
1644179737U, // RADDHNv8i16_v16i8
|
|
1612453406U, // RADDHNv8i16_v8i8
|
|
553920698U, // RBITWr
|
|
553920698U, // RBITXr
|
|
6330U, // RBITv16i8
|
|
3759937722U, // RBITv8i8
|
|
2107559U, // RET
|
|
0U, // RET_ReallyLR
|
|
553918951U, // REV16Wr
|
|
553918951U, // REV16Xr
|
|
4583U, // REV16v16i8
|
|
3759935975U, // REV16v8i8
|
|
553918540U, // REV32Xr
|
|
4172U, // REV32v16i8
|
|
2148536396U, // REV32v4i16
|
|
3222802508U, // REV32v8i16
|
|
3759935564U, // REV32v8i8
|
|
4566U, // REV64v16i8
|
|
1074270678U, // REV64v2i32
|
|
2148536790U, // REV64v4i16
|
|
2685669846U, // REV64v4i32
|
|
3222802902U, // REV64v8i16
|
|
3759935958U, // REV64v8i8
|
|
553920805U, // REVWr
|
|
553920805U, // REVXr
|
|
17049543U, // RORVWr
|
|
17049543U, // RORVXr
|
|
1644179766U, // RSHRNv16i8_shift
|
|
537400917U, // RSHRNv2i32_shift
|
|
1074796117U, // RSHRNv4i16_shift
|
|
571748662U, // RSHRNv4i32_shift
|
|
1108881718U, // RSHRNv8i16_shift
|
|
1612453461U, // RSHRNv8i8_shift
|
|
537400854U, // RSUBHNv2i64_v2i32
|
|
571748624U, // RSUBHNv2i64_v4i32
|
|
1074796054U, // RSUBHNv4i32_v4i16
|
|
1108881680U, // RSUBHNv4i32_v8i16
|
|
1644179728U, // RSUBHNv8i16_v16i8
|
|
1612453398U, // RSUBHNv8i16_v8i8
|
|
2182623330U, // SABALv16i8_v8i16
|
|
2718708931U, // SABALv2i32_v2i64
|
|
3256104131U, // SABALv4i16_v4i32
|
|
1108095074U, // SABALv4i32_v2i64
|
|
1645490274U, // SABALv8i16_v4i32
|
|
3793237187U, // SABALv8i8_v8i16
|
|
2181050862U, // SABAv16i8
|
|
2718446062U, // SABAv2i32
|
|
3255841262U, // SABAv4i16
|
|
1108619758U, // SABAv4i32
|
|
1645752814U, // SABAv8i16
|
|
3793498606U, // SABAv8i8
|
|
2149060764U, // SABDLv16i8_v8i16
|
|
2685146379U, // SABDLv2i32_v2i64
|
|
3222541579U, // SABDLv4i16_v4i32
|
|
1074532508U, // SABDLv4i32_v2i64
|
|
1611927708U, // SABDLv8i16_v4i32
|
|
3759674635U, // SABDLv8i8_v8i16
|
|
2147488538U, // SABDv16i8
|
|
2684883738U, // SABDv2i32
|
|
3222278938U, // SABDv4i16
|
|
1075057434U, // SABDv4i32
|
|
1612190490U, // SABDv8i16
|
|
3759936282U, // SABDv8i8
|
|
35141315U, // SADALPv16i8_v8i16
|
|
1117533891U, // SADALPv2i32_v1i64
|
|
2181576387U, // SADALPv4i16_v2i32
|
|
2718709443U, // SADALPv4i32_v2i64
|
|
3256104643U, // SADALPv8i16_v4i32
|
|
3792713411U, // SADALPv8i8_v4i16
|
|
1578707U, // SADDLPv16i8_v8i16
|
|
1083971283U, // SADDLPv2i32_v1i64
|
|
2148013779U, // SADDLPv4i16_v2i32
|
|
2685146835U, // SADDLPv4i32_v2i64
|
|
3222542035U, // SADDLPv8i16_v4i32
|
|
3759150803U, // SADDLPv8i8_v4i16
|
|
272700U, // SADDLVv16i8v
|
|
2147756348U, // SADDLVv4i16v
|
|
2684627260U, // SADDLVv4i32v
|
|
3221498172U, // SADDLVv8i16v
|
|
3758369084U, // SADDLVv8i8v
|
|
2149060780U, // SADDLv16i8_v8i16
|
|
2685146409U, // SADDLv2i32_v2i64
|
|
3222541609U, // SADDLv4i16_v4i32
|
|
1074532524U, // SADDLv4i32_v2i64
|
|
1611927724U, // SADDLv8i16_v4i32
|
|
3759674665U, // SADDLv8i8_v8i16
|
|
1612190133U, // SADDWv16i8_v8i16
|
|
537663936U, // SADDWv2i32_v2i64
|
|
1075059136U, // SADDWv4i16_v4i32
|
|
537661877U, // SADDWv4i32_v2i64
|
|
1075057077U, // SADDWv8i16_v4i32
|
|
1612192192U, // SADDWv8i8_v8i16
|
|
17049656U, // SBCSWr
|
|
17049656U, // SBCSXr
|
|
17048293U, // SBCWr
|
|
17048293U, // SBCXr
|
|
17049061U, // SBFMWri
|
|
17049061U, // SBFMXri
|
|
17048517U, // SCVTFSWDri
|
|
17048517U, // SCVTFSWSri
|
|
17048517U, // SCVTFSXDri
|
|
17048517U, // SCVTFSXSri
|
|
553919429U, // SCVTFUWDri
|
|
553919429U, // SCVTFUWSri
|
|
553919429U, // SCVTFUXDri
|
|
553919429U, // SCVTFUXSri
|
|
17048517U, // SCVTFd
|
|
17048517U, // SCVTFs
|
|
553919429U, // SCVTFv1i32
|
|
553919429U, // SCVTFv1i64
|
|
1074271173U, // SCVTFv2f32
|
|
1611404229U, // SCVTFv2f64
|
|
2684883909U, // SCVTFv2i32_shift
|
|
537662405U, // SCVTFv2i64_shift
|
|
2685670341U, // SCVTFv4f32
|
|
1075057605U, // SCVTFv4i32_shift
|
|
17049904U, // SDIVWr
|
|
17049904U, // SDIVXr
|
|
17049904U, // SDIV_IntWr
|
|
17049904U, // SDIV_IntXr
|
|
67404510U, // SHA1Crrr
|
|
553919463U, // SHA1Hrr
|
|
67405278U, // SHA1Mrrr
|
|
67405488U, // SHA1Prrr
|
|
1108619265U, // SHA1SU0rrr
|
|
2719232056U, // SHA1SU1rr
|
|
67403864U, // SHA256H2rrr
|
|
67404790U, // SHA256Hrrr
|
|
2719232010U, // SHA256SU0rr
|
|
1108619329U, // SHA256SU1rrr
|
|
2147488572U, // SHADDv16i8
|
|
2684883772U, // SHADDv2i32
|
|
3222278972U, // SHADDv4i16
|
|
1075057468U, // SHADDv4i32
|
|
1612190524U, // SHADDv8i16
|
|
3759936316U, // SHADDv8i8
|
|
2149060797U, // SHLLv16i8
|
|
2685146487U, // SHLLv2i32
|
|
3222541687U, // SHLLv4i16
|
|
3758887101U, // SHLLv4i32
|
|
1315005U, // SHLLv8i16
|
|
538449271U, // SHLLv8i8
|
|
17048896U, // SHLd
|
|
2147489088U, // SHLv16i8_shift
|
|
2684884288U, // SHLv2i32_shift
|
|
537662784U, // SHLv2i64_shift
|
|
3222279488U, // SHLv4i16_shift
|
|
1075057984U, // SHLv4i32_shift
|
|
1612191040U, // SHLv8i16_shift
|
|
3759936832U, // SHLv8i8_shift
|
|
1644179748U, // SHRNv16i8_shift
|
|
537400901U, // SHRNv2i32_shift
|
|
1074796101U, // SHRNv4i16_shift
|
|
571748644U, // SHRNv4i32_shift
|
|
1108881700U, // SHRNv8i16_shift
|
|
1612453445U, // SHRNv8i8_shift
|
|
2147488435U, // SHSUBv16i8
|
|
2684883635U, // SHSUBv2i32
|
|
3222278835U, // SHSUBv4i16
|
|
1075057331U, // SHSUBv4i32
|
|
1612190387U, // SHSUBv8i16
|
|
3759936179U, // SHSUBv8i8
|
|
67404954U, // SLId
|
|
2181051546U, // SLIv16i8_shift
|
|
2718446746U, // SLIv2i32_shift
|
|
571225242U, // SLIv2i64_shift
|
|
3255841946U, // SLIv4i16_shift
|
|
1108620442U, // SLIv4i32_shift
|
|
1645753498U, // SLIv8i16_shift
|
|
3793499290U, // SLIv8i8_shift
|
|
17048857U, // SMADDLrrr
|
|
2147489609U, // SMAXPv16i8
|
|
2684884809U, // SMAXPv2i32
|
|
3222280009U, // SMAXPv4i16
|
|
1075058505U, // SMAXPv4i32
|
|
1612191561U, // SMAXPv8i16
|
|
3759937353U, // SMAXPv8i8
|
|
272787U, // SMAXVv16i8v
|
|
2147756435U, // SMAXVv4i16v
|
|
2684627347U, // SMAXVv4i32v
|
|
3221498259U, // SMAXVv8i16v
|
|
3758369171U, // SMAXVv8i8v
|
|
2147490298U, // SMAXv16i8
|
|
2684885498U, // SMAXv2i32
|
|
3222280698U, // SMAXv4i16
|
|
1075059194U, // SMAXv4i32
|
|
1612192250U, // SMAXv8i16
|
|
3759938042U, // SMAXv8i8
|
|
21246U, // SMC
|
|
2147489551U, // SMINPv16i8
|
|
2684884751U, // SMINPv2i32
|
|
3222279951U, // SMINPv4i16
|
|
1075058447U, // SMINPv4i32
|
|
1612191503U, // SMINPv8i16
|
|
3759937295U, // SMINPv8i8
|
|
272741U, // SMINVv16i8v
|
|
2147756389U, // SMINVv4i16v
|
|
2684627301U, // SMINVv4i32v
|
|
3221498213U, // SMINVv8i16v
|
|
3758369125U, // SMINVv8i8v
|
|
2147489324U, // SMINv16i8
|
|
2684884524U, // SMINv2i32
|
|
3222279724U, // SMINv4i16
|
|
1075058220U, // SMINv4i32
|
|
1612191276U, // SMINv8i16
|
|
3759937068U, // SMINv8i8
|
|
2182623356U, // SMLALv16i8_v8i16
|
|
2718708954U, // SMLALv2i32_indexed
|
|
2718708954U, // SMLALv2i32_v2i64
|
|
3256104154U, // SMLALv4i16_indexed
|
|
3256104154U, // SMLALv4i16_v4i32
|
|
1108095100U, // SMLALv4i32_indexed
|
|
1108095100U, // SMLALv4i32_v2i64
|
|
1645490300U, // SMLALv8i16_indexed
|
|
1645490300U, // SMLALv8i16_v4i32
|
|
3793237210U, // SMLALv8i8_v8i16
|
|
2182623480U, // SMLSLv16i8_v8i16
|
|
2718709168U, // SMLSLv2i32_indexed
|
|
2718709168U, // SMLSLv2i32_v2i64
|
|
3256104368U, // SMLSLv4i16_indexed
|
|
3256104368U, // SMLSLv4i16_v4i32
|
|
1108095224U, // SMLSLv4i32_indexed
|
|
1108095224U, // SMLSLv4i32_v2i64
|
|
1645490424U, // SMLSLv8i16_indexed
|
|
1645490424U, // SMLSLv8i16_v4i32
|
|
3793237424U, // SMLSLv8i8_v8i16
|
|
272768U, // SMOVvi16to32
|
|
272768U, // SMOVvi16to64
|
|
537143680U, // SMOVvi32to64
|
|
1610885504U, // SMOVvi8to32
|
|
1610885504U, // SMOVvi8to64
|
|
17048813U, // SMSUBLrrr
|
|
17048603U, // SMULHrr
|
|
2149060830U, // SMULLv16i8_v8i16
|
|
2685146516U, // SMULLv2i32_indexed
|
|
2685146516U, // SMULLv2i32_v2i64
|
|
3222541716U, // SMULLv4i16_indexed
|
|
3222541716U, // SMULLv4i16_v4i32
|
|
1074532574U, // SMULLv4i32_indexed
|
|
1074532574U, // SMULLv4i32_v2i64
|
|
1611927774U, // SMULLv8i16_indexed
|
|
1611927774U, // SMULLv8i16_v4i32
|
|
3759674772U, // SMULLv8i8_v8i16
|
|
6187U, // SQABSv16i8
|
|
553920555U, // SQABSv1i16
|
|
553920555U, // SQABSv1i32
|
|
553920555U, // SQABSv1i64
|
|
553920555U, // SQABSv1i8
|
|
1074272299U, // SQABSv2i32
|
|
1611405355U, // SQABSv2i64
|
|
2148538411U, // SQABSv4i16
|
|
2685671467U, // SQABSv4i32
|
|
3222804523U, // SQABSv8i16
|
|
3759937579U, // SQABSv8i8
|
|
2147488602U, // SQADDv16i8
|
|
17048410U, // SQADDv1i16
|
|
17048410U, // SQADDv1i32
|
|
17048410U, // SQADDv1i64
|
|
17048410U, // SQADDv1i8
|
|
2684883802U, // SQADDv2i32
|
|
537662298U, // SQADDv2i64
|
|
3222279002U, // SQADDv4i16
|
|
1075057498U, // SQADDv4i32
|
|
1612190554U, // SQADDv8i16
|
|
3759936346U, // SQADDv8i8
|
|
67405009U, // SQDMLALi16
|
|
67405009U, // SQDMLALi32
|
|
67405009U, // SQDMLALv1i32_indexed
|
|
67405009U, // SQDMLALv1i64_indexed
|
|
2718708945U, // SQDMLALv2i32_indexed
|
|
2718708945U, // SQDMLALv2i32_v2i64
|
|
3256104145U, // SQDMLALv4i16_indexed
|
|
3256104145U, // SQDMLALv4i16_v4i32
|
|
1108095090U, // SQDMLALv4i32_indexed
|
|
1108095090U, // SQDMLALv4i32_v2i64
|
|
1645490290U, // SQDMLALv8i16_indexed
|
|
1645490290U, // SQDMLALv8i16_v4i32
|
|
67405223U, // SQDMLSLi16
|
|
67405223U, // SQDMLSLi32
|
|
67405223U, // SQDMLSLv1i32_indexed
|
|
67405223U, // SQDMLSLv1i64_indexed
|
|
2718709159U, // SQDMLSLv2i32_indexed
|
|
2718709159U, // SQDMLSLv2i32_v2i64
|
|
3256104359U, // SQDMLSLv4i16_indexed
|
|
3256104359U, // SQDMLSLv4i16_v4i32
|
|
1108095214U, // SQDMLSLv4i32_indexed
|
|
1108095214U, // SQDMLSLv4i32_v2i64
|
|
1645490414U, // SQDMLSLv8i16_indexed
|
|
1645490414U, // SQDMLSLv8i16_v4i32
|
|
17048584U, // SQDMULHv1i16
|
|
17048584U, // SQDMULHv1i16_indexed
|
|
17048584U, // SQDMULHv1i32
|
|
17048584U, // SQDMULHv1i32_indexed
|
|
2684883976U, // SQDMULHv2i32
|
|
2684883976U, // SQDMULHv2i32_indexed
|
|
3222279176U, // SQDMULHv4i16
|
|
3222279176U, // SQDMULHv4i16_indexed
|
|
1075057672U, // SQDMULHv4i32
|
|
1075057672U, // SQDMULHv4i32_indexed
|
|
1612190728U, // SQDMULHv8i16
|
|
1612190728U, // SQDMULHv8i16_indexed
|
|
17048964U, // SQDMULLi16
|
|
17048964U, // SQDMULLi32
|
|
17048964U, // SQDMULLv1i32_indexed
|
|
17048964U, // SQDMULLv1i64_indexed
|
|
2685146500U, // SQDMULLv2i32_indexed
|
|
2685146500U, // SQDMULLv2i32_v2i64
|
|
3222541700U, // SQDMULLv4i16_indexed
|
|
3222541700U, // SQDMULLv4i16_v4i32
|
|
1074532556U, // SQDMULLv4i32_indexed
|
|
1074532556U, // SQDMULLv4i32_v2i64
|
|
1611927756U, // SQDMULLv8i16_indexed
|
|
1611927756U, // SQDMULLv8i16_v4i32
|
|
5081U, // SQNEGv16i8
|
|
553919449U, // SQNEGv1i16
|
|
553919449U, // SQNEGv1i32
|
|
553919449U, // SQNEGv1i64
|
|
553919449U, // SQNEGv1i8
|
|
1074271193U, // SQNEGv2i32
|
|
1611404249U, // SQNEGv2i64
|
|
2148537305U, // SQNEGv4i16
|
|
2685670361U, // SQNEGv4i32
|
|
3222803417U, // SQNEGv8i16
|
|
3759936473U, // SQNEGv8i8
|
|
17048593U, // SQRDMULHv1i16
|
|
17048593U, // SQRDMULHv1i16_indexed
|
|
17048593U, // SQRDMULHv1i32
|
|
17048593U, // SQRDMULHv1i32_indexed
|
|
2684883985U, // SQRDMULHv2i32
|
|
2684883985U, // SQRDMULHv2i32_indexed
|
|
3222279185U, // SQRDMULHv4i16
|
|
3222279185U, // SQRDMULHv4i16_indexed
|
|
1075057681U, // SQRDMULHv4i32
|
|
1075057681U, // SQRDMULHv4i32_indexed
|
|
1612190737U, // SQRDMULHv8i16
|
|
1612190737U, // SQRDMULHv8i16_indexed
|
|
2147489100U, // SQRSHLv16i8
|
|
17048908U, // SQRSHLv1i16
|
|
17048908U, // SQRSHLv1i32
|
|
17048908U, // SQRSHLv1i64
|
|
17048908U, // SQRSHLv1i8
|
|
2684884300U, // SQRSHLv2i32
|
|
537662796U, // SQRSHLv2i64
|
|
3222279500U, // SQRSHLv4i16
|
|
1075057996U, // SQRSHLv4i32
|
|
1612191052U, // SQRSHLv8i16
|
|
3759936844U, // SQRSHLv8i8
|
|
17049171U, // SQRSHRNb
|
|
17049171U, // SQRSHRNh
|
|
17049171U, // SQRSHRNs
|
|
1644179764U, // SQRSHRNv16i8_shift
|
|
537400915U, // SQRSHRNv2i32_shift
|
|
1074796115U, // SQRSHRNv4i16_shift
|
|
571748660U, // SQRSHRNv4i32_shift
|
|
1108881716U, // SQRSHRNv8i16_shift
|
|
1612453459U, // SQRSHRNv8i8_shift
|
|
17049232U, // SQRSHRUNb
|
|
17049232U, // SQRSHRUNh
|
|
17049232U, // SQRSHRUNs
|
|
1644179824U, // SQRSHRUNv16i8_shift
|
|
537400976U, // SQRSHRUNv2i32_shift
|
|
1074796176U, // SQRSHRUNv4i16_shift
|
|
571748720U, // SQRSHRUNv4i32_shift
|
|
1108881776U, // SQRSHRUNv8i16_shift
|
|
1612453520U, // SQRSHRUNv8i8_shift
|
|
17049847U, // SQSHLUb
|
|
17049847U, // SQSHLUd
|
|
17049847U, // SQSHLUh
|
|
17049847U, // SQSHLUs
|
|
2147490039U, // SQSHLUv16i8_shift
|
|
2684885239U, // SQSHLUv2i32_shift
|
|
537663735U, // SQSHLUv2i64_shift
|
|
3222280439U, // SQSHLUv4i16_shift
|
|
1075058935U, // SQSHLUv4i32_shift
|
|
1612191991U, // SQSHLUv8i16_shift
|
|
3759937783U, // SQSHLUv8i8_shift
|
|
17048894U, // SQSHLb
|
|
17048894U, // SQSHLd
|
|
17048894U, // SQSHLh
|
|
17048894U, // SQSHLs
|
|
2147489086U, // SQSHLv16i8
|
|
2147489086U, // SQSHLv16i8_shift
|
|
17048894U, // SQSHLv1i16
|
|
17048894U, // SQSHLv1i32
|
|
17048894U, // SQSHLv1i64
|
|
17048894U, // SQSHLv1i8
|
|
2684884286U, // SQSHLv2i32
|
|
2684884286U, // SQSHLv2i32_shift
|
|
537662782U, // SQSHLv2i64
|
|
537662782U, // SQSHLv2i64_shift
|
|
3222279486U, // SQSHLv4i16
|
|
3222279486U, // SQSHLv4i16_shift
|
|
1075057982U, // SQSHLv4i32
|
|
1075057982U, // SQSHLv4i32_shift
|
|
1612191038U, // SQSHLv8i16
|
|
1612191038U, // SQSHLv8i16_shift
|
|
3759936830U, // SQSHLv8i8
|
|
3759936830U, // SQSHLv8i8_shift
|
|
17049155U, // SQSHRNb
|
|
17049155U, // SQSHRNh
|
|
17049155U, // SQSHRNs
|
|
1644179746U, // SQSHRNv16i8_shift
|
|
537400899U, // SQSHRNv2i32_shift
|
|
1074796099U, // SQSHRNv4i16_shift
|
|
571748642U, // SQSHRNv4i32_shift
|
|
1108881698U, // SQSHRNv8i16_shift
|
|
1612453443U, // SQSHRNv8i8_shift
|
|
17049223U, // SQSHRUNb
|
|
17049223U, // SQSHRUNh
|
|
17049223U, // SQSHRUNs
|
|
1644179814U, // SQSHRUNv16i8_shift
|
|
537400967U, // SQSHRUNv2i32_shift
|
|
1074796167U, // SQSHRUNv4i16_shift
|
|
571748710U, // SQSHRUNv4i32_shift
|
|
1108881766U, // SQSHRUNv8i16_shift
|
|
1612453511U, // SQSHRUNv8i8_shift
|
|
2147488464U, // SQSUBv16i8
|
|
17048272U, // SQSUBv1i16
|
|
17048272U, // SQSUBv1i32
|
|
17048272U, // SQSUBv1i64
|
|
17048272U, // SQSUBv1i8
|
|
2684883664U, // SQSUBv2i32
|
|
537662160U, // SQSUBv2i64
|
|
3222278864U, // SQSUBv4i16
|
|
1075057360U, // SQSUBv4i32
|
|
1612190416U, // SQSUBv8i16
|
|
3759936208U, // SQSUBv8i8
|
|
3254792534U, // SQXTNv16i8
|
|
553920121U, // SQXTNv1i16
|
|
553920121U, // SQXTNv1i32
|
|
553920121U, // SQXTNv1i8
|
|
1611142777U, // SQXTNv2i32
|
|
2685408889U, // SQXTNv4i16
|
|
1645490518U, // SQXTNv4i32
|
|
2719494486U, // SQXTNv8i16
|
|
3223066233U, // SQXTNv8i8
|
|
3254792571U, // SQXTUNv16i8
|
|
553920154U, // SQXTUNv1i16
|
|
553920154U, // SQXTUNv1i32
|
|
553920154U, // SQXTUNv1i8
|
|
1611142810U, // SQXTUNv2i32
|
|
2685408922U, // SQXTUNv4i16
|
|
1645490555U, // SQXTUNv4i32
|
|
2719494523U, // SQXTUNv8i16
|
|
3223066266U, // SQXTUNv8i8
|
|
2147488556U, // SRHADDv16i8
|
|
2684883756U, // SRHADDv2i32
|
|
3222278956U, // SRHADDv4i16
|
|
1075057452U, // SRHADDv4i32
|
|
1612190508U, // SRHADDv8i16
|
|
3759936300U, // SRHADDv8i8
|
|
67404965U, // SRId
|
|
2181051557U, // SRIv16i8_shift
|
|
2718446757U, // SRIv2i32_shift
|
|
571225253U, // SRIv2i64_shift
|
|
3255841957U, // SRIv4i16_shift
|
|
1108620453U, // SRIv4i32_shift
|
|
1645753509U, // SRIv8i16_shift
|
|
3793499301U, // SRIv8i8_shift
|
|
2147489116U, // SRSHLv16i8
|
|
17048924U, // SRSHLv1i64
|
|
2684884316U, // SRSHLv2i32
|
|
537662812U, // SRSHLv2i64
|
|
3222279516U, // SRSHLv4i16
|
|
1075058012U, // SRSHLv4i32
|
|
1612191068U, // SRSHLv8i16
|
|
3759936860U, // SRSHLv8i8
|
|
17049501U, // SRSHRd
|
|
2147489693U, // SRSHRv16i8_shift
|
|
2684884893U, // SRSHRv2i32_shift
|
|
537663389U, // SRSHRv2i64_shift
|
|
3222280093U, // SRSHRv4i16_shift
|
|
1075058589U, // SRSHRv4i32_shift
|
|
1612191645U, // SRSHRv8i16_shift
|
|
3759937437U, // SRSHRv8i8_shift
|
|
67404288U, // SRSRAd
|
|
2181050880U, // SRSRAv16i8_shift
|
|
2718446080U, // SRSRAv2i32_shift
|
|
571224576U, // SRSRAv2i64_shift
|
|
3255841280U, // SRSRAv4i16_shift
|
|
1108619776U, // SRSRAv4i32_shift
|
|
1645752832U, // SRSRAv8i16_shift
|
|
3793498624U, // SRSRAv8i8_shift
|
|
2149060796U, // SSHLLv16i8_shift
|
|
2685146486U, // SSHLLv2i32_shift
|
|
3222541686U, // SSHLLv4i16_shift
|
|
1074532540U, // SSHLLv4i32_shift
|
|
1611927740U, // SSHLLv8i16_shift
|
|
3759674742U, // SSHLLv8i8_shift
|
|
2147489130U, // SSHLv16i8
|
|
17048938U, // SSHLv1i64
|
|
2684884330U, // SSHLv2i32
|
|
537662826U, // SSHLv2i64
|
|
3222279530U, // SSHLv4i16
|
|
1075058026U, // SSHLv4i32
|
|
1612191082U, // SSHLv8i16
|
|
3759936874U, // SSHLv8i8
|
|
17049515U, // SSHRd
|
|
2147489707U, // SSHRv16i8_shift
|
|
2684884907U, // SSHRv2i32_shift
|
|
537663403U, // SSHRv2i64_shift
|
|
3222280107U, // SSHRv4i16_shift
|
|
1075058603U, // SSHRv4i32_shift
|
|
1612191659U, // SSHRv8i16_shift
|
|
3759937451U, // SSHRv8i8_shift
|
|
67404302U, // SSRAd
|
|
2181050894U, // SSRAv16i8_shift
|
|
2718446094U, // SSRAv2i32_shift
|
|
571224590U, // SSRAv2i64_shift
|
|
3255841294U, // SSRAv4i16_shift
|
|
1108619790U, // SSRAv4i32_shift
|
|
1645752846U, // SSRAv8i16_shift
|
|
3793498638U, // SSRAv8i8_shift
|
|
2149060748U, // SSUBLv16i8_v8i16
|
|
2685146365U, // SSUBLv2i32_v2i64
|
|
3222541565U, // SSUBLv4i16_v4i32
|
|
1074532492U, // SSUBLv4i32_v2i64
|
|
1611927692U, // SSUBLv8i16_v4i32
|
|
3759674621U, // SSUBLv8i8_v8i16
|
|
1612190117U, // SSUBWv16i8_v8i16
|
|
537663913U, // SSUBWv2i32_v2i64
|
|
1075059113U, // SSUBWv4i16_v4i32
|
|
537661861U, // SSUBWv4i32_v2i64
|
|
1075057061U, // SSUBWv8i16_v4i32
|
|
1612192169U, // SSUBWv8i8_v8i16
|
|
36915U, // ST1Fourv16b
|
|
3711027U, // ST1Fourv16b_POST
|
|
45107U, // ST1Fourv1d
|
|
3981363U, // ST1Fourv1d_POST
|
|
53299U, // ST1Fourv2d
|
|
3727411U, // ST1Fourv2d_POST
|
|
61491U, // ST1Fourv2s
|
|
3997747U, // ST1Fourv2s_POST
|
|
69683U, // ST1Fourv4h
|
|
4005939U, // ST1Fourv4h_POST
|
|
77875U, // ST1Fourv4s
|
|
3751987U, // ST1Fourv4s_POST
|
|
86067U, // ST1Fourv8b
|
|
4022323U, // ST1Fourv8b_POST
|
|
94259U, // ST1Fourv8h
|
|
3768371U, // ST1Fourv8h_POST
|
|
36915U, // ST1Onev16b
|
|
4235315U, // ST1Onev16b_POST
|
|
45107U, // ST1Onev1d
|
|
4505651U, // ST1Onev1d_POST
|
|
53299U, // ST1Onev2d
|
|
4251699U, // ST1Onev2d_POST
|
|
61491U, // ST1Onev2s
|
|
4522035U, // ST1Onev2s_POST
|
|
69683U, // ST1Onev4h
|
|
4530227U, // ST1Onev4h_POST
|
|
77875U, // ST1Onev4s
|
|
4276275U, // ST1Onev4s_POST
|
|
86067U, // ST1Onev8b
|
|
4546611U, // ST1Onev8b_POST
|
|
94259U, // ST1Onev8h
|
|
4292659U, // ST1Onev8h_POST
|
|
36915U, // ST1Threev16b
|
|
5546035U, // ST1Threev16b_POST
|
|
45107U, // ST1Threev1d
|
|
5816371U, // ST1Threev1d_POST
|
|
53299U, // ST1Threev2d
|
|
5562419U, // ST1Threev2d_POST
|
|
61491U, // ST1Threev2s
|
|
5832755U, // ST1Threev2s_POST
|
|
69683U, // ST1Threev4h
|
|
5840947U, // ST1Threev4h_POST
|
|
77875U, // ST1Threev4s
|
|
5586995U, // ST1Threev4s_POST
|
|
86067U, // ST1Threev8b
|
|
5857331U, // ST1Threev8b_POST
|
|
94259U, // ST1Threev8h
|
|
5603379U, // ST1Threev8h_POST
|
|
36915U, // ST1Twov16b
|
|
3973171U, // ST1Twov16b_POST
|
|
45107U, // ST1Twov1d
|
|
4243507U, // ST1Twov1d_POST
|
|
53299U, // ST1Twov2d
|
|
3989555U, // ST1Twov2d_POST
|
|
61491U, // ST1Twov2s
|
|
4259891U, // ST1Twov2s_POST
|
|
69683U, // ST1Twov4h
|
|
4268083U, // ST1Twov4h_POST
|
|
77875U, // ST1Twov4s
|
|
4014131U, // ST1Twov4s_POST
|
|
86067U, // ST1Twov8b
|
|
4284467U, // ST1Twov8b_POST
|
|
94259U, // ST1Twov8h
|
|
4030515U, // ST1Twov8h_POST
|
|
147507U, // ST1i16
|
|
262246451U, // ST1i16_POST
|
|
151603U, // ST1i32
|
|
279031859U, // ST1i32_POST
|
|
155699U, // ST1i64
|
|
295817267U, // ST1i64_POST
|
|
159795U, // ST1i8
|
|
312602675U, // ST1i8_POST
|
|
37280U, // ST2Twov16b
|
|
3973536U, // ST2Twov16b_POST
|
|
53664U, // ST2Twov2d
|
|
3989920U, // ST2Twov2d_POST
|
|
61856U, // ST2Twov2s
|
|
4260256U, // ST2Twov2s_POST
|
|
70048U, // ST2Twov4h
|
|
4268448U, // ST2Twov4h_POST
|
|
78240U, // ST2Twov4s
|
|
4014496U, // ST2Twov4s_POST
|
|
86432U, // ST2Twov8b
|
|
4284832U, // ST2Twov8b_POST
|
|
94624U, // ST2Twov8h
|
|
4030880U, // ST2Twov8h_POST
|
|
147872U, // ST2i16
|
|
279024032U, // ST2i16_POST
|
|
151968U, // ST2i32
|
|
295809440U, // ST2i32_POST
|
|
156064U, // ST2i64
|
|
329372064U, // ST2i64_POST
|
|
160160U, // ST2i8
|
|
262271392U, // ST2i8_POST
|
|
37329U, // ST3Threev16b
|
|
5546449U, // ST3Threev16b_POST
|
|
53713U, // ST3Threev2d
|
|
5562833U, // ST3Threev2d_POST
|
|
61905U, // ST3Threev2s
|
|
5833169U, // ST3Threev2s_POST
|
|
70097U, // ST3Threev4h
|
|
5841361U, // ST3Threev4h_POST
|
|
78289U, // ST3Threev4s
|
|
5587409U, // ST3Threev4s_POST
|
|
86481U, // ST3Threev8b
|
|
5857745U, // ST3Threev8b_POST
|
|
94673U, // ST3Threev8h
|
|
5603793U, // ST3Threev8h_POST
|
|
147921U, // ST3i16
|
|
346132945U, // ST3i16_POST
|
|
152017U, // ST3i32
|
|
362918353U, // ST3i32_POST
|
|
156113U, // ST3i64
|
|
379703761U, // ST3i64_POST
|
|
160209U, // ST3i8
|
|
396489169U, // ST3i8_POST
|
|
37346U, // ST4Fourv16b
|
|
3711458U, // ST4Fourv16b_POST
|
|
53730U, // ST4Fourv2d
|
|
3727842U, // ST4Fourv2d_POST
|
|
61922U, // ST4Fourv2s
|
|
3998178U, // ST4Fourv2s_POST
|
|
70114U, // ST4Fourv4h
|
|
4006370U, // ST4Fourv4h_POST
|
|
78306U, // ST4Fourv4s
|
|
3752418U, // ST4Fourv4s_POST
|
|
86498U, // ST4Fourv8b
|
|
4022754U, // ST4Fourv8b_POST
|
|
94690U, // ST4Fourv8h
|
|
3768802U, // ST4Fourv8h_POST
|
|
147938U, // ST4i16
|
|
295801314U, // ST4i16_POST
|
|
152034U, // ST4i32
|
|
329363938U, // ST4i32_POST
|
|
156130U, // ST4i64
|
|
413258210U, // ST4i64_POST
|
|
160226U, // ST4i8
|
|
279048674U, // ST4i8_POST
|
|
26485317U, // STLRB
|
|
26485814U, // STLRH
|
|
26486716U, // STLRW
|
|
26486716U, // STLRX
|
|
17049437U, // STLXPW
|
|
17049437U, // STLXPX
|
|
553919101U, // STLXRB
|
|
553919598U, // STLXRH
|
|
553920528U, // STLXRW
|
|
553920528U, // STLXRX
|
|
553920285U, // STNPDi
|
|
553920285U, // STNPQi
|
|
553920285U, // STNPSi
|
|
553920285U, // STNPWi
|
|
553920285U, // STNPXi
|
|
553920305U, // STPDi
|
|
604276529U, // STPDpost
|
|
604276529U, // STPDpre
|
|
553920305U, // STPQi
|
|
604276529U, // STPQpost
|
|
604276529U, // STPQpre
|
|
553920305U, // STPSi
|
|
604276529U, // STPSpost
|
|
604276529U, // STPSpre
|
|
553920305U, // STPWi
|
|
604276529U, // STPWpost
|
|
604276529U, // STPWpre
|
|
553920305U, // STPXi
|
|
604276529U, // STPXpost
|
|
604276529U, // STPXpre
|
|
1150583379U, // STRBBpost
|
|
76841555U, // STRBBpre
|
|
26485331U, // STRBBroW
|
|
26485331U, // STRBBroX
|
|
26485331U, // STRBBui
|
|
1150584806U, // STRBpost
|
|
76842982U, // STRBpre
|
|
26486758U, // STRBroW
|
|
26486758U, // STRBroX
|
|
26486758U, // STRBui
|
|
1150584806U, // STRDpost
|
|
76842982U, // STRDpre
|
|
26486758U, // STRDroW
|
|
26486758U, // STRDroX
|
|
26486758U, // STRDui
|
|
1150583876U, // STRHHpost
|
|
76842052U, // STRHHpre
|
|
26485828U, // STRHHroW
|
|
26485828U, // STRHHroX
|
|
26485828U, // STRHHui
|
|
1150584806U, // STRHpost
|
|
76842982U, // STRHpre
|
|
26486758U, // STRHroW
|
|
26486758U, // STRHroX
|
|
26486758U, // STRHui
|
|
1150584806U, // STRQpost
|
|
76842982U, // STRQpre
|
|
26486758U, // STRQroW
|
|
26486758U, // STRQroX
|
|
26486758U, // STRQui
|
|
1150584806U, // STRSpost
|
|
76842982U, // STRSpre
|
|
26486758U, // STRSroW
|
|
26486758U, // STRSroX
|
|
26486758U, // STRSui
|
|
1150584806U, // STRWpost
|
|
76842982U, // STRWpre
|
|
26486758U, // STRWroW
|
|
26486758U, // STRWroX
|
|
26486758U, // STRWui
|
|
1150584806U, // STRXpost
|
|
76842982U, // STRXpre
|
|
26486758U, // STRXroW
|
|
26486758U, // STRXroX
|
|
26486758U, // STRXui
|
|
26485337U, // STTRBi
|
|
26485834U, // STTRHi
|
|
26486763U, // STTRWi
|
|
26486763U, // STTRXi
|
|
26485351U, // STURBBi
|
|
26486781U, // STURBi
|
|
26486781U, // STURDi
|
|
26485848U, // STURHHi
|
|
26486781U, // STURHi
|
|
26486781U, // STURQi
|
|
26486781U, // STURSi
|
|
26486781U, // STURWi
|
|
26486781U, // STURXi
|
|
17049444U, // STXPW
|
|
17049444U, // STXPX
|
|
553919109U, // STXRB
|
|
553919606U, // STXRH
|
|
553920535U, // STXRW
|
|
553920535U, // STXRX
|
|
537400855U, // SUBHNv2i64_v2i32
|
|
571748625U, // SUBHNv2i64_v4i32
|
|
1074796055U, // SUBHNv4i32_v4i16
|
|
1108881681U, // SUBHNv4i32_v8i16
|
|
1644179729U, // SUBHNv8i16_v16i8
|
|
1612453399U, // SUBHNv8i16_v8i8
|
|
17049650U, // SUBSWri
|
|
0U, // SUBSWrr
|
|
17049650U, // SUBSWrs
|
|
17049650U, // SUBSWrx
|
|
17049650U, // SUBSXri
|
|
0U, // SUBSXrr
|
|
17049650U, // SUBSXrs
|
|
17049650U, // SUBSXrx
|
|
17049650U, // SUBSXrx64
|
|
17048238U, // SUBWri
|
|
0U, // SUBWrr
|
|
17048238U, // SUBWrs
|
|
17048238U, // SUBWrx
|
|
17048238U, // SUBXri
|
|
0U, // SUBXrr
|
|
17048238U, // SUBXrs
|
|
17048238U, // SUBXrx
|
|
17048238U, // SUBXrx64
|
|
2147488430U, // SUBv16i8
|
|
17048238U, // SUBv1i64
|
|
2684883630U, // SUBv2i32
|
|
537662126U, // SUBv2i64
|
|
3222278830U, // SUBv4i16
|
|
1075057326U, // SUBv4i32
|
|
1612190382U, // SUBv8i16
|
|
3759936174U, // SUBv8i8
|
|
33567585U, // SUQADDv16i8
|
|
604275553U, // SUQADDv1i16
|
|
604275553U, // SUQADDv1i32
|
|
604275553U, // SUQADDv1i64
|
|
604275553U, // SUQADDv1i8
|
|
1107833697U, // SUQADDv2i32
|
|
1644966753U, // SUQADDv2i64
|
|
2182099809U, // SUQADDv4i16
|
|
2719232865U, // SUQADDv4i32
|
|
3256365921U, // SUQADDv8i16
|
|
3793498977U, // SUQADDv8i8
|
|
21263U, // SVC
|
|
17049022U, // SYSLxt
|
|
419702938U, // SYSxt
|
|
436212968U, // TBLv16i8Four
|
|
436212968U, // TBLv16i8One
|
|
436212968U, // TBLv16i8Three
|
|
436212968U, // TBLv16i8Two
|
|
4196144360U, // TBLv8i8Four
|
|
4196144360U, // TBLv8i8One
|
|
4196144360U, // TBLv8i8Three
|
|
4196144360U, // TBLv8i8Two
|
|
17050183U, // TBNZW
|
|
17050183U, // TBNZX
|
|
452999686U, // TBXv16i8Four
|
|
452999686U, // TBXv16i8One
|
|
452999686U, // TBXv16i8Three
|
|
452999686U, // TBXv16i8Two
|
|
4212931078U, // TBXv8i8Four
|
|
4212931078U, // TBXv8i8One
|
|
4212931078U, // TBXv8i8Three
|
|
4212931078U, // TBXv8i8Two
|
|
17050167U, // TBZW
|
|
17050167U, // TBZX
|
|
0U, // TCRETURNdi
|
|
0U, // TCRETURNri
|
|
2107995U, // TLSDESCCALL
|
|
0U, // TLSDESC_BLR
|
|
2147487770U, // TRN1v16i8
|
|
2684882970U, // TRN1v2i32
|
|
537661466U, // TRN1v2i64
|
|
3222278170U, // TRN1v4i16
|
|
1075056666U, // TRN1v4i32
|
|
1612189722U, // TRN1v8i16
|
|
3759935514U, // TRN1v8i8
|
|
2147488072U, // TRN2v16i8
|
|
2684883272U, // TRN2v2i32
|
|
537661768U, // TRN2v2i64
|
|
3222278472U, // TRN2v4i16
|
|
1075056968U, // TRN2v4i32
|
|
1612190024U, // TRN2v8i16
|
|
3759935816U, // TRN2v8i8
|
|
2182623338U, // UABALv16i8_v8i16
|
|
2718708938U, // UABALv2i32_v2i64
|
|
3256104138U, // UABALv4i16_v4i32
|
|
1108095082U, // UABALv4i32_v2i64
|
|
1645490282U, // UABALv8i16_v4i32
|
|
3793237194U, // UABALv8i8_v8i16
|
|
2181050868U, // UABAv16i8
|
|
2718446068U, // UABAv2i32
|
|
3255841268U, // UABAv4i16
|
|
1108619764U, // UABAv4i32
|
|
1645752820U, // UABAv8i16
|
|
3793498612U, // UABAv8i8
|
|
2149060772U, // UABDLv16i8_v8i16
|
|
2685146386U, // UABDLv2i32_v2i64
|
|
3222541586U, // UABDLv4i16_v4i32
|
|
1074532516U, // UABDLv4i32_v2i64
|
|
1611927716U, // UABDLv8i16_v4i32
|
|
3759674642U, // UABDLv8i8_v8i16
|
|
2147488544U, // UABDv16i8
|
|
2684883744U, // UABDv2i32
|
|
3222278944U, // UABDv4i16
|
|
1075057440U, // UABDv4i32
|
|
1612190496U, // UABDv8i16
|
|
3759936288U, // UABDv8i8
|
|
35141323U, // UADALPv16i8_v8i16
|
|
1117533899U, // UADALPv2i32_v1i64
|
|
2181576395U, // UADALPv4i16_v2i32
|
|
2718709451U, // UADALPv4i32_v2i64
|
|
3256104651U, // UADALPv8i16_v4i32
|
|
3792713419U, // UADALPv8i8_v4i16
|
|
1578715U, // UADDLPv16i8_v8i16
|
|
1083971291U, // UADDLPv2i32_v1i64
|
|
2148013787U, // UADDLPv4i16_v2i32
|
|
2685146843U, // UADDLPv4i32_v2i64
|
|
3222542043U, // UADDLPv8i16_v4i32
|
|
3759150811U, // UADDLPv8i8_v4i16
|
|
272708U, // UADDLVv16i8v
|
|
2147756356U, // UADDLVv4i16v
|
|
2684627268U, // UADDLVv4i32v
|
|
3221498180U, // UADDLVv8i16v
|
|
3758369092U, // UADDLVv8i8v
|
|
2149060788U, // UADDLv16i8_v8i16
|
|
2685146416U, // UADDLv2i32_v2i64
|
|
3222541616U, // UADDLv4i16_v4i32
|
|
1074532532U, // UADDLv4i32_v2i64
|
|
1611927732U, // UADDLv8i16_v4i32
|
|
3759674672U, // UADDLv8i8_v8i16
|
|
1612190141U, // UADDWv16i8_v8i16
|
|
537663943U, // UADDWv2i32_v2i64
|
|
1075059143U, // UADDWv4i16_v4i32
|
|
537661885U, // UADDWv4i32_v2i64
|
|
1075057085U, // UADDWv8i16_v4i32
|
|
1612192199U, // UADDWv8i8_v8i16
|
|
17049067U, // UBFMWri
|
|
17049067U, // UBFMXri
|
|
17048524U, // UCVTFSWDri
|
|
17048524U, // UCVTFSWSri
|
|
17048524U, // UCVTFSXDri
|
|
17048524U, // UCVTFSXSri
|
|
553919436U, // UCVTFUWDri
|
|
553919436U, // UCVTFUWSri
|
|
553919436U, // UCVTFUXDri
|
|
553919436U, // UCVTFUXSri
|
|
17048524U, // UCVTFd
|
|
17048524U, // UCVTFs
|
|
553919436U, // UCVTFv1i32
|
|
553919436U, // UCVTFv1i64
|
|
1074271180U, // UCVTFv2f32
|
|
1611404236U, // UCVTFv2f64
|
|
2684883916U, // UCVTFv2i32_shift
|
|
537662412U, // UCVTFv2i64_shift
|
|
2685670348U, // UCVTFv4f32
|
|
1075057612U, // UCVTFv4i32_shift
|
|
17049910U, // UDIVWr
|
|
17049910U, // UDIVXr
|
|
17049910U, // UDIV_IntWr
|
|
17049910U, // UDIV_IntXr
|
|
2147488579U, // UHADDv16i8
|
|
2684883779U, // UHADDv2i32
|
|
3222278979U, // UHADDv4i16
|
|
1075057475U, // UHADDv4i32
|
|
1612190531U, // UHADDv8i16
|
|
3759936323U, // UHADDv8i8
|
|
2147488442U, // UHSUBv16i8
|
|
2684883642U, // UHSUBv2i32
|
|
3222278842U, // UHSUBv4i16
|
|
1075057338U, // UHSUBv4i32
|
|
1612190394U, // UHSUBv8i16
|
|
3759936186U, // UHSUBv8i8
|
|
17048865U, // UMADDLrrr
|
|
2147489616U, // UMAXPv16i8
|
|
2684884816U, // UMAXPv2i32
|
|
3222280016U, // UMAXPv4i16
|
|
1075058512U, // UMAXPv4i32
|
|
1612191568U, // UMAXPv8i16
|
|
3759937360U, // UMAXPv8i8
|
|
272794U, // UMAXVv16i8v
|
|
2147756442U, // UMAXVv4i16v
|
|
2684627354U, // UMAXVv4i32v
|
|
3221498266U, // UMAXVv8i16v
|
|
3758369178U, // UMAXVv8i8v
|
|
2147490304U, // UMAXv16i8
|
|
2684885504U, // UMAXv2i32
|
|
3222280704U, // UMAXv4i16
|
|
1075059200U, // UMAXv4i32
|
|
1612192256U, // UMAXv8i16
|
|
3759938048U, // UMAXv8i8
|
|
2147489558U, // UMINPv16i8
|
|
2684884758U, // UMINPv2i32
|
|
3222279958U, // UMINPv4i16
|
|
1075058454U, // UMINPv4i32
|
|
1612191510U, // UMINPv8i16
|
|
3759937302U, // UMINPv8i8
|
|
272748U, // UMINVv16i8v
|
|
2147756396U, // UMINVv4i16v
|
|
2684627308U, // UMINVv4i32v
|
|
3221498220U, // UMINVv8i16v
|
|
3758369132U, // UMINVv8i8v
|
|
2147489330U, // UMINv16i8
|
|
2684884530U, // UMINv2i32
|
|
3222279730U, // UMINv4i16
|
|
1075058226U, // UMINv4i32
|
|
1612191282U, // UMINv8i16
|
|
3759937074U, // UMINv8i8
|
|
2182623364U, // UMLALv16i8_v8i16
|
|
2718708961U, // UMLALv2i32_indexed
|
|
2718708961U, // UMLALv2i32_v2i64
|
|
3256104161U, // UMLALv4i16_indexed
|
|
3256104161U, // UMLALv4i16_v4i32
|
|
1108095108U, // UMLALv4i32_indexed
|
|
1108095108U, // UMLALv4i32_v2i64
|
|
1645490308U, // UMLALv8i16_indexed
|
|
1645490308U, // UMLALv8i16_v4i32
|
|
3793237217U, // UMLALv8i8_v8i16
|
|
2182623488U, // UMLSLv16i8_v8i16
|
|
2718709175U, // UMLSLv2i32_indexed
|
|
2718709175U, // UMLSLv2i32_v2i64
|
|
3256104375U, // UMLSLv4i16_indexed
|
|
3256104375U, // UMLSLv4i16_v4i32
|
|
1108095232U, // UMLSLv4i32_indexed
|
|
1108095232U, // UMLSLv4i32_v2i64
|
|
1645490432U, // UMLSLv8i16_indexed
|
|
1645490432U, // UMLSLv8i16_v4i32
|
|
3793237431U, // UMLSLv8i8_v8i16
|
|
272774U, // UMOVvi16
|
|
537143686U, // UMOVvi32
|
|
1074014598U, // UMOVvi64
|
|
1610885510U, // UMOVvi8
|
|
17048821U, // UMSUBLrrr
|
|
17048610U, // UMULHrr
|
|
2149060838U, // UMULLv16i8_v8i16
|
|
2685146523U, // UMULLv2i32_indexed
|
|
2685146523U, // UMULLv2i32_v2i64
|
|
3222541723U, // UMULLv4i16_indexed
|
|
3222541723U, // UMULLv4i16_v4i32
|
|
1074532582U, // UMULLv4i32_indexed
|
|
1074532582U, // UMULLv4i32_v2i64
|
|
1611927782U, // UMULLv8i16_indexed
|
|
1611927782U, // UMULLv8i16_v4i32
|
|
3759674779U, // UMULLv8i8_v8i16
|
|
2147488610U, // UQADDv16i8
|
|
17048418U, // UQADDv1i16
|
|
17048418U, // UQADDv1i32
|
|
17048418U, // UQADDv1i64
|
|
17048418U, // UQADDv1i8
|
|
2684883810U, // UQADDv2i32
|
|
537662306U, // UQADDv2i64
|
|
3222279010U, // UQADDv4i16
|
|
1075057506U, // UQADDv4i32
|
|
1612190562U, // UQADDv8i16
|
|
3759936354U, // UQADDv8i8
|
|
2147489108U, // UQRSHLv16i8
|
|
17048916U, // UQRSHLv1i16
|
|
17048916U, // UQRSHLv1i32
|
|
17048916U, // UQRSHLv1i64
|
|
17048916U, // UQRSHLv1i8
|
|
2684884308U, // UQRSHLv2i32
|
|
537662804U, // UQRSHLv2i64
|
|
3222279508U, // UQRSHLv4i16
|
|
1075058004U, // UQRSHLv4i32
|
|
1612191060U, // UQRSHLv8i16
|
|
3759936852U, // UQRSHLv8i8
|
|
17049180U, // UQRSHRNb
|
|
17049180U, // UQRSHRNh
|
|
17049180U, // UQRSHRNs
|
|
1644179774U, // UQRSHRNv16i8_shift
|
|
537400924U, // UQRSHRNv2i32_shift
|
|
1074796124U, // UQRSHRNv4i16_shift
|
|
571748670U, // UQRSHRNv4i32_shift
|
|
1108881726U, // UQRSHRNv8i16_shift
|
|
1612453468U, // UQRSHRNv8i8_shift
|
|
17048901U, // UQSHLb
|
|
17048901U, // UQSHLd
|
|
17048901U, // UQSHLh
|
|
17048901U, // UQSHLs
|
|
2147489093U, // UQSHLv16i8
|
|
2147489093U, // UQSHLv16i8_shift
|
|
17048901U, // UQSHLv1i16
|
|
17048901U, // UQSHLv1i32
|
|
17048901U, // UQSHLv1i64
|
|
17048901U, // UQSHLv1i8
|
|
2684884293U, // UQSHLv2i32
|
|
2684884293U, // UQSHLv2i32_shift
|
|
537662789U, // UQSHLv2i64
|
|
537662789U, // UQSHLv2i64_shift
|
|
3222279493U, // UQSHLv4i16
|
|
3222279493U, // UQSHLv4i16_shift
|
|
1075057989U, // UQSHLv4i32
|
|
1075057989U, // UQSHLv4i32_shift
|
|
1612191045U, // UQSHLv8i16
|
|
1612191045U, // UQSHLv8i16_shift
|
|
3759936837U, // UQSHLv8i8
|
|
3759936837U, // UQSHLv8i8_shift
|
|
17049163U, // UQSHRNb
|
|
17049163U, // UQSHRNh
|
|
17049163U, // UQSHRNs
|
|
1644179755U, // UQSHRNv16i8_shift
|
|
537400907U, // UQSHRNv2i32_shift
|
|
1074796107U, // UQSHRNv4i16_shift
|
|
571748651U, // UQSHRNv4i32_shift
|
|
1108881707U, // UQSHRNv8i16_shift
|
|
1612453451U, // UQSHRNv8i8_shift
|
|
2147488471U, // UQSUBv16i8
|
|
17048279U, // UQSUBv1i16
|
|
17048279U, // UQSUBv1i32
|
|
17048279U, // UQSUBv1i64
|
|
17048279U, // UQSUBv1i8
|
|
2684883671U, // UQSUBv2i32
|
|
537662167U, // UQSUBv2i64
|
|
3222278871U, // UQSUBv4i16
|
|
1075057367U, // UQSUBv4i32
|
|
1612190423U, // UQSUBv8i16
|
|
3759936215U, // UQSUBv8i8
|
|
3254792542U, // UQXTNv16i8
|
|
553920128U, // UQXTNv1i16
|
|
553920128U, // UQXTNv1i32
|
|
553920128U, // UQXTNv1i8
|
|
1611142784U, // UQXTNv2i32
|
|
2685408896U, // UQXTNv4i16
|
|
1645490526U, // UQXTNv4i32
|
|
2719494494U, // UQXTNv8i16
|
|
3223066240U, // UQXTNv8i8
|
|
1074271121U, // URECPEv2i32
|
|
2685670289U, // URECPEv4i32
|
|
2147488564U, // URHADDv16i8
|
|
2684883764U, // URHADDv2i32
|
|
3222278964U, // URHADDv4i16
|
|
1075057460U, // URHADDv4i32
|
|
1612190516U, // URHADDv8i16
|
|
3759936308U, // URHADDv8i8
|
|
2147489123U, // URSHLv16i8
|
|
17048931U, // URSHLv1i64
|
|
2684884323U, // URSHLv2i32
|
|
537662819U, // URSHLv2i64
|
|
3222279523U, // URSHLv4i16
|
|
1075058019U, // URSHLv4i32
|
|
1612191075U, // URSHLv8i16
|
|
3759936867U, // URSHLv8i8
|
|
17049508U, // URSHRd
|
|
2147489700U, // URSHRv16i8_shift
|
|
2684884900U, // URSHRv2i32_shift
|
|
537663396U, // URSHRv2i64_shift
|
|
3222280100U, // URSHRv4i16_shift
|
|
1075058596U, // URSHRv4i32_shift
|
|
1612191652U, // URSHRv8i16_shift
|
|
3759937444U, // URSHRv8i8_shift
|
|
1074271159U, // URSQRTEv2i32
|
|
2685670327U, // URSQRTEv4i32
|
|
67404295U, // URSRAd
|
|
2181050887U, // URSRAv16i8_shift
|
|
2718446087U, // URSRAv2i32_shift
|
|
571224583U, // URSRAv2i64_shift
|
|
3255841287U, // URSRAv4i16_shift
|
|
1108619783U, // URSRAv4i32_shift
|
|
1645752839U, // URSRAv8i16_shift
|
|
3793498631U, // URSRAv8i8_shift
|
|
2149060804U, // USHLLv16i8_shift
|
|
2685146493U, // USHLLv2i32_shift
|
|
3222541693U, // USHLLv4i16_shift
|
|
1074532548U, // USHLLv4i32_shift
|
|
1611927748U, // USHLLv8i16_shift
|
|
3759674749U, // USHLLv8i8_shift
|
|
2147489136U, // USHLv16i8
|
|
17048944U, // USHLv1i64
|
|
2684884336U, // USHLv2i32
|
|
537662832U, // USHLv2i64
|
|
3222279536U, // USHLv4i16
|
|
1075058032U, // USHLv4i32
|
|
1612191088U, // USHLv8i16
|
|
3759936880U, // USHLv8i8
|
|
17049521U, // USHRd
|
|
2147489713U, // USHRv16i8_shift
|
|
2684884913U, // USHRv2i32_shift
|
|
537663409U, // USHRv2i64_shift
|
|
3222280113U, // USHRv4i16_shift
|
|
1075058609U, // USHRv4i32_shift
|
|
1612191665U, // USHRv8i16_shift
|
|
3759937457U, // USHRv8i8_shift
|
|
33567577U, // USQADDv16i8
|
|
604275545U, // USQADDv1i16
|
|
604275545U, // USQADDv1i32
|
|
604275545U, // USQADDv1i64
|
|
604275545U, // USQADDv1i8
|
|
1107833689U, // USQADDv2i32
|
|
1644966745U, // USQADDv2i64
|
|
2182099801U, // USQADDv4i16
|
|
2719232857U, // USQADDv4i32
|
|
3256365913U, // USQADDv8i16
|
|
3793498969U, // USQADDv8i8
|
|
67404308U, // USRAd
|
|
2181050900U, // USRAv16i8_shift
|
|
2718446100U, // USRAv2i32_shift
|
|
571224596U, // USRAv2i64_shift
|
|
3255841300U, // USRAv4i16_shift
|
|
1108619796U, // USRAv4i32_shift
|
|
1645752852U, // USRAv8i16_shift
|
|
3793498644U, // USRAv8i8_shift
|
|
2149060756U, // USUBLv16i8_v8i16
|
|
2685146372U, // USUBLv2i32_v2i64
|
|
3222541572U, // USUBLv4i16_v4i32
|
|
1074532500U, // USUBLv4i32_v2i64
|
|
1611927700U, // USUBLv8i16_v4i32
|
|
3759674628U, // USUBLv8i8_v8i16
|
|
1612190125U, // USUBWv16i8_v8i16
|
|
537663920U, // USUBWv2i32_v2i64
|
|
1075059120U, // USUBWv4i16_v4i32
|
|
537661869U, // USUBWv4i32_v2i64
|
|
1075057069U, // USUBWv8i16_v4i32
|
|
1612192176U, // USUBWv8i8_v8i16
|
|
2147487782U, // UZP1v16i8
|
|
2684882982U, // UZP1v2i32
|
|
537661478U, // UZP1v2i64
|
|
3222278182U, // UZP1v4i16
|
|
1075056678U, // UZP1v4i32
|
|
1612189734U, // UZP1v8i16
|
|
3759935526U, // UZP1v8i8
|
|
2147488147U, // UZP2v16i8
|
|
2684883347U, // UZP2v2i32
|
|
537661843U, // UZP2v2i64
|
|
3222278547U, // UZP2v4i16
|
|
1075057043U, // UZP2v4i32
|
|
1612190099U, // UZP2v8i16
|
|
3759935891U, // UZP2v8i8
|
|
3254792536U, // XTNv16i8
|
|
1611142779U, // XTNv2i32
|
|
2685408891U, // XTNv4i16
|
|
1645490520U, // XTNv4i32
|
|
2719494488U, // XTNv8i16
|
|
3223066235U, // XTNv8i8
|
|
2147487776U, // ZIP1v16i8
|
|
2684882976U, // ZIP1v2i32
|
|
537661472U, // ZIP1v2i64
|
|
3222278176U, // ZIP1v4i16
|
|
1075056672U, // ZIP1v4i32
|
|
1612189728U, // ZIP1v8i16
|
|
3759935520U, // ZIP1v8i8
|
|
2147488141U, // ZIP2v16i8
|
|
2684883341U, // ZIP2v2i32
|
|
537661837U, // ZIP2v2i64
|
|
3222278541U, // ZIP2v4i16
|
|
1075057037U, // ZIP2v4i32
|
|
1612190093U, // ZIP2v8i16
|
|
3759935885U, // ZIP2v8i8
|
|
0U
|
|
};
|
|
|
|
static const uint32_t OpInfo2[] = {
|
|
0U, // PHI
|
|
0U, // INLINEASM
|
|
0U, // CFI_INSTRUCTION
|
|
0U, // EH_LABEL
|
|
0U, // GC_LABEL
|
|
0U, // KILL
|
|
0U, // EXTRACT_SUBREG
|
|
0U, // INSERT_SUBREG
|
|
0U, // IMPLICIT_DEF
|
|
0U, // SUBREG_TO_REG
|
|
0U, // COPY_TO_REGCLASS
|
|
0U, // DBG_VALUE
|
|
0U, // REG_SEQUENCE
|
|
0U, // COPY
|
|
0U, // BUNDLE
|
|
0U, // LIFETIME_START
|
|
0U, // LIFETIME_END
|
|
0U, // STACKMAP
|
|
0U, // PATCHPOINT
|
|
0U, // LOAD_STACK_GUARD
|
|
0U, // ABSv16i8
|
|
0U, // ABSv1i64
|
|
0U, // ABSv2i32
|
|
0U, // ABSv2i64
|
|
0U, // ABSv4i16
|
|
0U, // ABSv4i32
|
|
0U, // ABSv8i16
|
|
0U, // ABSv8i8
|
|
1U, // ADCSWr
|
|
1U, // ADCSXr
|
|
1U, // ADCWr
|
|
1U, // ADCXr
|
|
265U, // ADDHNv2i64_v2i32
|
|
273U, // ADDHNv2i64_v4i32
|
|
521U, // ADDHNv4i32_v4i16
|
|
529U, // ADDHNv4i32_v8i16
|
|
785U, // ADDHNv8i16_v16i8
|
|
777U, // ADDHNv8i16_v8i8
|
|
1033U, // ADDPv16i8
|
|
1289U, // ADDPv2i32
|
|
265U, // ADDPv2i64
|
|
0U, // ADDPv2i64p
|
|
1545U, // ADDPv4i16
|
|
521U, // ADDPv4i32
|
|
777U, // ADDPv8i16
|
|
1801U, // ADDPv8i8
|
|
25U, // ADDSWri
|
|
0U, // ADDSWrr
|
|
33U, // ADDSWrs
|
|
41U, // ADDSWrx
|
|
25U, // ADDSXri
|
|
0U, // ADDSXrr
|
|
33U, // ADDSXrs
|
|
41U, // ADDSXrx
|
|
2049U, // ADDSXrx64
|
|
0U, // ADDVv16i8v
|
|
0U, // ADDVv4i16v
|
|
0U, // ADDVv4i32v
|
|
0U, // ADDVv8i16v
|
|
0U, // ADDVv8i8v
|
|
25U, // ADDWri
|
|
0U, // ADDWrr
|
|
33U, // ADDWrs
|
|
41U, // ADDWrx
|
|
25U, // ADDXri
|
|
0U, // ADDXrr
|
|
33U, // ADDXrs
|
|
41U, // ADDXrx
|
|
2049U, // ADDXrx64
|
|
1033U, // ADDv16i8
|
|
1U, // ADDv1i64
|
|
1289U, // ADDv2i32
|
|
265U, // ADDv2i64
|
|
1545U, // ADDv4i16
|
|
521U, // ADDv4i32
|
|
777U, // ADDv8i16
|
|
1801U, // ADDv8i8
|
|
0U, // ADJCALLSTACKDOWN
|
|
0U, // ADJCALLSTACKUP
|
|
0U, // ADR
|
|
0U, // ADRP
|
|
0U, // AESDrr
|
|
0U, // AESErr
|
|
0U, // AESIMCrr
|
|
0U, // AESMCrr
|
|
49U, // ANDSWri
|
|
0U, // ANDSWrr
|
|
33U, // ANDSWrs
|
|
57U, // ANDSXri
|
|
0U, // ANDSXrr
|
|
33U, // ANDSXrs
|
|
49U, // ANDWri
|
|
0U, // ANDWrr
|
|
33U, // ANDWrs
|
|
57U, // ANDXri
|
|
0U, // ANDXrr
|
|
33U, // ANDXrs
|
|
1033U, // ANDv16i8
|
|
1801U, // ANDv8i8
|
|
1U, // ASRVWr
|
|
1U, // ASRVXr
|
|
0U, // B
|
|
2369U, // BFMWri
|
|
2369U, // BFMXri
|
|
0U, // BICSWrr
|
|
33U, // BICSWrs
|
|
0U, // BICSXrr
|
|
33U, // BICSXrs
|
|
0U, // BICWrr
|
|
33U, // BICWrs
|
|
0U, // BICXrr
|
|
33U, // BICXrs
|
|
1033U, // BICv16i8
|
|
0U, // BICv2i32
|
|
0U, // BICv4i16
|
|
0U, // BICv4i32
|
|
0U, // BICv8i16
|
|
1801U, // BICv8i8
|
|
1033U, // BIFv16i8
|
|
1801U, // BIFv8i8
|
|
1041U, // BITv16i8
|
|
1809U, // BITv8i8
|
|
0U, // BL
|
|
0U, // BLR
|
|
0U, // BR
|
|
0U, // BRK
|
|
1041U, // BSLv16i8
|
|
1809U, // BSLv8i8
|
|
0U, // Bcc
|
|
0U, // CBNZW
|
|
0U, // CBNZX
|
|
0U, // CBZW
|
|
0U, // CBZX
|
|
10497U, // CCMNWi
|
|
10497U, // CCMNWr
|
|
10497U, // CCMNXi
|
|
10497U, // CCMNXr
|
|
10497U, // CCMPWi
|
|
10497U, // CCMPWr
|
|
10497U, // CCMPXi
|
|
10497U, // CCMPXr
|
|
0U, // CLREX
|
|
0U, // CLSWr
|
|
0U, // CLSXr
|
|
0U, // CLSv16i8
|
|
0U, // CLSv2i32
|
|
0U, // CLSv4i16
|
|
0U, // CLSv4i32
|
|
0U, // CLSv8i16
|
|
0U, // CLSv8i8
|
|
0U, // CLZWr
|
|
0U, // CLZXr
|
|
0U, // CLZv16i8
|
|
0U, // CLZv2i32
|
|
0U, // CLZv4i16
|
|
0U, // CLZv4i32
|
|
0U, // CLZv8i16
|
|
0U, // CLZv8i8
|
|
1033U, // CMEQv16i8
|
|
2U, // CMEQv16i8rz
|
|
1U, // CMEQv1i64
|
|
2U, // CMEQv1i64rz
|
|
1289U, // CMEQv2i32
|
|
2U, // CMEQv2i32rz
|
|
265U, // CMEQv2i64
|
|
2U, // CMEQv2i64rz
|
|
1545U, // CMEQv4i16
|
|
2U, // CMEQv4i16rz
|
|
521U, // CMEQv4i32
|
|
2U, // CMEQv4i32rz
|
|
777U, // CMEQv8i16
|
|
2U, // CMEQv8i16rz
|
|
1801U, // CMEQv8i8
|
|
2U, // CMEQv8i8rz
|
|
1033U, // CMGEv16i8
|
|
2U, // CMGEv16i8rz
|
|
1U, // CMGEv1i64
|
|
2U, // CMGEv1i64rz
|
|
1289U, // CMGEv2i32
|
|
2U, // CMGEv2i32rz
|
|
265U, // CMGEv2i64
|
|
2U, // CMGEv2i64rz
|
|
1545U, // CMGEv4i16
|
|
2U, // CMGEv4i16rz
|
|
521U, // CMGEv4i32
|
|
2U, // CMGEv4i32rz
|
|
777U, // CMGEv8i16
|
|
2U, // CMGEv8i16rz
|
|
1801U, // CMGEv8i8
|
|
2U, // CMGEv8i8rz
|
|
1033U, // CMGTv16i8
|
|
2U, // CMGTv16i8rz
|
|
1U, // CMGTv1i64
|
|
2U, // CMGTv1i64rz
|
|
1289U, // CMGTv2i32
|
|
2U, // CMGTv2i32rz
|
|
265U, // CMGTv2i64
|
|
2U, // CMGTv2i64rz
|
|
1545U, // CMGTv4i16
|
|
2U, // CMGTv4i16rz
|
|
521U, // CMGTv4i32
|
|
2U, // CMGTv4i32rz
|
|
777U, // CMGTv8i16
|
|
2U, // CMGTv8i16rz
|
|
1801U, // CMGTv8i8
|
|
2U, // CMGTv8i8rz
|
|
1033U, // CMHIv16i8
|
|
1U, // CMHIv1i64
|
|
1289U, // CMHIv2i32
|
|
265U, // CMHIv2i64
|
|
1545U, // CMHIv4i16
|
|
521U, // CMHIv4i32
|
|
777U, // CMHIv8i16
|
|
1801U, // CMHIv8i8
|
|
1033U, // CMHSv16i8
|
|
1U, // CMHSv1i64
|
|
1289U, // CMHSv2i32
|
|
265U, // CMHSv2i64
|
|
1545U, // CMHSv4i16
|
|
521U, // CMHSv4i32
|
|
777U, // CMHSv8i16
|
|
1801U, // CMHSv8i8
|
|
2U, // CMLEv16i8rz
|
|
2U, // CMLEv1i64rz
|
|
2U, // CMLEv2i32rz
|
|
2U, // CMLEv2i64rz
|
|
2U, // CMLEv4i16rz
|
|
2U, // CMLEv4i32rz
|
|
2U, // CMLEv8i16rz
|
|
2U, // CMLEv8i8rz
|
|
2U, // CMLTv16i8rz
|
|
2U, // CMLTv1i64rz
|
|
2U, // CMLTv2i32rz
|
|
2U, // CMLTv2i64rz
|
|
2U, // CMLTv4i16rz
|
|
2U, // CMLTv4i32rz
|
|
2U, // CMLTv8i16rz
|
|
2U, // CMLTv8i8rz
|
|
1033U, // CMTSTv16i8
|
|
1U, // CMTSTv1i64
|
|
1289U, // CMTSTv2i32
|
|
265U, // CMTSTv2i64
|
|
1545U, // CMTSTv4i16
|
|
521U, // CMTSTv4i32
|
|
777U, // CMTSTv8i16
|
|
1801U, // CMTSTv8i8
|
|
0U, // CNTv16i8
|
|
0U, // CNTv8i8
|
|
75U, // CPYi16
|
|
75U, // CPYi32
|
|
75U, // CPYi64
|
|
75U, // CPYi8
|
|
1U, // CRC32Brr
|
|
1U, // CRC32CBrr
|
|
1U, // CRC32CHrr
|
|
1U, // CRC32CWrr
|
|
1U, // CRC32CXrr
|
|
1U, // CRC32Hrr
|
|
1U, // CRC32Wrr
|
|
1U, // CRC32Xrr
|
|
10497U, // CSELWr
|
|
10497U, // CSELXr
|
|
10497U, // CSINCWr
|
|
10497U, // CSINCXr
|
|
10497U, // CSINVWr
|
|
10497U, // CSINVXr
|
|
10497U, // CSNEGWr
|
|
10497U, // CSNEGXr
|
|
0U, // DCPS1
|
|
0U, // DCPS2
|
|
0U, // DCPS3
|
|
0U, // DMB
|
|
0U, // DRPS
|
|
0U, // DSB
|
|
0U, // DUPv16i8gpr
|
|
75U, // DUPv16i8lane
|
|
0U, // DUPv2i32gpr
|
|
75U, // DUPv2i32lane
|
|
0U, // DUPv2i64gpr
|
|
75U, // DUPv2i64lane
|
|
0U, // DUPv4i16gpr
|
|
75U, // DUPv4i16lane
|
|
0U, // DUPv4i32gpr
|
|
75U, // DUPv4i32lane
|
|
0U, // DUPv8i16gpr
|
|
75U, // DUPv8i16lane
|
|
0U, // DUPv8i8gpr
|
|
75U, // DUPv8i8lane
|
|
0U, // EONWrr
|
|
33U, // EONWrs
|
|
0U, // EONXrr
|
|
33U, // EONXrs
|
|
49U, // EORWri
|
|
0U, // EORWrr
|
|
33U, // EORWrs
|
|
57U, // EORXri
|
|
0U, // EORXrr
|
|
33U, // EORXrs
|
|
1033U, // EORv16i8
|
|
1801U, // EORv8i8
|
|
0U, // ERET
|
|
18689U, // EXTRWrri
|
|
18689U, // EXTRXrri
|
|
2569U, // EXTv16i8
|
|
2825U, // EXTv8i8
|
|
0U, // F128CSEL
|
|
1U, // FABD32
|
|
1U, // FABD64
|
|
1289U, // FABDv2f32
|
|
265U, // FABDv2f64
|
|
521U, // FABDv4f32
|
|
0U, // FABSDr
|
|
0U, // FABSSr
|
|
0U, // FABSv2f32
|
|
0U, // FABSv2f64
|
|
0U, // FABSv4f32
|
|
1U, // FACGE32
|
|
1U, // FACGE64
|
|
1289U, // FACGEv2f32
|
|
265U, // FACGEv2f64
|
|
521U, // FACGEv4f32
|
|
1U, // FACGT32
|
|
1U, // FACGT64
|
|
1289U, // FACGTv2f32
|
|
265U, // FACGTv2f64
|
|
521U, // FACGTv4f32
|
|
1U, // FADDDrr
|
|
1289U, // FADDPv2f32
|
|
265U, // FADDPv2f64
|
|
0U, // FADDPv2i32p
|
|
0U, // FADDPv2i64p
|
|
521U, // FADDPv4f32
|
|
1U, // FADDSrr
|
|
1289U, // FADDv2f32
|
|
265U, // FADDv2f64
|
|
521U, // FADDv4f32
|
|
10497U, // FCCMPDrr
|
|
10497U, // FCCMPEDrr
|
|
10497U, // FCCMPESrr
|
|
10497U, // FCCMPSrr
|
|
1U, // FCMEQ32
|
|
1U, // FCMEQ64
|
|
3U, // FCMEQv1i32rz
|
|
3U, // FCMEQv1i64rz
|
|
1289U, // FCMEQv2f32
|
|
265U, // FCMEQv2f64
|
|
3U, // FCMEQv2i32rz
|
|
3U, // FCMEQv2i64rz
|
|
521U, // FCMEQv4f32
|
|
3U, // FCMEQv4i32rz
|
|
1U, // FCMGE32
|
|
1U, // FCMGE64
|
|
3U, // FCMGEv1i32rz
|
|
3U, // FCMGEv1i64rz
|
|
1289U, // FCMGEv2f32
|
|
265U, // FCMGEv2f64
|
|
3U, // FCMGEv2i32rz
|
|
3U, // FCMGEv2i64rz
|
|
521U, // FCMGEv4f32
|
|
3U, // FCMGEv4i32rz
|
|
1U, // FCMGT32
|
|
1U, // FCMGT64
|
|
3U, // FCMGTv1i32rz
|
|
3U, // FCMGTv1i64rz
|
|
1289U, // FCMGTv2f32
|
|
265U, // FCMGTv2f64
|
|
3U, // FCMGTv2i32rz
|
|
3U, // FCMGTv2i64rz
|
|
521U, // FCMGTv4f32
|
|
3U, // FCMGTv4i32rz
|
|
3U, // FCMLEv1i32rz
|
|
3U, // FCMLEv1i64rz
|
|
3U, // FCMLEv2i32rz
|
|
3U, // FCMLEv2i64rz
|
|
3U, // FCMLEv4i32rz
|
|
3U, // FCMLTv1i32rz
|
|
3U, // FCMLTv1i64rz
|
|
3U, // FCMLTv2i32rz
|
|
3U, // FCMLTv2i64rz
|
|
3U, // FCMLTv4i32rz
|
|
0U, // FCMPDri
|
|
0U, // FCMPDrr
|
|
0U, // FCMPEDri
|
|
0U, // FCMPEDrr
|
|
0U, // FCMPESri
|
|
0U, // FCMPESrr
|
|
0U, // FCMPSri
|
|
0U, // FCMPSrr
|
|
10497U, // FCSELDrrr
|
|
10497U, // FCSELSrrr
|
|
0U, // FCVTASUWDr
|
|
0U, // FCVTASUWSr
|
|
0U, // FCVTASUXDr
|
|
0U, // FCVTASUXSr
|
|
0U, // FCVTASv1i32
|
|
0U, // FCVTASv1i64
|
|
0U, // FCVTASv2f32
|
|
0U, // FCVTASv2f64
|
|
0U, // FCVTASv4f32
|
|
0U, // FCVTAUUWDr
|
|
0U, // FCVTAUUWSr
|
|
0U, // FCVTAUUXDr
|
|
0U, // FCVTAUUXSr
|
|
0U, // FCVTAUv1i32
|
|
0U, // FCVTAUv1i64
|
|
0U, // FCVTAUv2f32
|
|
0U, // FCVTAUv2f64
|
|
0U, // FCVTAUv4f32
|
|
0U, // FCVTDHr
|
|
0U, // FCVTDSr
|
|
0U, // FCVTHDr
|
|
0U, // FCVTHSr
|
|
0U, // FCVTLv2i32
|
|
0U, // FCVTLv4i16
|
|
0U, // FCVTLv4i32
|
|
0U, // FCVTLv8i16
|
|
0U, // FCVTMSUWDr
|
|
0U, // FCVTMSUWSr
|
|
0U, // FCVTMSUXDr
|
|
0U, // FCVTMSUXSr
|
|
0U, // FCVTMSv1i32
|
|
0U, // FCVTMSv1i64
|
|
0U, // FCVTMSv2f32
|
|
0U, // FCVTMSv2f64
|
|
0U, // FCVTMSv4f32
|
|
0U, // FCVTMUUWDr
|
|
0U, // FCVTMUUWSr
|
|
0U, // FCVTMUUXDr
|
|
0U, // FCVTMUUXSr
|
|
0U, // FCVTMUv1i32
|
|
0U, // FCVTMUv1i64
|
|
0U, // FCVTMUv2f32
|
|
0U, // FCVTMUv2f64
|
|
0U, // FCVTMUv4f32
|
|
0U, // FCVTNSUWDr
|
|
0U, // FCVTNSUWSr
|
|
0U, // FCVTNSUXDr
|
|
0U, // FCVTNSUXSr
|
|
0U, // FCVTNSv1i32
|
|
0U, // FCVTNSv1i64
|
|
0U, // FCVTNSv2f32
|
|
0U, // FCVTNSv2f64
|
|
0U, // FCVTNSv4f32
|
|
0U, // FCVTNUUWDr
|
|
0U, // FCVTNUUWSr
|
|
0U, // FCVTNUUXDr
|
|
0U, // FCVTNUUXSr
|
|
0U, // FCVTNUv1i32
|
|
0U, // FCVTNUv1i64
|
|
0U, // FCVTNUv2f32
|
|
0U, // FCVTNUv2f64
|
|
0U, // FCVTNUv4f32
|
|
0U, // FCVTNv2i32
|
|
0U, // FCVTNv4i16
|
|
0U, // FCVTNv4i32
|
|
0U, // FCVTNv8i16
|
|
0U, // FCVTPSUWDr
|
|
0U, // FCVTPSUWSr
|
|
0U, // FCVTPSUXDr
|
|
0U, // FCVTPSUXSr
|
|
0U, // FCVTPSv1i32
|
|
0U, // FCVTPSv1i64
|
|
0U, // FCVTPSv2f32
|
|
0U, // FCVTPSv2f64
|
|
0U, // FCVTPSv4f32
|
|
0U, // FCVTPUUWDr
|
|
0U, // FCVTPUUWSr
|
|
0U, // FCVTPUUXDr
|
|
0U, // FCVTPUUXSr
|
|
0U, // FCVTPUv1i32
|
|
0U, // FCVTPUv1i64
|
|
0U, // FCVTPUv2f32
|
|
0U, // FCVTPUv2f64
|
|
0U, // FCVTPUv4f32
|
|
0U, // FCVTSDr
|
|
0U, // FCVTSHr
|
|
0U, // FCVTXNv1i64
|
|
0U, // FCVTXNv2f32
|
|
0U, // FCVTXNv4f32
|
|
1U, // FCVTZSSWDri
|
|
1U, // FCVTZSSWSri
|
|
1U, // FCVTZSSXDri
|
|
1U, // FCVTZSSXSri
|
|
0U, // FCVTZSUWDr
|
|
0U, // FCVTZSUWSr
|
|
0U, // FCVTZSUXDr
|
|
0U, // FCVTZSUXSr
|
|
1U, // FCVTZS_IntSWDri
|
|
1U, // FCVTZS_IntSWSri
|
|
1U, // FCVTZS_IntSXDri
|
|
1U, // FCVTZS_IntSXSri
|
|
0U, // FCVTZS_IntUWDr
|
|
0U, // FCVTZS_IntUWSr
|
|
0U, // FCVTZS_IntUXDr
|
|
0U, // FCVTZS_IntUXSr
|
|
0U, // FCVTZS_Intv2f32
|
|
0U, // FCVTZS_Intv2f64
|
|
0U, // FCVTZS_Intv4f32
|
|
1U, // FCVTZSd
|
|
1U, // FCVTZSs
|
|
0U, // FCVTZSv1i32
|
|
0U, // FCVTZSv1i64
|
|
0U, // FCVTZSv2f32
|
|
0U, // FCVTZSv2f64
|
|
1U, // FCVTZSv2i32_shift
|
|
1U, // FCVTZSv2i64_shift
|
|
0U, // FCVTZSv4f32
|
|
1U, // FCVTZSv4i32_shift
|
|
1U, // FCVTZUSWDri
|
|
1U, // FCVTZUSWSri
|
|
1U, // FCVTZUSXDri
|
|
1U, // FCVTZUSXSri
|
|
0U, // FCVTZUUWDr
|
|
0U, // FCVTZUUWSr
|
|
0U, // FCVTZUUXDr
|
|
0U, // FCVTZUUXSr
|
|
1U, // FCVTZU_IntSWDri
|
|
1U, // FCVTZU_IntSWSri
|
|
1U, // FCVTZU_IntSXDri
|
|
1U, // FCVTZU_IntSXSri
|
|
0U, // FCVTZU_IntUWDr
|
|
0U, // FCVTZU_IntUWSr
|
|
0U, // FCVTZU_IntUXDr
|
|
0U, // FCVTZU_IntUXSr
|
|
0U, // FCVTZU_Intv2f32
|
|
0U, // FCVTZU_Intv2f64
|
|
0U, // FCVTZU_Intv4f32
|
|
1U, // FCVTZUd
|
|
1U, // FCVTZUs
|
|
0U, // FCVTZUv1i32
|
|
0U, // FCVTZUv1i64
|
|
0U, // FCVTZUv2f32
|
|
0U, // FCVTZUv2f64
|
|
1U, // FCVTZUv2i32_shift
|
|
1U, // FCVTZUv2i64_shift
|
|
0U, // FCVTZUv4f32
|
|
1U, // FCVTZUv4i32_shift
|
|
1U, // FDIVDrr
|
|
1U, // FDIVSrr
|
|
1289U, // FDIVv2f32
|
|
265U, // FDIVv2f64
|
|
521U, // FDIVv4f32
|
|
18689U, // FMADDDrrr
|
|
18689U, // FMADDSrrr
|
|
1U, // FMAXDrr
|
|
1U, // FMAXNMDrr
|
|
1289U, // FMAXNMPv2f32
|
|
265U, // FMAXNMPv2f64
|
|
0U, // FMAXNMPv2i32p
|
|
0U, // FMAXNMPv2i64p
|
|
521U, // FMAXNMPv4f32
|
|
1U, // FMAXNMSrr
|
|
0U, // FMAXNMVv4i32v
|
|
1289U, // FMAXNMv2f32
|
|
265U, // FMAXNMv2f64
|
|
521U, // FMAXNMv4f32
|
|
1289U, // FMAXPv2f32
|
|
265U, // FMAXPv2f64
|
|
0U, // FMAXPv2i32p
|
|
0U, // FMAXPv2i64p
|
|
521U, // FMAXPv4f32
|
|
1U, // FMAXSrr
|
|
0U, // FMAXVv4i32v
|
|
1289U, // FMAXv2f32
|
|
265U, // FMAXv2f64
|
|
521U, // FMAXv4f32
|
|
1U, // FMINDrr
|
|
1U, // FMINNMDrr
|
|
1289U, // FMINNMPv2f32
|
|
265U, // FMINNMPv2f64
|
|
0U, // FMINNMPv2i32p
|
|
0U, // FMINNMPv2i64p
|
|
521U, // FMINNMPv4f32
|
|
1U, // FMINNMSrr
|
|
0U, // FMINNMVv4i32v
|
|
1289U, // FMINNMv2f32
|
|
265U, // FMINNMv2f64
|
|
521U, // FMINNMv4f32
|
|
1289U, // FMINPv2f32
|
|
265U, // FMINPv2f64
|
|
0U, // FMINPv2i32p
|
|
0U, // FMINPv2i64p
|
|
521U, // FMINPv4f32
|
|
1U, // FMINSrr
|
|
0U, // FMINVv4i32v
|
|
1289U, // FMINv2f32
|
|
265U, // FMINv2f64
|
|
521U, // FMINv4f32
|
|
27665U, // FMLAv1i32_indexed
|
|
27921U, // FMLAv1i64_indexed
|
|
1297U, // FMLAv2f32
|
|
273U, // FMLAv2f64
|
|
27665U, // FMLAv2i32_indexed
|
|
27921U, // FMLAv2i64_indexed
|
|
529U, // FMLAv4f32
|
|
27665U, // FMLAv4i32_indexed
|
|
27665U, // FMLSv1i32_indexed
|
|
27921U, // FMLSv1i64_indexed
|
|
1297U, // FMLSv2f32
|
|
273U, // FMLSv2f64
|
|
27665U, // FMLSv2i32_indexed
|
|
27921U, // FMLSv2i64_indexed
|
|
529U, // FMLSv4f32
|
|
27665U, // FMLSv4i32_indexed
|
|
75U, // FMOVDXHighr
|
|
0U, // FMOVDXr
|
|
0U, // FMOVDi
|
|
0U, // FMOVDr
|
|
0U, // FMOVSWr
|
|
0U, // FMOVSi
|
|
0U, // FMOVSr
|
|
0U, // FMOVWSr
|
|
0U, // FMOVXDHighr
|
|
0U, // FMOVXDr
|
|
0U, // FMOVv2f32_ns
|
|
0U, // FMOVv2f64_ns
|
|
0U, // FMOVv4f32_ns
|
|
18689U, // FMSUBDrrr
|
|
18689U, // FMSUBSrrr
|
|
1U, // FMULDrr
|
|
1U, // FMULSrr
|
|
1U, // FMULX32
|
|
1U, // FMULX64
|
|
35849U, // FMULXv1i32_indexed
|
|
36105U, // FMULXv1i64_indexed
|
|
1289U, // FMULXv2f32
|
|
265U, // FMULXv2f64
|
|
35849U, // FMULXv2i32_indexed
|
|
36105U, // FMULXv2i64_indexed
|
|
521U, // FMULXv4f32
|
|
35849U, // FMULXv4i32_indexed
|
|
35849U, // FMULv1i32_indexed
|
|
36105U, // FMULv1i64_indexed
|
|
1289U, // FMULv2f32
|
|
265U, // FMULv2f64
|
|
35849U, // FMULv2i32_indexed
|
|
36105U, // FMULv2i64_indexed
|
|
521U, // FMULv4f32
|
|
35849U, // FMULv4i32_indexed
|
|
0U, // FNEGDr
|
|
0U, // FNEGSr
|
|
0U, // FNEGv2f32
|
|
0U, // FNEGv2f64
|
|
0U, // FNEGv4f32
|
|
18689U, // FNMADDDrrr
|
|
18689U, // FNMADDSrrr
|
|
18689U, // FNMSUBDrrr
|
|
18689U, // FNMSUBSrrr
|
|
1U, // FNMULDrr
|
|
1U, // FNMULSrr
|
|
0U, // FRECPEv1i32
|
|
0U, // FRECPEv1i64
|
|
0U, // FRECPEv2f32
|
|
0U, // FRECPEv2f64
|
|
0U, // FRECPEv4f32
|
|
1U, // FRECPS32
|
|
1U, // FRECPS64
|
|
1289U, // FRECPSv2f32
|
|
265U, // FRECPSv2f64
|
|
521U, // FRECPSv4f32
|
|
0U, // FRECPXv1i32
|
|
0U, // FRECPXv1i64
|
|
0U, // FRINTADr
|
|
0U, // FRINTASr
|
|
0U, // FRINTAv2f32
|
|
0U, // FRINTAv2f64
|
|
0U, // FRINTAv4f32
|
|
0U, // FRINTIDr
|
|
0U, // FRINTISr
|
|
0U, // FRINTIv2f32
|
|
0U, // FRINTIv2f64
|
|
0U, // FRINTIv4f32
|
|
0U, // FRINTMDr
|
|
0U, // FRINTMSr
|
|
0U, // FRINTMv2f32
|
|
0U, // FRINTMv2f64
|
|
0U, // FRINTMv4f32
|
|
0U, // FRINTNDr
|
|
0U, // FRINTNSr
|
|
0U, // FRINTNv2f32
|
|
0U, // FRINTNv2f64
|
|
0U, // FRINTNv4f32
|
|
0U, // FRINTPDr
|
|
0U, // FRINTPSr
|
|
0U, // FRINTPv2f32
|
|
0U, // FRINTPv2f64
|
|
0U, // FRINTPv4f32
|
|
0U, // FRINTXDr
|
|
0U, // FRINTXSr
|
|
0U, // FRINTXv2f32
|
|
0U, // FRINTXv2f64
|
|
0U, // FRINTXv4f32
|
|
0U, // FRINTZDr
|
|
0U, // FRINTZSr
|
|
0U, // FRINTZv2f32
|
|
0U, // FRINTZv2f64
|
|
0U, // FRINTZv4f32
|
|
0U, // FRSQRTEv1i32
|
|
0U, // FRSQRTEv1i64
|
|
0U, // FRSQRTEv2f32
|
|
0U, // FRSQRTEv2f64
|
|
0U, // FRSQRTEv4f32
|
|
1U, // FRSQRTS32
|
|
1U, // FRSQRTS64
|
|
1289U, // FRSQRTSv2f32
|
|
265U, // FRSQRTSv2f64
|
|
521U, // FRSQRTSv4f32
|
|
0U, // FSQRTDr
|
|
0U, // FSQRTSr
|
|
0U, // FSQRTv2f32
|
|
0U, // FSQRTv2f64
|
|
0U, // FSQRTv4f32
|
|
1U, // FSUBDrr
|
|
1U, // FSUBSrr
|
|
1289U, // FSUBv2f32
|
|
265U, // FSUBv2f64
|
|
521U, // FSUBv4f32
|
|
0U, // HINT
|
|
0U, // HLT
|
|
0U, // HVC
|
|
0U, // INSvi16gpr
|
|
83U, // INSvi16lane
|
|
0U, // INSvi32gpr
|
|
83U, // INSvi32lane
|
|
0U, // INSvi64gpr
|
|
83U, // INSvi64lane
|
|
0U, // INSvi8gpr
|
|
83U, // INSvi8lane
|
|
0U, // ISB
|
|
0U, // LD1Fourv16b
|
|
0U, // LD1Fourv16b_POST
|
|
0U, // LD1Fourv1d
|
|
0U, // LD1Fourv1d_POST
|
|
0U, // LD1Fourv2d
|
|
0U, // LD1Fourv2d_POST
|
|
0U, // LD1Fourv2s
|
|
0U, // LD1Fourv2s_POST
|
|
0U, // LD1Fourv4h
|
|
0U, // LD1Fourv4h_POST
|
|
0U, // LD1Fourv4s
|
|
0U, // LD1Fourv4s_POST
|
|
0U, // LD1Fourv8b
|
|
0U, // LD1Fourv8b_POST
|
|
0U, // LD1Fourv8h
|
|
0U, // LD1Fourv8h_POST
|
|
0U, // LD1Onev16b
|
|
0U, // LD1Onev16b_POST
|
|
0U, // LD1Onev1d
|
|
0U, // LD1Onev1d_POST
|
|
0U, // LD1Onev2d
|
|
0U, // LD1Onev2d_POST
|
|
0U, // LD1Onev2s
|
|
0U, // LD1Onev2s_POST
|
|
0U, // LD1Onev4h
|
|
0U, // LD1Onev4h_POST
|
|
0U, // LD1Onev4s
|
|
0U, // LD1Onev4s_POST
|
|
0U, // LD1Onev8b
|
|
0U, // LD1Onev8b_POST
|
|
0U, // LD1Onev8h
|
|
0U, // LD1Onev8h_POST
|
|
0U, // LD1Rv16b
|
|
0U, // LD1Rv16b_POST
|
|
0U, // LD1Rv1d
|
|
0U, // LD1Rv1d_POST
|
|
0U, // LD1Rv2d
|
|
0U, // LD1Rv2d_POST
|
|
0U, // LD1Rv2s
|
|
0U, // LD1Rv2s_POST
|
|
0U, // LD1Rv4h
|
|
0U, // LD1Rv4h_POST
|
|
0U, // LD1Rv4s
|
|
0U, // LD1Rv4s_POST
|
|
0U, // LD1Rv8b
|
|
0U, // LD1Rv8b_POST
|
|
0U, // LD1Rv8h
|
|
0U, // LD1Rv8h_POST
|
|
0U, // LD1Threev16b
|
|
0U, // LD1Threev16b_POST
|
|
0U, // LD1Threev1d
|
|
0U, // LD1Threev1d_POST
|
|
0U, // LD1Threev2d
|
|
0U, // LD1Threev2d_POST
|
|
0U, // LD1Threev2s
|
|
0U, // LD1Threev2s_POST
|
|
0U, // LD1Threev4h
|
|
0U, // LD1Threev4h_POST
|
|
0U, // LD1Threev4s
|
|
0U, // LD1Threev4s_POST
|
|
0U, // LD1Threev8b
|
|
0U, // LD1Threev8b_POST
|
|
0U, // LD1Threev8h
|
|
0U, // LD1Threev8h_POST
|
|
0U, // LD1Twov16b
|
|
0U, // LD1Twov16b_POST
|
|
0U, // LD1Twov1d
|
|
0U, // LD1Twov1d_POST
|
|
0U, // LD1Twov2d
|
|
0U, // LD1Twov2d_POST
|
|
0U, // LD1Twov2s
|
|
0U, // LD1Twov2s_POST
|
|
0U, // LD1Twov4h
|
|
0U, // LD1Twov4h_POST
|
|
0U, // LD1Twov4s
|
|
0U, // LD1Twov4s_POST
|
|
0U, // LD1Twov8b
|
|
0U, // LD1Twov8b_POST
|
|
0U, // LD1Twov8h
|
|
0U, // LD1Twov8h_POST
|
|
0U, // LD1i16
|
|
0U, // LD1i16_POST
|
|
0U, // LD1i32
|
|
0U, // LD1i32_POST
|
|
0U, // LD1i64
|
|
0U, // LD1i64_POST
|
|
0U, // LD1i8
|
|
0U, // LD1i8_POST
|
|
0U, // LD2Rv16b
|
|
0U, // LD2Rv16b_POST
|
|
0U, // LD2Rv1d
|
|
0U, // LD2Rv1d_POST
|
|
0U, // LD2Rv2d
|
|
0U, // LD2Rv2d_POST
|
|
0U, // LD2Rv2s
|
|
0U, // LD2Rv2s_POST
|
|
0U, // LD2Rv4h
|
|
0U, // LD2Rv4h_POST
|
|
0U, // LD2Rv4s
|
|
0U, // LD2Rv4s_POST
|
|
0U, // LD2Rv8b
|
|
0U, // LD2Rv8b_POST
|
|
0U, // LD2Rv8h
|
|
0U, // LD2Rv8h_POST
|
|
0U, // LD2Twov16b
|
|
0U, // LD2Twov16b_POST
|
|
0U, // LD2Twov2d
|
|
0U, // LD2Twov2d_POST
|
|
0U, // LD2Twov2s
|
|
0U, // LD2Twov2s_POST
|
|
0U, // LD2Twov4h
|
|
0U, // LD2Twov4h_POST
|
|
0U, // LD2Twov4s
|
|
0U, // LD2Twov4s_POST
|
|
0U, // LD2Twov8b
|
|
0U, // LD2Twov8b_POST
|
|
0U, // LD2Twov8h
|
|
0U, // LD2Twov8h_POST
|
|
0U, // LD2i16
|
|
0U, // LD2i16_POST
|
|
0U, // LD2i32
|
|
0U, // LD2i32_POST
|
|
0U, // LD2i64
|
|
0U, // LD2i64_POST
|
|
0U, // LD2i8
|
|
0U, // LD2i8_POST
|
|
0U, // LD3Rv16b
|
|
0U, // LD3Rv16b_POST
|
|
0U, // LD3Rv1d
|
|
0U, // LD3Rv1d_POST
|
|
0U, // LD3Rv2d
|
|
0U, // LD3Rv2d_POST
|
|
0U, // LD3Rv2s
|
|
0U, // LD3Rv2s_POST
|
|
0U, // LD3Rv4h
|
|
0U, // LD3Rv4h_POST
|
|
0U, // LD3Rv4s
|
|
0U, // LD3Rv4s_POST
|
|
0U, // LD3Rv8b
|
|
0U, // LD3Rv8b_POST
|
|
0U, // LD3Rv8h
|
|
0U, // LD3Rv8h_POST
|
|
0U, // LD3Threev16b
|
|
0U, // LD3Threev16b_POST
|
|
0U, // LD3Threev2d
|
|
0U, // LD3Threev2d_POST
|
|
0U, // LD3Threev2s
|
|
0U, // LD3Threev2s_POST
|
|
0U, // LD3Threev4h
|
|
0U, // LD3Threev4h_POST
|
|
0U, // LD3Threev4s
|
|
0U, // LD3Threev4s_POST
|
|
0U, // LD3Threev8b
|
|
0U, // LD3Threev8b_POST
|
|
0U, // LD3Threev8h
|
|
0U, // LD3Threev8h_POST
|
|
0U, // LD3i16
|
|
0U, // LD3i16_POST
|
|
0U, // LD3i32
|
|
0U, // LD3i32_POST
|
|
0U, // LD3i64
|
|
0U, // LD3i64_POST
|
|
0U, // LD3i8
|
|
0U, // LD3i8_POST
|
|
0U, // LD4Fourv16b
|
|
0U, // LD4Fourv16b_POST
|
|
0U, // LD4Fourv2d
|
|
0U, // LD4Fourv2d_POST
|
|
0U, // LD4Fourv2s
|
|
0U, // LD4Fourv2s_POST
|
|
0U, // LD4Fourv4h
|
|
0U, // LD4Fourv4h_POST
|
|
0U, // LD4Fourv4s
|
|
0U, // LD4Fourv4s_POST
|
|
0U, // LD4Fourv8b
|
|
0U, // LD4Fourv8b_POST
|
|
0U, // LD4Fourv8h
|
|
0U, // LD4Fourv8h_POST
|
|
0U, // LD4Rv16b
|
|
0U, // LD4Rv16b_POST
|
|
0U, // LD4Rv1d
|
|
0U, // LD4Rv1d_POST
|
|
0U, // LD4Rv2d
|
|
0U, // LD4Rv2d_POST
|
|
0U, // LD4Rv2s
|
|
0U, // LD4Rv2s_POST
|
|
0U, // LD4Rv4h
|
|
0U, // LD4Rv4h_POST
|
|
0U, // LD4Rv4s
|
|
0U, // LD4Rv4s_POST
|
|
0U, // LD4Rv8b
|
|
0U, // LD4Rv8b_POST
|
|
0U, // LD4Rv8h
|
|
0U, // LD4Rv8h_POST
|
|
0U, // LD4i16
|
|
0U, // LD4i16_POST
|
|
0U, // LD4i32
|
|
0U, // LD4i32_POST
|
|
0U, // LD4i64
|
|
0U, // LD4i64_POST
|
|
0U, // LD4i8
|
|
0U, // LD4i8_POST
|
|
4U, // LDARB
|
|
4U, // LDARH
|
|
4U, // LDARW
|
|
4U, // LDARX
|
|
3588U, // LDAXPW
|
|
3588U, // LDAXPX
|
|
4U, // LDAXRB
|
|
4U, // LDAXRH
|
|
4U, // LDAXRW
|
|
4U, // LDAXRX
|
|
43268U, // LDNPDi
|
|
51460U, // LDNPQi
|
|
59652U, // LDNPSi
|
|
59652U, // LDNPWi
|
|
43268U, // LDNPXi
|
|
43268U, // LDPDi
|
|
69444U, // LDPDpost
|
|
330052U, // LDPDpre
|
|
51460U, // LDPQi
|
|
77636U, // LDPQpost
|
|
338244U, // LDPQpre
|
|
59652U, // LDPSWi
|
|
85828U, // LDPSWpost
|
|
346436U, // LDPSWpre
|
|
59652U, // LDPSi
|
|
85828U, // LDPSpost
|
|
346436U, // LDPSpre
|
|
59652U, // LDPWi
|
|
85828U, // LDPWpost
|
|
346436U, // LDPWpre
|
|
43268U, // LDPXi
|
|
69444U, // LDPXpost
|
|
330052U, // LDPXpre
|
|
4U, // LDRBBpost
|
|
4161U, // LDRBBpre
|
|
92417U, // LDRBBroW
|
|
100609U, // LDRBBroX
|
|
89U, // LDRBBui
|
|
4U, // LDRBpost
|
|
4161U, // LDRBpre
|
|
92417U, // LDRBroW
|
|
100609U, // LDRBroX
|
|
89U, // LDRBui
|
|
0U, // LDRDl
|
|
4U, // LDRDpost
|
|
4161U, // LDRDpre
|
|
108801U, // LDRDroW
|
|
116993U, // LDRDroX
|
|
97U, // LDRDui
|
|
4U, // LDRHHpost
|
|
4161U, // LDRHHpre
|
|
125185U, // LDRHHroW
|
|
133377U, // LDRHHroX
|
|
105U, // LDRHHui
|
|
4U, // LDRHpost
|
|
4161U, // LDRHpre
|
|
125185U, // LDRHroW
|
|
133377U, // LDRHroX
|
|
105U, // LDRHui
|
|
0U, // LDRQl
|
|
4U, // LDRQpost
|
|
4161U, // LDRQpre
|
|
141569U, // LDRQroW
|
|
149761U, // LDRQroX
|
|
113U, // LDRQui
|
|
4U, // LDRSBWpost
|
|
4161U, // LDRSBWpre
|
|
92417U, // LDRSBWroW
|
|
100609U, // LDRSBWroX
|
|
89U, // LDRSBWui
|
|
4U, // LDRSBXpost
|
|
4161U, // LDRSBXpre
|
|
92417U, // LDRSBXroW
|
|
100609U, // LDRSBXroX
|
|
89U, // LDRSBXui
|
|
4U, // LDRSHWpost
|
|
4161U, // LDRSHWpre
|
|
125185U, // LDRSHWroW
|
|
133377U, // LDRSHWroX
|
|
105U, // LDRSHWui
|
|
4U, // LDRSHXpost
|
|
4161U, // LDRSHXpre
|
|
125185U, // LDRSHXroW
|
|
133377U, // LDRSHXroX
|
|
105U, // LDRSHXui
|
|
0U, // LDRSWl
|
|
4U, // LDRSWpost
|
|
4161U, // LDRSWpre
|
|
157953U, // LDRSWroW
|
|
166145U, // LDRSWroX
|
|
121U, // LDRSWui
|
|
0U, // LDRSl
|
|
4U, // LDRSpost
|
|
4161U, // LDRSpre
|
|
157953U, // LDRSroW
|
|
166145U, // LDRSroX
|
|
121U, // LDRSui
|
|
0U, // LDRWl
|
|
4U, // LDRWpost
|
|
4161U, // LDRWpre
|
|
157953U, // LDRWroW
|
|
166145U, // LDRWroX
|
|
121U, // LDRWui
|
|
0U, // LDRXl
|
|
4U, // LDRXpost
|
|
4161U, // LDRXpre
|
|
108801U, // LDRXroW
|
|
116993U, // LDRXroX
|
|
97U, // LDRXui
|
|
3585U, // LDTRBi
|
|
3585U, // LDTRHi
|
|
3585U, // LDTRSBWi
|
|
3585U, // LDTRSBXi
|
|
3585U, // LDTRSHWi
|
|
3585U, // LDTRSHXi
|
|
3585U, // LDTRSWi
|
|
3585U, // LDTRWi
|
|
3585U, // LDTRXi
|
|
3585U, // LDURBBi
|
|
3585U, // LDURBi
|
|
3585U, // LDURDi
|
|
3585U, // LDURHHi
|
|
3585U, // LDURHi
|
|
3585U, // LDURQi
|
|
3585U, // LDURSBWi
|
|
3585U, // LDURSBXi
|
|
3585U, // LDURSHWi
|
|
3585U, // LDURSHXi
|
|
3585U, // LDURSWi
|
|
3585U, // LDURSi
|
|
3585U, // LDURWi
|
|
3585U, // LDURXi
|
|
3588U, // LDXPW
|
|
3588U, // LDXPX
|
|
4U, // LDXRB
|
|
4U, // LDXRH
|
|
4U, // LDXRW
|
|
4U, // LDXRX
|
|
0U, // LOADgot
|
|
1U, // LSLVWr
|
|
1U, // LSLVXr
|
|
1U, // LSRVWr
|
|
1U, // LSRVXr
|
|
18689U, // MADDWrrr
|
|
18689U, // MADDXrrr
|
|
1041U, // MLAv16i8
|
|
1297U, // MLAv2i32
|
|
27665U, // MLAv2i32_indexed
|
|
1553U, // MLAv4i16
|
|
28945U, // MLAv4i16_indexed
|
|
529U, // MLAv4i32
|
|
27665U, // MLAv4i32_indexed
|
|
785U, // MLAv8i16
|
|
28945U, // MLAv8i16_indexed
|
|
1809U, // MLAv8i8
|
|
1041U, // MLSv16i8
|
|
1297U, // MLSv2i32
|
|
27665U, // MLSv2i32_indexed
|
|
1553U, // MLSv4i16
|
|
28945U, // MLSv4i16_indexed
|
|
529U, // MLSv4i32
|
|
27665U, // MLSv4i32_indexed
|
|
785U, // MLSv8i16
|
|
28945U, // MLSv8i16_indexed
|
|
1809U, // MLSv8i8
|
|
0U, // MOVID
|
|
0U, // MOVIv16b_ns
|
|
0U, // MOVIv2d_ns
|
|
4U, // MOVIv2i32
|
|
4U, // MOVIv2s_msl
|
|
4U, // MOVIv4i16
|
|
4U, // MOVIv4i32
|
|
4U, // MOVIv4s_msl
|
|
0U, // MOVIv8b_ns
|
|
4U, // MOVIv8i16
|
|
0U, // MOVKWi
|
|
0U, // MOVKXi
|
|
4U, // MOVNWi
|
|
4U, // MOVNXi
|
|
4U, // MOVZWi
|
|
4U, // MOVZXi
|
|
0U, // MOVaddr
|
|
0U, // MOVaddrBA
|
|
0U, // MOVaddrCP
|
|
0U, // MOVaddrEXT
|
|
0U, // MOVaddrJT
|
|
0U, // MOVaddrTLS
|
|
0U, // MOVi32imm
|
|
0U, // MOVi64imm
|
|
0U, // MRS
|
|
0U, // MSR
|
|
0U, // MSRpstate
|
|
18689U, // MSUBWrrr
|
|
18689U, // MSUBXrrr
|
|
1033U, // MULv16i8
|
|
1289U, // MULv2i32
|
|
35849U, // MULv2i32_indexed
|
|
1545U, // MULv4i16
|
|
37129U, // MULv4i16_indexed
|
|
521U, // MULv4i32
|
|
35849U, // MULv4i32_indexed
|
|
777U, // MULv8i16
|
|
37129U, // MULv8i16_indexed
|
|
1801U, // MULv8i8
|
|
4U, // MVNIv2i32
|
|
4U, // MVNIv2s_msl
|
|
4U, // MVNIv4i16
|
|
4U, // MVNIv4i32
|
|
4U, // MVNIv4s_msl
|
|
4U, // MVNIv8i16
|
|
0U, // NEGv16i8
|
|
0U, // NEGv1i64
|
|
0U, // NEGv2i32
|
|
0U, // NEGv2i64
|
|
0U, // NEGv4i16
|
|
0U, // NEGv4i32
|
|
0U, // NEGv8i16
|
|
0U, // NEGv8i8
|
|
0U, // NOTv16i8
|
|
0U, // NOTv8i8
|
|
0U, // ORNWrr
|
|
33U, // ORNWrs
|
|
0U, // ORNXrr
|
|
33U, // ORNXrs
|
|
1033U, // ORNv16i8
|
|
1801U, // ORNv8i8
|
|
49U, // ORRWri
|
|
0U, // ORRWrr
|
|
33U, // ORRWrs
|
|
57U, // ORRXri
|
|
0U, // ORRXrr
|
|
33U, // ORRXrs
|
|
1033U, // ORRv16i8
|
|
0U, // ORRv2i32
|
|
0U, // ORRv4i16
|
|
0U, // ORRv4i32
|
|
0U, // ORRv8i16
|
|
1801U, // ORRv8i8
|
|
1033U, // PMULLv16i8
|
|
0U, // PMULLv1i64
|
|
0U, // PMULLv2i64
|
|
1801U, // PMULLv8i8
|
|
1033U, // PMULv16i8
|
|
1801U, // PMULv8i8
|
|
0U, // PRFMl
|
|
108801U, // PRFMroW
|
|
116993U, // PRFMroX
|
|
97U, // PRFMui
|
|
3585U, // PRFUMi
|
|
265U, // RADDHNv2i64_v2i32
|
|
273U, // RADDHNv2i64_v4i32
|
|
521U, // RADDHNv4i32_v4i16
|
|
529U, // RADDHNv4i32_v8i16
|
|
785U, // RADDHNv8i16_v16i8
|
|
777U, // RADDHNv8i16_v8i8
|
|
0U, // RBITWr
|
|
0U, // RBITXr
|
|
0U, // RBITv16i8
|
|
0U, // RBITv8i8
|
|
0U, // RET
|
|
0U, // RET_ReallyLR
|
|
0U, // REV16Wr
|
|
0U, // REV16Xr
|
|
0U, // REV16v16i8
|
|
0U, // REV16v8i8
|
|
0U, // REV32Xr
|
|
0U, // REV32v16i8
|
|
0U, // REV32v4i16
|
|
0U, // REV32v8i16
|
|
0U, // REV32v8i8
|
|
0U, // REV64v16i8
|
|
0U, // REV64v2i32
|
|
0U, // REV64v4i16
|
|
0U, // REV64v4i32
|
|
0U, // REV64v8i16
|
|
0U, // REV64v8i8
|
|
0U, // REVWr
|
|
0U, // REVXr
|
|
1U, // RORVWr
|
|
1U, // RORVXr
|
|
65U, // RSHRNv16i8_shift
|
|
1U, // RSHRNv2i32_shift
|
|
1U, // RSHRNv4i16_shift
|
|
65U, // RSHRNv4i32_shift
|
|
65U, // RSHRNv8i16_shift
|
|
1U, // RSHRNv8i8_shift
|
|
265U, // RSUBHNv2i64_v2i32
|
|
273U, // RSUBHNv2i64_v4i32
|
|
521U, // RSUBHNv4i32_v4i16
|
|
529U, // RSUBHNv4i32_v8i16
|
|
785U, // RSUBHNv8i16_v16i8
|
|
777U, // RSUBHNv8i16_v8i8
|
|
1041U, // SABALv16i8_v8i16
|
|
1297U, // SABALv2i32_v2i64
|
|
1553U, // SABALv4i16_v4i32
|
|
529U, // SABALv4i32_v2i64
|
|
785U, // SABALv8i16_v4i32
|
|
1809U, // SABALv8i8_v8i16
|
|
1041U, // SABAv16i8
|
|
1297U, // SABAv2i32
|
|
1553U, // SABAv4i16
|
|
529U, // SABAv4i32
|
|
785U, // SABAv8i16
|
|
1809U, // SABAv8i8
|
|
1033U, // SABDLv16i8_v8i16
|
|
1289U, // SABDLv2i32_v2i64
|
|
1545U, // SABDLv4i16_v4i32
|
|
521U, // SABDLv4i32_v2i64
|
|
777U, // SABDLv8i16_v4i32
|
|
1801U, // SABDLv8i8_v8i16
|
|
1033U, // SABDv16i8
|
|
1289U, // SABDv2i32
|
|
1545U, // SABDv4i16
|
|
521U, // SABDv4i32
|
|
777U, // SABDv8i16
|
|
1801U, // SABDv8i8
|
|
0U, // SADALPv16i8_v8i16
|
|
0U, // SADALPv2i32_v1i64
|
|
0U, // SADALPv4i16_v2i32
|
|
0U, // SADALPv4i32_v2i64
|
|
0U, // SADALPv8i16_v4i32
|
|
0U, // SADALPv8i8_v4i16
|
|
0U, // SADDLPv16i8_v8i16
|
|
0U, // SADDLPv2i32_v1i64
|
|
0U, // SADDLPv4i16_v2i32
|
|
0U, // SADDLPv4i32_v2i64
|
|
0U, // SADDLPv8i16_v4i32
|
|
0U, // SADDLPv8i8_v4i16
|
|
0U, // SADDLVv16i8v
|
|
0U, // SADDLVv4i16v
|
|
0U, // SADDLVv4i32v
|
|
0U, // SADDLVv8i16v
|
|
0U, // SADDLVv8i8v
|
|
1033U, // SADDLv16i8_v8i16
|
|
1289U, // SADDLv2i32_v2i64
|
|
1545U, // SADDLv4i16_v4i32
|
|
521U, // SADDLv4i32_v2i64
|
|
777U, // SADDLv8i16_v4i32
|
|
1801U, // SADDLv8i8_v8i16
|
|
1033U, // SADDWv16i8_v8i16
|
|
1289U, // SADDWv2i32_v2i64
|
|
1545U, // SADDWv4i16_v4i32
|
|
521U, // SADDWv4i32_v2i64
|
|
777U, // SADDWv8i16_v4i32
|
|
1801U, // SADDWv8i8_v8i16
|
|
1U, // SBCSWr
|
|
1U, // SBCSXr
|
|
1U, // SBCWr
|
|
1U, // SBCXr
|
|
18689U, // SBFMWri
|
|
18689U, // SBFMXri
|
|
1U, // SCVTFSWDri
|
|
1U, // SCVTFSWSri
|
|
1U, // SCVTFSXDri
|
|
1U, // SCVTFSXSri
|
|
0U, // SCVTFUWDri
|
|
0U, // SCVTFUWSri
|
|
0U, // SCVTFUXDri
|
|
0U, // SCVTFUXSri
|
|
1U, // SCVTFd
|
|
1U, // SCVTFs
|
|
0U, // SCVTFv1i32
|
|
0U, // SCVTFv1i64
|
|
0U, // SCVTFv2f32
|
|
0U, // SCVTFv2f64
|
|
1U, // SCVTFv2i32_shift
|
|
1U, // SCVTFv2i64_shift
|
|
0U, // SCVTFv4f32
|
|
1U, // SCVTFv4i32_shift
|
|
1U, // SDIVWr
|
|
1U, // SDIVXr
|
|
1U, // SDIV_IntWr
|
|
1U, // SDIV_IntXr
|
|
529U, // SHA1Crrr
|
|
0U, // SHA1Hrr
|
|
529U, // SHA1Mrrr
|
|
529U, // SHA1Prrr
|
|
529U, // SHA1SU0rrr
|
|
0U, // SHA1SU1rr
|
|
529U, // SHA256H2rrr
|
|
529U, // SHA256Hrrr
|
|
0U, // SHA256SU0rr
|
|
529U, // SHA256SU1rrr
|
|
1033U, // SHADDv16i8
|
|
1289U, // SHADDv2i32
|
|
1545U, // SHADDv4i16
|
|
521U, // SHADDv4i32
|
|
777U, // SHADDv8i16
|
|
1801U, // SHADDv8i8
|
|
4U, // SHLLv16i8
|
|
4U, // SHLLv2i32
|
|
4U, // SHLLv4i16
|
|
4U, // SHLLv4i32
|
|
5U, // SHLLv8i16
|
|
5U, // SHLLv8i8
|
|
1U, // SHLd
|
|
1U, // SHLv16i8_shift
|
|
1U, // SHLv2i32_shift
|
|
1U, // SHLv2i64_shift
|
|
1U, // SHLv4i16_shift
|
|
1U, // SHLv4i32_shift
|
|
1U, // SHLv8i16_shift
|
|
1U, // SHLv8i8_shift
|
|
65U, // SHRNv16i8_shift
|
|
1U, // SHRNv2i32_shift
|
|
1U, // SHRNv4i16_shift
|
|
65U, // SHRNv4i32_shift
|
|
65U, // SHRNv8i16_shift
|
|
1U, // SHRNv8i8_shift
|
|
1033U, // SHSUBv16i8
|
|
1289U, // SHSUBv2i32
|
|
1545U, // SHSUBv4i16
|
|
521U, // SHSUBv4i32
|
|
777U, // SHSUBv8i16
|
|
1801U, // SHSUBv8i8
|
|
65U, // SLId
|
|
65U, // SLIv16i8_shift
|
|
65U, // SLIv2i32_shift
|
|
65U, // SLIv2i64_shift
|
|
65U, // SLIv4i16_shift
|
|
65U, // SLIv4i32_shift
|
|
65U, // SLIv8i16_shift
|
|
65U, // SLIv8i8_shift
|
|
18689U, // SMADDLrrr
|
|
1033U, // SMAXPv16i8
|
|
1289U, // SMAXPv2i32
|
|
1545U, // SMAXPv4i16
|
|
521U, // SMAXPv4i32
|
|
777U, // SMAXPv8i16
|
|
1801U, // SMAXPv8i8
|
|
0U, // SMAXVv16i8v
|
|
0U, // SMAXVv4i16v
|
|
0U, // SMAXVv4i32v
|
|
0U, // SMAXVv8i16v
|
|
0U, // SMAXVv8i8v
|
|
1033U, // SMAXv16i8
|
|
1289U, // SMAXv2i32
|
|
1545U, // SMAXv4i16
|
|
521U, // SMAXv4i32
|
|
777U, // SMAXv8i16
|
|
1801U, // SMAXv8i8
|
|
0U, // SMC
|
|
1033U, // SMINPv16i8
|
|
1289U, // SMINPv2i32
|
|
1545U, // SMINPv4i16
|
|
521U, // SMINPv4i32
|
|
777U, // SMINPv8i16
|
|
1801U, // SMINPv8i8
|
|
0U, // SMINVv16i8v
|
|
0U, // SMINVv4i16v
|
|
0U, // SMINVv4i32v
|
|
0U, // SMINVv8i16v
|
|
0U, // SMINVv8i8v
|
|
1033U, // SMINv16i8
|
|
1289U, // SMINv2i32
|
|
1545U, // SMINv4i16
|
|
521U, // SMINv4i32
|
|
777U, // SMINv8i16
|
|
1801U, // SMINv8i8
|
|
1041U, // SMLALv16i8_v8i16
|
|
27665U, // SMLALv2i32_indexed
|
|
1297U, // SMLALv2i32_v2i64
|
|
28945U, // SMLALv4i16_indexed
|
|
1553U, // SMLALv4i16_v4i32
|
|
27665U, // SMLALv4i32_indexed
|
|
529U, // SMLALv4i32_v2i64
|
|
28945U, // SMLALv8i16_indexed
|
|
785U, // SMLALv8i16_v4i32
|
|
1809U, // SMLALv8i8_v8i16
|
|
1041U, // SMLSLv16i8_v8i16
|
|
27665U, // SMLSLv2i32_indexed
|
|
1297U, // SMLSLv2i32_v2i64
|
|
28945U, // SMLSLv4i16_indexed
|
|
1553U, // SMLSLv4i16_v4i32
|
|
27665U, // SMLSLv4i32_indexed
|
|
529U, // SMLSLv4i32_v2i64
|
|
28945U, // SMLSLv8i16_indexed
|
|
785U, // SMLSLv8i16_v4i32
|
|
1809U, // SMLSLv8i8_v8i16
|
|
75U, // SMOVvi16to32
|
|
75U, // SMOVvi16to64
|
|
75U, // SMOVvi32to64
|
|
75U, // SMOVvi8to32
|
|
75U, // SMOVvi8to64
|
|
18689U, // SMSUBLrrr
|
|
1U, // SMULHrr
|
|
1033U, // SMULLv16i8_v8i16
|
|
35849U, // SMULLv2i32_indexed
|
|
1289U, // SMULLv2i32_v2i64
|
|
37129U, // SMULLv4i16_indexed
|
|
1545U, // SMULLv4i16_v4i32
|
|
35849U, // SMULLv4i32_indexed
|
|
521U, // SMULLv4i32_v2i64
|
|
37129U, // SMULLv8i16_indexed
|
|
777U, // SMULLv8i16_v4i32
|
|
1801U, // SMULLv8i8_v8i16
|
|
0U, // SQABSv16i8
|
|
0U, // SQABSv1i16
|
|
0U, // SQABSv1i32
|
|
0U, // SQABSv1i64
|
|
0U, // SQABSv1i8
|
|
0U, // SQABSv2i32
|
|
0U, // SQABSv2i64
|
|
0U, // SQABSv4i16
|
|
0U, // SQABSv4i32
|
|
0U, // SQABSv8i16
|
|
0U, // SQABSv8i8
|
|
1033U, // SQADDv16i8
|
|
1U, // SQADDv1i16
|
|
1U, // SQADDv1i32
|
|
1U, // SQADDv1i64
|
|
1U, // SQADDv1i8
|
|
1289U, // SQADDv2i32
|
|
265U, // SQADDv2i64
|
|
1545U, // SQADDv4i16
|
|
521U, // SQADDv4i32
|
|
777U, // SQADDv8i16
|
|
1801U, // SQADDv8i8
|
|
65U, // SQDMLALi16
|
|
65U, // SQDMLALi32
|
|
28945U, // SQDMLALv1i32_indexed
|
|
27665U, // SQDMLALv1i64_indexed
|
|
27665U, // SQDMLALv2i32_indexed
|
|
1297U, // SQDMLALv2i32_v2i64
|
|
28945U, // SQDMLALv4i16_indexed
|
|
1553U, // SQDMLALv4i16_v4i32
|
|
27665U, // SQDMLALv4i32_indexed
|
|
529U, // SQDMLALv4i32_v2i64
|
|
28945U, // SQDMLALv8i16_indexed
|
|
785U, // SQDMLALv8i16_v4i32
|
|
65U, // SQDMLSLi16
|
|
65U, // SQDMLSLi32
|
|
28945U, // SQDMLSLv1i32_indexed
|
|
27665U, // SQDMLSLv1i64_indexed
|
|
27665U, // SQDMLSLv2i32_indexed
|
|
1297U, // SQDMLSLv2i32_v2i64
|
|
28945U, // SQDMLSLv4i16_indexed
|
|
1553U, // SQDMLSLv4i16_v4i32
|
|
27665U, // SQDMLSLv4i32_indexed
|
|
529U, // SQDMLSLv4i32_v2i64
|
|
28945U, // SQDMLSLv8i16_indexed
|
|
785U, // SQDMLSLv8i16_v4i32
|
|
1U, // SQDMULHv1i16
|
|
37129U, // SQDMULHv1i16_indexed
|
|
1U, // SQDMULHv1i32
|
|
35849U, // SQDMULHv1i32_indexed
|
|
1289U, // SQDMULHv2i32
|
|
35849U, // SQDMULHv2i32_indexed
|
|
1545U, // SQDMULHv4i16
|
|
37129U, // SQDMULHv4i16_indexed
|
|
521U, // SQDMULHv4i32
|
|
35849U, // SQDMULHv4i32_indexed
|
|
777U, // SQDMULHv8i16
|
|
37129U, // SQDMULHv8i16_indexed
|
|
1U, // SQDMULLi16
|
|
1U, // SQDMULLi32
|
|
37129U, // SQDMULLv1i32_indexed
|
|
35849U, // SQDMULLv1i64_indexed
|
|
35849U, // SQDMULLv2i32_indexed
|
|
1289U, // SQDMULLv2i32_v2i64
|
|
37129U, // SQDMULLv4i16_indexed
|
|
1545U, // SQDMULLv4i16_v4i32
|
|
35849U, // SQDMULLv4i32_indexed
|
|
521U, // SQDMULLv4i32_v2i64
|
|
37129U, // SQDMULLv8i16_indexed
|
|
777U, // SQDMULLv8i16_v4i32
|
|
0U, // SQNEGv16i8
|
|
0U, // SQNEGv1i16
|
|
0U, // SQNEGv1i32
|
|
0U, // SQNEGv1i64
|
|
0U, // SQNEGv1i8
|
|
0U, // SQNEGv2i32
|
|
0U, // SQNEGv2i64
|
|
0U, // SQNEGv4i16
|
|
0U, // SQNEGv4i32
|
|
0U, // SQNEGv8i16
|
|
0U, // SQNEGv8i8
|
|
1U, // SQRDMULHv1i16
|
|
37129U, // SQRDMULHv1i16_indexed
|
|
1U, // SQRDMULHv1i32
|
|
35849U, // SQRDMULHv1i32_indexed
|
|
1289U, // SQRDMULHv2i32
|
|
35849U, // SQRDMULHv2i32_indexed
|
|
1545U, // SQRDMULHv4i16
|
|
37129U, // SQRDMULHv4i16_indexed
|
|
521U, // SQRDMULHv4i32
|
|
35849U, // SQRDMULHv4i32_indexed
|
|
777U, // SQRDMULHv8i16
|
|
37129U, // SQRDMULHv8i16_indexed
|
|
1033U, // SQRSHLv16i8
|
|
1U, // SQRSHLv1i16
|
|
1U, // SQRSHLv1i32
|
|
1U, // SQRSHLv1i64
|
|
1U, // SQRSHLv1i8
|
|
1289U, // SQRSHLv2i32
|
|
265U, // SQRSHLv2i64
|
|
1545U, // SQRSHLv4i16
|
|
521U, // SQRSHLv4i32
|
|
777U, // SQRSHLv8i16
|
|
1801U, // SQRSHLv8i8
|
|
1U, // SQRSHRNb
|
|
1U, // SQRSHRNh
|
|
1U, // SQRSHRNs
|
|
65U, // SQRSHRNv16i8_shift
|
|
1U, // SQRSHRNv2i32_shift
|
|
1U, // SQRSHRNv4i16_shift
|
|
65U, // SQRSHRNv4i32_shift
|
|
65U, // SQRSHRNv8i16_shift
|
|
1U, // SQRSHRNv8i8_shift
|
|
1U, // SQRSHRUNb
|
|
1U, // SQRSHRUNh
|
|
1U, // SQRSHRUNs
|
|
65U, // SQRSHRUNv16i8_shift
|
|
1U, // SQRSHRUNv2i32_shift
|
|
1U, // SQRSHRUNv4i16_shift
|
|
65U, // SQRSHRUNv4i32_shift
|
|
65U, // SQRSHRUNv8i16_shift
|
|
1U, // SQRSHRUNv8i8_shift
|
|
1U, // SQSHLUb
|
|
1U, // SQSHLUd
|
|
1U, // SQSHLUh
|
|
1U, // SQSHLUs
|
|
1U, // SQSHLUv16i8_shift
|
|
1U, // SQSHLUv2i32_shift
|
|
1U, // SQSHLUv2i64_shift
|
|
1U, // SQSHLUv4i16_shift
|
|
1U, // SQSHLUv4i32_shift
|
|
1U, // SQSHLUv8i16_shift
|
|
1U, // SQSHLUv8i8_shift
|
|
1U, // SQSHLb
|
|
1U, // SQSHLd
|
|
1U, // SQSHLh
|
|
1U, // SQSHLs
|
|
1033U, // SQSHLv16i8
|
|
1U, // SQSHLv16i8_shift
|
|
1U, // SQSHLv1i16
|
|
1U, // SQSHLv1i32
|
|
1U, // SQSHLv1i64
|
|
1U, // SQSHLv1i8
|
|
1289U, // SQSHLv2i32
|
|
1U, // SQSHLv2i32_shift
|
|
265U, // SQSHLv2i64
|
|
1U, // SQSHLv2i64_shift
|
|
1545U, // SQSHLv4i16
|
|
1U, // SQSHLv4i16_shift
|
|
521U, // SQSHLv4i32
|
|
1U, // SQSHLv4i32_shift
|
|
777U, // SQSHLv8i16
|
|
1U, // SQSHLv8i16_shift
|
|
1801U, // SQSHLv8i8
|
|
1U, // SQSHLv8i8_shift
|
|
1U, // SQSHRNb
|
|
1U, // SQSHRNh
|
|
1U, // SQSHRNs
|
|
65U, // SQSHRNv16i8_shift
|
|
1U, // SQSHRNv2i32_shift
|
|
1U, // SQSHRNv4i16_shift
|
|
65U, // SQSHRNv4i32_shift
|
|
65U, // SQSHRNv8i16_shift
|
|
1U, // SQSHRNv8i8_shift
|
|
1U, // SQSHRUNb
|
|
1U, // SQSHRUNh
|
|
1U, // SQSHRUNs
|
|
65U, // SQSHRUNv16i8_shift
|
|
1U, // SQSHRUNv2i32_shift
|
|
1U, // SQSHRUNv4i16_shift
|
|
65U, // SQSHRUNv4i32_shift
|
|
65U, // SQSHRUNv8i16_shift
|
|
1U, // SQSHRUNv8i8_shift
|
|
1033U, // SQSUBv16i8
|
|
1U, // SQSUBv1i16
|
|
1U, // SQSUBv1i32
|
|
1U, // SQSUBv1i64
|
|
1U, // SQSUBv1i8
|
|
1289U, // SQSUBv2i32
|
|
265U, // SQSUBv2i64
|
|
1545U, // SQSUBv4i16
|
|
521U, // SQSUBv4i32
|
|
777U, // SQSUBv8i16
|
|
1801U, // SQSUBv8i8
|
|
0U, // SQXTNv16i8
|
|
0U, // SQXTNv1i16
|
|
0U, // SQXTNv1i32
|
|
0U, // SQXTNv1i8
|
|
0U, // SQXTNv2i32
|
|
0U, // SQXTNv4i16
|
|
0U, // SQXTNv4i32
|
|
0U, // SQXTNv8i16
|
|
0U, // SQXTNv8i8
|
|
0U, // SQXTUNv16i8
|
|
0U, // SQXTUNv1i16
|
|
0U, // SQXTUNv1i32
|
|
0U, // SQXTUNv1i8
|
|
0U, // SQXTUNv2i32
|
|
0U, // SQXTUNv4i16
|
|
0U, // SQXTUNv4i32
|
|
0U, // SQXTUNv8i16
|
|
0U, // SQXTUNv8i8
|
|
1033U, // SRHADDv16i8
|
|
1289U, // SRHADDv2i32
|
|
1545U, // SRHADDv4i16
|
|
521U, // SRHADDv4i32
|
|
777U, // SRHADDv8i16
|
|
1801U, // SRHADDv8i8
|
|
65U, // SRId
|
|
65U, // SRIv16i8_shift
|
|
65U, // SRIv2i32_shift
|
|
65U, // SRIv2i64_shift
|
|
65U, // SRIv4i16_shift
|
|
65U, // SRIv4i32_shift
|
|
65U, // SRIv8i16_shift
|
|
65U, // SRIv8i8_shift
|
|
1033U, // SRSHLv16i8
|
|
1U, // SRSHLv1i64
|
|
1289U, // SRSHLv2i32
|
|
265U, // SRSHLv2i64
|
|
1545U, // SRSHLv4i16
|
|
521U, // SRSHLv4i32
|
|
777U, // SRSHLv8i16
|
|
1801U, // SRSHLv8i8
|
|
1U, // SRSHRd
|
|
1U, // SRSHRv16i8_shift
|
|
1U, // SRSHRv2i32_shift
|
|
1U, // SRSHRv2i64_shift
|
|
1U, // SRSHRv4i16_shift
|
|
1U, // SRSHRv4i32_shift
|
|
1U, // SRSHRv8i16_shift
|
|
1U, // SRSHRv8i8_shift
|
|
65U, // SRSRAd
|
|
65U, // SRSRAv16i8_shift
|
|
65U, // SRSRAv2i32_shift
|
|
65U, // SRSRAv2i64_shift
|
|
65U, // SRSRAv4i16_shift
|
|
65U, // SRSRAv4i32_shift
|
|
65U, // SRSRAv8i16_shift
|
|
65U, // SRSRAv8i8_shift
|
|
1U, // SSHLLv16i8_shift
|
|
1U, // SSHLLv2i32_shift
|
|
1U, // SSHLLv4i16_shift
|
|
1U, // SSHLLv4i32_shift
|
|
1U, // SSHLLv8i16_shift
|
|
1U, // SSHLLv8i8_shift
|
|
1033U, // SSHLv16i8
|
|
1U, // SSHLv1i64
|
|
1289U, // SSHLv2i32
|
|
265U, // SSHLv2i64
|
|
1545U, // SSHLv4i16
|
|
521U, // SSHLv4i32
|
|
777U, // SSHLv8i16
|
|
1801U, // SSHLv8i8
|
|
1U, // SSHRd
|
|
1U, // SSHRv16i8_shift
|
|
1U, // SSHRv2i32_shift
|
|
1U, // SSHRv2i64_shift
|
|
1U, // SSHRv4i16_shift
|
|
1U, // SSHRv4i32_shift
|
|
1U, // SSHRv8i16_shift
|
|
1U, // SSHRv8i8_shift
|
|
65U, // SSRAd
|
|
65U, // SSRAv16i8_shift
|
|
65U, // SSRAv2i32_shift
|
|
65U, // SSRAv2i64_shift
|
|
65U, // SSRAv4i16_shift
|
|
65U, // SSRAv4i32_shift
|
|
65U, // SSRAv8i16_shift
|
|
65U, // SSRAv8i8_shift
|
|
1033U, // SSUBLv16i8_v8i16
|
|
1289U, // SSUBLv2i32_v2i64
|
|
1545U, // SSUBLv4i16_v4i32
|
|
521U, // SSUBLv4i32_v2i64
|
|
777U, // SSUBLv8i16_v4i32
|
|
1801U, // SSUBLv8i8_v8i16
|
|
1033U, // SSUBWv16i8_v8i16
|
|
1289U, // SSUBWv2i32_v2i64
|
|
1545U, // SSUBWv4i16_v4i32
|
|
521U, // SSUBWv4i32_v2i64
|
|
777U, // SSUBWv8i16_v4i32
|
|
1801U, // SSUBWv8i8_v8i16
|
|
0U, // ST1Fourv16b
|
|
0U, // ST1Fourv16b_POST
|
|
0U, // ST1Fourv1d
|
|
0U, // ST1Fourv1d_POST
|
|
0U, // ST1Fourv2d
|
|
0U, // ST1Fourv2d_POST
|
|
0U, // ST1Fourv2s
|
|
0U, // ST1Fourv2s_POST
|
|
0U, // ST1Fourv4h
|
|
0U, // ST1Fourv4h_POST
|
|
0U, // ST1Fourv4s
|
|
0U, // ST1Fourv4s_POST
|
|
0U, // ST1Fourv8b
|
|
0U, // ST1Fourv8b_POST
|
|
0U, // ST1Fourv8h
|
|
0U, // ST1Fourv8h_POST
|
|
0U, // ST1Onev16b
|
|
0U, // ST1Onev16b_POST
|
|
0U, // ST1Onev1d
|
|
0U, // ST1Onev1d_POST
|
|
0U, // ST1Onev2d
|
|
0U, // ST1Onev2d_POST
|
|
0U, // ST1Onev2s
|
|
0U, // ST1Onev2s_POST
|
|
0U, // ST1Onev4h
|
|
0U, // ST1Onev4h_POST
|
|
0U, // ST1Onev4s
|
|
0U, // ST1Onev4s_POST
|
|
0U, // ST1Onev8b
|
|
0U, // ST1Onev8b_POST
|
|
0U, // ST1Onev8h
|
|
0U, // ST1Onev8h_POST
|
|
0U, // ST1Threev16b
|
|
0U, // ST1Threev16b_POST
|
|
0U, // ST1Threev1d
|
|
0U, // ST1Threev1d_POST
|
|
0U, // ST1Threev2d
|
|
0U, // ST1Threev2d_POST
|
|
0U, // ST1Threev2s
|
|
0U, // ST1Threev2s_POST
|
|
0U, // ST1Threev4h
|
|
0U, // ST1Threev4h_POST
|
|
0U, // ST1Threev4s
|
|
0U, // ST1Threev4s_POST
|
|
0U, // ST1Threev8b
|
|
0U, // ST1Threev8b_POST
|
|
0U, // ST1Threev8h
|
|
0U, // ST1Threev8h_POST
|
|
0U, // ST1Twov16b
|
|
0U, // ST1Twov16b_POST
|
|
0U, // ST1Twov1d
|
|
0U, // ST1Twov1d_POST
|
|
0U, // ST1Twov2d
|
|
0U, // ST1Twov2d_POST
|
|
0U, // ST1Twov2s
|
|
0U, // ST1Twov2s_POST
|
|
0U, // ST1Twov4h
|
|
0U, // ST1Twov4h_POST
|
|
0U, // ST1Twov4s
|
|
0U, // ST1Twov4s_POST
|
|
0U, // ST1Twov8b
|
|
0U, // ST1Twov8b_POST
|
|
0U, // ST1Twov8h
|
|
0U, // ST1Twov8h_POST
|
|
0U, // ST1i16
|
|
0U, // ST1i16_POST
|
|
0U, // ST1i32
|
|
0U, // ST1i32_POST
|
|
0U, // ST1i64
|
|
0U, // ST1i64_POST
|
|
0U, // ST1i8
|
|
0U, // ST1i8_POST
|
|
0U, // ST2Twov16b
|
|
0U, // ST2Twov16b_POST
|
|
0U, // ST2Twov2d
|
|
0U, // ST2Twov2d_POST
|
|
0U, // ST2Twov2s
|
|
0U, // ST2Twov2s_POST
|
|
0U, // ST2Twov4h
|
|
0U, // ST2Twov4h_POST
|
|
0U, // ST2Twov4s
|
|
0U, // ST2Twov4s_POST
|
|
0U, // ST2Twov8b
|
|
0U, // ST2Twov8b_POST
|
|
0U, // ST2Twov8h
|
|
0U, // ST2Twov8h_POST
|
|
0U, // ST2i16
|
|
0U, // ST2i16_POST
|
|
0U, // ST2i32
|
|
0U, // ST2i32_POST
|
|
0U, // ST2i64
|
|
0U, // ST2i64_POST
|
|
0U, // ST2i8
|
|
0U, // ST2i8_POST
|
|
0U, // ST3Threev16b
|
|
0U, // ST3Threev16b_POST
|
|
0U, // ST3Threev2d
|
|
0U, // ST3Threev2d_POST
|
|
0U, // ST3Threev2s
|
|
0U, // ST3Threev2s_POST
|
|
0U, // ST3Threev4h
|
|
0U, // ST3Threev4h_POST
|
|
0U, // ST3Threev4s
|
|
0U, // ST3Threev4s_POST
|
|
0U, // ST3Threev8b
|
|
0U, // ST3Threev8b_POST
|
|
0U, // ST3Threev8h
|
|
0U, // ST3Threev8h_POST
|
|
0U, // ST3i16
|
|
0U, // ST3i16_POST
|
|
0U, // ST3i32
|
|
0U, // ST3i32_POST
|
|
0U, // ST3i64
|
|
0U, // ST3i64_POST
|
|
0U, // ST3i8
|
|
0U, // ST3i8_POST
|
|
0U, // ST4Fourv16b
|
|
0U, // ST4Fourv16b_POST
|
|
0U, // ST4Fourv2d
|
|
0U, // ST4Fourv2d_POST
|
|
0U, // ST4Fourv2s
|
|
0U, // ST4Fourv2s_POST
|
|
0U, // ST4Fourv4h
|
|
0U, // ST4Fourv4h_POST
|
|
0U, // ST4Fourv4s
|
|
0U, // ST4Fourv4s_POST
|
|
0U, // ST4Fourv8b
|
|
0U, // ST4Fourv8b_POST
|
|
0U, // ST4Fourv8h
|
|
0U, // ST4Fourv8h_POST
|
|
0U, // ST4i16
|
|
0U, // ST4i16_POST
|
|
0U, // ST4i32
|
|
0U, // ST4i32_POST
|
|
0U, // ST4i64
|
|
0U, // ST4i64_POST
|
|
0U, // ST4i8
|
|
0U, // ST4i8_POST
|
|
4U, // STLRB
|
|
4U, // STLRH
|
|
4U, // STLRW
|
|
4U, // STLRX
|
|
4609U, // STLXPW
|
|
4609U, // STLXPX
|
|
3588U, // STLXRB
|
|
3588U, // STLXRH
|
|
3588U, // STLXRW
|
|
3588U, // STLXRX
|
|
43268U, // STNPDi
|
|
51460U, // STNPQi
|
|
59652U, // STNPSi
|
|
59652U, // STNPWi
|
|
43268U, // STNPXi
|
|
43268U, // STPDi
|
|
69444U, // STPDpost
|
|
330052U, // STPDpre
|
|
51460U, // STPQi
|
|
77636U, // STPQpost
|
|
338244U, // STPQpre
|
|
59652U, // STPSi
|
|
85828U, // STPSpost
|
|
346436U, // STPSpre
|
|
59652U, // STPWi
|
|
85828U, // STPWpost
|
|
346436U, // STPWpre
|
|
43268U, // STPXi
|
|
69444U, // STPXpost
|
|
330052U, // STPXpre
|
|
4U, // STRBBpost
|
|
4161U, // STRBBpre
|
|
92417U, // STRBBroW
|
|
100609U, // STRBBroX
|
|
89U, // STRBBui
|
|
4U, // STRBpost
|
|
4161U, // STRBpre
|
|
92417U, // STRBroW
|
|
100609U, // STRBroX
|
|
89U, // STRBui
|
|
4U, // STRDpost
|
|
4161U, // STRDpre
|
|
108801U, // STRDroW
|
|
116993U, // STRDroX
|
|
97U, // STRDui
|
|
4U, // STRHHpost
|
|
4161U, // STRHHpre
|
|
125185U, // STRHHroW
|
|
133377U, // STRHHroX
|
|
105U, // STRHHui
|
|
4U, // STRHpost
|
|
4161U, // STRHpre
|
|
125185U, // STRHroW
|
|
133377U, // STRHroX
|
|
105U, // STRHui
|
|
4U, // STRQpost
|
|
4161U, // STRQpre
|
|
141569U, // STRQroW
|
|
149761U, // STRQroX
|
|
113U, // STRQui
|
|
4U, // STRSpost
|
|
4161U, // STRSpre
|
|
157953U, // STRSroW
|
|
166145U, // STRSroX
|
|
121U, // STRSui
|
|
4U, // STRWpost
|
|
4161U, // STRWpre
|
|
157953U, // STRWroW
|
|
166145U, // STRWroX
|
|
121U, // STRWui
|
|
4U, // STRXpost
|
|
4161U, // STRXpre
|
|
108801U, // STRXroW
|
|
116993U, // STRXroX
|
|
97U, // STRXui
|
|
3585U, // STTRBi
|
|
3585U, // STTRHi
|
|
3585U, // STTRWi
|
|
3585U, // STTRXi
|
|
3585U, // STURBBi
|
|
3585U, // STURBi
|
|
3585U, // STURDi
|
|
3585U, // STURHHi
|
|
3585U, // STURHi
|
|
3585U, // STURQi
|
|
3585U, // STURSi
|
|
3585U, // STURWi
|
|
3585U, // STURXi
|
|
4609U, // STXPW
|
|
4609U, // STXPX
|
|
3588U, // STXRB
|
|
3588U, // STXRH
|
|
3588U, // STXRW
|
|
3588U, // STXRX
|
|
265U, // SUBHNv2i64_v2i32
|
|
273U, // SUBHNv2i64_v4i32
|
|
521U, // SUBHNv4i32_v4i16
|
|
529U, // SUBHNv4i32_v8i16
|
|
785U, // SUBHNv8i16_v16i8
|
|
777U, // SUBHNv8i16_v8i8
|
|
25U, // SUBSWri
|
|
0U, // SUBSWrr
|
|
33U, // SUBSWrs
|
|
41U, // SUBSWrx
|
|
25U, // SUBSXri
|
|
0U, // SUBSXrr
|
|
33U, // SUBSXrs
|
|
41U, // SUBSXrx
|
|
2049U, // SUBSXrx64
|
|
25U, // SUBWri
|
|
0U, // SUBWrr
|
|
33U, // SUBWrs
|
|
41U, // SUBWrx
|
|
25U, // SUBXri
|
|
0U, // SUBXrr
|
|
33U, // SUBXrs
|
|
41U, // SUBXrx
|
|
2049U, // SUBXrx64
|
|
1033U, // SUBv16i8
|
|
1U, // SUBv1i64
|
|
1289U, // SUBv2i32
|
|
265U, // SUBv2i64
|
|
1545U, // SUBv4i16
|
|
521U, // SUBv4i32
|
|
777U, // SUBv8i16
|
|
1801U, // SUBv8i8
|
|
0U, // SUQADDv16i8
|
|
0U, // SUQADDv1i16
|
|
0U, // SUQADDv1i32
|
|
0U, // SUQADDv1i64
|
|
0U, // SUQADDv1i8
|
|
0U, // SUQADDv2i32
|
|
0U, // SUQADDv2i64
|
|
0U, // SUQADDv4i16
|
|
0U, // SUQADDv4i32
|
|
0U, // SUQADDv8i16
|
|
0U, // SUQADDv8i8
|
|
0U, // SVC
|
|
129U, // SYSLxt
|
|
0U, // SYSxt
|
|
0U, // TBLv16i8Four
|
|
0U, // TBLv16i8One
|
|
0U, // TBLv16i8Three
|
|
0U, // TBLv16i8Two
|
|
0U, // TBLv8i8Four
|
|
0U, // TBLv8i8One
|
|
0U, // TBLv8i8Three
|
|
0U, // TBLv8i8Two
|
|
137U, // TBNZW
|
|
137U, // TBNZX
|
|
0U, // TBXv16i8Four
|
|
0U, // TBXv16i8One
|
|
0U, // TBXv16i8Three
|
|
0U, // TBXv16i8Two
|
|
0U, // TBXv8i8Four
|
|
0U, // TBXv8i8One
|
|
0U, // TBXv8i8Three
|
|
0U, // TBXv8i8Two
|
|
137U, // TBZW
|
|
137U, // TBZX
|
|
0U, // TCRETURNdi
|
|
0U, // TCRETURNri
|
|
0U, // TLSDESCCALL
|
|
0U, // TLSDESC_BLR
|
|
1033U, // TRN1v16i8
|
|
1289U, // TRN1v2i32
|
|
265U, // TRN1v2i64
|
|
1545U, // TRN1v4i16
|
|
521U, // TRN1v4i32
|
|
777U, // TRN1v8i16
|
|
1801U, // TRN1v8i8
|
|
1033U, // TRN2v16i8
|
|
1289U, // TRN2v2i32
|
|
265U, // TRN2v2i64
|
|
1545U, // TRN2v4i16
|
|
521U, // TRN2v4i32
|
|
777U, // TRN2v8i16
|
|
1801U, // TRN2v8i8
|
|
1041U, // UABALv16i8_v8i16
|
|
1297U, // UABALv2i32_v2i64
|
|
1553U, // UABALv4i16_v4i32
|
|
529U, // UABALv4i32_v2i64
|
|
785U, // UABALv8i16_v4i32
|
|
1809U, // UABALv8i8_v8i16
|
|
1041U, // UABAv16i8
|
|
1297U, // UABAv2i32
|
|
1553U, // UABAv4i16
|
|
529U, // UABAv4i32
|
|
785U, // UABAv8i16
|
|
1809U, // UABAv8i8
|
|
1033U, // UABDLv16i8_v8i16
|
|
1289U, // UABDLv2i32_v2i64
|
|
1545U, // UABDLv4i16_v4i32
|
|
521U, // UABDLv4i32_v2i64
|
|
777U, // UABDLv8i16_v4i32
|
|
1801U, // UABDLv8i8_v8i16
|
|
1033U, // UABDv16i8
|
|
1289U, // UABDv2i32
|
|
1545U, // UABDv4i16
|
|
521U, // UABDv4i32
|
|
777U, // UABDv8i16
|
|
1801U, // UABDv8i8
|
|
0U, // UADALPv16i8_v8i16
|
|
0U, // UADALPv2i32_v1i64
|
|
0U, // UADALPv4i16_v2i32
|
|
0U, // UADALPv4i32_v2i64
|
|
0U, // UADALPv8i16_v4i32
|
|
0U, // UADALPv8i8_v4i16
|
|
0U, // UADDLPv16i8_v8i16
|
|
0U, // UADDLPv2i32_v1i64
|
|
0U, // UADDLPv4i16_v2i32
|
|
0U, // UADDLPv4i32_v2i64
|
|
0U, // UADDLPv8i16_v4i32
|
|
0U, // UADDLPv8i8_v4i16
|
|
0U, // UADDLVv16i8v
|
|
0U, // UADDLVv4i16v
|
|
0U, // UADDLVv4i32v
|
|
0U, // UADDLVv8i16v
|
|
0U, // UADDLVv8i8v
|
|
1033U, // UADDLv16i8_v8i16
|
|
1289U, // UADDLv2i32_v2i64
|
|
1545U, // UADDLv4i16_v4i32
|
|
521U, // UADDLv4i32_v2i64
|
|
777U, // UADDLv8i16_v4i32
|
|
1801U, // UADDLv8i8_v8i16
|
|
1033U, // UADDWv16i8_v8i16
|
|
1289U, // UADDWv2i32_v2i64
|
|
1545U, // UADDWv4i16_v4i32
|
|
521U, // UADDWv4i32_v2i64
|
|
777U, // UADDWv8i16_v4i32
|
|
1801U, // UADDWv8i8_v8i16
|
|
18689U, // UBFMWri
|
|
18689U, // UBFMXri
|
|
1U, // UCVTFSWDri
|
|
1U, // UCVTFSWSri
|
|
1U, // UCVTFSXDri
|
|
1U, // UCVTFSXSri
|
|
0U, // UCVTFUWDri
|
|
0U, // UCVTFUWSri
|
|
0U, // UCVTFUXDri
|
|
0U, // UCVTFUXSri
|
|
1U, // UCVTFd
|
|
1U, // UCVTFs
|
|
0U, // UCVTFv1i32
|
|
0U, // UCVTFv1i64
|
|
0U, // UCVTFv2f32
|
|
0U, // UCVTFv2f64
|
|
1U, // UCVTFv2i32_shift
|
|
1U, // UCVTFv2i64_shift
|
|
0U, // UCVTFv4f32
|
|
1U, // UCVTFv4i32_shift
|
|
1U, // UDIVWr
|
|
1U, // UDIVXr
|
|
1U, // UDIV_IntWr
|
|
1U, // UDIV_IntXr
|
|
1033U, // UHADDv16i8
|
|
1289U, // UHADDv2i32
|
|
1545U, // UHADDv4i16
|
|
521U, // UHADDv4i32
|
|
777U, // UHADDv8i16
|
|
1801U, // UHADDv8i8
|
|
1033U, // UHSUBv16i8
|
|
1289U, // UHSUBv2i32
|
|
1545U, // UHSUBv4i16
|
|
521U, // UHSUBv4i32
|
|
777U, // UHSUBv8i16
|
|
1801U, // UHSUBv8i8
|
|
18689U, // UMADDLrrr
|
|
1033U, // UMAXPv16i8
|
|
1289U, // UMAXPv2i32
|
|
1545U, // UMAXPv4i16
|
|
521U, // UMAXPv4i32
|
|
777U, // UMAXPv8i16
|
|
1801U, // UMAXPv8i8
|
|
0U, // UMAXVv16i8v
|
|
0U, // UMAXVv4i16v
|
|
0U, // UMAXVv4i32v
|
|
0U, // UMAXVv8i16v
|
|
0U, // UMAXVv8i8v
|
|
1033U, // UMAXv16i8
|
|
1289U, // UMAXv2i32
|
|
1545U, // UMAXv4i16
|
|
521U, // UMAXv4i32
|
|
777U, // UMAXv8i16
|
|
1801U, // UMAXv8i8
|
|
1033U, // UMINPv16i8
|
|
1289U, // UMINPv2i32
|
|
1545U, // UMINPv4i16
|
|
521U, // UMINPv4i32
|
|
777U, // UMINPv8i16
|
|
1801U, // UMINPv8i8
|
|
0U, // UMINVv16i8v
|
|
0U, // UMINVv4i16v
|
|
0U, // UMINVv4i32v
|
|
0U, // UMINVv8i16v
|
|
0U, // UMINVv8i8v
|
|
1033U, // UMINv16i8
|
|
1289U, // UMINv2i32
|
|
1545U, // UMINv4i16
|
|
521U, // UMINv4i32
|
|
777U, // UMINv8i16
|
|
1801U, // UMINv8i8
|
|
1041U, // UMLALv16i8_v8i16
|
|
27665U, // UMLALv2i32_indexed
|
|
1297U, // UMLALv2i32_v2i64
|
|
28945U, // UMLALv4i16_indexed
|
|
1553U, // UMLALv4i16_v4i32
|
|
27665U, // UMLALv4i32_indexed
|
|
529U, // UMLALv4i32_v2i64
|
|
28945U, // UMLALv8i16_indexed
|
|
785U, // UMLALv8i16_v4i32
|
|
1809U, // UMLALv8i8_v8i16
|
|
1041U, // UMLSLv16i8_v8i16
|
|
27665U, // UMLSLv2i32_indexed
|
|
1297U, // UMLSLv2i32_v2i64
|
|
28945U, // UMLSLv4i16_indexed
|
|
1553U, // UMLSLv4i16_v4i32
|
|
27665U, // UMLSLv4i32_indexed
|
|
529U, // UMLSLv4i32_v2i64
|
|
28945U, // UMLSLv8i16_indexed
|
|
785U, // UMLSLv8i16_v4i32
|
|
1809U, // UMLSLv8i8_v8i16
|
|
75U, // UMOVvi16
|
|
75U, // UMOVvi32
|
|
75U, // UMOVvi64
|
|
75U, // UMOVvi8
|
|
18689U, // UMSUBLrrr
|
|
1U, // UMULHrr
|
|
1033U, // UMULLv16i8_v8i16
|
|
35849U, // UMULLv2i32_indexed
|
|
1289U, // UMULLv2i32_v2i64
|
|
37129U, // UMULLv4i16_indexed
|
|
1545U, // UMULLv4i16_v4i32
|
|
35849U, // UMULLv4i32_indexed
|
|
521U, // UMULLv4i32_v2i64
|
|
37129U, // UMULLv8i16_indexed
|
|
777U, // UMULLv8i16_v4i32
|
|
1801U, // UMULLv8i8_v8i16
|
|
1033U, // UQADDv16i8
|
|
1U, // UQADDv1i16
|
|
1U, // UQADDv1i32
|
|
1U, // UQADDv1i64
|
|
1U, // UQADDv1i8
|
|
1289U, // UQADDv2i32
|
|
265U, // UQADDv2i64
|
|
1545U, // UQADDv4i16
|
|
521U, // UQADDv4i32
|
|
777U, // UQADDv8i16
|
|
1801U, // UQADDv8i8
|
|
1033U, // UQRSHLv16i8
|
|
1U, // UQRSHLv1i16
|
|
1U, // UQRSHLv1i32
|
|
1U, // UQRSHLv1i64
|
|
1U, // UQRSHLv1i8
|
|
1289U, // UQRSHLv2i32
|
|
265U, // UQRSHLv2i64
|
|
1545U, // UQRSHLv4i16
|
|
521U, // UQRSHLv4i32
|
|
777U, // UQRSHLv8i16
|
|
1801U, // UQRSHLv8i8
|
|
1U, // UQRSHRNb
|
|
1U, // UQRSHRNh
|
|
1U, // UQRSHRNs
|
|
65U, // UQRSHRNv16i8_shift
|
|
1U, // UQRSHRNv2i32_shift
|
|
1U, // UQRSHRNv4i16_shift
|
|
65U, // UQRSHRNv4i32_shift
|
|
65U, // UQRSHRNv8i16_shift
|
|
1U, // UQRSHRNv8i8_shift
|
|
1U, // UQSHLb
|
|
1U, // UQSHLd
|
|
1U, // UQSHLh
|
|
1U, // UQSHLs
|
|
1033U, // UQSHLv16i8
|
|
1U, // UQSHLv16i8_shift
|
|
1U, // UQSHLv1i16
|
|
1U, // UQSHLv1i32
|
|
1U, // UQSHLv1i64
|
|
1U, // UQSHLv1i8
|
|
1289U, // UQSHLv2i32
|
|
1U, // UQSHLv2i32_shift
|
|
265U, // UQSHLv2i64
|
|
1U, // UQSHLv2i64_shift
|
|
1545U, // UQSHLv4i16
|
|
1U, // UQSHLv4i16_shift
|
|
521U, // UQSHLv4i32
|
|
1U, // UQSHLv4i32_shift
|
|
777U, // UQSHLv8i16
|
|
1U, // UQSHLv8i16_shift
|
|
1801U, // UQSHLv8i8
|
|
1U, // UQSHLv8i8_shift
|
|
1U, // UQSHRNb
|
|
1U, // UQSHRNh
|
|
1U, // UQSHRNs
|
|
65U, // UQSHRNv16i8_shift
|
|
1U, // UQSHRNv2i32_shift
|
|
1U, // UQSHRNv4i16_shift
|
|
65U, // UQSHRNv4i32_shift
|
|
65U, // UQSHRNv8i16_shift
|
|
1U, // UQSHRNv8i8_shift
|
|
1033U, // UQSUBv16i8
|
|
1U, // UQSUBv1i16
|
|
1U, // UQSUBv1i32
|
|
1U, // UQSUBv1i64
|
|
1U, // UQSUBv1i8
|
|
1289U, // UQSUBv2i32
|
|
265U, // UQSUBv2i64
|
|
1545U, // UQSUBv4i16
|
|
521U, // UQSUBv4i32
|
|
777U, // UQSUBv8i16
|
|
1801U, // UQSUBv8i8
|
|
0U, // UQXTNv16i8
|
|
0U, // UQXTNv1i16
|
|
0U, // UQXTNv1i32
|
|
0U, // UQXTNv1i8
|
|
0U, // UQXTNv2i32
|
|
0U, // UQXTNv4i16
|
|
0U, // UQXTNv4i32
|
|
0U, // UQXTNv8i16
|
|
0U, // UQXTNv8i8
|
|
0U, // URECPEv2i32
|
|
0U, // URECPEv4i32
|
|
1033U, // URHADDv16i8
|
|
1289U, // URHADDv2i32
|
|
1545U, // URHADDv4i16
|
|
521U, // URHADDv4i32
|
|
777U, // URHADDv8i16
|
|
1801U, // URHADDv8i8
|
|
1033U, // URSHLv16i8
|
|
1U, // URSHLv1i64
|
|
1289U, // URSHLv2i32
|
|
265U, // URSHLv2i64
|
|
1545U, // URSHLv4i16
|
|
521U, // URSHLv4i32
|
|
777U, // URSHLv8i16
|
|
1801U, // URSHLv8i8
|
|
1U, // URSHRd
|
|
1U, // URSHRv16i8_shift
|
|
1U, // URSHRv2i32_shift
|
|
1U, // URSHRv2i64_shift
|
|
1U, // URSHRv4i16_shift
|
|
1U, // URSHRv4i32_shift
|
|
1U, // URSHRv8i16_shift
|
|
1U, // URSHRv8i8_shift
|
|
0U, // URSQRTEv2i32
|
|
0U, // URSQRTEv4i32
|
|
65U, // URSRAd
|
|
65U, // URSRAv16i8_shift
|
|
65U, // URSRAv2i32_shift
|
|
65U, // URSRAv2i64_shift
|
|
65U, // URSRAv4i16_shift
|
|
65U, // URSRAv4i32_shift
|
|
65U, // URSRAv8i16_shift
|
|
65U, // URSRAv8i8_shift
|
|
1U, // USHLLv16i8_shift
|
|
1U, // USHLLv2i32_shift
|
|
1U, // USHLLv4i16_shift
|
|
1U, // USHLLv4i32_shift
|
|
1U, // USHLLv8i16_shift
|
|
1U, // USHLLv8i8_shift
|
|
1033U, // USHLv16i8
|
|
1U, // USHLv1i64
|
|
1289U, // USHLv2i32
|
|
265U, // USHLv2i64
|
|
1545U, // USHLv4i16
|
|
521U, // USHLv4i32
|
|
777U, // USHLv8i16
|
|
1801U, // USHLv8i8
|
|
1U, // USHRd
|
|
1U, // USHRv16i8_shift
|
|
1U, // USHRv2i32_shift
|
|
1U, // USHRv2i64_shift
|
|
1U, // USHRv4i16_shift
|
|
1U, // USHRv4i32_shift
|
|
1U, // USHRv8i16_shift
|
|
1U, // USHRv8i8_shift
|
|
0U, // USQADDv16i8
|
|
0U, // USQADDv1i16
|
|
0U, // USQADDv1i32
|
|
0U, // USQADDv1i64
|
|
0U, // USQADDv1i8
|
|
0U, // USQADDv2i32
|
|
0U, // USQADDv2i64
|
|
0U, // USQADDv4i16
|
|
0U, // USQADDv4i32
|
|
0U, // USQADDv8i16
|
|
0U, // USQADDv8i8
|
|
65U, // USRAd
|
|
65U, // USRAv16i8_shift
|
|
65U, // USRAv2i32_shift
|
|
65U, // USRAv2i64_shift
|
|
65U, // USRAv4i16_shift
|
|
65U, // USRAv4i32_shift
|
|
65U, // USRAv8i16_shift
|
|
65U, // USRAv8i8_shift
|
|
1033U, // USUBLv16i8_v8i16
|
|
1289U, // USUBLv2i32_v2i64
|
|
1545U, // USUBLv4i16_v4i32
|
|
521U, // USUBLv4i32_v2i64
|
|
777U, // USUBLv8i16_v4i32
|
|
1801U, // USUBLv8i8_v8i16
|
|
1033U, // USUBWv16i8_v8i16
|
|
1289U, // USUBWv2i32_v2i64
|
|
1545U, // USUBWv4i16_v4i32
|
|
521U, // USUBWv4i32_v2i64
|
|
777U, // USUBWv8i16_v4i32
|
|
1801U, // USUBWv8i8_v8i16
|
|
1033U, // UZP1v16i8
|
|
1289U, // UZP1v2i32
|
|
265U, // UZP1v2i64
|
|
1545U, // UZP1v4i16
|
|
521U, // UZP1v4i32
|
|
777U, // UZP1v8i16
|
|
1801U, // UZP1v8i8
|
|
1033U, // UZP2v16i8
|
|
1289U, // UZP2v2i32
|
|
265U, // UZP2v2i64
|
|
1545U, // UZP2v4i16
|
|
521U, // UZP2v4i32
|
|
777U, // UZP2v8i16
|
|
1801U, // UZP2v8i8
|
|
0U, // XTNv16i8
|
|
0U, // XTNv2i32
|
|
0U, // XTNv4i16
|
|
0U, // XTNv4i32
|
|
0U, // XTNv8i16
|
|
0U, // XTNv8i8
|
|
1033U, // ZIP1v16i8
|
|
1289U, // ZIP1v2i32
|
|
265U, // ZIP1v2i64
|
|
1545U, // ZIP1v4i16
|
|
521U, // ZIP1v4i32
|
|
777U, // ZIP1v8i16
|
|
1801U, // ZIP1v8i8
|
|
1033U, // ZIP2v16i8
|
|
1289U, // ZIP2v2i32
|
|
265U, // ZIP2v2i64
|
|
1545U, // ZIP2v4i16
|
|
521U, // ZIP2v4i32
|
|
777U, // ZIP2v8i16
|
|
1801U, // ZIP2v8i8
|
|
0U
|
|
};
|
|
|
|
#ifndef CAPSTONE_DIET
|
|
static const char AsmStrs[] = {
|
|
/* 0 */ 's', 'h', 'a', '1', 's', 'u', '0', 9, 0,
|
|
/* 9 */ 's', 'h', 'a', '2', '5', '6', 's', 'u', '0', 9, 0,
|
|
/* 20 */ 'l', 'd', '1', 9, 0,
|
|
/* 25 */ 't', 'r', 'n', '1', 9, 0,
|
|
/* 31 */ 'z', 'i', 'p', '1', 9, 0,
|
|
/* 37 */ 'u', 'z', 'p', '1', 9, 0,
|
|
/* 43 */ 'd', 'c', 'p', 's', '1', 9, 0,
|
|
/* 50 */ 's', 't', '1', 9, 0,
|
|
/* 55 */ 's', 'h', 'a', '1', 's', 'u', '1', 9, 0,
|
|
/* 64 */ 's', 'h', 'a', '2', '5', '6', 's', 'u', '1', 9, 0,
|
|
/* 75 */ 'r', 'e', 'v', '3', '2', 9, 0,
|
|
/* 82 */ 'l', 'd', '2', 9, 0,
|
|
/* 87 */ 's', 'h', 'a', '2', '5', '6', 'h', '2', 9, 0,
|
|
/* 97 */ 's', 'a', 'b', 'a', 'l', '2', 9, 0,
|
|
/* 105 */ 'u', 'a', 'b', 'a', 'l', '2', 9, 0,
|
|
/* 113 */ 's', 'q', 'd', 'm', 'l', 'a', 'l', '2', 9, 0,
|
|
/* 123 */ 's', 'm', 'l', 'a', 'l', '2', 9, 0,
|
|
/* 131 */ 'u', 'm', 'l', 'a', 'l', '2', 9, 0,
|
|
/* 139 */ 's', 's', 'u', 'b', 'l', '2', 9, 0,
|
|
/* 147 */ 'u', 's', 'u', 'b', 'l', '2', 9, 0,
|
|
/* 155 */ 's', 'a', 'b', 'd', 'l', '2', 9, 0,
|
|
/* 163 */ 'u', 'a', 'b', 'd', 'l', '2', 9, 0,
|
|
/* 171 */ 's', 'a', 'd', 'd', 'l', '2', 9, 0,
|
|
/* 179 */ 'u', 'a', 'd', 'd', 'l', '2', 9, 0,
|
|
/* 187 */ 's', 's', 'h', 'l', 'l', '2', 9, 0,
|
|
/* 195 */ 'u', 's', 'h', 'l', 'l', '2', 9, 0,
|
|
/* 203 */ 's', 'q', 'd', 'm', 'u', 'l', 'l', '2', 9, 0,
|
|
/* 213 */ 'p', 'm', 'u', 'l', 'l', '2', 9, 0,
|
|
/* 221 */ 's', 'm', 'u', 'l', 'l', '2', 9, 0,
|
|
/* 229 */ 'u', 'm', 'u', 'l', 'l', '2', 9, 0,
|
|
/* 237 */ 's', 'q', 'd', 'm', 'l', 's', 'l', '2', 9, 0,
|
|
/* 247 */ 's', 'm', 'l', 's', 'l', '2', 9, 0,
|
|
/* 255 */ 'u', 'm', 'l', 's', 'l', '2', 9, 0,
|
|
/* 263 */ 'f', 'c', 'v', 't', 'l', '2', 9, 0,
|
|
/* 271 */ 'r', 's', 'u', 'b', 'h', 'n', '2', 9, 0,
|
|
/* 280 */ 'r', 'a', 'd', 'd', 'h', 'n', '2', 9, 0,
|
|
/* 289 */ 's', 'q', 's', 'h', 'r', 'n', '2', 9, 0,
|
|
/* 298 */ 'u', 'q', 's', 'h', 'r', 'n', '2', 9, 0,
|
|
/* 307 */ 's', 'q', 'r', 's', 'h', 'r', 'n', '2', 9, 0,
|
|
/* 317 */ 'u', 'q', 'r', 's', 'h', 'r', 'n', '2', 9, 0,
|
|
/* 327 */ 't', 'r', 'n', '2', 9, 0,
|
|
/* 333 */ 'f', 'c', 'v', 't', 'n', '2', 9, 0,
|
|
/* 341 */ 's', 'q', 'x', 't', 'n', '2', 9, 0,
|
|
/* 349 */ 'u', 'q', 'x', 't', 'n', '2', 9, 0,
|
|
/* 357 */ 's', 'q', 's', 'h', 'r', 'u', 'n', '2', 9, 0,
|
|
/* 367 */ 's', 'q', 'r', 's', 'h', 'r', 'u', 'n', '2', 9, 0,
|
|
/* 378 */ 's', 'q', 'x', 't', 'u', 'n', '2', 9, 0,
|
|
/* 387 */ 'f', 'c', 'v', 't', 'x', 'n', '2', 9, 0,
|
|
/* 396 */ 'z', 'i', 'p', '2', 9, 0,
|
|
/* 402 */ 'u', 'z', 'p', '2', 9, 0,
|
|
/* 408 */ 'd', 'c', 'p', 's', '2', 9, 0,
|
|
/* 415 */ 's', 't', '2', 9, 0,
|
|
/* 420 */ 's', 's', 'u', 'b', 'w', '2', 9, 0,
|
|
/* 428 */ 'u', 's', 'u', 'b', 'w', '2', 9, 0,
|
|
/* 436 */ 's', 'a', 'd', 'd', 'w', '2', 9, 0,
|
|
/* 444 */ 'u', 'a', 'd', 'd', 'w', '2', 9, 0,
|
|
/* 452 */ 'l', 'd', '3', 9, 0,
|
|
/* 457 */ 'd', 'c', 'p', 's', '3', 9, 0,
|
|
/* 464 */ 's', 't', '3', 9, 0,
|
|
/* 469 */ 'r', 'e', 'v', '6', '4', 9, 0,
|
|
/* 476 */ 'l', 'd', '4', 9, 0,
|
|
/* 481 */ 's', 't', '4', 9, 0,
|
|
/* 486 */ 'r', 'e', 'v', '1', '6', 9, 0,
|
|
/* 493 */ 's', 'a', 'b', 'a', 9, 0,
|
|
/* 499 */ 'u', 'a', 'b', 'a', 9, 0,
|
|
/* 505 */ 'f', 'm', 'l', 'a', 9, 0,
|
|
/* 511 */ 's', 'r', 's', 'r', 'a', 9, 0,
|
|
/* 518 */ 'u', 'r', 's', 'r', 'a', 9, 0,
|
|
/* 525 */ 's', 's', 'r', 'a', 9, 0,
|
|
/* 531 */ 'u', 's', 'r', 'a', 9, 0,
|
|
/* 537 */ 'f', 'r', 'i', 'n', 't', 'a', 9, 0,
|
|
/* 545 */ 'c', 'r', 'c', '3', '2', 'b', 9, 0,
|
|
/* 553 */ 'c', 'r', 'c', '3', '2', 'c', 'b', 9, 0,
|
|
/* 562 */ 'd', 'm', 'b', 9, 0,
|
|
/* 567 */ 'l', 'd', 'a', 'r', 'b', 9, 0,
|
|
/* 574 */ 'l', 'd', 'r', 'b', 9, 0,
|
|
/* 580 */ 's', 't', 'l', 'r', 'b', 9, 0,
|
|
/* 587 */ 'l', 'd', 't', 'r', 'b', 9, 0,
|
|
/* 594 */ 's', 't', 'r', 'b', 9, 0,
|
|
/* 600 */ 's', 't', 't', 'r', 'b', 9, 0,
|
|
/* 607 */ 'l', 'd', 'u', 'r', 'b', 9, 0,
|
|
/* 614 */ 's', 't', 'u', 'r', 'b', 9, 0,
|
|
/* 621 */ 'l', 'd', 'a', 'x', 'r', 'b', 9, 0,
|
|
/* 629 */ 'l', 'd', 'x', 'r', 'b', 9, 0,
|
|
/* 636 */ 's', 't', 'l', 'x', 'r', 'b', 9, 0,
|
|
/* 644 */ 's', 't', 'x', 'r', 'b', 9, 0,
|
|
/* 651 */ 'd', 's', 'b', 9, 0,
|
|
/* 656 */ 'i', 's', 'b', 9, 0,
|
|
/* 661 */ 'l', 'd', 'r', 's', 'b', 9, 0,
|
|
/* 668 */ 'l', 'd', 't', 'r', 's', 'b', 9, 0,
|
|
/* 676 */ 'l', 'd', 'u', 'r', 's', 'b', 9, 0,
|
|
/* 684 */ 'f', 's', 'u', 'b', 9, 0,
|
|
/* 690 */ 's', 'h', 's', 'u', 'b', 9, 0,
|
|
/* 697 */ 'u', 'h', 's', 'u', 'b', 9, 0,
|
|
/* 704 */ 'f', 'm', 's', 'u', 'b', 9, 0,
|
|
/* 711 */ 'f', 'n', 'm', 's', 'u', 'b', 9, 0,
|
|
/* 719 */ 's', 'q', 's', 'u', 'b', 9, 0,
|
|
/* 726 */ 'u', 'q', 's', 'u', 'b', 9, 0,
|
|
/* 733 */ 's', 'h', 'a', '1', 'c', 9, 0,
|
|
/* 740 */ 's', 'b', 'c', 9, 0,
|
|
/* 745 */ 'a', 'd', 'c', 9, 0,
|
|
/* 750 */ 'b', 'i', 'c', 9, 0,
|
|
/* 755 */ 'a', 'e', 's', 'i', 'm', 'c', 9, 0,
|
|
/* 763 */ 'a', 'e', 's', 'm', 'c', 9, 0,
|
|
/* 770 */ 'c', 's', 'i', 'n', 'c', 9, 0,
|
|
/* 777 */ 'h', 'v', 'c', 9, 0,
|
|
/* 782 */ 's', 'v', 'c', 9, 0,
|
|
/* 787 */ 'f', 'a', 'b', 'd', 9, 0,
|
|
/* 793 */ 's', 'a', 'b', 'd', 9, 0,
|
|
/* 799 */ 'u', 'a', 'b', 'd', 9, 0,
|
|
/* 805 */ 'f', 'a', 'd', 'd', 9, 0,
|
|
/* 811 */ 's', 'r', 'h', 'a', 'd', 'd', 9, 0,
|
|
/* 819 */ 'u', 'r', 'h', 'a', 'd', 'd', 9, 0,
|
|
/* 827 */ 's', 'h', 'a', 'd', 'd', 9, 0,
|
|
/* 834 */ 'u', 'h', 'a', 'd', 'd', 9, 0,
|
|
/* 841 */ 'f', 'm', 'a', 'd', 'd', 9, 0,
|
|
/* 848 */ 'f', 'n', 'm', 'a', 'd', 'd', 9, 0,
|
|
/* 856 */ 'u', 's', 'q', 'a', 'd', 'd', 9, 0,
|
|
/* 864 */ 's', 'u', 'q', 'a', 'd', 'd', 9, 0,
|
|
/* 872 */ 'a', 'n', 'd', 9, 0,
|
|
/* 877 */ 'a', 'e', 's', 'd', 9, 0,
|
|
/* 883 */ 'f', 'a', 'c', 'g', 'e', 9, 0,
|
|
/* 890 */ 'f', 'c', 'm', 'g', 'e', 9, 0,
|
|
/* 897 */ 'f', 'c', 'm', 'l', 'e', 9, 0,
|
|
/* 904 */ 'f', 'r', 'e', 'c', 'p', 'e', 9, 0,
|
|
/* 912 */ 'u', 'r', 'e', 'c', 'p', 'e', 9, 0,
|
|
/* 920 */ 'f', 'c', 'c', 'm', 'p', 'e', 9, 0,
|
|
/* 928 */ 'f', 'c', 'm', 'p', 'e', 9, 0,
|
|
/* 935 */ 'a', 'e', 's', 'e', 9, 0,
|
|
/* 941 */ 'f', 'r', 's', 'q', 'r', 't', 'e', 9, 0,
|
|
/* 950 */ 'u', 'r', 's', 'q', 'r', 't', 'e', 9, 0,
|
|
/* 959 */ 'b', 'i', 'f', 9, 0,
|
|
/* 964 */ 's', 'c', 'v', 't', 'f', 9, 0,
|
|
/* 971 */ 'u', 'c', 'v', 't', 'f', 9, 0,
|
|
/* 978 */ 'f', 'n', 'e', 'g', 9, 0,
|
|
/* 984 */ 's', 'q', 'n', 'e', 'g', 9, 0,
|
|
/* 991 */ 'c', 's', 'n', 'e', 'g', 9, 0,
|
|
/* 998 */ 's', 'h', 'a', '1', 'h', 9, 0,
|
|
/* 1005 */ 'c', 'r', 'c', '3', '2', 'h', 9, 0,
|
|
/* 1013 */ 's', 'h', 'a', '2', '5', '6', 'h', 9, 0,
|
|
/* 1022 */ 'c', 'r', 'c', '3', '2', 'c', 'h', 9, 0,
|
|
/* 1031 */ 's', 'q', 'd', 'm', 'u', 'l', 'h', 9, 0,
|
|
/* 1040 */ 's', 'q', 'r', 'd', 'm', 'u', 'l', 'h', 9, 0,
|
|
/* 1050 */ 's', 'm', 'u', 'l', 'h', 9, 0,
|
|
/* 1057 */ 'u', 'm', 'u', 'l', 'h', 9, 0,
|
|
/* 1064 */ 'l', 'd', 'a', 'r', 'h', 9, 0,
|
|
/* 1071 */ 'l', 'd', 'r', 'h', 9, 0,
|
|
/* 1077 */ 's', 't', 'l', 'r', 'h', 9, 0,
|
|
/* 1084 */ 'l', 'd', 't', 'r', 'h', 9, 0,
|
|
/* 1091 */ 's', 't', 'r', 'h', 9, 0,
|
|
/* 1097 */ 's', 't', 't', 'r', 'h', 9, 0,
|
|
/* 1104 */ 'l', 'd', 'u', 'r', 'h', 9, 0,
|
|
/* 1111 */ 's', 't', 'u', 'r', 'h', 9, 0,
|
|
/* 1118 */ 'l', 'd', 'a', 'x', 'r', 'h', 9, 0,
|
|
/* 1126 */ 'l', 'd', 'x', 'r', 'h', 9, 0,
|
|
/* 1133 */ 's', 't', 'l', 'x', 'r', 'h', 9, 0,
|
|
/* 1141 */ 's', 't', 'x', 'r', 'h', 9, 0,
|
|
/* 1148 */ 'l', 'd', 'r', 's', 'h', 9, 0,
|
|
/* 1155 */ 'l', 'd', 't', 'r', 's', 'h', 9, 0,
|
|
/* 1163 */ 'l', 'd', 'u', 'r', 's', 'h', 9, 0,
|
|
/* 1171 */ 'c', 'm', 'h', 'i', 9, 0,
|
|
/* 1177 */ 's', 'l', 'i', 9, 0,
|
|
/* 1182 */ 'm', 'v', 'n', 'i', 9, 0,
|
|
/* 1188 */ 's', 'r', 'i', 9, 0,
|
|
/* 1193 */ 'f', 'r', 'i', 'n', 't', 'i', 9, 0,
|
|
/* 1201 */ 'm', 'o', 'v', 'i', 9, 0,
|
|
/* 1207 */ 'b', 'r', 'k', 9, 0,
|
|
/* 1212 */ 'm', 'o', 'v', 'k', 9, 0,
|
|
/* 1218 */ 's', 'a', 'b', 'a', 'l', 9, 0,
|
|
/* 1225 */ 'u', 'a', 'b', 'a', 'l', 9, 0,
|
|
/* 1232 */ 's', 'q', 'd', 'm', 'l', 'a', 'l', 9, 0,
|
|
/* 1241 */ 's', 'm', 'l', 'a', 'l', 9, 0,
|
|
/* 1248 */ 'u', 'm', 'l', 'a', 'l', 9, 0,
|
|
/* 1255 */ 't', 'b', 'l', 9, 0,
|
|
/* 1260 */ 's', 'm', 's', 'u', 'b', 'l', 9, 0,
|
|
/* 1268 */ 'u', 'm', 's', 'u', 'b', 'l', 9, 0,
|
|
/* 1276 */ 's', 's', 'u', 'b', 'l', 9, 0,
|
|
/* 1283 */ 'u', 's', 'u', 'b', 'l', 9, 0,
|
|
/* 1290 */ 's', 'a', 'b', 'd', 'l', 9, 0,
|
|
/* 1297 */ 'u', 'a', 'b', 'd', 'l', 9, 0,
|
|
/* 1304 */ 's', 'm', 'a', 'd', 'd', 'l', 9, 0,
|
|
/* 1312 */ 'u', 'm', 'a', 'd', 'd', 'l', 9, 0,
|
|
/* 1320 */ 's', 'a', 'd', 'd', 'l', 9, 0,
|
|
/* 1327 */ 'u', 'a', 'd', 'd', 'l', 9, 0,
|
|
/* 1334 */ 'f', 'c', 's', 'e', 'l', 9, 0,
|
|
/* 1341 */ 's', 'q', 's', 'h', 'l', 9, 0,
|
|
/* 1348 */ 'u', 'q', 's', 'h', 'l', 9, 0,
|
|
/* 1355 */ 's', 'q', 'r', 's', 'h', 'l', 9, 0,
|
|
/* 1363 */ 'u', 'q', 'r', 's', 'h', 'l', 9, 0,
|
|
/* 1371 */ 's', 'r', 's', 'h', 'l', 9, 0,
|
|
/* 1378 */ 'u', 'r', 's', 'h', 'l', 9, 0,
|
|
/* 1385 */ 's', 's', 'h', 'l', 9, 0,
|
|
/* 1391 */ 'u', 's', 'h', 'l', 9, 0,
|
|
/* 1397 */ 's', 's', 'h', 'l', 'l', 9, 0,
|
|
/* 1404 */ 'u', 's', 'h', 'l', 'l', 9, 0,
|
|
/* 1411 */ 's', 'q', 'd', 'm', 'u', 'l', 'l', 9, 0,
|
|
/* 1420 */ 'p', 'm', 'u', 'l', 'l', 9, 0,
|
|
/* 1427 */ 's', 'm', 'u', 'l', 'l', 9, 0,
|
|
/* 1434 */ 'u', 'm', 'u', 'l', 'l', 9, 0,
|
|
/* 1441 */ 'b', 's', 'l', 9, 0,
|
|
/* 1446 */ 's', 'q', 'd', 'm', 'l', 's', 'l', 9, 0,
|
|
/* 1455 */ 's', 'm', 'l', 's', 'l', 9, 0,
|
|
/* 1462 */ 'u', 'm', 'l', 's', 'l', 9, 0,
|
|
/* 1469 */ 's', 'y', 's', 'l', 9, 0,
|
|
/* 1475 */ 'f', 'c', 'v', 't', 'l', 9, 0,
|
|
/* 1482 */ 'f', 'm', 'u', 'l', 9, 0,
|
|
/* 1488 */ 'f', 'n', 'm', 'u', 'l', 9, 0,
|
|
/* 1495 */ 'p', 'm', 'u', 'l', 9, 0,
|
|
/* 1501 */ 's', 'h', 'a', '1', 'm', 9, 0,
|
|
/* 1508 */ 's', 'b', 'f', 'm', 9, 0,
|
|
/* 1514 */ 'u', 'b', 'f', 'm', 9, 0,
|
|
/* 1520 */ 'p', 'r', 'f', 'm', 9, 0,
|
|
/* 1526 */ 'f', 'm', 'i', 'n', 'n', 'm', 9, 0,
|
|
/* 1534 */ 'f', 'm', 'a', 'x', 'n', 'm', 9, 0,
|
|
/* 1542 */ 'f', 'r', 'i', 'n', 't', 'm', 9, 0,
|
|
/* 1550 */ 'p', 'r', 'f', 'u', 'm', 9, 0,
|
|
/* 1557 */ 'r', 's', 'u', 'b', 'h', 'n', 9, 0,
|
|
/* 1565 */ 'r', 'a', 'd', 'd', 'h', 'n', 9, 0,
|
|
/* 1573 */ 'f', 'm', 'i', 'n', 9, 0,
|
|
/* 1579 */ 's', 'm', 'i', 'n', 9, 0,
|
|
/* 1585 */ 'u', 'm', 'i', 'n', 9, 0,
|
|
/* 1591 */ 'c', 'c', 'm', 'n', 9, 0,
|
|
/* 1597 */ 'e', 'o', 'n', 9, 0,
|
|
/* 1602 */ 's', 'q', 's', 'h', 'r', 'n', 9, 0,
|
|
/* 1610 */ 'u', 'q', 's', 'h', 'r', 'n', 9, 0,
|
|
/* 1618 */ 's', 'q', 'r', 's', 'h', 'r', 'n', 9, 0,
|
|
/* 1627 */ 'u', 'q', 'r', 's', 'h', 'r', 'n', 9, 0,
|
|
/* 1636 */ 'o', 'r', 'n', 9, 0,
|
|
/* 1641 */ 'f', 'r', 'i', 'n', 't', 'n', 9, 0,
|
|
/* 1649 */ 'f', 'c', 'v', 't', 'n', 9, 0,
|
|
/* 1656 */ 's', 'q', 'x', 't', 'n', 9, 0,
|
|
/* 1663 */ 'u', 'q', 'x', 't', 'n', 9, 0,
|
|
/* 1670 */ 's', 'q', 's', 'h', 'r', 'u', 'n', 9, 0,
|
|
/* 1679 */ 's', 'q', 'r', 's', 'h', 'r', 'u', 'n', 9, 0,
|
|
/* 1689 */ 's', 'q', 'x', 't', 'u', 'n', 9, 0,
|
|
/* 1697 */ 'm', 'o', 'v', 'n', 9, 0,
|
|
/* 1703 */ 'f', 'c', 'v', 't', 'x', 'n', 9, 0,
|
|
/* 1711 */ 's', 'h', 'a', '1', 'p', 9, 0,
|
|
/* 1718 */ 'f', 'a', 'd', 'd', 'p', 9, 0,
|
|
/* 1725 */ 'l', 'd', 'p', 9, 0,
|
|
/* 1730 */ 's', 'a', 'd', 'a', 'l', 'p', 9, 0,
|
|
/* 1738 */ 'u', 'a', 'd', 'a', 'l', 'p', 9, 0,
|
|
/* 1746 */ 's', 'a', 'd', 'd', 'l', 'p', 9, 0,
|
|
/* 1754 */ 'u', 'a', 'd', 'd', 'l', 'p', 9, 0,
|
|
/* 1762 */ 'f', 'c', 'c', 'm', 'p', 9, 0,
|
|
/* 1769 */ 'f', 'c', 'm', 'p', 9, 0,
|
|
/* 1775 */ 'f', 'm', 'i', 'n', 'n', 'm', 'p', 9, 0,
|
|
/* 1784 */ 'f', 'm', 'a', 'x', 'n', 'm', 'p', 9, 0,
|
|
/* 1793 */ 'l', 'd', 'n', 'p', 9, 0,
|
|
/* 1799 */ 'f', 'm', 'i', 'n', 'p', 9, 0,
|
|
/* 1806 */ 's', 'm', 'i', 'n', 'p', 9, 0,
|
|
/* 1813 */ 'u', 'm', 'i', 'n', 'p', 9, 0,
|
|
/* 1820 */ 's', 't', 'n', 'p', 9, 0,
|
|
/* 1826 */ 'a', 'd', 'r', 'p', 9, 0,
|
|
/* 1832 */ 'f', 'r', 'i', 'n', 't', 'p', 9, 0,
|
|
/* 1840 */ 's', 't', 'p', 9, 0,
|
|
/* 1845 */ 'd', 'u', 'p', 9, 0,
|
|
/* 1850 */ 'l', 'd', 'a', 'x', 'p', 9, 0,
|
|
/* 1857 */ 'f', 'm', 'a', 'x', 'p', 9, 0,
|
|
/* 1864 */ 's', 'm', 'a', 'x', 'p', 9, 0,
|
|
/* 1871 */ 'u', 'm', 'a', 'x', 'p', 9, 0,
|
|
/* 1878 */ 'l', 'd', 'x', 'p', 9, 0,
|
|
/* 1884 */ 's', 't', 'l', 'x', 'p', 9, 0,
|
|
/* 1891 */ 's', 't', 'x', 'p', 9, 0,
|
|
/* 1897 */ 'f', 'c', 'm', 'e', 'q', 9, 0,
|
|
/* 1904 */ 'l', 'd', '1', 'r', 9, 0,
|
|
/* 1910 */ 'l', 'd', '2', 'r', 9, 0,
|
|
/* 1916 */ 'l', 'd', '3', 'r', 9, 0,
|
|
/* 1922 */ 'l', 'd', '4', 'r', 9, 0,
|
|
/* 1928 */ 'l', 'd', 'a', 'r', 9, 0,
|
|
/* 1934 */ 'b', 'r', 9, 0,
|
|
/* 1938 */ 'a', 'd', 'r', 9, 0,
|
|
/* 1943 */ 'l', 'd', 'r', 9, 0,
|
|
/* 1948 */ 's', 'r', 's', 'h', 'r', 9, 0,
|
|
/* 1955 */ 'u', 'r', 's', 'h', 'r', 9, 0,
|
|
/* 1962 */ 's', 's', 'h', 'r', 9, 0,
|
|
/* 1968 */ 'u', 's', 'h', 'r', 9, 0,
|
|
/* 1974 */ 'b', 'l', 'r', 9, 0,
|
|
/* 1979 */ 's', 't', 'l', 'r', 9, 0,
|
|
/* 1985 */ 'e', 'o', 'r', 9, 0,
|
|
/* 1990 */ 'r', 'o', 'r', 9, 0,
|
|
/* 1995 */ 'o', 'r', 'r', 9, 0,
|
|
/* 2000 */ 'a', 's', 'r', 9, 0,
|
|
/* 2005 */ 'l', 's', 'r', 9, 0,
|
|
/* 2010 */ 'm', 's', 'r', 9, 0,
|
|
/* 2015 */ 'l', 'd', 't', 'r', 9, 0,
|
|
/* 2021 */ 's', 't', 'r', 9, 0,
|
|
/* 2026 */ 's', 't', 't', 'r', 9, 0,
|
|
/* 2032 */ 'e', 'x', 't', 'r', 9, 0,
|
|
/* 2038 */ 'l', 'd', 'u', 'r', 9, 0,
|
|
/* 2044 */ 's', 't', 'u', 'r', 9, 0,
|
|
/* 2050 */ 'l', 'd', 'a', 'x', 'r', 9, 0,
|
|
/* 2057 */ 'l', 'd', 'x', 'r', 9, 0,
|
|
/* 2063 */ 's', 't', 'l', 'x', 'r', 9, 0,
|
|
/* 2070 */ 's', 't', 'x', 'r', 9, 0,
|
|
/* 2076 */ 'f', 'c', 'v', 't', 'a', 's', 9, 0,
|
|
/* 2084 */ 'f', 'a', 'b', 's', 9, 0,
|
|
/* 2090 */ 's', 'q', 'a', 'b', 's', 9, 0,
|
|
/* 2097 */ 's', 'u', 'b', 's', 9, 0,
|
|
/* 2103 */ 's', 'b', 'c', 's', 9, 0,
|
|
/* 2109 */ 'a', 'd', 'c', 's', 9, 0,
|
|
/* 2115 */ 'b', 'i', 'c', 's', 9, 0,
|
|
/* 2121 */ 'a', 'd', 'd', 's', 9, 0,
|
|
/* 2127 */ 'a', 'n', 'd', 's', 9, 0,
|
|
/* 2133 */ 'c', 'm', 'h', 's', 9, 0,
|
|
/* 2139 */ 'c', 'l', 's', 9, 0,
|
|
/* 2144 */ 'f', 'm', 'l', 's', 9, 0,
|
|
/* 2150 */ 'f', 'c', 'v', 't', 'm', 's', 9, 0,
|
|
/* 2158 */ 'i', 'n', 's', 9, 0,
|
|
/* 2163 */ 'f', 'c', 'v', 't', 'n', 's', 9, 0,
|
|
/* 2171 */ 'f', 'r', 'e', 'c', 'p', 's', 9, 0,
|
|
/* 2179 */ 'f', 'c', 'v', 't', 'p', 's', 9, 0,
|
|
/* 2187 */ 'm', 'r', 's', 9, 0,
|
|
/* 2192 */ 'f', 'r', 's', 'q', 'r', 't', 's', 9, 0,
|
|
/* 2201 */ 's', 'y', 's', 9, 0,
|
|
/* 2206 */ 'f', 'c', 'v', 't', 'z', 's', 9, 0,
|
|
/* 2214 */ 'r', 'e', 't', 9, 0,
|
|
/* 2219 */ 'f', 'a', 'c', 'g', 't', 9, 0,
|
|
/* 2226 */ 'f', 'c', 'm', 'g', 't', 9, 0,
|
|
/* 2233 */ 'r', 'b', 'i', 't', 9, 0,
|
|
/* 2239 */ 'h', 'l', 't', 9, 0,
|
|
/* 2244 */ 'f', 'c', 'm', 'l', 't', 9, 0,
|
|
/* 2251 */ 'c', 'n', 't', 9, 0,
|
|
/* 2256 */ 'n', 'o', 't', 9, 0,
|
|
/* 2261 */ 'f', 's', 'q', 'r', 't', 9, 0,
|
|
/* 2268 */ 'c', 'm', 't', 's', 't', 9, 0,
|
|
/* 2275 */ 'f', 'c', 'v', 't', 9, 0,
|
|
/* 2281 */ 'e', 'x', 't', 9, 0,
|
|
/* 2286 */ 'f', 'c', 'v', 't', 'a', 'u', 9, 0,
|
|
/* 2294 */ 's', 'q', 's', 'h', 'l', 'u', 9, 0,
|
|
/* 2302 */ 'f', 'c', 'v', 't', 'm', 'u', 9, 0,
|
|
/* 2310 */ 'f', 'c', 'v', 't', 'n', 'u', 9, 0,
|
|
/* 2318 */ 'f', 'c', 'v', 't', 'p', 'u', 9, 0,
|
|
/* 2326 */ 'f', 'c', 'v', 't', 'z', 'u', 9, 0,
|
|
/* 2334 */ 'a', 'd', 'd', 'v', 9, 0,
|
|
/* 2340 */ 'r', 'e', 'v', 9, 0,
|
|
/* 2345 */ 'f', 'd', 'i', 'v', 9, 0,
|
|
/* 2351 */ 's', 'd', 'i', 'v', 9, 0,
|
|
/* 2357 */ 'u', 'd', 'i', 'v', 9, 0,
|
|
/* 2363 */ 's', 'a', 'd', 'd', 'l', 'v', 9, 0,
|
|
/* 2371 */ 'u', 'a', 'd', 'd', 'l', 'v', 9, 0,
|
|
/* 2379 */ 'f', 'm', 'i', 'n', 'n', 'm', 'v', 9, 0,
|
|
/* 2388 */ 'f', 'm', 'a', 'x', 'n', 'm', 'v', 9, 0,
|
|
/* 2397 */ 'f', 'm', 'i', 'n', 'v', 9, 0,
|
|
/* 2404 */ 's', 'm', 'i', 'n', 'v', 9, 0,
|
|
/* 2411 */ 'u', 'm', 'i', 'n', 'v', 9, 0,
|
|
/* 2418 */ 'c', 's', 'i', 'n', 'v', 9, 0,
|
|
/* 2425 */ 'f', 'm', 'o', 'v', 9, 0,
|
|
/* 2431 */ 's', 'm', 'o', 'v', 9, 0,
|
|
/* 2437 */ 'u', 'm', 'o', 'v', 9, 0,
|
|
/* 2443 */ 'f', 'm', 'a', 'x', 'v', 9, 0,
|
|
/* 2450 */ 's', 'm', 'a', 'x', 'v', 9, 0,
|
|
/* 2457 */ 'u', 'm', 'a', 'x', 'v', 9, 0,
|
|
/* 2464 */ 'c', 'r', 'c', '3', '2', 'w', 9, 0,
|
|
/* 2472 */ 's', 's', 'u', 'b', 'w', 9, 0,
|
|
/* 2479 */ 'u', 's', 'u', 'b', 'w', 9, 0,
|
|
/* 2486 */ 'c', 'r', 'c', '3', '2', 'c', 'w', 9, 0,
|
|
/* 2495 */ 's', 'a', 'd', 'd', 'w', 9, 0,
|
|
/* 2502 */ 'u', 'a', 'd', 'd', 'w', 9, 0,
|
|
/* 2509 */ 'l', 'd', 'p', 's', 'w', 9, 0,
|
|
/* 2516 */ 'l', 'd', 'r', 's', 'w', 9, 0,
|
|
/* 2523 */ 'l', 'd', 't', 'r', 's', 'w', 9, 0,
|
|
/* 2531 */ 'l', 'd', 'u', 'r', 's', 'w', 9, 0,
|
|
/* 2539 */ 'c', 'r', 'c', '3', '2', 'x', 9, 0,
|
|
/* 2547 */ 'f', 'm', 'a', 'x', 9, 0,
|
|
/* 2553 */ 's', 'm', 'a', 'x', 9, 0,
|
|
/* 2559 */ 'u', 'm', 'a', 'x', 9, 0,
|
|
/* 2565 */ 't', 'b', 'x', 9, 0,
|
|
/* 2570 */ 'c', 'r', 'c', '3', '2', 'c', 'x', 9, 0,
|
|
/* 2579 */ 'c', 'l', 'r', 'e', 'x', 9, 0,
|
|
/* 2586 */ 'f', 'm', 'u', 'l', 'x', 9, 0,
|
|
/* 2593 */ 'f', 'r', 'e', 'c', 'p', 'x', 9, 0,
|
|
/* 2601 */ 'f', 'r', 'i', 'n', 't', 'x', 9, 0,
|
|
/* 2609 */ 'c', 'b', 'z', 9, 0,
|
|
/* 2614 */ 't', 'b', 'z', 9, 0,
|
|
/* 2619 */ 'c', 'l', 'z', 9, 0,
|
|
/* 2624 */ 'c', 'b', 'n', 'z', 9, 0,
|
|
/* 2630 */ 't', 'b', 'n', 'z', 9, 0,
|
|
/* 2636 */ 'f', 'r', 'i', 'n', 't', 'z', 9, 0,
|
|
/* 2644 */ 'm', 'o', 'v', 'z', 9, 0,
|
|
/* 2650 */ '.', 't', 'l', 's', 'd', 'e', 's', 'c', 'c', 'a', 'l', 'l', 32, 0,
|
|
/* 2664 */ 'h', 'i', 'n', 't', 32, 0,
|
|
/* 2670 */ 'b', '.', 0,
|
|
/* 2673 */ 'L', 'I', 'F', 'E', 'T', 'I', 'M', 'E', '_', 'E', 'N', 'D', 0,
|
|
/* 2686 */ 'B', 'U', 'N', 'D', 'L', 'E', 0,
|
|
/* 2693 */ 'D', 'B', 'G', '_', 'V', 'A', 'L', 'U', 'E', 0,
|
|
/* 2703 */ 'L', 'I', 'F', 'E', 'T', 'I', 'M', 'E', '_', 'S', 'T', 'A', 'R', 'T', 0,
|
|
/* 2718 */ 'd', 'r', 'p', 's', 0,
|
|
/* 2723 */ 'e', 'r', 'e', 't', 0,
|
|
};
|
|
#endif
|
|
|
|
// Emit the opcode for the instruction.
|
|
uint64_t Bits1 = OpInfo[MCInst_getOpcode(MI)];
|
|
uint64_t Bits2 = OpInfo2[MCInst_getOpcode(MI)];
|
|
uint64_t Bits = (Bits2 << 32) | Bits1;
|
|
// assert(Bits != 0 && "Cannot print this instruction.");
|
|
#ifndef CAPSTONE_DIET
|
|
SStream_concat0(O, AsmStrs+(Bits & 4095)-1);
|
|
#endif
|
|
|
|
|
|
// Fragment 0 encoded into 6 bits for 40 unique commands.
|
|
//printf("Frag-0: %"PRIu64"\n", (Bits >> 12) & 63);
|
|
switch ((Bits >> 12) & 63) {
|
|
default: // unreachable.
|
|
case 0:
|
|
// DBG_VALUE, BUNDLE, LIFETIME_START, LIFETIME_END, DRPS, ERET
|
|
return;
|
|
break;
|
|
case 1:
|
|
// ABSv16i8, ABSv2i32, ABSv2i64, ABSv4i16, ABSv4i32, ABSv8i16, ABSv8i8, A...
|
|
printVRegOperand(MI, 0, O);
|
|
break;
|
|
case 2:
|
|
// ABSv1i64, ADCSWr, ADCSXr, ADCWr, ADCXr, ADDPv2i64p, ADDSWri, ADDSWrs, ...
|
|
printOperand(MI, 0, O);
|
|
break;
|
|
case 3:
|
|
// ADDHNv2i64_v4i32, ADDHNv4i32_v8i16, ADDHNv8i16_v16i8, AESDrr, AESErr, ...
|
|
printVRegOperand(MI, 1, O);
|
|
break;
|
|
case 4:
|
|
// B, BL
|
|
printAlignedLabel(MI, 0, O);
|
|
return;
|
|
break;
|
|
case 5:
|
|
// BRK, DCPS1, DCPS2, DCPS3, HINT, HLT, HVC, SMC, SVC
|
|
printHexImm(MI, 0, O);
|
|
return;
|
|
break;
|
|
case 6:
|
|
// Bcc
|
|
printCondCode(MI, 0, O);
|
|
SStream_concat0(O, "\t");
|
|
printAlignedLabel(MI, 1, O);
|
|
return;
|
|
break;
|
|
case 7:
|
|
// DMB, DSB, ISB
|
|
printBarrierOption(MI, 0, O);
|
|
return;
|
|
break;
|
|
case 8:
|
|
// FMLAv1i32_indexed, FMLAv1i64_indexed, FMLSv1i32_indexed, FMLSv1i64_ind...
|
|
printOperand(MI, 1, O);
|
|
break;
|
|
case 9:
|
|
// LD1Fourv16b, LD1Onev16b, LD1Rv16b, LD1Threev16b, LD1Twov16b, LD2Rv16b,...
|
|
printTypedVectorList(MI, 0, O, 16, 'b', MRI);
|
|
SStream_concat0(O, ", [");
|
|
set_mem_access(MI, true);
|
|
printOperand(MI, 1, O);
|
|
SStream_concat0(O, "]");
|
|
set_mem_access(MI, false);
|
|
return;
|
|
break;
|
|
case 10:
|
|
// LD1Fourv16b_POST, LD1Onev16b_POST, LD1Rv16b_POST, LD1Threev16b_POST, L...
|
|
printTypedVectorList(MI, 1, O, 16, 'b', MRI);
|
|
SStream_concat0(O, ", [");
|
|
set_mem_access(MI, true);
|
|
printOperand(MI, 2, O);
|
|
SStream_concat0(O, "], ");
|
|
set_mem_access(MI, false);
|
|
break;
|
|
case 11:
|
|
// LD1Fourv1d, LD1Onev1d, LD1Rv1d, LD1Threev1d, LD1Twov1d, LD2Rv1d, LD3Rv...
|
|
printTypedVectorList(MI, 0, O, 1, 'd', MRI);
|
|
SStream_concat0(O, ", [");
|
|
set_mem_access(MI, true);
|
|
printOperand(MI, 1, O);
|
|
SStream_concat0(O, "]");
|
|
set_mem_access(MI, false);
|
|
return;
|
|
break;
|
|
case 12:
|
|
// LD1Fourv1d_POST, LD1Onev1d_POST, LD1Rv1d_POST, LD1Threev1d_POST, LD1Tw...
|
|
printTypedVectorList(MI, 1, O, 1, 'd', MRI);
|
|
SStream_concat0(O, ", [");
|
|
set_mem_access(MI, true);
|
|
printOperand(MI, 2, O);
|
|
SStream_concat0(O, "], ");
|
|
set_mem_access(MI, false);
|
|
break;
|
|
case 13:
|
|
// LD1Fourv2d, LD1Onev2d, LD1Rv2d, LD1Threev2d, LD1Twov2d, LD2Rv2d, LD2Tw...
|
|
printTypedVectorList(MI, 0, O, 2, 'd', MRI);
|
|
SStream_concat0(O, ", [");
|
|
set_mem_access(MI, true);
|
|
printOperand(MI, 1, O);
|
|
SStream_concat0(O, "]");
|
|
set_mem_access(MI, false);
|
|
return;
|
|
break;
|
|
case 14:
|
|
// LD1Fourv2d_POST, LD1Onev2d_POST, LD1Rv2d_POST, LD1Threev2d_POST, LD1Tw...
|
|
printTypedVectorList(MI, 1, O, 2, 'd', MRI);
|
|
SStream_concat0(O, ", [");
|
|
set_mem_access(MI, true);
|
|
printOperand(MI, 2, O);
|
|
SStream_concat0(O, "], ");
|
|
set_mem_access(MI, false);
|
|
break;
|
|
case 15:
|
|
// LD1Fourv2s, LD1Onev2s, LD1Rv2s, LD1Threev2s, LD1Twov2s, LD2Rv2s, LD2Tw...
|
|
printTypedVectorList(MI, 0, O, 2, 's', MRI);
|
|
SStream_concat0(O, ", [");
|
|
set_mem_access(MI, true);
|
|
printOperand(MI, 1, O);
|
|
SStream_concat0(O, "]");
|
|
set_mem_access(MI, false);
|
|
return;
|
|
break;
|
|
case 16:
|
|
// LD1Fourv2s_POST, LD1Onev2s_POST, LD1Rv2s_POST, LD1Threev2s_POST, LD1Tw...
|
|
printTypedVectorList(MI, 1, O, 2, 's', MRI);
|
|
SStream_concat0(O, ", [");
|
|
set_mem_access(MI, true);
|
|
printOperand(MI, 2, O);
|
|
SStream_concat0(O, "], ");
|
|
set_mem_access(MI, false);
|
|
break;
|
|
case 17:
|
|
// LD1Fourv4h, LD1Onev4h, LD1Rv4h, LD1Threev4h, LD1Twov4h, LD2Rv4h, LD2Tw...
|
|
printTypedVectorList(MI, 0, O, 4, 'h', MRI);
|
|
SStream_concat0(O, ", [");
|
|
set_mem_access(MI, true);
|
|
printOperand(MI, 1, O);
|
|
SStream_concat0(O, "]");
|
|
set_mem_access(MI, false);
|
|
return;
|
|
break;
|
|
case 18:
|
|
// LD1Fourv4h_POST, LD1Onev4h_POST, LD1Rv4h_POST, LD1Threev4h_POST, LD1Tw...
|
|
printTypedVectorList(MI, 1, O, 4, 'h', MRI);
|
|
SStream_concat0(O, ", [");
|
|
set_mem_access(MI, true);
|
|
printOperand(MI, 2, O);
|
|
SStream_concat0(O, "], ");
|
|
set_mem_access(MI, false);
|
|
break;
|
|
case 19:
|
|
// LD1Fourv4s, LD1Onev4s, LD1Rv4s, LD1Threev4s, LD1Twov4s, LD2Rv4s, LD2Tw...
|
|
printTypedVectorList(MI, 0, O, 4, 's', MRI);
|
|
SStream_concat0(O, ", [");
|
|
set_mem_access(MI, true);
|
|
printOperand(MI, 1, O);
|
|
SStream_concat0(O, "]");
|
|
set_mem_access(MI, false);
|
|
return;
|
|
break;
|
|
case 20:
|
|
// LD1Fourv4s_POST, LD1Onev4s_POST, LD1Rv4s_POST, LD1Threev4s_POST, LD1Tw...
|
|
printTypedVectorList(MI, 1, O, 4, 's', MRI);
|
|
SStream_concat0(O, ", [");
|
|
set_mem_access(MI, true);
|
|
printOperand(MI, 2, O);
|
|
SStream_concat0(O, "], ");
|
|
set_mem_access(MI, false);
|
|
break;
|
|
case 21:
|
|
// LD1Fourv8b, LD1Onev8b, LD1Rv8b, LD1Threev8b, LD1Twov8b, LD2Rv8b, LD2Tw...
|
|
printTypedVectorList(MI, 0, O, 8, 'b', MRI);
|
|
SStream_concat0(O, ", [");
|
|
set_mem_access(MI, true);
|
|
printOperand(MI, 1, O);
|
|
SStream_concat0(O, "]");
|
|
set_mem_access(MI, false);
|
|
return;
|
|
break;
|
|
case 22:
|
|
// LD1Fourv8b_POST, LD1Onev8b_POST, LD1Rv8b_POST, LD1Threev8b_POST, LD1Tw...
|
|
printTypedVectorList(MI, 1, O, 8, 'b', MRI);
|
|
SStream_concat0(O, ", [");
|
|
set_mem_access(MI, true);
|
|
printOperand(MI, 2, O);
|
|
SStream_concat0(O, "], ");
|
|
set_mem_access(MI, false);
|
|
break;
|
|
case 23:
|
|
// LD1Fourv8h, LD1Onev8h, LD1Rv8h, LD1Threev8h, LD1Twov8h, LD2Rv8h, LD2Tw...
|
|
printTypedVectorList(MI, 0, O, 8, 'h', MRI);
|
|
SStream_concat0(O, ", [");
|
|
set_mem_access(MI, true);
|
|
printOperand(MI, 1, O);
|
|
SStream_concat0(O, "]");
|
|
set_mem_access(MI, false);
|
|
return;
|
|
break;
|
|
case 24:
|
|
// LD1Fourv8h_POST, LD1Onev8h_POST, LD1Rv8h_POST, LD1Threev8h_POST, LD1Tw...
|
|
printTypedVectorList(MI, 1, O, 8, 'h', MRI);
|
|
SStream_concat0(O, ", [");
|
|
set_mem_access(MI, true);
|
|
printOperand(MI, 2, O);
|
|
SStream_concat0(O, "], ");
|
|
set_mem_access(MI, false);
|
|
break;
|
|
case 25:
|
|
// LD1i16, LD2i16, LD3i16, LD4i16, ST1i16_POST, ST2i16_POST, ST3i16_POST,...
|
|
printTypedVectorList(MI, 1, O, 0, 'h', MRI);
|
|
printVectorIndex(MI, 2, O);
|
|
SStream_concat0(O, ", [");
|
|
set_mem_access(MI, true);
|
|
printOperand(MI, 3, O);
|
|
break;
|
|
case 26:
|
|
// LD1i16_POST, LD2i16_POST, LD3i16_POST, LD4i16_POST
|
|
printTypedVectorList(MI, 2, O, 0, 'h', MRI);
|
|
printVectorIndex(MI, 3, O);
|
|
SStream_concat0(O, ", [");
|
|
set_mem_access(MI, true);
|
|
printOperand(MI, 4, O);
|
|
SStream_concat0(O, "], ");
|
|
set_mem_access(MI, false);
|
|
break;
|
|
case 27:
|
|
// LD1i32, LD2i32, LD3i32, LD4i32, ST1i32_POST, ST2i32_POST, ST3i32_POST,...
|
|
printTypedVectorList(MI, 1, O, 0, 's', MRI);
|
|
printVectorIndex(MI, 2, O);
|
|
SStream_concat0(O, ", [");
|
|
set_mem_access(MI, true);
|
|
printOperand(MI, 3, O);
|
|
break;
|
|
case 28:
|
|
// LD1i32_POST, LD2i32_POST, LD3i32_POST, LD4i32_POST
|
|
printTypedVectorList(MI, 2, O, 0, 's', MRI);
|
|
printVectorIndex(MI, 3, O);
|
|
SStream_concat0(O, ", [");
|
|
set_mem_access(MI, true);
|
|
printOperand(MI, 4, O);
|
|
SStream_concat0(O, "], ");
|
|
set_mem_access(MI, false);
|
|
break;
|
|
case 29:
|
|
// LD1i64, LD2i64, LD3i64, LD4i64, ST1i64_POST, ST2i64_POST, ST3i64_POST,...
|
|
printTypedVectorList(MI, 1, O, 0, 'd', MRI);
|
|
printVectorIndex(MI, 2, O);
|
|
SStream_concat0(O, ", [");
|
|
set_mem_access(MI, true);
|
|
printOperand(MI, 3, O);
|
|
break;
|
|
case 30:
|
|
// LD1i64_POST, LD2i64_POST, LD3i64_POST, LD4i64_POST
|
|
printTypedVectorList(MI, 2, O, 0, 'd', MRI);
|
|
printVectorIndex(MI, 3, O);
|
|
SStream_concat0(O, ", [");
|
|
set_mem_access(MI, true);
|
|
printOperand(MI, 4, O);
|
|
SStream_concat0(O, "], ");
|
|
set_mem_access(MI, false);
|
|
break;
|
|
case 31:
|
|
// LD1i8, LD2i8, LD3i8, LD4i8, ST1i8_POST, ST2i8_POST, ST3i8_POST, ST4i8_...
|
|
printTypedVectorList(MI, 1, O, 0, 'b', MRI);
|
|
printVectorIndex(MI, 2, O);
|
|
SStream_concat0(O, ", [");
|
|
set_mem_access(MI, true);
|
|
printOperand(MI, 3, O);
|
|
break;
|
|
case 32:
|
|
// LD1i8_POST, LD2i8_POST, LD3i8_POST, LD4i8_POST
|
|
printTypedVectorList(MI, 2, O, 0, 'b', MRI);
|
|
printVectorIndex(MI, 3, O);
|
|
SStream_concat0(O, ", [");
|
|
set_mem_access(MI, true);
|
|
printOperand(MI, 4, O);
|
|
SStream_concat0(O, "], ");
|
|
set_mem_access(MI, false);
|
|
break;
|
|
case 33:
|
|
// MSR
|
|
printMSRSystemRegister(MI, 0, O);
|
|
SStream_concat0(O, ", ");
|
|
printOperand(MI, 1, O);
|
|
return;
|
|
break;
|
|
case 34:
|
|
// MSRpstate
|
|
printSystemPStateField(MI, 0, O);
|
|
SStream_concat0(O, ", ");
|
|
printOperand(MI, 1, O);
|
|
return;
|
|
break;
|
|
case 35:
|
|
// PRFMl, PRFMroW, PRFMroX, PRFMui, PRFUMi
|
|
printPrefetchOp(MI, 0, O);
|
|
break;
|
|
case 36:
|
|
// ST1i16, ST2i16, ST3i16, ST4i16
|
|
printTypedVectorList(MI, 0, O, 0, 'h', MRI);
|
|
printVectorIndex(MI, 1, O);
|
|
SStream_concat0(O, ", [");
|
|
set_mem_access(MI, true);
|
|
printOperand(MI, 2, O);
|
|
SStream_concat0(O, "]");
|
|
set_mem_access(MI, false);
|
|
return;
|
|
break;
|
|
case 37:
|
|
// ST1i32, ST2i32, ST3i32, ST4i32
|
|
printTypedVectorList(MI, 0, O, 0, 's', MRI);
|
|
printVectorIndex(MI, 1, O);
|
|
SStream_concat0(O, ", [");
|
|
set_mem_access(MI, true);
|
|
printOperand(MI, 2, O);
|
|
SStream_concat0(O, "]");
|
|
set_mem_access(MI, false);
|
|
return;
|
|
break;
|
|
case 38:
|
|
// ST1i64, ST2i64, ST3i64, ST4i64
|
|
printTypedVectorList(MI, 0, O, 0, 'd', MRI);
|
|
printVectorIndex(MI, 1, O);
|
|
SStream_concat0(O, ", [");
|
|
set_mem_access(MI, true);
|
|
printOperand(MI, 2, O);
|
|
SStream_concat0(O, "]");
|
|
set_mem_access(MI, false);
|
|
return;
|
|
break;
|
|
case 39:
|
|
// ST1i8, ST2i8, ST3i8, ST4i8
|
|
printTypedVectorList(MI, 0, O, 0, 'b', MRI);
|
|
printVectorIndex(MI, 1, O);
|
|
SStream_concat0(O, ", [");
|
|
set_mem_access(MI, true);
|
|
printOperand(MI, 2, O);
|
|
SStream_concat0(O, "]");
|
|
set_mem_access(MI, false);
|
|
return;
|
|
break;
|
|
}
|
|
|
|
|
|
// Fragment 1 encoded into 6 bits for 41 unique commands.
|
|
//printf("Frag-1: %"PRIu64"\n", (Bits >> 18) & 63);
|
|
switch ((Bits >> 18) & 63) {
|
|
default: // unreachable.
|
|
case 0:
|
|
// ABSv16i8, ADDHNv8i16_v16i8, ADDPv16i8, ADDv16i8, AESDrr, AESErr, AESIM...
|
|
SStream_concat0(O, ".16b, ");
|
|
arm64_op_addVectorArrSpecifier(MI, ARM64_VAS_16B);
|
|
break;
|
|
case 1:
|
|
// ABSv1i64, ADCSWr, ADCSXr, ADCWr, ADCXr, ADDPv2i64p, ADDSWri, ADDSWrs, ...
|
|
SStream_concat0(O, ", ");
|
|
break;
|
|
case 2:
|
|
// ABSv2i32, ADDHNv2i64_v2i32, ADDPv2i32, ADDv2i32, BICv2i32, CLSv2i32, C...
|
|
SStream_concat0(O, ".2s, ");
|
|
arm64_op_addVectorArrSpecifier(MI, ARM64_VAS_2S);
|
|
break;
|
|
case 3:
|
|
// ABSv2i64, ADDPv2i64, ADDv2i64, CMEQv2i64, CMEQv2i64rz, CMGEv2i64, CMGE...
|
|
SStream_concat0(O, ".2d, ");
|
|
arm64_op_addVectorArrSpecifier(MI, ARM64_VAS_2D);
|
|
break;
|
|
case 4:
|
|
// ABSv4i16, ADDHNv4i32_v4i16, ADDPv4i16, ADDv4i16, BICv4i16, CLSv4i16, C...
|
|
SStream_concat0(O, ".4h, ");
|
|
arm64_op_addVectorArrSpecifier(MI, ARM64_VAS_4H);
|
|
break;
|
|
case 5:
|
|
// ABSv4i32, ADDHNv2i64_v4i32, ADDPv4i32, ADDv4i32, BICv4i32, CLSv4i32, C...
|
|
SStream_concat0(O, ".4s, ");
|
|
arm64_op_addVectorArrSpecifier(MI, ARM64_VAS_4S);
|
|
break;
|
|
case 6:
|
|
// ABSv8i16, ADDHNv4i32_v8i16, ADDPv8i16, ADDv8i16, BICv8i16, CLSv8i16, C...
|
|
SStream_concat0(O, ".8h, ");
|
|
arm64_op_addVectorArrSpecifier(MI, ARM64_VAS_8H);
|
|
break;
|
|
case 7:
|
|
// ABSv8i8, ADDHNv8i16_v8i8, ADDPv8i8, ADDv8i8, ANDv8i8, BICv8i8, BIFv8i8...
|
|
SStream_concat0(O, ".8b, ");
|
|
arm64_op_addVectorArrSpecifier(MI, ARM64_VAS_8B);
|
|
break;
|
|
case 8:
|
|
// BLR, BR, CLREX, RET, TLSDESCCALL
|
|
return;
|
|
break;
|
|
case 9:
|
|
// FCMPDri, FCMPEDri, FCMPESri, FCMPSri
|
|
SStream_concat0(O, ", #0.0");
|
|
arm64_op_addFP(MI, 0.0);
|
|
return;
|
|
break;
|
|
case 10:
|
|
// FMOVXDHighr, INSvi64gpr, INSvi64lane
|
|
SStream_concat0(O, ".d");
|
|
arm64_op_addVectorElementSizeSpecifier(MI, ARM64_VESS_D);
|
|
printVectorIndex(MI, 2, O);
|
|
SStream_concat0(O, ", ");
|
|
break;
|
|
case 11:
|
|
// INSvi16gpr, INSvi16lane
|
|
SStream_concat0(O, ".h");
|
|
arm64_op_addVectorElementSizeSpecifier(MI, ARM64_VESS_H);
|
|
printVectorIndex(MI, 2, O);
|
|
SStream_concat0(O, ", ");
|
|
break;
|
|
case 12:
|
|
// INSvi32gpr, INSvi32lane
|
|
SStream_concat0(O, ".s");
|
|
arm64_op_addVectorElementSizeSpecifier(MI, ARM64_VESS_S);
|
|
printVectorIndex(MI, 2, O);
|
|
SStream_concat0(O, ", ");
|
|
break;
|
|
case 13:
|
|
// INSvi8gpr, INSvi8lane
|
|
SStream_concat0(O, ".b");
|
|
arm64_op_addVectorElementSizeSpecifier(MI, ARM64_VESS_B);
|
|
printVectorIndex(MI, 2, O);
|
|
SStream_concat0(O, ", ");
|
|
break;
|
|
case 14:
|
|
// LD1Fourv16b_POST, LD1Fourv2d_POST, LD1Fourv4s_POST, LD1Fourv8h_POST, L...
|
|
printPostIncOperand2(MI, 3, O, 64);
|
|
return;
|
|
break;
|
|
case 15:
|
|
// LD1Fourv1d_POST, LD1Fourv2s_POST, LD1Fourv4h_POST, LD1Fourv8b_POST, LD...
|
|
printPostIncOperand2(MI, 3, O, 32);
|
|
return;
|
|
break;
|
|
case 16:
|
|
// LD1Onev16b_POST, LD1Onev2d_POST, LD1Onev4s_POST, LD1Onev8h_POST, LD1Tw...
|
|
printPostIncOperand2(MI, 3, O, 16);
|
|
return;
|
|
break;
|
|
case 17:
|
|
// LD1Onev1d_POST, LD1Onev2s_POST, LD1Onev4h_POST, LD1Onev8b_POST, LD1Rv1...
|
|
printPostIncOperand2(MI, 3, O, 8);
|
|
return;
|
|
break;
|
|
case 18:
|
|
// LD1Rv16b_POST, LD1Rv8b_POST
|
|
printPostIncOperand2(MI, 3, O, 1);
|
|
return;
|
|
break;
|
|
case 19:
|
|
// LD1Rv2s_POST, LD1Rv4s_POST, LD2Rv4h_POST, LD2Rv8h_POST, LD4Rv16b_POST,...
|
|
printPostIncOperand2(MI, 3, O, 4);
|
|
return;
|
|
break;
|
|
case 20:
|
|
// LD1Rv4h_POST, LD1Rv8h_POST, LD2Rv16b_POST, LD2Rv8b_POST
|
|
printPostIncOperand2(MI, 3, O, 2);
|
|
return;
|
|
break;
|
|
case 21:
|
|
// LD1Threev16b_POST, LD1Threev2d_POST, LD1Threev4s_POST, LD1Threev8h_POS...
|
|
printPostIncOperand2(MI, 3, O, 48);
|
|
return;
|
|
break;
|
|
case 22:
|
|
// LD1Threev1d_POST, LD1Threev2s_POST, LD1Threev4h_POST, LD1Threev8b_POST...
|
|
printPostIncOperand2(MI, 3, O, 24);
|
|
return;
|
|
break;
|
|
case 23:
|
|
// LD1i16, LD1i32, LD1i64, LD1i8, LD2i16, LD2i32, LD2i64, LD2i8, LD3i16, ...
|
|
SStream_concat0(O, "]");
|
|
set_mem_access(MI, false);
|
|
return;
|
|
break;
|
|
case 24:
|
|
// LD1i16_POST, LD2i8_POST
|
|
printPostIncOperand2(MI, 5, O, 2);
|
|
return;
|
|
break;
|
|
case 25:
|
|
// LD1i32_POST, LD2i16_POST, LD4i8_POST
|
|
printPostIncOperand2(MI, 5, O, 4);
|
|
return;
|
|
break;
|
|
case 26:
|
|
// LD1i64_POST, LD2i32_POST, LD4i16_POST
|
|
printPostIncOperand2(MI, 5, O, 8);
|
|
return;
|
|
break;
|
|
case 27:
|
|
// LD1i8_POST
|
|
printPostIncOperand2(MI, 5, O, 1);
|
|
return;
|
|
break;
|
|
case 28:
|
|
// LD2i64_POST, LD4i32_POST
|
|
printPostIncOperand2(MI, 5, O, 16);
|
|
return;
|
|
break;
|
|
case 29:
|
|
// LD3Rv16b_POST, LD3Rv8b_POST
|
|
printPostIncOperand2(MI, 3, O, 3);
|
|
return;
|
|
break;
|
|
case 30:
|
|
// LD3Rv2s_POST, LD3Rv4s_POST
|
|
printPostIncOperand2(MI, 3, O, 12);
|
|
return;
|
|
break;
|
|
case 31:
|
|
// LD3Rv4h_POST, LD3Rv8h_POST
|
|
printPostIncOperand2(MI, 3, O, 6);
|
|
return;
|
|
break;
|
|
case 32:
|
|
// LD3i16_POST
|
|
printPostIncOperand2(MI, 5, O, 6);
|
|
return;
|
|
break;
|
|
case 33:
|
|
// LD3i32_POST
|
|
printPostIncOperand2(MI, 5, O, 12);
|
|
return;
|
|
break;
|
|
case 34:
|
|
// LD3i64_POST
|
|
printPostIncOperand2(MI, 5, O, 24);
|
|
return;
|
|
break;
|
|
case 35:
|
|
// LD3i8_POST
|
|
printPostIncOperand2(MI, 5, O, 3);
|
|
return;
|
|
break;
|
|
case 36:
|
|
// LD4i64_POST
|
|
printPostIncOperand2(MI, 5, O, 32);
|
|
return;
|
|
break;
|
|
case 37:
|
|
// LDARB, LDARH, LDARW, LDARX, LDAXRB, LDAXRH, LDAXRW, LDAXRX, LDRBBpost,...
|
|
SStream_concat0(O, ", [");
|
|
set_mem_access(MI, true);
|
|
break;
|
|
case 38:
|
|
// PMULLv1i64, PMULLv2i64
|
|
SStream_concat0(O, ".1q, ");
|
|
arm64_op_addVectorArrSpecifier(MI, ARM64_VAS_1Q);
|
|
printVRegOperand(MI, 1, O);
|
|
break;
|
|
case 39:
|
|
// SADALPv2i32_v1i64, SADDLPv2i32_v1i64, UADALPv2i32_v1i64, UADDLPv2i32_v...
|
|
SStream_concat0(O, ".1d, ");
|
|
arm64_op_addVectorArrSpecifier(MI, ARM64_VAS_1D);
|
|
break;
|
|
case 40:
|
|
// ST1i16_POST, ST1i32_POST, ST1i64_POST, ST1i8_POST, ST2i16_POST, ST2i32...
|
|
SStream_concat0(O, "], ");
|
|
set_mem_access(MI, false);
|
|
break;
|
|
}
|
|
|
|
|
|
// Fragment 2 encoded into 5 bits for 28 unique commands.
|
|
//printf("Frag-2: %"PRIu64"\n", (Bits >> 24) & 31);
|
|
switch ((Bits >> 24) & 31) {
|
|
default: // unreachable.
|
|
case 0:
|
|
// ABSv16i8, ABSv2i32, ABSv2i64, ABSv4i16, ABSv4i32, ABSv8i16, ABSv8i8, A...
|
|
printVRegOperand(MI, 1, O);
|
|
break;
|
|
case 1:
|
|
// ABSv1i64, ADCSWr, ADCSXr, ADCWr, ADCXr, ADDSWri, ADDSWrs, ADDSWrx, ADD...
|
|
printOperand(MI, 1, O);
|
|
break;
|
|
case 2:
|
|
// ADDHNv2i64_v4i32, ADDHNv4i32_v8i16, ADDHNv8i16_v16i8, AESDrr, AESErr, ...
|
|
printVRegOperand(MI, 2, O);
|
|
break;
|
|
case 3:
|
|
// ADRP
|
|
printAdrpLabel(MI, 1, O);
|
|
return;
|
|
break;
|
|
case 4:
|
|
// BFMWri, BFMXri, FMLAv1i32_indexed, FMLAv1i64_indexed, FMLSv1i32_indexe...
|
|
printOperand(MI, 2, O);
|
|
break;
|
|
case 5:
|
|
// BICv2i32, BICv4i16, BICv4i32, BICv8i16, MOVKWi, MOVKXi, ORRv2i32, ORRv...
|
|
printHexImm(MI, 2, O);
|
|
printShifter(MI, 3, O);
|
|
return;
|
|
break;
|
|
case 6:
|
|
// CBNZW, CBNZX, CBZW, CBZX, LDRDl, LDRQl, LDRSWl, LDRSl, LDRWl, LDRXl, P...
|
|
printAlignedLabel(MI, 1, O);
|
|
return;
|
|
break;
|
|
case 7:
|
|
// FMOVDi, FMOVSi, FMOVv2f32_ns, FMOVv2f64_ns, FMOVv4f32_ns
|
|
printFPImmOperand(MI, 1, O);
|
|
return;
|
|
break;
|
|
case 8:
|
|
// INSvi16gpr, INSvi32gpr, INSvi64gpr, INSvi8gpr
|
|
printOperand(MI, 3, O);
|
|
return;
|
|
break;
|
|
case 9:
|
|
// INSvi16lane, INSvi32lane, INSvi64lane, INSvi8lane
|
|
printVRegOperand(MI, 3, O);
|
|
break;
|
|
case 10:
|
|
// MOVID, MOVIv2d_ns
|
|
printSIMDType10Operand(MI, 1, O);
|
|
return;
|
|
break;
|
|
case 11:
|
|
// MOVIv16b_ns, MOVIv2i32, MOVIv2s_msl, MOVIv4i16, MOVIv4i32, MOVIv4s_msl...
|
|
printHexImm(MI, 1, O);
|
|
break;
|
|
case 12:
|
|
// MRS
|
|
printMRSSystemRegister(MI, 1, O);
|
|
return;
|
|
break;
|
|
case 13:
|
|
// PMULLv1i64
|
|
SStream_concat0(O, ".1d, ");
|
|
arm64_op_addVectorArrSpecifier(MI, ARM64_VAS_1D);
|
|
printVRegOperand(MI, 2, O);
|
|
SStream_concat0(O, ".1d");
|
|
arm64_op_addVectorArrSpecifier(MI, ARM64_VAS_1D);
|
|
return;
|
|
break;
|
|
case 14:
|
|
// PMULLv2i64
|
|
SStream_concat0(O, ".2d, ");
|
|
arm64_op_addVectorArrSpecifier(MI, ARM64_VAS_2D);
|
|
printVRegOperand(MI, 2, O);
|
|
SStream_concat0(O, ".2d");
|
|
arm64_op_addVectorArrSpecifier(MI, ARM64_VAS_2D);
|
|
return;
|
|
break;
|
|
case 15:
|
|
// ST1i16_POST, ST2i8_POST
|
|
printPostIncOperand2(MI, 4, O, 2);
|
|
return;
|
|
break;
|
|
case 16:
|
|
// ST1i32_POST, ST2i16_POST, ST4i8_POST
|
|
printPostIncOperand2(MI, 4, O, 4);
|
|
return;
|
|
break;
|
|
case 17:
|
|
// ST1i64_POST, ST2i32_POST, ST4i16_POST
|
|
printPostIncOperand2(MI, 4, O, 8);
|
|
return;
|
|
break;
|
|
case 18:
|
|
// ST1i8_POST
|
|
printPostIncOperand2(MI, 4, O, 1);
|
|
return;
|
|
break;
|
|
case 19:
|
|
// ST2i64_POST, ST4i32_POST
|
|
printPostIncOperand2(MI, 4, O, 16);
|
|
return;
|
|
break;
|
|
case 20:
|
|
// ST3i16_POST
|
|
printPostIncOperand2(MI, 4, O, 6);
|
|
return;
|
|
break;
|
|
case 21:
|
|
// ST3i32_POST
|
|
printPostIncOperand2(MI, 4, O, 12);
|
|
return;
|
|
break;
|
|
case 22:
|
|
// ST3i64_POST
|
|
printPostIncOperand2(MI, 4, O, 24);
|
|
return;
|
|
break;
|
|
case 23:
|
|
// ST3i8_POST
|
|
printPostIncOperand2(MI, 4, O, 3);
|
|
return;
|
|
break;
|
|
case 24:
|
|
// ST4i64_POST
|
|
printPostIncOperand2(MI, 4, O, 32);
|
|
return;
|
|
break;
|
|
case 25:
|
|
// SYSxt
|
|
printSysCROperand(MI, 1, O);
|
|
SStream_concat0(O, ", ");
|
|
printSysCROperand(MI, 2, O);
|
|
SStream_concat0(O, ", ");
|
|
printOperand(MI, 3, O);
|
|
SStream_concat0(O, ", ");
|
|
printOperand(MI, 4, O);
|
|
return;
|
|
break;
|
|
case 26:
|
|
// TBLv16i8Four, TBLv16i8One, TBLv16i8Three, TBLv16i8Two, TBLv8i8Four, TB...
|
|
printTypedVectorList(MI, 1, O, 16, 'b', MRI);
|
|
SStream_concat0(O, ", ");
|
|
printVRegOperand(MI, 2, O);
|
|
break;
|
|
case 27:
|
|
// TBXv16i8Four, TBXv16i8One, TBXv16i8Three, TBXv16i8Two, TBXv8i8Four, TB...
|
|
printTypedVectorList(MI, 2, O, 16, 'b', MRI);
|
|
SStream_concat0(O, ", ");
|
|
printVRegOperand(MI, 3, O);
|
|
break;
|
|
}
|
|
|
|
|
|
// Fragment 3 encoded into 6 bits for 42 unique commands.
|
|
//printf("Frag-3: %"PRIu64"\n", (Bits >> 29) & 63);
|
|
switch ((Bits >> 29) & 63) {
|
|
default: // unreachable.
|
|
case 0:
|
|
// ABSv16i8, ADDVv16i8v, AESDrr, AESErr, AESIMCrr, AESMCrr, CLSv16i8, CLZ...
|
|
SStream_concat0(O, ".16b");
|
|
arm64_op_addVectorArrSpecifier(MI, ARM64_VAS_16B);
|
|
return;
|
|
break;
|
|
case 1:
|
|
// ABSv1i64, ADR, CLSWr, CLSXr, CLZWr, CLZXr, DUPv16i8gpr, DUPv2i32gpr, D...
|
|
return;
|
|
break;
|
|
case 2:
|
|
// ABSv2i32, CLSv2i32, CLZv2i32, FABSv2f32, FADDPv2i32p, FCVTASv2f32, FCV...
|
|
SStream_concat0(O, ".2s");
|
|
arm64_op_addVectorArrSpecifier(MI, ARM64_VAS_2S);
|
|
return;
|
|
break;
|
|
case 3:
|
|
// ABSv2i64, ADDPv2i64p, FABSv2f64, FADDPv2i64p, FCVTASv2f64, FCVTAUv2f64...
|
|
SStream_concat0(O, ".2d");
|
|
arm64_op_addVectorArrSpecifier(MI, ARM64_VAS_2D);
|
|
return;
|
|
break;
|
|
case 4:
|
|
// ABSv4i16, ADDVv4i16v, CLSv4i16, CLZv4i16, FCVTLv4i16, NEGv4i16, REV32v...
|
|
SStream_concat0(O, ".4h");
|
|
arm64_op_addVectorArrSpecifier(MI, ARM64_VAS_4H);
|
|
return;
|
|
break;
|
|
case 5:
|
|
// ABSv4i32, ADDVv4i32v, CLSv4i32, CLZv4i32, FABSv4f32, FCVTASv4f32, FCVT...
|
|
SStream_concat0(O, ".4s");
|
|
arm64_op_addVectorArrSpecifier(MI, ARM64_VAS_4S);
|
|
return;
|
|
break;
|
|
case 6:
|
|
// ABSv8i16, ADDVv8i16v, CLSv8i16, CLZv8i16, FCVTLv8i16, NEGv8i16, REV32v...
|
|
SStream_concat0(O, ".8h");
|
|
arm64_op_addVectorArrSpecifier(MI, ARM64_VAS_8H);
|
|
return;
|
|
break;
|
|
case 7:
|
|
// ABSv8i8, ADDVv8i8v, CLSv8i8, CLZv8i8, CNTv8i8, NEGv8i8, NOTv8i8, RBITv...
|
|
SStream_concat0(O, ".8b");
|
|
arm64_op_addVectorArrSpecifier(MI, ARM64_VAS_8B);
|
|
return;
|
|
break;
|
|
case 8:
|
|
// ADCSWr, ADCSXr, ADCWr, ADCXr, ADDSWri, ADDSWrs, ADDSWrx, ADDSXri, ADDS...
|
|
SStream_concat0(O, ", ");
|
|
break;
|
|
case 9:
|
|
// ADDHNv2i64_v2i32, ADDHNv2i64_v4i32, ADDPv2i64, ADDv2i64, CMEQv2i64, CM...
|
|
SStream_concat0(O, ".2d, ");
|
|
arm64_op_addVectorArrSpecifier(MI, ARM64_VAS_2D);
|
|
break;
|
|
case 10:
|
|
// ADDHNv4i32_v4i16, ADDHNv4i32_v8i16, ADDPv4i32, ADDv4i32, CMEQv4i32, CM...
|
|
SStream_concat0(O, ".4s, ");
|
|
arm64_op_addVectorArrSpecifier(MI, ARM64_VAS_4S);
|
|
break;
|
|
case 11:
|
|
// ADDHNv8i16_v16i8, ADDHNv8i16_v8i8, ADDPv8i16, ADDv8i16, CMEQv8i16, CMG...
|
|
SStream_concat0(O, ".8h, ");
|
|
arm64_op_addVectorArrSpecifier(MI, ARM64_VAS_8H);
|
|
break;
|
|
case 12:
|
|
// ADDPv16i8, ADDv16i8, ANDv16i8, BICv16i8, BIFv16i8, BITv16i8, BSLv16i8,...
|
|
SStream_concat0(O, ".16b, ");
|
|
arm64_op_addVectorArrSpecifier(MI, ARM64_VAS_16B);
|
|
break;
|
|
case 13:
|
|
// ADDPv2i32, ADDv2i32, CMEQv2i32, CMGEv2i32, CMGTv2i32, CMHIv2i32, CMHSv...
|
|
SStream_concat0(O, ".2s, ");
|
|
arm64_op_addVectorArrSpecifier(MI, ARM64_VAS_2S);
|
|
break;
|
|
case 14:
|
|
// ADDPv4i16, ADDv4i16, CMEQv4i16, CMGEv4i16, CMGTv4i16, CMHIv4i16, CMHSv...
|
|
SStream_concat0(O, ".4h, ");
|
|
arm64_op_addVectorArrSpecifier(MI, ARM64_VAS_4H);
|
|
break;
|
|
case 15:
|
|
// ADDPv8i8, ADDv8i8, ANDv8i8, BICv8i8, BIFv8i8, BITv8i8, BSLv8i8, CMEQv8...
|
|
SStream_concat0(O, ".8b, ");
|
|
arm64_op_addVectorArrSpecifier(MI, ARM64_VAS_8B);
|
|
break;
|
|
case 16:
|
|
// CMEQv16i8rz, CMGEv16i8rz, CMGTv16i8rz, CMLEv16i8rz, CMLTv16i8rz
|
|
SStream_concat0(O, ".16b, #0");
|
|
arm64_op_addVectorArrSpecifier(MI, ARM64_VAS_16B);
|
|
arm64_op_addFP(MI, 0.0);
|
|
return;
|
|
break;
|
|
case 17:
|
|
// CMEQv1i64rz, CMGEv1i64rz, CMGTv1i64rz, CMLEv1i64rz, CMLTv1i64rz
|
|
SStream_concat0(O, ", #0");
|
|
arm64_op_addImm(MI, 0);
|
|
return;
|
|
break;
|
|
case 18:
|
|
// CMEQv2i32rz, CMGEv2i32rz, CMGTv2i32rz, CMLEv2i32rz, CMLTv2i32rz
|
|
SStream_concat0(O, ".2s, #0");
|
|
arm64_op_addVectorArrSpecifier(MI, ARM64_VAS_2S);
|
|
arm64_op_addImm(MI, 0);
|
|
return;
|
|
break;
|
|
case 19:
|
|
// CMEQv2i64rz, CMGEv2i64rz, CMGTv2i64rz, CMLEv2i64rz, CMLTv2i64rz
|
|
SStream_concat0(O, ".2d, #0");
|
|
arm64_op_addVectorArrSpecifier(MI, ARM64_VAS_2D);
|
|
arm64_op_addImm(MI, 0);
|
|
return;
|
|
break;
|
|
case 20:
|
|
// CMEQv4i16rz, CMGEv4i16rz, CMGTv4i16rz, CMLEv4i16rz, CMLTv4i16rz
|
|
SStream_concat0(O, ".4h, #0");
|
|
arm64_op_addVectorArrSpecifier(MI, ARM64_VAS_4H);
|
|
arm64_op_addImm(MI, 0);
|
|
return;
|
|
break;
|
|
case 21:
|
|
// CMEQv4i32rz, CMGEv4i32rz, CMGTv4i32rz, CMLEv4i32rz, CMLTv4i32rz
|
|
SStream_concat0(O, ".4s, #0");
|
|
arm64_op_addVectorArrSpecifier(MI, ARM64_VAS_4S);
|
|
arm64_op_addImm(MI, 0);
|
|
return;
|
|
break;
|
|
case 22:
|
|
// CMEQv8i16rz, CMGEv8i16rz, CMGTv8i16rz, CMLEv8i16rz, CMLTv8i16rz
|
|
SStream_concat0(O, ".8h, #0");
|
|
arm64_op_addVectorArrSpecifier(MI, ARM64_VAS_8H);
|
|
arm64_op_addImm(MI, 0);
|
|
return;
|
|
break;
|
|
case 23:
|
|
// CMEQv8i8rz, CMGEv8i8rz, CMGTv8i8rz, CMLEv8i8rz, CMLTv8i8rz
|
|
SStream_concat0(O, ".8b, #0");
|
|
arm64_op_addVectorArrSpecifier(MI, ARM64_VAS_8B);
|
|
arm64_op_addImm(MI, 0);
|
|
return;
|
|
break;
|
|
case 24:
|
|
// CPYi16, DUPv4i16lane, DUPv8i16lane, INSvi16lane, SMOVvi16to32, SMOVvi1...
|
|
SStream_concat0(O, ".h");
|
|
arm64_op_addVectorElementSizeSpecifier(MI, ARM64_VESS_H);
|
|
break;
|
|
case 25:
|
|
// CPYi32, DUPv2i32lane, DUPv4i32lane, INSvi32lane, SMOVvi32to64, UMOVvi3...
|
|
SStream_concat0(O, ".s");
|
|
arm64_op_addVectorElementSizeSpecifier(MI, ARM64_VESS_S);
|
|
break;
|
|
case 26:
|
|
// CPYi64, DUPv2i64lane, FMOVDXHighr, INSvi64lane, UMOVvi64
|
|
SStream_concat0(O, ".d");
|
|
arm64_op_addVectorElementSizeSpecifier(MI, ARM64_VESS_D);
|
|
break;
|
|
case 27:
|
|
// CPYi8, DUPv16i8lane, DUPv8i8lane, INSvi8lane, SMOVvi8to32, SMOVvi8to64...
|
|
SStream_concat0(O, ".b");
|
|
arm64_op_addVectorElementSizeSpecifier(MI, ARM64_VESS_B);
|
|
break;
|
|
case 28:
|
|
// FCMEQv1i32rz, FCMEQv1i64rz, FCMGEv1i32rz, FCMGEv1i64rz, FCMGTv1i32rz, ...
|
|
SStream_concat0(O, ", #0.0");
|
|
arm64_op_addFP(MI, 0.0);
|
|
return;
|
|
break;
|
|
case 29:
|
|
// FCMEQv2i32rz, FCMGEv2i32rz, FCMGTv2i32rz, FCMLEv2i32rz, FCMLTv2i32rz
|
|
SStream_concat0(O, ".2s, #0.0");
|
|
arm64_op_addVectorArrSpecifier(MI, ARM64_VAS_2S);
|
|
arm64_op_addFP(MI, 0.0);
|
|
return;
|
|
break;
|
|
case 30:
|
|
// FCMEQv2i64rz, FCMGEv2i64rz, FCMGTv2i64rz, FCMLEv2i64rz, FCMLTv2i64rz
|
|
SStream_concat0(O, ".2d, #0.0");
|
|
arm64_op_addVectorArrSpecifier(MI, ARM64_VAS_2D);
|
|
arm64_op_addFP(MI, 0.0);
|
|
return;
|
|
break;
|
|
case 31:
|
|
// FCMEQv4i32rz, FCMGEv4i32rz, FCMGTv4i32rz, FCMLEv4i32rz, FCMLTv4i32rz
|
|
SStream_concat0(O, ".4s, #0.0");
|
|
arm64_op_addVectorArrSpecifier(MI, ARM64_VAS_4S);
|
|
arm64_op_addFP(MI, 0.0);
|
|
return;
|
|
break;
|
|
case 32:
|
|
// LDARB, LDARH, LDARW, LDARX, LDAXRB, LDAXRH, LDAXRW, LDAXRX, LDXRB, LDX...
|
|
SStream_concat0(O, "]");
|
|
set_mem_access(MI, false);
|
|
return;
|
|
break;
|
|
case 33:
|
|
// LDAXPW, LDAXPX, LDNPDi, LDNPQi, LDNPSi, LDNPWi, LDNPXi, LDPDi, LDPDpos...
|
|
SStream_concat0(O, ", [");
|
|
set_mem_access(MI, true);
|
|
break;
|
|
case 34:
|
|
// LDRBBpost, LDRBpost, LDRDpost, LDRHHpost, LDRHpost, LDRQpost, LDRSBWpo...
|
|
SStream_concat0(O, "], ");
|
|
set_mem_access(MI, false);
|
|
printOperand(MI, 3, O);
|
|
return;
|
|
break;
|
|
case 35:
|
|
// MOVIv2i32, MOVIv2s_msl, MOVIv4i16, MOVIv4i32, MOVIv4s_msl, MOVIv8i16, ...
|
|
printShifter(MI, 2, O);
|
|
return;
|
|
break;
|
|
case 36:
|
|
// SHLLv16i8
|
|
SStream_concat0(O, ".16b, #8");
|
|
arm64_op_addVectorArrSpecifier(MI, ARM64_VAS_16B);
|
|
arm64_op_addImm(MI, 8);
|
|
return;
|
|
break;
|
|
case 37:
|
|
// SHLLv2i32
|
|
SStream_concat0(O, ".2s, #32");
|
|
arm64_op_addVectorArrSpecifier(MI, ARM64_VAS_2S);
|
|
arm64_op_addImm(MI, 32);
|
|
return;
|
|
break;
|
|
case 38:
|
|
// SHLLv4i16
|
|
SStream_concat0(O, ".4h, #16");
|
|
arm64_op_addVectorArrSpecifier(MI, ARM64_VAS_4H);
|
|
arm64_op_addImm(MI, 16);
|
|
return;
|
|
break;
|
|
case 39:
|
|
// SHLLv4i32
|
|
SStream_concat0(O, ".4s, #32");
|
|
arm64_op_addVectorArrSpecifier(MI, ARM64_VAS_4S);
|
|
arm64_op_addImm(MI, 32);
|
|
return;
|
|
break;
|
|
case 40:
|
|
// SHLLv8i16
|
|
SStream_concat0(O, ".8h, #16");
|
|
arm64_op_addVectorArrSpecifier(MI, ARM64_VAS_8H);
|
|
arm64_op_addImm(MI, 16);
|
|
return;
|
|
break;
|
|
case 41:
|
|
// SHLLv8i8
|
|
SStream_concat0(O, ".8b, #8");
|
|
arm64_op_addVectorArrSpecifier(MI, ARM64_VAS_8B);
|
|
arm64_op_addImm(MI, 8);
|
|
return;
|
|
break;
|
|
}
|
|
|
|
|
|
// Fragment 4 encoded into 5 bits for 18 unique commands.
|
|
//printf("Frag-4: %"PRIu64"\n", (Bits >> 35) & 31);
|
|
switch ((Bits >> 35) & 31) {
|
|
default: // unreachable.
|
|
case 0:
|
|
// ADCSWr, ADCSXr, ADCWr, ADCXr, ADDSXrx64, ADDXrx64, ADDv1i64, ASRVWr, A...
|
|
printOperand(MI, 2, O);
|
|
break;
|
|
case 1:
|
|
// ADDHNv2i64_v2i32, ADDHNv4i32_v4i16, ADDHNv8i16_v8i8, ADDPv16i8, ADDPv2...
|
|
printVRegOperand(MI, 2, O);
|
|
break;
|
|
case 2:
|
|
// ADDHNv2i64_v4i32, ADDHNv4i32_v8i16, ADDHNv8i16_v16i8, BITv16i8, BITv8i...
|
|
printVRegOperand(MI, 3, O);
|
|
break;
|
|
case 3:
|
|
// ADDSWri, ADDSXri, ADDWri, ADDXri, SUBSWri, SUBSXri, SUBWri, SUBXri
|
|
printAddSubImm(MI, 2, O);
|
|
return;
|
|
break;
|
|
case 4:
|
|
// ADDSWrs, ADDSXrs, ADDWrs, ADDXrs, ANDSWrs, ANDSXrs, ANDWrs, ANDXrs, BI...
|
|
printShiftedRegister(MI, 2, O);
|
|
return;
|
|
break;
|
|
case 5:
|
|
// ADDSWrx, ADDSXrx, ADDWrx, ADDXrx, SUBSWrx, SUBSXrx, SUBWrx, SUBXrx
|
|
printExtendedRegister(MI, 2, O);
|
|
return;
|
|
break;
|
|
case 6:
|
|
// ANDSWri, ANDWri, EORWri, ORRWri
|
|
printLogicalImm32(MI, 2, O);
|
|
return;
|
|
break;
|
|
case 7:
|
|
// ANDSXri, ANDXri, EORXri, ORRXri
|
|
printLogicalImm64(MI, 2, O);
|
|
return;
|
|
break;
|
|
case 8:
|
|
// BFMWri, BFMXri, LDPDpost, LDPDpre, LDPQpost, LDPQpre, LDPSWpost, LDPSW...
|
|
printOperand(MI, 3, O);
|
|
break;
|
|
case 9:
|
|
// CPYi16, CPYi32, CPYi64, CPYi8, DUPv16i8lane, DUPv2i32lane, DUPv2i64lan...
|
|
printVectorIndex(MI, 2, O);
|
|
return;
|
|
break;
|
|
case 10:
|
|
// INSvi16lane, INSvi32lane, INSvi64lane, INSvi8lane
|
|
printVectorIndex(MI, 4, O);
|
|
return;
|
|
break;
|
|
case 11:
|
|
// LDRBBui, LDRBui, LDRSBWui, LDRSBXui, STRBBui, STRBui
|
|
printUImm12Offset2(MI, 2, O, 1);
|
|
SStream_concat0(O, "]");
|
|
set_mem_access(MI, false);
|
|
return;
|
|
break;
|
|
case 12:
|
|
// LDRDui, LDRXui, PRFMui, STRDui, STRXui
|
|
printUImm12Offset2(MI, 2, O, 8);
|
|
SStream_concat0(O, "]");
|
|
set_mem_access(MI, false);
|
|
return;
|
|
break;
|
|
case 13:
|
|
// LDRHHui, LDRHui, LDRSHWui, LDRSHXui, STRHHui, STRHui
|
|
printUImm12Offset2(MI, 2, O, 2);
|
|
SStream_concat0(O, "]");
|
|
set_mem_access(MI, false);
|
|
return;
|
|
break;
|
|
case 14:
|
|
// LDRQui, STRQui
|
|
printUImm12Offset2(MI, 2, O, 16);
|
|
SStream_concat0(O, "]");
|
|
set_mem_access(MI, false);
|
|
return;
|
|
break;
|
|
case 15:
|
|
// LDRSWui, LDRSui, LDRWui, STRSui, STRWui
|
|
printUImm12Offset2(MI, 2, O, 4);
|
|
SStream_concat0(O, "]");
|
|
set_mem_access(MI, false);
|
|
return;
|
|
break;
|
|
case 16:
|
|
// SYSLxt
|
|
printSysCROperand(MI, 2, O);
|
|
SStream_concat0(O, ", ");
|
|
printSysCROperand(MI, 3, O);
|
|
SStream_concat0(O, ", ");
|
|
printOperand(MI, 4, O);
|
|
return;
|
|
break;
|
|
case 17:
|
|
// TBNZW, TBNZX, TBZW, TBZX
|
|
printAlignedLabel(MI, 2, O);
|
|
return;
|
|
break;
|
|
}
|
|
|
|
|
|
// Fragment 5 encoded into 5 bits for 19 unique commands.
|
|
//printf("Frag-5: %"PRIu64"\n", (Bits >> 40) & 31);
|
|
switch ((Bits >> 40) & 31) {
|
|
default: // unreachable.
|
|
case 0:
|
|
// ADCSWr, ADCSXr, ADCWr, ADCXr, ADDv1i64, ASRVWr, ASRVXr, CMEQv1i64, CMG...
|
|
return;
|
|
break;
|
|
case 1:
|
|
// ADDHNv2i64_v2i32, ADDHNv2i64_v4i32, ADDPv2i64, ADDv2i64, CMEQv2i64, CM...
|
|
SStream_concat0(O, ".2d");
|
|
arm64_op_addVectorArrSpecifier(MI, ARM64_VAS_2D);
|
|
return;
|
|
break;
|
|
case 2:
|
|
// ADDHNv4i32_v4i16, ADDHNv4i32_v8i16, ADDPv4i32, ADDv4i32, CMEQv4i32, CM...
|
|
SStream_concat0(O, ".4s");
|
|
arm64_op_addVectorArrSpecifier(MI, ARM64_VAS_4S);
|
|
return;
|
|
break;
|
|
case 3:
|
|
// ADDHNv8i16_v16i8, ADDHNv8i16_v8i8, ADDPv8i16, ADDv8i16, CMEQv8i16, CMG...
|
|
SStream_concat0(O, ".8h");
|
|
arm64_op_addVectorArrSpecifier(MI, ARM64_VAS_8H);
|
|
return;
|
|
break;
|
|
case 4:
|
|
// ADDPv16i8, ADDv16i8, ANDv16i8, BICv16i8, BIFv16i8, BITv16i8, BSLv16i8,...
|
|
SStream_concat0(O, ".16b");
|
|
arm64_op_addVectorArrSpecifier(MI, ARM64_VAS_16B);
|
|
return;
|
|
break;
|
|
case 5:
|
|
// ADDPv2i32, ADDv2i32, CMEQv2i32, CMGEv2i32, CMGTv2i32, CMHIv2i32, CMHSv...
|
|
SStream_concat0(O, ".2s");
|
|
arm64_op_addVectorArrSpecifier(MI, ARM64_VAS_2S);
|
|
return;
|
|
break;
|
|
case 6:
|
|
// ADDPv4i16, ADDv4i16, CMEQv4i16, CMGEv4i16, CMGTv4i16, CMHIv4i16, CMHSv...
|
|
SStream_concat0(O, ".4h");
|
|
arm64_op_addVectorArrSpecifier(MI, ARM64_VAS_4H);
|
|
return;
|
|
break;
|
|
case 7:
|
|
// ADDPv8i8, ADDv8i8, ANDv8i8, BICv8i8, BIFv8i8, BITv8i8, BSLv8i8, CMEQv8...
|
|
SStream_concat0(O, ".8b");
|
|
arm64_op_addVectorArrSpecifier(MI, ARM64_VAS_8B);
|
|
return;
|
|
break;
|
|
case 8:
|
|
// ADDSXrx64, ADDXrx64, SUBSXrx64, SUBXrx64
|
|
printArithExtend(MI, 3, O);
|
|
return;
|
|
break;
|
|
case 9:
|
|
// BFMWri, BFMXri, CCMNWi, CCMNWr, CCMNXi, CCMNXr, CCMPWi, CCMPWr, CCMPXi...
|
|
SStream_concat0(O, ", ");
|
|
break;
|
|
case 10:
|
|
// EXTv16i8
|
|
SStream_concat0(O, ".16b, ");
|
|
arm64_op_addVectorArrSpecifier(MI, ARM64_VAS_16B);
|
|
printOperand(MI, 3, O);
|
|
return;
|
|
break;
|
|
case 11:
|
|
// EXTv8i8
|
|
SStream_concat0(O, ".8b, ");
|
|
arm64_op_addVectorArrSpecifier(MI, ARM64_VAS_8B);
|
|
printOperand(MI, 3, O);
|
|
return;
|
|
break;
|
|
case 12:
|
|
// FMLAv1i32_indexed, FMLAv2i32_indexed, FMLAv4i32_indexed, FMLSv1i32_ind...
|
|
SStream_concat0(O, ".s");
|
|
arm64_op_addVectorElementSizeSpecifier(MI, ARM64_VESS_S);
|
|
break;
|
|
case 13:
|
|
// FMLAv1i64_indexed, FMLAv2i64_indexed, FMLSv1i64_indexed, FMLSv2i64_ind...
|
|
SStream_concat0(O, ".d");
|
|
arm64_op_addVectorElementSizeSpecifier(MI, ARM64_VESS_D);
|
|
break;
|
|
case 14:
|
|
// LDAXPW, LDAXPX, LDTRBi, LDTRHi, LDTRSBWi, LDTRSBXi, LDTRSHWi, LDTRSHXi...
|
|
SStream_concat0(O, "]");
|
|
set_mem_access(MI, false);
|
|
return;
|
|
break;
|
|
case 15:
|
|
// LDPDpost, LDPQpost, LDPSWpost, LDPSpost, LDPWpost, LDPXpost, STPDpost,...
|
|
SStream_concat0(O, "], ");
|
|
set_mem_access(MI, false);
|
|
break;
|
|
case 16:
|
|
// LDRBBpre, LDRBpre, LDRDpre, LDRHHpre, LDRHpre, LDRQpre, LDRSBWpre, LDR...
|
|
SStream_concat0(O, "]!");
|
|
set_mem_access(MI, false);
|
|
return;
|
|
break;
|
|
case 17:
|
|
// MLAv4i16_indexed, MLAv8i16_indexed, MLSv4i16_indexed, MLSv8i16_indexed...
|
|
SStream_concat0(O, ".h");
|
|
arm64_op_addVectorElementSizeSpecifier(MI, ARM64_VESS_H);
|
|
break;
|
|
case 18:
|
|
// STLXPW, STLXPX, STXPW, STXPX
|
|
SStream_concat0(O, ", [");
|
|
set_mem_access(MI, true);
|
|
printOperand(MI, 3, O);
|
|
SStream_concat0(O, "]");
|
|
set_mem_access(MI, false);
|
|
return;
|
|
break;
|
|
}
|
|
|
|
|
|
// Fragment 6 encoded into 5 bits for 21 unique commands.
|
|
//printf("Frag-6: %"PRIu64"\n", (Bits >> 45) & 31);
|
|
switch ((Bits >> 45) & 31) {
|
|
default: // unreachable.
|
|
case 0:
|
|
// BFMWri, BFMXri
|
|
printOperand(MI, 4, O);
|
|
return;
|
|
break;
|
|
case 1:
|
|
// CCMNWi, CCMNWr, CCMNXi, CCMNXr, CCMPWi, CCMPWr, CCMPXi, CCMPXr, CSELWr...
|
|
printCondCode(MI, 3, O);
|
|
return;
|
|
break;
|
|
case 2:
|
|
// EXTRWrri, EXTRXrri, FMADDDrrr, FMADDSrrr, FMSUBDrrr, FMSUBSrrr, FNMADD...
|
|
printOperand(MI, 3, O);
|
|
return;
|
|
break;
|
|
case 3:
|
|
// FMLAv1i32_indexed, FMLAv1i64_indexed, FMLAv2i32_indexed, FMLAv2i64_ind...
|
|
printVectorIndex(MI, 4, O);
|
|
return;
|
|
break;
|
|
case 4:
|
|
// FMULXv1i32_indexed, FMULXv1i64_indexed, FMULXv2i32_indexed, FMULXv2i64...
|
|
printVectorIndex(MI, 3, O);
|
|
return;
|
|
break;
|
|
case 5:
|
|
// LDNPDi, LDNPXi, LDPDi, LDPXi, STNPDi, STNPXi, STPDi, STPXi
|
|
printImmScale(MI, 3, O, 8);
|
|
SStream_concat0(O, "]");
|
|
set_mem_access(MI, false);
|
|
return;
|
|
break;
|
|
case 6:
|
|
// LDNPQi, LDPQi, STNPQi, STPQi
|
|
printImmScale(MI, 3, O, 16);
|
|
SStream_concat0(O, "]");
|
|
set_mem_access(MI, false);
|
|
return;
|
|
break;
|
|
case 7:
|
|
// LDNPSi, LDNPWi, LDPSWi, LDPSi, LDPWi, STNPSi, STNPWi, STPSi, STPWi
|
|
printImmScale(MI, 3, O, 4);
|
|
SStream_concat0(O, "]");
|
|
set_mem_access(MI, false);
|
|
return;
|
|
break;
|
|
case 8:
|
|
// LDPDpost, LDPDpre, LDPXpost, LDPXpre, STPDpost, STPDpre, STPXpost, STP...
|
|
printImmScale(MI, 4, O, 8);
|
|
break;
|
|
case 9:
|
|
// LDPQpost, LDPQpre, STPQpost, STPQpre
|
|
printImmScale(MI, 4, O, 16);
|
|
break;
|
|
case 10:
|
|
// LDPSWpost, LDPSWpre, LDPSpost, LDPSpre, LDPWpost, LDPWpre, STPSpost, S...
|
|
printImmScale(MI, 4, O, 4);
|
|
break;
|
|
case 11:
|
|
// LDRBBroW, LDRBroW, LDRSBWroW, LDRSBXroW, STRBBroW, STRBroW
|
|
printMemExtend(MI, 3, O, 'w', 8);
|
|
SStream_concat0(O, "]");
|
|
set_mem_access(MI, false);
|
|
return;
|
|
break;
|
|
case 12:
|
|
// LDRBBroX, LDRBroX, LDRSBWroX, LDRSBXroX, STRBBroX, STRBroX
|
|
printMemExtend(MI, 3, O, 'x', 8);
|
|
SStream_concat0(O, "]");
|
|
set_mem_access(MI, false);
|
|
return;
|
|
break;
|
|
case 13:
|
|
// LDRDroW, LDRXroW, PRFMroW, STRDroW, STRXroW
|
|
printMemExtend(MI, 3, O, 'w', 64);
|
|
SStream_concat0(O, "]");
|
|
set_mem_access(MI, false);
|
|
return;
|
|
break;
|
|
case 14:
|
|
// LDRDroX, LDRXroX, PRFMroX, STRDroX, STRXroX
|
|
printMemExtend(MI, 3, O, 'x', 64);
|
|
SStream_concat0(O, "]");
|
|
set_mem_access(MI, false);
|
|
return;
|
|
break;
|
|
case 15:
|
|
// LDRHHroW, LDRHroW, LDRSHWroW, LDRSHXroW, STRHHroW, STRHroW
|
|
printMemExtend(MI, 3, O, 'w', 16);
|
|
SStream_concat0(O, "]");
|
|
set_mem_access(MI, false);
|
|
return;
|
|
break;
|
|
case 16:
|
|
// LDRHHroX, LDRHroX, LDRSHWroX, LDRSHXroX, STRHHroX, STRHroX
|
|
printMemExtend(MI, 3, O, 'x', 16);
|
|
SStream_concat0(O, "]");
|
|
set_mem_access(MI, false);
|
|
return;
|
|
break;
|
|
case 17:
|
|
// LDRQroW, STRQroW
|
|
printMemExtend(MI, 3, O, 'w', 128);
|
|
SStream_concat0(O, "]");
|
|
set_mem_access(MI, false);
|
|
return;
|
|
break;
|
|
case 18:
|
|
// LDRQroX, STRQroX
|
|
printMemExtend(MI, 3, O, 'x', 128);
|
|
SStream_concat0(O, "]");
|
|
set_mem_access(MI, false);
|
|
return;
|
|
break;
|
|
case 19:
|
|
// LDRSWroW, LDRSroW, LDRWroW, STRSroW, STRWroW
|
|
printMemExtend(MI, 3, O, 'w', 32);
|
|
SStream_concat0(O, "]");
|
|
set_mem_access(MI, false);
|
|
return;
|
|
break;
|
|
case 20:
|
|
// LDRSWroX, LDRSroX, LDRWroX, STRSroX, STRWroX
|
|
printMemExtend(MI, 3, O, 'x', 32);
|
|
SStream_concat0(O, "]");
|
|
set_mem_access(MI, false);
|
|
return;
|
|
break;
|
|
}
|
|
|
|
|
|
// Fragment 7 encoded into 1 bits for 2 unique commands.
|
|
//printf("Frag-7: %"PRIu64"\n", (Bits >> 50) & 1);
|
|
if ((Bits >> 50) & 1) {
|
|
// LDPDpre, LDPQpre, LDPSWpre, LDPSpre, LDPWpre, LDPXpre, STPDpre, STPQpr...
|
|
SStream_concat0(O, "]!");
|
|
set_mem_access(MI, false);
|
|
return;
|
|
} else {
|
|
// LDPDpost, LDPQpost, LDPSWpost, LDPSpost, LDPWpost, LDPXpost, STPDpost,...
|
|
return;
|
|
}
|
|
}
|
|
|
|
|
|
/// getRegisterName - This method is automatically generated by tblgen
|
|
/// from the register set description. This returns the assembler name
|
|
/// for the specified register.
|
|
static const char *getRegisterName(unsigned RegNo, int AltIdx)
|
|
{
|
|
// assert(RegNo && RegNo < 420 && "Invalid register number!");
|
|
|
|
#ifndef CAPSTONE_DIET
|
|
static const char AsmStrsNoRegAltName[] = {
|
|
/* 0 */ 'D', '7', '_', 'D', '8', '_', 'D', '9', '_', 'D', '1', '0', 0,
|
|
/* 13 */ 'Q', '7', '_', 'Q', '8', '_', 'Q', '9', '_', 'Q', '1', '0', 0,
|
|
/* 26 */ 'b', '1', '0', 0,
|
|
/* 30 */ 'd', '1', '0', 0,
|
|
/* 34 */ 'h', '1', '0', 0,
|
|
/* 38 */ 'q', '1', '0', 0,
|
|
/* 42 */ 's', '1', '0', 0,
|
|
/* 46 */ 'w', '1', '0', 0,
|
|
/* 50 */ 'x', '1', '0', 0,
|
|
/* 54 */ 'D', '1', '7', '_', 'D', '1', '8', '_', 'D', '1', '9', '_', 'D', '2', '0', 0,
|
|
/* 70 */ 'Q', '1', '7', '_', 'Q', '1', '8', '_', 'Q', '1', '9', '_', 'Q', '2', '0', 0,
|
|
/* 86 */ 'b', '2', '0', 0,
|
|
/* 90 */ 'd', '2', '0', 0,
|
|
/* 94 */ 'h', '2', '0', 0,
|
|
/* 98 */ 'q', '2', '0', 0,
|
|
/* 102 */ 's', '2', '0', 0,
|
|
/* 106 */ 'w', '2', '0', 0,
|
|
/* 110 */ 'x', '2', '0', 0,
|
|
/* 114 */ 'D', '2', '7', '_', 'D', '2', '8', '_', 'D', '2', '9', '_', 'D', '3', '0', 0,
|
|
/* 130 */ 'Q', '2', '7', '_', 'Q', '2', '8', '_', 'Q', '2', '9', '_', 'Q', '3', '0', 0,
|
|
/* 146 */ 'b', '3', '0', 0,
|
|
/* 150 */ 'd', '3', '0', 0,
|
|
/* 154 */ 'h', '3', '0', 0,
|
|
/* 158 */ 'q', '3', '0', 0,
|
|
/* 162 */ 's', '3', '0', 0,
|
|
/* 166 */ 'w', '3', '0', 0,
|
|
/* 170 */ 'x', '3', '0', 0,
|
|
/* 174 */ 'D', '2', '9', '_', 'D', '3', '0', '_', 'D', '3', '1', '_', 'D', '0', 0,
|
|
/* 189 */ 'Q', '2', '9', '_', 'Q', '3', '0', '_', 'Q', '3', '1', '_', 'Q', '0', 0,
|
|
/* 204 */ 'b', '0', 0,
|
|
/* 207 */ 'd', '0', 0,
|
|
/* 210 */ 'h', '0', 0,
|
|
/* 213 */ 'q', '0', 0,
|
|
/* 216 */ 's', '0', 0,
|
|
/* 219 */ 'w', '0', 0,
|
|
/* 222 */ 'x', '0', 0,
|
|
/* 225 */ 'D', '8', '_', 'D', '9', '_', 'D', '1', '0', '_', 'D', '1', '1', 0,
|
|
/* 239 */ 'Q', '8', '_', 'Q', '9', '_', 'Q', '1', '0', '_', 'Q', '1', '1', 0,
|
|
/* 253 */ 'b', '1', '1', 0,
|
|
/* 257 */ 'd', '1', '1', 0,
|
|
/* 261 */ 'h', '1', '1', 0,
|
|
/* 265 */ 'q', '1', '1', 0,
|
|
/* 269 */ 's', '1', '1', 0,
|
|
/* 273 */ 'w', '1', '1', 0,
|
|
/* 277 */ 'x', '1', '1', 0,
|
|
/* 281 */ 'D', '1', '8', '_', 'D', '1', '9', '_', 'D', '2', '0', '_', 'D', '2', '1', 0,
|
|
/* 297 */ 'Q', '1', '8', '_', 'Q', '1', '9', '_', 'Q', '2', '0', '_', 'Q', '2', '1', 0,
|
|
/* 313 */ 'b', '2', '1', 0,
|
|
/* 317 */ 'd', '2', '1', 0,
|
|
/* 321 */ 'h', '2', '1', 0,
|
|
/* 325 */ 'q', '2', '1', 0,
|
|
/* 329 */ 's', '2', '1', 0,
|
|
/* 333 */ 'w', '2', '1', 0,
|
|
/* 337 */ 'x', '2', '1', 0,
|
|
/* 341 */ 'D', '2', '8', '_', 'D', '2', '9', '_', 'D', '3', '0', '_', 'D', '3', '1', 0,
|
|
/* 357 */ 'Q', '2', '8', '_', 'Q', '2', '9', '_', 'Q', '3', '0', '_', 'Q', '3', '1', 0,
|
|
/* 373 */ 'b', '3', '1', 0,
|
|
/* 377 */ 'd', '3', '1', 0,
|
|
/* 381 */ 'h', '3', '1', 0,
|
|
/* 385 */ 'q', '3', '1', 0,
|
|
/* 389 */ 's', '3', '1', 0,
|
|
/* 393 */ 'D', '3', '0', '_', 'D', '3', '1', '_', 'D', '0', '_', 'D', '1', 0,
|
|
/* 407 */ 'Q', '3', '0', '_', 'Q', '3', '1', '_', 'Q', '0', '_', 'Q', '1', 0,
|
|
/* 421 */ 'b', '1', 0,
|
|
/* 424 */ 'd', '1', 0,
|
|
/* 427 */ 'h', '1', 0,
|
|
/* 430 */ 'q', '1', 0,
|
|
/* 433 */ 's', '1', 0,
|
|
/* 436 */ 'w', '1', 0,
|
|
/* 439 */ 'x', '1', 0,
|
|
/* 442 */ 'D', '9', '_', 'D', '1', '0', '_', 'D', '1', '1', '_', 'D', '1', '2', 0,
|
|
/* 457 */ 'Q', '9', '_', 'Q', '1', '0', '_', 'Q', '1', '1', '_', 'Q', '1', '2', 0,
|
|
/* 472 */ 'b', '1', '2', 0,
|
|
/* 476 */ 'd', '1', '2', 0,
|
|
/* 480 */ 'h', '1', '2', 0,
|
|
/* 484 */ 'q', '1', '2', 0,
|
|
/* 488 */ 's', '1', '2', 0,
|
|
/* 492 */ 'w', '1', '2', 0,
|
|
/* 496 */ 'x', '1', '2', 0,
|
|
/* 500 */ 'D', '1', '9', '_', 'D', '2', '0', '_', 'D', '2', '1', '_', 'D', '2', '2', 0,
|
|
/* 516 */ 'Q', '1', '9', '_', 'Q', '2', '0', '_', 'Q', '2', '1', '_', 'Q', '2', '2', 0,
|
|
/* 532 */ 'b', '2', '2', 0,
|
|
/* 536 */ 'd', '2', '2', 0,
|
|
/* 540 */ 'h', '2', '2', 0,
|
|
/* 544 */ 'q', '2', '2', 0,
|
|
/* 548 */ 's', '2', '2', 0,
|
|
/* 552 */ 'w', '2', '2', 0,
|
|
/* 556 */ 'x', '2', '2', 0,
|
|
/* 560 */ 'D', '3', '1', '_', 'D', '0', '_', 'D', '1', '_', 'D', '2', 0,
|
|
/* 573 */ 'Q', '3', '1', '_', 'Q', '0', '_', 'Q', '1', '_', 'Q', '2', 0,
|
|
/* 586 */ 'b', '2', 0,
|
|
/* 589 */ 'd', '2', 0,
|
|
/* 592 */ 'h', '2', 0,
|
|
/* 595 */ 'q', '2', 0,
|
|
/* 598 */ 's', '2', 0,
|
|
/* 601 */ 'w', '2', 0,
|
|
/* 604 */ 'x', '2', 0,
|
|
/* 607 */ 'D', '1', '0', '_', 'D', '1', '1', '_', 'D', '1', '2', '_', 'D', '1', '3', 0,
|
|
/* 623 */ 'Q', '1', '0', '_', 'Q', '1', '1', '_', 'Q', '1', '2', '_', 'Q', '1', '3', 0,
|
|
/* 639 */ 'b', '1', '3', 0,
|
|
/* 643 */ 'd', '1', '3', 0,
|
|
/* 647 */ 'h', '1', '3', 0,
|
|
/* 651 */ 'q', '1', '3', 0,
|
|
/* 655 */ 's', '1', '3', 0,
|
|
/* 659 */ 'w', '1', '3', 0,
|
|
/* 663 */ 'x', '1', '3', 0,
|
|
/* 667 */ 'D', '2', '0', '_', 'D', '2', '1', '_', 'D', '2', '2', '_', 'D', '2', '3', 0,
|
|
/* 683 */ 'Q', '2', '0', '_', 'Q', '2', '1', '_', 'Q', '2', '2', '_', 'Q', '2', '3', 0,
|
|
/* 699 */ 'b', '2', '3', 0,
|
|
/* 703 */ 'd', '2', '3', 0,
|
|
/* 707 */ 'h', '2', '3', 0,
|
|
/* 711 */ 'q', '2', '3', 0,
|
|
/* 715 */ 's', '2', '3', 0,
|
|
/* 719 */ 'w', '2', '3', 0,
|
|
/* 723 */ 'x', '2', '3', 0,
|
|
/* 727 */ 'D', '0', '_', 'D', '1', '_', 'D', '2', '_', 'D', '3', 0,
|
|
/* 739 */ 'Q', '0', '_', 'Q', '1', '_', 'Q', '2', '_', 'Q', '3', 0,
|
|
/* 751 */ 'b', '3', 0,
|
|
/* 754 */ 'd', '3', 0,
|
|
/* 757 */ 'h', '3', 0,
|
|
/* 760 */ 'q', '3', 0,
|
|
/* 763 */ 's', '3', 0,
|
|
/* 766 */ 'w', '3', 0,
|
|
/* 769 */ 'x', '3', 0,
|
|
/* 772 */ 'D', '1', '1', '_', 'D', '1', '2', '_', 'D', '1', '3', '_', 'D', '1', '4', 0,
|
|
/* 788 */ 'Q', '1', '1', '_', 'Q', '1', '2', '_', 'Q', '1', '3', '_', 'Q', '1', '4', 0,
|
|
/* 804 */ 'b', '1', '4', 0,
|
|
/* 808 */ 'd', '1', '4', 0,
|
|
/* 812 */ 'h', '1', '4', 0,
|
|
/* 816 */ 'q', '1', '4', 0,
|
|
/* 820 */ 's', '1', '4', 0,
|
|
/* 824 */ 'w', '1', '4', 0,
|
|
/* 828 */ 'x', '1', '4', 0,
|
|
/* 832 */ 'D', '2', '1', '_', 'D', '2', '2', '_', 'D', '2', '3', '_', 'D', '2', '4', 0,
|
|
/* 848 */ 'Q', '2', '1', '_', 'Q', '2', '2', '_', 'Q', '2', '3', '_', 'Q', '2', '4', 0,
|
|
/* 864 */ 'b', '2', '4', 0,
|
|
/* 868 */ 'd', '2', '4', 0,
|
|
/* 872 */ 'h', '2', '4', 0,
|
|
/* 876 */ 'q', '2', '4', 0,
|
|
/* 880 */ 's', '2', '4', 0,
|
|
/* 884 */ 'w', '2', '4', 0,
|
|
/* 888 */ 'x', '2', '4', 0,
|
|
/* 892 */ 'D', '1', '_', 'D', '2', '_', 'D', '3', '_', 'D', '4', 0,
|
|
/* 904 */ 'Q', '1', '_', 'Q', '2', '_', 'Q', '3', '_', 'Q', '4', 0,
|
|
/* 916 */ 'b', '4', 0,
|
|
/* 919 */ 'd', '4', 0,
|
|
/* 922 */ 'h', '4', 0,
|
|
/* 925 */ 'q', '4', 0,
|
|
/* 928 */ 's', '4', 0,
|
|
/* 931 */ 'w', '4', 0,
|
|
/* 934 */ 'x', '4', 0,
|
|
/* 937 */ 'D', '1', '2', '_', 'D', '1', '3', '_', 'D', '1', '4', '_', 'D', '1', '5', 0,
|
|
/* 953 */ 'Q', '1', '2', '_', 'Q', '1', '3', '_', 'Q', '1', '4', '_', 'Q', '1', '5', 0,
|
|
/* 969 */ 'b', '1', '5', 0,
|
|
/* 973 */ 'd', '1', '5', 0,
|
|
/* 977 */ 'h', '1', '5', 0,
|
|
/* 981 */ 'q', '1', '5', 0,
|
|
/* 985 */ 's', '1', '5', 0,
|
|
/* 989 */ 'w', '1', '5', 0,
|
|
/* 993 */ 'x', '1', '5', 0,
|
|
/* 997 */ 'D', '2', '2', '_', 'D', '2', '3', '_', 'D', '2', '4', '_', 'D', '2', '5', 0,
|
|
/* 1013 */ 'Q', '2', '2', '_', 'Q', '2', '3', '_', 'Q', '2', '4', '_', 'Q', '2', '5', 0,
|
|
/* 1029 */ 'b', '2', '5', 0,
|
|
/* 1033 */ 'd', '2', '5', 0,
|
|
/* 1037 */ 'h', '2', '5', 0,
|
|
/* 1041 */ 'q', '2', '5', 0,
|
|
/* 1045 */ 's', '2', '5', 0,
|
|
/* 1049 */ 'w', '2', '5', 0,
|
|
/* 1053 */ 'x', '2', '5', 0,
|
|
/* 1057 */ 'D', '2', '_', 'D', '3', '_', 'D', '4', '_', 'D', '5', 0,
|
|
/* 1069 */ 'Q', '2', '_', 'Q', '3', '_', 'Q', '4', '_', 'Q', '5', 0,
|
|
/* 1081 */ 'b', '5', 0,
|
|
/* 1084 */ 'd', '5', 0,
|
|
/* 1087 */ 'h', '5', 0,
|
|
/* 1090 */ 'q', '5', 0,
|
|
/* 1093 */ 's', '5', 0,
|
|
/* 1096 */ 'w', '5', 0,
|
|
/* 1099 */ 'x', '5', 0,
|
|
/* 1102 */ 'D', '1', '3', '_', 'D', '1', '4', '_', 'D', '1', '5', '_', 'D', '1', '6', 0,
|
|
/* 1118 */ 'Q', '1', '3', '_', 'Q', '1', '4', '_', 'Q', '1', '5', '_', 'Q', '1', '6', 0,
|
|
/* 1134 */ 'b', '1', '6', 0,
|
|
/* 1138 */ 'd', '1', '6', 0,
|
|
/* 1142 */ 'h', '1', '6', 0,
|
|
/* 1146 */ 'q', '1', '6', 0,
|
|
/* 1150 */ 's', '1', '6', 0,
|
|
/* 1154 */ 'w', '1', '6', 0,
|
|
/* 1158 */ 'x', '1', '6', 0,
|
|
/* 1162 */ 'D', '2', '3', '_', 'D', '2', '4', '_', 'D', '2', '5', '_', 'D', '2', '6', 0,
|
|
/* 1178 */ 'Q', '2', '3', '_', 'Q', '2', '4', '_', 'Q', '2', '5', '_', 'Q', '2', '6', 0,
|
|
/* 1194 */ 'b', '2', '6', 0,
|
|
/* 1198 */ 'd', '2', '6', 0,
|
|
/* 1202 */ 'h', '2', '6', 0,
|
|
/* 1206 */ 'q', '2', '6', 0,
|
|
/* 1210 */ 's', '2', '6', 0,
|
|
/* 1214 */ 'w', '2', '6', 0,
|
|
/* 1218 */ 'x', '2', '6', 0,
|
|
/* 1222 */ 'D', '3', '_', 'D', '4', '_', 'D', '5', '_', 'D', '6', 0,
|
|
/* 1234 */ 'Q', '3', '_', 'Q', '4', '_', 'Q', '5', '_', 'Q', '6', 0,
|
|
/* 1246 */ 'b', '6', 0,
|
|
/* 1249 */ 'd', '6', 0,
|
|
/* 1252 */ 'h', '6', 0,
|
|
/* 1255 */ 'q', '6', 0,
|
|
/* 1258 */ 's', '6', 0,
|
|
/* 1261 */ 'w', '6', 0,
|
|
/* 1264 */ 'x', '6', 0,
|
|
/* 1267 */ 'D', '1', '4', '_', 'D', '1', '5', '_', 'D', '1', '6', '_', 'D', '1', '7', 0,
|
|
/* 1283 */ 'Q', '1', '4', '_', 'Q', '1', '5', '_', 'Q', '1', '6', '_', 'Q', '1', '7', 0,
|
|
/* 1299 */ 'b', '1', '7', 0,
|
|
/* 1303 */ 'd', '1', '7', 0,
|
|
/* 1307 */ 'h', '1', '7', 0,
|
|
/* 1311 */ 'q', '1', '7', 0,
|
|
/* 1315 */ 's', '1', '7', 0,
|
|
/* 1319 */ 'w', '1', '7', 0,
|
|
/* 1323 */ 'x', '1', '7', 0,
|
|
/* 1327 */ 'D', '2', '4', '_', 'D', '2', '5', '_', 'D', '2', '6', '_', 'D', '2', '7', 0,
|
|
/* 1343 */ 'Q', '2', '4', '_', 'Q', '2', '5', '_', 'Q', '2', '6', '_', 'Q', '2', '7', 0,
|
|
/* 1359 */ 'b', '2', '7', 0,
|
|
/* 1363 */ 'd', '2', '7', 0,
|
|
/* 1367 */ 'h', '2', '7', 0,
|
|
/* 1371 */ 'q', '2', '7', 0,
|
|
/* 1375 */ 's', '2', '7', 0,
|
|
/* 1379 */ 'w', '2', '7', 0,
|
|
/* 1383 */ 'x', '2', '7', 0,
|
|
/* 1387 */ 'D', '4', '_', 'D', '5', '_', 'D', '6', '_', 'D', '7', 0,
|
|
/* 1399 */ 'Q', '4', '_', 'Q', '5', '_', 'Q', '6', '_', 'Q', '7', 0,
|
|
/* 1411 */ 'b', '7', 0,
|
|
/* 1414 */ 'd', '7', 0,
|
|
/* 1417 */ 'h', '7', 0,
|
|
/* 1420 */ 'q', '7', 0,
|
|
/* 1423 */ 's', '7', 0,
|
|
/* 1426 */ 'w', '7', 0,
|
|
/* 1429 */ 'x', '7', 0,
|
|
/* 1432 */ 'D', '1', '5', '_', 'D', '1', '6', '_', 'D', '1', '7', '_', 'D', '1', '8', 0,
|
|
/* 1448 */ 'Q', '1', '5', '_', 'Q', '1', '6', '_', 'Q', '1', '7', '_', 'Q', '1', '8', 0,
|
|
/* 1464 */ 'b', '1', '8', 0,
|
|
/* 1468 */ 'd', '1', '8', 0,
|
|
/* 1472 */ 'h', '1', '8', 0,
|
|
/* 1476 */ 'q', '1', '8', 0,
|
|
/* 1480 */ 's', '1', '8', 0,
|
|
/* 1484 */ 'w', '1', '8', 0,
|
|
/* 1488 */ 'x', '1', '8', 0,
|
|
/* 1492 */ 'D', '2', '5', '_', 'D', '2', '6', '_', 'D', '2', '7', '_', 'D', '2', '8', 0,
|
|
/* 1508 */ 'Q', '2', '5', '_', 'Q', '2', '6', '_', 'Q', '2', '7', '_', 'Q', '2', '8', 0,
|
|
/* 1524 */ 'b', '2', '8', 0,
|
|
/* 1528 */ 'd', '2', '8', 0,
|
|
/* 1532 */ 'h', '2', '8', 0,
|
|
/* 1536 */ 'q', '2', '8', 0,
|
|
/* 1540 */ 's', '2', '8', 0,
|
|
/* 1544 */ 'w', '2', '8', 0,
|
|
/* 1548 */ 'x', '2', '8', 0,
|
|
/* 1552 */ 'D', '5', '_', 'D', '6', '_', 'D', '7', '_', 'D', '8', 0,
|
|
/* 1564 */ 'Q', '5', '_', 'Q', '6', '_', 'Q', '7', '_', 'Q', '8', 0,
|
|
/* 1576 */ 'b', '8', 0,
|
|
/* 1579 */ 'd', '8', 0,
|
|
/* 1582 */ 'h', '8', 0,
|
|
/* 1585 */ 'q', '8', 0,
|
|
/* 1588 */ 's', '8', 0,
|
|
/* 1591 */ 'w', '8', 0,
|
|
/* 1594 */ 'x', '8', 0,
|
|
/* 1597 */ 'D', '1', '6', '_', 'D', '1', '7', '_', 'D', '1', '8', '_', 'D', '1', '9', 0,
|
|
/* 1613 */ 'Q', '1', '6', '_', 'Q', '1', '7', '_', 'Q', '1', '8', '_', 'Q', '1', '9', 0,
|
|
/* 1629 */ 'b', '1', '9', 0,
|
|
/* 1633 */ 'd', '1', '9', 0,
|
|
/* 1637 */ 'h', '1', '9', 0,
|
|
/* 1641 */ 'q', '1', '9', 0,
|
|
/* 1645 */ 's', '1', '9', 0,
|
|
/* 1649 */ 'w', '1', '9', 0,
|
|
/* 1653 */ 'x', '1', '9', 0,
|
|
/* 1657 */ 'D', '2', '6', '_', 'D', '2', '7', '_', 'D', '2', '8', '_', 'D', '2', '9', 0,
|
|
/* 1673 */ 'Q', '2', '6', '_', 'Q', '2', '7', '_', 'Q', '2', '8', '_', 'Q', '2', '9', 0,
|
|
/* 1689 */ 'b', '2', '9', 0,
|
|
/* 1693 */ 'd', '2', '9', 0,
|
|
/* 1697 */ 'h', '2', '9', 0,
|
|
/* 1701 */ 'q', '2', '9', 0,
|
|
/* 1705 */ 's', '2', '9', 0,
|
|
/* 1709 */ 'w', '2', '9', 0,
|
|
/* 1713 */ 'x', '2', '9', 0,
|
|
/* 1717 */ 'D', '6', '_', 'D', '7', '_', 'D', '8', '_', 'D', '9', 0,
|
|
/* 1729 */ 'Q', '6', '_', 'Q', '7', '_', 'Q', '8', '_', 'Q', '9', 0,
|
|
/* 1741 */ 'b', '9', 0,
|
|
/* 1744 */ 'd', '9', 0,
|
|
/* 1747 */ 'h', '9', 0,
|
|
/* 1750 */ 'q', '9', 0,
|
|
/* 1753 */ 's', '9', 0,
|
|
/* 1756 */ 'w', '9', 0,
|
|
/* 1759 */ 'x', '9', 0,
|
|
/* 1762 */ 'w', 's', 'p', 0,
|
|
/* 1766 */ 'w', 'z', 'r', 0,
|
|
/* 1770 */ 'x', 'z', 'r', 0,
|
|
/* 1774 */ 'n', 'z', 'c', 'v', 0,
|
|
};
|
|
|
|
static const uint32_t RegAsmOffsetNoRegAltName[] = {
|
|
1713, 170, 1774, 1763, 1762, 1766, 1770, 204, 421, 586, 751, 916, 1081, 1246,
|
|
1411, 1576, 1741, 26, 253, 472, 639, 804, 969, 1134, 1299, 1464, 1629, 86,
|
|
313, 532, 699, 864, 1029, 1194, 1359, 1524, 1689, 146, 373, 207, 424, 589,
|
|
754, 919, 1084, 1249, 1414, 1579, 1744, 30, 257, 476, 643, 808, 973, 1138,
|
|
1303, 1468, 1633, 90, 317, 536, 703, 868, 1033, 1198, 1363, 1528, 1693, 150,
|
|
377, 210, 427, 592, 757, 922, 1087, 1252, 1417, 1582, 1747, 34, 261, 480,
|
|
647, 812, 977, 1142, 1307, 1472, 1637, 94, 321, 540, 707, 872, 1037, 1202,
|
|
1367, 1532, 1697, 154, 381, 213, 430, 595, 760, 925, 1090, 1255, 1420, 1585,
|
|
1750, 38, 265, 484, 651, 816, 981, 1146, 1311, 1476, 1641, 98, 325, 544,
|
|
711, 876, 1041, 1206, 1371, 1536, 1701, 158, 385, 216, 433, 598, 763, 928,
|
|
1093, 1258, 1423, 1588, 1753, 42, 269, 488, 655, 820, 985, 1150, 1315, 1480,
|
|
1645, 102, 329, 548, 715, 880, 1045, 1210, 1375, 1540, 1705, 162, 389, 219,
|
|
436, 601, 766, 931, 1096, 1261, 1426, 1591, 1756, 46, 273, 492, 659, 824,
|
|
989, 1154, 1319, 1484, 1649, 106, 333, 552, 719, 884, 1049, 1214, 1379, 1544,
|
|
1709, 166, 222, 439, 604, 769, 934, 1099, 1264, 1429, 1594, 1759, 50, 277,
|
|
496, 663, 828, 993, 1158, 1323, 1488, 1653, 110, 337, 556, 723, 888, 1053,
|
|
1218, 1383, 1548, 401, 567, 733, 898, 1063, 1228, 1393, 1558, 1723, 6, 231,
|
|
449, 615, 780, 945, 1110, 1275, 1440, 1605, 62, 289, 508, 675, 840, 1005,
|
|
1170, 1335, 1500, 1665, 122, 349, 182, 727, 892, 1057, 1222, 1387, 1552, 1717,
|
|
0, 225, 442, 607, 772, 937, 1102, 1267, 1432, 1597, 54, 281, 500, 667,
|
|
832, 997, 1162, 1327, 1492, 1657, 114, 341, 174, 393, 560, 564, 730, 895,
|
|
1060, 1225, 1390, 1555, 1720, 3, 228, 445, 611, 776, 941, 1106, 1271, 1436,
|
|
1601, 58, 285, 504, 671, 836, 1001, 1166, 1331, 1496, 1661, 118, 345, 178,
|
|
397, 415, 580, 745, 910, 1075, 1240, 1405, 1570, 1735, 19, 245, 464, 631,
|
|
796, 961, 1126, 1291, 1456, 1621, 78, 305, 524, 691, 856, 1021, 1186, 1351,
|
|
1516, 1681, 138, 365, 197, 739, 904, 1069, 1234, 1399, 1564, 1729, 13, 239,
|
|
457, 623, 788, 953, 1118, 1283, 1448, 1613, 70, 297, 516, 683, 848, 1013,
|
|
1178, 1343, 1508, 1673, 130, 357, 189, 407, 573, 577, 742, 907, 1072, 1237,
|
|
1402, 1567, 1732, 16, 242, 460, 627, 792, 957, 1122, 1287, 1452, 1617, 74,
|
|
301, 520, 687, 852, 1017, 1182, 1347, 1512, 1677, 134, 361, 193, 411,
|
|
};
|
|
|
|
static const char AsmStrsvreg[] = {
|
|
/* 0 */ 'v', '1', '0', 0,
|
|
/* 4 */ 'v', '2', '0', 0,
|
|
/* 8 */ 'v', '3', '0', 0,
|
|
/* 12 */ 'v', '0', 0,
|
|
/* 15 */ 'v', '1', '1', 0,
|
|
/* 19 */ 'v', '2', '1', 0,
|
|
/* 23 */ 'v', '3', '1', 0,
|
|
/* 27 */ 'v', '1', 0,
|
|
/* 30 */ 'v', '1', '2', 0,
|
|
/* 34 */ 'v', '2', '2', 0,
|
|
/* 38 */ 'v', '2', 0,
|
|
/* 41 */ 'v', '1', '3', 0,
|
|
/* 45 */ 'v', '2', '3', 0,
|
|
/* 49 */ 'v', '3', 0,
|
|
/* 52 */ 'v', '1', '4', 0,
|
|
/* 56 */ 'v', '2', '4', 0,
|
|
/* 60 */ 'v', '4', 0,
|
|
/* 63 */ 'v', '1', '5', 0,
|
|
/* 67 */ 'v', '2', '5', 0,
|
|
/* 71 */ 'v', '5', 0,
|
|
/* 74 */ 'v', '1', '6', 0,
|
|
/* 78 */ 'v', '2', '6', 0,
|
|
/* 82 */ 'v', '6', 0,
|
|
/* 85 */ 'v', '1', '7', 0,
|
|
/* 89 */ 'v', '2', '7', 0,
|
|
/* 93 */ 'v', '7', 0,
|
|
/* 96 */ 'v', '1', '8', 0,
|
|
/* 100 */ 'v', '2', '8', 0,
|
|
/* 104 */ 'v', '8', 0,
|
|
/* 107 */ 'v', '1', '9', 0,
|
|
/* 111 */ 'v', '2', '9', 0,
|
|
/* 115 */ 'v', '9', 0,
|
|
};
|
|
|
|
static const uint32_t RegAsmOffsetvreg[] = {
|
|
3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
|
|
3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
|
|
3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 12, 27, 38,
|
|
49, 60, 71, 82, 93, 104, 115, 0, 15, 30, 41, 52, 63, 74,
|
|
85, 96, 107, 4, 19, 34, 45, 56, 67, 78, 89, 100, 111, 8,
|
|
23, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
|
|
3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
|
|
3, 3, 3, 3, 3, 12, 27, 38, 49, 60, 71, 82, 93, 104,
|
|
115, 0, 15, 30, 41, 52, 63, 74, 85, 96, 107, 4, 19, 34,
|
|
45, 56, 67, 78, 89, 100, 111, 8, 23, 3, 3, 3, 3, 3,
|
|
3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
|
|
3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
|
|
3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
|
|
3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
|
|
3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
|
|
3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
|
|
3, 3, 3, 12, 27, 38, 49, 60, 71, 82, 93, 104, 115, 0,
|
|
15, 30, 41, 52, 63, 74, 85, 96, 107, 4, 19, 34, 45, 56,
|
|
67, 78, 89, 100, 111, 8, 23, 12, 27, 38, 49, 60, 71, 82,
|
|
93, 104, 115, 0, 15, 30, 41, 52, 63, 74, 85, 96, 107, 4,
|
|
19, 34, 45, 56, 67, 78, 89, 100, 111, 8, 23, 12, 27, 38,
|
|
49, 60, 71, 82, 93, 104, 115, 0, 15, 30, 41, 52, 63, 74,
|
|
85, 96, 107, 4, 19, 34, 45, 56, 67, 78, 89, 100, 111, 8,
|
|
23, 12, 27, 38, 49, 60, 71, 82, 93, 104, 115, 0, 15, 30,
|
|
41, 52, 63, 74, 85, 96, 107, 4, 19, 34, 45, 56, 67, 78,
|
|
89, 100, 111, 8, 23, 12, 27, 38, 49, 60, 71, 82, 93, 104,
|
|
115, 0, 15, 30, 41, 52, 63, 74, 85, 96, 107, 4, 19, 34,
|
|
45, 56, 67, 78, 89, 100, 111, 8, 23, 12, 27, 38, 49, 60,
|
|
71, 82, 93, 104, 115, 0, 15, 30, 41, 52, 63, 74, 85, 96,
|
|
107, 4, 19, 34, 45, 56, 67, 78, 89, 100, 111, 8, 23,
|
|
};
|
|
|
|
const uint32_t *RegAsmOffset;
|
|
const char *AsmStrs;
|
|
|
|
switch(AltIdx) {
|
|
default: // llvm_unreachable("Invalid register alt name index!");
|
|
case AArch64_NoRegAltName:
|
|
AsmStrs = AsmStrsNoRegAltName;
|
|
RegAsmOffset = RegAsmOffsetNoRegAltName;
|
|
break;
|
|
case AArch64_vreg:
|
|
AsmStrs = AsmStrsvreg;
|
|
RegAsmOffset = RegAsmOffsetvreg;
|
|
break;
|
|
}
|
|
//int i;
|
|
//for (i = 0; i < sizeof(RegAsmOffsetNoRegAltName)/4; i++)
|
|
// printf("%s = %u\n", AsmStrsNoRegAltName+RegAsmOffsetNoRegAltName[i], i + 1);
|
|
//printf("*************************\n");
|
|
//for (i = 0; i < sizeof(RegAsmOffsetvreg)/4; i++)
|
|
// printf("%s = %u\n", AsmStrsvreg+RegAsmOffsetvreg[i], i + 1);
|
|
//printf("-------------------------\n");
|
|
return AsmStrs+RegAsmOffset[RegNo-1];
|
|
#else
|
|
return NULL;
|
|
#endif
|
|
}
|
|
|
|
#ifdef PRINT_ALIAS_INSTR
|
|
#undef PRINT_ALIAS_INSTR
|
|
|
|
static void printCustomAliasOperand(MCInst *MI, unsigned OpIdx,
|
|
unsigned PrintMethodIdx, SStream *OS, MCRegisterInfo *MRI)
|
|
{
|
|
// printf(">>>> Method: %u, opIdx: %x\n", PrintMethodIdx, OpIdx);
|
|
switch (PrintMethodIdx) {
|
|
default:
|
|
// llvm_unreachable("Unknown PrintMethod kind");
|
|
break;
|
|
case 0:
|
|
printAddSubImm(MI, OpIdx, OS);
|
|
break;
|
|
case 1:
|
|
printShifter(MI, OpIdx, OS);
|
|
break;
|
|
case 2:
|
|
printArithExtend(MI, OpIdx, OS);
|
|
break;
|
|
case 3:
|
|
printLogicalImm32(MI, OpIdx, OS);
|
|
break;
|
|
case 4:
|
|
printLogicalImm64(MI, OpIdx, OS);
|
|
break;
|
|
case 5:
|
|
printVRegOperand(MI, OpIdx, OS);
|
|
break;
|
|
case 6:
|
|
printHexImm(MI, OpIdx, OS);
|
|
break;
|
|
case 7:
|
|
printInverseCondCode(MI, OpIdx, OS);
|
|
break;
|
|
case 8:
|
|
printVectorIndex(MI, OpIdx, OS);
|
|
break;
|
|
case 9:
|
|
printTypedVectorList(MI, OpIdx, OS, 16, 'b', MRI);
|
|
break;
|
|
case 10:
|
|
printTypedVectorList(MI, OpIdx, OS, 1, 'd', MRI);
|
|
break;
|
|
case 11:
|
|
printTypedVectorList(MI, OpIdx, OS, 2, 'd', MRI);
|
|
break;
|
|
case 12:
|
|
printTypedVectorList(MI, OpIdx, OS, 2, 's', MRI);
|
|
break;
|
|
case 13:
|
|
printTypedVectorList(MI, OpIdx, OS, 4, 'h', MRI);
|
|
break;
|
|
case 14:
|
|
printTypedVectorList(MI, OpIdx, OS, 4, 's', MRI);
|
|
break;
|
|
case 15:
|
|
printTypedVectorList(MI, OpIdx, OS, 8, 'b', MRI);
|
|
break;
|
|
case 16:
|
|
printTypedVectorList(MI, OpIdx, OS, 8, 'h', MRI);
|
|
break;
|
|
case 17:
|
|
printTypedVectorList(MI, OpIdx, OS, 0, 'h', MRI);
|
|
break;
|
|
case 18:
|
|
printTypedVectorList(MI, OpIdx, OS, 0, 's', MRI);
|
|
break;
|
|
case 19:
|
|
printTypedVectorList(MI, OpIdx, OS, 0, 'd', MRI);
|
|
break;
|
|
case 20:
|
|
printTypedVectorList(MI, OpIdx, OS, 0, 'b', MRI);
|
|
break;
|
|
case 21:
|
|
printPrefetchOp(MI, OpIdx, OS);
|
|
break;
|
|
case 22:
|
|
printSysCROperand(MI, OpIdx, OS);
|
|
break;
|
|
}
|
|
}
|
|
|
|
static bool AArch64InstPrinterValidateMCOperand(
|
|
MCOperand *MCOp, unsigned PredicateIndex)
|
|
{
|
|
switch (PredicateIndex) {
|
|
default:
|
|
// llvm_unreachable("Unknown MCOperandPredicate kind");
|
|
case 1: {
|
|
return (MCOperand_isImm(MCOp) &&
|
|
MCOperand_getImm(MCOp) != ARM64_CC_AL &&
|
|
MCOperand_getImm(MCOp) != ARM64_CC_NV);
|
|
}
|
|
}
|
|
}
|
|
|
|
static char *printAliasInstr(MCInst *MI, SStream *OS, void *info)
|
|
{
|
|
#define GETREGCLASS_CONTAIN(_class, _reg) MCRegisterClass_contains(MCRegisterInfo_getRegClass(MRI, _class), MCOperand_getReg(MCInst_getOperand(MI, _reg)))
|
|
const char *AsmString;
|
|
char *tmp, *AsmMnem, *AsmOps, *c;
|
|
int OpIdx, PrintMethodIdx;
|
|
MCRegisterInfo *MRI = (MCRegisterInfo *)info;
|
|
switch (MCInst_getOpcode(MI)) {
|
|
default: return NULL;
|
|
case AArch64_ADDSWri:
|
|
if (MCInst_getNumOperands(MI) == 4 &&
|
|
MCOperand_getReg(MCInst_getOperand(MI, 0)) == AArch64_WZR &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR32spRegClassID, 1)) {
|
|
// (ADDSWri WZR, GPR32sp:$src, addsub_shifted_imm32:$imm)
|
|
AsmString = "cmn $\x02, $\xFF\x03\x01";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_ADDSWrs:
|
|
if (MCInst_getNumOperands(MI) == 4 &&
|
|
MCOperand_getReg(MCInst_getOperand(MI, 0)) == AArch64_WZR &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 1) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 2) &&
|
|
MCOperand_isImm(MCInst_getOperand(MI, 3)) &&
|
|
MCOperand_getImm(MCInst_getOperand(MI, 3)) == 0) {
|
|
// (ADDSWrs WZR, GPR32:$src1, GPR32:$src2, 0)
|
|
AsmString = "cmn $\x02, $\x03";
|
|
break;
|
|
}
|
|
if (MCInst_getNumOperands(MI) == 4 &&
|
|
MCOperand_getReg(MCInst_getOperand(MI, 0)) == AArch64_WZR &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 1) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 2)) {
|
|
// (ADDSWrs WZR, GPR32:$src1, GPR32:$src2, arith_shift32:$sh)
|
|
AsmString = "cmn $\x02, $\x03$\xFF\x04\x02";
|
|
break;
|
|
}
|
|
if (MCInst_getNumOperands(MI) == 4 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 1) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 2) &&
|
|
MCOperand_isImm(MCInst_getOperand(MI, 3)) &&
|
|
MCOperand_getImm(MCInst_getOperand(MI, 3)) == 0) {
|
|
// (ADDSWrs GPR32:$dst, GPR32:$src1, GPR32:$src2, 0)
|
|
AsmString = "adds $\x01, $\x02, $\x03";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_ADDSWrx:
|
|
if (MCInst_getNumOperands(MI) == 4 &&
|
|
MCOperand_getReg(MCInst_getOperand(MI, 0)) == AArch64_WZR &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR32sponlyRegClassID, 1) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 2) &&
|
|
MCOperand_isImm(MCInst_getOperand(MI, 3)) &&
|
|
MCOperand_getImm(MCInst_getOperand(MI, 3)) == 16) {
|
|
// (ADDSWrx WZR, GPR32sponly:$src1, GPR32:$src2, 16)
|
|
AsmString = "cmn $\x02, $\x03";
|
|
break;
|
|
}
|
|
if (MCInst_getNumOperands(MI) == 4 &&
|
|
MCOperand_getReg(MCInst_getOperand(MI, 0)) == AArch64_WZR &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR32spRegClassID, 1) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 2)) {
|
|
// (ADDSWrx WZR, GPR32sp:$src1, GPR32:$src2, arith_extend:$sh)
|
|
AsmString = "cmn $\x02, $\x03$\xFF\x04\x03";
|
|
break;
|
|
}
|
|
if (MCInst_getNumOperands(MI) == 4 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR32sponlyRegClassID, 1) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 2) &&
|
|
MCOperand_isImm(MCInst_getOperand(MI, 3)) &&
|
|
MCOperand_getImm(MCInst_getOperand(MI, 3)) == 16) {
|
|
// (ADDSWrx GPR32:$dst, GPR32sponly:$src1, GPR32:$src2, 16)
|
|
AsmString = "adds $\x01, $\x02, $\x03";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_ADDSXri:
|
|
if (MCInst_getNumOperands(MI) == 4 &&
|
|
MCOperand_getReg(MCInst_getOperand(MI, 0)) == AArch64_XZR &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 1)) {
|
|
// (ADDSXri XZR, GPR64sp:$src, addsub_shifted_imm64:$imm)
|
|
AsmString = "cmn $\x02, $\xFF\x03\x01";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_ADDSXrs:
|
|
if (MCInst_getNumOperands(MI) == 4 &&
|
|
MCOperand_getReg(MCInst_getOperand(MI, 0)) == AArch64_XZR &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 1) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 2) &&
|
|
MCOperand_isImm(MCInst_getOperand(MI, 3)) &&
|
|
MCOperand_getImm(MCInst_getOperand(MI, 3)) == 0) {
|
|
// (ADDSXrs XZR, GPR64:$src1, GPR64:$src2, 0)
|
|
AsmString = "cmn $\x02, $\x03";
|
|
break;
|
|
}
|
|
if (MCInst_getNumOperands(MI) == 4 &&
|
|
MCOperand_getReg(MCInst_getOperand(MI, 0)) == AArch64_XZR &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 1) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 2)) {
|
|
// (ADDSXrs XZR, GPR64:$src1, GPR64:$src2, arith_shift64:$sh)
|
|
AsmString = "cmn $\x02, $\x03$\xFF\x04\x02";
|
|
break;
|
|
}
|
|
if (MCInst_getNumOperands(MI) == 4 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 1) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 2) &&
|
|
MCOperand_isImm(MCInst_getOperand(MI, 3)) &&
|
|
MCOperand_getImm(MCInst_getOperand(MI, 3)) == 0) {
|
|
// (ADDSXrs GPR64:$dst, GPR64:$src1, GPR64:$src2, 0)
|
|
AsmString = "adds $\x01, $\x02, $\x03";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_ADDSXrx:
|
|
if (MCInst_getNumOperands(MI) == 4 &&
|
|
MCOperand_getReg(MCInst_getOperand(MI, 0)) == AArch64_XZR &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 1) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 2)) {
|
|
// (ADDSXrx XZR, GPR64sp:$src1, GPR32:$src2, arith_extend:$sh)
|
|
AsmString = "cmn $\x02, $\x03$\xFF\x04\x03";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_ADDSXrx64:
|
|
if (MCInst_getNumOperands(MI) == 4 &&
|
|
MCOperand_getReg(MCInst_getOperand(MI, 0)) == AArch64_XZR &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64sponlyRegClassID, 1) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 2) &&
|
|
MCOperand_isImm(MCInst_getOperand(MI, 3)) &&
|
|
MCOperand_getImm(MCInst_getOperand(MI, 3)) == 24) {
|
|
// (ADDSXrx64 XZR, GPR64sponly:$src1, GPR64:$src2, 24)
|
|
AsmString = "cmn $\x02, $\x03";
|
|
break;
|
|
}
|
|
if (MCInst_getNumOperands(MI) == 4 &&
|
|
MCOperand_getReg(MCInst_getOperand(MI, 0)) == AArch64_XZR &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 1) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 2)) {
|
|
// (ADDSXrx64 XZR, GPR64sp:$src1, GPR64:$src2, arith_extendlsl64:$sh)
|
|
AsmString = "cmn $\x02, $\x03$\xFF\x04\x03";
|
|
break;
|
|
}
|
|
if (MCInst_getNumOperands(MI) == 4 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64sponlyRegClassID, 1) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 2) &&
|
|
MCOperand_isImm(MCInst_getOperand(MI, 3)) &&
|
|
MCOperand_getImm(MCInst_getOperand(MI, 3)) == 24) {
|
|
// (ADDSXrx64 GPR64:$dst, GPR64sponly:$src1, GPR64:$src2, 24)
|
|
AsmString = "adds $\x01, $\x02, $\x03";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_ADDWri:
|
|
if (MCInst_getNumOperands(MI) == 4 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR32sponlyRegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR32spRegClassID, 1) &&
|
|
MCOperand_isImm(MCInst_getOperand(MI, 2)) &&
|
|
MCOperand_getImm(MCInst_getOperand(MI, 2)) == 0 &&
|
|
MCOperand_isImm(MCInst_getOperand(MI, 3)) &&
|
|
MCOperand_getImm(MCInst_getOperand(MI, 3)) == 0) {
|
|
// (ADDWri GPR32sponly:$dst, GPR32sp:$src, 0, 0)
|
|
AsmString = "mov $\x01, $\x02";
|
|
break;
|
|
}
|
|
if (MCInst_getNumOperands(MI) == 4 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR32spRegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR32sponlyRegClassID, 1) &&
|
|
MCOperand_isImm(MCInst_getOperand(MI, 2)) &&
|
|
MCOperand_getImm(MCInst_getOperand(MI, 2)) == 0 &&
|
|
MCOperand_isImm(MCInst_getOperand(MI, 3)) &&
|
|
MCOperand_getImm(MCInst_getOperand(MI, 3)) == 0) {
|
|
// (ADDWri GPR32sp:$dst, GPR32sponly:$src, 0, 0)
|
|
AsmString = "mov $\x01, $\x02";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_ADDWrs:
|
|
if (MCInst_getNumOperands(MI) == 4 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 1) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 2) &&
|
|
MCOperand_isImm(MCInst_getOperand(MI, 3)) &&
|
|
MCOperand_getImm(MCInst_getOperand(MI, 3)) == 0) {
|
|
// (ADDWrs GPR32:$dst, GPR32:$src1, GPR32:$src2, 0)
|
|
AsmString = "add $\x01, $\x02, $\x03";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_ADDWrx:
|
|
if (MCInst_getNumOperands(MI) == 4 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR32sponlyRegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR32spRegClassID, 1) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 2) &&
|
|
MCOperand_isImm(MCInst_getOperand(MI, 3)) &&
|
|
MCOperand_getImm(MCInst_getOperand(MI, 3)) == 16) {
|
|
// (ADDWrx GPR32sponly:$dst, GPR32sp:$src1, GPR32:$src2, 16)
|
|
AsmString = "add $\x01, $\x02, $\x03";
|
|
break;
|
|
}
|
|
if (MCInst_getNumOperands(MI) == 4 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR32spRegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR32sponlyRegClassID, 1) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 2) &&
|
|
MCOperand_isImm(MCInst_getOperand(MI, 3)) &&
|
|
MCOperand_getImm(MCInst_getOperand(MI, 3)) == 16) {
|
|
// (ADDWrx GPR32sp:$dst, GPR32sponly:$src1, GPR32:$src2, 16)
|
|
AsmString = "add $\x01, $\x02, $\x03";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_ADDXri:
|
|
if (MCInst_getNumOperands(MI) == 4 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64sponlyRegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 1) &&
|
|
MCOperand_isImm(MCInst_getOperand(MI, 2)) &&
|
|
MCOperand_getImm(MCInst_getOperand(MI, 2)) == 0 &&
|
|
MCOperand_isImm(MCInst_getOperand(MI, 3)) &&
|
|
MCOperand_getImm(MCInst_getOperand(MI, 3)) == 0) {
|
|
// (ADDXri GPR64sponly:$dst, GPR64sp:$src, 0, 0)
|
|
AsmString = "mov $\x01, $\x02";
|
|
break;
|
|
}
|
|
if (MCInst_getNumOperands(MI) == 4 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64sponlyRegClassID, 1) &&
|
|
MCOperand_isImm(MCInst_getOperand(MI, 2)) &&
|
|
MCOperand_getImm(MCInst_getOperand(MI, 2)) == 0 &&
|
|
MCOperand_isImm(MCInst_getOperand(MI, 3)) &&
|
|
MCOperand_getImm(MCInst_getOperand(MI, 3)) == 0) {
|
|
// (ADDXri GPR64sp:$dst, GPR64sponly:$src, 0, 0)
|
|
AsmString = "mov $\x01, $\x02";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_ADDXrs:
|
|
if (MCInst_getNumOperands(MI) == 4 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 1) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 2) &&
|
|
MCOperand_isImm(MCInst_getOperand(MI, 3)) &&
|
|
MCOperand_getImm(MCInst_getOperand(MI, 3)) == 0) {
|
|
// (ADDXrs GPR64:$dst, GPR64:$src1, GPR64:$src2, 0)
|
|
AsmString = "add $\x01, $\x02, $\x03";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_ADDXrx64:
|
|
if (MCInst_getNumOperands(MI) == 4 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64sponlyRegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 1) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 2) &&
|
|
MCOperand_isImm(MCInst_getOperand(MI, 3)) &&
|
|
MCOperand_getImm(MCInst_getOperand(MI, 3)) == 24) {
|
|
// (ADDXrx64 GPR64sponly:$dst, GPR64sp:$src1, GPR64:$src2, 24)
|
|
AsmString = "add $\x01, $\x02, $\x03";
|
|
break;
|
|
}
|
|
if (MCInst_getNumOperands(MI) == 4 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64sponlyRegClassID, 1) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 2) &&
|
|
MCOperand_isImm(MCInst_getOperand(MI, 3)) &&
|
|
MCOperand_getImm(MCInst_getOperand(MI, 3)) == 24) {
|
|
// (ADDXrx64 GPR64sp:$dst, GPR64sponly:$src1, GPR64:$src2, 24)
|
|
AsmString = "add $\x01, $\x02, $\x03";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_ANDSWri:
|
|
if (MCInst_getNumOperands(MI) == 3 &&
|
|
MCOperand_getReg(MCInst_getOperand(MI, 0)) == AArch64_WZR &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 1)) {
|
|
// (ANDSWri WZR, GPR32:$src1, logical_imm32:$src2)
|
|
AsmString = "tst $\x02, $\xFF\x03\x04";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_ANDSWrs:
|
|
if (MCInst_getNumOperands(MI) == 4 &&
|
|
MCOperand_getReg(MCInst_getOperand(MI, 0)) == AArch64_WZR &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 1) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 2) &&
|
|
MCOperand_isImm(MCInst_getOperand(MI, 3)) &&
|
|
MCOperand_getImm(MCInst_getOperand(MI, 3)) == 0) {
|
|
// (ANDSWrs WZR, GPR32:$src1, GPR32:$src2, 0)
|
|
AsmString = "tst $\x02, $\x03";
|
|
break;
|
|
}
|
|
if (MCInst_getNumOperands(MI) == 4 &&
|
|
MCOperand_getReg(MCInst_getOperand(MI, 0)) == AArch64_WZR &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 1) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 2)) {
|
|
// (ANDSWrs WZR, GPR32:$src1, GPR32:$src2, logical_shift32:$sh)
|
|
AsmString = "tst $\x02, $\x03$\xFF\x04\x02";
|
|
break;
|
|
}
|
|
if (MCInst_getNumOperands(MI) == 4 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 1) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 2) &&
|
|
MCOperand_isImm(MCInst_getOperand(MI, 3)) &&
|
|
MCOperand_getImm(MCInst_getOperand(MI, 3)) == 0) {
|
|
// (ANDSWrs GPR32:$dst, GPR32:$src1, GPR32:$src2, 0)
|
|
AsmString = "ands $\x01, $\x02, $\x03";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_ANDSXri:
|
|
if (MCInst_getNumOperands(MI) == 3 &&
|
|
MCOperand_getReg(MCInst_getOperand(MI, 0)) == AArch64_XZR &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 1)) {
|
|
// (ANDSXri XZR, GPR64:$src1, logical_imm64:$src2)
|
|
AsmString = "tst $\x02, $\xFF\x03\x05";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_ANDSXrs:
|
|
if (MCInst_getNumOperands(MI) == 4 &&
|
|
MCOperand_getReg(MCInst_getOperand(MI, 0)) == AArch64_XZR &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 1) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 2) &&
|
|
MCOperand_isImm(MCInst_getOperand(MI, 3)) &&
|
|
MCOperand_getImm(MCInst_getOperand(MI, 3)) == 0) {
|
|
// (ANDSXrs XZR, GPR64:$src1, GPR64:$src2, 0)
|
|
AsmString = "tst $\x02, $\x03";
|
|
break;
|
|
}
|
|
if (MCInst_getNumOperands(MI) == 4 &&
|
|
MCOperand_getReg(MCInst_getOperand(MI, 0)) == AArch64_XZR &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 1) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 2)) {
|
|
// (ANDSXrs XZR, GPR64:$src1, GPR64:$src2, logical_shift64:$sh)
|
|
AsmString = "tst $\x02, $\x03$\xFF\x04\x02";
|
|
break;
|
|
}
|
|
if (MCInst_getNumOperands(MI) == 4 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 1) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 2) &&
|
|
MCOperand_isImm(MCInst_getOperand(MI, 3)) &&
|
|
MCOperand_getImm(MCInst_getOperand(MI, 3)) == 0) {
|
|
// (ANDSXrs GPR64:$dst, GPR64:$src1, GPR64:$src2, 0)
|
|
AsmString = "ands $\x01, $\x02, $\x03";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_ANDWrs:
|
|
if (MCInst_getNumOperands(MI) == 4 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 1) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 2) &&
|
|
MCOperand_isImm(MCInst_getOperand(MI, 3)) &&
|
|
MCOperand_getImm(MCInst_getOperand(MI, 3)) == 0) {
|
|
// (ANDWrs GPR32:$dst, GPR32:$src1, GPR32:$src2, 0)
|
|
AsmString = "and $\x01, $\x02, $\x03";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_ANDXrs:
|
|
if (MCInst_getNumOperands(MI) == 4 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 1) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 2) &&
|
|
MCOperand_isImm(MCInst_getOperand(MI, 3)) &&
|
|
MCOperand_getImm(MCInst_getOperand(MI, 3)) == 0) {
|
|
// (ANDXrs GPR64:$dst, GPR64:$src1, GPR64:$src2, 0)
|
|
AsmString = "and $\x01, $\x02, $\x03";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_BICSWrs:
|
|
if (MCInst_getNumOperands(MI) == 4 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 1) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 2) &&
|
|
MCOperand_isImm(MCInst_getOperand(MI, 3)) &&
|
|
MCOperand_getImm(MCInst_getOperand(MI, 3)) == 0) {
|
|
// (BICSWrs GPR32:$dst, GPR32:$src1, GPR32:$src2, 0)
|
|
AsmString = "bics $\x01, $\x02, $\x03";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_BICSXrs:
|
|
if (MCInst_getNumOperands(MI) == 4 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 1) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 2) &&
|
|
MCOperand_isImm(MCInst_getOperand(MI, 3)) &&
|
|
MCOperand_getImm(MCInst_getOperand(MI, 3)) == 0) {
|
|
// (BICSXrs GPR64:$dst, GPR64:$src1, GPR64:$src2, 0)
|
|
AsmString = "bics $\x01, $\x02, $\x03";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_BICWrs:
|
|
if (MCInst_getNumOperands(MI) == 4 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 1) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 2) &&
|
|
MCOperand_isImm(MCInst_getOperand(MI, 3)) &&
|
|
MCOperand_getImm(MCInst_getOperand(MI, 3)) == 0) {
|
|
// (BICWrs GPR32:$dst, GPR32:$src1, GPR32:$src2, 0)
|
|
AsmString = "bic $\x01, $\x02, $\x03";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_BICXrs:
|
|
if (MCInst_getNumOperands(MI) == 4 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 1) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 2) &&
|
|
MCOperand_isImm(MCInst_getOperand(MI, 3)) &&
|
|
MCOperand_getImm(MCInst_getOperand(MI, 3)) == 0) {
|
|
// (BICXrs GPR64:$dst, GPR64:$src1, GPR64:$src2, 0)
|
|
AsmString = "bic $\x01, $\x02, $\x03";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_BICv2i32:
|
|
if (MCInst_getNumOperands(MI) == 3 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_FPR64RegClassID, 0) &&
|
|
MCOperand_isImm(MCInst_getOperand(MI, 2)) &&
|
|
MCOperand_getImm(MCInst_getOperand(MI, 2)) == 0) {
|
|
// (BICv2i32 V64:$Vd, imm0_255:$imm, 0)
|
|
AsmString = "bic $\xFF\x01\x06.2s, $\xFF\x02\x07";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_BICv4i16:
|
|
if (MCInst_getNumOperands(MI) == 3 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_FPR64RegClassID, 0) &&
|
|
MCOperand_isImm(MCInst_getOperand(MI, 2)) &&
|
|
MCOperand_getImm(MCInst_getOperand(MI, 2)) == 0) {
|
|
// (BICv4i16 V64:$Vd, imm0_255:$imm, 0)
|
|
AsmString = "bic $\xFF\x01\x06.4h, $\xFF\x02\x07";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_BICv4i32:
|
|
if (MCInst_getNumOperands(MI) == 3 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_FPR128RegClassID, 0) &&
|
|
MCOperand_isImm(MCInst_getOperand(MI, 2)) &&
|
|
MCOperand_getImm(MCInst_getOperand(MI, 2)) == 0) {
|
|
// (BICv4i32 V128:$Vd, imm0_255:$imm, 0)
|
|
AsmString = "bic $\xFF\x01\x06.4s, $\xFF\x02\x07";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_BICv8i16:
|
|
if (MCInst_getNumOperands(MI) == 3 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_FPR128RegClassID, 0) &&
|
|
MCOperand_isImm(MCInst_getOperand(MI, 2)) &&
|
|
MCOperand_getImm(MCInst_getOperand(MI, 2)) == 0) {
|
|
// (BICv8i16 V128:$Vd, imm0_255:$imm, 0)
|
|
AsmString = "bic $\xFF\x01\x06.8h, $\xFF\x02\x07";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_CLREX:
|
|
if (MCInst_getNumOperands(MI) == 1 &&
|
|
MCOperand_isImm(MCInst_getOperand(MI, 0)) &&
|
|
MCOperand_getImm(MCInst_getOperand(MI, 0)) == 15) {
|
|
// (CLREX 15)
|
|
AsmString = "clrex";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_CSINCWr:
|
|
if (MCInst_getNumOperands(MI) == 4 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 0) &&
|
|
MCOperand_getReg(MCInst_getOperand(MI, 1)) == AArch64_WZR &&
|
|
MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_WZR &&
|
|
AArch64InstPrinterValidateMCOperand(MCInst_getOperand(MI, 3), 1)) {
|
|
// (CSINCWr GPR32:$dst, WZR, WZR, inv_ccode:$cc)
|
|
AsmString = "cset $\x01, $\xFF\x04\x08";
|
|
break;
|
|
}
|
|
if (MCInst_getNumOperands(MI) == 4 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 1) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
|
|
MCOperand_getReg(MCInst_getOperand(MI, 2)) == MCOperand_getReg(MCInst_getOperand(MI, 1)) &&
|
|
AArch64InstPrinterValidateMCOperand(MCInst_getOperand(MI, 3), 1)) {
|
|
// (CSINCWr GPR32:$dst, GPR32:$src, GPR32:$src, inv_ccode:$cc)
|
|
AsmString = "cinc $\x01, $\x02, $\xFF\x04\x08";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_CSINCXr:
|
|
if (MCInst_getNumOperands(MI) == 4 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 0) &&
|
|
MCOperand_getReg(MCInst_getOperand(MI, 1)) == AArch64_XZR &&
|
|
MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR &&
|
|
AArch64InstPrinterValidateMCOperand(MCInst_getOperand(MI, 3), 1)) {
|
|
// (CSINCXr GPR64:$dst, XZR, XZR, inv_ccode:$cc)
|
|
AsmString = "cset $\x01, $\xFF\x04\x08";
|
|
break;
|
|
}
|
|
if (MCInst_getNumOperands(MI) == 4 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 1) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
|
|
MCOperand_getReg(MCInst_getOperand(MI, 2)) == MCOperand_getReg(MCInst_getOperand(MI, 1)) &&
|
|
AArch64InstPrinterValidateMCOperand(MCInst_getOperand(MI, 3), 1)) {
|
|
// (CSINCXr GPR64:$dst, GPR64:$src, GPR64:$src, inv_ccode:$cc)
|
|
AsmString = "cinc $\x01, $\x02, $\xFF\x04\x08";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_CSINVWr:
|
|
if (MCInst_getNumOperands(MI) == 4 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 0) &&
|
|
MCOperand_getReg(MCInst_getOperand(MI, 1)) == AArch64_WZR &&
|
|
MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_WZR &&
|
|
AArch64InstPrinterValidateMCOperand(MCInst_getOperand(MI, 3), 1)) {
|
|
// (CSINVWr GPR32:$dst, WZR, WZR, inv_ccode:$cc)
|
|
AsmString = "csetm $\x01, $\xFF\x04\x08";
|
|
break;
|
|
}
|
|
if (MCInst_getNumOperands(MI) == 4 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 1) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
|
|
MCOperand_getReg(MCInst_getOperand(MI, 2)) == MCOperand_getReg(MCInst_getOperand(MI, 1)) &&
|
|
AArch64InstPrinterValidateMCOperand(MCInst_getOperand(MI, 3), 1)) {
|
|
// (CSINVWr GPR32:$dst, GPR32:$src, GPR32:$src, inv_ccode:$cc)
|
|
AsmString = "cinv $\x01, $\x02, $\xFF\x04\x08";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_CSINVXr:
|
|
if (MCInst_getNumOperands(MI) == 4 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 0) &&
|
|
MCOperand_getReg(MCInst_getOperand(MI, 1)) == AArch64_XZR &&
|
|
MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR &&
|
|
AArch64InstPrinterValidateMCOperand(MCInst_getOperand(MI, 3), 1)) {
|
|
// (CSINVXr GPR64:$dst, XZR, XZR, inv_ccode:$cc)
|
|
AsmString = "csetm $\x01, $\xFF\x04\x08";
|
|
break;
|
|
}
|
|
if (MCInst_getNumOperands(MI) == 4 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 1) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
|
|
MCOperand_getReg(MCInst_getOperand(MI, 2)) == MCOperand_getReg(MCInst_getOperand(MI, 1)) &&
|
|
AArch64InstPrinterValidateMCOperand(MCInst_getOperand(MI, 3), 1)) {
|
|
// (CSINVXr GPR64:$dst, GPR64:$src, GPR64:$src, inv_ccode:$cc)
|
|
AsmString = "cinv $\x01, $\x02, $\xFF\x04\x08";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_CSNEGWr:
|
|
if (MCInst_getNumOperands(MI) == 4 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 1) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
|
|
MCOperand_getReg(MCInst_getOperand(MI, 2)) == MCOperand_getReg(MCInst_getOperand(MI, 1)) &&
|
|
AArch64InstPrinterValidateMCOperand(MCInst_getOperand(MI, 3), 1)) {
|
|
// (CSNEGWr GPR32:$dst, GPR32:$src, GPR32:$src, inv_ccode:$cc)
|
|
AsmString = "cneg $\x01, $\x02, $\xFF\x04\x08";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_CSNEGXr:
|
|
if (MCInst_getNumOperands(MI) == 4 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 1) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
|
|
MCOperand_getReg(MCInst_getOperand(MI, 2)) == MCOperand_getReg(MCInst_getOperand(MI, 1)) &&
|
|
AArch64InstPrinterValidateMCOperand(MCInst_getOperand(MI, 3), 1)) {
|
|
// (CSNEGXr GPR64:$dst, GPR64:$src, GPR64:$src, inv_ccode:$cc)
|
|
AsmString = "cneg $\x01, $\x02, $\xFF\x04\x08";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_DCPS1:
|
|
if (MCInst_getNumOperands(MI) == 1 &&
|
|
MCOperand_isImm(MCInst_getOperand(MI, 0)) &&
|
|
MCOperand_getImm(MCInst_getOperand(MI, 0)) == 0) {
|
|
// (DCPS1 0)
|
|
AsmString = "dcps1";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_DCPS2:
|
|
if (MCInst_getNumOperands(MI) == 1 &&
|
|
MCOperand_isImm(MCInst_getOperand(MI, 0)) &&
|
|
MCOperand_getImm(MCInst_getOperand(MI, 0)) == 0) {
|
|
// (DCPS2 0)
|
|
AsmString = "dcps2";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_DCPS3:
|
|
if (MCInst_getNumOperands(MI) == 1 &&
|
|
MCOperand_isImm(MCInst_getOperand(MI, 0)) &&
|
|
MCOperand_getImm(MCInst_getOperand(MI, 0)) == 0) {
|
|
// (DCPS3 0)
|
|
AsmString = "dcps3";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_EONWrs:
|
|
if (MCInst_getNumOperands(MI) == 4 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 1) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 2) &&
|
|
MCOperand_isImm(MCInst_getOperand(MI, 3)) &&
|
|
MCOperand_getImm(MCInst_getOperand(MI, 3)) == 0) {
|
|
// (EONWrs GPR32:$dst, GPR32:$src1, GPR32:$src2, 0)
|
|
AsmString = "eon $\x01, $\x02, $\x03";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_EONXrs:
|
|
if (MCInst_getNumOperands(MI) == 4 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 1) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 2) &&
|
|
MCOperand_isImm(MCInst_getOperand(MI, 3)) &&
|
|
MCOperand_getImm(MCInst_getOperand(MI, 3)) == 0) {
|
|
// (EONXrs GPR64:$dst, GPR64:$src1, GPR64:$src2, 0)
|
|
AsmString = "eon $\x01, $\x02, $\x03";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_EORWrs:
|
|
if (MCInst_getNumOperands(MI) == 4 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 1) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 2) &&
|
|
MCOperand_isImm(MCInst_getOperand(MI, 3)) &&
|
|
MCOperand_getImm(MCInst_getOperand(MI, 3)) == 0) {
|
|
// (EORWrs GPR32:$dst, GPR32:$src1, GPR32:$src2, 0)
|
|
AsmString = "eor $\x01, $\x02, $\x03";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_EORXrs:
|
|
if (MCInst_getNumOperands(MI) == 4 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 1) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 2) &&
|
|
MCOperand_isImm(MCInst_getOperand(MI, 3)) &&
|
|
MCOperand_getImm(MCInst_getOperand(MI, 3)) == 0) {
|
|
// (EORXrs GPR64:$dst, GPR64:$src1, GPR64:$src2, 0)
|
|
AsmString = "eor $\x01, $\x02, $\x03";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_EXTRWrri:
|
|
if (MCInst_getNumOperands(MI) == 4 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 1) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
|
|
MCOperand_getReg(MCInst_getOperand(MI, 2)) == MCOperand_getReg(MCInst_getOperand(MI, 1))) {
|
|
// (EXTRWrri GPR32:$dst, GPR32:$src, GPR32:$src, imm0_31:$shift)
|
|
AsmString = "ror $\x01, $\x02, $\x04";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_EXTRXrri:
|
|
if (MCInst_getNumOperands(MI) == 4 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 1) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
|
|
MCOperand_getReg(MCInst_getOperand(MI, 2)) == MCOperand_getReg(MCInst_getOperand(MI, 1))) {
|
|
// (EXTRXrri GPR64:$dst, GPR64:$src, GPR64:$src, imm0_63:$shift)
|
|
AsmString = "ror $\x01, $\x02, $\x04";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_HINT:
|
|
if (MCInst_getNumOperands(MI) == 1 &&
|
|
MCOperand_isImm(MCInst_getOperand(MI, 0)) &&
|
|
MCOperand_getImm(MCInst_getOperand(MI, 0)) == 0) {
|
|
// (HINT { 0, 0, 0 })
|
|
AsmString = "nop";
|
|
break;
|
|
}
|
|
if (MCInst_getNumOperands(MI) == 1 &&
|
|
MCOperand_isImm(MCInst_getOperand(MI, 0)) &&
|
|
MCOperand_getImm(MCInst_getOperand(MI, 0)) == 1) {
|
|
// (HINT { 0, 0, 1 })
|
|
AsmString = "yield";
|
|
break;
|
|
}
|
|
if (MCInst_getNumOperands(MI) == 1 &&
|
|
MCOperand_isImm(MCInst_getOperand(MI, 0)) &&
|
|
MCOperand_getImm(MCInst_getOperand(MI, 0)) == 2) {
|
|
// (HINT { 0, 1, 0 })
|
|
AsmString = "wfe";
|
|
break;
|
|
}
|
|
if (MCInst_getNumOperands(MI) == 1 &&
|
|
MCOperand_isImm(MCInst_getOperand(MI, 0)) &&
|
|
MCOperand_getImm(MCInst_getOperand(MI, 0)) == 3) {
|
|
// (HINT { 0, 1, 1 })
|
|
AsmString = "wfi";
|
|
break;
|
|
}
|
|
if (MCInst_getNumOperands(MI) == 1 &&
|
|
MCOperand_isImm(MCInst_getOperand(MI, 0)) &&
|
|
MCOperand_getImm(MCInst_getOperand(MI, 0)) == 4) {
|
|
// (HINT { 1, 0, 0 })
|
|
AsmString = "sev";
|
|
break;
|
|
}
|
|
if (MCInst_getNumOperands(MI) == 1 &&
|
|
MCOperand_isImm(MCInst_getOperand(MI, 0)) &&
|
|
MCOperand_getImm(MCInst_getOperand(MI, 0)) == 5) {
|
|
// (HINT { 1, 0, 1 })
|
|
AsmString = "sevl";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_INSvi16gpr:
|
|
if (MCInst_getNumOperands(MI) == 3 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_FPR128RegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 2)) {
|
|
// (INSvi16gpr V128:$dst, VectorIndexH:$idx, GPR32:$src)
|
|
AsmString = "mov $\xFF\x01\x06.h$\xFF\x02\x09, $\x03";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_INSvi16lane:
|
|
if (MCInst_getNumOperands(MI) == 4 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_FPR128RegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_FPR128RegClassID, 2)) {
|
|
// (INSvi16lane V128:$dst, VectorIndexH:$idx, V128:$src, VectorIndexH:$idx2)
|
|
AsmString = "mov $\xFF\x01\x06.h$\xFF\x02\x09, $\xFF\x03\x06.h$\xFF\x04\x09";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_INSvi32gpr:
|
|
if (MCInst_getNumOperands(MI) == 3 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_FPR128RegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 2)) {
|
|
// (INSvi32gpr V128:$dst, VectorIndexS:$idx, GPR32:$src)
|
|
AsmString = "mov $\xFF\x01\x06.s$\xFF\x02\x09, $\x03";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_INSvi32lane:
|
|
if (MCInst_getNumOperands(MI) == 4 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_FPR128RegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_FPR128RegClassID, 2)) {
|
|
// (INSvi32lane V128:$dst, VectorIndexS:$idx, V128:$src, VectorIndexS:$idx2)
|
|
AsmString = "mov $\xFF\x01\x06.s$\xFF\x02\x09, $\xFF\x03\x06.s$\xFF\x04\x09";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_INSvi64gpr:
|
|
if (MCInst_getNumOperands(MI) == 3 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_FPR128RegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 2)) {
|
|
// (INSvi64gpr V128:$dst, VectorIndexD:$idx, GPR64:$src)
|
|
AsmString = "mov $\xFF\x01\x06.d$\xFF\x02\x09, $\x03";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_INSvi64lane:
|
|
if (MCInst_getNumOperands(MI) == 4 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_FPR128RegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_FPR128RegClassID, 2)) {
|
|
// (INSvi64lane V128:$dst, VectorIndexD:$idx, V128:$src, VectorIndexD:$idx2)
|
|
AsmString = "mov $\xFF\x01\x06.d$\xFF\x02\x09, $\xFF\x03\x06.d$\xFF\x04\x09";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_INSvi8gpr:
|
|
if (MCInst_getNumOperands(MI) == 3 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_FPR128RegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 2)) {
|
|
// (INSvi8gpr V128:$dst, VectorIndexB:$idx, GPR32:$src)
|
|
AsmString = "mov $\xFF\x01\x06.b$\xFF\x02\x09, $\x03";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_INSvi8lane:
|
|
if (MCInst_getNumOperands(MI) == 4 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_FPR128RegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_FPR128RegClassID, 2)) {
|
|
// (INSvi8lane V128:$dst, VectorIndexB:$idx, V128:$src, VectorIndexB:$idx2)
|
|
AsmString = "mov $\xFF\x01\x06.b$\xFF\x02\x09, $\xFF\x03\x06.b$\xFF\x04\x09";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_ISB:
|
|
if (MCInst_getNumOperands(MI) == 1 &&
|
|
MCOperand_isImm(MCInst_getOperand(MI, 0)) &&
|
|
MCOperand_getImm(MCInst_getOperand(MI, 0)) == 15) {
|
|
// (ISB 15)
|
|
AsmString = "isb";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_LD1Fourv16b_POST:
|
|
if (MCInst_getNumOperands(MI) == 3 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_QQQQRegClassID, 1) &&
|
|
MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
|
|
// (LD1Fourv16b_POST GPR64sp:$Rn, VecListFour16b:$Vt, XZR)
|
|
AsmString = "ld1 $\xFF\x02\x0A, [$\x01], #64";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_LD1Fourv1d_POST:
|
|
if (MCInst_getNumOperands(MI) == 3 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_DDDDRegClassID, 1) &&
|
|
MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
|
|
// (LD1Fourv1d_POST GPR64sp:$Rn, VecListFour1d:$Vt, XZR)
|
|
AsmString = "ld1 $\xFF\x02\x0B, [$\x01], #32";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_LD1Fourv2d_POST:
|
|
if (MCInst_getNumOperands(MI) == 3 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_QQQQRegClassID, 1) &&
|
|
MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
|
|
// (LD1Fourv2d_POST GPR64sp:$Rn, VecListFour2d:$Vt, XZR)
|
|
AsmString = "ld1 $\xFF\x02\x0C, [$\x01], #64";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_LD1Fourv2s_POST:
|
|
if (MCInst_getNumOperands(MI) == 3 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_DDDDRegClassID, 1) &&
|
|
MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
|
|
// (LD1Fourv2s_POST GPR64sp:$Rn, VecListFour2s:$Vt, XZR)
|
|
AsmString = "ld1 $\xFF\x02\x0D, [$\x01], #32";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_LD1Fourv4h_POST:
|
|
if (MCInst_getNumOperands(MI) == 3 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_DDDDRegClassID, 1) &&
|
|
MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
|
|
// (LD1Fourv4h_POST GPR64sp:$Rn, VecListFour4h:$Vt, XZR)
|
|
AsmString = "ld1 $\xFF\x02\x0E, [$\x01], #32";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_LD1Fourv4s_POST:
|
|
if (MCInst_getNumOperands(MI) == 3 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_QQQQRegClassID, 1) &&
|
|
MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
|
|
// (LD1Fourv4s_POST GPR64sp:$Rn, VecListFour4s:$Vt, XZR)
|
|
AsmString = "ld1 $\xFF\x02\x0F, [$\x01], #64";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_LD1Fourv8b_POST:
|
|
if (MCInst_getNumOperands(MI) == 3 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_DDDDRegClassID, 1) &&
|
|
MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
|
|
// (LD1Fourv8b_POST GPR64sp:$Rn, VecListFour8b:$Vt, XZR)
|
|
AsmString = "ld1 $\xFF\x02\x10, [$\x01], #32";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_LD1Fourv8h_POST:
|
|
if (MCInst_getNumOperands(MI) == 3 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_QQQQRegClassID, 1) &&
|
|
MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
|
|
// (LD1Fourv8h_POST GPR64sp:$Rn, VecListFour8h:$Vt, XZR)
|
|
AsmString = "ld1 $\xFF\x02\x11, [$\x01], #64";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_LD1Onev16b_POST:
|
|
if (MCInst_getNumOperands(MI) == 3 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_FPR128RegClassID, 1) &&
|
|
MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
|
|
// (LD1Onev16b_POST GPR64sp:$Rn, VecListOne16b:$Vt, XZR)
|
|
AsmString = "ld1 $\xFF\x02\x0A, [$\x01], #16";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_LD1Onev1d_POST:
|
|
if (MCInst_getNumOperands(MI) == 3 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_FPR64RegClassID, 1) &&
|
|
MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
|
|
// (LD1Onev1d_POST GPR64sp:$Rn, VecListOne1d:$Vt, XZR)
|
|
AsmString = "ld1 $\xFF\x02\x0B, [$\x01], #8";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_LD1Onev2d_POST:
|
|
if (MCInst_getNumOperands(MI) == 3 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_FPR128RegClassID, 1) &&
|
|
MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
|
|
// (LD1Onev2d_POST GPR64sp:$Rn, VecListOne2d:$Vt, XZR)
|
|
AsmString = "ld1 $\xFF\x02\x0C, [$\x01], #16";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_LD1Onev2s_POST:
|
|
if (MCInst_getNumOperands(MI) == 3 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_FPR64RegClassID, 1) &&
|
|
MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
|
|
// (LD1Onev2s_POST GPR64sp:$Rn, VecListOne2s:$Vt, XZR)
|
|
AsmString = "ld1 $\xFF\x02\x0D, [$\x01], #8";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_LD1Onev4h_POST:
|
|
if (MCInst_getNumOperands(MI) == 3 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_FPR64RegClassID, 1) &&
|
|
MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
|
|
// (LD1Onev4h_POST GPR64sp:$Rn, VecListOne4h:$Vt, XZR)
|
|
AsmString = "ld1 $\xFF\x02\x0E, [$\x01], #8";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_LD1Onev4s_POST:
|
|
if (MCInst_getNumOperands(MI) == 3 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_FPR128RegClassID, 1) &&
|
|
MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
|
|
// (LD1Onev4s_POST GPR64sp:$Rn, VecListOne4s:$Vt, XZR)
|
|
AsmString = "ld1 $\xFF\x02\x0F, [$\x01], #16";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_LD1Onev8b_POST:
|
|
if (MCInst_getNumOperands(MI) == 3 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_FPR64RegClassID, 1) &&
|
|
MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
|
|
// (LD1Onev8b_POST GPR64sp:$Rn, VecListOne8b:$Vt, XZR)
|
|
AsmString = "ld1 $\xFF\x02\x10, [$\x01], #8";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_LD1Onev8h_POST:
|
|
if (MCInst_getNumOperands(MI) == 3 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_FPR128RegClassID, 1) &&
|
|
MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
|
|
// (LD1Onev8h_POST GPR64sp:$Rn, VecListOne8h:$Vt, XZR)
|
|
AsmString = "ld1 $\xFF\x02\x11, [$\x01], #16";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_LD1Rv16b_POST:
|
|
if (MCInst_getNumOperands(MI) == 3 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_FPR128RegClassID, 1) &&
|
|
MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
|
|
// (LD1Rv16b_POST GPR64sp:$Rn, VecListOne16b:$Vt, XZR)
|
|
AsmString = "ld1r $\xFF\x02\x0A, [$\x01], #1";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_LD1Rv1d_POST:
|
|
if (MCInst_getNumOperands(MI) == 3 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_FPR64RegClassID, 1) &&
|
|
MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
|
|
// (LD1Rv1d_POST GPR64sp:$Rn, VecListOne1d:$Vt, XZR)
|
|
AsmString = "ld1r $\xFF\x02\x0B, [$\x01], #8";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_LD1Rv2d_POST:
|
|
if (MCInst_getNumOperands(MI) == 3 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_FPR128RegClassID, 1) &&
|
|
MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
|
|
// (LD1Rv2d_POST GPR64sp:$Rn, VecListOne2d:$Vt, XZR)
|
|
AsmString = "ld1r $\xFF\x02\x0C, [$\x01], #8";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_LD1Rv2s_POST:
|
|
if (MCInst_getNumOperands(MI) == 3 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_FPR64RegClassID, 1) &&
|
|
MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
|
|
// (LD1Rv2s_POST GPR64sp:$Rn, VecListOne2s:$Vt, XZR)
|
|
AsmString = "ld1r $\xFF\x02\x0D, [$\x01], #4";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_LD1Rv4h_POST:
|
|
if (MCInst_getNumOperands(MI) == 3 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_FPR64RegClassID, 1) &&
|
|
MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
|
|
// (LD1Rv4h_POST GPR64sp:$Rn, VecListOne4h:$Vt, XZR)
|
|
AsmString = "ld1r $\xFF\x02\x0E, [$\x01], #2";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_LD1Rv4s_POST:
|
|
if (MCInst_getNumOperands(MI) == 3 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_FPR128RegClassID, 1) &&
|
|
MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
|
|
// (LD1Rv4s_POST GPR64sp:$Rn, VecListOne4s:$Vt, XZR)
|
|
AsmString = "ld1r $\xFF\x02\x0F, [$\x01], #4";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_LD1Rv8b_POST:
|
|
if (MCInst_getNumOperands(MI) == 3 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_FPR64RegClassID, 1) &&
|
|
MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
|
|
// (LD1Rv8b_POST GPR64sp:$Rn, VecListOne8b:$Vt, XZR)
|
|
AsmString = "ld1r $\xFF\x02\x10, [$\x01], #1";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_LD1Rv8h_POST:
|
|
if (MCInst_getNumOperands(MI) == 3 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_FPR128RegClassID, 1) &&
|
|
MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
|
|
// (LD1Rv8h_POST GPR64sp:$Rn, VecListOne8h:$Vt, XZR)
|
|
AsmString = "ld1r $\xFF\x02\x11, [$\x01], #2";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_LD1Threev16b_POST:
|
|
if (MCInst_getNumOperands(MI) == 3 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_QQQRegClassID, 1) &&
|
|
MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
|
|
// (LD1Threev16b_POST GPR64sp:$Rn, VecListThree16b:$Vt, XZR)
|
|
AsmString = "ld1 $\xFF\x02\x0A, [$\x01], #48";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_LD1Threev1d_POST:
|
|
if (MCInst_getNumOperands(MI) == 3 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_DDDRegClassID, 1) &&
|
|
MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
|
|
// (LD1Threev1d_POST GPR64sp:$Rn, VecListThree1d:$Vt, XZR)
|
|
AsmString = "ld1 $\xFF\x02\x0B, [$\x01], #24";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_LD1Threev2d_POST:
|
|
if (MCInst_getNumOperands(MI) == 3 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_QQQRegClassID, 1) &&
|
|
MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
|
|
// (LD1Threev2d_POST GPR64sp:$Rn, VecListThree2d:$Vt, XZR)
|
|
AsmString = "ld1 $\xFF\x02\x0C, [$\x01], #48";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_LD1Threev2s_POST:
|
|
if (MCInst_getNumOperands(MI) == 3 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_DDDRegClassID, 1) &&
|
|
MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
|
|
// (LD1Threev2s_POST GPR64sp:$Rn, VecListThree2s:$Vt, XZR)
|
|
AsmString = "ld1 $\xFF\x02\x0D, [$\x01], #24";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_LD1Threev4h_POST:
|
|
if (MCInst_getNumOperands(MI) == 3 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_DDDRegClassID, 1) &&
|
|
MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
|
|
// (LD1Threev4h_POST GPR64sp:$Rn, VecListThree4h:$Vt, XZR)
|
|
AsmString = "ld1 $\xFF\x02\x0E, [$\x01], #24";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_LD1Threev4s_POST:
|
|
if (MCInst_getNumOperands(MI) == 3 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_QQQRegClassID, 1) &&
|
|
MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
|
|
// (LD1Threev4s_POST GPR64sp:$Rn, VecListThree4s:$Vt, XZR)
|
|
AsmString = "ld1 $\xFF\x02\x0F, [$\x01], #48";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_LD1Threev8b_POST:
|
|
if (MCInst_getNumOperands(MI) == 3 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_DDDRegClassID, 1) &&
|
|
MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
|
|
// (LD1Threev8b_POST GPR64sp:$Rn, VecListThree8b:$Vt, XZR)
|
|
AsmString = "ld1 $\xFF\x02\x10, [$\x01], #24";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_LD1Threev8h_POST:
|
|
if (MCInst_getNumOperands(MI) == 3 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_QQQRegClassID, 1) &&
|
|
MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
|
|
// (LD1Threev8h_POST GPR64sp:$Rn, VecListThree8h:$Vt, XZR)
|
|
AsmString = "ld1 $\xFF\x02\x11, [$\x01], #48";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_LD1Twov16b_POST:
|
|
if (MCInst_getNumOperands(MI) == 3 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_QQRegClassID, 1) &&
|
|
MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
|
|
// (LD1Twov16b_POST GPR64sp:$Rn, VecListTwo16b:$Vt, XZR)
|
|
AsmString = "ld1 $\xFF\x02\x0A, [$\x01], #32";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_LD1Twov1d_POST:
|
|
if (MCInst_getNumOperands(MI) == 3 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_DDRegClassID, 1) &&
|
|
MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
|
|
// (LD1Twov1d_POST GPR64sp:$Rn, VecListTwo1d:$Vt, XZR)
|
|
AsmString = "ld1 $\xFF\x02\x0B, [$\x01], #16";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_LD1Twov2d_POST:
|
|
if (MCInst_getNumOperands(MI) == 3 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_QQRegClassID, 1) &&
|
|
MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
|
|
// (LD1Twov2d_POST GPR64sp:$Rn, VecListTwo2d:$Vt, XZR)
|
|
AsmString = "ld1 $\xFF\x02\x0C, [$\x01], #32";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_LD1Twov2s_POST:
|
|
if (MCInst_getNumOperands(MI) == 3 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_DDRegClassID, 1) &&
|
|
MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
|
|
// (LD1Twov2s_POST GPR64sp:$Rn, VecListTwo2s:$Vt, XZR)
|
|
AsmString = "ld1 $\xFF\x02\x0D, [$\x01], #16";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_LD1Twov4h_POST:
|
|
if (MCInst_getNumOperands(MI) == 3 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_DDRegClassID, 1) &&
|
|
MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
|
|
// (LD1Twov4h_POST GPR64sp:$Rn, VecListTwo4h:$Vt, XZR)
|
|
AsmString = "ld1 $\xFF\x02\x0E, [$\x01], #16";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_LD1Twov4s_POST:
|
|
if (MCInst_getNumOperands(MI) == 3 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_QQRegClassID, 1) &&
|
|
MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
|
|
// (LD1Twov4s_POST GPR64sp:$Rn, VecListTwo4s:$Vt, XZR)
|
|
AsmString = "ld1 $\xFF\x02\x0F, [$\x01], #32";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_LD1Twov8b_POST:
|
|
if (MCInst_getNumOperands(MI) == 3 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_DDRegClassID, 1) &&
|
|
MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
|
|
// (LD1Twov8b_POST GPR64sp:$Rn, VecListTwo8b:$Vt, XZR)
|
|
AsmString = "ld1 $\xFF\x02\x10, [$\x01], #16";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_LD1Twov8h_POST:
|
|
if (MCInst_getNumOperands(MI) == 3 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_QQRegClassID, 1) &&
|
|
MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
|
|
// (LD1Twov8h_POST GPR64sp:$Rn, VecListTwo8h:$Vt, XZR)
|
|
AsmString = "ld1 $\xFF\x02\x11, [$\x01], #32";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_LD1i16_POST:
|
|
if (MCInst_getNumOperands(MI) == 4 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_FPR128RegClassID, 1) &&
|
|
MCOperand_getReg(MCInst_getOperand(MI, 3)) == AArch64_XZR) {
|
|
// (LD1i16_POST GPR64sp:$Rn, VecListOneh:$Vt, VectorIndexH:$idx, XZR)
|
|
AsmString = "ld1 $\xFF\x02\x12$\xFF\x03\x09, [$\x01], #2";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_LD1i32_POST:
|
|
if (MCInst_getNumOperands(MI) == 4 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_FPR128RegClassID, 1) &&
|
|
MCOperand_getReg(MCInst_getOperand(MI, 3)) == AArch64_XZR) {
|
|
// (LD1i32_POST GPR64sp:$Rn, VecListOnes:$Vt, VectorIndexS:$idx, XZR)
|
|
AsmString = "ld1 $\xFF\x02\x13$\xFF\x03\x09, [$\x01], #4";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_LD1i64_POST:
|
|
if (MCInst_getNumOperands(MI) == 4 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_FPR128RegClassID, 1) &&
|
|
MCOperand_getReg(MCInst_getOperand(MI, 3)) == AArch64_XZR) {
|
|
// (LD1i64_POST GPR64sp:$Rn, VecListOned:$Vt, VectorIndexD:$idx, XZR)
|
|
AsmString = "ld1 $\xFF\x02\x14$\xFF\x03\x09, [$\x01], #8";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_LD1i8_POST:
|
|
if (MCInst_getNumOperands(MI) == 4 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_FPR128RegClassID, 1) &&
|
|
MCOperand_getReg(MCInst_getOperand(MI, 3)) == AArch64_XZR) {
|
|
// (LD1i8_POST GPR64sp:$Rn, VecListOneb:$Vt, VectorIndexB:$idx, XZR)
|
|
AsmString = "ld1 $\xFF\x02\x15$\xFF\x03\x09, [$\x01], #1";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_LD2Rv16b_POST:
|
|
if (MCInst_getNumOperands(MI) == 3 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_QQRegClassID, 1) &&
|
|
MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
|
|
// (LD2Rv16b_POST GPR64sp:$Rn, VecListTwo16b:$Vt, XZR)
|
|
AsmString = "ld2r $\xFF\x02\x0A, [$\x01], #2";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_LD2Rv1d_POST:
|
|
if (MCInst_getNumOperands(MI) == 3 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_DDRegClassID, 1) &&
|
|
MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
|
|
// (LD2Rv1d_POST GPR64sp:$Rn, VecListTwo1d:$Vt, XZR)
|
|
AsmString = "ld2r $\xFF\x02\x0B, [$\x01], #16";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_LD2Rv2d_POST:
|
|
if (MCInst_getNumOperands(MI) == 3 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_QQRegClassID, 1) &&
|
|
MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
|
|
// (LD2Rv2d_POST GPR64sp:$Rn, VecListTwo2d:$Vt, XZR)
|
|
AsmString = "ld2r $\xFF\x02\x0C, [$\x01], #16";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_LD2Rv2s_POST:
|
|
if (MCInst_getNumOperands(MI) == 3 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_DDRegClassID, 1) &&
|
|
MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
|
|
// (LD2Rv2s_POST GPR64sp:$Rn, VecListTwo2s:$Vt, XZR)
|
|
AsmString = "ld2r $\xFF\x02\x0D, [$\x01], #8";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_LD2Rv4h_POST:
|
|
if (MCInst_getNumOperands(MI) == 3 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_DDRegClassID, 1) &&
|
|
MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
|
|
// (LD2Rv4h_POST GPR64sp:$Rn, VecListTwo4h:$Vt, XZR)
|
|
AsmString = "ld2r $\xFF\x02\x0E, [$\x01], #4";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_LD2Rv4s_POST:
|
|
if (MCInst_getNumOperands(MI) == 3 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_QQRegClassID, 1) &&
|
|
MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
|
|
// (LD2Rv4s_POST GPR64sp:$Rn, VecListTwo4s:$Vt, XZR)
|
|
AsmString = "ld2r $\xFF\x02\x0F, [$\x01], #8";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_LD2Rv8b_POST:
|
|
if (MCInst_getNumOperands(MI) == 3 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_DDRegClassID, 1) &&
|
|
MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
|
|
// (LD2Rv8b_POST GPR64sp:$Rn, VecListTwo8b:$Vt, XZR)
|
|
AsmString = "ld2r $\xFF\x02\x10, [$\x01], #2";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_LD2Rv8h_POST:
|
|
if (MCInst_getNumOperands(MI) == 3 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_QQRegClassID, 1) &&
|
|
MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
|
|
// (LD2Rv8h_POST GPR64sp:$Rn, VecListTwo8h:$Vt, XZR)
|
|
AsmString = "ld2r $\xFF\x02\x11, [$\x01], #4";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_LD2Twov16b_POST:
|
|
if (MCInst_getNumOperands(MI) == 3 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_QQRegClassID, 1) &&
|
|
MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
|
|
// (LD2Twov16b_POST GPR64sp:$Rn, VecListTwo16b:$Vt, XZR)
|
|
AsmString = "ld2 $\xFF\x02\x0A, [$\x01], #32";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_LD2Twov2d_POST:
|
|
if (MCInst_getNumOperands(MI) == 3 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_QQRegClassID, 1) &&
|
|
MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
|
|
// (LD2Twov2d_POST GPR64sp:$Rn, VecListTwo2d:$Vt, XZR)
|
|
AsmString = "ld2 $\xFF\x02\x0C, [$\x01], #32";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_LD2Twov2s_POST:
|
|
if (MCInst_getNumOperands(MI) == 3 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_DDRegClassID, 1) &&
|
|
MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
|
|
// (LD2Twov2s_POST GPR64sp:$Rn, VecListTwo2s:$Vt, XZR)
|
|
AsmString = "ld2 $\xFF\x02\x0D, [$\x01], #16";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_LD2Twov4h_POST:
|
|
if (MCInst_getNumOperands(MI) == 3 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_DDRegClassID, 1) &&
|
|
MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
|
|
// (LD2Twov4h_POST GPR64sp:$Rn, VecListTwo4h:$Vt, XZR)
|
|
AsmString = "ld2 $\xFF\x02\x0E, [$\x01], #16";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_LD2Twov4s_POST:
|
|
if (MCInst_getNumOperands(MI) == 3 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_QQRegClassID, 1) &&
|
|
MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
|
|
// (LD2Twov4s_POST GPR64sp:$Rn, VecListTwo4s:$Vt, XZR)
|
|
AsmString = "ld2 $\xFF\x02\x0F, [$\x01], #32";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_LD2Twov8b_POST:
|
|
if (MCInst_getNumOperands(MI) == 3 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_DDRegClassID, 1) &&
|
|
MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
|
|
// (LD2Twov8b_POST GPR64sp:$Rn, VecListTwo8b:$Vt, XZR)
|
|
AsmString = "ld2 $\xFF\x02\x10, [$\x01], #16";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_LD2Twov8h_POST:
|
|
if (MCInst_getNumOperands(MI) == 3 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_QQRegClassID, 1) &&
|
|
MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
|
|
// (LD2Twov8h_POST GPR64sp:$Rn, VecListTwo8h:$Vt, XZR)
|
|
AsmString = "ld2 $\xFF\x02\x11, [$\x01], #32";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_LD2i16_POST:
|
|
if (MCInst_getNumOperands(MI) == 4 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_QQRegClassID, 1) &&
|
|
MCOperand_getReg(MCInst_getOperand(MI, 3)) == AArch64_XZR) {
|
|
// (LD2i16_POST GPR64sp:$Rn, VecListTwoh:$Vt, VectorIndexH:$idx, XZR)
|
|
AsmString = "ld2 $\xFF\x02\x12$\xFF\x03\x09, [$\x01], #4";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_LD2i32_POST:
|
|
if (MCInst_getNumOperands(MI) == 4 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_QQRegClassID, 1) &&
|
|
MCOperand_getReg(MCInst_getOperand(MI, 3)) == AArch64_XZR) {
|
|
// (LD2i32_POST GPR64sp:$Rn, VecListTwos:$Vt, VectorIndexS:$idx, XZR)
|
|
AsmString = "ld2 $\xFF\x02\x13$\xFF\x03\x09, [$\x01], #8";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_LD2i64_POST:
|
|
if (MCInst_getNumOperands(MI) == 4 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_QQRegClassID, 1) &&
|
|
MCOperand_getReg(MCInst_getOperand(MI, 3)) == AArch64_XZR) {
|
|
// (LD2i64_POST GPR64sp:$Rn, VecListTwod:$Vt, VectorIndexD:$idx, XZR)
|
|
AsmString = "ld2 $\xFF\x02\x14$\xFF\x03\x09, [$\x01], #16";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_LD2i8_POST:
|
|
if (MCInst_getNumOperands(MI) == 4 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_QQRegClassID, 1) &&
|
|
MCOperand_getReg(MCInst_getOperand(MI, 3)) == AArch64_XZR) {
|
|
// (LD2i8_POST GPR64sp:$Rn, VecListTwob:$Vt, VectorIndexB:$idx, XZR)
|
|
AsmString = "ld2 $\xFF\x02\x15$\xFF\x03\x09, [$\x01], #2";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_LD3Rv16b_POST:
|
|
if (MCInst_getNumOperands(MI) == 3 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_QQQRegClassID, 1) &&
|
|
MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
|
|
// (LD3Rv16b_POST GPR64sp:$Rn, VecListThree16b:$Vt, XZR)
|
|
AsmString = "ld3r $\xFF\x02\x0A, [$\x01], #3";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_LD3Rv1d_POST:
|
|
if (MCInst_getNumOperands(MI) == 3 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_DDDRegClassID, 1) &&
|
|
MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
|
|
// (LD3Rv1d_POST GPR64sp:$Rn, VecListThree1d:$Vt, XZR)
|
|
AsmString = "ld3r $\xFF\x02\x0B, [$\x01], #24";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_LD3Rv2d_POST:
|
|
if (MCInst_getNumOperands(MI) == 3 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_QQQRegClassID, 1) &&
|
|
MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
|
|
// (LD3Rv2d_POST GPR64sp:$Rn, VecListThree2d:$Vt, XZR)
|
|
AsmString = "ld3r $\xFF\x02\x0C, [$\x01], #24";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_LD3Rv2s_POST:
|
|
if (MCInst_getNumOperands(MI) == 3 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_DDDRegClassID, 1) &&
|
|
MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
|
|
// (LD3Rv2s_POST GPR64sp:$Rn, VecListThree2s:$Vt, XZR)
|
|
AsmString = "ld3r $\xFF\x02\x0D, [$\x01], #12";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_LD3Rv4h_POST:
|
|
if (MCInst_getNumOperands(MI) == 3 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_DDDRegClassID, 1) &&
|
|
MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
|
|
// (LD3Rv4h_POST GPR64sp:$Rn, VecListThree4h:$Vt, XZR)
|
|
AsmString = "ld3r $\xFF\x02\x0E, [$\x01], #6";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_LD3Rv4s_POST:
|
|
if (MCInst_getNumOperands(MI) == 3 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_QQQRegClassID, 1) &&
|
|
MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
|
|
// (LD3Rv4s_POST GPR64sp:$Rn, VecListThree4s:$Vt, XZR)
|
|
AsmString = "ld3r $\xFF\x02\x0F, [$\x01], #12";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_LD3Rv8b_POST:
|
|
if (MCInst_getNumOperands(MI) == 3 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_DDDRegClassID, 1) &&
|
|
MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
|
|
// (LD3Rv8b_POST GPR64sp:$Rn, VecListThree8b:$Vt, XZR)
|
|
AsmString = "ld3r $\xFF\x02\x10, [$\x01], #3";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_LD3Rv8h_POST:
|
|
if (MCInst_getNumOperands(MI) == 3 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_QQQRegClassID, 1) &&
|
|
MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
|
|
// (LD3Rv8h_POST GPR64sp:$Rn, VecListThree8h:$Vt, XZR)
|
|
AsmString = "ld3r $\xFF\x02\x11, [$\x01], #6";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_LD3Threev16b_POST:
|
|
if (MCInst_getNumOperands(MI) == 3 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_QQQRegClassID, 1) &&
|
|
MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
|
|
// (LD3Threev16b_POST GPR64sp:$Rn, VecListThree16b:$Vt, XZR)
|
|
AsmString = "ld3 $\xFF\x02\x0A, [$\x01], #48";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_LD3Threev2d_POST:
|
|
if (MCInst_getNumOperands(MI) == 3 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_QQQRegClassID, 1) &&
|
|
MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
|
|
// (LD3Threev2d_POST GPR64sp:$Rn, VecListThree2d:$Vt, XZR)
|
|
AsmString = "ld3 $\xFF\x02\x0C, [$\x01], #48";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_LD3Threev2s_POST:
|
|
if (MCInst_getNumOperands(MI) == 3 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_DDDRegClassID, 1) &&
|
|
MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
|
|
// (LD3Threev2s_POST GPR64sp:$Rn, VecListThree2s:$Vt, XZR)
|
|
AsmString = "ld3 $\xFF\x02\x0D, [$\x01], #24";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_LD3Threev4h_POST:
|
|
if (MCInst_getNumOperands(MI) == 3 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_DDDRegClassID, 1) &&
|
|
MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
|
|
// (LD3Threev4h_POST GPR64sp:$Rn, VecListThree4h:$Vt, XZR)
|
|
AsmString = "ld3 $\xFF\x02\x0E, [$\x01], #24";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_LD3Threev4s_POST:
|
|
if (MCInst_getNumOperands(MI) == 3 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_QQQRegClassID, 1) &&
|
|
MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
|
|
// (LD3Threev4s_POST GPR64sp:$Rn, VecListThree4s:$Vt, XZR)
|
|
AsmString = "ld3 $\xFF\x02\x0F, [$\x01], #48";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_LD3Threev8b_POST:
|
|
if (MCInst_getNumOperands(MI) == 3 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_DDDRegClassID, 1) &&
|
|
MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
|
|
// (LD3Threev8b_POST GPR64sp:$Rn, VecListThree8b:$Vt, XZR)
|
|
AsmString = "ld3 $\xFF\x02\x10, [$\x01], #24";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_LD3Threev8h_POST:
|
|
if (MCInst_getNumOperands(MI) == 3 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_QQQRegClassID, 1) &&
|
|
MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
|
|
// (LD3Threev8h_POST GPR64sp:$Rn, VecListThree8h:$Vt, XZR)
|
|
AsmString = "ld3 $\xFF\x02\x11, [$\x01], #48";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_LD3i16_POST:
|
|
if (MCInst_getNumOperands(MI) == 4 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_QQQRegClassID, 1) &&
|
|
MCOperand_getReg(MCInst_getOperand(MI, 3)) == AArch64_XZR) {
|
|
// (LD3i16_POST GPR64sp:$Rn, VecListThreeh:$Vt, VectorIndexH:$idx, XZR)
|
|
AsmString = "ld3 $\xFF\x02\x12$\xFF\x03\x09, [$\x01], #6";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_LD3i32_POST:
|
|
if (MCInst_getNumOperands(MI) == 4 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_QQQRegClassID, 1) &&
|
|
MCOperand_getReg(MCInst_getOperand(MI, 3)) == AArch64_XZR) {
|
|
// (LD3i32_POST GPR64sp:$Rn, VecListThrees:$Vt, VectorIndexS:$idx, XZR)
|
|
AsmString = "ld3 $\xFF\x02\x13$\xFF\x03\x09, [$\x01], #12";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_LD3i64_POST:
|
|
if (MCInst_getNumOperands(MI) == 4 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_QQQRegClassID, 1) &&
|
|
MCOperand_getReg(MCInst_getOperand(MI, 3)) == AArch64_XZR) {
|
|
// (LD3i64_POST GPR64sp:$Rn, VecListThreed:$Vt, VectorIndexD:$idx, XZR)
|
|
AsmString = "ld3 $\xFF\x02\x14$\xFF\x03\x09, [$\x01], #24";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_LD3i8_POST:
|
|
if (MCInst_getNumOperands(MI) == 4 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_QQQRegClassID, 1) &&
|
|
MCOperand_getReg(MCInst_getOperand(MI, 3)) == AArch64_XZR) {
|
|
// (LD3i8_POST GPR64sp:$Rn, VecListThreeb:$Vt, VectorIndexB:$idx, XZR)
|
|
AsmString = "ld3 $\xFF\x02\x15$\xFF\x03\x09, [$\x01], #3";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_LD4Fourv16b_POST:
|
|
if (MCInst_getNumOperands(MI) == 3 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_QQQQRegClassID, 1) &&
|
|
MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
|
|
// (LD4Fourv16b_POST GPR64sp:$Rn, VecListFour16b:$Vt, XZR)
|
|
AsmString = "ld4 $\xFF\x02\x0A, [$\x01], #64";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_LD4Fourv2d_POST:
|
|
if (MCInst_getNumOperands(MI) == 3 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_QQQQRegClassID, 1) &&
|
|
MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
|
|
// (LD4Fourv2d_POST GPR64sp:$Rn, VecListFour2d:$Vt, XZR)
|
|
AsmString = "ld4 $\xFF\x02\x0C, [$\x01], #64";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_LD4Fourv2s_POST:
|
|
if (MCInst_getNumOperands(MI) == 3 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_DDDDRegClassID, 1) &&
|
|
MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
|
|
// (LD4Fourv2s_POST GPR64sp:$Rn, VecListFour2s:$Vt, XZR)
|
|
AsmString = "ld4 $\xFF\x02\x0D, [$\x01], #32";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_LD4Fourv4h_POST:
|
|
if (MCInst_getNumOperands(MI) == 3 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_DDDDRegClassID, 1) &&
|
|
MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
|
|
// (LD4Fourv4h_POST GPR64sp:$Rn, VecListFour4h:$Vt, XZR)
|
|
AsmString = "ld4 $\xFF\x02\x0E, [$\x01], #32";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_LD4Fourv4s_POST:
|
|
if (MCInst_getNumOperands(MI) == 3 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_QQQQRegClassID, 1) &&
|
|
MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
|
|
// (LD4Fourv4s_POST GPR64sp:$Rn, VecListFour4s:$Vt, XZR)
|
|
AsmString = "ld4 $\xFF\x02\x0F, [$\x01], #64";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_LD4Fourv8b_POST:
|
|
if (MCInst_getNumOperands(MI) == 3 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_DDDDRegClassID, 1) &&
|
|
MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
|
|
// (LD4Fourv8b_POST GPR64sp:$Rn, VecListFour8b:$Vt, XZR)
|
|
AsmString = "ld4 $\xFF\x02\x10, [$\x01], #32";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_LD4Fourv8h_POST:
|
|
if (MCInst_getNumOperands(MI) == 3 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_QQQQRegClassID, 1) &&
|
|
MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
|
|
// (LD4Fourv8h_POST GPR64sp:$Rn, VecListFour8h:$Vt, XZR)
|
|
AsmString = "ld4 $\xFF\x02\x11, [$\x01], #64";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_LD4Rv16b_POST:
|
|
if (MCInst_getNumOperands(MI) == 3 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_QQQQRegClassID, 1) &&
|
|
MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
|
|
// (LD4Rv16b_POST GPR64sp:$Rn, VecListFour16b:$Vt, XZR)
|
|
AsmString = "ld4r $\xFF\x02\x0A, [$\x01], #4";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_LD4Rv1d_POST:
|
|
if (MCInst_getNumOperands(MI) == 3 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_DDDDRegClassID, 1) &&
|
|
MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
|
|
// (LD4Rv1d_POST GPR64sp:$Rn, VecListFour1d:$Vt, XZR)
|
|
AsmString = "ld4r $\xFF\x02\x0B, [$\x01], #32";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_LD4Rv2d_POST:
|
|
if (MCInst_getNumOperands(MI) == 3 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_QQQQRegClassID, 1) &&
|
|
MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
|
|
// (LD4Rv2d_POST GPR64sp:$Rn, VecListFour2d:$Vt, XZR)
|
|
AsmString = "ld4r $\xFF\x02\x0C, [$\x01], #32";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_LD4Rv2s_POST:
|
|
if (MCInst_getNumOperands(MI) == 3 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_DDDDRegClassID, 1) &&
|
|
MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
|
|
// (LD4Rv2s_POST GPR64sp:$Rn, VecListFour2s:$Vt, XZR)
|
|
AsmString = "ld4r $\xFF\x02\x0D, [$\x01], #16";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_LD4Rv4h_POST:
|
|
if (MCInst_getNumOperands(MI) == 3 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_DDDDRegClassID, 1) &&
|
|
MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
|
|
// (LD4Rv4h_POST GPR64sp:$Rn, VecListFour4h:$Vt, XZR)
|
|
AsmString = "ld4r $\xFF\x02\x0E, [$\x01], #8";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_LD4Rv4s_POST:
|
|
if (MCInst_getNumOperands(MI) == 3 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_QQQQRegClassID, 1) &&
|
|
MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
|
|
// (LD4Rv4s_POST GPR64sp:$Rn, VecListFour4s:$Vt, XZR)
|
|
AsmString = "ld4r $\xFF\x02\x0F, [$\x01], #16";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_LD4Rv8b_POST:
|
|
if (MCInst_getNumOperands(MI) == 3 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_DDDDRegClassID, 1) &&
|
|
MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
|
|
// (LD4Rv8b_POST GPR64sp:$Rn, VecListFour8b:$Vt, XZR)
|
|
AsmString = "ld4r $\xFF\x02\x10, [$\x01], #4";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_LD4Rv8h_POST:
|
|
if (MCInst_getNumOperands(MI) == 3 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_QQQQRegClassID, 1) &&
|
|
MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
|
|
// (LD4Rv8h_POST GPR64sp:$Rn, VecListFour8h:$Vt, XZR)
|
|
AsmString = "ld4r $\xFF\x02\x11, [$\x01], #8";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_LD4i16_POST:
|
|
if (MCInst_getNumOperands(MI) == 4 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_QQQQRegClassID, 1) &&
|
|
MCOperand_getReg(MCInst_getOperand(MI, 3)) == AArch64_XZR) {
|
|
// (LD4i16_POST GPR64sp:$Rn, VecListFourh:$Vt, VectorIndexH:$idx, XZR)
|
|
AsmString = "ld4 $\xFF\x02\x12$\xFF\x03\x09, [$\x01], #8";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_LD4i32_POST:
|
|
if (MCInst_getNumOperands(MI) == 4 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_QQQQRegClassID, 1) &&
|
|
MCOperand_getReg(MCInst_getOperand(MI, 3)) == AArch64_XZR) {
|
|
// (LD4i32_POST GPR64sp:$Rn, VecListFours:$Vt, VectorIndexS:$idx, XZR)
|
|
AsmString = "ld4 $\xFF\x02\x13$\xFF\x03\x09, [$\x01], #16";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_LD4i64_POST:
|
|
if (MCInst_getNumOperands(MI) == 4 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_QQQQRegClassID, 1) &&
|
|
MCOperand_getReg(MCInst_getOperand(MI, 3)) == AArch64_XZR) {
|
|
// (LD4i64_POST GPR64sp:$Rn, VecListFourd:$Vt, VectorIndexD:$idx, XZR)
|
|
AsmString = "ld4 $\xFF\x02\x14$\xFF\x03\x09, [$\x01], #32";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_LD4i8_POST:
|
|
if (MCInst_getNumOperands(MI) == 4 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_QQQQRegClassID, 1) &&
|
|
MCOperand_getReg(MCInst_getOperand(MI, 3)) == AArch64_XZR) {
|
|
// (LD4i8_POST GPR64sp:$Rn, VecListFourb:$Vt, VectorIndexB:$idx, XZR)
|
|
AsmString = "ld4 $\xFF\x02\x15$\xFF\x03\x09, [$\x01], #4";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_LDNPDi:
|
|
if (MCInst_getNumOperands(MI) == 4 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_FPR64RegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_FPR64RegClassID, 1) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 2) &&
|
|
MCOperand_isImm(MCInst_getOperand(MI, 3)) &&
|
|
MCOperand_getImm(MCInst_getOperand(MI, 3)) == 0) {
|
|
// (LDNPDi FPR64:$Rt, FPR64:$Rt2, GPR64sp:$Rn, 0)
|
|
AsmString = "ldnp $\x01, $\x02, [$\x03]";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_LDNPQi:
|
|
if (MCInst_getNumOperands(MI) == 4 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_FPR128RegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_FPR128RegClassID, 1) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 2) &&
|
|
MCOperand_isImm(MCInst_getOperand(MI, 3)) &&
|
|
MCOperand_getImm(MCInst_getOperand(MI, 3)) == 0) {
|
|
// (LDNPQi FPR128:$Rt, FPR128:$Rt2, GPR64sp:$Rn, 0)
|
|
AsmString = "ldnp $\x01, $\x02, [$\x03]";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_LDNPSi:
|
|
if (MCInst_getNumOperands(MI) == 4 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_FPR32RegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_FPR32RegClassID, 1) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 2) &&
|
|
MCOperand_isImm(MCInst_getOperand(MI, 3)) &&
|
|
MCOperand_getImm(MCInst_getOperand(MI, 3)) == 0) {
|
|
// (LDNPSi FPR32:$Rt, FPR32:$Rt2, GPR64sp:$Rn, 0)
|
|
AsmString = "ldnp $\x01, $\x02, [$\x03]";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_LDNPWi:
|
|
if (MCInst_getNumOperands(MI) == 4 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 1) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 2) &&
|
|
MCOperand_isImm(MCInst_getOperand(MI, 3)) &&
|
|
MCOperand_getImm(MCInst_getOperand(MI, 3)) == 0) {
|
|
// (LDNPWi GPR32:$Rt, GPR32:$Rt2, GPR64sp:$Rn, 0)
|
|
AsmString = "ldnp $\x01, $\x02, [$\x03]";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_LDNPXi:
|
|
if (MCInst_getNumOperands(MI) == 4 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 1) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 2) &&
|
|
MCOperand_isImm(MCInst_getOperand(MI, 3)) &&
|
|
MCOperand_getImm(MCInst_getOperand(MI, 3)) == 0) {
|
|
// (LDNPXi GPR64:$Rt, GPR64:$Rt2, GPR64sp:$Rn, 0)
|
|
AsmString = "ldnp $\x01, $\x02, [$\x03]";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_LDPDi:
|
|
if (MCInst_getNumOperands(MI) == 4 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_FPR64RegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_FPR64RegClassID, 1) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 2) &&
|
|
MCOperand_isImm(MCInst_getOperand(MI, 3)) &&
|
|
MCOperand_getImm(MCInst_getOperand(MI, 3)) == 0) {
|
|
// (LDPDi FPR64:$Rt, FPR64:$Rt2, GPR64sp:$Rn, 0)
|
|
AsmString = "ldp $\x01, $\x02, [$\x03]";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_LDPQi:
|
|
if (MCInst_getNumOperands(MI) == 4 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_FPR128RegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_FPR128RegClassID, 1) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 2) &&
|
|
MCOperand_isImm(MCInst_getOperand(MI, 3)) &&
|
|
MCOperand_getImm(MCInst_getOperand(MI, 3)) == 0) {
|
|
// (LDPQi FPR128:$Rt, FPR128:$Rt2, GPR64sp:$Rn, 0)
|
|
AsmString = "ldp $\x01, $\x02, [$\x03]";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_LDPSWi:
|
|
if (MCInst_getNumOperands(MI) == 4 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 1) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 2) &&
|
|
MCOperand_isImm(MCInst_getOperand(MI, 3)) &&
|
|
MCOperand_getImm(MCInst_getOperand(MI, 3)) == 0) {
|
|
// (LDPSWi GPR64:$Rt, GPR64:$Rt2, GPR64sp:$Rn, 0)
|
|
AsmString = "ldpsw $\x01, $\x02, [$\x03]";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_LDPSi:
|
|
if (MCInst_getNumOperands(MI) == 4 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_FPR32RegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_FPR32RegClassID, 1) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 2) &&
|
|
MCOperand_isImm(MCInst_getOperand(MI, 3)) &&
|
|
MCOperand_getImm(MCInst_getOperand(MI, 3)) == 0) {
|
|
// (LDPSi FPR32:$Rt, FPR32:$Rt2, GPR64sp:$Rn, 0)
|
|
AsmString = "ldp $\x01, $\x02, [$\x03]";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_LDPWi:
|
|
if (MCInst_getNumOperands(MI) == 4 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 1) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 2) &&
|
|
MCOperand_isImm(MCInst_getOperand(MI, 3)) &&
|
|
MCOperand_getImm(MCInst_getOperand(MI, 3)) == 0) {
|
|
// (LDPWi GPR32:$Rt, GPR32:$Rt2, GPR64sp:$Rn, 0)
|
|
AsmString = "ldp $\x01, $\x02, [$\x03]";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_LDPXi:
|
|
if (MCInst_getNumOperands(MI) == 4 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 1) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 2) &&
|
|
MCOperand_isImm(MCInst_getOperand(MI, 3)) &&
|
|
MCOperand_getImm(MCInst_getOperand(MI, 3)) == 0) {
|
|
// (LDPXi GPR64:$Rt, GPR64:$Rt2, GPR64sp:$Rn, 0)
|
|
AsmString = "ldp $\x01, $\x02, [$\x03]";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_LDRBBroX:
|
|
if (MCInst_getNumOperands(MI) == 5 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 1) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 2) &&
|
|
MCOperand_isImm(MCInst_getOperand(MI, 3)) &&
|
|
MCOperand_getImm(MCInst_getOperand(MI, 3)) == 0 &&
|
|
MCOperand_isImm(MCInst_getOperand(MI, 4)) &&
|
|
MCOperand_getImm(MCInst_getOperand(MI, 4)) == 0) {
|
|
// (LDRBBroX GPR32:$Rt, GPR64sp:$Rn, GPR64:$Rm, 0, 0)
|
|
AsmString = "ldrb $\x01, [$\x02, $\x03]";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_LDRBBui:
|
|
if (MCInst_getNumOperands(MI) == 3 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 1) &&
|
|
MCOperand_isImm(MCInst_getOperand(MI, 2)) &&
|
|
MCOperand_getImm(MCInst_getOperand(MI, 2)) == 0) {
|
|
// (LDRBBui GPR32:$Rt, GPR64sp:$Rn, 0)
|
|
AsmString = "ldrb $\x01, [$\x02]";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_LDRBroX:
|
|
if (MCInst_getNumOperands(MI) == 5 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_FPR8RegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 1) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 2) &&
|
|
MCOperand_isImm(MCInst_getOperand(MI, 3)) &&
|
|
MCOperand_getImm(MCInst_getOperand(MI, 3)) == 0 &&
|
|
MCOperand_isImm(MCInst_getOperand(MI, 4)) &&
|
|
MCOperand_getImm(MCInst_getOperand(MI, 4)) == 0) {
|
|
// (LDRBroX FPR8:$Rt, GPR64sp:$Rn, GPR64:$Rm, 0, 0)
|
|
AsmString = "ldr $\x01, [$\x02, $\x03]";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_LDRBui:
|
|
if (MCInst_getNumOperands(MI) == 3 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_FPR8RegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 1) &&
|
|
MCOperand_isImm(MCInst_getOperand(MI, 2)) &&
|
|
MCOperand_getImm(MCInst_getOperand(MI, 2)) == 0) {
|
|
// (LDRBui FPR8:$Rt, GPR64sp:$Rn, 0)
|
|
AsmString = "ldr $\x01, [$\x02]";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_LDRDroX:
|
|
if (MCInst_getNumOperands(MI) == 5 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_FPR64RegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 1) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 2) &&
|
|
MCOperand_isImm(MCInst_getOperand(MI, 3)) &&
|
|
MCOperand_getImm(MCInst_getOperand(MI, 3)) == 0 &&
|
|
MCOperand_isImm(MCInst_getOperand(MI, 4)) &&
|
|
MCOperand_getImm(MCInst_getOperand(MI, 4)) == 0) {
|
|
// (LDRDroX FPR64:$Rt, GPR64sp:$Rn, GPR64:$Rm, 0, 0)
|
|
AsmString = "ldr $\x01, [$\x02, $\x03]";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_LDRDui:
|
|
if (MCInst_getNumOperands(MI) == 3 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_FPR64RegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 1) &&
|
|
MCOperand_isImm(MCInst_getOperand(MI, 2)) &&
|
|
MCOperand_getImm(MCInst_getOperand(MI, 2)) == 0) {
|
|
// (LDRDui FPR64:$Rt, GPR64sp:$Rn, 0)
|
|
AsmString = "ldr $\x01, [$\x02]";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_LDRHHroX:
|
|
if (MCInst_getNumOperands(MI) == 5 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 1) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 2) &&
|
|
MCOperand_isImm(MCInst_getOperand(MI, 3)) &&
|
|
MCOperand_getImm(MCInst_getOperand(MI, 3)) == 0 &&
|
|
MCOperand_isImm(MCInst_getOperand(MI, 4)) &&
|
|
MCOperand_getImm(MCInst_getOperand(MI, 4)) == 0) {
|
|
// (LDRHHroX GPR32:$Rt, GPR64sp:$Rn, GPR64:$Rm, 0, 0)
|
|
AsmString = "ldrh $\x01, [$\x02, $\x03]";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_LDRHHui:
|
|
if (MCInst_getNumOperands(MI) == 3 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 1) &&
|
|
MCOperand_isImm(MCInst_getOperand(MI, 2)) &&
|
|
MCOperand_getImm(MCInst_getOperand(MI, 2)) == 0) {
|
|
// (LDRHHui GPR32:$Rt, GPR64sp:$Rn, 0)
|
|
AsmString = "ldrh $\x01, [$\x02]";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_LDRHroX:
|
|
if (MCInst_getNumOperands(MI) == 5 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_FPR16RegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 1) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 2) &&
|
|
MCOperand_isImm(MCInst_getOperand(MI, 3)) &&
|
|
MCOperand_getImm(MCInst_getOperand(MI, 3)) == 0 &&
|
|
MCOperand_isImm(MCInst_getOperand(MI, 4)) &&
|
|
MCOperand_getImm(MCInst_getOperand(MI, 4)) == 0) {
|
|
// (LDRHroX FPR16:$Rt, GPR64sp:$Rn, GPR64:$Rm, 0, 0)
|
|
AsmString = "ldr $\x01, [$\x02, $\x03]";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_LDRHui:
|
|
if (MCInst_getNumOperands(MI) == 3 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_FPR16RegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 1) &&
|
|
MCOperand_isImm(MCInst_getOperand(MI, 2)) &&
|
|
MCOperand_getImm(MCInst_getOperand(MI, 2)) == 0) {
|
|
// (LDRHui FPR16:$Rt, GPR64sp:$Rn, 0)
|
|
AsmString = "ldr $\x01, [$\x02]";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_LDRQroX:
|
|
if (MCInst_getNumOperands(MI) == 5 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_FPR128RegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 1) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 2) &&
|
|
MCOperand_isImm(MCInst_getOperand(MI, 3)) &&
|
|
MCOperand_getImm(MCInst_getOperand(MI, 3)) == 0 &&
|
|
MCOperand_isImm(MCInst_getOperand(MI, 4)) &&
|
|
MCOperand_getImm(MCInst_getOperand(MI, 4)) == 0) {
|
|
// (LDRQroX FPR128:$Rt, GPR64sp:$Rn, GPR64:$Rm, 0, 0)
|
|
AsmString = "ldr $\x01, [$\x02, $\x03]";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_LDRQui:
|
|
if (MCInst_getNumOperands(MI) == 3 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_FPR128RegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 1) &&
|
|
MCOperand_isImm(MCInst_getOperand(MI, 2)) &&
|
|
MCOperand_getImm(MCInst_getOperand(MI, 2)) == 0) {
|
|
// (LDRQui FPR128:$Rt, GPR64sp:$Rn, 0)
|
|
AsmString = "ldr $\x01, [$\x02]";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_LDRSBWroX:
|
|
if (MCInst_getNumOperands(MI) == 5 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 1) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 2) &&
|
|
MCOperand_isImm(MCInst_getOperand(MI, 3)) &&
|
|
MCOperand_getImm(MCInst_getOperand(MI, 3)) == 0 &&
|
|
MCOperand_isImm(MCInst_getOperand(MI, 4)) &&
|
|
MCOperand_getImm(MCInst_getOperand(MI, 4)) == 0) {
|
|
// (LDRSBWroX GPR32:$Rt, GPR64sp:$Rn, GPR64:$Rm, 0, 0)
|
|
AsmString = "ldrsb $\x01, [$\x02, $\x03]";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_LDRSBWui:
|
|
if (MCInst_getNumOperands(MI) == 3 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 1) &&
|
|
MCOperand_isImm(MCInst_getOperand(MI, 2)) &&
|
|
MCOperand_getImm(MCInst_getOperand(MI, 2)) == 0) {
|
|
// (LDRSBWui GPR32:$Rt, GPR64sp:$Rn, 0)
|
|
AsmString = "ldrsb $\x01, [$\x02]";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_LDRSBXroX:
|
|
if (MCInst_getNumOperands(MI) == 5 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 1) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 2) &&
|
|
MCOperand_isImm(MCInst_getOperand(MI, 3)) &&
|
|
MCOperand_getImm(MCInst_getOperand(MI, 3)) == 0 &&
|
|
MCOperand_isImm(MCInst_getOperand(MI, 4)) &&
|
|
MCOperand_getImm(MCInst_getOperand(MI, 4)) == 0) {
|
|
// (LDRSBXroX GPR64:$Rt, GPR64sp:$Rn, GPR64:$Rm, 0, 0)
|
|
AsmString = "ldrsb $\x01, [$\x02, $\x03]";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_LDRSBXui:
|
|
if (MCInst_getNumOperands(MI) == 3 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 1) &&
|
|
MCOperand_isImm(MCInst_getOperand(MI, 2)) &&
|
|
MCOperand_getImm(MCInst_getOperand(MI, 2)) == 0) {
|
|
// (LDRSBXui GPR64:$Rt, GPR64sp:$Rn, 0)
|
|
AsmString = "ldrsb $\x01, [$\x02]";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_LDRSHWroX:
|
|
if (MCInst_getNumOperands(MI) == 5 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 1) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 2) &&
|
|
MCOperand_isImm(MCInst_getOperand(MI, 3)) &&
|
|
MCOperand_getImm(MCInst_getOperand(MI, 3)) == 0 &&
|
|
MCOperand_isImm(MCInst_getOperand(MI, 4)) &&
|
|
MCOperand_getImm(MCInst_getOperand(MI, 4)) == 0) {
|
|
// (LDRSHWroX GPR32:$Rt, GPR64sp:$Rn, GPR64:$Rm, 0, 0)
|
|
AsmString = "ldrsh $\x01, [$\x02, $\x03]";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_LDRSHWui:
|
|
if (MCInst_getNumOperands(MI) == 3 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 1) &&
|
|
MCOperand_isImm(MCInst_getOperand(MI, 2)) &&
|
|
MCOperand_getImm(MCInst_getOperand(MI, 2)) == 0) {
|
|
// (LDRSHWui GPR32:$Rt, GPR64sp:$Rn, 0)
|
|
AsmString = "ldrsh $\x01, [$\x02]";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_LDRSHXroX:
|
|
if (MCInst_getNumOperands(MI) == 5 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 1) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 2) &&
|
|
MCOperand_isImm(MCInst_getOperand(MI, 3)) &&
|
|
MCOperand_getImm(MCInst_getOperand(MI, 3)) == 0 &&
|
|
MCOperand_isImm(MCInst_getOperand(MI, 4)) &&
|
|
MCOperand_getImm(MCInst_getOperand(MI, 4)) == 0) {
|
|
// (LDRSHXroX GPR64:$Rt, GPR64sp:$Rn, GPR64:$Rm, 0, 0)
|
|
AsmString = "ldrsh $\x01, [$\x02, $\x03]";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_LDRSHXui:
|
|
if (MCInst_getNumOperands(MI) == 3 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 1) &&
|
|
MCOperand_isImm(MCInst_getOperand(MI, 2)) &&
|
|
MCOperand_getImm(MCInst_getOperand(MI, 2)) == 0) {
|
|
// (LDRSHXui GPR64:$Rt, GPR64sp:$Rn, 0)
|
|
AsmString = "ldrsh $\x01, [$\x02]";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_LDRSWroX:
|
|
if (MCInst_getNumOperands(MI) == 5 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 1) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 2) &&
|
|
MCOperand_isImm(MCInst_getOperand(MI, 3)) &&
|
|
MCOperand_getImm(MCInst_getOperand(MI, 3)) == 0 &&
|
|
MCOperand_isImm(MCInst_getOperand(MI, 4)) &&
|
|
MCOperand_getImm(MCInst_getOperand(MI, 4)) == 0) {
|
|
// (LDRSWroX GPR64:$Rt, GPR64sp:$Rn, GPR64:$Rm, 0, 0)
|
|
AsmString = "ldrsw $\x01, [$\x02, $\x03]";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_LDRSWui:
|
|
if (MCInst_getNumOperands(MI) == 3 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 1) &&
|
|
MCOperand_isImm(MCInst_getOperand(MI, 2)) &&
|
|
MCOperand_getImm(MCInst_getOperand(MI, 2)) == 0) {
|
|
// (LDRSWui GPR64:$Rt, GPR64sp:$Rn, 0)
|
|
AsmString = "ldrsw $\x01, [$\x02]";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_LDRSroX:
|
|
if (MCInst_getNumOperands(MI) == 5 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_FPR32RegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 1) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 2) &&
|
|
MCOperand_isImm(MCInst_getOperand(MI, 3)) &&
|
|
MCOperand_getImm(MCInst_getOperand(MI, 3)) == 0 &&
|
|
MCOperand_isImm(MCInst_getOperand(MI, 4)) &&
|
|
MCOperand_getImm(MCInst_getOperand(MI, 4)) == 0) {
|
|
// (LDRSroX FPR32:$Rt, GPR64sp:$Rn, GPR64:$Rm, 0, 0)
|
|
AsmString = "ldr $\x01, [$\x02, $\x03]";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_LDRSui:
|
|
if (MCInst_getNumOperands(MI) == 3 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_FPR32RegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 1) &&
|
|
MCOperand_isImm(MCInst_getOperand(MI, 2)) &&
|
|
MCOperand_getImm(MCInst_getOperand(MI, 2)) == 0) {
|
|
// (LDRSui FPR32:$Rt, GPR64sp:$Rn, 0)
|
|
AsmString = "ldr $\x01, [$\x02]";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_LDRWroX:
|
|
if (MCInst_getNumOperands(MI) == 5 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 1) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 2) &&
|
|
MCOperand_isImm(MCInst_getOperand(MI, 3)) &&
|
|
MCOperand_getImm(MCInst_getOperand(MI, 3)) == 0 &&
|
|
MCOperand_isImm(MCInst_getOperand(MI, 4)) &&
|
|
MCOperand_getImm(MCInst_getOperand(MI, 4)) == 0) {
|
|
// (LDRWroX GPR32:$Rt, GPR64sp:$Rn, GPR64:$Rm, 0, 0)
|
|
AsmString = "ldr $\x01, [$\x02, $\x03]";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_LDRWui:
|
|
if (MCInst_getNumOperands(MI) == 3 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 1) &&
|
|
MCOperand_isImm(MCInst_getOperand(MI, 2)) &&
|
|
MCOperand_getImm(MCInst_getOperand(MI, 2)) == 0) {
|
|
// (LDRWui GPR32:$Rt, GPR64sp:$Rn, 0)
|
|
AsmString = "ldr $\x01, [$\x02]";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_LDRXroX:
|
|
if (MCInst_getNumOperands(MI) == 5 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 1) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 2) &&
|
|
MCOperand_isImm(MCInst_getOperand(MI, 3)) &&
|
|
MCOperand_getImm(MCInst_getOperand(MI, 3)) == 0 &&
|
|
MCOperand_isImm(MCInst_getOperand(MI, 4)) &&
|
|
MCOperand_getImm(MCInst_getOperand(MI, 4)) == 0) {
|
|
// (LDRXroX GPR64:$Rt, GPR64sp:$Rn, GPR64:$Rm, 0, 0)
|
|
AsmString = "ldr $\x01, [$\x02, $\x03]";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_LDRXui:
|
|
if (MCInst_getNumOperands(MI) == 3 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 1) &&
|
|
MCOperand_isImm(MCInst_getOperand(MI, 2)) &&
|
|
MCOperand_getImm(MCInst_getOperand(MI, 2)) == 0) {
|
|
// (LDRXui GPR64:$Rt, GPR64sp:$Rn, 0)
|
|
AsmString = "ldr $\x01, [$\x02]";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_LDTRBi:
|
|
if (MCInst_getNumOperands(MI) == 3 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 1) &&
|
|
MCOperand_isImm(MCInst_getOperand(MI, 2)) &&
|
|
MCOperand_getImm(MCInst_getOperand(MI, 2)) == 0) {
|
|
// (LDTRBi GPR32:$Rt, GPR64sp:$Rn, 0)
|
|
AsmString = "ldtrb $\x01, [$\x02]";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_LDTRHi:
|
|
if (MCInst_getNumOperands(MI) == 3 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 1) &&
|
|
MCOperand_isImm(MCInst_getOperand(MI, 2)) &&
|
|
MCOperand_getImm(MCInst_getOperand(MI, 2)) == 0) {
|
|
// (LDTRHi GPR32:$Rt, GPR64sp:$Rn, 0)
|
|
AsmString = "ldtrh $\x01, [$\x02]";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_LDTRSBWi:
|
|
if (MCInst_getNumOperands(MI) == 3 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 1) &&
|
|
MCOperand_isImm(MCInst_getOperand(MI, 2)) &&
|
|
MCOperand_getImm(MCInst_getOperand(MI, 2)) == 0) {
|
|
// (LDTRSBWi GPR32:$Rt, GPR64sp:$Rn, 0)
|
|
AsmString = "ldtrsb $\x01, [$\x02]";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_LDTRSBXi:
|
|
if (MCInst_getNumOperands(MI) == 3 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 1) &&
|
|
MCOperand_isImm(MCInst_getOperand(MI, 2)) &&
|
|
MCOperand_getImm(MCInst_getOperand(MI, 2)) == 0) {
|
|
// (LDTRSBXi GPR64:$Rt, GPR64sp:$Rn, 0)
|
|
AsmString = "ldtrsb $\x01, [$\x02]";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_LDTRSHWi:
|
|
if (MCInst_getNumOperands(MI) == 3 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 1) &&
|
|
MCOperand_isImm(MCInst_getOperand(MI, 2)) &&
|
|
MCOperand_getImm(MCInst_getOperand(MI, 2)) == 0) {
|
|
// (LDTRSHWi GPR32:$Rt, GPR64sp:$Rn, 0)
|
|
AsmString = "ldtrsh $\x01, [$\x02]";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_LDTRSHXi:
|
|
if (MCInst_getNumOperands(MI) == 3 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 1) &&
|
|
MCOperand_isImm(MCInst_getOperand(MI, 2)) &&
|
|
MCOperand_getImm(MCInst_getOperand(MI, 2)) == 0) {
|
|
// (LDTRSHXi GPR64:$Rt, GPR64sp:$Rn, 0)
|
|
AsmString = "ldtrsh $\x01, [$\x02]";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_LDTRSWi:
|
|
if (MCInst_getNumOperands(MI) == 3 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 1) &&
|
|
MCOperand_isImm(MCInst_getOperand(MI, 2)) &&
|
|
MCOperand_getImm(MCInst_getOperand(MI, 2)) == 0) {
|
|
// (LDTRSWi GPR64:$Rt, GPR64sp:$Rn, 0)
|
|
AsmString = "ldtrsw $\x01, [$\x02]";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_LDTRWi:
|
|
if (MCInst_getNumOperands(MI) == 3 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 1) &&
|
|
MCOperand_isImm(MCInst_getOperand(MI, 2)) &&
|
|
MCOperand_getImm(MCInst_getOperand(MI, 2)) == 0) {
|
|
// (LDTRWi GPR32:$Rt, GPR64sp:$Rn, 0)
|
|
AsmString = "ldtr $\x01, [$\x02]";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_LDTRXi:
|
|
if (MCInst_getNumOperands(MI) == 3 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 1) &&
|
|
MCOperand_isImm(MCInst_getOperand(MI, 2)) &&
|
|
MCOperand_getImm(MCInst_getOperand(MI, 2)) == 0) {
|
|
// (LDTRXi GPR64:$Rt, GPR64sp:$Rn, 0)
|
|
AsmString = "ldtr $\x01, [$\x02]";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_LDURBBi:
|
|
if (MCInst_getNumOperands(MI) == 3 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 1) &&
|
|
MCOperand_isImm(MCInst_getOperand(MI, 2)) &&
|
|
MCOperand_getImm(MCInst_getOperand(MI, 2)) == 0) {
|
|
// (LDURBBi GPR32:$Rt, GPR64sp:$Rn, 0)
|
|
AsmString = "ldurb $\x01, [$\x02]";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_LDURBi:
|
|
if (MCInst_getNumOperands(MI) == 3 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_FPR8RegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 1) &&
|
|
MCOperand_isImm(MCInst_getOperand(MI, 2)) &&
|
|
MCOperand_getImm(MCInst_getOperand(MI, 2)) == 0) {
|
|
// (LDURBi FPR8:$Rt, GPR64sp:$Rn, 0)
|
|
AsmString = "ldur $\x01, [$\x02]";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_LDURDi:
|
|
if (MCInst_getNumOperands(MI) == 3 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_FPR64RegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 1) &&
|
|
MCOperand_isImm(MCInst_getOperand(MI, 2)) &&
|
|
MCOperand_getImm(MCInst_getOperand(MI, 2)) == 0) {
|
|
// (LDURDi FPR64:$Rt, GPR64sp:$Rn, 0)
|
|
AsmString = "ldur $\x01, [$\x02]";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_LDURHHi:
|
|
if (MCInst_getNumOperands(MI) == 3 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 1) &&
|
|
MCOperand_isImm(MCInst_getOperand(MI, 2)) &&
|
|
MCOperand_getImm(MCInst_getOperand(MI, 2)) == 0) {
|
|
// (LDURHHi GPR32:$Rt, GPR64sp:$Rn, 0)
|
|
AsmString = "ldurh $\x01, [$\x02]";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_LDURHi:
|
|
if (MCInst_getNumOperands(MI) == 3 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_FPR16RegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 1) &&
|
|
MCOperand_isImm(MCInst_getOperand(MI, 2)) &&
|
|
MCOperand_getImm(MCInst_getOperand(MI, 2)) == 0) {
|
|
// (LDURHi FPR16:$Rt, GPR64sp:$Rn, 0)
|
|
AsmString = "ldur $\x01, [$\x02]";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_LDURQi:
|
|
if (MCInst_getNumOperands(MI) == 3 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_FPR128RegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 1) &&
|
|
MCOperand_isImm(MCInst_getOperand(MI, 2)) &&
|
|
MCOperand_getImm(MCInst_getOperand(MI, 2)) == 0) {
|
|
// (LDURQi FPR128:$Rt, GPR64sp:$Rn, 0)
|
|
AsmString = "ldur $\x01, [$\x02]";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_LDURSBWi:
|
|
if (MCInst_getNumOperands(MI) == 3 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 1) &&
|
|
MCOperand_isImm(MCInst_getOperand(MI, 2)) &&
|
|
MCOperand_getImm(MCInst_getOperand(MI, 2)) == 0) {
|
|
// (LDURSBWi GPR32:$Rt, GPR64sp:$Rn, 0)
|
|
AsmString = "ldursb $\x01, [$\x02]";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_LDURSBXi:
|
|
if (MCInst_getNumOperands(MI) == 3 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 1) &&
|
|
MCOperand_isImm(MCInst_getOperand(MI, 2)) &&
|
|
MCOperand_getImm(MCInst_getOperand(MI, 2)) == 0) {
|
|
// (LDURSBXi GPR64:$Rt, GPR64sp:$Rn, 0)
|
|
AsmString = "ldursb $\x01, [$\x02]";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_LDURSHWi:
|
|
if (MCInst_getNumOperands(MI) == 3 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 1) &&
|
|
MCOperand_isImm(MCInst_getOperand(MI, 2)) &&
|
|
MCOperand_getImm(MCInst_getOperand(MI, 2)) == 0) {
|
|
// (LDURSHWi GPR32:$Rt, GPR64sp:$Rn, 0)
|
|
AsmString = "ldursh $\x01, [$\x02]";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_LDURSHXi:
|
|
if (MCInst_getNumOperands(MI) == 3 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 1) &&
|
|
MCOperand_isImm(MCInst_getOperand(MI, 2)) &&
|
|
MCOperand_getImm(MCInst_getOperand(MI, 2)) == 0) {
|
|
// (LDURSHXi GPR64:$Rt, GPR64sp:$Rn, 0)
|
|
AsmString = "ldursh $\x01, [$\x02]";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_LDURSWi:
|
|
if (MCInst_getNumOperands(MI) == 3 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 1) &&
|
|
MCOperand_isImm(MCInst_getOperand(MI, 2)) &&
|
|
MCOperand_getImm(MCInst_getOperand(MI, 2)) == 0) {
|
|
// (LDURSWi GPR64:$Rt, GPR64sp:$Rn, 0)
|
|
AsmString = "ldursw $\x01, [$\x02]";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_LDURSi:
|
|
if (MCInst_getNumOperands(MI) == 3 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_FPR32RegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 1) &&
|
|
MCOperand_isImm(MCInst_getOperand(MI, 2)) &&
|
|
MCOperand_getImm(MCInst_getOperand(MI, 2)) == 0) {
|
|
// (LDURSi FPR32:$Rt, GPR64sp:$Rn, 0)
|
|
AsmString = "ldur $\x01, [$\x02]";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_LDURWi:
|
|
if (MCInst_getNumOperands(MI) == 3 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 1) &&
|
|
MCOperand_isImm(MCInst_getOperand(MI, 2)) &&
|
|
MCOperand_getImm(MCInst_getOperand(MI, 2)) == 0) {
|
|
// (LDURWi GPR32:$Rt, GPR64sp:$Rn, 0)
|
|
AsmString = "ldur $\x01, [$\x02]";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_LDURXi:
|
|
if (MCInst_getNumOperands(MI) == 3 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 1) &&
|
|
MCOperand_isImm(MCInst_getOperand(MI, 2)) &&
|
|
MCOperand_getImm(MCInst_getOperand(MI, 2)) == 0) {
|
|
// (LDURXi GPR64:$Rt, GPR64sp:$Rn, 0)
|
|
AsmString = "ldur $\x01, [$\x02]";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_MADDWrrr:
|
|
if (MCInst_getNumOperands(MI) == 4 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 1) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 2) &&
|
|
MCOperand_getReg(MCInst_getOperand(MI, 3)) == AArch64_WZR) {
|
|
// (MADDWrrr GPR32:$dst, GPR32:$src1, GPR32:$src2, WZR)
|
|
AsmString = "mul $\x01, $\x02, $\x03";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_MADDXrrr:
|
|
if (MCInst_getNumOperands(MI) == 4 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 1) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 2) &&
|
|
MCOperand_getReg(MCInst_getOperand(MI, 3)) == AArch64_XZR) {
|
|
// (MADDXrrr GPR64:$dst, GPR64:$src1, GPR64:$src2, XZR)
|
|
AsmString = "mul $\x01, $\x02, $\x03";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_MOVKWi:
|
|
if (MCInst_getNumOperands(MI) == 3 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 0) &&
|
|
MCOperand_isImm(MCInst_getOperand(MI, 2)) &&
|
|
MCOperand_getImm(MCInst_getOperand(MI, 2)) == 16) {
|
|
// (MOVKWi GPR32:$Rd, movk_symbol_g1:$sym, 16)
|
|
AsmString = "movk $\x01, $\x02";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_MOVKXi:
|
|
if (MCInst_getNumOperands(MI) == 3 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 0) &&
|
|
MCOperand_isImm(MCInst_getOperand(MI, 2)) &&
|
|
MCOperand_getImm(MCInst_getOperand(MI, 2)) == 48) {
|
|
// (MOVKXi GPR64:$Rd, movk_symbol_g3:$sym, 48)
|
|
AsmString = "movk $\x01, $\x02";
|
|
break;
|
|
}
|
|
if (MCInst_getNumOperands(MI) == 3 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 0) &&
|
|
MCOperand_isImm(MCInst_getOperand(MI, 2)) &&
|
|
MCOperand_getImm(MCInst_getOperand(MI, 2)) == 32) {
|
|
// (MOVKXi GPR64:$Rd, movk_symbol_g2:$sym, 32)
|
|
AsmString = "movk $\x01, $\x02";
|
|
break;
|
|
}
|
|
if (MCInst_getNumOperands(MI) == 3 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 0) &&
|
|
MCOperand_isImm(MCInst_getOperand(MI, 2)) &&
|
|
MCOperand_getImm(MCInst_getOperand(MI, 2)) == 16) {
|
|
// (MOVKXi GPR64:$Rd, movk_symbol_g1:$sym, 16)
|
|
AsmString = "movk $\x01, $\x02";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_MSUBWrrr:
|
|
if (MCInst_getNumOperands(MI) == 4 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 1) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 2) &&
|
|
MCOperand_getReg(MCInst_getOperand(MI, 3)) == AArch64_WZR) {
|
|
// (MSUBWrrr GPR32:$dst, GPR32:$src1, GPR32:$src2, WZR)
|
|
AsmString = "mneg $\x01, $\x02, $\x03";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_MSUBXrrr:
|
|
if (MCInst_getNumOperands(MI) == 4 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 1) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 2) &&
|
|
MCOperand_getReg(MCInst_getOperand(MI, 3)) == AArch64_XZR) {
|
|
// (MSUBXrrr GPR64:$dst, GPR64:$src1, GPR64:$src2, XZR)
|
|
AsmString = "mneg $\x01, $\x02, $\x03";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_NOTv16i8:
|
|
if (MCInst_getNumOperands(MI) == 2 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_FPR128RegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_FPR128RegClassID, 1)) {
|
|
// (NOTv16i8 V128:$Vd, V128:$Vn)
|
|
AsmString = "mvn $\xFF\x01\x06.16b, $\xFF\x02\x06.16b";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_NOTv8i8:
|
|
if (MCInst_getNumOperands(MI) == 2 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_FPR64RegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_FPR64RegClassID, 1)) {
|
|
// (NOTv8i8 V64:$Vd, V64:$Vn)
|
|
AsmString = "mvn $\xFF\x01\x06.8b, $\xFF\x02\x06.8b";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_ORNWrs:
|
|
if (MCInst_getNumOperands(MI) == 4 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 0) &&
|
|
MCOperand_getReg(MCInst_getOperand(MI, 1)) == AArch64_WZR &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 2) &&
|
|
MCOperand_isImm(MCInst_getOperand(MI, 3)) &&
|
|
MCOperand_getImm(MCInst_getOperand(MI, 3)) == 0) {
|
|
// (ORNWrs GPR32:$Wd, WZR, GPR32:$Wm, 0)
|
|
AsmString = "mvn $\x01, $\x03";
|
|
break;
|
|
}
|
|
if (MCInst_getNumOperands(MI) == 4 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 0) &&
|
|
MCOperand_getReg(MCInst_getOperand(MI, 1)) == AArch64_WZR &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 2)) {
|
|
// (ORNWrs GPR32:$Wd, WZR, GPR32:$Wm, logical_shift32:$sh)
|
|
AsmString = "mvn $\x01, $\x03$\xFF\x04\x02";
|
|
break;
|
|
}
|
|
if (MCInst_getNumOperands(MI) == 4 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 1) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 2) &&
|
|
MCOperand_isImm(MCInst_getOperand(MI, 3)) &&
|
|
MCOperand_getImm(MCInst_getOperand(MI, 3)) == 0) {
|
|
// (ORNWrs GPR32:$dst, GPR32:$src1, GPR32:$src2, 0)
|
|
AsmString = "orn $\x01, $\x02, $\x03";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_ORNXrs:
|
|
if (MCInst_getNumOperands(MI) == 4 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 0) &&
|
|
MCOperand_getReg(MCInst_getOperand(MI, 1)) == AArch64_XZR &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 2) &&
|
|
MCOperand_isImm(MCInst_getOperand(MI, 3)) &&
|
|
MCOperand_getImm(MCInst_getOperand(MI, 3)) == 0) {
|
|
// (ORNXrs GPR64:$Xd, XZR, GPR64:$Xm, 0)
|
|
AsmString = "mvn $\x01, $\x03";
|
|
break;
|
|
}
|
|
if (MCInst_getNumOperands(MI) == 4 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 0) &&
|
|
MCOperand_getReg(MCInst_getOperand(MI, 1)) == AArch64_XZR &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 2)) {
|
|
// (ORNXrs GPR64:$Xd, XZR, GPR64:$Xm, logical_shift64:$sh)
|
|
AsmString = "mvn $\x01, $\x03$\xFF\x04\x02";
|
|
break;
|
|
}
|
|
if (MCInst_getNumOperands(MI) == 4 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 1) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 2) &&
|
|
MCOperand_isImm(MCInst_getOperand(MI, 3)) &&
|
|
MCOperand_getImm(MCInst_getOperand(MI, 3)) == 0) {
|
|
// (ORNXrs GPR64:$dst, GPR64:$src1, GPR64:$src2, 0)
|
|
AsmString = "orn $\x01, $\x02, $\x03";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_ORRWrs:
|
|
if (MCInst_getNumOperands(MI) == 4 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 0) &&
|
|
MCOperand_getReg(MCInst_getOperand(MI, 1)) == AArch64_WZR &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 2) &&
|
|
MCOperand_isImm(MCInst_getOperand(MI, 3)) &&
|
|
MCOperand_getImm(MCInst_getOperand(MI, 3)) == 0) {
|
|
// (ORRWrs GPR32:$dst, WZR, GPR32:$src, 0)
|
|
AsmString = "mov $\x01, $\x03";
|
|
break;
|
|
}
|
|
if (MCInst_getNumOperands(MI) == 4 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 1) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 2) &&
|
|
MCOperand_isImm(MCInst_getOperand(MI, 3)) &&
|
|
MCOperand_getImm(MCInst_getOperand(MI, 3)) == 0) {
|
|
// (ORRWrs GPR32:$dst, GPR32:$src1, GPR32:$src2, 0)
|
|
AsmString = "orr $\x01, $\x02, $\x03";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_ORRXrs:
|
|
if (MCInst_getNumOperands(MI) == 4 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 0) &&
|
|
MCOperand_getReg(MCInst_getOperand(MI, 1)) == AArch64_XZR &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 2) &&
|
|
MCOperand_isImm(MCInst_getOperand(MI, 3)) &&
|
|
MCOperand_getImm(MCInst_getOperand(MI, 3)) == 0) {
|
|
// (ORRXrs GPR64:$dst, XZR, GPR64:$src, 0)
|
|
AsmString = "mov $\x01, $\x03";
|
|
break;
|
|
}
|
|
if (MCInst_getNumOperands(MI) == 4 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 1) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 2) &&
|
|
MCOperand_isImm(MCInst_getOperand(MI, 3)) &&
|
|
MCOperand_getImm(MCInst_getOperand(MI, 3)) == 0) {
|
|
// (ORRXrs GPR64:$dst, GPR64:$src1, GPR64:$src2, 0)
|
|
AsmString = "orr $\x01, $\x02, $\x03";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_ORRv16i8:
|
|
if (MCInst_getNumOperands(MI) == 3 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_FPR128RegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_FPR128RegClassID, 1) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
|
|
MCOperand_getReg(MCInst_getOperand(MI, 2)) == MCOperand_getReg(MCInst_getOperand(MI, 1))) {
|
|
// (ORRv16i8 V128:$dst, V128:$src, V128:$src)
|
|
AsmString = "mov $\xFF\x01\x06.16b, $\xFF\x02\x06.16b";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_ORRv2i32:
|
|
if (MCInst_getNumOperands(MI) == 3 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_FPR64RegClassID, 0) &&
|
|
MCOperand_isImm(MCInst_getOperand(MI, 2)) &&
|
|
MCOperand_getImm(MCInst_getOperand(MI, 2)) == 0) {
|
|
// (ORRv2i32 V64:$Vd, imm0_255:$imm, 0)
|
|
AsmString = "orr $\xFF\x01\x06.2s, $\xFF\x02\x07";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_ORRv4i16:
|
|
if (MCInst_getNumOperands(MI) == 3 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_FPR64RegClassID, 0) &&
|
|
MCOperand_isImm(MCInst_getOperand(MI, 2)) &&
|
|
MCOperand_getImm(MCInst_getOperand(MI, 2)) == 0) {
|
|
// (ORRv4i16 V64:$Vd, imm0_255:$imm, 0)
|
|
AsmString = "orr $\xFF\x01\x06.4h, $\xFF\x02\x07";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_ORRv4i32:
|
|
if (MCInst_getNumOperands(MI) == 3 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_FPR128RegClassID, 0) &&
|
|
MCOperand_isImm(MCInst_getOperand(MI, 2)) &&
|
|
MCOperand_getImm(MCInst_getOperand(MI, 2)) == 0) {
|
|
// (ORRv4i32 V128:$Vd, imm0_255:$imm, 0)
|
|
AsmString = "orr $\xFF\x01\x06.4s, $\xFF\x02\x07";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_ORRv8i16:
|
|
if (MCInst_getNumOperands(MI) == 3 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_FPR128RegClassID, 0) &&
|
|
MCOperand_isImm(MCInst_getOperand(MI, 2)) &&
|
|
MCOperand_getImm(MCInst_getOperand(MI, 2)) == 0) {
|
|
// (ORRv8i16 V128:$Vd, imm0_255:$imm, 0)
|
|
AsmString = "orr $\xFF\x01\x06.8h, $\xFF\x02\x07";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_ORRv8i8:
|
|
if (MCInst_getNumOperands(MI) == 3 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_FPR64RegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_FPR64RegClassID, 1) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
|
|
MCOperand_getReg(MCInst_getOperand(MI, 2)) == MCOperand_getReg(MCInst_getOperand(MI, 1))) {
|
|
// (ORRv8i8 V64:$dst, V64:$src, V64:$src)
|
|
AsmString = "mov $\xFF\x01\x06.8b, $\xFF\x02\x06.8b";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_PRFMroX:
|
|
if (MCInst_getNumOperands(MI) == 5 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 1) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 2) &&
|
|
MCOperand_isImm(MCInst_getOperand(MI, 3)) &&
|
|
MCOperand_getImm(MCInst_getOperand(MI, 3)) == 0 &&
|
|
MCOperand_isImm(MCInst_getOperand(MI, 4)) &&
|
|
MCOperand_getImm(MCInst_getOperand(MI, 4)) == 0) {
|
|
// (PRFMroX prfop:$Rt, GPR64sp:$Rn, GPR64:$Rm, 0, 0)
|
|
AsmString = "prfm $\xFF\x01\x16, [$\x02, $\x03]";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_PRFMui:
|
|
if (MCInst_getNumOperands(MI) == 3 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 1) &&
|
|
MCOperand_isImm(MCInst_getOperand(MI, 2)) &&
|
|
MCOperand_getImm(MCInst_getOperand(MI, 2)) == 0) {
|
|
// (PRFMui prfop:$Rt, GPR64sp:$Rn, 0)
|
|
AsmString = "prfm $\xFF\x01\x16, [$\x02]";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_PRFUMi:
|
|
if (MCInst_getNumOperands(MI) == 3 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 1) &&
|
|
MCOperand_isImm(MCInst_getOperand(MI, 2)) &&
|
|
MCOperand_getImm(MCInst_getOperand(MI, 2)) == 0) {
|
|
// (PRFUMi prfop:$Rt, GPR64sp:$Rn, 0)
|
|
AsmString = "prfum $\xFF\x01\x16, [$\x02]";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_RET:
|
|
if (MCInst_getNumOperands(MI) == 1 &&
|
|
MCOperand_getReg(MCInst_getOperand(MI, 0)) == AArch64_LR) {
|
|
// (RET LR)
|
|
AsmString = "ret";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_SBCSWr:
|
|
if (MCInst_getNumOperands(MI) == 3 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 0) &&
|
|
MCOperand_getReg(MCInst_getOperand(MI, 1)) == AArch64_WZR &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 2)) {
|
|
// (SBCSWr GPR32:$dst, WZR, GPR32:$src)
|
|
AsmString = "ngcs $\x01, $\x03";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_SBCSXr:
|
|
if (MCInst_getNumOperands(MI) == 3 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 0) &&
|
|
MCOperand_getReg(MCInst_getOperand(MI, 1)) == AArch64_XZR &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 2)) {
|
|
// (SBCSXr GPR64:$dst, XZR, GPR64:$src)
|
|
AsmString = "ngcs $\x01, $\x03";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_SBCWr:
|
|
if (MCInst_getNumOperands(MI) == 3 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 0) &&
|
|
MCOperand_getReg(MCInst_getOperand(MI, 1)) == AArch64_WZR &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 2)) {
|
|
// (SBCWr GPR32:$dst, WZR, GPR32:$src)
|
|
AsmString = "ngc $\x01, $\x03";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_SBCXr:
|
|
if (MCInst_getNumOperands(MI) == 3 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 0) &&
|
|
MCOperand_getReg(MCInst_getOperand(MI, 1)) == AArch64_XZR &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 2)) {
|
|
// (SBCXr GPR64:$dst, XZR, GPR64:$src)
|
|
AsmString = "ngc $\x01, $\x03";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_SBFMWri:
|
|
if (MCInst_getNumOperands(MI) == 4 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 1) &&
|
|
MCOperand_isImm(MCInst_getOperand(MI, 3)) &&
|
|
MCOperand_getImm(MCInst_getOperand(MI, 3)) == 31) {
|
|
// (SBFMWri GPR32:$dst, GPR32:$src, imm0_31:$shift, 31)
|
|
AsmString = "asr $\x01, $\x02, $\x03";
|
|
break;
|
|
}
|
|
if (MCInst_getNumOperands(MI) == 4 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 1) &&
|
|
MCOperand_isImm(MCInst_getOperand(MI, 2)) &&
|
|
MCOperand_getImm(MCInst_getOperand(MI, 2)) == 0 &&
|
|
MCOperand_isImm(MCInst_getOperand(MI, 3)) &&
|
|
MCOperand_getImm(MCInst_getOperand(MI, 3)) == 7) {
|
|
// (SBFMWri GPR32:$dst, GPR32:$src, 0, 7)
|
|
AsmString = "sxtb $\x01, $\x02";
|
|
break;
|
|
}
|
|
if (MCInst_getNumOperands(MI) == 4 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 1) &&
|
|
MCOperand_isImm(MCInst_getOperand(MI, 2)) &&
|
|
MCOperand_getImm(MCInst_getOperand(MI, 2)) == 0 &&
|
|
MCOperand_isImm(MCInst_getOperand(MI, 3)) &&
|
|
MCOperand_getImm(MCInst_getOperand(MI, 3)) == 15) {
|
|
// (SBFMWri GPR32:$dst, GPR32:$src, 0, 15)
|
|
AsmString = "sxth $\x01, $\x02";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_SBFMXri:
|
|
if (MCInst_getNumOperands(MI) == 4 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 1) &&
|
|
MCOperand_isImm(MCInst_getOperand(MI, 3)) &&
|
|
MCOperand_getImm(MCInst_getOperand(MI, 3)) == 63) {
|
|
// (SBFMXri GPR64:$dst, GPR64:$src, imm0_63:$shift, 63)
|
|
AsmString = "asr $\x01, $\x02, $\x03";
|
|
break;
|
|
}
|
|
if (MCInst_getNumOperands(MI) == 4 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 1) &&
|
|
MCOperand_isImm(MCInst_getOperand(MI, 2)) &&
|
|
MCOperand_getImm(MCInst_getOperand(MI, 2)) == 0 &&
|
|
MCOperand_isImm(MCInst_getOperand(MI, 3)) &&
|
|
MCOperand_getImm(MCInst_getOperand(MI, 3)) == 7) {
|
|
// (SBFMXri GPR64:$dst, GPR64:$src, 0, 7)
|
|
AsmString = "sxtb $\x01, $\x02";
|
|
break;
|
|
}
|
|
if (MCInst_getNumOperands(MI) == 4 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 1) &&
|
|
MCOperand_isImm(MCInst_getOperand(MI, 2)) &&
|
|
MCOperand_getImm(MCInst_getOperand(MI, 2)) == 0 &&
|
|
MCOperand_isImm(MCInst_getOperand(MI, 3)) &&
|
|
MCOperand_getImm(MCInst_getOperand(MI, 3)) == 15) {
|
|
// (SBFMXri GPR64:$dst, GPR64:$src, 0, 15)
|
|
AsmString = "sxth $\x01, $\x02";
|
|
break;
|
|
}
|
|
if (MCInst_getNumOperands(MI) == 4 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 1) &&
|
|
MCOperand_isImm(MCInst_getOperand(MI, 2)) &&
|
|
MCOperand_getImm(MCInst_getOperand(MI, 2)) == 0 &&
|
|
MCOperand_isImm(MCInst_getOperand(MI, 3)) &&
|
|
MCOperand_getImm(MCInst_getOperand(MI, 3)) == 31) {
|
|
// (SBFMXri GPR64:$dst, GPR64:$src, 0, 31)
|
|
AsmString = "sxtw $\x01, $\x02";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_SMADDLrrr:
|
|
if (MCInst_getNumOperands(MI) == 4 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 1) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 2) &&
|
|
MCOperand_getReg(MCInst_getOperand(MI, 3)) == AArch64_XZR) {
|
|
// (SMADDLrrr GPR64:$dst, GPR32:$src1, GPR32:$src2, XZR)
|
|
AsmString = "smull $\x01, $\x02, $\x03";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_SMSUBLrrr:
|
|
if (MCInst_getNumOperands(MI) == 4 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 1) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 2) &&
|
|
MCOperand_getReg(MCInst_getOperand(MI, 3)) == AArch64_XZR) {
|
|
// (SMSUBLrrr GPR64:$dst, GPR32:$src1, GPR32:$src2, XZR)
|
|
AsmString = "smnegl $\x01, $\x02, $\x03";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_ST1Fourv16b_POST:
|
|
if (MCInst_getNumOperands(MI) == 3 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_QQQQRegClassID, 1) &&
|
|
MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
|
|
// (ST1Fourv16b_POST GPR64sp:$Rn, VecListFour16b:$Vt, XZR)
|
|
AsmString = "st1 $\xFF\x02\x0A, [$\x01], #64";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_ST1Fourv1d_POST:
|
|
if (MCInst_getNumOperands(MI) == 3 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_DDDDRegClassID, 1) &&
|
|
MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
|
|
// (ST1Fourv1d_POST GPR64sp:$Rn, VecListFour1d:$Vt, XZR)
|
|
AsmString = "st1 $\xFF\x02\x0B, [$\x01], #32";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_ST1Fourv2d_POST:
|
|
if (MCInst_getNumOperands(MI) == 3 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_QQQQRegClassID, 1) &&
|
|
MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
|
|
// (ST1Fourv2d_POST GPR64sp:$Rn, VecListFour2d:$Vt, XZR)
|
|
AsmString = "st1 $\xFF\x02\x0C, [$\x01], #64";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_ST1Fourv2s_POST:
|
|
if (MCInst_getNumOperands(MI) == 3 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_DDDDRegClassID, 1) &&
|
|
MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
|
|
// (ST1Fourv2s_POST GPR64sp:$Rn, VecListFour2s:$Vt, XZR)
|
|
AsmString = "st1 $\xFF\x02\x0D, [$\x01], #32";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_ST1Fourv4h_POST:
|
|
if (MCInst_getNumOperands(MI) == 3 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_DDDDRegClassID, 1) &&
|
|
MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
|
|
// (ST1Fourv4h_POST GPR64sp:$Rn, VecListFour4h:$Vt, XZR)
|
|
AsmString = "st1 $\xFF\x02\x0E, [$\x01], #32";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_ST1Fourv4s_POST:
|
|
if (MCInst_getNumOperands(MI) == 3 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_QQQQRegClassID, 1) &&
|
|
MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
|
|
// (ST1Fourv4s_POST GPR64sp:$Rn, VecListFour4s:$Vt, XZR)
|
|
AsmString = "st1 $\xFF\x02\x0F, [$\x01], #64";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_ST1Fourv8b_POST:
|
|
if (MCInst_getNumOperands(MI) == 3 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_DDDDRegClassID, 1) &&
|
|
MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
|
|
// (ST1Fourv8b_POST GPR64sp:$Rn, VecListFour8b:$Vt, XZR)
|
|
AsmString = "st1 $\xFF\x02\x10, [$\x01], #32";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_ST1Fourv8h_POST:
|
|
if (MCInst_getNumOperands(MI) == 3 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_QQQQRegClassID, 1) &&
|
|
MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
|
|
// (ST1Fourv8h_POST GPR64sp:$Rn, VecListFour8h:$Vt, XZR)
|
|
AsmString = "st1 $\xFF\x02\x11, [$\x01], #64";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_ST1Onev16b_POST:
|
|
if (MCInst_getNumOperands(MI) == 3 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_FPR128RegClassID, 1) &&
|
|
MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
|
|
// (ST1Onev16b_POST GPR64sp:$Rn, VecListOne16b:$Vt, XZR)
|
|
AsmString = "st1 $\xFF\x02\x0A, [$\x01], #16";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_ST1Onev1d_POST:
|
|
if (MCInst_getNumOperands(MI) == 3 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_FPR64RegClassID, 1) &&
|
|
MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
|
|
// (ST1Onev1d_POST GPR64sp:$Rn, VecListOne1d:$Vt, XZR)
|
|
AsmString = "st1 $\xFF\x02\x0B, [$\x01], #8";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_ST1Onev2d_POST:
|
|
if (MCInst_getNumOperands(MI) == 3 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_FPR128RegClassID, 1) &&
|
|
MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
|
|
// (ST1Onev2d_POST GPR64sp:$Rn, VecListOne2d:$Vt, XZR)
|
|
AsmString = "st1 $\xFF\x02\x0C, [$\x01], #16";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_ST1Onev2s_POST:
|
|
if (MCInst_getNumOperands(MI) == 3 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_FPR64RegClassID, 1) &&
|
|
MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
|
|
// (ST1Onev2s_POST GPR64sp:$Rn, VecListOne2s:$Vt, XZR)
|
|
AsmString = "st1 $\xFF\x02\x0D, [$\x01], #8";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_ST1Onev4h_POST:
|
|
if (MCInst_getNumOperands(MI) == 3 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_FPR64RegClassID, 1) &&
|
|
MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
|
|
// (ST1Onev4h_POST GPR64sp:$Rn, VecListOne4h:$Vt, XZR)
|
|
AsmString = "st1 $\xFF\x02\x0E, [$\x01], #8";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_ST1Onev4s_POST:
|
|
if (MCInst_getNumOperands(MI) == 3 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_FPR128RegClassID, 1) &&
|
|
MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
|
|
// (ST1Onev4s_POST GPR64sp:$Rn, VecListOne4s:$Vt, XZR)
|
|
AsmString = "st1 $\xFF\x02\x0F, [$\x01], #16";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_ST1Onev8b_POST:
|
|
if (MCInst_getNumOperands(MI) == 3 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_FPR64RegClassID, 1) &&
|
|
MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
|
|
// (ST1Onev8b_POST GPR64sp:$Rn, VecListOne8b:$Vt, XZR)
|
|
AsmString = "st1 $\xFF\x02\x10, [$\x01], #8";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_ST1Onev8h_POST:
|
|
if (MCInst_getNumOperands(MI) == 3 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_FPR128RegClassID, 1) &&
|
|
MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
|
|
// (ST1Onev8h_POST GPR64sp:$Rn, VecListOne8h:$Vt, XZR)
|
|
AsmString = "st1 $\xFF\x02\x11, [$\x01], #16";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_ST1Threev16b_POST:
|
|
if (MCInst_getNumOperands(MI) == 3 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_QQQRegClassID, 1) &&
|
|
MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
|
|
// (ST1Threev16b_POST GPR64sp:$Rn, VecListThree16b:$Vt, XZR)
|
|
AsmString = "st1 $\xFF\x02\x0A, [$\x01], #48";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_ST1Threev1d_POST:
|
|
if (MCInst_getNumOperands(MI) == 3 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_DDDRegClassID, 1) &&
|
|
MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
|
|
// (ST1Threev1d_POST GPR64sp:$Rn, VecListThree1d:$Vt, XZR)
|
|
AsmString = "st1 $\xFF\x02\x0B, [$\x01], #24";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_ST1Threev2d_POST:
|
|
if (MCInst_getNumOperands(MI) == 3 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_QQQRegClassID, 1) &&
|
|
MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
|
|
// (ST1Threev2d_POST GPR64sp:$Rn, VecListThree2d:$Vt, XZR)
|
|
AsmString = "st1 $\xFF\x02\x0C, [$\x01], #48";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_ST1Threev2s_POST:
|
|
if (MCInst_getNumOperands(MI) == 3 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_DDDRegClassID, 1) &&
|
|
MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
|
|
// (ST1Threev2s_POST GPR64sp:$Rn, VecListThree2s:$Vt, XZR)
|
|
AsmString = "st1 $\xFF\x02\x0D, [$\x01], #24";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_ST1Threev4h_POST:
|
|
if (MCInst_getNumOperands(MI) == 3 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_DDDRegClassID, 1) &&
|
|
MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
|
|
// (ST1Threev4h_POST GPR64sp:$Rn, VecListThree4h:$Vt, XZR)
|
|
AsmString = "st1 $\xFF\x02\x0E, [$\x01], #24";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_ST1Threev4s_POST:
|
|
if (MCInst_getNumOperands(MI) == 3 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_QQQRegClassID, 1) &&
|
|
MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
|
|
// (ST1Threev4s_POST GPR64sp:$Rn, VecListThree4s:$Vt, XZR)
|
|
AsmString = "st1 $\xFF\x02\x0F, [$\x01], #48";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_ST1Threev8b_POST:
|
|
if (MCInst_getNumOperands(MI) == 3 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_DDDRegClassID, 1) &&
|
|
MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
|
|
// (ST1Threev8b_POST GPR64sp:$Rn, VecListThree8b:$Vt, XZR)
|
|
AsmString = "st1 $\xFF\x02\x10, [$\x01], #24";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_ST1Threev8h_POST:
|
|
if (MCInst_getNumOperands(MI) == 3 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_QQQRegClassID, 1) &&
|
|
MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
|
|
// (ST1Threev8h_POST GPR64sp:$Rn, VecListThree8h:$Vt, XZR)
|
|
AsmString = "st1 $\xFF\x02\x11, [$\x01], #48";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_ST1Twov16b_POST:
|
|
if (MCInst_getNumOperands(MI) == 3 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_QQRegClassID, 1) &&
|
|
MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
|
|
// (ST1Twov16b_POST GPR64sp:$Rn, VecListTwo16b:$Vt, XZR)
|
|
AsmString = "st1 $\xFF\x02\x0A, [$\x01], #32";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_ST1Twov1d_POST:
|
|
if (MCInst_getNumOperands(MI) == 3 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_DDRegClassID, 1) &&
|
|
MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
|
|
// (ST1Twov1d_POST GPR64sp:$Rn, VecListTwo1d:$Vt, XZR)
|
|
AsmString = "st1 $\xFF\x02\x0B, [$\x01], #16";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_ST1Twov2d_POST:
|
|
if (MCInst_getNumOperands(MI) == 3 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_QQRegClassID, 1) &&
|
|
MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
|
|
// (ST1Twov2d_POST GPR64sp:$Rn, VecListTwo2d:$Vt, XZR)
|
|
AsmString = "st1 $\xFF\x02\x0C, [$\x01], #32";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_ST1Twov2s_POST:
|
|
if (MCInst_getNumOperands(MI) == 3 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_DDRegClassID, 1) &&
|
|
MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
|
|
// (ST1Twov2s_POST GPR64sp:$Rn, VecListTwo2s:$Vt, XZR)
|
|
AsmString = "st1 $\xFF\x02\x0D, [$\x01], #16";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_ST1Twov4h_POST:
|
|
if (MCInst_getNumOperands(MI) == 3 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_DDRegClassID, 1) &&
|
|
MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
|
|
// (ST1Twov4h_POST GPR64sp:$Rn, VecListTwo4h:$Vt, XZR)
|
|
AsmString = "st1 $\xFF\x02\x0E, [$\x01], #16";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_ST1Twov4s_POST:
|
|
if (MCInst_getNumOperands(MI) == 3 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_QQRegClassID, 1) &&
|
|
MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
|
|
// (ST1Twov4s_POST GPR64sp:$Rn, VecListTwo4s:$Vt, XZR)
|
|
AsmString = "st1 $\xFF\x02\x0F, [$\x01], #32";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_ST1Twov8b_POST:
|
|
if (MCInst_getNumOperands(MI) == 3 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_DDRegClassID, 1) &&
|
|
MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
|
|
// (ST1Twov8b_POST GPR64sp:$Rn, VecListTwo8b:$Vt, XZR)
|
|
AsmString = "st1 $\xFF\x02\x10, [$\x01], #16";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_ST1Twov8h_POST:
|
|
if (MCInst_getNumOperands(MI) == 3 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_QQRegClassID, 1) &&
|
|
MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
|
|
// (ST1Twov8h_POST GPR64sp:$Rn, VecListTwo8h:$Vt, XZR)
|
|
AsmString = "st1 $\xFF\x02\x11, [$\x01], #32";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_ST1i16_POST:
|
|
if (MCInst_getNumOperands(MI) == 4 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_FPR128RegClassID, 1) &&
|
|
MCOperand_getReg(MCInst_getOperand(MI, 3)) == AArch64_XZR) {
|
|
// (ST1i16_POST GPR64sp:$Rn, VecListOneh:$Vt, VectorIndexH:$idx, XZR)
|
|
AsmString = "st1 $\xFF\x02\x12$\xFF\x03\x09, [$\x01], #2";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_ST1i32_POST:
|
|
if (MCInst_getNumOperands(MI) == 4 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_FPR128RegClassID, 1) &&
|
|
MCOperand_getReg(MCInst_getOperand(MI, 3)) == AArch64_XZR) {
|
|
// (ST1i32_POST GPR64sp:$Rn, VecListOnes:$Vt, VectorIndexS:$idx, XZR)
|
|
AsmString = "st1 $\xFF\x02\x13$\xFF\x03\x09, [$\x01], #4";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_ST1i64_POST:
|
|
if (MCInst_getNumOperands(MI) == 4 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_FPR128RegClassID, 1) &&
|
|
MCOperand_getReg(MCInst_getOperand(MI, 3)) == AArch64_XZR) {
|
|
// (ST1i64_POST GPR64sp:$Rn, VecListOned:$Vt, VectorIndexD:$idx, XZR)
|
|
AsmString = "st1 $\xFF\x02\x14$\xFF\x03\x09, [$\x01], #8";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_ST1i8_POST:
|
|
if (MCInst_getNumOperands(MI) == 4 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_FPR128RegClassID, 1) &&
|
|
MCOperand_getReg(MCInst_getOperand(MI, 3)) == AArch64_XZR) {
|
|
// (ST1i8_POST GPR64sp:$Rn, VecListOneb:$Vt, VectorIndexB:$idx, XZR)
|
|
AsmString = "st1 $\xFF\x02\x15$\xFF\x03\x09, [$\x01], #1";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_ST2Twov16b_POST:
|
|
if (MCInst_getNumOperands(MI) == 3 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_QQRegClassID, 1) &&
|
|
MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
|
|
// (ST2Twov16b_POST GPR64sp:$Rn, VecListTwo16b:$Vt, XZR)
|
|
AsmString = "st2 $\xFF\x02\x0A, [$\x01], #32";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_ST2Twov2d_POST:
|
|
if (MCInst_getNumOperands(MI) == 3 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_QQRegClassID, 1) &&
|
|
MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
|
|
// (ST2Twov2d_POST GPR64sp:$Rn, VecListTwo2d:$Vt, XZR)
|
|
AsmString = "st2 $\xFF\x02\x0C, [$\x01], #32";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_ST2Twov2s_POST:
|
|
if (MCInst_getNumOperands(MI) == 3 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_DDRegClassID, 1) &&
|
|
MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
|
|
// (ST2Twov2s_POST GPR64sp:$Rn, VecListTwo2s:$Vt, XZR)
|
|
AsmString = "st2 $\xFF\x02\x0D, [$\x01], #16";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_ST2Twov4h_POST:
|
|
if (MCInst_getNumOperands(MI) == 3 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_DDRegClassID, 1) &&
|
|
MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
|
|
// (ST2Twov4h_POST GPR64sp:$Rn, VecListTwo4h:$Vt, XZR)
|
|
AsmString = "st2 $\xFF\x02\x0E, [$\x01], #16";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_ST2Twov4s_POST:
|
|
if (MCInst_getNumOperands(MI) == 3 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_QQRegClassID, 1) &&
|
|
MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
|
|
// (ST2Twov4s_POST GPR64sp:$Rn, VecListTwo4s:$Vt, XZR)
|
|
AsmString = "st2 $\xFF\x02\x0F, [$\x01], #32";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_ST2Twov8b_POST:
|
|
if (MCInst_getNumOperands(MI) == 3 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_DDRegClassID, 1) &&
|
|
MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
|
|
// (ST2Twov8b_POST GPR64sp:$Rn, VecListTwo8b:$Vt, XZR)
|
|
AsmString = "st2 $\xFF\x02\x10, [$\x01], #16";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_ST2Twov8h_POST:
|
|
if (MCInst_getNumOperands(MI) == 3 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_QQRegClassID, 1) &&
|
|
MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
|
|
// (ST2Twov8h_POST GPR64sp:$Rn, VecListTwo8h:$Vt, XZR)
|
|
AsmString = "st2 $\xFF\x02\x11, [$\x01], #32";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_ST2i16_POST:
|
|
if (MCInst_getNumOperands(MI) == 4 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_QQRegClassID, 1) &&
|
|
MCOperand_getReg(MCInst_getOperand(MI, 3)) == AArch64_XZR) {
|
|
// (ST2i16_POST GPR64sp:$Rn, VecListTwoh:$Vt, VectorIndexH:$idx, XZR)
|
|
AsmString = "st2 $\xFF\x02\x12$\xFF\x03\x09, [$\x01], #4";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_ST2i32_POST:
|
|
if (MCInst_getNumOperands(MI) == 4 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_QQRegClassID, 1) &&
|
|
MCOperand_getReg(MCInst_getOperand(MI, 3)) == AArch64_XZR) {
|
|
// (ST2i32_POST GPR64sp:$Rn, VecListTwos:$Vt, VectorIndexS:$idx, XZR)
|
|
AsmString = "st2 $\xFF\x02\x13$\xFF\x03\x09, [$\x01], #8";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_ST2i64_POST:
|
|
if (MCInst_getNumOperands(MI) == 4 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_QQRegClassID, 1) &&
|
|
MCOperand_getReg(MCInst_getOperand(MI, 3)) == AArch64_XZR) {
|
|
// (ST2i64_POST GPR64sp:$Rn, VecListTwod:$Vt, VectorIndexD:$idx, XZR)
|
|
AsmString = "st2 $\xFF\x02\x14$\xFF\x03\x09, [$\x01], #16";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_ST2i8_POST:
|
|
if (MCInst_getNumOperands(MI) == 4 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_QQRegClassID, 1) &&
|
|
MCOperand_getReg(MCInst_getOperand(MI, 3)) == AArch64_XZR) {
|
|
// (ST2i8_POST GPR64sp:$Rn, VecListTwob:$Vt, VectorIndexB:$idx, XZR)
|
|
AsmString = "st2 $\xFF\x02\x15$\xFF\x03\x09, [$\x01], #2";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_ST3Threev16b_POST:
|
|
if (MCInst_getNumOperands(MI) == 3 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_QQQRegClassID, 1) &&
|
|
MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
|
|
// (ST3Threev16b_POST GPR64sp:$Rn, VecListThree16b:$Vt, XZR)
|
|
AsmString = "st3 $\xFF\x02\x0A, [$\x01], #48";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_ST3Threev2d_POST:
|
|
if (MCInst_getNumOperands(MI) == 3 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_QQQRegClassID, 1) &&
|
|
MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
|
|
// (ST3Threev2d_POST GPR64sp:$Rn, VecListThree2d:$Vt, XZR)
|
|
AsmString = "st3 $\xFF\x02\x0C, [$\x01], #48";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_ST3Threev2s_POST:
|
|
if (MCInst_getNumOperands(MI) == 3 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_DDDRegClassID, 1) &&
|
|
MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
|
|
// (ST3Threev2s_POST GPR64sp:$Rn, VecListThree2s:$Vt, XZR)
|
|
AsmString = "st3 $\xFF\x02\x0D, [$\x01], #24";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_ST3Threev4h_POST:
|
|
if (MCInst_getNumOperands(MI) == 3 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_DDDRegClassID, 1) &&
|
|
MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
|
|
// (ST3Threev4h_POST GPR64sp:$Rn, VecListThree4h:$Vt, XZR)
|
|
AsmString = "st3 $\xFF\x02\x0E, [$\x01], #24";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_ST3Threev4s_POST:
|
|
if (MCInst_getNumOperands(MI) == 3 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_QQQRegClassID, 1) &&
|
|
MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
|
|
// (ST3Threev4s_POST GPR64sp:$Rn, VecListThree4s:$Vt, XZR)
|
|
AsmString = "st3 $\xFF\x02\x0F, [$\x01], #48";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_ST3Threev8b_POST:
|
|
if (MCInst_getNumOperands(MI) == 3 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_DDDRegClassID, 1) &&
|
|
MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
|
|
// (ST3Threev8b_POST GPR64sp:$Rn, VecListThree8b:$Vt, XZR)
|
|
AsmString = "st3 $\xFF\x02\x10, [$\x01], #24";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_ST3Threev8h_POST:
|
|
if (MCInst_getNumOperands(MI) == 3 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_QQQRegClassID, 1) &&
|
|
MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
|
|
// (ST3Threev8h_POST GPR64sp:$Rn, VecListThree8h:$Vt, XZR)
|
|
AsmString = "st3 $\xFF\x02\x11, [$\x01], #48";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_ST3i16_POST:
|
|
if (MCInst_getNumOperands(MI) == 4 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_QQQRegClassID, 1) &&
|
|
MCOperand_getReg(MCInst_getOperand(MI, 3)) == AArch64_XZR) {
|
|
// (ST3i16_POST GPR64sp:$Rn, VecListThreeh:$Vt, VectorIndexH:$idx, XZR)
|
|
AsmString = "st3 $\xFF\x02\x12$\xFF\x03\x09, [$\x01], #6";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_ST3i32_POST:
|
|
if (MCInst_getNumOperands(MI) == 4 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_QQQRegClassID, 1) &&
|
|
MCOperand_getReg(MCInst_getOperand(MI, 3)) == AArch64_XZR) {
|
|
// (ST3i32_POST GPR64sp:$Rn, VecListThrees:$Vt, VectorIndexS:$idx, XZR)
|
|
AsmString = "st3 $\xFF\x02\x13$\xFF\x03\x09, [$\x01], #12";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_ST3i64_POST:
|
|
if (MCInst_getNumOperands(MI) == 4 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_QQQRegClassID, 1) &&
|
|
MCOperand_getReg(MCInst_getOperand(MI, 3)) == AArch64_XZR) {
|
|
// (ST3i64_POST GPR64sp:$Rn, VecListThreed:$Vt, VectorIndexD:$idx, XZR)
|
|
AsmString = "st3 $\xFF\x02\x14$\xFF\x03\x09, [$\x01], #24";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_ST3i8_POST:
|
|
if (MCInst_getNumOperands(MI) == 4 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_QQQRegClassID, 1) &&
|
|
MCOperand_getReg(MCInst_getOperand(MI, 3)) == AArch64_XZR) {
|
|
// (ST3i8_POST GPR64sp:$Rn, VecListThreeb:$Vt, VectorIndexB:$idx, XZR)
|
|
AsmString = "st3 $\xFF\x02\x15$\xFF\x03\x09, [$\x01], #3";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_ST4Fourv16b_POST:
|
|
if (MCInst_getNumOperands(MI) == 3 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_QQQQRegClassID, 1) &&
|
|
MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
|
|
// (ST4Fourv16b_POST GPR64sp:$Rn, VecListFour16b:$Vt, XZR)
|
|
AsmString = "st4 $\xFF\x02\x0A, [$\x01], #64";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_ST4Fourv2d_POST:
|
|
if (MCInst_getNumOperands(MI) == 3 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_QQQQRegClassID, 1) &&
|
|
MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
|
|
// (ST4Fourv2d_POST GPR64sp:$Rn, VecListFour2d:$Vt, XZR)
|
|
AsmString = "st4 $\xFF\x02\x0C, [$\x01], #64";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_ST4Fourv2s_POST:
|
|
if (MCInst_getNumOperands(MI) == 3 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_DDDDRegClassID, 1) &&
|
|
MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
|
|
// (ST4Fourv2s_POST GPR64sp:$Rn, VecListFour2s:$Vt, XZR)
|
|
AsmString = "st4 $\xFF\x02\x0D, [$\x01], #32";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_ST4Fourv4h_POST:
|
|
if (MCInst_getNumOperands(MI) == 3 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_DDDDRegClassID, 1) &&
|
|
MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
|
|
// (ST4Fourv4h_POST GPR64sp:$Rn, VecListFour4h:$Vt, XZR)
|
|
AsmString = "st4 $\xFF\x02\x0E, [$\x01], #32";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_ST4Fourv4s_POST:
|
|
if (MCInst_getNumOperands(MI) == 3 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_QQQQRegClassID, 1) &&
|
|
MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
|
|
// (ST4Fourv4s_POST GPR64sp:$Rn, VecListFour4s:$Vt, XZR)
|
|
AsmString = "st4 $\xFF\x02\x0F, [$\x01], #64";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_ST4Fourv8b_POST:
|
|
if (MCInst_getNumOperands(MI) == 3 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_DDDDRegClassID, 1) &&
|
|
MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
|
|
// (ST4Fourv8b_POST GPR64sp:$Rn, VecListFour8b:$Vt, XZR)
|
|
AsmString = "st4 $\xFF\x02\x10, [$\x01], #32";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_ST4Fourv8h_POST:
|
|
if (MCInst_getNumOperands(MI) == 3 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_QQQQRegClassID, 1) &&
|
|
MCOperand_getReg(MCInst_getOperand(MI, 2)) == AArch64_XZR) {
|
|
// (ST4Fourv8h_POST GPR64sp:$Rn, VecListFour8h:$Vt, XZR)
|
|
AsmString = "st4 $\xFF\x02\x11, [$\x01], #64";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_ST4i16_POST:
|
|
if (MCInst_getNumOperands(MI) == 4 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_QQQQRegClassID, 1) &&
|
|
MCOperand_getReg(MCInst_getOperand(MI, 3)) == AArch64_XZR) {
|
|
// (ST4i16_POST GPR64sp:$Rn, VecListFourh:$Vt, VectorIndexH:$idx, XZR)
|
|
AsmString = "st4 $\xFF\x02\x12$\xFF\x03\x09, [$\x01], #8";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_ST4i32_POST:
|
|
if (MCInst_getNumOperands(MI) == 4 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_QQQQRegClassID, 1) &&
|
|
MCOperand_getReg(MCInst_getOperand(MI, 3)) == AArch64_XZR) {
|
|
// (ST4i32_POST GPR64sp:$Rn, VecListFours:$Vt, VectorIndexS:$idx, XZR)
|
|
AsmString = "st4 $\xFF\x02\x13$\xFF\x03\x09, [$\x01], #16";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_ST4i64_POST:
|
|
if (MCInst_getNumOperands(MI) == 4 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_QQQQRegClassID, 1) &&
|
|
MCOperand_getReg(MCInst_getOperand(MI, 3)) == AArch64_XZR) {
|
|
// (ST4i64_POST GPR64sp:$Rn, VecListFourd:$Vt, VectorIndexD:$idx, XZR)
|
|
AsmString = "st4 $\xFF\x02\x14$\xFF\x03\x09, [$\x01], #32";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_ST4i8_POST:
|
|
if (MCInst_getNumOperands(MI) == 4 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_QQQQRegClassID, 1) &&
|
|
MCOperand_getReg(MCInst_getOperand(MI, 3)) == AArch64_XZR) {
|
|
// (ST4i8_POST GPR64sp:$Rn, VecListFourb:$Vt, VectorIndexB:$idx, XZR)
|
|
AsmString = "st4 $\xFF\x02\x15$\xFF\x03\x09, [$\x01], #4";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_STNPDi:
|
|
if (MCInst_getNumOperands(MI) == 4 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_FPR64RegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_FPR64RegClassID, 1) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 2) &&
|
|
MCOperand_isImm(MCInst_getOperand(MI, 3)) &&
|
|
MCOperand_getImm(MCInst_getOperand(MI, 3)) == 0) {
|
|
// (STNPDi FPR64:$Rt, FPR64:$Rt2, GPR64sp:$Rn, 0)
|
|
AsmString = "stnp $\x01, $\x02, [$\x03]";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_STNPQi:
|
|
if (MCInst_getNumOperands(MI) == 4 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_FPR128RegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_FPR128RegClassID, 1) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 2) &&
|
|
MCOperand_isImm(MCInst_getOperand(MI, 3)) &&
|
|
MCOperand_getImm(MCInst_getOperand(MI, 3)) == 0) {
|
|
// (STNPQi FPR128:$Rt, FPR128:$Rt2, GPR64sp:$Rn, 0)
|
|
AsmString = "stnp $\x01, $\x02, [$\x03]";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_STNPSi:
|
|
if (MCInst_getNumOperands(MI) == 4 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_FPR32RegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_FPR32RegClassID, 1) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 2) &&
|
|
MCOperand_isImm(MCInst_getOperand(MI, 3)) &&
|
|
MCOperand_getImm(MCInst_getOperand(MI, 3)) == 0) {
|
|
// (STNPSi FPR32:$Rt, FPR32:$Rt2, GPR64sp:$Rn, 0)
|
|
AsmString = "stnp $\x01, $\x02, [$\x03]";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_STNPWi:
|
|
if (MCInst_getNumOperands(MI) == 4 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 1) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 2) &&
|
|
MCOperand_isImm(MCInst_getOperand(MI, 3)) &&
|
|
MCOperand_getImm(MCInst_getOperand(MI, 3)) == 0) {
|
|
// (STNPWi GPR32:$Rt, GPR32:$Rt2, GPR64sp:$Rn, 0)
|
|
AsmString = "stnp $\x01, $\x02, [$\x03]";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_STNPXi:
|
|
if (MCInst_getNumOperands(MI) == 4 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 1) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 2) &&
|
|
MCOperand_isImm(MCInst_getOperand(MI, 3)) &&
|
|
MCOperand_getImm(MCInst_getOperand(MI, 3)) == 0) {
|
|
// (STNPXi GPR64:$Rt, GPR64:$Rt2, GPR64sp:$Rn, 0)
|
|
AsmString = "stnp $\x01, $\x02, [$\x03]";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_STPDi:
|
|
if (MCInst_getNumOperands(MI) == 4 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_FPR64RegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_FPR64RegClassID, 1) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 2) &&
|
|
MCOperand_isImm(MCInst_getOperand(MI, 3)) &&
|
|
MCOperand_getImm(MCInst_getOperand(MI, 3)) == 0) {
|
|
// (STPDi FPR64:$Rt, FPR64:$Rt2, GPR64sp:$Rn, 0)
|
|
AsmString = "stp $\x01, $\x02, [$\x03]";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_STPQi:
|
|
if (MCInst_getNumOperands(MI) == 4 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_FPR128RegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_FPR128RegClassID, 1) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 2) &&
|
|
MCOperand_isImm(MCInst_getOperand(MI, 3)) &&
|
|
MCOperand_getImm(MCInst_getOperand(MI, 3)) == 0) {
|
|
// (STPQi FPR128:$Rt, FPR128:$Rt2, GPR64sp:$Rn, 0)
|
|
AsmString = "stp $\x01, $\x02, [$\x03]";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_STPSi:
|
|
if (MCInst_getNumOperands(MI) == 4 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_FPR32RegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_FPR32RegClassID, 1) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 2) &&
|
|
MCOperand_isImm(MCInst_getOperand(MI, 3)) &&
|
|
MCOperand_getImm(MCInst_getOperand(MI, 3)) == 0) {
|
|
// (STPSi FPR32:$Rt, FPR32:$Rt2, GPR64sp:$Rn, 0)
|
|
AsmString = "stp $\x01, $\x02, [$\x03]";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_STPWi:
|
|
if (MCInst_getNumOperands(MI) == 4 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 1) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 2) &&
|
|
MCOperand_isImm(MCInst_getOperand(MI, 3)) &&
|
|
MCOperand_getImm(MCInst_getOperand(MI, 3)) == 0) {
|
|
// (STPWi GPR32:$Rt, GPR32:$Rt2, GPR64sp:$Rn, 0)
|
|
AsmString = "stp $\x01, $\x02, [$\x03]";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_STPXi:
|
|
if (MCInst_getNumOperands(MI) == 4 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 1) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 2) &&
|
|
MCOperand_isImm(MCInst_getOperand(MI, 3)) &&
|
|
MCOperand_getImm(MCInst_getOperand(MI, 3)) == 0) {
|
|
// (STPXi GPR64:$Rt, GPR64:$Rt2, GPR64sp:$Rn, 0)
|
|
AsmString = "stp $\x01, $\x02, [$\x03]";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_STRBBroX:
|
|
if (MCInst_getNumOperands(MI) == 5 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 1) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 2) &&
|
|
MCOperand_isImm(MCInst_getOperand(MI, 3)) &&
|
|
MCOperand_getImm(MCInst_getOperand(MI, 3)) == 0 &&
|
|
MCOperand_isImm(MCInst_getOperand(MI, 4)) &&
|
|
MCOperand_getImm(MCInst_getOperand(MI, 4)) == 0) {
|
|
// (STRBBroX GPR32:$Rt, GPR64sp:$Rn, GPR64:$Rm, 0, 0)
|
|
AsmString = "strb $\x01, [$\x02, $\x03]";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_STRBBui:
|
|
if (MCInst_getNumOperands(MI) == 3 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 1) &&
|
|
MCOperand_isImm(MCInst_getOperand(MI, 2)) &&
|
|
MCOperand_getImm(MCInst_getOperand(MI, 2)) == 0) {
|
|
// (STRBBui GPR32:$Rt, GPR64sp:$Rn, 0)
|
|
AsmString = "strb $\x01, [$\x02]";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_STRBroX:
|
|
if (MCInst_getNumOperands(MI) == 5 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_FPR8RegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 1) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 2) &&
|
|
MCOperand_isImm(MCInst_getOperand(MI, 3)) &&
|
|
MCOperand_getImm(MCInst_getOperand(MI, 3)) == 0 &&
|
|
MCOperand_isImm(MCInst_getOperand(MI, 4)) &&
|
|
MCOperand_getImm(MCInst_getOperand(MI, 4)) == 0) {
|
|
// (STRBroX FPR8:$Rt, GPR64sp:$Rn, GPR64:$Rm, 0, 0)
|
|
AsmString = "str $\x01, [$\x02, $\x03]";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_STRBui:
|
|
if (MCInst_getNumOperands(MI) == 3 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_FPR8RegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 1) &&
|
|
MCOperand_isImm(MCInst_getOperand(MI, 2)) &&
|
|
MCOperand_getImm(MCInst_getOperand(MI, 2)) == 0) {
|
|
// (STRBui FPR8:$Rt, GPR64sp:$Rn, 0)
|
|
AsmString = "str $\x01, [$\x02]";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_STRDroX:
|
|
if (MCInst_getNumOperands(MI) == 5 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_FPR64RegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 1) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 2) &&
|
|
MCOperand_isImm(MCInst_getOperand(MI, 3)) &&
|
|
MCOperand_getImm(MCInst_getOperand(MI, 3)) == 0 &&
|
|
MCOperand_isImm(MCInst_getOperand(MI, 4)) &&
|
|
MCOperand_getImm(MCInst_getOperand(MI, 4)) == 0) {
|
|
// (STRDroX FPR64:$Rt, GPR64sp:$Rn, GPR64:$Rm, 0, 0)
|
|
AsmString = "str $\x01, [$\x02, $\x03]";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_STRDui:
|
|
if (MCInst_getNumOperands(MI) == 3 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_FPR64RegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 1) &&
|
|
MCOperand_isImm(MCInst_getOperand(MI, 2)) &&
|
|
MCOperand_getImm(MCInst_getOperand(MI, 2)) == 0) {
|
|
// (STRDui FPR64:$Rt, GPR64sp:$Rn, 0)
|
|
AsmString = "str $\x01, [$\x02]";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_STRHHroX:
|
|
if (MCInst_getNumOperands(MI) == 5 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 1) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 2) &&
|
|
MCOperand_isImm(MCInst_getOperand(MI, 3)) &&
|
|
MCOperand_getImm(MCInst_getOperand(MI, 3)) == 0 &&
|
|
MCOperand_isImm(MCInst_getOperand(MI, 4)) &&
|
|
MCOperand_getImm(MCInst_getOperand(MI, 4)) == 0) {
|
|
// (STRHHroX GPR32:$Rt, GPR64sp:$Rn, GPR64:$Rm, 0, 0)
|
|
AsmString = "strh $\x01, [$\x02, $\x03]";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_STRHHui:
|
|
if (MCInst_getNumOperands(MI) == 3 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 1) &&
|
|
MCOperand_isImm(MCInst_getOperand(MI, 2)) &&
|
|
MCOperand_getImm(MCInst_getOperand(MI, 2)) == 0) {
|
|
// (STRHHui GPR32:$Rt, GPR64sp:$Rn, 0)
|
|
AsmString = "strh $\x01, [$\x02]";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_STRHroX:
|
|
if (MCInst_getNumOperands(MI) == 5 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_FPR16RegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 1) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 2) &&
|
|
MCOperand_isImm(MCInst_getOperand(MI, 3)) &&
|
|
MCOperand_getImm(MCInst_getOperand(MI, 3)) == 0 &&
|
|
MCOperand_isImm(MCInst_getOperand(MI, 4)) &&
|
|
MCOperand_getImm(MCInst_getOperand(MI, 4)) == 0) {
|
|
// (STRHroX FPR16:$Rt, GPR64sp:$Rn, GPR64:$Rm, 0, 0)
|
|
AsmString = "str $\x01, [$\x02, $\x03]";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_STRHui:
|
|
if (MCInst_getNumOperands(MI) == 3 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_FPR16RegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 1) &&
|
|
MCOperand_isImm(MCInst_getOperand(MI, 2)) &&
|
|
MCOperand_getImm(MCInst_getOperand(MI, 2)) == 0) {
|
|
// (STRHui FPR16:$Rt, GPR64sp:$Rn, 0)
|
|
AsmString = "str $\x01, [$\x02]";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_STRQroX:
|
|
if (MCInst_getNumOperands(MI) == 5 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_FPR128RegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 1) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 2) &&
|
|
MCOperand_isImm(MCInst_getOperand(MI, 3)) &&
|
|
MCOperand_getImm(MCInst_getOperand(MI, 3)) == 0 &&
|
|
MCOperand_isImm(MCInst_getOperand(MI, 4)) &&
|
|
MCOperand_getImm(MCInst_getOperand(MI, 4)) == 0) {
|
|
// (STRQroX FPR128:$Rt, GPR64sp:$Rn, GPR64:$Rm, 0, 0)
|
|
AsmString = "str $\x01, [$\x02, $\x03]";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_STRQui:
|
|
if (MCInst_getNumOperands(MI) == 3 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_FPR128RegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 1) &&
|
|
MCOperand_isImm(MCInst_getOperand(MI, 2)) &&
|
|
MCOperand_getImm(MCInst_getOperand(MI, 2)) == 0) {
|
|
// (STRQui FPR128:$Rt, GPR64sp:$Rn, 0)
|
|
AsmString = "str $\x01, [$\x02]";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_STRSroX:
|
|
if (MCInst_getNumOperands(MI) == 5 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_FPR32RegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 1) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 2) &&
|
|
MCOperand_isImm(MCInst_getOperand(MI, 3)) &&
|
|
MCOperand_getImm(MCInst_getOperand(MI, 3)) == 0 &&
|
|
MCOperand_isImm(MCInst_getOperand(MI, 4)) &&
|
|
MCOperand_getImm(MCInst_getOperand(MI, 4)) == 0) {
|
|
// (STRSroX FPR32:$Rt, GPR64sp:$Rn, GPR64:$Rm, 0, 0)
|
|
AsmString = "str $\x01, [$\x02, $\x03]";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_STRSui:
|
|
if (MCInst_getNumOperands(MI) == 3 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_FPR32RegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 1) &&
|
|
MCOperand_isImm(MCInst_getOperand(MI, 2)) &&
|
|
MCOperand_getImm(MCInst_getOperand(MI, 2)) == 0) {
|
|
// (STRSui FPR32:$Rt, GPR64sp:$Rn, 0)
|
|
AsmString = "str $\x01, [$\x02]";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_STRWroX:
|
|
if (MCInst_getNumOperands(MI) == 5 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 1) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 2) &&
|
|
MCOperand_isImm(MCInst_getOperand(MI, 3)) &&
|
|
MCOperand_getImm(MCInst_getOperand(MI, 3)) == 0 &&
|
|
MCOperand_isImm(MCInst_getOperand(MI, 4)) &&
|
|
MCOperand_getImm(MCInst_getOperand(MI, 4)) == 0) {
|
|
// (STRWroX GPR32:$Rt, GPR64sp:$Rn, GPR64:$Rm, 0, 0)
|
|
AsmString = "str $\x01, [$\x02, $\x03]";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_STRWui:
|
|
if (MCInst_getNumOperands(MI) == 3 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 1) &&
|
|
MCOperand_isImm(MCInst_getOperand(MI, 2)) &&
|
|
MCOperand_getImm(MCInst_getOperand(MI, 2)) == 0) {
|
|
// (STRWui GPR32:$Rt, GPR64sp:$Rn, 0)
|
|
AsmString = "str $\x01, [$\x02]";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_STRXroX:
|
|
if (MCInst_getNumOperands(MI) == 5 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 1) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 2) &&
|
|
MCOperand_isImm(MCInst_getOperand(MI, 3)) &&
|
|
MCOperand_getImm(MCInst_getOperand(MI, 3)) == 0 &&
|
|
MCOperand_isImm(MCInst_getOperand(MI, 4)) &&
|
|
MCOperand_getImm(MCInst_getOperand(MI, 4)) == 0) {
|
|
// (STRXroX GPR64:$Rt, GPR64sp:$Rn, GPR64:$Rm, 0, 0)
|
|
AsmString = "str $\x01, [$\x02, $\x03]";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_STRXui:
|
|
if (MCInst_getNumOperands(MI) == 3 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 1) &&
|
|
MCOperand_isImm(MCInst_getOperand(MI, 2)) &&
|
|
MCOperand_getImm(MCInst_getOperand(MI, 2)) == 0) {
|
|
// (STRXui GPR64:$Rt, GPR64sp:$Rn, 0)
|
|
AsmString = "str $\x01, [$\x02]";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_STTRBi:
|
|
if (MCInst_getNumOperands(MI) == 3 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 1) &&
|
|
MCOperand_isImm(MCInst_getOperand(MI, 2)) &&
|
|
MCOperand_getImm(MCInst_getOperand(MI, 2)) == 0) {
|
|
// (STTRBi GPR32:$Rt, GPR64sp:$Rn, 0)
|
|
AsmString = "sttrb $\x01, [$\x02]";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_STTRHi:
|
|
if (MCInst_getNumOperands(MI) == 3 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 1) &&
|
|
MCOperand_isImm(MCInst_getOperand(MI, 2)) &&
|
|
MCOperand_getImm(MCInst_getOperand(MI, 2)) == 0) {
|
|
// (STTRHi GPR32:$Rt, GPR64sp:$Rn, 0)
|
|
AsmString = "sttrh $\x01, [$\x02]";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_STTRWi:
|
|
if (MCInst_getNumOperands(MI) == 3 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 1) &&
|
|
MCOperand_isImm(MCInst_getOperand(MI, 2)) &&
|
|
MCOperand_getImm(MCInst_getOperand(MI, 2)) == 0) {
|
|
// (STTRWi GPR32:$Rt, GPR64sp:$Rn, 0)
|
|
AsmString = "sttr $\x01, [$\x02]";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_STTRXi:
|
|
if (MCInst_getNumOperands(MI) == 3 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 1) &&
|
|
MCOperand_isImm(MCInst_getOperand(MI, 2)) &&
|
|
MCOperand_getImm(MCInst_getOperand(MI, 2)) == 0) {
|
|
// (STTRXi GPR64:$Rt, GPR64sp:$Rn, 0)
|
|
AsmString = "sttr $\x01, [$\x02]";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_STURBBi:
|
|
if (MCInst_getNumOperands(MI) == 3 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 1) &&
|
|
MCOperand_isImm(MCInst_getOperand(MI, 2)) &&
|
|
MCOperand_getImm(MCInst_getOperand(MI, 2)) == 0) {
|
|
// (STURBBi GPR32:$Rt, GPR64sp:$Rn, 0)
|
|
AsmString = "sturb $\x01, [$\x02]";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_STURBi:
|
|
if (MCInst_getNumOperands(MI) == 3 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_FPR8RegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 1) &&
|
|
MCOperand_isImm(MCInst_getOperand(MI, 2)) &&
|
|
MCOperand_getImm(MCInst_getOperand(MI, 2)) == 0) {
|
|
// (STURBi FPR8:$Rt, GPR64sp:$Rn, 0)
|
|
AsmString = "stur $\x01, [$\x02]";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_STURDi:
|
|
if (MCInst_getNumOperands(MI) == 3 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_FPR64RegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 1) &&
|
|
MCOperand_isImm(MCInst_getOperand(MI, 2)) &&
|
|
MCOperand_getImm(MCInst_getOperand(MI, 2)) == 0) {
|
|
// (STURDi FPR64:$Rt, GPR64sp:$Rn, 0)
|
|
AsmString = "stur $\x01, [$\x02]";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_STURHHi:
|
|
if (MCInst_getNumOperands(MI) == 3 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 1) &&
|
|
MCOperand_isImm(MCInst_getOperand(MI, 2)) &&
|
|
MCOperand_getImm(MCInst_getOperand(MI, 2)) == 0) {
|
|
// (STURHHi GPR32:$Rt, GPR64sp:$Rn, 0)
|
|
AsmString = "sturh $\x01, [$\x02]";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_STURHi:
|
|
if (MCInst_getNumOperands(MI) == 3 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_FPR16RegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 1) &&
|
|
MCOperand_isImm(MCInst_getOperand(MI, 2)) &&
|
|
MCOperand_getImm(MCInst_getOperand(MI, 2)) == 0) {
|
|
// (STURHi FPR16:$Rt, GPR64sp:$Rn, 0)
|
|
AsmString = "stur $\x01, [$\x02]";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_STURQi:
|
|
if (MCInst_getNumOperands(MI) == 3 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_FPR128RegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 1) &&
|
|
MCOperand_isImm(MCInst_getOperand(MI, 2)) &&
|
|
MCOperand_getImm(MCInst_getOperand(MI, 2)) == 0) {
|
|
// (STURQi FPR128:$Rt, GPR64sp:$Rn, 0)
|
|
AsmString = "stur $\x01, [$\x02]";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_STURSi:
|
|
if (MCInst_getNumOperands(MI) == 3 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_FPR32RegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 1) &&
|
|
MCOperand_isImm(MCInst_getOperand(MI, 2)) &&
|
|
MCOperand_getImm(MCInst_getOperand(MI, 2)) == 0) {
|
|
// (STURSi FPR32:$Rt, GPR64sp:$Rn, 0)
|
|
AsmString = "stur $\x01, [$\x02]";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_STURWi:
|
|
if (MCInst_getNumOperands(MI) == 3 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 1) &&
|
|
MCOperand_isImm(MCInst_getOperand(MI, 2)) &&
|
|
MCOperand_getImm(MCInst_getOperand(MI, 2)) == 0) {
|
|
// (STURWi GPR32:$Rt, GPR64sp:$Rn, 0)
|
|
AsmString = "stur $\x01, [$\x02]";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_STURXi:
|
|
if (MCInst_getNumOperands(MI) == 3 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 1) &&
|
|
MCOperand_isImm(MCInst_getOperand(MI, 2)) &&
|
|
MCOperand_getImm(MCInst_getOperand(MI, 2)) == 0) {
|
|
// (STURXi GPR64:$Rt, GPR64sp:$Rn, 0)
|
|
AsmString = "stur $\x01, [$\x02]";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_SUBSWri:
|
|
if (MCInst_getNumOperands(MI) == 4 &&
|
|
MCOperand_getReg(MCInst_getOperand(MI, 0)) == AArch64_WZR &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR32spRegClassID, 1)) {
|
|
// (SUBSWri WZR, GPR32sp:$src, addsub_shifted_imm32:$imm)
|
|
AsmString = "cmp $\x02, $\xFF\x03\x01";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_SUBSWrs:
|
|
if (MCInst_getNumOperands(MI) == 4 &&
|
|
MCOperand_getReg(MCInst_getOperand(MI, 0)) == AArch64_WZR &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 1) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 2) &&
|
|
MCOperand_isImm(MCInst_getOperand(MI, 3)) &&
|
|
MCOperand_getImm(MCInst_getOperand(MI, 3)) == 0) {
|
|
// (SUBSWrs WZR, GPR32:$src1, GPR32:$src2, 0)
|
|
AsmString = "cmp $\x02, $\x03";
|
|
break;
|
|
}
|
|
if (MCInst_getNumOperands(MI) == 4 &&
|
|
MCOperand_getReg(MCInst_getOperand(MI, 0)) == AArch64_WZR &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 1) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 2)) {
|
|
// (SUBSWrs WZR, GPR32:$src1, GPR32:$src2, arith_shift32:$sh)
|
|
AsmString = "cmp $\x02, $\x03$\xFF\x04\x02";
|
|
break;
|
|
}
|
|
if (MCInst_getNumOperands(MI) == 4 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 0) &&
|
|
MCOperand_getReg(MCInst_getOperand(MI, 1)) == AArch64_WZR &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 2) &&
|
|
MCOperand_isImm(MCInst_getOperand(MI, 3)) &&
|
|
MCOperand_getImm(MCInst_getOperand(MI, 3)) == 0) {
|
|
// (SUBSWrs GPR32:$dst, WZR, GPR32:$src, 0)
|
|
AsmString = "negs $\x01, $\x03";
|
|
break;
|
|
}
|
|
if (MCInst_getNumOperands(MI) == 4 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 0) &&
|
|
MCOperand_getReg(MCInst_getOperand(MI, 1)) == AArch64_WZR &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 2)) {
|
|
// (SUBSWrs GPR32:$dst, WZR, GPR32:$src, arith_shift32:$shift)
|
|
AsmString = "negs $\x01, $\x03$\xFF\x04\x02";
|
|
break;
|
|
}
|
|
if (MCInst_getNumOperands(MI) == 4 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 1) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 2) &&
|
|
MCOperand_isImm(MCInst_getOperand(MI, 3)) &&
|
|
MCOperand_getImm(MCInst_getOperand(MI, 3)) == 0) {
|
|
// (SUBSWrs GPR32:$dst, GPR32:$src1, GPR32:$src2, 0)
|
|
AsmString = "subs $\x01, $\x02, $\x03";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_SUBSWrx:
|
|
if (MCInst_getNumOperands(MI) == 4 &&
|
|
MCOperand_getReg(MCInst_getOperand(MI, 0)) == AArch64_WZR &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR32sponlyRegClassID, 1) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 2) &&
|
|
MCOperand_isImm(MCInst_getOperand(MI, 3)) &&
|
|
MCOperand_getImm(MCInst_getOperand(MI, 3)) == 16) {
|
|
// (SUBSWrx WZR, GPR32sponly:$src1, GPR32:$src2, 16)
|
|
AsmString = "cmp $\x02, $\x03";
|
|
break;
|
|
}
|
|
if (MCInst_getNumOperands(MI) == 4 &&
|
|
MCOperand_getReg(MCInst_getOperand(MI, 0)) == AArch64_WZR &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR32spRegClassID, 1) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 2)) {
|
|
// (SUBSWrx WZR, GPR32sp:$src1, GPR32:$src2, arith_extend:$sh)
|
|
AsmString = "cmp $\x02, $\x03$\xFF\x04\x03";
|
|
break;
|
|
}
|
|
if (MCInst_getNumOperands(MI) == 4 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR32sponlyRegClassID, 1) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 2) &&
|
|
MCOperand_isImm(MCInst_getOperand(MI, 3)) &&
|
|
MCOperand_getImm(MCInst_getOperand(MI, 3)) == 16) {
|
|
// (SUBSWrx GPR32:$dst, GPR32sponly:$src1, GPR32:$src2, 16)
|
|
AsmString = "subs $\x01, $\x02, $\x03";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_SUBSXri:
|
|
if (MCInst_getNumOperands(MI) == 4 &&
|
|
MCOperand_getReg(MCInst_getOperand(MI, 0)) == AArch64_XZR &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 1)) {
|
|
// (SUBSXri XZR, GPR64sp:$src, addsub_shifted_imm64:$imm)
|
|
AsmString = "cmp $\x02, $\xFF\x03\x01";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_SUBSXrs:
|
|
if (MCInst_getNumOperands(MI) == 4 &&
|
|
MCOperand_getReg(MCInst_getOperand(MI, 0)) == AArch64_XZR &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 1) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 2) &&
|
|
MCOperand_isImm(MCInst_getOperand(MI, 3)) &&
|
|
MCOperand_getImm(MCInst_getOperand(MI, 3)) == 0) {
|
|
// (SUBSXrs XZR, GPR64:$src1, GPR64:$src2, 0)
|
|
AsmString = "cmp $\x02, $\x03";
|
|
break;
|
|
}
|
|
if (MCInst_getNumOperands(MI) == 4 &&
|
|
MCOperand_getReg(MCInst_getOperand(MI, 0)) == AArch64_XZR &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 1) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 2)) {
|
|
// (SUBSXrs XZR, GPR64:$src1, GPR64:$src2, arith_shift64:$sh)
|
|
AsmString = "cmp $\x02, $\x03$\xFF\x04\x02";
|
|
break;
|
|
}
|
|
if (MCInst_getNumOperands(MI) == 4 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 0) &&
|
|
MCOperand_getReg(MCInst_getOperand(MI, 1)) == AArch64_XZR &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 2) &&
|
|
MCOperand_isImm(MCInst_getOperand(MI, 3)) &&
|
|
MCOperand_getImm(MCInst_getOperand(MI, 3)) == 0) {
|
|
// (SUBSXrs GPR64:$dst, XZR, GPR64:$src, 0)
|
|
AsmString = "negs $\x01, $\x03";
|
|
break;
|
|
}
|
|
if (MCInst_getNumOperands(MI) == 4 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 0) &&
|
|
MCOperand_getReg(MCInst_getOperand(MI, 1)) == AArch64_XZR &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 2)) {
|
|
// (SUBSXrs GPR64:$dst, XZR, GPR64:$src, arith_shift64:$shift)
|
|
AsmString = "negs $\x01, $\x03$\xFF\x04\x02";
|
|
break;
|
|
}
|
|
if (MCInst_getNumOperands(MI) == 4 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 1) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 2) &&
|
|
MCOperand_isImm(MCInst_getOperand(MI, 3)) &&
|
|
MCOperand_getImm(MCInst_getOperand(MI, 3)) == 0) {
|
|
// (SUBSXrs GPR64:$dst, GPR64:$src1, GPR64:$src2, 0)
|
|
AsmString = "subs $\x01, $\x02, $\x03";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_SUBSXrx:
|
|
if (MCInst_getNumOperands(MI) == 4 &&
|
|
MCOperand_getReg(MCInst_getOperand(MI, 0)) == AArch64_XZR &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 1) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 2)) {
|
|
// (SUBSXrx XZR, GPR64sp:$src1, GPR32:$src2, arith_extend:$sh)
|
|
AsmString = "cmp $\x02, $\x03$\xFF\x04\x03";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_SUBSXrx64:
|
|
if (MCInst_getNumOperands(MI) == 4 &&
|
|
MCOperand_getReg(MCInst_getOperand(MI, 0)) == AArch64_XZR &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64sponlyRegClassID, 1) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 2) &&
|
|
MCOperand_isImm(MCInst_getOperand(MI, 3)) &&
|
|
MCOperand_getImm(MCInst_getOperand(MI, 3)) == 24) {
|
|
// (SUBSXrx64 XZR, GPR64sponly:$src1, GPR64:$src2, 24)
|
|
AsmString = "cmp $\x02, $\x03";
|
|
break;
|
|
}
|
|
if (MCInst_getNumOperands(MI) == 4 &&
|
|
MCOperand_getReg(MCInst_getOperand(MI, 0)) == AArch64_XZR &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 1) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 2)) {
|
|
// (SUBSXrx64 XZR, GPR64sp:$src1, GPR64:$src2, arith_extendlsl64:$sh)
|
|
AsmString = "cmp $\x02, $\x03$\xFF\x04\x03";
|
|
break;
|
|
}
|
|
if (MCInst_getNumOperands(MI) == 4 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64sponlyRegClassID, 1) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 2) &&
|
|
MCOperand_isImm(MCInst_getOperand(MI, 3)) &&
|
|
MCOperand_getImm(MCInst_getOperand(MI, 3)) == 24) {
|
|
// (SUBSXrx64 GPR64:$dst, GPR64sponly:$src1, GPR64:$src2, 24)
|
|
AsmString = "subs $\x01, $\x02, $\x03";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_SUBWrs:
|
|
if (MCInst_getNumOperands(MI) == 4 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 0) &&
|
|
MCOperand_getReg(MCInst_getOperand(MI, 1)) == AArch64_WZR &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 2) &&
|
|
MCOperand_isImm(MCInst_getOperand(MI, 3)) &&
|
|
MCOperand_getImm(MCInst_getOperand(MI, 3)) == 0) {
|
|
// (SUBWrs GPR32:$dst, WZR, GPR32:$src, 0)
|
|
AsmString = "neg $\x01, $\x03";
|
|
break;
|
|
}
|
|
if (MCInst_getNumOperands(MI) == 4 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 0) &&
|
|
MCOperand_getReg(MCInst_getOperand(MI, 1)) == AArch64_WZR &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 2)) {
|
|
// (SUBWrs GPR32:$dst, WZR, GPR32:$src, arith_shift32:$shift)
|
|
AsmString = "neg $\x01, $\x03$\xFF\x04\x02";
|
|
break;
|
|
}
|
|
if (MCInst_getNumOperands(MI) == 4 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 1) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 2) &&
|
|
MCOperand_isImm(MCInst_getOperand(MI, 3)) &&
|
|
MCOperand_getImm(MCInst_getOperand(MI, 3)) == 0) {
|
|
// (SUBWrs GPR32:$dst, GPR32:$src1, GPR32:$src2, 0)
|
|
AsmString = "sub $\x01, $\x02, $\x03";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_SUBWrx:
|
|
if (MCInst_getNumOperands(MI) == 4 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR32sponlyRegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR32spRegClassID, 1) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 2) &&
|
|
MCOperand_isImm(MCInst_getOperand(MI, 3)) &&
|
|
MCOperand_getImm(MCInst_getOperand(MI, 3)) == 16) {
|
|
// (SUBWrx GPR32sponly:$dst, GPR32sp:$src1, GPR32:$src2, 16)
|
|
AsmString = "sub $\x01, $\x02, $\x03";
|
|
break;
|
|
}
|
|
if (MCInst_getNumOperands(MI) == 4 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR32spRegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR32sponlyRegClassID, 1) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 2) &&
|
|
MCOperand_isImm(MCInst_getOperand(MI, 3)) &&
|
|
MCOperand_getImm(MCInst_getOperand(MI, 3)) == 16) {
|
|
// (SUBWrx GPR32sp:$dst, GPR32sponly:$src1, GPR32:$src2, 16)
|
|
AsmString = "sub $\x01, $\x02, $\x03";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_SUBXrs:
|
|
if (MCInst_getNumOperands(MI) == 4 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 0) &&
|
|
MCOperand_getReg(MCInst_getOperand(MI, 1)) == AArch64_XZR &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 2) &&
|
|
MCOperand_isImm(MCInst_getOperand(MI, 3)) &&
|
|
MCOperand_getImm(MCInst_getOperand(MI, 3)) == 0) {
|
|
// (SUBXrs GPR64:$dst, XZR, GPR64:$src, 0)
|
|
AsmString = "neg $\x01, $\x03";
|
|
break;
|
|
}
|
|
if (MCInst_getNumOperands(MI) == 4 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 0) &&
|
|
MCOperand_getReg(MCInst_getOperand(MI, 1)) == AArch64_XZR &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 2)) {
|
|
// (SUBXrs GPR64:$dst, XZR, GPR64:$src, arith_shift64:$shift)
|
|
AsmString = "neg $\x01, $\x03$\xFF\x04\x02";
|
|
break;
|
|
}
|
|
if (MCInst_getNumOperands(MI) == 4 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 1) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 2) &&
|
|
MCOperand_isImm(MCInst_getOperand(MI, 3)) &&
|
|
MCOperand_getImm(MCInst_getOperand(MI, 3)) == 0) {
|
|
// (SUBXrs GPR64:$dst, GPR64:$src1, GPR64:$src2, 0)
|
|
AsmString = "sub $\x01, $\x02, $\x03";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_SUBXrx64:
|
|
if (MCInst_getNumOperands(MI) == 4 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64sponlyRegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 1) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 2) &&
|
|
MCOperand_isImm(MCInst_getOperand(MI, 3)) &&
|
|
MCOperand_getImm(MCInst_getOperand(MI, 3)) == 24) {
|
|
// (SUBXrx64 GPR64sponly:$dst, GPR64sp:$src1, GPR64:$src2, 24)
|
|
AsmString = "sub $\x01, $\x02, $\x03";
|
|
break;
|
|
}
|
|
if (MCInst_getNumOperands(MI) == 4 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64spRegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64sponlyRegClassID, 1) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 2) &&
|
|
MCOperand_isImm(MCInst_getOperand(MI, 3)) &&
|
|
MCOperand_getImm(MCInst_getOperand(MI, 3)) == 24) {
|
|
// (SUBXrx64 GPR64sp:$dst, GPR64sponly:$src1, GPR64:$src2, 24)
|
|
AsmString = "sub $\x01, $\x02, $\x03";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_SYSxt:
|
|
if (MCInst_getNumOperands(MI) == 5 &&
|
|
MCOperand_getReg(MCInst_getOperand(MI, 4)) == AArch64_XZR) {
|
|
// (SYSxt imm0_7:$op1, sys_cr_op:$Cn, sys_cr_op:$Cm, imm0_7:$op2, XZR)
|
|
AsmString = "sys $\x01, $\xFF\x02\x17, $\xFF\x03\x17, $\x04";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_UBFMWri:
|
|
if (MCInst_getNumOperands(MI) == 4 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 1) &&
|
|
MCOperand_isImm(MCInst_getOperand(MI, 3)) &&
|
|
MCOperand_getImm(MCInst_getOperand(MI, 3)) == 31) {
|
|
// (UBFMWri GPR32:$dst, GPR32:$src, imm0_31:$shift, 31)
|
|
AsmString = "lsr $\x01, $\x02, $\x03";
|
|
break;
|
|
}
|
|
if (MCInst_getNumOperands(MI) == 4 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 1) &&
|
|
MCOperand_isImm(MCInst_getOperand(MI, 2)) &&
|
|
MCOperand_getImm(MCInst_getOperand(MI, 2)) == 0 &&
|
|
MCOperand_isImm(MCInst_getOperand(MI, 3)) &&
|
|
MCOperand_getImm(MCInst_getOperand(MI, 3)) == 7) {
|
|
// (UBFMWri GPR32:$dst, GPR32:$src, 0, 7)
|
|
AsmString = "uxtb $\x01, $\x02";
|
|
break;
|
|
}
|
|
if (MCInst_getNumOperands(MI) == 4 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 1) &&
|
|
MCOperand_isImm(MCInst_getOperand(MI, 2)) &&
|
|
MCOperand_getImm(MCInst_getOperand(MI, 2)) == 0 &&
|
|
MCOperand_isImm(MCInst_getOperand(MI, 3)) &&
|
|
MCOperand_getImm(MCInst_getOperand(MI, 3)) == 15) {
|
|
// (UBFMWri GPR32:$dst, GPR32:$src, 0, 15)
|
|
AsmString = "uxth $\x01, $\x02";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_UBFMXri:
|
|
if (MCInst_getNumOperands(MI) == 4 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 1) &&
|
|
MCOperand_isImm(MCInst_getOperand(MI, 3)) &&
|
|
MCOperand_getImm(MCInst_getOperand(MI, 3)) == 63) {
|
|
// (UBFMXri GPR64:$dst, GPR64:$src, imm0_63:$shift, 63)
|
|
AsmString = "lsr $\x01, $\x02, $\x03";
|
|
break;
|
|
}
|
|
if (MCInst_getNumOperands(MI) == 4 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 1) &&
|
|
MCOperand_isImm(MCInst_getOperand(MI, 2)) &&
|
|
MCOperand_getImm(MCInst_getOperand(MI, 2)) == 0 &&
|
|
MCOperand_isImm(MCInst_getOperand(MI, 3)) &&
|
|
MCOperand_getImm(MCInst_getOperand(MI, 3)) == 7) {
|
|
// (UBFMXri GPR64:$dst, GPR64:$src, 0, 7)
|
|
AsmString = "uxtb $\x01, $\x02";
|
|
break;
|
|
}
|
|
if (MCInst_getNumOperands(MI) == 4 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 1) &&
|
|
MCOperand_isImm(MCInst_getOperand(MI, 2)) &&
|
|
MCOperand_getImm(MCInst_getOperand(MI, 2)) == 0 &&
|
|
MCOperand_isImm(MCInst_getOperand(MI, 3)) &&
|
|
MCOperand_getImm(MCInst_getOperand(MI, 3)) == 15) {
|
|
// (UBFMXri GPR64:$dst, GPR64:$src, 0, 15)
|
|
AsmString = "uxth $\x01, $\x02";
|
|
break;
|
|
}
|
|
if (MCInst_getNumOperands(MI) == 4 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 1) &&
|
|
MCOperand_isImm(MCInst_getOperand(MI, 2)) &&
|
|
MCOperand_getImm(MCInst_getOperand(MI, 2)) == 0 &&
|
|
MCOperand_isImm(MCInst_getOperand(MI, 3)) &&
|
|
MCOperand_getImm(MCInst_getOperand(MI, 3)) == 31) {
|
|
// (UBFMXri GPR64:$dst, GPR64:$src, 0, 31)
|
|
AsmString = "uxtw $\x01, $\x02";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_UMADDLrrr:
|
|
if (MCInst_getNumOperands(MI) == 4 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 1) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 2) &&
|
|
MCOperand_getReg(MCInst_getOperand(MI, 3)) == AArch64_XZR) {
|
|
// (UMADDLrrr GPR64:$dst, GPR32:$src1, GPR32:$src2, XZR)
|
|
AsmString = "umull $\x01, $\x02, $\x03";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_UMOVvi32:
|
|
if (MCInst_getNumOperands(MI) == 3 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_FPR128RegClassID, 1)) {
|
|
// (UMOVvi32 GPR32:$dst, V128:$src, VectorIndexS:$idx)
|
|
AsmString = "mov $\x01, $\xFF\x02\x06.s$\xFF\x03\x09";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_UMOVvi64:
|
|
if (MCInst_getNumOperands(MI) == 3 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_FPR128RegClassID, 1)) {
|
|
// (UMOVvi64 GPR64:$dst, V128:$src, VectorIndexD:$idx)
|
|
AsmString = "mov $\x01, $\xFF\x02\x06.d$\xFF\x03\x09";
|
|
break;
|
|
}
|
|
return NULL;
|
|
case AArch64_UMSUBLrrr:
|
|
if (MCInst_getNumOperands(MI) == 4 &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR64RegClassID, 0) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 1) &&
|
|
MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
|
|
GETREGCLASS_CONTAIN(AArch64_GPR32RegClassID, 2) &&
|
|
MCOperand_getReg(MCInst_getOperand(MI, 3)) == AArch64_XZR) {
|
|
// (UMSUBLrrr GPR64:$dst, GPR32:$src1, GPR32:$src2, XZR)
|
|
AsmString = "umnegl $\x01, $\x02, $\x03";
|
|
break;
|
|
}
|
|
return NULL;
|
|
}
|
|
|
|
tmp = cs_strdup(AsmString);
|
|
AsmMnem = tmp;
|
|
for(AsmOps = tmp; *AsmOps; AsmOps++) {
|
|
if (*AsmOps == ' ' || *AsmOps == '\t') {
|
|
*AsmOps = '\0';
|
|
AsmOps++;
|
|
break;
|
|
}
|
|
}
|
|
SStream_concat0(OS, AsmMnem);
|
|
if (*AsmOps) {
|
|
SStream_concat0(OS, "\t");
|
|
for (c = AsmOps; *c; c++) {
|
|
if (*c == '[') {
|
|
SStream_concat0(OS, "[");
|
|
set_mem_access(MI, true);
|
|
}
|
|
else if (*c == ']') {
|
|
SStream_concat0(OS, "]");
|
|
set_mem_access(MI, false);
|
|
}
|
|
else if (*c == '$') {
|
|
c += 1;
|
|
if (*c == (char)0xff) {
|
|
c += 1;
|
|
OpIdx = *c - 1;
|
|
c += 1;
|
|
PrintMethodIdx = *c - 1;
|
|
printCustomAliasOperand(MI, OpIdx, PrintMethodIdx, OS, MRI);
|
|
} else
|
|
printOperand(MI, *c - 1, OS);
|
|
} else {
|
|
SStream_concat(OS, "%c", *c);
|
|
}
|
|
}
|
|
}
|
|
return tmp;
|
|
}
|
|
|
|
#endif // PRINT_ALIAS_INSTR
|