package cpu // CPU represents the processor. type CPU struct { All []Register General []Register Syscall []Register Input []Register Output []Register Reserved uint64 Used uint64 } // Free will reset the reserved and used status which means the register can be allocated again. func (c *CPU) Free(reg Register) { c.Used &= ^(1 << reg) c.Reserved &= ^(1 << reg) } // IsReserved returns true if the register was marked for future use. func (c *CPU) IsReserved(reg Register) bool { return c.Reserved&(1<