x86
Class Frame

java.lang.Object
  extended by frame.Frame
      extended by x86.Frame
All Implemented Interfaces:
temp.TempMap

public class Frame
extends Frame


Field Summary
static temp.Temp eax
           
static temp.Temp ebp
           
static temp.Temp ebx
           
static temp.Temp ecx
           
static temp.Temp edi
           
static temp.Temp edx
           
static temp.Temp esi
           
static temp.Temp esp
           
 Frame parent
           
 
Fields inherited from class frame.Frame
formals, name
 
Constructor Summary
Frame()
           
 
Method Summary
 frame.Access allocLocal(boolean escapes)
           
 List<temp.Temp> calleeDefs()
           
 List<Instr> codegen(List<Stm> body)
           
 Exp externalCall(java.lang.String s, List<Exp> args)
           
 temp.Temp FP()
           
 Frame newFrame(temp.Label name, List<java.lang.Boolean> formals)
           
 Stm procEntryExit1(Exp body)
           
 List<Instr> procEntryExit2(List<Instr> body)
           
 frame.Proc procEntryExit3(List<Instr> body)
           
 List<temp.Temp> registers()
           
 temp.Temp RV()
           
 temp.Temp SP()
           
 java.lang.String tempMap(temp.Temp t)
           
 int wordsize()
           
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

parent

public Frame parent

ebp

public static temp.Temp ebp

esp

public static temp.Temp esp

eax

public static temp.Temp eax

ebx

public static temp.Temp ebx

ecx

public static temp.Temp ecx

edx

public static temp.Temp edx

esi

public static temp.Temp esi

edi

public static temp.Temp edi
Constructor Detail

Frame

public Frame()
Method Detail

newFrame

public Frame newFrame(temp.Label name,
                      List<java.lang.Boolean> formals)
Specified by:
newFrame in class Frame

allocLocal

public frame.Access allocLocal(boolean escapes)
Specified by:
allocLocal in class Frame

wordsize

public int wordsize()
Specified by:
wordsize in class Frame

FP

public temp.Temp FP()
Specified by:
FP in class Frame
Returns:
Registrador que guarda o frame pointer

externalCall

public Exp externalCall(java.lang.String s,
                        List<Exp> args)
Specified by:
externalCall in class Frame

RV

public temp.Temp RV()
Specified by:
RV in class Frame
Returns:
Registrador que guarda o valor de retorno de uma função

procEntryExit1

public Stm procEntryExit1(Exp body)
Specified by:
procEntryExit1 in class Frame

tempMap

public java.lang.String tempMap(temp.Temp t)

procEntryExit2

public List<Instr> procEntryExit2(List<Instr> body)
Specified by:
procEntryExit2 in class Frame

codegen

public List<Instr> codegen(List<Stm> body)
Specified by:
codegen in class Frame

registers

public List<temp.Temp> registers()
Specified by:
registers in class Frame

procEntryExit3

public frame.Proc procEntryExit3(List<Instr> body)
Specified by:
procEntryExit3 in class Frame

SP

public temp.Temp SP()
Specified by:
SP in class Frame
Returns:
Registrador que guarda o stack pointer

calleeDefs

public List<temp.Temp> calleeDefs()
Specified by:
calleeDefs in class Frame
Returns:
Lista de registradores "callee def".