harpoon.IR.Quads
Class AGET

java.lang.Object
  extended by harpoon.IR.Quads.Quad
      extended by harpoon.IR.Quads.AGET
All Implemented Interfaces:
HCodeElement, CFGraphable<Quad,Edge>, UseDefable, Graph.Node<Quad,Edge>, Serializable, Cloneable, Comparable<Quad>

public class AGET
extends Quad

AGET represents an element fetch from an array object.

Version:
$Id: AGET.java,v 1.5 2002/04/11 04:00:28 cananian Exp $
Author:
C. Scott Ananian <cananian@alumni.princeton.edu>
See Also:
ANEW, ASET, ALENGTH, Serialized Form

Field Summary
protected  Temp dst
          The Temp in which to store the fetched element.
protected  Temp index
          The Temp holding the index of the element to get.
protected  Temp objectref
          The array reference.
protected  HClass type
          The component type of the referenced array.
 
Fields inherited from class harpoon.IR.Quads.Quad
arrayFactory
 
Constructor Summary
AGET(QuadFactory qf, HCodeElement source, Temp dst, Temp objectref, Temp index, HClass type)
          Creates an AGET object representing an element fetch from an array object.
 
Method Summary
<T> T
accept(QuadValueVisitor<T> v)
           
 void accept(QuadVisitor v)
          Accept a visitor.
 Temp[] def()
          Returns the Temp defined by this quad.
 Temp dst()
          Returns the destination Temp.
 Temp index()
          Returns the Temp holding the index of the element to fetch.
 int kind()
          Return an integer enumeration of the kind of this Quad.
 Temp objectref()
          Returns the array reference Temp.
 Quad rename(QuadFactory qqf, TempMap defMap, TempMap useMap)
          Create a new Quad identical to the receiver, but with all Temps renamed according to a mapping.
 String toString()
          Returns a human-readable representation of this quad.
 HClass type()
          Returns the component type of the referenced array.
 Temp[] use()
          Returns all the Temps used by this quad.
 
Methods inherited from class harpoon.IR.Quads.Quad
addEdge, addEdges, addHandlers, clone, clone, clone, compareTo, defC, edgeC, edges, getFactory, getID, getLineNumber, getSourceFile, handlers, hashCode, isPred, isSucc, map, map, map, next, next, nextEdge, nextEdge, nextLength, pred, predC, prev, prev, prevEdge, prevEdge, prevLength, remove, removeHandlers, rename, replace, succ, succC, toLongString, transferHandlers, useC
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, notify, notifyAll, wait, wait, wait
 

Field Detail

dst

protected Temp dst
The Temp in which to store the fetched element.


objectref

protected Temp objectref
The array reference.


index

protected Temp index
The Temp holding the index of the element to get.


type

protected HClass type
The component type of the referenced array.

Constructor Detail

AGET

public AGET(QuadFactory qf,
            HCodeElement source,
            Temp dst,
            Temp objectref,
            Temp index,
            HClass type)
Creates an AGET object representing an element fetch from an array object.

Parameters:
dst - the Temp in which to store the fetched element.
objectref - the array reference.
index - the Temp holding the index of the element to get.
type - the component type of the referenced array.
Method Detail

dst

public Temp dst()
Returns the destination Temp.


objectref

public Temp objectref()
Returns the array reference Temp.


index

public Temp index()
Returns the Temp holding the index of the element to fetch.


type

public HClass type()
Returns the component type of the referenced array. All non-primitive types become Object.


def

public Temp[] def()
Returns the Temp defined by this quad.

Specified by:
def in interface UseDefable
Overrides:
def in class Quad
Returns:
the dst field.

use

public Temp[] use()
Returns all the Temps used by this quad.

Specified by:
use in interface UseDefable
Overrides:
use in class Quad
Returns:
the objectref and index fields.

kind

public int kind()
Description copied from class: Quad
Return an integer enumeration of the kind of this Quad. The enumerated values are defined in QuadKind.

Specified by:
kind in class Quad

rename

public Quad rename(QuadFactory qqf,
                   TempMap defMap,
                   TempMap useMap)
Description copied from class: Quad
Create a new Quad identical to the receiver, but with all Temps renamed according to a mapping. The new Quad will have no edges.

The new Quad will come from the specified QuadFactory.

Specified by:
rename in class Quad

accept

public void accept(QuadVisitor v)
Description copied from class: Quad
Accept a visitor.

Specified by:
accept in class Quad

accept

public <T> T accept(QuadValueVisitor<T> v)
Specified by:
accept in class Quad

toString

public String toString()
Returns a human-readable representation of this quad.

Specified by:
toString in class Quad