joeq.Compiler.Quad
Class Operator

java.lang.Object
  extended by joeq.Compiler.Quad.Operator
Direct Known Subclasses:
Operator.ALength, Operator.ALoad, Operator.AStore, Operator.Binary, Operator.BoundsCheck, Operator.Branch, Operator.CheckCast, Operator.Getfield, Operator.Getstatic, Operator.InstanceOf, Operator.Invoke, Operator.MemLoad, Operator.MemStore, Operator.Monitor, Operator.Move, Operator.New, Operator.NewArray, Operator.NullCheck, Operator.Phi, Operator.Putfield, Operator.Putstatic, Operator.Return, Operator.Special, Operator.StoreCheck, Operator.Unary, Operator.ZeroCheck

public abstract class Operator
extends java.lang.Object

Version:
$Id: Operator.java,v 1.46 2004/09/22 22:17:26 joewhaley Exp $
Author:
John Whaley

Nested Class Summary
static class Operator.ALength
           
static class Operator.ALoad
           
static class Operator.AStore
           
static class Operator.Binary
           
static class Operator.BoundsCheck
           
static class Operator.Branch
           
static class Operator.CheckCast
           
static class Operator.Getfield
           
static class Operator.Getstatic
           
static class Operator.Goto
           
static class Operator.InstanceOf
           
static class Operator.IntIfCmp
           
static class Operator.Invoke
           
static class Operator.Jsr
           
static class Operator.LookupSwitch
           
static class Operator.MemLoad
           
static class Operator.MemStore
           
static class Operator.Monitor
           
static class Operator.Move
           
static class Operator.New
           
static class Operator.NewArray
           
static class Operator.NullCheck
           
static class Operator.Phi
           
static class Operator.Putfield
           
static class Operator.Putstatic
           
static class Operator.Ret
           
static class Operator.Return
           
static class Operator.Special
           
static class Operator.StoreCheck
           
static class Operator.TableSwitch
           
static class Operator.Unary
           
static class Operator.ZeroCheck
           
 
Field Summary
static UnmodifiableList.jq_Class anyexception
           
static UnmodifiableList.jq_Class arithexception
           
static UnmodifiableList.jq_Class arrayboundsexception
           
static UnmodifiableList.jq_Class arraystoreexception
           
static UnmodifiableList.jq_Class classcastexceptions
           
static UnmodifiableList.jq_Class illegalmonitorstateexception
           
static UnmodifiableList.jq_Class negativesizeexception
           
static UnmodifiableList.jq_Class noexceptions
           
static UnmodifiableList.RegisterOperand noregisters
           
static UnmodifiableList.jq_Class nullptrexception
           
static UnmodifiableList.jq_Class resolutionexceptions
           
 
Constructor Summary
Operator()
           
 
Method Summary
 void accept(Quad q, QuadVisitor qv)
           
 UnmodifiableList.RegisterOperand getDefinedRegisters(Quad q)
           
static UnmodifiableList.RegisterOperand getReg1_check(Quad q)
           
static UnmodifiableList.RegisterOperand getReg1(Quad q)
           
static UnmodifiableList.RegisterOperand getReg2(Quad q)
           
static UnmodifiableList.RegisterOperand getReg3(Quad q)
           
 UnmodifiableList.jq_Class getThrownExceptions()
           
 UnmodifiableList.RegisterOperand getUsedRegisters(Quad q)
           
abstract  boolean hasSideEffects()
           
abstract  void interpret(Quad q, QuadInterpreter s)
           
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

noregisters

public static final UnmodifiableList.RegisterOperand noregisters

noexceptions

public static final UnmodifiableList.jq_Class noexceptions

anyexception

public static final UnmodifiableList.jq_Class anyexception

resolutionexceptions

public static final UnmodifiableList.jq_Class resolutionexceptions

nullptrexception

public static final UnmodifiableList.jq_Class nullptrexception

arrayboundsexception

public static final UnmodifiableList.jq_Class arrayboundsexception

arithexception

public static final UnmodifiableList.jq_Class arithexception

arraystoreexception

public static final UnmodifiableList.jq_Class arraystoreexception

negativesizeexception

public static final UnmodifiableList.jq_Class negativesizeexception

classcastexceptions

public static final UnmodifiableList.jq_Class classcastexceptions

illegalmonitorstateexception

public static final UnmodifiableList.jq_Class illegalmonitorstateexception
Constructor Detail

Operator

public Operator()
Method Detail

accept

public void accept(Quad q,
                   QuadVisitor qv)

getThrownExceptions

public UnmodifiableList.jq_Class getThrownExceptions()

getDefinedRegisters

public UnmodifiableList.RegisterOperand getDefinedRegisters(Quad q)

getUsedRegisters

public UnmodifiableList.RegisterOperand getUsedRegisters(Quad q)

hasSideEffects

public abstract boolean hasSideEffects()

interpret

public abstract void interpret(Quad q,
                               QuadInterpreter s)

getReg1

public static UnmodifiableList.RegisterOperand getReg1(Quad q)

getReg1_check

public static UnmodifiableList.RegisterOperand getReg1_check(Quad q)

getReg2

public static UnmodifiableList.RegisterOperand getReg2(Quad q)

getReg3

public static UnmodifiableList.RegisterOperand getReg3(Quad q)