\chapter{Machine description files}
\label{app:machs}

In this appendixes, the relevant parts of the used mach files are presented.
All mach files have a fully-connected transport network. Presented
for each machine
will be the used mach file used for the ``resource variant'', then the
one used for the ``pseudo-move variant'' and lastly the mach file used 
for no immediates at all.

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{mach.small}

\subsection*{``resource variant''}

{\small
\begin{verbatim}
#define N_IREGS         32
#define N_FREGS         48
#define N_BREGS         4

MoveBusses
{
    m1 64, 8, signed;
    m2 64, 8, signed;
    m3 64, 8, signed;
}

LongImmediate
{
Registers:
    i0 32, signed, ir_0;
Control:
    {};
    i0 32 : { 2 };
}
\end{verbatim}
}
\subsection*{``pseudo-move variant''}

{\small
\begin{verbatim}
#define N_IREGS         32
#define N_FREGS         48
#define N_BREGS         4

MoveBusses
{
    m1 64, 8, signed;
    m2 64, 8, signed;
    m3 64, 8, signed;
}

ImmediateUnits
{
    i1 32, signed, {m3}, 0, ir_1, ;
}

\end{verbatim}
}
\subsection*{old long immediates support}

{\small
\begin{verbatim}
#define N_IREGS         32
#define N_FREGS         48
#define N_BREGS         4

MoveBusses
{
    m1 64, 8, signed;
    m2 64, 8, signed;
    m3 64, 8, signed;
}

ImmediateUnits
{
    i1 32, signed, ir_1;
}
\end{verbatim}
}


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{mach.pcomp}

\subsection*{``resource variant''}

{\small
\begin{verbatim}
#define N_IREGS         32
#define N_FREGS         48
#define N_BREGS         4

MoveBusses
{
    m1 64, 8, signed;
    m2 64, 8, signed;
    m3 64, 8, signed;
    m4 64, 8, signed;
    m5 64, 8, signed;
    m6 64, 8, signed;
}

LongImmediate
{
Registers:
    i0 20, signed, ir_0; 
    i1 20, signed, ir_1;
    i2 32, signed, ir_2;
Control:
    {};
    i0 20 : { 4 };
    i1 20 : { 5 };
    i0 20 : { 4 }, i1 20: { 5 }, i2 32: {4,5};
}
\end{verbatim}
}

\subsection*{``pseudo-move variant''}

{\small
\begin{verbatim}
#define N_IREGS         32
#define N_FREGS         48
#define N_BREGS         4

MoveBusses
{
    m1 64, 8, signed;
    m2 64, 8, signed;
    m3 64, 8, signed;
    m4 64, 8, signed;
    m5 64, 8, signed;
    m6 64, 8, signed;
}

ImmediateUnits
{
    i1 32, signed, {m5},    0, ir_1;
    i2 20, signed, {m6},    0, ir_2;
    i3 20, signed, {m5,m6}, 0, ir_3;
}
\end{verbatim}
}

\subsection*{old long immediates support}

{\small
\begin{verbatim}
#define N_IREGS         32
#define N_FREGS         48
#define N_BREGS         4

MoveBusses
{
    m1 64, 8, signed;
    m2 64, 8, signed;
    m3 64, 8, signed;
    m4 64, 8, signed;
    m5 64, 8, signed;
    m6 64, 8, signed;
}

ImmediateUnits
{
    i1 32, signed, ir_1;
    i2 20, signed, ir_2;
    i3 20, signed, ir_3;
}

\end{verbatim}
}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{mach.one}


\subsection*{``resource variant''}
{\small
\begin{verbatim}
#define N_IREGS         32
#define N_FREGS         48
#define N_BREGS         4

MoveBusses
{
    m1 64, 8, signed;
    m2 64, 8, signed;
    m3 64, 8, signed;
    m4 64, 8, signed;
    m5 64, 8, signed;
    m6 64, 8, signed;
}

LongImmediate
{
Registers:
    i0 32, signed, ir_0; 
Control:
    {};
    i0 32 : { 5 };
}
\end{verbatim}
}

\subsection*{``pseudo-move variant''}
{\small
\begin{verbatim}
#define N_IREGS         32
#define N_FREGS         48
#define N_BREGS         4

MoveBusses
{
    m1 64, 8, signed;
    m2 64, 8, signed;
    m3 64, 8, signed;
    m4 64, 8, signed;
    m5 64, 8, signed;
    m6 64, 8, signed;
}

ImmediateUnits
{
    i0 32, signed, {m6}, 0,  ir_0;
}
\end{verbatim}
}

\subsection*{old long immediate support}
{\small
\begin{verbatim}
#define N_IREGS         32
#define N_FREGS         48
#define N_BREGS         4

MoveBusses
{
    m1 64, 8, signed;
    m2 64, 8, signed;
    m3 64, 8, signed;
    m4 64, 8, signed;
    m5 64, 8, signed;
    m6 64, 8, signed;
}

ImmediateUnits
{
    i0 32, signed, ir_0;
}

\end{verbatim}
}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{mach.big}

\subsection*{``resource variant''}
{\small
\begin{verbatim}
#define N_IREGS         64
#define N_FREGS         48
#define N_BREGS         4

MoveBusses
{
    m1 64, 8, signed;
    m2 64, 8, signed;
    m3 64, 8, signed;
    m4 64, 8, signed;
    m5 64, 8, signed;
    m6 64, 8, signed;
    m7 64, 8, signed;
    m8 64, 8, signed;
}

LongImmediate
{
Registers:
    i1 32, signed, ir_1;
    i2 32, signed, ir_2;
Control:
    {};
    i1 32: {6};
    i2 32: {7};
    i1 32: {6}, i2 32: {7};
}
\end{verbatim}
}

\subsection*{old long immediate support}
{\small
\begin{verbatim}
#define N_IREGS         64
#define N_FREGS         48
#define N_BREGS         4

MoveBusses
{
    m1 64, 8, signed;
    m2 64, 8, signed;
    m3 64, 8, signed;
    m4 64, 8, signed;
    m5 64, 8, signed;
    m6 64, 8, signed;
    m7 64, 8, signed;
    m8 64, 8, signed;
}

ImmediateUnits
{
    i1 32, signed, ir_1;
    i2 32, signed, ir_2;
}
\end{verbatim}
}
