type Kind …
type Index …
type Family …
func (f *Family) define(s Spec, idx Index, name string, flags ...Info) Physical { … }
func (f *Family) add(r Physical) { … }
func (f *Family) Virtual(idx Index, s Spec) Virtual { … }
func (f *Family) Registers() []Physical { … }
func (f *Family) Lookup(idx Index, s Spec) Physical { … }
type ID …
func newid(v uint8, kind Kind, idx Index) ID { … }
func (id ID) IsVirtual() bool { … }
func (id ID) IsPhysical() bool { … }
func (id ID) Kind() Kind { … }
func (id ID) Index() Index { … }
type Register …
func Equal(a, b Register) bool { … }
type Virtual …
func ToVirtual(r Register) Virtual { … }
type virtual …
func NewVirtual(idx Index, k Kind, s Spec) Virtual { … }
func (v virtual) ID() ID { … }
func (v virtual) VirtualIndex() Index { … }
func (v virtual) Kind() Kind { … }
func (v virtual) Asm() string { … }
func (v virtual) as(s Spec) Register { … }
func (v virtual) spec() Spec { … }
func (v virtual) register() { … }
type Info …
const None …
const Restricted …
const BasePointer …
type Physical …
func ToPhysical(r Register) Physical { … }
type register …
func newregister(f *Family, s Spec, idx Index, name string, flags ...Info) register { … }
func (r register) ID() ID { … }
func (r register) PhysicalIndex() Index { … }
func (r register) Kind() Kind { … }
func (r register) Asm() string { … }
func (r register) Info() Info { … }
func (r register) as(s Spec) Register { … }
func (r register) spec() Spec { … }
func (r register) register() { … }
type Spec …
const S0 …
const S8L …
const S8H …
const S8 …
const S16 …
const S32 …
const S64 …
const S128 …
const S256 …
const S512 …
func (s Spec) Mask() uint16 { … }
func (s Spec) Size() uint { … }
func LookupPhysical(k Kind, idx Index, s Spec) Physical { … }
func LookupID(id ID, s Spec) Physical { … }
type Allocation …
func NewEmptyAllocation() Allocation { … }
func (a Allocation) Merge(b Allocation) error { … }
func (a Allocation) LookupDefault(id ID) ID { … }
func (a Allocation) LookupRegister(r Register) Physical { … }
func (a Allocation) LookupRegisterDefault(r Register) Register { … }