...

Package riscv64asm

import "cmd/vendor/golang.org/x/arch/riscv64/riscv64asm"
Overview
Index

Overview ▾

func GNUSyntax

func GNUSyntax(inst Inst) string

GNUSyntax returns the GNU assembler syntax for the instruction, as defined by GNU binutils. This form typically matches the syntax defined in the RISC-V Instruction Set Manual. See https://github.com/riscv/riscv-isa-manual/releases/download/Ratified-IMAFDQC/riscv-spec-20191213.pdf

func GoSyntax

func GoSyntax(inst Inst, pc uint64, symname func(uint64) (string, uint64), text io.ReaderAt) string

GoSyntax 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.

type AmoReg

An AmoReg is an atomic address register used in AMO instructions

type AmoReg struct {
    // contains filtered or unexported fields
}

func (AmoReg) String

func (amoReg AmoReg) String() string

type Arg

An Arg is a single instruction argument.

type Arg interface {
    String() string
}

type Args

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

type CSR

A CSR is a single control and status register. Use stringer to generate CSR match table.

type CSR uint16
const (
    // Control status register
    USTATUS        CSR = 0x0000
    FFLAGS         CSR = 0x0001
    FRM            CSR = 0x0002
    FCSR           CSR = 0x0003
    UIE            CSR = 0x0004
    UTVEC          CSR = 0x0005
    UTVT           CSR = 0x0007
    VSTART         CSR = 0x0008
    VXSAT          CSR = 0x0009
    VXRM           CSR = 0x000a
    VCSR           CSR = 0x000f
    USCRATCH       CSR = 0x0040
    UEPC           CSR = 0x0041
    UCAUSE         CSR = 0x0042
    UTVAL          CSR = 0x0043
    UIP            CSR = 0x0044
    UNXTI          CSR = 0x0045
    UINTSTATUS     CSR = 0x0046
    USCRATCHCSW    CSR = 0x0048
    USCRATCHCSWL   CSR = 0x0049
    SSTATUS        CSR = 0x0100
    SEDELEG        CSR = 0x0102
    SIDELEG        CSR = 0x0103
    SIE            CSR = 0x0104
    STVEC          CSR = 0x0105
    SCOUNTEREN     CSR = 0x0106
    STVT           CSR = 0x0107
    SSCRATCH       CSR = 0x0140
    SEPC           CSR = 0x0141
    SCAUSE         CSR = 0x0142
    STVAL          CSR = 0x0143
    SIP            CSR = 0x0144
    SNXTI          CSR = 0x0145
    SINTSTATUS     CSR = 0x0146
    SSCRATCHCSW    CSR = 0x0148
    SSCRATCHCSWL   CSR = 0x0149
    SATP           CSR = 0x0180
    VSSTATUS       CSR = 0x0200
    VSIE           CSR = 0x0204
    VSTVEC         CSR = 0x0205
    VSSCRATCH      CSR = 0x0240
    VSEPC          CSR = 0x0241
    VSCAUSE        CSR = 0x0242
    VSTVAL         CSR = 0x0243
    VSIP           CSR = 0x0244
    VSATP          CSR = 0x0280
    MSTATUS        CSR = 0x0300
    MISA           CSR = 0x0301
    MEDELEG        CSR = 0x0302
    MIDELEG        CSR = 0x0303
    MIE            CSR = 0x0304
    MTVEC          CSR = 0x0305
    MCOUNTEREN     CSR = 0x0306
    MTVT           CSR = 0x0307
    MSTATUSH       CSR = 0x0310
    MCOUNTINHIBIT  CSR = 0x0320
    MHPMEVENT3     CSR = 0x0323
    MHPMEVENT4     CSR = 0x0324
    MHPMEVENT5     CSR = 0x0325
    MHPMEVENT6     CSR = 0x0326
    MHPMEVENT7     CSR = 0x0327
    MHPMEVENT8     CSR = 0x0328
    MHPMEVENT9     CSR = 0x0329
    MHPMEVENT10    CSR = 0x032a
    MHPMEVENT11    CSR = 0x032b
    MHPMEVENT12    CSR = 0x032c
    MHPMEVENT13    CSR = 0x032d
    MHPMEVENT14    CSR = 0x032e
    MHPMEVENT15    CSR = 0x032f
    MHPMEVENT16    CSR = 0x0330
    MHPMEVENT17    CSR = 0x0331
    MHPMEVENT18    CSR = 0x0332
    MHPMEVENT19    CSR = 0x0333
    MHPMEVENT20    CSR = 0x0334
    MHPMEVENT21    CSR = 0x0335
    MHPMEVENT22    CSR = 0x0336
    MHPMEVENT23    CSR = 0x0337
    MHPMEVENT24    CSR = 0x0338
    MHPMEVENT25    CSR = 0x0339
    MHPMEVENT26    CSR = 0x033a
    MHPMEVENT27    CSR = 0x033b
    MHPMEVENT28    CSR = 0x033c
    MHPMEVENT29    CSR = 0x033d
    MHPMEVENT30    CSR = 0x033e
    MHPMEVENT31    CSR = 0x033f
    MSCRATCH       CSR = 0x0340
    MEPC           CSR = 0x0341
    MCAUSE         CSR = 0x0342
    MTVAL          CSR = 0x0343
    MIP            CSR = 0x0344
    MNXTI          CSR = 0x0345
    MINTSTATUS     CSR = 0x0346
    MSCRATCHCSW    CSR = 0x0348
    MSCRATCHCSWL   CSR = 0x0349
    MTINST         CSR = 0x034a
    MTVAL2         CSR = 0x034b
    PMPCFG0        CSR = 0x03a0
    PMPCFG1        CSR = 0x03a1
    PMPCFG2        CSR = 0x03a2
    PMPCFG3        CSR = 0x03a3
    PMPADDR0       CSR = 0x03b0
    PMPADDR1       CSR = 0x03b1
    PMPADDR2       CSR = 0x03b2
    PMPADDR3       CSR = 0x03b3
    PMPADDR4       CSR = 0x03b4
    PMPADDR5       CSR = 0x03b5
    PMPADDR6       CSR = 0x03b6
    PMPADDR7       CSR = 0x03b7
    PMPADDR8       CSR = 0x03b8
    PMPADDR9       CSR = 0x03b9
    PMPADDR10      CSR = 0x03ba
    PMPADDR11      CSR = 0x03bb
    PMPADDR12      CSR = 0x03bc
    PMPADDR13      CSR = 0x03bd
    PMPADDR14      CSR = 0x03be
    PMPADDR15      CSR = 0x03bf
    HSTATUS        CSR = 0x0600
    HEDELEG        CSR = 0x0602
    HIDELEG        CSR = 0x0603
    HIE            CSR = 0x0604
    HTIMEDELTA     CSR = 0x0605
    HCOUNTEREN     CSR = 0x0606
    HGEIE          CSR = 0x0607
    HTIMEDELTAH    CSR = 0x0615
    HTVAL          CSR = 0x0643
    HIP            CSR = 0x0644
    HVIP           CSR = 0x0645
    HTINST         CSR = 0x064a
    HGATP          CSR = 0x0680
    TSELECT        CSR = 0x07a0
    TDATA1         CSR = 0x07a1
    TDATA2         CSR = 0x07a2
    TDATA3         CSR = 0x07a3
    TINFO          CSR = 0x07a4
    TCONTROL       CSR = 0x07a5
    MCONTEXT       CSR = 0x07a8
    MNOISE         CSR = 0x07a9
    SCONTEXT       CSR = 0x07aa
    DCSR           CSR = 0x07b0
    DPC            CSR = 0x07b1
    DSCRATCH0      CSR = 0x07b2
    DSCRATCH1      CSR = 0x07b3
    MCYCLE         CSR = 0x0b00
    MINSTRET       CSR = 0x0b02
    MHPMCOUNTER3   CSR = 0x0b03
    MHPMCOUNTER4   CSR = 0x0b04
    MHPMCOUNTER5   CSR = 0x0b05
    MHPMCOUNTER6   CSR = 0x0b06
    MHPMCOUNTER7   CSR = 0x0b07
    MHPMCOUNTER8   CSR = 0x0b08
    MHPMCOUNTER9   CSR = 0x0b09
    MHPMCOUNTER10  CSR = 0x0b0a
    MHPMCOUNTER11  CSR = 0x0b0b
    MHPMCOUNTER12  CSR = 0x0b0c
    MHPMCOUNTER13  CSR = 0x0b0d
    MHPMCOUNTER14  CSR = 0x0b0e
    MHPMCOUNTER15  CSR = 0x0b0f
    MHPMCOUNTER16  CSR = 0x0b10
    MHPMCOUNTER17  CSR = 0x0b11
    MHPMCOUNTER18  CSR = 0x0b12
    MHPMCOUNTER19  CSR = 0x0b13
    MHPMCOUNTER20  CSR = 0x0b14
    MHPMCOUNTER21  CSR = 0x0b15
    MHPMCOUNTER22  CSR = 0x0b16
    MHPMCOUNTER23  CSR = 0x0b17
    MHPMCOUNTER24  CSR = 0x0b18
    MHPMCOUNTER25  CSR = 0x0b19
    MHPMCOUNTER26  CSR = 0x0b1a
    MHPMCOUNTER27  CSR = 0x0b1b
    MHPMCOUNTER28  CSR = 0x0b1c
    MHPMCOUNTER29  CSR = 0x0b1d
    MHPMCOUNTER30  CSR = 0x0b1e
    MHPMCOUNTER31  CSR = 0x0b1f
    MCYCLEH        CSR = 0x0b80
    MINSTRETH      CSR = 0x0b82
    MHPMCOUNTER3H  CSR = 0x0b83
    MHPMCOUNTER4H  CSR = 0x0b84
    MHPMCOUNTER5H  CSR = 0x0b85
    MHPMCOUNTER6H  CSR = 0x0b86
    MHPMCOUNTER7H  CSR = 0x0b87
    MHPMCOUNTER8H  CSR = 0x0b88
    MHPMCOUNTER9H  CSR = 0x0b89
    MHPMCOUNTER10H CSR = 0x0b8a
    MHPMCOUNTER11H CSR = 0x0b8b
    MHPMCOUNTER12H CSR = 0x0b8c
    MHPMCOUNTER13H CSR = 0x0b8d
    MHPMCOUNTER14H CSR = 0x0b8e
    MHPMCOUNTER15H CSR = 0x0b8f
    MHPMCOUNTER16H CSR = 0x0b90
    MHPMCOUNTER17H CSR = 0x0b91
    MHPMCOUNTER18H CSR = 0x0b92
    MHPMCOUNTER19H CSR = 0x0b93
    MHPMCOUNTER20H CSR = 0x0b94
    MHPMCOUNTER21H CSR = 0x0b95
    MHPMCOUNTER22H CSR = 0x0b96
    MHPMCOUNTER23H CSR = 0x0b97
    MHPMCOUNTER24H CSR = 0x0b98
    MHPMCOUNTER25H CSR = 0x0b99
    MHPMCOUNTER26H CSR = 0x0b9a
    MHPMCOUNTER27H CSR = 0x0b9b
    MHPMCOUNTER28H CSR = 0x0b9c
    MHPMCOUNTER29H CSR = 0x0b9d
    MHPMCOUNTER30H CSR = 0x0b9e
    MHPMCOUNTER31H CSR = 0x0b9f
    CYCLE          CSR = 0x0c00
    TIME           CSR = 0x0c01
    INSTRET        CSR = 0x0c02
    HPMCOUNTER3    CSR = 0x0c03
    HPMCOUNTER4    CSR = 0x0c04
    HPMCOUNTER5    CSR = 0x0c05
    HPMCOUNTER6    CSR = 0x0c06
    HPMCOUNTER7    CSR = 0x0c07
    HPMCOUNTER8    CSR = 0x0c08
    HPMCOUNTER9    CSR = 0x0c09
    HPMCOUNTER10   CSR = 0x0c0a
    HPMCOUNTER11   CSR = 0x0c0b
    HPMCOUNTER12   CSR = 0x0c0c
    HPMCOUNTER13   CSR = 0x0c0d
    HPMCOUNTER14   CSR = 0x0c0e
    HPMCOUNTER15   CSR = 0x0c0f
    HPMCOUNTER16   CSR = 0x0c10
    HPMCOUNTER17   CSR = 0x0c11
    HPMCOUNTER18   CSR = 0x0c12
    HPMCOUNTER19   CSR = 0x0c13
    HPMCOUNTER20   CSR = 0x0c14
    HPMCOUNTER21   CSR = 0x0c15
    HPMCOUNTER22   CSR = 0x0c16
    HPMCOUNTER23   CSR = 0x0c17
    HPMCOUNTER24   CSR = 0x0c18
    HPMCOUNTER25   CSR = 0x0c19
    HPMCOUNTER26   CSR = 0x0c1a
    HPMCOUNTER27   CSR = 0x0c1b
    HPMCOUNTER28   CSR = 0x0c1c
    HPMCOUNTER29   CSR = 0x0c1d
    HPMCOUNTER30   CSR = 0x0c1e
    HPMCOUNTER31   CSR = 0x0c1f
    VL             CSR = 0x0c20
    VTYPE          CSR = 0x0c21
    VLENB          CSR = 0x0c22
    CYCLEH         CSR = 0x0c80
    TIMEH          CSR = 0x0c81
    INSTRETH       CSR = 0x0c82
    HPMCOUNTER3H   CSR = 0x0c83
    HPMCOUNTER4H   CSR = 0x0c84
    HPMCOUNTER5H   CSR = 0x0c85
    HPMCOUNTER6H   CSR = 0x0c86
    HPMCOUNTER7H   CSR = 0x0c87
    HPMCOUNTER8H   CSR = 0x0c88
    HPMCOUNTER9H   CSR = 0x0c89
    HPMCOUNTER10H  CSR = 0x0c8a
    HPMCOUNTER11H  CSR = 0x0c8b
    HPMCOUNTER12H  CSR = 0x0c8c
    HPMCOUNTER13H  CSR = 0x0c8d
    HPMCOUNTER14H  CSR = 0x0c8e
    HPMCOUNTER15H  CSR = 0x0c8f
    HPMCOUNTER16H  CSR = 0x0c90
    HPMCOUNTER17H  CSR = 0x0c91
    HPMCOUNTER18H  CSR = 0x0c92
    HPMCOUNTER19H  CSR = 0x0c93
    HPMCOUNTER20H  CSR = 0x0c94
    HPMCOUNTER21H  CSR = 0x0c95
    HPMCOUNTER22H  CSR = 0x0c96
    HPMCOUNTER23H  CSR = 0x0c97
    HPMCOUNTER24H  CSR = 0x0c98
    HPMCOUNTER25H  CSR = 0x0c99
    HPMCOUNTER26H  CSR = 0x0c9a
    HPMCOUNTER27H  CSR = 0x0c9b
    HPMCOUNTER28H  CSR = 0x0c9c
    HPMCOUNTER29H  CSR = 0x0c9d
    HPMCOUNTER30H  CSR = 0x0c9e
    HPMCOUNTER31H  CSR = 0x0c9f
    HGEIP          CSR = 0x0e12
    MVENDORID      CSR = 0x0f11
    MARCHID        CSR = 0x0f12
    MIMPID         CSR = 0x0f13
    MHARTID        CSR = 0x0f14
    MENTROPY       CSR = 0x0f15
)

