Imports #
"cmd/compile/internal/base"
"cmd/compile/internal/objw"
"cmd/compile/internal/types"
"cmd/internal/obj"
"internal/abi"
"reflect"
"cmd/compile/internal/base"
"cmd/compile/internal/objw"
"cmd/compile/internal/types"
"cmd/internal/obj"
"internal/abi"
"reflect"
var ArrayType *types.Typevar ChanType *types.Typevar FuncType *types.TypeTypes that are parts of the types above.
var IMethod *types.TypeInterface tables (itabs)
var ITab *types.TypeType switches and asserts
var InterfaceSwitch *types.Typevar InterfaceType *types.Typevar Method *types.Typevar OldMapType *types.Typevar PtrType *types.Typevar SliceType *types.Typevar StructField *types.Typevar StructType *types.Typevar SwissMapType *types.TypeThe type structures shared with the runtime.
var Type *types.Typevar TypeAssert *types.Typevar UncommonType *types.Typetype ArrayCursor struct {
c Cursor
n int
}A Cursor represents a typed location inside a static variable where we are going to write.
type Cursor struct {
lsym *obj.LSym
offset int64
typ *types.Type
}Elem selects element i of the array pointed to by c.
func (a ArrayCursor) Elem(i int) Cursorfunc (c Cursor) Elem(i int64) CursorField selects the field with the given name from the struct pointed to by c.
func (c Cursor) Field(name string) Cursorfunc Init()ModifyArray converts a cursor pointing at a type [k]T to a cursor pointing at a type [n]T. Also returns the size delta, aka (n-k)*sizeof(T).
func (c Cursor) ModifyArray(n int) (ArrayCursor, int64)NewArrayCursor returns a cursor starting at lsym+off and having n copies of type t.
func NewArrayCursor(lsym *obj.LSym, off int64, t *types.Type, n int) ArrayCursorNewCursor returns a cursor starting at lsym+off and having type t.
func NewCursor(lsym *obj.LSym, off int64, t *types.Type) CursorReloc adds a relocation from the current cursor position. Reloc fills in Off and Siz fields. Caller should fill in the rest (Type, others).
func (c Cursor) Reloc(rel obj.Reloc)func (c Cursor) WriteBool(val bool)func (c Cursor) WriteInt(val int64)func (c Cursor) WriteInt32(val int32)WritePtr writes a pointer "target" to the component at the location specified by c.
func (c Cursor) WritePtr(target *obj.LSym)func (c Cursor) WritePtrWeak(target *obj.LSym)WriteSlice writes a slice header to c. The pointer is target+off, the len and cap fields are given.
func (c Cursor) WriteSlice(target *obj.LSym, off int64, len int64, cap int64)WriteSymPtrOff writes a "pointer" to the given symbol. The symbol is encoded as a uint32 offset from the start of the section.
func (c Cursor) WriteSymPtrOff(target *obj.LSym, weak bool)func (c Cursor) WriteUint16(val uint16)func (c Cursor) WriteUint32(val uint32)func (c Cursor) WriteUint8(val uint8)func (c Cursor) WriteUintptr(val uint64)fromReflect translates from a host type to the equivalent target type.
func fromReflect(rt reflect.Type) *types.TypereflectToType converts from a reflect.Type (which is a compiler host type) to a *types.Type, which is a target type. The result must be CalcSize'd before using.
func reflectToType(rt reflect.Type) *types.TypeGenerated with Arrow