geneseo.cs.compiler
Interface RegisterTable

All Known Implementing Classes:
SparcRegisterTable

public interface RegisterTable

This interface defines how any object that tracks register usage (i.e., which registers are in use and which free) for a compiler should behave.


Method Summary
 void clear()
          Marks all registers as unused.
 java.lang.String findFree()
          Find a free register.
 boolean isFree(java.lang.String regName)
          Inquire whether a register is free.
 void markFree(java.lang.String regName)
          Marks a register as free.
 void markUsed(java.lang.String regName)
          Marks a register as used.
 

Method Detail

clear

public void clear()
Marks all registers as unused.

markUsed

public void markUsed(java.lang.String regName)
Marks a register as used.
Parameters:
regName - the name of the register to mark used.

markFree

public void markFree(java.lang.String regName)
Marks a register as free.
Parameters:
regName - the name of the register to make free.

isFree

public boolean isFree(java.lang.String regName)
Inquire whether a register is free.
Parameters:
regName - the name of the register.
Returns:
True if the register is free, false if it isn't or if no such register exists.

findFree

public java.lang.String findFree()
                          throws CompilerException
Find a free register.
Returns:
a string naming a free register.
Throws:
CompilerException - if no registers are free.