Functions
Init
function
#
func Init(arch *ssagen.ArchInfo)
String
method
#
copied from ../../../internal/obj/util.go:/TYPE_SHIFT
func (v shift) String() string
genregshift
function
#
genregshift generates a Prog for r = r0 op (r1 shifted by r2).
func genregshift(s *ssagen.State, as obj.As, r0 int16, r1 int16, r2 int16, r int16, typ int64) *obj.Prog
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
getBFC
function
#
find a (lsb, width) pair for BFC
lsb must be in [0, 31], width must be in [1, 32 - lsb]
return (0xffffffff, 0) if v is not a binary like 0...01...10...0
func getBFC(v uint32) (uint32, uint32)
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
makeregshift
function
#
makeregshift encodes a register shifted by a register.
func makeregshift(r1 int16, typ int64, r2 int16) shift
makeshift
function
#
makeshift encodes a register shifted by a constant.
func makeshift(v *ssa.Value, reg int16, typ int64, s int64) shift
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
zerorange
function
#
func zerorange(pp *objw.Progs, p *obj.Prog, off int64, cnt int64, r0 *uint32) *obj.Prog