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 A0
const A1
const A2
const A3
const A4
const A5
const A6
const A7
const ADD
const ADDC
const ADDCC
const ADDCCC
const ADDCO
const ADDCOCC
const ADDE
const ADDECC
const ADDEO
const ADDEOCC
const ADDEX
const ADDG6S
const ADDI
const ADDIC
const ADDICCC
const ADDIS
const ADDME
const ADDMECC
const ADDMEO
const ADDMEOCC
const ADDO
const ADDOCC
const ADDPCIS
const ADDZE
const ADDZECC
const ADDZEO
const ADDZEOCC
const AND
const ANDC
const ANDCC
const ANDCCC
const ANDICC
const ANDISCC
const B
const BA
const BC
const BCA
const BCCTR
const BCCTRL
const BCDADDCC
const BCDCFNCC
const BCDCFSQCC
const BCDCFZCC
const BCDCPSGNCC
const BCDCTNCC
const BCDCTSQCC
const BCDCTZCC
const BCDSCC
const BCDSETSGNCC
const BCDSRCC
const BCDSUBCC
const BCDTRUNCCC
const BCDUSCC
const BCDUTRUNCCC
const BCL
const BCLA
const BCLR
const BCLRL
const BCTAR
const BCTARL
const BL
const BLA
const BPERMD
const BRD
const BRH
const BRW
const CBCDTD
const CDTBCD
const CFUGED
const CLRBHRB
const CMP
const CMPB
const CMPD
const CMPDI
const CMPEQB
const CMPI
const CMPL
const CMPLD
const CMPLDI
const CMPLI
const CMPLW
const CMPLWI
const CMPRB
const CMPW
const CMPWI
const CNTLZD
const CNTLZDCC
const CNTLZDM
const CNTLZW
const CNTLZWCC
const CNTTZD
const CNTTZDCC
const CNTTZDM
const CNTTZW
const CNTTZWCC
const COPY
const CPABORT
Condition Register Fields
const CR0
const CR1
const CR2
const CR3
const CR4
const CR5
const CR6
const CR7
const CRAND
const CRANDC
const CREQV
const CRNAND
const CRNOR
const CROR
const CRORC
const CRXOR
const Cond0EQ
const Cond0GT
Condition Regster bits
const Cond0LT
const Cond0SO
const Cond1EQ
const Cond1GT
const Cond1LT
const Cond1SO
const Cond2EQ
const Cond2GT
const Cond2LT
const Cond2SO
const Cond3EQ
const Cond3GT
const Cond3LT
const Cond3SO
const Cond4EQ
const Cond4GT
const Cond4LT
const Cond4SO
const Cond5EQ
const Cond5GT
const Cond5LT
const Cond5SO
const Cond6EQ
const Cond6GT
const Cond6LT
const Cond6SO
const Cond7EQ
const Cond7GT
const Cond7LT
const Cond7SO
const DADD
const DADDCC
const DADDQ
const DADDQCC
const DARN
const DCBF
const DCBST
const DCBT
const DCBTST
const DCBZ
const DCFFIX
const DCFFIXCC
const DCFFIXQ
const DCFFIXQCC
const DCFFIXQQ
const DCMPO
const DCMPOQ
const DCMPU
const DCMPUQ
const DCTDP
const DCTDPCC
const DCTFIX
const DCTFIXCC
const DCTFIXQ
const DCTFIXQCC
const DCTFIXQQ
const DCTQPQ
const DCTQPQCC
const DDEDPD
const DDEDPDCC
const DDEDPDQ
const DDEDPDQCC
const DDIV
const DDIVCC
const DDIVQ
const DDIVQCC
const DENBCD
const DENBCDCC
const DENBCDQ
const DENBCDQCC
const DIEX
const DIEXCC
const DIEXQ
const DIEXQCC
const DIVD
const DIVDCC
const DIVDE
const DIVDECC
const DIVDEO
const DIVDEOCC
const DIVDEU
const DIVDEUCC
const DIVDEUO
const DIVDEUOCC
const DIVDO
const DIVDOCC
const DIVDU
const DIVDUCC
const DIVDUO
const DIVDUOCC
const DIVW
const DIVWCC
const DIVWE
const DIVWECC
const DIVWEO
const DIVWEOCC
const DIVWEU
const DIVWEUCC
const DIVWEUO
const DIVWEUOCC
const DIVWO
const DIVWOCC
const DIVWU
const DIVWUCC
const DIVWUO
const DIVWUOCC
const DMUL
const DMULCC
const DMULQ
const DMULQCC
const DQUA
const DQUACC
const DQUAI
const DQUAICC
const DQUAIQ
const DQUAIQCC
const DQUAQ
const DQUAQCC
const DRDPQ
const DRDPQCC
const DRINTN
const DRINTNCC
const DRINTNQ
const DRINTNQCC
const DRINTX
const DRINTXCC
const DRINTXQ
const DRINTXQCC
const DRRND
const DRRNDCC
const DRRNDQ
const DRRNDQCC
const DRSP
const DRSPCC
const DSCLI
const DSCLICC
const DSCLIQ
const DSCLIQCC
const DSCRI
const DSCRICC
const DSCRIQ
const DSCRIQCC
const DSUB
const DSUBCC
const DSUBQ
const DSUBQCC
const DTSTDC
const DTSTDCQ
const DTSTDG
const DTSTDGQ
const DTSTEX
const DTSTEXQ
const DTSTSF
const DTSTSFI
const DTSTSFIQ
const DTSTSFQ
const DXEX
const DXEXCC
const DXEXQ
const DXEXQCC
const EIEIO
const EQV
const EQVCC
const EXTSB
const EXTSBCC
const EXTSH
const EXTSHCC
const EXTSW
const EXTSWCC
const EXTSWSLI
const EXTSWSLICC
const F0
const F1
const F10
const F11
const F12
const F13
const F14
const F15
const F16
const F17
const F18
const F19
const F2
const F20
const F21
const F22
const F23
const F24
const F25
const F26
const F27
const F28
const F29
const F3
const F30
const F31
const F4
const F5
const F6
const F7
const F8
const F9
const FABS
const FABSCC
const FADD
const FADDCC
const FADDS
const FADDSCC
const FCFID
const FCFIDCC
const FCFIDS
const FCFIDSCC
const FCFIDU
const FCFIDUCC
const FCFIDUS
const FCFIDUSCC
const FCMPO
const FCMPU
const FCPSGN
const FCPSGNCC
const FCTID
const FCTIDCC
const FCTIDU
const FCTIDUCC
const FCTIDUZ
const FCTIDUZCC
const FCTIDZ
const FCTIDZCC
const FCTIW
const FCTIWCC
const FCTIWU
const FCTIWUCC
const FCTIWUZ
const FCTIWUZCC
const FCTIWZ
const FCTIWZCC
const FDIV
const FDIVCC
const FDIVS
const FDIVSCC
const FMADD
const FMADDCC
const FMADDS
const FMADDSCC
const FMR
const FMRCC
const FMRGEW
const FMRGOW
const FMSUB
const FMSUBCC
const FMSUBS
const FMSUBSCC
const FMUL
const FMULCC
const FMULS
const FMULSCC
const FNABS
const FNABSCC
const FNEG
const FNEGCC
const FNMADD
const FNMADDCC
const FNMADDS
const FNMADDSCC
const FNMSUB
const FNMSUBCC
const FNMSUBS
const FNMSUBSCC
const FRE
const FRECC
const FRES
const FRESCC
const FRIM
const FRIMCC
const FRIN
const FRINCC
const FRIP
const FRIPCC
const FRIZ
const FRIZCC
const FRSP
const FRSPCC
const FRSQRTE
const FRSQRTECC
const FRSQRTES
const FRSQRTESCC
const FSEL
const FSELCC
const FSQRT
const FSQRTCC
const FSQRTS
const FSQRTSCC
const FSUB
const FSUBCC
const FSUBS
const FSUBSCC
const FTDIV
const FTSQRT
const HASHCHK
const HASHCHKP
const HASHST
const HASHSTP
const HRFID
const ICBI
const ICBT
const ISEL
const ISYNC
const LBARX
const LBZ
const LBZCIX
const LBZU
const LBZUX
const LBZX
const LD
const LDARX
const LDAT
const LDBRX
const LDCIX
const LDU
const LDUX
const LDX
const LFD
const LFDP
const LFDPX
const LFDU
const LFDUX
const LFDX
const LFIWAX
const LFIWZX
const LFS
const LFSU
const LFSUX
const LFSX
const LHA
const LHARX
const LHAU
const LHAUX
const LHAX
const LHBRX
const LHZ
const LHZCIX
const LHZU
const LHZUX
const LHZX
const LI
const LIS
const LMW
const LQ
const LQARX
const LSWI
const LSWX
const LVEBX
const LVEHX
const LVEWX
const LVSL
const LVSR
const LVX
const LVXL
const LWA
const LWARX
const LWAT
const LWAUX
const LWAX
const LWBRX
const LWZ
const LWZCIX
const LWZU
const LWZUX
const LWZX
const LXSD
const LXSDX
const LXSIBZX
const LXSIHZX
const LXSIWAX
const LXSIWZX
const LXSSP
const LXSSPX
const LXV
const LXVB16X
const LXVD2X
const LXVDSX
const LXVH8X
const LXVKQ
const LXVL
const LXVLL
const LXVP
const LXVPX
const LXVRBX
const LXVRDX
const LXVRHX
const LXVRWX
const LXVW4X
const LXVWSX
const LXVX
const MADDHD
const MADDHDU
const MADDLD
const MCRF
const MCRFS
const MCRXRX
const MFBHRBE
const MFCR
const MFFS
const MFFSCC
const MFFSCDRN
const MFFSCDRNI
const MFFSCE
const MFFSCRN
const MFFSCRNI
const MFFSL
const MFMSR
const MFOCRF
const MFSPR
const MFTB
const MFVSCR
const MFVSRD
const MFVSRLD
const MFVSRWZ
const MODSD
const MODSW
const MODUD
const MODUW
const MSGCLR
const MSGCLRP
const MSGCLRU
const MSGSND
const MSGSNDP
const MSGSNDU
const MSGSYNC
const MTCRF
const MTFSB0
const MTFSB0CC
const MTFSB1
const MTFSB1CC
const MTFSF
const MTFSFCC
const MTFSFI
const MTFSFICC
const MTMSR
const MTMSRD
const MTOCRF
const MTSPR
const MTVSCR
const MTVSRBM
const MTVSRBMI
const MTVSRD
const MTVSRDD
const MTVSRDM
const MTVSRHM
const MTVSRQM
const MTVSRWA
const MTVSRWM
const MTVSRWS
const MTVSRWZ
const MULHD
const MULHDCC
const MULHDU
const MULHDUCC
const MULHW
const MULHWCC
const MULHWU
const MULHWUCC
const MULLD
const MULLDCC
const MULLDO
const MULLDOCC
const MULLI
const MULLW
const MULLWCC
const MULLWO
const MULLWOCC
const NAND
const NANDCC
const NEG
const NEGCC
const NEGO
const NEGOCC
const NOP
const NOR
const NORCC
const OR
const ORC
const ORCC
const ORCCC
const ORI
const ORIS
const PADDI
const PASTECC
const PDEPD
const PEXTD
const PLBZ
const PLD
const PLFD
const PLFS
const PLHA
const PLHZ
const PLQ
const PLWA
const PLWZ
const PLXSD
const PLXSSP
const PLXV
const PLXVP
const PMXVBF16GER2
const PMXVBF16GER2NN
const PMXVBF16GER2NP
const PMXVBF16GER2PN
const PMXVBF16GER2PP
const PMXVF16GER2
const PMXVF16GER2NN
const PMXVF16GER2NP
const PMXVF16GER2PN
const PMXVF16GER2PP
const PMXVF32GER
const PMXVF32GERNN
const PMXVF32GERNP
const PMXVF32GERPN
const PMXVF32GERPP
const PMXVF64GER
const PMXVF64GERNN
const PMXVF64GERNP
const PMXVF64GERPN
const PMXVF64GERPP
const PMXVI16GER2
const PMXVI16GER2PP
const PMXVI16GER2S
const PMXVI16GER2SPP
const PMXVI4GER8
const PMXVI4GER8PP
const PMXVI8GER4
const PMXVI8GER4PP
const PMXVI8GER4SPP
const PNOP
const POPCNTB
const POPCNTD
const POPCNTW
const PRTYD
const PRTYW
const PSTB
const PSTD
const PSTFD
const PSTFS
const PSTH
const PSTQ
const PSTW
const PSTXSD
const PSTXSSP
const PSTXV
const PSTXVP
const R0
const R1
const R10
const R11
const R12
const R13
const R14
const R15
const R16
const R17
const R18
const R19
const R2
const R20
const R21
const R22
const R23
const R24
const R25
const R26
const R27
const R28
const R29
const R3
const R30
const R31
const R4
const R5
const R6
const R7
const R8
const R9
const RFEBB
const RFID
const RFSCV
const RLDCL
const RLDCLCC
const RLDCR
const RLDCRCC
const RLDIC
const RLDICCC
const RLDICL
const RLDICLCC
const RLDICR
const RLDICRCC
const RLDIMI
const RLDIMICC
const RLWIMI
const RLWIMICC
const RLWINM
const RLWINMCC
const RLWNM
const RLWNMCC
const SC
const SCV
const SETB
const SETBC
const SETBCR
const SETNBC
const SETNBCR
const SLBFEECC
const SLBIA
const SLBIAG
const SLBIE
const SLBIEG
const SLBMFEE
const SLBMFEV
const SLBMTE
const SLBSYNC
const SLD
const SLDCC
const SLW
const SLWCC
const SRAD
const SRADCC
const SRADI
const SRADICC
const SRAW
const SRAWCC
const SRAWI
const SRAWICC
const SRD
const SRDCC
const SRW
const SRWCC
const STB
const STBCIX
const STBCXCC
const STBU
const STBUX
const STBX
const STD
const STDAT
const STDBRX
const STDCIX
const STDCXCC
const STDU
const STDUX
const STDX
const STFD
const STFDP
const STFDPX
const STFDU
const STFDUX
const STFDX
const STFIWX
const STFS
const STFSU
const STFSUX
const STFSX
const STH
const STHBRX
const STHCIX
const STHCXCC
const STHU
const STHUX
const STHX
const STMW
const STOP
const STQ
const STQCXCC
const STSWI
const STSWX
const STVEBX
const STVEHX
const STVEWX
const STVX
const STVXL
const STW
const STWAT
const STWBRX
const STWCIX
const STWCXCC
const STWU
const STWUX
const STWX
const STXSD
const STXSDX
const STXSIBX
const STXSIHX
const STXSIWX
const STXSSP
const STXSSPX
const STXV
const STXVB16X
const STXVD2X
const STXVH8X
const STXVL
const STXVLL
const STXVP
const STXVPX
const STXVRBX
const STXVRDX
const STXVRHX
const STXVRWX
const STXVW4X
const STXVX
const SUBF
const SUBFC
const SUBFCC
const SUBFCCC
const SUBFCO
const SUBFCOCC
const SUBFE
const SUBFECC
const SUBFEO
const SUBFEOCC
const SUBFIC
const SUBFME
const SUBFMECC
const SUBFMEO
const SUBFMEOCC
const SUBFO
const SUBFOCC
const SUBFZE
const SUBFZECC
const SUBFZEO
const SUBFZEOCC
const SYNC
const SpRegZero SpReg = 0
const TD
const TDI
const TLBIE
const TLBIEL
const TLBSYNC
const TW
const TWI
const TypeCondRegBit
const TypeCondRegField
const TypeFPReg
const TypeImmSigned
const TypeImmUnsigned
const TypeLabel
const TypeLast
const TypeMMAReg
const TypeNegOffset
const TypeOffset
const TypePCRel
const TypeReg
const TypeSpReg
const TypeUnknown ArgType = iota
const TypeVecReg
const TypeVecSReg
const TypeVecSpReg
const URFID
const V0
const V1
const V10
const V11
const V12
const V13
const V14
const V15
const V16
const V17
const V18
const V19
const V2
const V20
const V21
const V22
const V23
const V24
const V25
const V26
const V27
const V28
const V29
const V3
const V30
const V31
const V4
const V5
const V6
const V7
const V8
const V9
const VABSDUB
const VABSDUH
const VABSDUW
const VADDCUQ
const VADDCUW
const VADDECUQ
const VADDEUQM
const VADDFP
const VADDSBS
const VADDSHS
const VADDSWS
const VADDUBM
const VADDUBS
const VADDUDM
const VADDUHM
const VADDUHS
const VADDUQM
const VADDUWM
const VADDUWS
const VAND
const VANDC
const VAVGSB
const VAVGSH
const VAVGSW
const VAVGUB
const VAVGUH
const VAVGUW
const VBPERMD
const VBPERMQ
const VCFSX
const VCFUGED
const VCFUX
const VCIPHER
const VCIPHERLAST
const VCLRLB
const VCLRRB
const VCLZB
const VCLZD
const VCLZDM
const VCLZH
const VCLZLSBB
const VCLZW
const VCMPBFP
const VCMPBFPCC
const VCMPEQFP
const VCMPEQFPCC
const VCMPEQUB
const VCMPEQUBCC
const VCMPEQUD
const VCMPEQUDCC
const VCMPEQUH
const VCMPEQUHCC
const VCMPEQUQ
const VCMPEQUQCC
const VCMPEQUW
const VCMPEQUWCC
const VCMPGEFP
const VCMPGEFPCC
const VCMPGTFP
const VCMPGTFPCC
const VCMPGTSB
const VCMPGTSBCC
const VCMPGTSD
const VCMPGTSDCC
const VCMPGTSH
const VCMPGTSHCC
const VCMPGTSQ
const VCMPGTSQCC
const VCMPGTSW
const VCMPGTSWCC
const VCMPGTUB
const VCMPGTUBCC
const VCMPGTUD
const VCMPGTUDCC
const VCMPGTUH
const VCMPGTUHCC
const VCMPGTUQ
const VCMPGTUQCC
const VCMPGTUW
const VCMPGTUWCC
const VCMPNEB
const VCMPNEBCC
const VCMPNEH
const VCMPNEHCC
const VCMPNEW
const VCMPNEWCC
const VCMPNEZB
const VCMPNEZBCC
const VCMPNEZH
const VCMPNEZHCC
const VCMPNEZW
const VCMPNEZWCC
const VCMPSQ
const VCMPUQ
const VCNTMBB
const VCNTMBD
const VCNTMBH
const VCNTMBW
const VCTSXS
const VCTUXS
const VCTZB
const VCTZD
const VCTZDM
const VCTZH
const VCTZLSBB
const VCTZW
const VDIVESD
const VDIVESQ
const VDIVESW
const VDIVEUD
const VDIVEUQ
const VDIVEUW
const VDIVSD
const VDIVSQ
const VDIVSW
const VDIVUD
const VDIVUQ
const VDIVUW
const VEQV
const VEXPANDBM
const VEXPANDDM
const VEXPANDHM
const VEXPANDQM
const VEXPANDWM
const VEXPTEFP
const VEXTDDVLX
const VEXTDDVRX
const VEXTDUBVLX
const VEXTDUBVRX
const VEXTDUHVLX
const VEXTDUHVRX
const VEXTDUWVLX
const VEXTDUWVRX
const VEXTRACTBM
const VEXTRACTD
const VEXTRACTDM
const VEXTRACTHM
const VEXTRACTQM
const VEXTRACTUB
const VEXTRACTUH
const VEXTRACTUW
const VEXTRACTWM
const VEXTSB2D
const VEXTSB2W
const VEXTSD2Q
const VEXTSH2D
const VEXTSH2W
const VEXTSW2D
const VEXTUBLX
const VEXTUBRX
const VEXTUHLX
const VEXTUHRX
const VEXTUWLX
const VEXTUWRX
const VGBBD
const VGNB
const VINSBLX
const VINSBRX
const VINSBVLX
const VINSBVRX
const VINSD
const VINSDLX
const VINSDRX
const VINSERTB
const VINSERTD
const VINSERTH
const VINSERTW
const VINSHLX
const VINSHRX
const VINSHVLX
const VINSHVRX
const VINSW
const VINSWLX
const VINSWRX
const VINSWVLX
const VINSWVRX
const VLOGEFP
const VMADDFP
const VMAXFP
const VMAXSB
const VMAXSD
const VMAXSH
const VMAXSW
const VMAXUB
const VMAXUD
const VMAXUH
const VMAXUW
const VMHADDSHS
const VMHRADDSHS
const VMINFP
const VMINSB
const VMINSD
const VMINSH
const VMINSW
const VMINUB
const VMINUD
const VMINUH
const VMINUW
const VMLADDUHM
const VMODSD
const VMODSQ
const VMODSW
const VMODUD
const VMODUQ
const VMODUW
const VMRGEW
const VMRGHB
const VMRGHH
const VMRGHW
const VMRGLB
const VMRGLH
const VMRGLW
const VMRGOW
const VMSUMCUD
const VMSUMMBM
const VMSUMSHM
const VMSUMSHS
const VMSUMUBM
const VMSUMUDM
const VMSUMUHM
const VMSUMUHS
const VMUL10CUQ
const VMUL10ECUQ
const VMUL10EUQ
const VMUL10UQ
const VMULESB
const VMULESD
const VMULESH
const VMULESW
const VMULEUB
const VMULEUD
const VMULEUH
const VMULEUW
const VMULHSD
const VMULHSW
const VMULHUD
const VMULHUW
const VMULLD
const VMULOSB
const VMULOSD
const VMULOSH
const VMULOSW
const VMULOUB
const VMULOUD
const VMULOUH
const VMULOUW
const VMULUWM
const VNAND
const VNCIPHER
const VNCIPHERLAST
const VNEGD
const VNEGW
const VNMSUBFP
const VNOR
const VOR
const VORC
const VPDEPD
const VPERM
const VPERMR
const VPERMXOR
const VPEXTD
const VPKPX
const VPKSDSS
const VPKSDUS
const VPKSHSS
const VPKSHUS
const VPKSWSS
const VPKSWUS
const VPKUDUM
const VPKUDUS
const VPKUHUM
const VPKUHUS
const VPKUWUM
const VPKUWUS
const VPMSUMB
const VPMSUMD
const VPMSUMH
const VPMSUMW
const VPOPCNTB
const VPOPCNTD
const VPOPCNTH
const VPOPCNTW
const VPRTYBD
const VPRTYBQ
const VPRTYBW
const VREFP
const VRFIM
const VRFIN
const VRFIP
const VRFIZ
const VRLB
const VRLD
const VRLDMI
const VRLDNM
const VRLH
const VRLQ
const VRLQMI
const VRLQNM
const VRLW
const VRLWMI
const VRLWNM
const VRSQRTEFP
const VS0
const VS1
const VS10
const VS11
const VS12
const VS13
const VS14
const VS15
const VS16
const VS17
const VS18
const VS19
const VS2
const VS20
const VS21
const VS22
const VS23
const VS24
const VS25
const VS26
const VS27
const VS28
const VS29
const VS3
const VS30
const VS31
const VS32
const VS33
const VS34
const VS35
const VS36
const VS37
const VS38
const VS39
const VS4
const VS40
const VS41
const VS42
const VS43
const VS44
const VS45
const VS46
const VS47
const VS48
const VS49
const VS5
const VS50
const VS51
const VS52
const VS53
const VS54
const VS55
const VS56
const VS57
const VS58
const VS59
const VS6
const VS60
const VS61
const VS62
const VS63
const VS7
const VS8
const VS9
const VSBOX
const VSEL
const VSHASIGMAD
const VSHASIGMAW
const VSL
const VSLB
const VSLD
const VSLDBI
const VSLDOI
const VSLH
const VSLO
const VSLQ
const VSLV
const VSLW
const VSPLTB
const VSPLTH
const VSPLTISB
const VSPLTISH
const VSPLTISW
const VSPLTW
const VSR
const VSRAB
const VSRAD
const VSRAH
const VSRAQ
const VSRAW
const VSRB
const VSRD
const VSRDBI
const VSRH
const VSRO
const VSRQ
const VSRV
const VSRW
const VSTRIBL
const VSTRIBLCC
const VSTRIBR
const VSTRIBRCC
const VSTRIHL
const VSTRIHLCC
const VSTRIHR
const VSTRIHRCC
const VSUBCUQ
const VSUBCUW
const VSUBECUQ
const VSUBEUQM
const VSUBFP
const VSUBSBS
const VSUBSHS
const VSUBSWS
const VSUBUBM
const VSUBUBS
const VSUBUDM
const VSUBUHM
const VSUBUHS
const VSUBUQM
const VSUBUWM
const VSUBUWS
const VSUM2SWS
const VSUM4SBS
const VSUM4SHS
const VSUM4UBS
const VSUMSWS
const VUPKHPX
const VUPKHSB
const VUPKHSH
const VUPKHSW
const VUPKLPX
const VUPKLSB
const VUPKLSH
const VUPKLSW
const VXOR
const WAIT
const XOR
const XORCC
const XORI
const XORIS
const XSABSDP
const XSABSQP
const XSADDDP
const XSADDQP
const XSADDQPO
const XSADDSP
const XSCMPEQDP
const XSCMPEQQP
const XSCMPEXPDP
const XSCMPEXPQP
const XSCMPGEDP
const XSCMPGEQP
const XSCMPGTDP
const XSCMPGTQP
const XSCMPODP
const XSCMPOQP
const XSCMPUDP
const XSCMPUQP
const XSCPSGNDP
const XSCPSGNQP
const XSCVDPHP
const XSCVDPQP
const XSCVDPSP
const XSCVDPSPN
const XSCVDPSXDS
const XSCVDPSXWS
const XSCVDPUXDS
const XSCVDPUXWS
const XSCVHPDP
const XSCVQPDP
const XSCVQPDPO
const XSCVQPSDZ
const XSCVQPSQZ
const XSCVQPSWZ
const XSCVQPUDZ
const XSCVQPUQZ
const XSCVQPUWZ
const XSCVSDQP
const XSCVSPDP
const XSCVSPDPN
const XSCVSQQP
const XSCVSXDDP
const XSCVSXDSP
const XSCVUDQP
const XSCVUQQP
const XSCVUXDDP
const XSCVUXDSP
const XSDIVDP
const XSDIVQP
const XSDIVQPO
const XSDIVSP
const XSIEXPDP
const XSIEXPQP
const XSMADDADP
const XSMADDASP
const XSMADDMDP
const XSMADDMSP
const XSMADDQP
const XSMADDQPO
const XSMAXCDP
const XSMAXCQP
const XSMAXDP
const XSMAXJDP
const XSMINCDP
const XSMINCQP
const XSMINDP
const XSMINJDP
const XSMSUBADP
const XSMSUBASP
const XSMSUBMDP
const XSMSUBMSP
const XSMSUBQP
const XSMSUBQPO
const XSMULDP
const XSMULQP
const XSMULQPO
const XSMULSP
const XSNABSDP
const XSNABSQP
const XSNEGDP
const XSNEGQP
const XSNMADDADP
const XSNMADDASP
const XSNMADDMDP
const XSNMADDMSP
const XSNMADDQP
const XSNMADDQPO
const XSNMSUBADP
const XSNMSUBASP
const XSNMSUBMDP
const XSNMSUBMSP
const XSNMSUBQP
const XSNMSUBQPO
const XSRDPI
const XSRDPIC
const XSRDPIM
const XSRDPIP
const XSRDPIZ
const XSREDP
const XSRESP
const XSRQPI
const XSRQPIX
const XSRQPXP
const XSRSP
const XSRSQRTEDP
const XSRSQRTESP
const XSSQRTDP
const XSSQRTQP
const XSSQRTQPO
const XSSQRTSP
const XSSUBDP
const XSSUBQP
const XSSUBQPO
const XSSUBSP
const XSTDIVDP
const XSTSQRTDP
const XSTSTDCDP
const XSTSTDCQP
const XSTSTDCSP
const XSXEXPDP
const XSXEXPQP
const XSXSIGDP
const XSXSIGQP
const XVABSDP
const XVABSSP
const XVADDDP
const XVADDSP
const XVBF16GER2
const XVBF16GER2NN
const XVBF16GER2NP
const XVBF16GER2PN
const XVBF16GER2PP
const XVCMPEQDP
const XVCMPEQDPCC
const XVCMPEQSP
const XVCMPEQSPCC
const XVCMPGEDP
const XVCMPGEDPCC
const XVCMPGESP
const XVCMPGESPCC
const XVCMPGTDP
const XVCMPGTDPCC
const XVCMPGTSP
const XVCMPGTSPCC
const XVCPSGNDP
const XVCPSGNSP
const XVCVBF16SPN
const XVCVDPSP
const XVCVDPSXDS
const XVCVDPSXWS
const XVCVDPUXDS
const XVCVDPUXWS
const XVCVHPSP
const XVCVSPBF16
const XVCVSPDP
const XVCVSPHP
const XVCVSPSXDS
const XVCVSPSXWS
const XVCVSPUXDS
const XVCVSPUXWS
const XVCVSXDDP
const XVCVSXDSP
const XVCVSXWDP
const XVCVSXWSP
const XVCVUXDDP
const XVCVUXDSP
const XVCVUXWDP
const XVCVUXWSP
const XVDIVDP
const XVDIVSP
const XVF16GER2
const XVF16GER2NN
const XVF16GER2NP
const XVF16GER2PN
const XVF16GER2PP
const XVF32GER
const XVF32GERNN
const XVF32GERNP
const XVF32GERPN
const XVF32GERPP
const XVF64GER
const XVF64GERNN
const XVF64GERNP
const XVF64GERPN
const XVF64GERPP
const XVI16GER2
const XVI16GER2PP
const XVI16GER2S
const XVI16GER2SPP
const XVI4GER8
const XVI4GER8PP
const XVI8GER4
const XVI8GER4PP
const XVI8GER4SPP
const XVIEXPDP
const XVIEXPSP
const XVMADDADP
const XVMADDASP
const XVMADDMDP
const XVMADDMSP
const XVMAXDP
const XVMAXSP
const XVMINDP
const XVMINSP
const XVMSUBADP
const XVMSUBASP
const XVMSUBMDP
const XVMSUBMSP
const XVMULDP
const XVMULSP
const XVNABSDP
const XVNABSSP
const XVNEGDP
const XVNEGSP
const XVNMADDADP
const XVNMADDASP
const XVNMADDMDP
const XVNMADDMSP
const XVNMSUBADP
const XVNMSUBASP
const XVNMSUBMDP
const XVNMSUBMSP
const XVRDPI
const XVRDPIC
const XVRDPIM
const XVRDPIP
const XVRDPIZ
const XVREDP
const XVRESP
const XVRSPI
const XVRSPIC
const XVRSPIM
const XVRSPIP
const XVRSPIZ
const XVRSQRTEDP
const XVRSQRTESP
const XVSQRTDP
const XVSQRTSP
const XVSUBDP
const XVSUBSP
const XVTDIVDP
const XVTDIVSP
const XVTLSBB
const XVTSQRTDP
const XVTSQRTSP
const XVTSTDCDP
const XVTSTDCSP
const XVXEXPDP
const XVXEXPSP
const XVXSIGDP
const XVXSIGSP
const XXBLENDVB
const XXBLENDVD
const XXBLENDVH
const XXBLENDVW
const XXBRD
const XXBRH
const XXBRQ
const XXBRW
const XXEVAL
const XXEXTRACTUW
const XXGENPCVBM
const XXGENPCVDM
const XXGENPCVHM
const XXGENPCVWM
const XXINSERTW
const XXLAND
const XXLANDC
const XXLEQV
const XXLNAND
const XXLNOR
const XXLOR
const XXLORC
const XXLXOR
const XXMFACC
const XXMRGHW
const XXMRGLW
const XXMTACC
const XXPERM
const XXPERMDI
const XXPERMR
const XXPERMX
const XXSEL
const XXSETACCZ
const XXSLDWI
const XXSPLTI32DX
const XXSPLTIB
const XXSPLTIDP
const XXSPLTIW
const XXSPLTW
const _ Reg = iota
const _ Op = iota
const _ CondReg = iota
var ap_CondRegBit_11_15 = *ast.UnaryExpr
var ap_CondRegBit_16_20 = *ast.UnaryExpr
var ap_CondRegBit_21_25 = *ast.UnaryExpr
var ap_CondRegBit_6_10 = *ast.UnaryExpr
var ap_CondRegField_11_13 = *ast.UnaryExpr
var ap_CondRegField_6_8 = *ast.UnaryExpr
var ap_FPReg_11_15 = *ast.UnaryExpr
var ap_FPReg_16_20 = *ast.UnaryExpr
var ap_FPReg_21_25 = *ast.UnaryExpr
var ap_FPReg_38_42 = *ast.UnaryExpr
var ap_FPReg_6_10 = *ast.UnaryExpr
var ap_ImmSigned_11_15 = *ast.UnaryExpr
var ap_ImmSigned_14_31_48_63 = *ast.UnaryExpr
var ap_ImmSigned_16_25_11_15_31_31 = *ast.UnaryExpr
var ap_ImmSigned_16_31 = *ast.UnaryExpr
var ap_ImmUnsigned_10_10 = *ast.UnaryExpr
var ap_ImmUnsigned_10_15 = *ast.UnaryExpr
var ap_ImmUnsigned_11_11 = *ast.UnaryExpr
var ap_ImmUnsigned_11_12 = *ast.UnaryExpr
var ap_ImmUnsigned_11_15 = *ast.UnaryExpr
var ap_ImmUnsigned_11_20 = *ast.UnaryExpr
var ap_ImmUnsigned_12_13 = *ast.UnaryExpr
var ap_ImmUnsigned_12_15 = *ast.UnaryExpr
var ap_ImmUnsigned_12_19 = *ast.UnaryExpr
var ap_ImmUnsigned_13_15 = *ast.UnaryExpr
var ap_ImmUnsigned_13_20 = *ast.UnaryExpr
var ap_ImmUnsigned_14_14 = *ast.UnaryExpr
var ap_ImmUnsigned_14_15 = *ast.UnaryExpr
var ap_ImmUnsigned_15_15 = *ast.UnaryExpr
var ap_ImmUnsigned_16_16 = *ast.UnaryExpr
var ap_ImmUnsigned_16_17 = *ast.UnaryExpr
var ap_ImmUnsigned_16_19 = *ast.UnaryExpr
var ap_ImmUnsigned_16_20 = *ast.UnaryExpr
var ap_ImmUnsigned_16_21 = *ast.UnaryExpr
var ap_ImmUnsigned_16_23 = *ast.UnaryExpr
var ap_ImmUnsigned_16_25_11_15_31_31 = *ast.UnaryExpr
var ap_ImmUnsigned_16_31 = *ast.UnaryExpr
var ap_ImmUnsigned_16_31_48_63 = *ast.UnaryExpr
var ap_ImmUnsigned_17_20 = *ast.UnaryExpr
var ap_ImmUnsigned_18_20 = *ast.UnaryExpr
var ap_ImmUnsigned_19_20 = *ast.UnaryExpr
var ap_ImmUnsigned_20_20 = *ast.UnaryExpr
var ap_ImmUnsigned_20_26 = *ast.UnaryExpr
var ap_ImmUnsigned_21_22 = *ast.UnaryExpr
var ap_ImmUnsigned_21_25 = *ast.UnaryExpr
var ap_ImmUnsigned_22_22 = *ast.UnaryExpr
var ap_ImmUnsigned_22_23 = *ast.UnaryExpr
var ap_ImmUnsigned_22_25 = *ast.UnaryExpr
var ap_ImmUnsigned_23_25 = *ast.UnaryExpr
var ap_ImmUnsigned_24_27 = *ast.UnaryExpr
var ap_ImmUnsigned_24_31 = *ast.UnaryExpr
var ap_ImmUnsigned_25_25_29_29_11_15 = *ast.UnaryExpr
var ap_ImmUnsigned_26_26_21_25 = *ast.UnaryExpr
var ap_ImmUnsigned_26_30 = *ast.UnaryExpr
var ap_ImmUnsigned_28_29 = *ast.UnaryExpr
var ap_ImmUnsigned_28_31 = *ast.UnaryExpr
var ap_ImmUnsigned_29_31 = *ast.UnaryExpr
var ap_ImmUnsigned_30_30_16_20 = *ast.UnaryExpr
var ap_ImmUnsigned_31_31 = *ast.UnaryExpr
var ap_ImmUnsigned_46_46 = *ast.UnaryExpr
var ap_ImmUnsigned_6_10 = *ast.UnaryExpr
var ap_ImmUnsigned_6_6 = *ast.UnaryExpr
var ap_ImmUnsigned_6_8 = *ast.UnaryExpr
var ap_ImmUnsigned_7_10 = *ast.UnaryExpr
var ap_ImmUnsigned_7_14 = *ast.UnaryExpr
var ap_ImmUnsigned_8_10 = *ast.UnaryExpr
var ap_ImmUnsigned_9_10 = *ast.UnaryExpr
var ap_ImmUnsigned_9_15 = *ast.UnaryExpr
var ap_Label_16_29_shift2 = *ast.UnaryExpr
var ap_Label_6_29_shift2 = *ast.UnaryExpr
var ap_MMAReg_38_40 = *ast.UnaryExpr
var ap_MMAReg_6_8 = *ast.UnaryExpr
var ap_NegOffset_31_31_6_10_shift3 = *ast.UnaryExpr
var ap_Offset_14_31_48_63 = *ast.UnaryExpr
var ap_Offset_16_27_shift4 = *ast.UnaryExpr
var ap_Offset_16_29_shift2 = *ast.UnaryExpr
var ap_Offset_16_31 = *ast.UnaryExpr
var ap_PCRel_16_29_shift2 = *ast.UnaryExpr
var ap_PCRel_6_29_shift2 = *ast.UnaryExpr
var ap_Reg_11_15 = *ast.UnaryExpr
var ap_Reg_16_20 = *ast.UnaryExpr
var ap_Reg_21_25 = *ast.UnaryExpr
var ap_Reg_38_42 = *ast.UnaryExpr
var ap_Reg_43_47 = *ast.UnaryExpr
var ap_Reg_6_10 = *ast.UnaryExpr
var ap_SpReg_16_20_11_15 = *ast.UnaryExpr
var ap_VecReg_11_15 = *ast.UnaryExpr
var ap_VecReg_16_20 = *ast.UnaryExpr
var ap_VecReg_21_25 = *ast.UnaryExpr
var ap_VecReg_38_42 = *ast.UnaryExpr
var ap_VecReg_6_10 = *ast.UnaryExpr
var ap_VecSReg_28_28_21_25 = *ast.UnaryExpr
var ap_VecSReg_28_28_6_10 = *ast.UnaryExpr
var ap_VecSReg_29_29_11_15 = *ast.UnaryExpr
var ap_VecSReg_30_30_16_20 = *ast.UnaryExpr
var ap_VecSReg_31_31_6_10 = *ast.UnaryExpr
var ap_VecSReg_37_37_38_42 = *ast.UnaryExpr
var ap_VecSReg_47_47_38_42 = *ast.UnaryExpr
var ap_VecSReg_60_60_53_57 = *ast.UnaryExpr
var ap_VecSReg_61_61_43_47 = *ast.UnaryExpr
var ap_VecSReg_62_62_48_52 = *ast.UnaryExpr
var ap_VecSReg_63_63_38_42 = *ast.UnaryExpr
var ap_VecSpReg_10_10_6_9 = *ast.UnaryExpr
var ap_VecSpReg_42_42_38_41 = *ast.UnaryExpr
bit 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 = false
var decoderCover []bool
Errors
var errShort = *ast.CallExpr
var errUnknown = *ast.CallExpr
Three 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.CallExpr
var 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.CallExpr
var opstr = [...]string{...}
plan9OpMap maps an Op to its Plan 9 mnemonics, if different than its GNU mnemonics.
var plan9OpMap = map[Op]string{...}
const prefixOpcode = 1
revCondMap maps a conditional register bit to its inverse, if possible.
var revCondMap = map[string]string{...}
type ArgType int8
An Args holds the instruction arguments. If an instruction has fewer than 6 arguments, the final elements in the array are nil.
type Args [6]Arg
BitFields is a series of BitFields representing a single number.
type BitFields []BitField
CondReg is a bit or field in the condition register.
type CondReg int8
Imm represents an immediate number.
type Imm int64
A Label is a code (text) address, used only in absolute branch instructions.
type Label uint32
Offset represents a memory offset immediate.
type Offset int64
An Op is an instruction operation.
type Op uint16
PCRel is a PC-relative offset, used only in branch instructions.
type PCRel int32
A Reg is a single register. The zero value means R0, not the absence of a register. It also includes special registers.
type Reg uint16
SpReg is a special register, its meaning depends on Op.
type SpReg uint16
An 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) string
func (t ArgType) GoString() string
GoSyntax 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)) string
func (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() int
Parse 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) uint32
Parse parses the Arg out from the given binary instruction i.
func (a argField) Parse(i [2]uint32) Arg
Parse 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) uint64
ParseSigned 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) int64
ParseSigned 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) int32
func (s SpReg) String() string
func (b BitField) String() string
func (r Reg) String() string
func (o Op) String() string
func (r PCRel) String() string
func (i Inst) String() string
func (l Label) String() string
func (t ArgType) String() string
func (i Imm) String() string
func (c CondReg) String() string
func (o Offset) String() string
func (bs BitFields) String() string
gnuArg 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) string
isLoadStoreOp returns true if op is a load or store instruction
func isLoadStoreOp(op Op) bool
parse 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)) string
removeArg removes the arg in inst.Args[index].
func removeArg(inst *Inst, index int)
func reverseMiddleOps(op Op) bool
func reverseOperandOrder(op Op) bool
Generated with Arrow