arm

Imports

Imports #

"cmd/compile/internal/ssa"
"cmd/compile/internal/ssagen"
"cmd/internal/obj/arm"
"internal/buildcfg"
"cmd/compile/internal/ir"
"cmd/compile/internal/objw"
"cmd/compile/internal/types"
"cmd/internal/obj"
"cmd/internal/obj/arm"
"fmt"
"internal/buildcfg"
"math"
"math/bits"
"cmd/compile/internal/base"
"cmd/compile/internal/ir"
"cmd/compile/internal/logopt"
"cmd/compile/internal/ssa"
"cmd/compile/internal/ssagen"
"cmd/compile/internal/types"
"cmd/internal/obj"
"cmd/internal/obj/arm"

Constants & Variables

blockJump var #

var blockJump = map[ssa.BlockKind]struct{...}{...}

condBits var #

var condBits = map[ssa.Op]uint8{...}

gtJumps var #

To model a 'GTnoov' ('>' without overflow checking) branching.

var gtJumps = [2][2]ssagen.IndexJump{...}

leJumps var #

To model a 'LEnoov' ('<=' without overflow checking) branching.

var leJumps = [2][2]ssagen.IndexJump{...}

Type Aliases

shift type #

shift type is used as Offset in obj.TYPE_SHIFT operands to encode shifted register operands.

type shift int64

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

Generated with Arrow