#ifndef _rename_types_fs
#define _rename_types_fs
/******************************************************************************
** FILE: rename_types.fs
** Facile types used to implement register renaming.
*/

//
// SrcRef: represent instruction source data.

type SrcRef = struct {
    rtype : uchar,	// kind of register (0 => literal)
    regnum : uchar,	// register number, if src already committed
    bypass : uchar,	// identify bypass instruction, if not committed
    outnum : uchar,	// identifies output from bypass instruction
    literal : ulong	// literal source argument
};

//
// DestRef: identifies instruction destination register.

type DestRef = struct {
    rtype : uchar,	// kind of register
    regnum : uchar	// register index
};

//
// DestBuf: contains computed register values before
// they are commited to the register file.

type DestBuf = unsigned[64] array[3];

#endif