Functions
Init
function
#
func Init(arch *ssagen.ArchInfo)
genIndexedOperand
function
#
generate the memory operand for the indexed load/store instructions.
base and idx are registers.
func genIndexedOperand(op ssa.Op, base int16, idx int16) obj.Addr
genshift
function
#
genshift generates a Prog for r = r0 op (r1 shifted by n).
func genshift(s *ssagen.State, v *ssa.Value, as obj.As, r0 int16, r1 int16, r int16, typ int64, n int64) *obj.Prog
ginsnop
function
#
func ginsnop(pp *objw.Progs) *obj.Prog
loadByType
function
#
loadByType returns the load instruction of the given type.
func loadByType(t *types.Type) obj.As
loadByType2
function
#
loadByType2 returns an opcode that can load consecutive memory locations into 2 registers with type t.
returns obj.AXXX if no such opcode exists.
func loadByType2(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
makeshift
function
#
makeshift encodes a register shifted by a constant, used as an Offset in Prog.
func makeshift(v *ssa.Value, reg int16, typ int64, s int64) int64
padframe
function
#
func padframe(frame int64) int64
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)
storeByType
function
#
storeByType returns the store instruction of the given type.
func storeByType(t *types.Type) obj.As
storeByType2
function
#
storeByType2 returns an opcode that can store registers with type t into 2 consecutive memory locations.
returns obj.AXXX if no such opcode exists.
func storeByType2(t *types.Type) obj.As
zerorange
function
#
func zerorange(pp *objw.Progs, p *obj.Prog, off int64, cnt int64, _ *uint32) *obj.Prog