harpoon.IR.Assem
Class InstrDIRECTIVE
java.lang.Object
harpoon.IR.Assem.Instr
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>
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 |
InstrDIRECTIVE
public InstrDIRECTIVE(InstrFactory inf,
HCodeElement src,
String a)
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 Temp
s 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