// ssaMarkMoves marks any MOVXconst ops that need to avoid clobbering flags. func ssaMarkMoves(s *ssagen.State, b *ssa.Block) { … } // loadByType returns the load instruction of the given type. func loadByType(t *types.Type) obj.As { … } // storeByType returns the store instruction of the given type. func storeByType(t *types.Type) obj.As { … } // moveByType returns the reg->reg move instruction of the given type. func moveByType(t *types.Type) obj.As { … } // 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, src int16) *obj.Prog { … } // 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, src int16, off int64) *obj.Prog { … } func ssaGenValue(s *ssagen.State, v *ssa.Value) { … } func blockAsm(b *ssa.Block) obj.As { … } func ssaGenBlock(s *ssagen.State, b, next *ssa.Block) { … }