Help us shape the future of Go! Take the 2026 Go Developer Survey

objw

package standard library
go1.27.3 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 20, 2026 License: BSD-3-Clause Imports: 8 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func BitVec

func BitVec(s *obj.LSym, off int, bv bitvec.BitVec) int

BitVec writes the contents of bv into s as sequence of bytes in little-endian order, and returns the next unused offset.

func Bool added in go1.22.0

func Bool(s *obj.LSym, off int, v bool) int

func Global

func Global(s *obj.LSym, width int32, flags int16)

func LosesStmtMark

func LosesStmtMark(as obj.As) bool

LosesStmtMark reports whether a prog with op as loses its statement mark on the way to DWARF. The attributes from some opcodes are lost in translation. TODO: this is an artifact of how funcpctab combines information for instructions at a single PC. Should try to fix it there.

func SymPtr

func SymPtr(s *obj.LSym, off int, x *obj.LSym, xoff int) int

func SymPtrOff

func SymPtrOff(s *obj.LSym, off int, x *obj.LSym) int

func SymPtrWeak

func SymPtrWeak(s *obj.LSym, off int, x *obj.LSym, xoff int) int

func SymPtrWeakOff

func SymPtrWeakOff(s *obj.LSym, off int, x *obj.LSym) int

func Uint8

func Uint8(s *obj.LSym, off int, v uint8) int

Uint8 writes an unsigned byte v into s at offset off, and returns the next unused offset (i.e., off+1).

func Uint16

func Uint16(s *obj.LSym, off int, v uint16) int

func Uint32

func Uint32(s *obj.LSym, off int, v uint32) int

func UintN

func UintN(s *obj.LSym, off int, v uint64, wid int) int

UintN writes an unsigned integer v of size wid bytes into s at offset off, and returns the next unused offset.

func Uintptr

func Uintptr(s *obj.LSym, off int, v uint64) int

func Uvarint added in go1.22.0

func Uvarint(s *obj.LSym, off int, v uint64) int

Uvarint writes a varint v into s at offset off, and returns the next unused offset.

Types

type Progs

type Progs struct {
	Text       *obj.Prog  // ATEXT Prog for this function
	Next       *obj.Prog  // next Prog
	PC         int64      // virtual PC; count of Progs
	Pos        src.XPos   // position to use for new Progs
	CurFunc    *ir.Func   // fn these Progs are for
	Cache      []obj.Prog // local progcache
	CacheIndex int        // first free element of progcache

	NextLive StackMapIndex // liveness index for the next Prog
	PrevLive StackMapIndex // last emitted liveness index

	NextUnsafe bool // unsafe mark for the next Prog
	PrevUnsafe bool // last emitted unsafe mark
}

Progs accumulates Progs for a function and converts them into machine code.

func NewProgs

func NewProgs(fn *ir.Func, worker int) *Progs

NewProgs returns a new Progs for fn. worker indicates which of the backend workers will use the Progs.

func (*Progs) Append

func (pp *Progs) Append(p *obj.Prog, as obj.As, ftype obj.AddrType, freg int16, foffset int64, ttype obj.AddrType, treg int16, toffset int64) *obj.Prog

func (*Progs) Clear

func (pp *Progs) Clear(p *obj.Prog)

func (*Progs) Flush

func (pp *Progs) Flush()

Flush converts from pp to machine code.

func (*Progs) Free

func (pp *Progs) Free()

Free clears pp and any associated resources.

func (*Progs) NewProg

func (pp *Progs) NewProg() *obj.Prog

func (*Progs) Prog

func (pp *Progs) Prog(as obj.As) *obj.Prog

Prog adds a Prog with instruction As to pp.

func (*Progs) SetText

func (pp *Progs) SetText(fn *ir.Func)

type StackMapIndex added in go1.22.0

type StackMapIndex int
const StackMapDontCare StackMapIndex = -1000

StackMapDontCare indicates that the stack map index at a Value doesn't matter.

This is a sentinel value that should never be emitted to the PCDATA stream. We use -1000 because that's obviously never a valid stack index (but -1 is).

func (StackMapIndex) StackMapValid added in go1.22.0

func (s StackMapIndex) StackMapValid() bool

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL