coins.backend.tools
Class RegisterDescription2Java

java.lang.Object
  extended bycoins.backend.tools.RegisterDescription2Java

class RegisterDescription2Java
extends java.lang.Object

Preprocessing *.tmd to make register-model description parameters.


Nested Class Summary
(package private) static class RegisterDescription2Java.RegisterSet
          Set of registers.
(package private) static class RegisterDescription2Java.RegSymbol
           
(package private) static class RegisterDescription2Java.SymTab
           
 
Field Summary
(package private)  int addrType
           
(package private)  int boolType
           
(package private)  java.io.PrintWriter debOut
           
(package private)  java.io.PrintWriter javaOut
           
(package private) static int MAXSET
           
(package private)  int nRegs
           
(package private)  int nSets
           
(package private)  BiList registerSets
           
(package private)  RegisterDescription2Java.RegisterSet[] regsetVec
           
(package private)  RegisterDescription2Java.RegSymbol[] regVec
           
(package private)  RegisterDescription2Java.SymTab symtbl
           
(package private)  java.lang.String targetName
           
 
Constructor Summary
(package private) RegisterDescription2Java(java.lang.String targetName, java.lang.String file, java.lang.String packageName)
          Create register description table.
 
Method Summary
(package private)  RegisterDescription2Java.RegisterSet andSet(RegisterDescription2Java.RegisterSet x, RegisterDescription2Java.RegisterSet y)
          Return and set of RegisterSet x and y.
(package private)  void canonRegRelations()
          Canonicalize parent information of registers.
(package private)  void close()
          Generate register description table.
(package private)  boolean covers(RegisterDescription2Java.RegSymbol x, RegisterDescription2Java.RegSymbol y)
          Return true if register x covers y.
(package private)  void doDef(ImList form)
          Parse form (def *reg-foo* ...)
(package private)  RegisterDescription2Java.RegisterSet findRegisterSet(BitMapSet set)
           
(package private)  void genTables(java.lang.String targetName, java.io.PrintWriter out)
          table generation
(package private)  RegisterDescription2Java.RegSymbol installRegister(RegisterDescription2Java.RegSymbol sym)
           
(package private)  RegisterDescription2Java.RegisterSet installRegisterSet(BitMapSet set, java.lang.String name, int type)
          Return register set which has set 'set' in it.
(package private)  RegisterDescription2Java.RegSymbol installSubRegister(RegisterDescription2Java.RegSymbol parent, int type, int position)
           
(package private)  boolean interferes(RegisterDescription2Java.RegisterSet x, RegisterDescription2Java.RegisterSet y)
          Return true if register set x interferes y.
(package private)  boolean interferes(RegisterDescription2Java.RegSymbol x, RegisterDescription2Java.RegSymbol y)
          Return true if register x interferes y.
(package private)  void parseRegisterSet(java.lang.String setname, ImList sexp)
          Install register set.
(package private)  int relativeWeight(RegisterDescription2Java.RegisterSet x, RegisterDescription2Java.RegisterSet y)
          Return relative weight of register set y when compared to x.
(package private)  void setRegVector()
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

symtbl

RegisterDescription2Java.SymTab symtbl

debOut

java.io.PrintWriter debOut

javaOut

java.io.PrintWriter javaOut

targetName

java.lang.String targetName

registerSets

BiList registerSets

MAXSET

static final int MAXSET
See Also:
Constant Field Values

regVec

RegisterDescription2Java.RegSymbol[] regVec

regsetVec

RegisterDescription2Java.RegisterSet[] regsetVec

nSets

int nSets

nRegs

int nRegs

addrType

int addrType

boolType

int boolType
Constructor Detail

RegisterDescription2Java

RegisterDescription2Java(java.lang.String targetName,
                         java.lang.String file,
                         java.lang.String packageName)
                   throws java.io.IOException
Create register description table.

Method Detail

installRegister

RegisterDescription2Java.RegSymbol installRegister(RegisterDescription2Java.RegSymbol sym)

installSubRegister

RegisterDescription2Java.RegSymbol installSubRegister(RegisterDescription2Java.RegSymbol parent,
                                                      int type,
                                                      int position)

canonRegRelations

void canonRegRelations()
Canonicalize parent information of registers.


setRegVector

void setRegVector()

findRegisterSet

RegisterDescription2Java.RegisterSet findRegisterSet(BitMapSet set)

installRegisterSet

RegisterDescription2Java.RegisterSet installRegisterSet(BitMapSet set,
                                                        java.lang.String name,
                                                        int type)
Return register set which has set 'set' in it. If not exist, install it.


andSet

RegisterDescription2Java.RegisterSet andSet(RegisterDescription2Java.RegisterSet x,
                                            RegisterDescription2Java.RegisterSet y)
Return and set of RegisterSet x and y.


interferes

boolean interferes(RegisterDescription2Java.RegSymbol x,
                   RegisterDescription2Java.RegSymbol y)
Return true if register x interferes y.


covers

boolean covers(RegisterDescription2Java.RegSymbol x,
               RegisterDescription2Java.RegSymbol y)
Return true if register x covers y.


interferes

boolean interferes(RegisterDescription2Java.RegisterSet x,
                   RegisterDescription2Java.RegisterSet y)
Return true if register set x interferes y.


relativeWeight

int relativeWeight(RegisterDescription2Java.RegisterSet x,
                   RegisterDescription2Java.RegisterSet y)
Return relative weight of register set y when compared to x. Relative-weight(x,y) = number of elements in x covered by the element of y.


parseRegisterSet

void parseRegisterSet(java.lang.String setname,
                      ImList sexp)
                throws SyntaxError
Install register set.

Throws:
SyntaxError

genTables

void genTables(java.lang.String targetName,
               java.io.PrintWriter out)
table generation


doDef

void doDef(ImList form)
     throws SyntaxError
Parse form (def *reg-foo* ...)

Throws:
SyntaxError

close

void close()
Generate register description table.