go/pkg/mod/github.com/mmcloughlin/[email protected]/pass/reg.go

// ZeroExtend32BitOutputs applies the rule that "32-bit operands generate a
// 32-bit result, zero-extended to a 64-bit result in the destination
// general-purpose register" (Intel Software Developer’s Manual, Volume 1,
// 3.4.1.1).
func ZeroExtend32BitOutputs(i *ir.Instruction) error {}

// Liveness computes register liveness.
func Liveness(fn *ir.Function) error {}

// AllocateRegisters performs register allocation.
func AllocateRegisters(fn *ir.Function) error {}

// BindRegisters applies the result of register allocation, replacing all virtual registers with their assigned physical registers.
func BindRegisters(fn *ir.Function) error {}

// VerifyAllocation performs sanity checks following register allocation.
func VerifyAllocation(fn *ir.Function) error {}

// EnsureBasePointerCalleeSaved ensures that the base pointer register will be
// saved and restored if it has been clobbered by the function.
func EnsureBasePointerCalleeSaved(fn *ir.Function) error {}