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