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