Imports #
"fmt"
"strings"
"bytes"
"fmt"
"strings"
"bytes"
"fmt"
"fmt"
"strings"
"encoding/binary"
"fmt"
"log"
"sort"
"sync"
"fmt"
"strings"
"bytes"
"fmt"
"strings"
"bytes"
"fmt"
"fmt"
"strings"
"encoding/binary"
"fmt"
"log"
"sort"
"sync"
const A0const A1const A2const A3const A4const A5const A6const A7const ADDconst ADDCconst ADDCCconst ADDCCCconst ADDCOconst ADDCOCCconst ADDEconst ADDECCconst ADDEOconst ADDEOCCconst ADDEXconst ADDG6Sconst ADDIconst ADDICconst ADDICCCconst ADDISconst ADDMEconst ADDMECCconst ADDMEOconst ADDMEOCCconst ADDOconst ADDOCCconst ADDPCISconst ADDZEconst ADDZECCconst ADDZEOconst ADDZEOCCconst ANDconst ANDCconst ANDCCconst ANDCCCconst ANDICCconst ANDISCCconst Bconst BAconst BCconst BCAconst BCCTRconst BCCTRLconst BCDADDCCconst BCDCFNCCconst BCDCFSQCCconst BCDCFZCCconst BCDCPSGNCCconst BCDCTNCCconst BCDCTSQCCconst BCDCTZCCconst BCDSCCconst BCDSETSGNCCconst BCDSRCCconst BCDSUBCCconst BCDTRUNCCCconst BCDUSCCconst BCDUTRUNCCCconst BCLconst BCLAconst BCLRconst BCLRLconst BCTARconst BCTARLconst BLconst BLAconst BPERMDconst BRDconst BRHconst BRWconst CBCDTDconst CDTBCDconst CFUGEDconst CLRBHRBconst CMPconst CMPBconst CMPDconst CMPDIconst CMPEQBconst CMPIconst CMPLconst CMPLDconst CMPLDIconst CMPLIconst CMPLWconst CMPLWIconst CMPRBconst CMPWconst CMPWIconst CNTLZDconst CNTLZDCCconst CNTLZDMconst CNTLZWconst CNTLZWCCconst CNTTZDconst CNTTZDCCconst CNTTZDMconst CNTTZWconst CNTTZWCCconst COPYconst CPABORTCondition Register Fields
const CR0const CR1const CR2const CR3const CR4const CR5const CR6const CR7const CRANDconst CRANDCconst CREQVconst CRNANDconst CRNORconst CRORconst CRORCconst CRXORconst Cond0EQconst Cond0GTCondition Regster bits
const Cond0LTconst Cond0SOconst Cond1EQconst Cond1GTconst Cond1LTconst Cond1SOconst Cond2EQconst Cond2GTconst Cond2LTconst Cond2SOconst Cond3EQconst Cond3GTconst Cond3LTconst Cond3SOconst Cond4EQconst Cond4GTconst Cond4LTconst Cond4SOconst Cond5EQconst Cond5GTconst Cond5LTconst Cond5SOconst Cond6EQconst Cond6GTconst Cond6LTconst Cond6SOconst Cond7EQconst Cond7GTconst Cond7LTconst Cond7SOconst DADDconst DADDCCconst DADDQconst DADDQCCconst DARNconst DCBFconst DCBSTconst DCBTconst DCBTSTconst DCBZconst DCFFIXconst DCFFIXCCconst DCFFIXQconst DCFFIXQCCconst DCFFIXQQconst DCMPOconst DCMPOQconst DCMPUconst DCMPUQconst DCTDPconst DCTDPCCconst DCTFIXconst DCTFIXCCconst DCTFIXQconst DCTFIXQCCconst DCTFIXQQconst DCTQPQconst DCTQPQCCconst DDEDPDconst DDEDPDCCconst DDEDPDQconst DDEDPDQCCconst DDIVconst DDIVCCconst DDIVQconst DDIVQCCconst DENBCDconst DENBCDCCconst DENBCDQconst DENBCDQCCconst DIEXconst DIEXCCconst DIEXQconst DIEXQCCconst DIVDconst DIVDCCconst DIVDEconst DIVDECCconst DIVDEOconst DIVDEOCCconst DIVDEUconst DIVDEUCCconst DIVDEUOconst DIVDEUOCCconst DIVDOconst DIVDOCCconst DIVDUconst DIVDUCCconst DIVDUOconst DIVDUOCCconst DIVWconst DIVWCCconst DIVWEconst DIVWECCconst DIVWEOconst DIVWEOCCconst DIVWEUconst DIVWEUCCconst DIVWEUOconst DIVWEUOCCconst DIVWOconst DIVWOCCconst DIVWUconst DIVWUCCconst DIVWUOconst DIVWUOCCconst DMULconst DMULCCconst DMULQconst DMULQCCconst DQUAconst DQUACCconst DQUAIconst DQUAICCconst DQUAIQconst DQUAIQCCconst DQUAQconst DQUAQCCconst DRDPQconst DRDPQCCconst DRINTNconst DRINTNCCconst DRINTNQconst DRINTNQCCconst DRINTXconst DRINTXCCconst DRINTXQconst DRINTXQCCconst DRRNDconst DRRNDCCconst DRRNDQconst DRRNDQCCconst DRSPconst DRSPCCconst DSCLIconst DSCLICCconst DSCLIQconst DSCLIQCCconst DSCRIconst DSCRICCconst DSCRIQconst DSCRIQCCconst DSUBconst DSUBCCconst DSUBQconst DSUBQCCconst DTSTDCconst DTSTDCQconst DTSTDGconst DTSTDGQconst DTSTEXconst DTSTEXQconst DTSTSFconst DTSTSFIconst DTSTSFIQconst DTSTSFQconst DXEXconst DXEXCCconst DXEXQconst DXEXQCCconst EIEIOconst EQVconst EQVCCconst EXTSBconst EXTSBCCconst EXTSHconst EXTSHCCconst EXTSWconst EXTSWCCconst EXTSWSLIconst EXTSWSLICCconst F0const F1const F10const F11const F12const F13const F14const F15const F16const F17const F18const F19const F2const F20const F21const F22const F23const F24const F25const F26const F27const F28const F29const F3const F30const F31const F4const F5const F6const F7const F8const F9const FABSconst FABSCCconst FADDconst FADDCCconst FADDSconst FADDSCCconst FCFIDconst FCFIDCCconst FCFIDSconst FCFIDSCCconst FCFIDUconst FCFIDUCCconst FCFIDUSconst FCFIDUSCCconst FCMPOconst FCMPUconst FCPSGNconst FCPSGNCCconst FCTIDconst FCTIDCCconst FCTIDUconst FCTIDUCCconst FCTIDUZconst FCTIDUZCCconst FCTIDZconst FCTIDZCCconst FCTIWconst FCTIWCCconst FCTIWUconst FCTIWUCCconst FCTIWUZconst FCTIWUZCCconst FCTIWZconst FCTIWZCCconst FDIVconst FDIVCCconst FDIVSconst FDIVSCCconst FMADDconst FMADDCCconst FMADDSconst FMADDSCCconst FMRconst FMRCCconst FMRGEWconst FMRGOWconst FMSUBconst FMSUBCCconst FMSUBSconst FMSUBSCCconst FMULconst FMULCCconst FMULSconst FMULSCCconst FNABSconst FNABSCCconst FNEGconst FNEGCCconst FNMADDconst FNMADDCCconst FNMADDSconst FNMADDSCCconst FNMSUBconst FNMSUBCCconst FNMSUBSconst FNMSUBSCCconst FREconst FRECCconst FRESconst FRESCCconst FRIMconst FRIMCCconst FRINconst FRINCCconst FRIPconst FRIPCCconst FRIZconst FRIZCCconst FRSPconst FRSPCCconst FRSQRTEconst FRSQRTECCconst FRSQRTESconst FRSQRTESCCconst FSELconst FSELCCconst FSQRTconst FSQRTCCconst FSQRTSconst FSQRTSCCconst FSUBconst FSUBCCconst FSUBSconst FSUBSCCconst FTDIVconst FTSQRTconst HASHCHKconst HASHCHKPconst HASHSTconst HASHSTPconst HRFIDconst ICBIconst ICBTconst ISELconst ISYNCconst LBARXconst LBZconst LBZCIXconst LBZUconst LBZUXconst LBZXconst LDconst LDARXconst LDATconst LDBRXconst LDCIXconst LDUconst LDUXconst LDXconst LFDconst LFDPconst LFDPXconst LFDUconst LFDUXconst LFDXconst LFIWAXconst LFIWZXconst LFSconst LFSUconst LFSUXconst LFSXconst LHAconst LHARXconst LHAUconst LHAUXconst LHAXconst LHBRXconst LHZconst LHZCIXconst LHZUconst LHZUXconst LHZXconst LIconst LISconst LMWconst LQconst LQARXconst LSWIconst LSWXconst LVEBXconst LVEHXconst LVEWXconst LVSLconst LVSRconst LVXconst LVXLconst LWAconst LWARXconst LWATconst LWAUXconst LWAXconst LWBRXconst LWZconst LWZCIXconst LWZUconst LWZUXconst LWZXconst LXSDconst LXSDXconst LXSIBZXconst LXSIHZXconst LXSIWAXconst LXSIWZXconst LXSSPconst LXSSPXconst LXVconst LXVB16Xconst LXVD2Xconst LXVDSXconst LXVH8Xconst LXVKQconst LXVLconst LXVLLconst LXVPconst LXVPXconst LXVRBXconst LXVRDXconst LXVRHXconst LXVRWXconst LXVW4Xconst LXVWSXconst LXVXconst MADDHDconst MADDHDUconst MADDLDconst MCRFconst MCRFSconst MCRXRXconst MFBHRBEconst MFCRconst MFFSconst MFFSCCconst MFFSCDRNconst MFFSCDRNIconst MFFSCEconst MFFSCRNconst MFFSCRNIconst MFFSLconst MFMSRconst MFOCRFconst MFSPRconst MFTBconst MFVSCRconst MFVSRDconst MFVSRLDconst MFVSRWZconst MODSDconst MODSWconst MODUDconst MODUWconst MSGCLRconst MSGCLRPconst MSGCLRUconst MSGSNDconst MSGSNDPconst MSGSNDUconst MSGSYNCconst MTCRFconst MTFSB0const MTFSB0CCconst MTFSB1const MTFSB1CCconst MTFSFconst MTFSFCCconst MTFSFIconst MTFSFICCconst MTMSRconst MTMSRDconst MTOCRFconst MTSPRconst MTVSCRconst MTVSRBMconst MTVSRBMIconst MTVSRDconst MTVSRDDconst MTVSRDMconst MTVSRHMconst MTVSRQMconst MTVSRWAconst MTVSRWMconst MTVSRWSconst MTVSRWZconst MULHDconst MULHDCCconst MULHDUconst MULHDUCCconst MULHWconst MULHWCCconst MULHWUconst MULHWUCCconst MULLDconst MULLDCCconst MULLDOconst MULLDOCCconst MULLIconst MULLWconst MULLWCCconst MULLWOconst MULLWOCCconst NANDconst NANDCCconst NEGconst NEGCCconst NEGOconst NEGOCCconst NOPconst NORconst NORCCconst ORconst ORCconst ORCCconst ORCCCconst ORIconst ORISconst PADDIconst PASTECCconst PDEPDconst PEXTDconst PLBZconst PLDconst PLFDconst PLFSconst PLHAconst PLHZconst PLQconst PLWAconst PLWZconst PLXSDconst PLXSSPconst PLXVconst PLXVPconst PMXVBF16GER2const PMXVBF16GER2NNconst PMXVBF16GER2NPconst PMXVBF16GER2PNconst PMXVBF16GER2PPconst PMXVF16GER2const PMXVF16GER2NNconst PMXVF16GER2NPconst PMXVF16GER2PNconst PMXVF16GER2PPconst PMXVF32GERconst PMXVF32GERNNconst PMXVF32GERNPconst PMXVF32GERPNconst PMXVF32GERPPconst PMXVF64GERconst PMXVF64GERNNconst PMXVF64GERNPconst PMXVF64GERPNconst PMXVF64GERPPconst PMXVI16GER2const PMXVI16GER2PPconst PMXVI16GER2Sconst PMXVI16GER2SPPconst PMXVI4GER8const PMXVI4GER8PPconst PMXVI8GER4const PMXVI8GER4PPconst PMXVI8GER4SPPconst PNOPconst POPCNTBconst POPCNTDconst POPCNTWconst PRTYDconst PRTYWconst PSTBconst PSTDconst PSTFDconst PSTFSconst PSTHconst PSTQconst PSTWconst PSTXSDconst PSTXSSPconst PSTXVconst PSTXVPconst R0const R1const R10const R11const R12const R13const R14const R15const R16const R17const R18const R19const R2const R20const R21const R22const R23const R24const R25const R26const R27const R28const R29const R3const R30const R31const R4const R5const R6const R7const R8const R9const RFEBBconst RFIDconst RFSCVconst RLDCLconst RLDCLCCconst RLDCRconst RLDCRCCconst RLDICconst RLDICCCconst RLDICLconst RLDICLCCconst RLDICRconst RLDICRCCconst RLDIMIconst RLDIMICCconst RLWIMIconst RLWIMICCconst RLWINMconst RLWINMCCconst RLWNMconst RLWNMCCconst SCconst SCVconst SETBconst SETBCconst SETBCRconst SETNBCconst SETNBCRconst SLBFEECCconst SLBIAconst SLBIAGconst SLBIEconst SLBIEGconst SLBMFEEconst SLBMFEVconst SLBMTEconst SLBSYNCconst SLDconst SLDCCconst SLWconst SLWCCconst SRADconst SRADCCconst SRADIconst SRADICCconst SRAWconst SRAWCCconst SRAWIconst SRAWICCconst SRDconst SRDCCconst SRWconst SRWCCconst STBconst STBCIXconst STBCXCCconst STBUconst STBUXconst STBXconst STDconst STDATconst STDBRXconst STDCIXconst STDCXCCconst STDUconst STDUXconst STDXconst STFDconst STFDPconst STFDPXconst STFDUconst STFDUXconst STFDXconst STFIWXconst STFSconst STFSUconst STFSUXconst STFSXconst STHconst STHBRXconst STHCIXconst STHCXCCconst STHUconst STHUXconst STHXconst STMWconst STOPconst STQconst STQCXCCconst STSWIconst STSWXconst STVEBXconst STVEHXconst STVEWXconst STVXconst STVXLconst STWconst STWATconst STWBRXconst STWCIXconst STWCXCCconst STWUconst STWUXconst STWXconst STXSDconst STXSDXconst STXSIBXconst STXSIHXconst STXSIWXconst STXSSPconst STXSSPXconst STXVconst STXVB16Xconst STXVD2Xconst STXVH8Xconst STXVLconst STXVLLconst STXVPconst STXVPXconst STXVRBXconst STXVRDXconst STXVRHXconst STXVRWXconst STXVW4Xconst STXVXconst SUBFconst SUBFCconst SUBFCCconst SUBFCCCconst SUBFCOconst SUBFCOCCconst SUBFEconst SUBFECCconst SUBFEOconst SUBFEOCCconst SUBFICconst SUBFMEconst SUBFMECCconst SUBFMEOconst SUBFMEOCCconst SUBFOconst SUBFOCCconst SUBFZEconst SUBFZECCconst SUBFZEOconst SUBFZEOCCconst SYNCconst SpRegZero SpReg = 0const TDconst TDIconst TLBIEconst TLBIELconst TLBSYNCconst TWconst TWIconst TypeCondRegBitconst TypeCondRegFieldconst TypeFPRegconst TypeImmSignedconst TypeImmUnsignedconst TypeLabelconst TypeLastconst TypeMMARegconst TypeNegOffsetconst TypeOffsetconst TypePCRelconst TypeRegconst TypeSpRegconst TypeUnknown ArgType = iotaconst TypeVecRegconst TypeVecSRegconst TypeVecSpRegconst URFIDconst 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 VABSDUBconst VABSDUHconst VABSDUWconst VADDCUQconst VADDCUWconst VADDECUQconst VADDEUQMconst VADDFPconst VADDSBSconst VADDSHSconst VADDSWSconst VADDUBMconst VADDUBSconst VADDUDMconst VADDUHMconst VADDUHSconst VADDUQMconst VADDUWMconst VADDUWSconst VANDconst VANDCconst VAVGSBconst VAVGSHconst VAVGSWconst VAVGUBconst VAVGUHconst VAVGUWconst VBPERMDconst VBPERMQconst VCFSXconst VCFUGEDconst VCFUXconst VCIPHERconst VCIPHERLASTconst VCLRLBconst VCLRRBconst VCLZBconst VCLZDconst VCLZDMconst VCLZHconst VCLZLSBBconst VCLZWconst VCMPBFPconst VCMPBFPCCconst VCMPEQFPconst VCMPEQFPCCconst VCMPEQUBconst VCMPEQUBCCconst VCMPEQUDconst VCMPEQUDCCconst VCMPEQUHconst VCMPEQUHCCconst VCMPEQUQconst VCMPEQUQCCconst VCMPEQUWconst VCMPEQUWCCconst VCMPGEFPconst VCMPGEFPCCconst VCMPGTFPconst VCMPGTFPCCconst VCMPGTSBconst VCMPGTSBCCconst VCMPGTSDconst VCMPGTSDCCconst VCMPGTSHconst VCMPGTSHCCconst VCMPGTSQconst VCMPGTSQCCconst VCMPGTSWconst VCMPGTSWCCconst VCMPGTUBconst VCMPGTUBCCconst VCMPGTUDconst VCMPGTUDCCconst VCMPGTUHconst VCMPGTUHCCconst VCMPGTUQconst VCMPGTUQCCconst VCMPGTUWconst VCMPGTUWCCconst VCMPNEBconst VCMPNEBCCconst VCMPNEHconst VCMPNEHCCconst VCMPNEWconst VCMPNEWCCconst VCMPNEZBconst VCMPNEZBCCconst VCMPNEZHconst VCMPNEZHCCconst VCMPNEZWconst VCMPNEZWCCconst VCMPSQconst VCMPUQconst VCNTMBBconst VCNTMBDconst VCNTMBHconst VCNTMBWconst VCTSXSconst VCTUXSconst VCTZBconst VCTZDconst VCTZDMconst VCTZHconst VCTZLSBBconst VCTZWconst VDIVESDconst VDIVESQconst VDIVESWconst VDIVEUDconst VDIVEUQconst VDIVEUWconst VDIVSDconst VDIVSQconst VDIVSWconst VDIVUDconst VDIVUQconst VDIVUWconst VEQVconst VEXPANDBMconst VEXPANDDMconst VEXPANDHMconst VEXPANDQMconst VEXPANDWMconst VEXPTEFPconst VEXTDDVLXconst VEXTDDVRXconst VEXTDUBVLXconst VEXTDUBVRXconst VEXTDUHVLXconst VEXTDUHVRXconst VEXTDUWVLXconst VEXTDUWVRXconst VEXTRACTBMconst VEXTRACTDconst VEXTRACTDMconst VEXTRACTHMconst VEXTRACTQMconst VEXTRACTUBconst VEXTRACTUHconst VEXTRACTUWconst VEXTRACTWMconst VEXTSB2Dconst VEXTSB2Wconst VEXTSD2Qconst VEXTSH2Dconst VEXTSH2Wconst VEXTSW2Dconst VEXTUBLXconst VEXTUBRXconst VEXTUHLXconst VEXTUHRXconst VEXTUWLXconst VEXTUWRXconst VGBBDconst VGNBconst VINSBLXconst VINSBRXconst VINSBVLXconst VINSBVRXconst VINSDconst VINSDLXconst VINSDRXconst VINSERTBconst VINSERTDconst VINSERTHconst VINSERTWconst VINSHLXconst VINSHRXconst VINSHVLXconst VINSHVRXconst VINSWconst VINSWLXconst VINSWRXconst VINSWVLXconst VINSWVRXconst VLOGEFPconst VMADDFPconst VMAXFPconst VMAXSBconst VMAXSDconst VMAXSHconst VMAXSWconst VMAXUBconst VMAXUDconst VMAXUHconst VMAXUWconst VMHADDSHSconst VMHRADDSHSconst VMINFPconst VMINSBconst VMINSDconst VMINSHconst VMINSWconst VMINUBconst VMINUDconst VMINUHconst VMINUWconst VMLADDUHMconst VMODSDconst VMODSQconst VMODSWconst VMODUDconst VMODUQconst VMODUWconst VMRGEWconst VMRGHBconst VMRGHHconst VMRGHWconst VMRGLBconst VMRGLHconst VMRGLWconst VMRGOWconst VMSUMCUDconst VMSUMMBMconst VMSUMSHMconst VMSUMSHSconst VMSUMUBMconst VMSUMUDMconst VMSUMUHMconst VMSUMUHSconst VMUL10CUQconst VMUL10ECUQconst VMUL10EUQconst VMUL10UQconst VMULESBconst VMULESDconst VMULESHconst VMULESWconst VMULEUBconst VMULEUDconst VMULEUHconst VMULEUWconst VMULHSDconst VMULHSWconst VMULHUDconst VMULHUWconst VMULLDconst VMULOSBconst VMULOSDconst VMULOSHconst VMULOSWconst VMULOUBconst VMULOUDconst VMULOUHconst VMULOUWconst VMULUWMconst VNANDconst VNCIPHERconst VNCIPHERLASTconst VNEGDconst VNEGWconst VNMSUBFPconst VNORconst VORconst VORCconst VPDEPDconst VPERMconst VPERMRconst VPERMXORconst VPEXTDconst VPKPXconst VPKSDSSconst VPKSDUSconst VPKSHSSconst VPKSHUSconst VPKSWSSconst VPKSWUSconst VPKUDUMconst VPKUDUSconst VPKUHUMconst VPKUHUSconst VPKUWUMconst VPKUWUSconst VPMSUMBconst VPMSUMDconst VPMSUMHconst VPMSUMWconst VPOPCNTBconst VPOPCNTDconst VPOPCNTHconst VPOPCNTWconst VPRTYBDconst VPRTYBQconst VPRTYBWconst VREFPconst VRFIMconst VRFINconst VRFIPconst VRFIZconst VRLBconst VRLDconst VRLDMIconst VRLDNMconst VRLHconst VRLQconst VRLQMIconst VRLQNMconst VRLWconst VRLWMIconst VRLWNMconst VRSQRTEFPconst VS0const VS1const VS10const VS11const VS12const VS13const VS14const VS15const VS16const VS17const VS18const VS19const VS2const VS20const VS21const VS22const VS23const VS24const VS25const VS26const VS27const VS28const VS29const VS3const VS30const VS31const VS32const VS33const VS34const VS35const VS36const VS37const VS38const VS39const VS4const VS40const VS41const VS42const VS43const VS44const VS45const VS46const VS47const VS48const VS49const VS5const VS50const VS51const VS52const VS53const VS54const VS55const VS56const VS57const VS58const VS59const VS6const VS60const VS61const VS62const VS63const VS7const VS8const VS9const VSBOXconst VSELconst VSHASIGMADconst VSHASIGMAWconst VSLconst VSLBconst VSLDconst VSLDBIconst VSLDOIconst VSLHconst VSLOconst VSLQconst VSLVconst VSLWconst VSPLTBconst VSPLTHconst VSPLTISBconst VSPLTISHconst VSPLTISWconst VSPLTWconst VSRconst VSRABconst VSRADconst VSRAHconst VSRAQconst VSRAWconst VSRBconst VSRDconst VSRDBIconst VSRHconst VSROconst VSRQconst VSRVconst VSRWconst VSTRIBLconst VSTRIBLCCconst VSTRIBRconst VSTRIBRCCconst VSTRIHLconst VSTRIHLCCconst VSTRIHRconst VSTRIHRCCconst VSUBCUQconst VSUBCUWconst VSUBECUQconst VSUBEUQMconst VSUBFPconst VSUBSBSconst VSUBSHSconst VSUBSWSconst VSUBUBMconst VSUBUBSconst VSUBUDMconst VSUBUHMconst VSUBUHSconst VSUBUQMconst VSUBUWMconst VSUBUWSconst VSUM2SWSconst VSUM4SBSconst VSUM4SHSconst VSUM4UBSconst VSUMSWSconst VUPKHPXconst VUPKHSBconst VUPKHSHconst VUPKHSWconst VUPKLPXconst VUPKLSBconst VUPKLSHconst VUPKLSWconst VXORconst WAITconst XORconst XORCCconst XORIconst XORISconst XSABSDPconst XSABSQPconst XSADDDPconst XSADDQPconst XSADDQPOconst XSADDSPconst XSCMPEQDPconst XSCMPEQQPconst XSCMPEXPDPconst XSCMPEXPQPconst XSCMPGEDPconst XSCMPGEQPconst XSCMPGTDPconst XSCMPGTQPconst XSCMPODPconst XSCMPOQPconst XSCMPUDPconst XSCMPUQPconst XSCPSGNDPconst XSCPSGNQPconst XSCVDPHPconst XSCVDPQPconst XSCVDPSPconst XSCVDPSPNconst XSCVDPSXDSconst XSCVDPSXWSconst XSCVDPUXDSconst XSCVDPUXWSconst XSCVHPDPconst XSCVQPDPconst XSCVQPDPOconst XSCVQPSDZconst XSCVQPSQZconst XSCVQPSWZconst XSCVQPUDZconst XSCVQPUQZconst XSCVQPUWZconst XSCVSDQPconst XSCVSPDPconst XSCVSPDPNconst XSCVSQQPconst XSCVSXDDPconst XSCVSXDSPconst XSCVUDQPconst XSCVUQQPconst XSCVUXDDPconst XSCVUXDSPconst XSDIVDPconst XSDIVQPconst XSDIVQPOconst XSDIVSPconst XSIEXPDPconst XSIEXPQPconst XSMADDADPconst XSMADDASPconst XSMADDMDPconst XSMADDMSPconst XSMADDQPconst XSMADDQPOconst XSMAXCDPconst XSMAXCQPconst XSMAXDPconst XSMAXJDPconst XSMINCDPconst XSMINCQPconst XSMINDPconst XSMINJDPconst XSMSUBADPconst XSMSUBASPconst XSMSUBMDPconst XSMSUBMSPconst XSMSUBQPconst XSMSUBQPOconst XSMULDPconst XSMULQPconst XSMULQPOconst XSMULSPconst XSNABSDPconst XSNABSQPconst XSNEGDPconst XSNEGQPconst XSNMADDADPconst XSNMADDASPconst XSNMADDMDPconst XSNMADDMSPconst XSNMADDQPconst XSNMADDQPOconst XSNMSUBADPconst XSNMSUBASPconst XSNMSUBMDPconst XSNMSUBMSPconst XSNMSUBQPconst XSNMSUBQPOconst XSRDPIconst XSRDPICconst XSRDPIMconst XSRDPIPconst XSRDPIZconst XSREDPconst XSRESPconst XSRQPIconst XSRQPIXconst XSRQPXPconst XSRSPconst XSRSQRTEDPconst XSRSQRTESPconst XSSQRTDPconst XSSQRTQPconst XSSQRTQPOconst XSSQRTSPconst XSSUBDPconst XSSUBQPconst XSSUBQPOconst XSSUBSPconst XSTDIVDPconst XSTSQRTDPconst XSTSTDCDPconst XSTSTDCQPconst XSTSTDCSPconst XSXEXPDPconst XSXEXPQPconst XSXSIGDPconst XSXSIGQPconst XVABSDPconst XVABSSPconst XVADDDPconst XVADDSPconst XVBF16GER2const XVBF16GER2NNconst XVBF16GER2NPconst XVBF16GER2PNconst XVBF16GER2PPconst XVCMPEQDPconst XVCMPEQDPCCconst XVCMPEQSPconst XVCMPEQSPCCconst XVCMPGEDPconst XVCMPGEDPCCconst XVCMPGESPconst XVCMPGESPCCconst XVCMPGTDPconst XVCMPGTDPCCconst XVCMPGTSPconst XVCMPGTSPCCconst XVCPSGNDPconst XVCPSGNSPconst XVCVBF16SPNconst XVCVDPSPconst XVCVDPSXDSconst XVCVDPSXWSconst XVCVDPUXDSconst XVCVDPUXWSconst XVCVHPSPconst XVCVSPBF16const XVCVSPDPconst XVCVSPHPconst XVCVSPSXDSconst XVCVSPSXWSconst XVCVSPUXDSconst XVCVSPUXWSconst XVCVSXDDPconst XVCVSXDSPconst XVCVSXWDPconst XVCVSXWSPconst XVCVUXDDPconst XVCVUXDSPconst XVCVUXWDPconst XVCVUXWSPconst XVDIVDPconst XVDIVSPconst XVF16GER2const XVF16GER2NNconst XVF16GER2NPconst XVF16GER2PNconst XVF16GER2PPconst XVF32GERconst XVF32GERNNconst XVF32GERNPconst XVF32GERPNconst XVF32GERPPconst XVF64GERconst XVF64GERNNconst XVF64GERNPconst XVF64GERPNconst XVF64GERPPconst XVI16GER2const XVI16GER2PPconst XVI16GER2Sconst XVI16GER2SPPconst XVI4GER8const XVI4GER8PPconst XVI8GER4const XVI8GER4PPconst XVI8GER4SPPconst XVIEXPDPconst XVIEXPSPconst XVMADDADPconst XVMADDASPconst XVMADDMDPconst XVMADDMSPconst XVMAXDPconst XVMAXSPconst XVMINDPconst XVMINSPconst XVMSUBADPconst XVMSUBASPconst XVMSUBMDPconst XVMSUBMSPconst XVMULDPconst XVMULSPconst XVNABSDPconst XVNABSSPconst XVNEGDPconst XVNEGSPconst XVNMADDADPconst XVNMADDASPconst XVNMADDMDPconst XVNMADDMSPconst XVNMSUBADPconst XVNMSUBASPconst XVNMSUBMDPconst XVNMSUBMSPconst XVRDPIconst XVRDPICconst XVRDPIMconst XVRDPIPconst XVRDPIZconst XVREDPconst XVRESPconst XVRSPIconst XVRSPICconst XVRSPIMconst XVRSPIPconst XVRSPIZconst XVRSQRTEDPconst XVRSQRTESPconst XVSQRTDPconst XVSQRTSPconst XVSUBDPconst XVSUBSPconst XVTDIVDPconst XVTDIVSPconst XVTLSBBconst XVTSQRTDPconst XVTSQRTSPconst XVTSTDCDPconst XVTSTDCSPconst XVXEXPDPconst XVXEXPSPconst XVXSIGDPconst XVXSIGSPconst XXBLENDVBconst XXBLENDVDconst XXBLENDVHconst XXBLENDVWconst XXBRDconst XXBRHconst XXBRQconst XXBRWconst XXEVALconst XXEXTRACTUWconst XXGENPCVBMconst XXGENPCVDMconst XXGENPCVHMconst XXGENPCVWMconst XXINSERTWconst XXLANDconst XXLANDCconst XXLEQVconst XXLNANDconst XXLNORconst XXLORconst XXLORCconst XXLXORconst XXMFACCconst XXMRGHWconst XXMRGLWconst XXMTACCconst XXPERMconst XXPERMDIconst XXPERMRconst XXPERMXconst XXSELconst XXSETACCZconst XXSLDWIconst XXSPLTI32DXconst XXSPLTIBconst XXSPLTIDPconst XXSPLTIWconst XXSPLTWconst _ Reg = iotaconst _ Op = iotaconst _ CondReg = iotavar ap_CondRegBit_11_15 = *ast.UnaryExprvar ap_CondRegBit_16_20 = *ast.UnaryExprvar ap_CondRegBit_21_25 = *ast.UnaryExprvar ap_CondRegBit_6_10 = *ast.UnaryExprvar ap_CondRegField_11_13 = *ast.UnaryExprvar ap_CondRegField_6_8 = *ast.UnaryExprvar ap_FPReg_11_15 = *ast.UnaryExprvar ap_FPReg_16_20 = *ast.UnaryExprvar ap_FPReg_21_25 = *ast.UnaryExprvar ap_FPReg_38_42 = *ast.UnaryExprvar ap_FPReg_6_10 = *ast.UnaryExprvar ap_ImmSigned_11_15 = *ast.UnaryExprvar ap_ImmSigned_14_31_48_63 = *ast.UnaryExprvar ap_ImmSigned_16_25_11_15_31_31 = *ast.UnaryExprvar ap_ImmSigned_16_31 = *ast.UnaryExprvar ap_ImmUnsigned_10_10 = *ast.UnaryExprvar ap_ImmUnsigned_10_15 = *ast.UnaryExprvar ap_ImmUnsigned_11_11 = *ast.UnaryExprvar ap_ImmUnsigned_11_12 = *ast.UnaryExprvar ap_ImmUnsigned_11_15 = *ast.UnaryExprvar ap_ImmUnsigned_11_20 = *ast.UnaryExprvar ap_ImmUnsigned_12_13 = *ast.UnaryExprvar ap_ImmUnsigned_12_15 = *ast.UnaryExprvar ap_ImmUnsigned_12_19 = *ast.UnaryExprvar ap_ImmUnsigned_13_15 = *ast.UnaryExprvar ap_ImmUnsigned_13_20 = *ast.UnaryExprvar ap_ImmUnsigned_14_14 = *ast.UnaryExprvar ap_ImmUnsigned_14_15 = *ast.UnaryExprvar ap_ImmUnsigned_15_15 = *ast.UnaryExprvar ap_ImmUnsigned_16_16 = *ast.UnaryExprvar ap_ImmUnsigned_16_17 = *ast.UnaryExprvar ap_ImmUnsigned_16_19 = *ast.UnaryExprvar ap_ImmUnsigned_16_20 = *ast.UnaryExprvar ap_ImmUnsigned_16_21 = *ast.UnaryExprvar ap_ImmUnsigned_16_23 = *ast.UnaryExprvar ap_ImmUnsigned_16_25_11_15_31_31 = *ast.UnaryExprvar ap_ImmUnsigned_16_31 = *ast.UnaryExprvar ap_ImmUnsigned_16_31_48_63 = *ast.UnaryExprvar ap_ImmUnsigned_17_20 = *ast.UnaryExprvar ap_ImmUnsigned_18_20 = *ast.UnaryExprvar ap_ImmUnsigned_19_20 = *ast.UnaryExprvar ap_ImmUnsigned_20_20 = *ast.UnaryExprvar ap_ImmUnsigned_20_26 = *ast.UnaryExprvar ap_ImmUnsigned_21_22 = *ast.UnaryExprvar ap_ImmUnsigned_21_25 = *ast.UnaryExprvar ap_ImmUnsigned_22_22 = *ast.UnaryExprvar ap_ImmUnsigned_22_23 = *ast.UnaryExprvar ap_ImmUnsigned_22_25 = *ast.UnaryExprvar ap_ImmUnsigned_23_25 = *ast.UnaryExprvar ap_ImmUnsigned_24_27 = *ast.UnaryExprvar ap_ImmUnsigned_24_31 = *ast.UnaryExprvar ap_ImmUnsigned_25_25_29_29_11_15 = *ast.UnaryExprvar ap_ImmUnsigned_26_26_21_25 = *ast.UnaryExprvar ap_ImmUnsigned_26_30 = *ast.UnaryExprvar ap_ImmUnsigned_28_29 = *ast.UnaryExprvar ap_ImmUnsigned_28_31 = *ast.UnaryExprvar ap_ImmUnsigned_29_31 = *ast.UnaryExprvar ap_ImmUnsigned_30_30_16_20 = *ast.UnaryExprvar ap_ImmUnsigned_31_31 = *ast.UnaryExprvar ap_ImmUnsigned_46_46 = *ast.UnaryExprvar ap_ImmUnsigned_6_10 = *ast.UnaryExprvar ap_ImmUnsigned_6_6 = *ast.UnaryExprvar ap_ImmUnsigned_6_8 = *ast.UnaryExprvar ap_ImmUnsigned_7_10 = *ast.UnaryExprvar ap_ImmUnsigned_7_14 = *ast.UnaryExprvar ap_ImmUnsigned_8_10 = *ast.UnaryExprvar ap_ImmUnsigned_9_10 = *ast.UnaryExprvar ap_ImmUnsigned_9_15 = *ast.UnaryExprvar ap_Label_16_29_shift2 = *ast.UnaryExprvar ap_Label_6_29_shift2 = *ast.UnaryExprvar ap_MMAReg_38_40 = *ast.UnaryExprvar ap_MMAReg_6_8 = *ast.UnaryExprvar ap_NegOffset_31_31_6_10_shift3 = *ast.UnaryExprvar ap_Offset_14_31_48_63 = *ast.UnaryExprvar ap_Offset_16_27_shift4 = *ast.UnaryExprvar ap_Offset_16_29_shift2 = *ast.UnaryExprvar ap_Offset_16_31 = *ast.UnaryExprvar ap_PCRel_16_29_shift2 = *ast.UnaryExprvar ap_PCRel_6_29_shift2 = *ast.UnaryExprvar ap_Reg_11_15 = *ast.UnaryExprvar ap_Reg_16_20 = *ast.UnaryExprvar ap_Reg_21_25 = *ast.UnaryExprvar ap_Reg_38_42 = *ast.UnaryExprvar ap_Reg_43_47 = *ast.UnaryExprvar ap_Reg_6_10 = *ast.UnaryExprvar ap_SpReg_16_20_11_15 = *ast.UnaryExprvar ap_VecReg_11_15 = *ast.UnaryExprvar ap_VecReg_16_20 = *ast.UnaryExprvar ap_VecReg_21_25 = *ast.UnaryExprvar ap_VecReg_38_42 = *ast.UnaryExprvar ap_VecReg_6_10 = *ast.UnaryExprvar ap_VecSReg_28_28_21_25 = *ast.UnaryExprvar ap_VecSReg_28_28_6_10 = *ast.UnaryExprvar ap_VecSReg_29_29_11_15 = *ast.UnaryExprvar ap_VecSReg_30_30_16_20 = *ast.UnaryExprvar ap_VecSReg_31_31_6_10 = *ast.UnaryExprvar ap_VecSReg_37_37_38_42 = *ast.UnaryExprvar ap_VecSReg_47_47_38_42 = *ast.UnaryExprvar ap_VecSReg_60_60_53_57 = *ast.UnaryExprvar ap_VecSReg_61_61_43_47 = *ast.UnaryExprvar ap_VecSReg_62_62_48_52 = *ast.UnaryExprvar ap_VecSReg_63_63_38_42 = *ast.UnaryExprvar ap_VecSpReg_10_10_6_9 = *ast.UnaryExprvar ap_VecSpReg_42_42_38_41 = *ast.UnaryExprbit 3 of index is a negated check.
var condBit = [8]string{...}Lookup table to map BI[0:1] and BO[3] to an extended mnemonic for CR ops. Bits 0-1 map to a bit with a CR field, and bit 2 selects the inverted (0) or regular (1) extended mnemonic.
var condName = []string{...}const debugDecode = falsevar decoderCover []boolErrors
var errShort = *ast.CallExprvar errUnknown = *ast.CallExprThree level lookup for any instruction: 1. Primary opcode map to a list of secondary opcode maps. 2. A list of opcodes with distinct masks, sorted by largest to smallest mask. 3. A map to a specific opcodes with a given mask.
var getLookupMap = *ast.CallExprvar instFormats = [...]instFormat{...}Note, plxv/pstxv have a 5 bit opcode in the second instruction word. Only match the most significant 5 of 6 bits of the second primary opcode.
const lookupOpcodeMask = *ast.CallExprvar opstr = [...]string{...}plan9OpMap maps an Op to its Plan 9 mnemonics, if different than its GNU mnemonics.
var plan9OpMap = map[Op]string{...}const prefixOpcode = 1revCondMap maps a conditional register bit to its inverse, if possible.
var revCondMap = map[string]string{...}type ArgType int8An Args holds the instruction arguments. If an instruction has fewer than 6 arguments, the final elements in the array are nil.
type Args [6]ArgBitFields is a series of BitFields representing a single number.
type BitFields []BitFieldCondReg is a bit or field in the condition register.
type CondReg int8Imm represents an immediate number.
type Imm int64A Label is a code (text) address, used only in absolute branch instructions.
type Label uint32Offset represents a memory offset immediate.
type Offset int64An Op is an instruction operation.
type Op uint16PCRel is a PC-relative offset, used only in branch instructions.
type PCRel int32A Reg is a single register. The zero value means R0, not the absence of a register. It also includes special registers.
type Reg uint16SpReg is a special register, its meaning depends on Op.
type SpReg uint16An Arg is a single instruction argument, one of these types: Reg, CondReg, SpReg, Imm, PCRel, Label, or Offset.
type Arg interface {
IsArg()
String() string
}A BitField is a bit-field in a 32-bit word. Bits are counted from 0 from the MSB to 31 as the LSB.
type BitField struct {
Offs uint8
Bits uint8
Word uint8
}type Inst struct {
Op Op
Enc uint32
Len int
SuffixEnc uint32
Args Args
}type InstMaskMap struct {
mask uint64
insn map[uint64]*instFormat
}argField indicate how to decode an argument to an instruction. First parse the value from the BitFields, shift it left by Shift bits to get the actual numerical value.
type argField struct {
Type ArgType
Shift uint8
BitFields
}instFormat is a decoding rule for one specific instruction form. an instruction ins matches the rule if ins&Mask == Value DontCare bits should be zero, but the machine might not reject ones in those bits, they are mainly reserved for future expansion of the instruction set. The Args are stored in the same order as the instruction manual. Prefixed instructions are stored as: prefix << 32 | suffix, Regular instructions are: inst << 32
type instFormat struct {
Op Op
Mask uint64
Value uint64
DontCare uint64
Args [6]*argField
}func (bs *BitFields) Append(b BitField)Decode decodes the leading bytes in src as a single instruction using byte order ord.
func Decode(src []byte, ord binary.ByteOrder) (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 Power ISA Reference Manual.
func GNUSyntax(inst Inst, pc uint64) stringfunc (t ArgType) GoString() stringGoSyntax returns the Go assembler syntax for the instruction. The pc is the program counter of the first instruction, used for expanding PC-relative addresses into absolute ones. The symname function queries the symbol table for the program being disassembled. It returns the name and base address of the symbol containing the target, if any; otherwise it returns "", 0.
func GoSyntax(inst Inst, pc uint64, symname func(uint64) (string, uint64)) stringfunc (Offset) IsArg()func (SpReg) IsArg()func (Imm) IsArg()func (Label) IsArg()func (PCRel) IsArg()func (Reg) IsArg()func (CondReg) IsArg()Count the number of bits in the aggregate BitFields
func (bs BitFields) NumBits() intParse extracts the bitfield b from i, and return it as an unsigned integer. Parse will panic if b is invalid.
func (b BitField) Parse(i [2]uint32) uint32Parse parses the Arg out from the given binary instruction i.
func (a argField) Parse(i [2]uint32) ArgParse extracts the bitfields from i, concatenate them and return the result as an unsigned integer. Parse will panic if any bitfield in b is invalid.
func (bs BitFields) Parse(i [2]uint32) uint64ParseSigned extracts the bitfields from i, concatenate them and return the result as a signed integer. Parse will panic if any bitfield in b is invalid.
func (bs BitFields) ParseSigned(i [2]uint32) int64ParseSigned extracts the bitfield b from i, and return it as a signed integer. ParseSigned will panic if b is invalid.
func (b BitField) ParseSigned(i [2]uint32) int32func (s SpReg) String() stringfunc (b BitField) String() stringfunc (r Reg) String() stringfunc (o Op) String() stringfunc (r PCRel) String() stringfunc (i Inst) String() stringfunc (l Label) String() stringfunc (t ArgType) String() stringfunc (i Imm) String() stringfunc (c CondReg) String() stringfunc (o Offset) String() stringfunc (bs BitFields) String() stringgnuArg formats arg (which is the argIndex's arg in inst) according to GNU rules. NOTE: because GNUSyntax is the only caller of this func, and it receives a copy of inst, it's ok to modify inst.Args here.
func gnuArg(inst *Inst, argIndex int, arg Arg, pc uint64) stringisLoadStoreOp returns true if op is a load or store instruction
func isLoadStoreOp(op Op) boolparse extracts the bitfields from i, concatenate them and return the result as an unsigned integer and the total length of all the bitfields. parse will panic if any bitfield in b is invalid, but it doesn't check if the sequence of bitfields is reasonable.
func (bs BitFields) parse(i [2]uint32) (u uint64, Bits uint8)plan9Arg formats arg (which is the argIndex's arg in inst) according to Plan 9 rules. NOTE: because Plan9Syntax is the only caller of this func, and it receives a copy of inst, it's ok to modify inst.Args here.
func plan9Arg(inst *Inst, argIndex int, pc uint64, arg Arg, symname func(uint64) (string, uint64)) stringremoveArg removes the arg in inst.Args[index].
func removeArg(inst *Inst, index int)func reverseMiddleOps(op Op) boolfunc reverseOperandOrder(op Op) boolGenerated with Arrow