Frame
Class Frame

java.lang.Object
  extended by Frame.Frame
Direct Known Subclasses:
MipsFrame, PPCFrame

public abstract class Frame
extends java.lang.Object


Field Summary
 boolean global
           
 int maxArgsOut
           
 Label name
           
 
Constructor Summary
Frame()
           
 
Method Summary
abstract  Access allocFormal(java.lang.String s)
          Allocate a formal parameter named s in this frame.
abstract  Access allocLocal(java.lang.String s)
          Allocate a local variable named s in this frame.
abstract  Label badPtr()
           
abstract  Label badSub()
           
abstract  Visitor<Temp,java.util.LinkedList<Instr>> codegen()
           
abstract  Exp external(java.lang.String func)
           
abstract  Frame mainFrame()
           
abstract  Frame newFrame(java.lang.String name)
           
abstract  void procEntryExit1(java.util.LinkedList<Stm> body)
           
abstract  void procEntryExit2(java.util.LinkedList<Instr> insns)
           
abstract  void procEntryExit3(java.util.LinkedList<Instr> insns, TempMap map)
           
abstract  java.lang.String record(Label label, int words)
           
abstract  Temp[] registers()
           
abstract  Exp RV()
           
abstract  java.lang.String string(Label label, java.lang.String value)
           
abstract  java.lang.String vtable(Label label, java.util.LinkedList<Label> methods)
           
abstract  int wordSize()
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

name

public Label name

global

public boolean global

maxArgsOut

public int maxArgsOut
Constructor Detail

Frame

public Frame()
Method Detail

newFrame

public abstract Frame newFrame(java.lang.String name)

mainFrame

public abstract Frame mainFrame()

allocFormal

public abstract Access allocFormal(java.lang.String s)
Allocate a formal parameter named s in this frame.


allocLocal

public abstract Access allocLocal(java.lang.String s)
Allocate a local variable named s in this frame. If s is null, then the variable is forced to be allocated in memory in the frame. If s is non-null, then the variable is eligible for register allocation.


registers

public abstract Temp[] registers()

wordSize

public abstract int wordSize()

external

public abstract Exp external(java.lang.String func)

RV

public abstract Exp RV()

string

public abstract java.lang.String string(Label label,
                                        java.lang.String value)

record

public abstract java.lang.String record(Label label,
                                        int words)

vtable

public abstract java.lang.String vtable(Label label,
                                        java.util.LinkedList<Label> methods)

badPtr

public abstract Label badPtr()

badSub

public abstract Label badSub()

codegen

public abstract Visitor<Temp,java.util.LinkedList<Instr>> codegen()

procEntryExit1

public abstract void procEntryExit1(java.util.LinkedList<Stm> body)

procEntryExit2

public abstract void procEntryExit2(java.util.LinkedList<Instr> insns)

procEntryExit3

public abstract void procEntryExit3(java.util.LinkedList<Instr> insns,
                                    TempMap map)