riscv64

Imports

Imports #

"cmd/compile/internal/ssagen"
"cmd/internal/obj/riscv"
"cmd/compile/internal/base"
"cmd/compile/internal/ir"
"cmd/compile/internal/objw"
"cmd/compile/internal/types"
"cmd/internal/obj"
"cmd/internal/obj/riscv"
"cmd/compile/internal/objw"
"cmd/internal/obj"
"cmd/internal/obj/riscv"
"cmd/compile/internal/base"
"cmd/compile/internal/ir"
"cmd/compile/internal/logopt"
"cmd/compile/internal/objw"
"cmd/compile/internal/ssa"
"cmd/compile/internal/ssagen"
"cmd/compile/internal/types"
"cmd/internal/obj"
"cmd/internal/obj/riscv"

Constants & Variables

blockBranch var #

var blockBranch = [...]obj.As{...}

ssaRegToReg var #

ssaRegToReg maps ssa register numbers to obj register numbers.

var ssaRegToReg = []int16{...}

Functions

Init function #

func Init(arch *ssagen.ArchInfo)

ginsnop function #

func ginsnop(pp *objw.Progs) *obj.Prog

largestMove function #

largestMove returns the largest move instruction possible and its size, given the alignment of the total size of the move. e.g., a 16-byte move may use MOV, but an 11-byte move must use MOVB. Note that the moves may not be on naturally aligned addresses depending on the source and destination. This matches the calculation in ssa.moveSize.

func largestMove(alignment int64) (obj.As, int64)

loadByType function #

func loadByType(t *types.Type) obj.As

loadRegResult function #

func loadRegResult(s *ssagen.State, f *ssa.Func, t *types.Type, reg int16, n *ir.Name, off int64) *obj.Prog

spillArgReg function #

func spillArgReg(pp *objw.Progs, p *obj.Prog, f *ssa.Func, t *types.Type, reg int16, n *ir.Name, off int64) *obj.Prog

ssaGenBlock function #

func ssaGenBlock(s *ssagen.State, b *ssa.Block, next *ssa.Block)

ssaGenValue function #

func ssaGenValue(s *ssagen.State, v *ssa.Value)

ssaMarkMoves function #

ssaMarkMoves marks any MOVXconst ops that need to avoid clobbering flags. RISC-V has no flags, so this is a no-op.

func ssaMarkMoves(s *ssagen.State, b *ssa.Block)

storeByType function #

storeByType returns the store instruction of the given type.

func storeByType(t *types.Type) obj.As

zeroRange function #

func zeroRange(pp *objw.Progs, p *obj.Prog, off int64, cnt int64, _ *uint32) *obj.Prog

Generated with Arrow