Imports #
"encoding/binary"
"fmt"
"strings"
"fmt"
"strings"
"fmt"
"io"
"sort"
"strings"
"encoding/binary"
"fmt"
"strings"
"fmt"
"strings"
"fmt"
"io"
"sort"
"strings"
const ABSconst ADCconst ADCSconst ADDconst ADDHNconst ADDHN2const ADDPconst ADDSconst ADDVconst ADRconst ADRPconst AESDconst AESEconst AESIMCconst AESMCconst ANDconst ANDSconst ASRconst ASRVconst ATconst AddrOffsetconst AddrPostIndexconst AddrPostRegconst AddrPreIndexconst Arrangement16Bconst Arrangement1Dconst Arrangement1Qconst Arrangement2Dconst Arrangement2Sconst Arrangement4Hconst Arrangement4Sconst Arrangement8Bconst Arrangement8Hconst ArrangementBconst ArrangementDconst ArrangementHconst ArrangementSconst Bconst B0const B1const B10const B11const B12const B13const B14const B15const B16const B17const B18const B19const B2const B20const B21const B22const B23const B24const B25const B26const B27const B28const B29const B3const B30const B31const B4const B5const B6const B7const B8const B9const BFIconst BFMconst BFXILconst BICconst BICSconst BIFconst BITconst BLconst BLRconst BRconst BRKconst BSLconst CBNZconst CBZconst CCMNconst CCMPconst CINCconst CINVconst CLREXconst CLSconst CLZconst CMEQconst CMGEconst CMGTconst CMHIconst CMHSconst CMLEconst CMLTconst CMNconst CMPconst CMTSTconst CNEGconst CNTconst CRC32Bconst CRC32CBconst CRC32CHconst CRC32CWconst CRC32CXconst CRC32Hconst CRC32Wconst CRC32Xconst CSELconst CSETconst CSETMconst CSINCconst CSINVconst CSNEGconst D0const D1const D10const D11const D12const D13const D14const D15const D16const D17const D18const D19const D2const D20const D21const D22const D23const D24const D25const D26const D27const D28const D29const D3const D30const D31const D4const D5const D6const D7const D8const D9const DAIFClrconst DAIFSetconst DCconst DCPS1const DCPS2const DCPS3const DMBconst DRPSconst DSBconst DUPconst EONconst EORconst ERETconst EXTconst EXTRconst FABDconst FABSconst FACGEconst FACGTconst FADDconst FADDPconst FCCMPconst FCCMPEconst FCMEQconst FCMGEconst FCMGTconst FCMLEconst FCMLTconst FCMPconst FCMPEconst FCSELconst FCVTconst FCVTASconst FCVTAUconst FCVTLconst FCVTL2const FCVTMSconst FCVTMUconst FCVTNconst FCVTN2const FCVTNSconst FCVTNUconst FCVTPSconst FCVTPUconst FCVTXNconst FCVTXN2const FCVTZSconst FCVTZUconst FDIVconst FMADDconst FMAXconst FMAXNMconst FMAXNMPconst FMAXNMVconst FMAXPconst FMAXVconst FMINconst FMINNMconst FMINNMPconst FMINNMVconst FMINPconst FMINVconst FMLAconst FMLSconst FMOVconst FMSUBconst FMULconst FMULXconst FNEGconst FNMADDconst FNMSUBconst FNMULconst FRECPEconst FRECPSconst FRECPXconst FRINTAconst FRINTIconst FRINTMconst FRINTNconst FRINTPconst FRINTXconst FRINTZconst FRSQRTEconst FRSQRTSconst FSQRTconst FSUBconst H0const H1const H10const H11const H12const H13const H14const H15const H16const H17const H18const H19const H2const H20const H21const H22const H23const H24const H25const H26const H27const H28const H29const H3const H30const H31const H4const H5const H6const H7const H8const H9const HINTconst HLTconst HVCconst ICconst INSconst ISBconst LD1const LD1Rconst LD2const LD2Rconst LD3const LD3Rconst LD4const LD4Rconst LDARconst LDARBconst LDARHconst LDAXPconst LDAXRconst LDAXRBconst LDAXRHconst LDNPconst LDPconst LDPSWconst LDRconst LDRBconst LDRHconst LDRSBconst LDRSHconst LDRSWconst LDTRconst LDTRBconst LDTRHconst LDTRSBconst LDTRSHconst LDTRSWconst LDURconst LDURBconst LDURHconst LDURSBconst LDURSHconst LDURSWconst LDXPconst LDXRconst LDXRBconst LDXRHconst LSLconst LSLVconst LSRconst LSRVconst MADDconst MLAconst MLSconst MNEGconst MOVconst MOVIconst MOVKconst MOVNconst MOVZconst MRSconst MSRconst MSUBconst MULconst MVNconst MVNIconst NEGconst NEGSconst NGCconst NGCSconst NOPconst NOTconst ORNconst ORRconst PMULconst PMULLconst PMULL2const PRFMconst PRFUMconst Q0const Q1const Q10const Q11const Q12const Q13const Q14const Q15const Q16const Q17const Q18const Q19const Q2const Q20const Q21const Q22const Q23const Q24const Q25const Q26const Q27const Q28const Q29const Q3const Q30const Q31const Q4const Q5const Q6const Q7const Q8const Q9const RADDHNconst RADDHN2const RBITconst RETconst REVconst REV16const REV32const REV64const RORconst RORVconst RSHRNconst RSHRN2const RSUBHNconst RSUBHN2const S0const S1const S10const S11const S12const S13const S14const S15const S16const S17const S18const S19const S2const S20const S21const S22const S23const S24const S25const S26const S27const S28const S29const S3const S30const S31const S4const S5const S6const S7const S8const S9const SABAconst SABALconst SABAL2const SABDconst SABDLconst SABDL2const SADALPconst SADDLconst SADDL2const SADDLPconst SADDLVconst SADDWconst SADDW2const SBCconst SBCSconst SBFIZconst SBFMconst SBFXconst SCVTFconst SDIVconst SEVconst SEVLconst SHA1Cconst SHA1Hconst SHA1Mconst SHA1Pconst SHA1SU0const SHA1SU1const SHA256Hconst SHA256H2const SHA256SU0const SHA256SU1const SHADDconst SHLconst SHLLconst SHLL2const SHRNconst SHRN2const SHSUBconst SLIconst SMADDLconst SMAXconst SMAXPconst SMAXVconst SMCconst SMINconst SMINPconst SMINVconst SMLALconst SMLAL2const SMLSLconst SMLSL2const SMNEGLconst SMOVconst SMSUBLconst SMULHconst SMULLconst SMULL2const SP = XZRconst SPSel Pstatefield = iotaconst SQABSconst SQADDconst SQDMLALconst SQDMLAL2const SQDMLSLconst SQDMLSL2const SQDMULHconst SQDMULLconst SQDMULL2const SQNEGconst SQRDMULHconst SQRSHLconst SQRSHRNconst SQRSHRN2const SQRSHRUNconst SQRSHRUN2const SQSHLconst SQSHLUconst SQSHRNconst SQSHRN2const SQSHRUNconst SQSHRUN2const SQSUBconst SQXTNconst SQXTN2const SQXTUNconst SQXTUN2const SRHADDconst SRIconst SRSHLconst SRSHRconst SRSRAconst SSHLconst SSHLLconst SSHLL2const SSHRconst SSRAconst SSUBLconst SSUBL2const SSUBWconst SSUBW2const ST1const ST2const ST3const ST4const STLRconst STLRBconst STLRHconst STLXPconst STLXRconst STLXRBconst STLXRHconst STNPconst STPconst STRconst STRBconst STRHconst STTRconst STTRBconst STTRHconst STURconst STURBconst STURHconst STXPconst STXRconst STXRBconst STXRHconst SUBconst SUBHNconst SUBHN2const SUBSconst SUQADDconst SVCconst SXTBconst SXTHconst SXTLconst SXTL2const SXTWconst SYSconst SYSLconst TBLconst TBNZconst TBXconst TBZconst TLBIconst TRN1const TRN2const TSTconst UABAconst UABALconst UABAL2const UABDconst UABDLconst UABDL2const UADALPconst UADDLconst UADDL2const UADDLPconst UADDLVconst UADDWconst UADDW2const UBFIZconst UBFMconst UBFXconst UCVTFconst UDIVconst UHADDconst UHSUBconst UMADDLconst UMAXconst UMAXPconst UMAXVconst UMINconst UMINPconst UMINVconst UMLALconst UMLAL2const UMLSLconst UMLSL2const UMNEGLconst UMOVconst UMSUBLconst UMULHconst UMULLconst UMULL2const UQADDconst UQRSHLconst UQRSHRNconst UQRSHRN2const UQSHLconst UQSHRNconst UQSHRN2const UQSUBconst UQXTNconst UQXTN2const URECPEconst URHADDconst URSHLconst URSHRconst URSQRTEconst URSRAconst USHLconst USHLLconst USHLL2const USHRconst USQADDconst USRAconst USUBLconst USUBL2const USUBWconst USUBW2const UXTBconst UXTHconst UXTLconst UXTL2const UZP1const UZP2const V0const V1const V10const V11const V12const V13const V14const V15const V16const V17const V18const V19const V2const V20const V21const V22const V23const V24const V25const V26const V27const V28const V29const V3const V30const V31const V4const V5const V6const V7const V8const V9const W0 Reg = iotaconst W1const W10const W11const W12const W13const W14const W15const W16const W17const W18const W19const W2const W20const W21const W22const W23const W24const W25const W26const W27const W28const W29const W3const W30const W4const W5const W6const W7const W8const W9const WFEconst WFIconst WSP = WZRconst WZRconst X0const X1const X10const X11const X12const X13const X14const X15const X16const X17const X18const X19const X2const X20const X21const X22const X23const X24const X25const X26const X27const X28const X29const X3const X30const X4const X5const X6const X7const X8const X9const XTNconst XTN2const XZRconst YIELDconst ZIP1const ZIP2const _ Arrangement = iotaconst _ AddrMode = iotaconst _ ExtShift = iotaconst _ instArg = iotaconst _ Op = iotaconst arg_Btconst arg_Cmconst arg_Cnconst arg_Daconst arg_Ddconst arg_Dmconst arg_Dnconst arg_Dtconst arg_Dt2const arg_Hdconst arg_Hnconst arg_Htconst arg_IAddSubconst arg_Qdconst arg_Qnconst arg_Qtconst arg_Qt2const arg_Rm_extend__UXTB_0__UXTH_1__UXTW_2__LSL_UXTX_3__SXTB_4__SXTH_5__SXTW_6__SXTX_7__0_4const arg_Rn_16_5__W_1__W_2__W_4__X_8const arg_Rt_31_1__W_0__X_1const arg_Saconst arg_Sdconst arg_Smconst arg_Snconst arg_Stconst arg_St2const arg_Vd_16_5__B_1__H_2__S_4__D_8const arg_Vd_19_4__B_1__H_2__S_4const arg_Vd_19_4__B_1__H_2__S_4__D_8const arg_Vd_19_4__D_8const arg_Vd_19_4__S_4__D_8const arg_Vd_22_1__S_0const arg_Vd_22_1__S_0__D_1const arg_Vd_22_1__S_1const arg_Vd_22_2__B_0__H_1__S_2const arg_Vd_22_2__B_0__H_1__S_2__D_3const arg_Vd_22_2__D_3const arg_Vd_22_2__H_0__S_1__D_2const arg_Vd_22_2__H_1__S_2const arg_Vd_22_2__S_1__D_2const arg_Vd_arrangement_16Bconst arg_Vd_arrangement_2Dconst arg_Vd_arrangement_4Sconst arg_Vd_arrangement_D_index__1const arg_Vd_arrangement_Q___2S_0__4S_1const arg_Vd_arrangement_Q___4H_0__8H_1const arg_Vd_arrangement_Q___8B_0__16B_1const arg_Vd_arrangement_Q_sz___2S_00__4S_10__2D_11const arg_Vd_arrangement_imm5_Q___8B_10__16B_11__4H_20__8H_21__2S_40__4S_41__2D_81const arg_Vd_arrangement_imm5___B_1__H_2__S_4__D_8_index__imm5__imm5lt41gt_1__imm5lt42gt_2__imm5lt43gt_4__imm5lt4gt_8_1const arg_Vd_arrangement_immh_Q___SEEAdvancedSIMDmodifiedimmediate_00__2S_40__4S_41__2D_81const arg_Vd_arrangement_immh_Q___SEEAdvancedSIMDmodifiedimmediate_00__8B_10__16B_11__4H_20__8H_21__2S_40__4S_41const arg_Vd_arrangement_immh_Q___SEEAdvancedSIMDmodifiedimmediate_00__8B_10__16B_11__4H_20__8H_21__2S_40__4S_41__2D_81const arg_Vd_arrangement_immh___SEEAdvancedSIMDmodifiedimmediate_0__8H_1__4S_2__2D_4const arg_Vd_arrangement_size_Q___4H_00__8H_01__2S_10__4S_11__1D_20__2D_21const arg_Vd_arrangement_size_Q___4H_10__8H_11__2S_20__4S_21const arg_Vd_arrangement_size_Q___8B_00__16B_01const arg_Vd_arrangement_size_Q___8B_00__16B_01__4H_10__8H_11const arg_Vd_arrangement_size_Q___8B_00__16B_01__4H_10__8H_11__2S_20__4S_21const arg_Vd_arrangement_size_Q___8B_00__16B_01__4H_10__8H_11__2S_20__4S_21__2D_31const arg_Vd_arrangement_size___4S_1__2D_2const arg_Vd_arrangement_size___8H_0__1Q_3const arg_Vd_arrangement_size___8H_0__4S_1__2D_2const arg_Vd_arrangement_sz_Q___2S_00__4S_01const arg_Vd_arrangement_sz_Q___2S_00__4S_01__2D_11const arg_Vd_arrangement_sz_Q___2S_10__4S_11const arg_Vd_arrangement_sz_Q___4H_00__8H_01__2S_10__4S_11const arg_Vd_arrangement_sz___4S_0__2D_1const arg_Vm_22_1__S_0__D_1const arg_Vm_22_2__B_0__H_1__S_2__D_3const arg_Vm_22_2__D_3const arg_Vm_22_2__H_1__S_2const arg_Vm_arrangement_4Sconst arg_Vm_arrangement_Q___8B_0__16B_1const arg_Vm_arrangement_size_Q___4H_10__8H_11__2S_20__4S_21const arg_Vm_arrangement_size_Q___8B_00__16B_01const arg_Vm_arrangement_size_Q___8B_00__16B_01__1D_30__2D_31const arg_Vm_arrangement_size_Q___8B_00__16B_01__4H_10__8H_11__2S_20__4S_21const arg_Vm_arrangement_size_Q___8B_00__16B_01__4H_10__8H_11__2S_20__4S_21__2D_31const arg_Vm_arrangement_size___8H_0__4S_1__2D_2const arg_Vm_arrangement_size___H_1__S_2_index__size_L_H_M__HLM_1__HL_2_1const arg_Vm_arrangement_sz_Q___2S_00__4S_01__2D_11const arg_Vm_arrangement_sz___S_0__D_1_index__sz_L_H__HL_00__H_10_1const arg_Vn_19_4__B_1__H_2__S_4__D_8const arg_Vn_19_4__D_8const arg_Vn_19_4__H_1__S_2__D_4const arg_Vn_19_4__S_4__D_8const arg_Vn_1_arrangement_16Bconst arg_Vn_22_1__D_1const arg_Vn_22_1__S_0__D_1const arg_Vn_22_2__B_0__H_1__S_2__D_3const arg_Vn_22_2__D_3const arg_Vn_22_2__H_0__S_1__D_2const arg_Vn_22_2__H_1__S_2const arg_Vn_2_arrangement_16Bconst arg_Vn_3_arrangement_16Bconst arg_Vn_4_arrangement_16Bconst arg_Vn_arrangement_16Bconst arg_Vn_arrangement_4Sconst arg_Vn_arrangement_D_index__1const arg_Vn_arrangement_D_index__imm5_1const arg_Vn_arrangement_Q___8B_0__16B_1const arg_Vn_arrangement_Q_sz___2S_00__4S_10__2D_11const arg_Vn_arrangement_Q_sz___4S_10const arg_Vn_arrangement_S_index__imm5__imm5lt41gt_1__imm5lt42gt_2__imm5lt43gt_4_1const arg_Vn_arrangement_imm5___B_1__H_2__S_4__D_8_index__imm5__imm5lt41gt_1__imm5lt42gt_2__imm5lt43gt_4__imm5lt4gt_8_1const arg_Vn_arrangement_imm5___B_1__H_2__S_4__D_8_index__imm5_imm4__imm4lt30gt_1__imm4lt31gt_2__imm4lt32gt_4__imm4lt3gt_8_1const arg_Vn_arrangement_imm5___B_1__H_2__S_4_index__imm5__imm5lt41gt_1__imm5lt42gt_2__imm5lt43gt_4_1const arg_Vn_arrangement_imm5___B_1__H_2_index__imm5__imm5lt41gt_1__imm5lt42gt_2_1const arg_Vn_arrangement_imm5___D_8_index__imm5_1const arg_Vn_arrangement_immh_Q___SEEAdvancedSIMDmodifiedimmediate_00__2S_40__4S_41__2D_81const arg_Vn_arrangement_immh_Q___SEEAdvancedSIMDmodifiedimmediate_00__8B_10__16B_11__4H_20__8H_21__2S_40__4S_41const arg_Vn_arrangement_immh_Q___SEEAdvancedSIMDmodifiedimmediate_00__8B_10__16B_11__4H_20__8H_21__2S_40__4S_41__2D_81const arg_Vn_arrangement_immh___SEEAdvancedSIMDmodifiedimmediate_0__8H_1__4S_2__2D_4const arg_Vn_arrangement_size_Q___4H_10__8H_11__2S_20__4S_21const arg_Vn_arrangement_size_Q___8B_00__16B_01const arg_Vn_arrangement_size_Q___8B_00__16B_01__1D_30__2D_31const arg_Vn_arrangement_size_Q___8B_00__16B_01__4H_10__8H_11const arg_Vn_arrangement_size_Q___8B_00__16B_01__4H_10__8H_11__2S_20__4S_21const arg_Vn_arrangement_size_Q___8B_00__16B_01__4H_10__8H_11__2S_20__4S_21__2D_31const arg_Vn_arrangement_size_Q___8B_00__16B_01__4H_10__8H_11__4S_21const arg_Vn_arrangement_size___2D_3const arg_Vn_arrangement_size___8H_0__4S_1__2D_2const arg_Vn_arrangement_sz_Q___2S_00__4S_01const arg_Vn_arrangement_sz_Q___2S_00__4S_01__2D_11const arg_Vn_arrangement_sz_Q___4H_00__8H_01__2S_10__4S_11const arg_Vn_arrangement_sz___2D_1const arg_Vn_arrangement_sz___2S_0__2D_1const arg_Vn_arrangement_sz___4S_0__2D_1const arg_Vt_1_arrangement_B_index__Q_S_size_1const arg_Vt_1_arrangement_D_index__Q_1const arg_Vt_1_arrangement_H_index__Q_S_size_1const arg_Vt_1_arrangement_S_index__Q_S_1const arg_Vt_1_arrangement_size_Q___8B_00__16B_01__4H_10__8H_11__2S_20__4S_21__1D_30__2D_31const arg_Vt_2_arrangement_B_index__Q_S_size_1const arg_Vt_2_arrangement_D_index__Q_1const arg_Vt_2_arrangement_H_index__Q_S_size_1const arg_Vt_2_arrangement_S_index__Q_S_1const arg_Vt_2_arrangement_size_Q___8B_00__16B_01__4H_10__8H_11__2S_20__4S_21__1D_30__2D_31const arg_Vt_2_arrangement_size_Q___8B_00__16B_01__4H_10__8H_11__2S_20__4S_21__2D_31const arg_Vt_3_arrangement_B_index__Q_S_size_1const arg_Vt_3_arrangement_D_index__Q_1const arg_Vt_3_arrangement_H_index__Q_S_size_1const arg_Vt_3_arrangement_S_index__Q_S_1const arg_Vt_3_arrangement_size_Q___8B_00__16B_01__4H_10__8H_11__2S_20__4S_21__1D_30__2D_31const arg_Vt_3_arrangement_size_Q___8B_00__16B_01__4H_10__8H_11__2S_20__4S_21__2D_31const arg_Vt_4_arrangement_B_index__Q_S_size_1const arg_Vt_4_arrangement_D_index__Q_1const arg_Vt_4_arrangement_H_index__Q_S_size_1const arg_Vt_4_arrangement_S_index__Q_S_1const arg_Vt_4_arrangement_size_Q___8B_00__16B_01__4H_10__8H_11__2S_20__4S_21__1D_30__2D_31const arg_Vt_4_arrangement_size_Q___8B_00__16B_01__4H_10__8H_11__2S_20__4S_21__2D_31const arg_Waconst arg_Wdconst arg_Wdsconst arg_Wmconst arg_Wm_extend__UXTB_0__UXTH_1__LSL_UXTW_2__UXTX_3__SXTB_4__SXTH_5__SXTW_6__SXTX_7__0_4const arg_Wm_shift__LSL_0__LSR_1__ASR_2__0_31const arg_Wm_shift__LSL_0__LSR_1__ASR_2__ROR_3__0_31const arg_Wnconst arg_Wnsconst arg_Wsconst arg_Wtconst arg_Wt2const arg_Xaconst arg_Xdconst arg_Xdsconst arg_Xmconst arg_Xm_shift__LSL_0__LSR_1__ASR_2__0_63const arg_Xm_shift__LSL_0__LSR_1__ASR_2__ROR_3__0_63const arg_Xnconst arg_Xnsconst arg_Xns_memconst arg_Xns_mem_extend_m__UXTW_2__LSL_3__SXTW_6__SXTX_7__0_0__1_1const arg_Xns_mem_extend_m__UXTW_2__LSL_3__SXTW_6__SXTX_7__0_0__2_1const arg_Xns_mem_extend_m__UXTW_2__LSL_3__SXTW_6__SXTX_7__0_0__3_1const arg_Xns_mem_extend_m__UXTW_2__LSL_3__SXTW_6__SXTX_7__0_0__4_1const arg_Xns_mem_extend_m__UXTW_2__LSL_3__SXTW_6__SXTX_7__absent_0__0_1const arg_Xns_mem_offsetconst arg_Xns_mem_optional_imm12_16_unsignedconst arg_Xns_mem_optional_imm12_1_unsignedconst arg_Xns_mem_optional_imm12_2_unsignedconst arg_Xns_mem_optional_imm12_4_unsignedconst arg_Xns_mem_optional_imm12_8_unsignedconst arg_Xns_mem_optional_imm7_16_signedconst arg_Xns_mem_optional_imm7_4_signedconst arg_Xns_mem_optional_imm7_8_signedconst arg_Xns_mem_optional_imm9_1_signedconst arg_Xns_mem_post_Q__16_0__32_1const arg_Xns_mem_post_Q__24_0__48_1const arg_Xns_mem_post_Q__32_0__64_1const arg_Xns_mem_post_Q__8_0__16_1const arg_Xns_mem_post_Xmconst arg_Xns_mem_post_fixedimm_1const arg_Xns_mem_post_fixedimm_12const arg_Xns_mem_post_fixedimm_16const arg_Xns_mem_post_fixedimm_2const arg_Xns_mem_post_fixedimm_24const arg_Xns_mem_post_fixedimm_3const arg_Xns_mem_post_fixedimm_32const arg_Xns_mem_post_fixedimm_4const arg_Xns_mem_post_fixedimm_6const arg_Xns_mem_post_fixedimm_8const arg_Xns_mem_post_imm7_16_signedconst arg_Xns_mem_post_imm7_4_signedconst arg_Xns_mem_post_imm7_8_signedconst arg_Xns_mem_post_imm9_1_signedconst arg_Xns_mem_post_size__1_0__2_1__4_2__8_3const arg_Xns_mem_post_size__2_0__4_1__8_2__16_3const arg_Xns_mem_post_size__3_0__6_1__12_2__24_3const arg_Xns_mem_post_size__4_0__8_1__16_2__32_3const arg_Xns_mem_wb_imm7_16_signedconst arg_Xns_mem_wb_imm7_4_signedconst arg_Xns_mem_wb_imm7_8_signedconst arg_Xns_mem_wb_imm9_1_signedconst arg_Xsconst arg_Xtconst arg_Xt2const arg_cond_AllowALNV_Normalconst arg_cond_NotAllowALNV_Invertconst arg_conditionalconst arg_immediate_0_127_CRm_op2const arg_immediate_0_15_CRmconst arg_immediate_0_15_nzcvconst arg_immediate_0_31_imm5const arg_immediate_0_31_immrconst arg_immediate_0_31_immsconst arg_immediate_0_63_b5_b40const arg_immediate_0_63_immh_immb__UIntimmhimmb64_8const arg_immediate_0_63_immrconst arg_immediate_0_63_immsconst arg_immediate_0_65535_imm16const arg_immediate_0_7_op1const arg_immediate_0_7_op2const arg_immediate_0_width_immh_immb__SEEAdvancedSIMDmodifiedimmediate_0__UIntimmhimmb8_1__UIntimmhimmb16_2__UIntimmhimmb32_4const arg_immediate_0_width_immh_immb__SEEAdvancedSIMDmodifiedimmediate_0__UIntimmhimmb8_1__UIntimmhimmb16_2__UIntimmhimmb32_4__UIntimmhimmb64_8const arg_immediate_0_width_m1_immh_immb__UIntimmhimmb8_1__UIntimmhimmb16_2__UIntimmhimmb32_4__UIntimmhimmb64_8const arg_immediate_0_width_size__8_0__16_1__32_2const arg_immediate_1_64_immh_immb__128UIntimmhimmb_8const arg_immediate_1_width_immh_immb__16UIntimmhimmb_1__32UIntimmhimmb_2__64UIntimmhimmb_4const arg_immediate_1_width_immh_immb__SEEAdvancedSIMDmodifiedimmediate_0__16UIntimmhimmb_1__32UIntimmhimmb_2__64UIntimmhimmb_4const arg_immediate_1_width_immh_immb__SEEAdvancedSIMDmodifiedimmediate_0__16UIntimmhimmb_1__32UIntimmhimmb_2__64UIntimmhimmb_4__128UIntimmhimmb_8const arg_immediate_8x8_a_b_c_d_e_f_g_hconst arg_immediate_ASR_SBFM_32M_bitfield_0_31_immrconst arg_immediate_ASR_SBFM_64M_bitfield_0_63_immrconst arg_immediate_BFI_BFM_32M_bitfield_lsb_32_immrconst arg_immediate_BFI_BFM_32M_bitfield_width_32_immsconst arg_immediate_BFI_BFM_64M_bitfield_lsb_64_immrconst arg_immediate_BFI_BFM_64M_bitfield_width_64_immsconst arg_immediate_BFXIL_BFM_32M_bitfield_lsb_32_immrconst arg_immediate_BFXIL_BFM_32M_bitfield_width_32_immsconst arg_immediate_BFXIL_BFM_64M_bitfield_lsb_64_immrconst arg_immediate_BFXIL_BFM_64M_bitfield_width_64_immsconst arg_immediate_LSL_UBFM_32M_bitfield_0_31_immrconst arg_immediate_LSL_UBFM_64M_bitfield_0_63_immrconst arg_immediate_LSR_UBFM_32M_bitfield_0_31_immrconst arg_immediate_LSR_UBFM_64M_bitfield_0_63_immrconst arg_immediate_MSL__a_b_c_d_e_f_g_h_cmode__8_0__16_1const arg_immediate_OptLSLZero__a_b_c_d_e_f_g_hconst arg_immediate_OptLSL__a_b_c_d_e_f_g_h_cmode__0_0__8_1const arg_immediate_OptLSL__a_b_c_d_e_f_g_h_cmode__0_0__8_1__16_2__24_3const arg_immediate_OptLSL_amount_16_0_16const arg_immediate_OptLSL_amount_16_0_48const arg_immediate_SBFIZ_SBFM_32M_bitfield_lsb_32_immrconst arg_immediate_SBFIZ_SBFM_32M_bitfield_width_32_immsconst arg_immediate_SBFIZ_SBFM_64M_bitfield_lsb_64_immrconst arg_immediate_SBFIZ_SBFM_64M_bitfield_width_64_immsconst arg_immediate_SBFX_SBFM_32M_bitfield_lsb_32_immrconst arg_immediate_SBFX_SBFM_32M_bitfield_width_32_immsconst arg_immediate_SBFX_SBFM_64M_bitfield_lsb_64_immrconst arg_immediate_SBFX_SBFM_64M_bitfield_width_64_immsconst arg_immediate_UBFIZ_UBFM_32M_bitfield_lsb_32_immrconst arg_immediate_UBFIZ_UBFM_32M_bitfield_width_32_immsconst arg_immediate_UBFIZ_UBFM_64M_bitfield_lsb_64_immrconst arg_immediate_UBFIZ_UBFM_64M_bitfield_width_64_immsconst arg_immediate_UBFX_UBFM_32M_bitfield_lsb_32_immrconst arg_immediate_UBFX_UBFM_32M_bitfield_width_32_immsconst arg_immediate_UBFX_UBFM_64M_bitfield_lsb_64_immrconst arg_immediate_UBFX_UBFM_64M_bitfield_width_64_immsconst arg_immediate_bitmask_32_imms_immrconst arg_immediate_bitmask_64_N_imms_immrconst arg_immediate_exp_3_pre_4_a_b_c_d_e_f_g_hconst arg_immediate_exp_3_pre_4_imm8const arg_immediate_fbits_min_1_max_0_sub_0_immh_immb__64UIntimmhimmb_4__128UIntimmhimmb_8const arg_immediate_fbits_min_1_max_0_sub_0_immh_immb__SEEAdvancedSIMDmodifiedimmediate_0__64UIntimmhimmb_4__128UIntimmhimmb_8const arg_immediate_fbits_min_1_max_32_sub_64_scaleconst arg_immediate_fbits_min_1_max_64_sub_64_scaleconst arg_immediate_floatzeroconst arg_immediate_index_Q_imm4__imm4lt20gt_00__imm4_10const arg_immediate_optional_0_15_CRmconst arg_immediate_optional_0_65535_imm16const arg_immediate_shift_32_implicit_imm16_hwconst arg_immediate_shift_32_implicit_inverse_imm16_hwconst arg_immediate_shift_64_implicit_imm16_hwconst arg_immediate_shift_64_implicit_inverse_imm16_hwconst arg_immediate_zeroconst arg_option_DMB_BO_system_CRmconst arg_option_DSB_BO_system_CRmconst arg_option_ISB_BI_system_CRmconst arg_prfop_Rtconst arg_pstatefield_op1_op2__SPSel_05__DAIFSet_36__DAIFClr_37const arg_slabel_imm14_2const arg_slabel_imm19_2const arg_slabel_imm26_2const arg_slabel_immhi_immlo_0const arg_slabel_immhi_immlo_12const arg_sysop_AT_SYS_CR_systemconst arg_sysop_DC_SYS_CR_systemconst arg_sysop_IC_SYS_CR_systemconst arg_sysop_SYS_CR_systemconst arg_sysop_TLBI_SYS_CR_systemconst arg_sysreg_o0_op1_CRn_CRm_op2const asrvar decoderCover []boolvar errShort = *ast.CallExprvar errUnknown = *ast.CallExprfloating point instructions without "F" prefix.
var fOpsWithoutFPrefix = map[Op]bool{...}var instFormats = [...]instFormat{...}const lslconst lsrNo need add "W" to opcode suffix. Opcode must be inserted in ascending order.
var noSuffixOpSet = *ast.CallExprvar opstr = [...]string{...}const rorconst sxtbconst sxthconst sxtwconst sxtxvar sysInstsAttrs = map[sysInstFields]sysInstAttrs{...}const sys_AT sys = iotaconst sys_DCconst sys_ICconst sys_SYSconst sys_TLBIconst uxtbconst uxthconst uxtwconst uxtxAn AddrMode is an ARM addressing mode.
type AddrMode uint8An Args holds the instruction arguments. If an instruction has fewer than 5 arguments, the final elements in the array are nil.
type Args [5]Argtype Arrangement uint8type ExtShift uint8An Imm_c is an integer constant for SYS/SYSL/TLBI instruction.
type Imm_c uint8An Imm_clrex is an integer constant for CLREX instruction.
type Imm_clrex uint8An Imm_dcps is an integer constant for DCPS[123] instruction.
type Imm_dcps uint16An Imm_hint is an integer constant for HINT instruction.
type Imm_hint uint8An Imm_option is an integer constant for DMB/DSB/ISB instruction.
type Imm_option uint8An Imm_prfop is an integer constant for PRFM instruction.
type Imm_prfop uint8An Op is an ARM64 opcode.
type Op uint16A PCRel describes a memory address (usually a code label) as a distance relative to the program counter.
type PCRel int64type Pstatefield uint8A Reg is a single register. The zero value denotes W0, not the absence of a register.
type Reg uint16A RegSP represent a register and X31/W31 is regarded as SP/WSP.
type RegSP Regtype instArg uint16type instArgs [5]instArgtype sys uint8An Arg is a single instruction argument, one of these types: Reg, RegSP, ImmShift, RegExtshiftAmount, PCRel, MemImmediate, MemExtend, Imm, Imm64, Imm_hint, Imm_clrex, Imm_dcps, Cond, Imm_c, Imm_option, Imm_prfop, Pstatefield, Systemreg, Imm_fp RegisterWithArrangement, RegisterWithArrangementAndIndex.
type Arg interface {
isArg()
String() string
}Standard conditions.
type Cond struct {
Value uint8
Invert bool
}An Imm is an integer constant.
type Imm struct {
Imm uint32
Decimal bool
}type Imm64 struct {
Imm uint64
Decimal bool
}type ImmShift struct {
imm uint16
shift uint8
}An Imm_fp is a signed floating-point constant.
type Imm_fp struct {
s uint8
exp int8
pre uint8
}An Inst is a single instruction.
type Inst struct {
Op Op
Enc uint32
Args Args
}A MemExtend is a memory reference made up of a base R and index expression X. The effective memory address is R or R+X depending on Index, Extend and Amount.
type MemExtend struct {
Base RegSP
Index Reg
Extend ExtShift
Amount uint8
ShiftMustBeZero bool
}A MemImmediate is a memory reference made up of a base R and immediate X. The effective memory address is R or R+X depending on AddrMode.
type MemImmediate struct {
Base RegSP
Mode AddrMode
imm int32
}type RegExtshiftAmount struct {
reg Reg
extShift ExtShift
amount uint8
show_zero bool
}Register with arrangement: 
type RegisterWithArrangement struct {
r Reg
a Arrangement
cnt uint8
}Register with arrangement and index:
type RegisterWithArrangementAndIndex struct {
r Reg
a Arrangement
index uint8
cnt uint8
}type Systemreg struct {
op0 uint8
op1 uint8
cn uint8
cm uint8
op2 uint8
}An instFormat describes the format of an instruction encoding. An instruction with 32-bit value x matches the format if x&mask == value and the predicator: canDecode(x) return true.
type instFormat struct {
mask uint32
value uint32
op Op
args instArgs
canDecode func(instr uint32) bool
}type sysInstAttrs struct {
typ sys
name string
hasOperand2 bool
}type sysInstFields struct {
op1 uint8
cn uint8
cm uint8
op2 uint8
}type sysOp struct {
op sysInstFields
r Reg
hasOperand2 bool
}Decode decodes the 4 bytes in src as a single instruction.
func Decode(src []byte) (inst Inst, err error)GNUSyntax returns the GNU assembler syntax for the instruction, as defined by GNU binutils. This form typically matches the syntax defined in the ARM Reference Manual.
func GNUSyntax(inst Inst) stringGoSyntax returns the Go assembler syntax for the instruction. The syntax was originally defined by Plan 9. The pc is the program counter of the instruction, used for expanding PC-relative addresses into absolute ones. The symname function queries the symbol table for the program being disassembled. Given a target address it returns the name and base address of the symbol containing the target, if any; otherwise it returns "", 0. The reader text should read from the text segment using text addresses as offsets; it is used to display pc-relative loads as constant loads.
func GoSyntax(inst Inst, pc uint64, symname func(uint64) (string, uint64), text io.ReaderAt) stringfunc (rea RegExtshiftAmount) String() stringfunc (op Op) String() stringfunc (c Cond) String() stringfunc (i Imm_dcps) String() stringfunc (i Imm_prfop) String() stringfunc (i Imm) String() stringfunc (i Imm_clrex) String() stringfunc (p Pstatefield) String() stringfunc (i Imm_hint) String() stringfunc (s Systemreg) String() stringfunc (i Imm64) String() stringfunc (r RegisterWithArrangement) String() stringfunc (i Imm_fp) String() stringfunc (i Imm_c) String() stringfunc (m MemExtend) String() stringfunc (i Imm_option) String() stringfunc (r RegisterWithArrangementAndIndex) String() stringfunc (m MemImmediate) String() stringfunc (i Inst) String() stringfunc (r Reg) String() stringfunc (r RegSP) String() stringfunc (is ImmShift) String() stringfunc (s sysOp) String() stringfunc (extShift ExtShift) String() stringfunc (s sysInstFields) String() stringfunc (a Arrangement) String() (result string)func (r PCRel) String() stringfunc at_sys_cr_system_cond(instr uint32) boolfunc bfi_bfm_32m_bitfield_cond(instr uint32) boolfunc bfi_bfm_64m_bitfield_cond(instr uint32) boolfunc bfxil_bfm_32m_bitfield_cond(instr uint32) boolfunc bfxil_bfm_64m_bitfield_cond(instr uint32) boolfunc bfxpreferred_4(sf uint32, opc1 uint32, imms uint32, immr uint32) boolfunc bit_count(x uint32) uint8func cinc_csinc_32_condsel_cond(instr uint32) boolfunc cinc_csinc_64_condsel_cond(instr uint32) boolfunc cinv_csinv_32_condsel_cond(instr uint32) boolfunc cinv_csinv_64_condsel_cond(instr uint32) boolfunc cneg_csneg_32_condsel_cond(instr uint32) boolfunc cneg_csneg_64_condsel_cond(instr uint32) boolfunc csinc_general_cond(instr uint32) boolfunc csinv_general_cond(instr uint32) boolfunc dc_sys_cr_system_cond(instr uint32) booldecodeArg decodes the arg described by aop from the instruction bits x. It returns nil if x cannot be decoded according to aop.
func decodeArg(aop instArg, x uint32) Argfunc extract_bit(value uint32, bit uint32) uint32func fcvtzs_asimdshf_c_cond(instr uint32) boolfunc fcvtzs_asisdshf_c_cond(instr uint32) boolfunc fcvtzu_asimdshf_c_cond(instr uint32) boolfunc fcvtzu_asisdshf_c_cond(instr uint32) boolfunc (s sysInstFields) getAttrs() sysInstAttrsfunc (s sysInstFields) getType() sysfunc handle_ExtendedRegister(x uint32, has_width bool) Argfunc handle_ImmediateShiftedRegister(x uint32, max uint8, is_w bool, has_ror bool) Argfunc handle_MemExtend(x uint32, mult uint8, absent bool) Argfunc handle_bitmasks(x uint32, datasize uint8) Argfunc ic_sys_cr_system_cond(instr uint32) boolfunc init()func (MemImmediate) isArg()func (Imm_prfop) isArg()func (Imm_hint) isArg()func (Imm_fp) isArg()func (Imm_option) isArg()func (RegisterWithArrangement) isArg()func (Imm) isArg()func (RegisterWithArrangementAndIndex) isArg()func (MemExtend) isArg()func (s sysOp) isArg()func (Imm_clrex) isArg()func (s sysInstFields) isArg()func (PCRel) isArg()func (Cond) isArg()func (RegExtshiftAmount) isArg()func (Systemreg) isArg()func (Pstatefield) isArg()func (ImmShift) isArg()func (Imm64) isArg()func (RegSP) isArg()func (Imm_dcps) isArg()func (Reg) isArg()func (Imm_c) isArg()func is_ones_n16(x uint32) boolfunc is_zero(x uint32) boolfunc lsl_ubfm_32m_bitfield_cond(instr uint32) boolfunc lsl_ubfm_64m_bitfield_cond(instr uint32) boolfunc mov_add_32_addsub_imm_cond(instr uint32) boolfunc mov_add_64_addsub_imm_cond(instr uint32) boolfunc mov_movn_32_movewide_cond(instr uint32) boolfunc mov_movn_64_movewide_cond(instr uint32) boolfunc mov_movz_32_movewide_cond(instr uint32) boolfunc mov_movz_64_movewide_cond(instr uint32) boolfunc mov_orr_32_log_imm_cond(instr uint32) boolfunc mov_orr_64_log_imm_cond(instr uint32) boolfunc mov_orr_asimdsame_only_cond(instr uint32) boolfunc mov_umov_asimdins_w_w_cond(instr uint32) boolfunc mov_umov_asimdins_x_x_cond(instr uint32) boolfunc move_wide_preferred_4(sf uint32, N uint32, imms uint32, immr uint32) boolfunc plan9Arg(inst *Inst, pc uint64, symname func(uint64) (string, uint64), arg Arg) stringConvert a general-purpose register to plan9 assembly format.
func plan9gpr(r Reg) stringfunc ror_extr_32_extract_cond(instr uint32) boolfunc ror_extr_64_extract_cond(instr uint32) boolfunc rshrn_asimdshf_n_cond(instr uint32) boolfunc sbfiz_sbfm_32m_bitfield_cond(instr uint32) boolfunc sbfiz_sbfm_64m_bitfield_cond(instr uint32) boolfunc sbfx_sbfm_32m_bitfield_cond(instr uint32) boolfunc sbfx_sbfm_64m_bitfield_cond(instr uint32) boolfunc scvtf_asimdshf_c_cond(instr uint32) boolfunc scvtf_asisdshf_c_cond(instr uint32) boolfunc shl_asimdshf_r_cond(instr uint32) boolfunc shl_asisdshf_r_cond(instr uint32) boolfunc shrn_asimdshf_n_cond(instr uint32) boolfunc sli_asimdshf_r_cond(instr uint32) boolfunc sli_asisdshf_r_cond(instr uint32) boolfunc sqrshrn_asimdshf_n_cond(instr uint32) boolfunc sqrshrn_asisdshf_n_cond(instr uint32) boolfunc sqrshrun_asimdshf_n_cond(instr uint32) boolfunc sqrshrun_asisdshf_n_cond(instr uint32) boolfunc sqshl_asimdshf_r_cond(instr uint32) boolfunc sqshl_asisdshf_r_cond(instr uint32) boolfunc sqshlu_asimdshf_r_cond(instr uint32) boolfunc sqshlu_asisdshf_r_cond(instr uint32) boolfunc sqshrn_asimdshf_n_cond(instr uint32) boolfunc sqshrn_asisdshf_n_cond(instr uint32) boolfunc sqshrun_asimdshf_n_cond(instr uint32) boolfunc sqshrun_asisdshf_n_cond(instr uint32) boolfunc sri_asimdshf_r_cond(instr uint32) boolfunc sri_asisdshf_r_cond(instr uint32) boolfunc srshr_asimdshf_r_cond(instr uint32) boolfunc srshr_asisdshf_r_cond(instr uint32) boolfunc srsra_asimdshf_r_cond(instr uint32) boolfunc srsra_asisdshf_r_cond(instr uint32) boolfunc sshll_asimdshf_l_cond(instr uint32) boolfunc sshr_asimdshf_r_cond(instr uint32) boolfunc sshr_asisdshf_r_cond(instr uint32) boolfunc ssra_asimdshf_r_cond(instr uint32) boolfunc ssra_asisdshf_r_cond(instr uint32) boolfunc sxtl_sshll_asimdshf_l_cond(instr uint32) boolfunc sys_op_4(op1 uint32, crn uint32, crm uint32, op2 uint32) sysfunc tlbi_sys_cr_system_cond(instr uint32) boolfunc ubfiz_ubfm_32m_bitfield_cond(instr uint32) boolfunc ubfiz_ubfm_64m_bitfield_cond(instr uint32) boolfunc ubfx_ubfm_32m_bitfield_cond(instr uint32) boolfunc ubfx_ubfm_64m_bitfield_cond(instr uint32) boolfunc ucvtf_asimdshf_c_cond(instr uint32) boolfunc ucvtf_asisdshf_c_cond(instr uint32) boolfunc uqrshrn_asimdshf_n_cond(instr uint32) boolfunc uqrshrn_asisdshf_n_cond(instr uint32) boolfunc uqshl_asimdshf_r_cond(instr uint32) boolfunc uqshl_asisdshf_r_cond(instr uint32) boolfunc uqshrn_asimdshf_n_cond(instr uint32) boolfunc uqshrn_asisdshf_n_cond(instr uint32) boolfunc urshr_asimdshf_r_cond(instr uint32) boolfunc urshr_asisdshf_r_cond(instr uint32) boolfunc ursra_asimdshf_r_cond(instr uint32) boolfunc ursra_asisdshf_r_cond(instr uint32) boolfunc ushll_asimdshf_l_cond(instr uint32) boolfunc ushr_asimdshf_r_cond(instr uint32) boolfunc ushr_asisdshf_r_cond(instr uint32) boolfunc usra_asimdshf_r_cond(instr uint32) boolfunc usra_asisdshf_r_cond(instr uint32) boolfunc uxtl_ushll_asimdshf_l_cond(instr uint32) boolGenerated with Arrow