harpoon.IR.LowQuad
Class PGET

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

public class PGET
extends LowQuad

PGET represents a POINTER dereference to get a field or array element. The ptr Temp ought to contain a POINTER value.

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

Field Summary
protected  Temp dst
          Temp in which to store the fetched field or array element.
protected  Temp ptr
          Temp holding the POINTER value to dereference and fetch.
protected  HClass type
          The type of the object we are fetching.
 
Fields inherited from class harpoon.IR.Quads.Quad
arrayFactory
 
Constructor Summary
PGET(LowQuadFactory qf, HCodeElement source, Temp dst, Temp ptr, HClass type)
          Creates a PGET representing a pointer dereference and fetch.
 
Method Summary
 Temp[] def()
          Return all the Temps defined by this Quad.
 Temp dst()
          Returns the Temp in which to store the fetched field or array element.
 int kind()
          Return an integer enumeration of the kind of this Quad.
 Temp ptr()
          Returns the Temp holding the POINTER value to dereference and fetch.
 Quad rename(QuadFactory qf, TempMap defMap, TempMap useMap)
          Create a new Quad identical to the receiver, but with all Temps renamed according to a mapping.
 String toString()
          Force everyone to reimplement toString()
 HClass type()
          Returns the type of the field or array element we are fetching.
 Temp[] use()
          Return all the Temps used by this Quad.
 
Methods inherited from class harpoon.IR.LowQuad.LowQuad
accept, accept
 
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 final Temp dst
Temp in which to store the fetched field or array element.


ptr

protected final Temp ptr
Temp holding the POINTER value to dereference and fetch.


type

protected final HClass type
The type of the object we are fetching. This may be a sub-integer type, and thus disagree with the type of dst. For non-primitive types, this may be simply Object; use a typemap and the dst field if you need accurate non-primitive types.

Constructor Detail

PGET

public PGET(LowQuadFactory qf,
            HCodeElement source,
            Temp dst,
            Temp ptr,
            HClass type)
Creates a PGET representing a pointer dereference and fetch.

Parameters:
dst - the Temp in which to store the fetched field or element.
ptr - the Temp holding the POINTER value to dereference.
type - the type of the object we are fetching; possibly a sub-integer type. Not necessarily precise if non-primitive.
Method Detail

dst

public Temp dst()
Returns the Temp in which to store the fetched field or array element.


ptr

public Temp ptr()
Returns the Temp holding the POINTER value to dereference and fetch.


type

public HClass type()
Returns the type of the field or array element we are fetching. Not necessarily precise if non-primitive. May be a sub-integer type.


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

use

public Temp[] use()
Description copied from class: Quad
Return all the Temps used by this Quad.

Specified by:
use in interface UseDefable
Overrides:
use in class Quad

def

public Temp[] def()
Description copied from class: Quad
Return all the Temps defined by this Quad.

Specified by:
def in interface UseDefable
Overrides:
def in class Quad

rename

public Quad rename(QuadFactory qf,
                   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

toString

public String toString()
Description copied from class: Quad
Force everyone to reimplement toString()

Specified by:
toString in class Quad