objw

package standard library
go1.22.1 Latest Latest
Warning

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

Go to latest
Published: Mar 5, 2024 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 Uint16

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

func Uint32

func Uint32(s *obj.LSym, off int, v uint32) 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 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