harpoon.IR.Assem
Class InstrDIRECTIVE

java.lang.Object
  extended by harpoon.IR.Assem.Instr
      extended by harpoon.IR.Assem.InstrDIRECTIVE
All Implemented Interfaces:
HCodeElement, CFGraphable<Instr,InstrEdge>, UseDefable, Graph.Node<Instr,InstrEdge>

public class InstrDIRECTIVE
extends Instr

InstrDIRECTIVE is used to represents assembler directives.

Version:
$Id: InstrDIRECTIVE.java,v 1.2 2002/02/25 21:04:11 cananian Exp $
Author:
Andrew Berkheimer <andyb@mit.edu>

Field Summary
 
Fields inherited from class harpoon.IR.Assem.Instr
arrayFactory, canFallThrough, next, prev
 
Constructor Summary
InstrDIRECTIVE(InstrFactory inf, HCodeElement src, String a)
           
 
Method Summary
 void accept(InstrVisitor v)
          Accept a visitor.
 Instr cloneMutateAssem(InstrFactory inf, String newAssem)
          Clones this, mutating the assembly string.
 boolean isDirective()
          Returns true if this is a directive instruction that is meant to represent data stored in the code segment, not actual executable code.
static InstrDIRECTIVE makeNoFall(InstrFactory inf, HCodeElement src, String a)
           
 Instr rename(InstrFactory inf, TempMap defMap, TempMap useMap)
          Create a new Instr identical to the receiver, but with all Temps renamed according to the given mappings.
 
Methods inherited from class harpoon.IR.Assem.Instr
cloneMutateAssem, def, defC, edgeC, edges, getAssem, getEntry, getExit, getFactory, getGroups, getID, getInstrFor, getLineNumber, getNext, getPrev, getSourceFile, getTargets, hashCode, hasModifiableTargets, hasMultiplePredecessors, insertAt, insertInstrsAt, isDummy, isJump, isLabel, isMove, isPred, isSucc, layout, map, map, map, pred, predC, remove, rename, rename, replace, replaceInstrList, setGroup, succ, succC, toString, use, useC
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, notify, notifyAll, wait, wait, wait
 

Constructor Detail

InstrDIRECTIVE

public InstrDIRECTIVE(InstrFactory inf,
                      HCodeElement src,
                      String a)
Method Detail

makeNoFall

public static InstrDIRECTIVE makeNoFall(InstrFactory inf,
                                        HCodeElement src,
                                        String a)

rename

public Instr rename(InstrFactory inf,
                    TempMap defMap,
                    TempMap useMap)
Description copied from class: Instr
Create a new Instr identical to the receiver, but with all Temps renamed according to the given mappings. The new Instr will have no edges, and will come from the specified InstrFactory. FSK: I don't think this "no edges" part of the specification holds anymore (it was written before we revised the control-flow representation in the Instrs...

Overrides:
rename in class Instr

cloneMutateAssem

public Instr cloneMutateAssem(InstrFactory inf,
                              String newAssem)
Description copied from class: Instr
Clones this, mutating the assembly string.
requires: newAssem != null
effects: Returns a new Instr object with the same compiler-visible high level properties as this (use/def, isMove, etc), but instead of having the assembly-string of this, it has newAssem as its assembly string. The generated instr will not have a a place in the instruction layout; it is the responsiblity of the caller to subsequently call Instr.replace to swap this and the returned Instr.

Overrides:
cloneMutateAssem in class Instr

accept

public void accept(InstrVisitor v)
Description copied from class: Instr
Accept a visitor.

Overrides:
accept in class Instr

isDirective

public boolean isDirective()
Description copied from class: Instr
Returns true if this is a directive instruction that is meant to represent data stored in the code segment, not actual executable code.

Overrides:
isDirective in class Instr