s390x

Imports

Imports #

"cmd/compile/internal/ssagen"
"cmd/internal/obj/s390x"
"cmd/compile/internal/base"
"cmd/compile/internal/objw"
"cmd/internal/obj"
"cmd/internal/obj/s390x"
"math"
"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/s390x"

Constants & Variables

clearLoopCutoff const #

clearLoopCutOff is the (somewhat arbitrary) value above which it is better to have a loop of clear instructions (e.g. XCs) rather than just generating multiple instructions (i.e. loop unrolling). Must be between 256 and 4096.

const clearLoopCutoff = 1024

Functions

Init function #

func Init(arch *ssagen.ArchInfo)

blockAsm function #

func blockAsm(b *ssa.Block) obj.As

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

moveByType function #

moveByType returns the reg->reg move instruction of the given type.

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

opregreg function #

opregreg emits instructions for dest := dest(To) op src(From) and also returns the created obj.Prog so it may be further adjusted (offset, scale, etc).

func opregreg(s *ssagen.State, op obj.As, dest int16, src int16) *obj.Prog

opregregimm function #

opregregimm emits instructions for dest := src(From) op off and also returns the created obj.Prog so it may be further adjusted (offset, scale, etc).

func opregregimm(s *ssagen.State, op obj.As, dest int16, src int16, 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.

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 #

zerorange clears the stack in the given range.

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

Generated with Arrow