func (CSR) String

func (i CSR) String() string

type Inst

An Inst is a single instruction.

type Inst struct {
    Op   Op     // Opcode mnemonic.
    Enc  uint32 // Raw encoding bits.
    Args Args   // Instruction arguments, in RISC-V mamual order.
    Len  int    // Length of encoded instruction in bytes
}

func Decode

func Decode(src []byte) (Inst, error)

Decode decodes the 4 bytes in src as a single instruction.

func (Inst) String

func (i Inst) String() string

type MemOrder

A MemOrder is a memory order hint in fence instruction

type MemOrder uint8

func (MemOrder) String

func (memOrder MemOrder) String() string

type Op

An Op is a RISC-V opcode.

type Op uint16
const (
    ADD Op
    ADDI
    ADDIW
    ADDW
    ADD_UW
    AMOADD_D
    AMOADD_D_AQ
    AMOADD_D_AQRL
    AMOADD_D_RL
    AMOADD_W
    AMOADD_W_AQ
    AMOADD_W_AQRL
    AMOADD_W_RL
    AMOAND_D
    AMOAND_D_AQ
    AMOAND_D_AQRL
    AMOAND_D_RL
    AMOAND_W
    AMOAND_W_AQ
    AMOAND_W_AQRL
    AMOAND_W_RL
    AMOMAXU_D
    AMOMAXU_D_AQ
    AMOMAXU_D_AQRL
    AMOMAXU_D_RL
    AMOMAXU_W
    AMOMAXU_W_AQ
    AMOMAXU_W_AQRL
    AMOMAXU_W_RL
    AMOMAX_D
    AMOMAX_D_AQ
    AMOMAX_D_AQRL
    AMOMAX_D_RL
    AMOMAX_W
    AMOMAX_W_AQ
    AMOMAX_W_AQRL
    AMOMAX_W_RL
    AMOMINU_D
    AMOMINU_D_AQ
    AMOMINU_D_AQRL
    AMOMINU_D_RL
    AMOMINU_W
    AMOMINU_W_AQ
    AMOMINU_W_AQRL
    AMOMINU_W_RL
    AMOMIN_D
    AMOMIN_D_AQ
    AMOMIN_D_AQRL
    AMOMIN_D_RL
    AMOMIN_W
    AMOMIN_W_AQ
    AMOMIN_W_AQRL
    AMOMIN_W_RL
    AMOOR_D
    AMOOR_D_AQ
    AMOOR_D_AQRL
    AMOOR_D_RL
    AMOOR_W
    AMOOR_W_AQ
    AMOOR_W_AQRL
    AMOOR_W_RL
    AMOSWAP_D
    AMOSWAP_D_AQ
    AMOSWAP_D_AQRL
    AMOSWAP_D_RL
    AMOSWAP_W
    AMOSWAP_W_AQ
    AMOSWAP_W_AQRL
    AMOSWAP_W_RL
    AMOXOR_D
    AMOXOR_D_AQ
    AMOXOR_D_AQRL
    AMOXOR_D_RL
    AMOXOR_W
    AMOXOR_W_AQ
    AMOXOR_W_AQRL
    AMOXOR_W_RL
    AND
    ANDI
    ANDN
    AUIPC
    BCLR
    BCLRI
    BEQ
    BEXT
    BEXTI
    BGE
    BGEU
    BINV
    BINVI
    BLT
    BLTU
    BNE
    BSET
    BSETI
    CLZ
    CLZW
    CPOP
    CPOPW
    CSRRC
    CSRRCI
    CSRRS
    CSRRSI
    CSRRW
    CSRRWI
    CTZ
    CTZW
    C_ADD
    C_ADDI
    C_ADDI16SP
    C_ADDI4SPN
    C_ADDIW
    C_ADDW
    C_AND
    C_ANDI
    C_BEQZ
    C_BNEZ
    C_EBREAK
    C_FLD
    C_FLDSP
    C_FSD
    C_FSDSP
    C_J
    C_JALR
    C_JR
    C_LD
    C_LDSP
    C_LI
    C_LUI
    C_LW
    C_LWSP
    C_MV
    C_NOP
    C_OR
    C_SD
    C_SDSP
    C_SLLI
    C_SRAI
    C_SRLI
    C_SUB
    C_SUBW
    C_SW
    C_SWSP
    C_UNIMP
    C_XOR
    DIV
    DIVU
    DIVUW
    DIVW
    EBREAK
    ECALL
    FADD_D
    FADD_H
    FADD_Q
    FADD_S
    FCLASS_D
    FCLASS_H
    FCLASS_Q
    FCLASS_S
    FCVT_D_L
    FCVT_D_LU
    FCVT_D_Q
    FCVT_D_S
    FCVT_D_W
    FCVT_D_WU
    FCVT_H_L
    FCVT_H_LU
    FCVT_H_S
    FCVT_H_W
    FCVT_H_WU
    FCVT_LU_D
    FCVT_LU_H
    FCVT_LU_Q
    FCVT_LU_S
    FCVT_L_D
    FCVT_L_H
    FCVT_L_Q
    FCVT_L_S
    FCVT_Q_D
    FCVT_Q_L
    FCVT_Q_LU
    FCVT_Q_S
    FCVT_Q_W
    FCVT_Q_WU
    FCVT_S_D
    FCVT_S_H
    FCVT_S_L
    FCVT_S_LU
    FCVT_S_Q
    FCVT_S_W
    FCVT_S_WU
    FCVT_WU_D
    FCVT_WU_H
    FCVT_WU_Q
    FCVT_WU_S
    FCVT_W_D
    FCVT_W_H
    FCVT_W_Q
    FCVT_W_S
    FDIV_D
    FDIV_H
    FDIV_Q
    FDIV_S
    FENCE
    FENCE_I
    FEQ_D
    FEQ_H
    FEQ_Q
    FEQ_S
    FLD
    FLE_D
    FLE_H
    FLE_Q
    FLE_S
    FLH
    FLQ
    FLT_D
    FLT_H
    FLT_Q
    FLT_S
    FLW
    FMADD_D
    FMADD_H
    FMADD_Q
    FMADD_S
    FMAX_D
    FMAX_H
    FMAX_Q
    FMAX_S
    FMIN_D
    FMIN_H
    FMIN_Q
    FMIN_S
    FMSUB_D
    FMSUB_H
    FMSUB_Q
    FMSUB_S
    FMUL_D
    FMUL_H
    FMUL_Q
    FMUL_S
    FMV_D_X
    FMV_H_X
    FMV_W_X
    FMV_X_D
    FMV_X_H
    FMV_X_W
    FNMADD_D
    FNMADD_H
    FNMADD_Q
    FNMADD_S
    FNMSUB_D
    FNMSUB_H
    FNMSUB_Q
    FNMSUB_S
    FSD
    FSGNJN_D
    FSGNJN_H
    FSGNJN_Q
    FSGNJN_S
    FSGNJX_D
    FSGNJX_H
    FSGNJX_Q
    FSGNJX_S
    FSGNJ_D
    FSGNJ_H
    FSGNJ_Q
    FSGNJ_S
    FSH
    FSQ
    FSQRT_D
    FSQRT_H
    FSQRT_Q
    FSQRT_S
    FSUB_D
    FSUB_H
    FSUB_Q
    FSUB_S
    FSW
    JAL
    JALR
    LB
    LBU
    LD
    LH
    LHU
    LR_D
    LR_D_AQ
    LR_D_AQRL
    LR_D_RL
    LR_W
    LR_W_AQ
    LR_W_AQRL
    LR_W_RL
    LUI
    LW
    LWU
    MAX
    MAXU
    MIN
    MINU
    MUL
    MULH
    MULHSU
    MULHU
    MULW
    OR
    ORC_B
    ORI
    ORN
    REM
    REMU
    REMUW
    REMW
    REV8
    ROL
    ROLW
    ROR
    RORI
    RORIW
    RORW
    SB
    SC_D
    SC_D_AQ
    SC_D_AQRL
    SC_D_RL
    SC_W
    SC_W_AQ
    SC_W_AQRL
    SC_W_RL
    SD
    SEXT_B
    SEXT_H
    SH
    SH1ADD
    SH1ADD_UW
    SH2ADD
    SH2ADD_UW
    SH3ADD
    SH3ADD_UW
    SLL
    SLLI
    SLLIW
    SLLI_UW
    SLLW
    SLT
    SLTI
    SLTIU
    SLTU
    SRA
    SRAI
    SRAIW
    SRAW
    SRL
    SRLI
    SRLIW
    SRLW
    SUB
    SUBW
    SW
    XNOR
    XOR
    XORI
    ZEXT_H
)

func (Op) String

func (op Op) String() string

NOTE: The actual Op values are defined in tables.go.

type Reg

A Reg is a single register. The zero value denotes X0, not the absence of a register.

type Reg uint16
const (
    // General-purpose register
    X0 Reg = iota
    X1
    X2
    X3
    X4
    X5
    X6
    X7
    X8
    X9
    X10
    X11
    X12
    X13
    X14
    X15
    X16
    X17
    X18
    X19
    X20
    X21
    X22
    X23
    X24
    X25
    X26
    X27
    X28
    X29
    X30
    X31

    //Float point register
    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
)

func (Reg) String

func (r Reg) String() string

type RegOffset

A RegOffset is a register with offset value

type RegOffset struct {
    OfsReg Reg
    Ofs    Simm
}

func (RegOffset) String

func (regofs RegOffset) String() string

type Simm

A Simm is a signed immediate number

type Simm struct {
    Imm     int32 // 32-bit signed integer
    Decimal bool  // Print format of the immediate, either decimal or hexadecimal
    Width   uint8 // Actual width of the Simm
}

func (Simm) String

func (si Simm) String() string

type Uimm

An Uimm is an unsigned immediate number

type Uimm struct {
    Imm     uint32 // 32-bit unsigned integer
    Decimal bool   // Print format of the immediate, either decimal or hexadecimal
}

func (Uimm) String

func (ui Uimm) String() string