harpoon.IR.Quads
Class ASET

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

public class ASET
extends Quad

ASET represents an array element assignment.

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

Field Summary
protected  Temp index
          The Temp holding the index of the element to get.
protected  Temp objectref
          The array reference
protected  Temp src
          The new value for the array element.
protected  HClass type
          The component type of the referenced array.
 
Fields inherited from class harpoon.IR.Quads.Quad
arrayFactory
 
Constructor Summary
ASET(QuadFactory qf, HCodeElement source, Temp objectref, Temp index, Temp src, HClass type)
          Creates an ASET object representing an array element assignment.
 
Method Summary
<T> T
accept(QuadValueVisitor<T> v)
           
 void accept(QuadVisitor v)
          Accept a visitor.
 Temp index()
          Returns the Temp with the index of the element to get.
 int kind()
          Return an integer enumeration of the kind of this Quad.
 Temp objectref()
          Returns the Temp with the array reference.
 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.
 Temp src()
          Returns the Temp holding the new value for the array element.
 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, def, 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

objectref

protected Temp objectref
The array reference


index

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


src

protected Temp src
The new value for the array element.


type

protected HClass type
The component type of the referenced array.

Constructor Detail

ASET

public ASET(QuadFactory qf,
            HCodeElement source,
            Temp objectref,
            Temp index,
            Temp src,
            HClass type)
Creates an ASET object representing an array element assignment.

Parameters:
objectref - the Temp holding the array reference.
index - the Temp holding the index of the element to get.
src - the Temp holding the new value for the array element.
type - the component type of the referenced array.
Method Detail

objectref

public Temp objectref()
Returns the Temp with the array reference.


index

public Temp index()
Returns the Temp with the index of the element to get.


src

public Temp src()
Returns the Temp holding the new value for the array element.


type

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


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, index, and src 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