|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectharpoon.IR.Assem.Instr
harpoon.IR.Assem.InstrMEM
public class InstrMEM
InstrMEM
is used to represent memory operations in
assembly-level instruction representations.
Field Summary |
---|
Fields inherited from class harpoon.IR.Assem.Instr |
---|
arrayFactory, canFallThrough, next, prev |
Constructor Summary | |
---|---|
InstrMEM(InstrFactory inf,
HCodeElement codeSrc,
String assem,
Temp[] dst,
Temp[] tempSrc)
Creates a InstrMEM with default values for
canFallThrough and targets . |
|
InstrMEM(InstrFactory inf,
HCodeElement codeSrc,
String assem,
Temp[] dst,
Temp[] tempSrc,
boolean canFallThrough,
List<Label> targets)
Creates a InstrMEM . |
Method Summary | |
---|---|
void |
accept(InstrVisitor v)
Accept a visitor |
Instr |
cloneMutateAssem(InstrFactory inf,
String newAssem)
Clones this, mutating the assembly string. |
Instr |
rename(InstrFactory inf,
TempMap defMap,
TempMap useMap)
Create a new Instr identical to the receiver, but
with all Temp s 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, isDirective, 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 |
---|
public InstrMEM(InstrFactory inf, HCodeElement codeSrc, String assem, Temp[] dst, Temp[] tempSrc, boolean canFallThrough, List<Label> targets)
InstrMEM
.
public InstrMEM(InstrFactory inf, HCodeElement codeSrc, String assem, Temp[] dst, Temp[] tempSrc)
InstrMEM
with default values for
canFallThrough
and targets
.
Method Detail |
---|
public void accept(InstrVisitor v)
accept
in class Instr
public Instr rename(InstrFactory inf, TempMap defMap, TempMap useMap)
Instr
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...
rename
in class Instr
public Instr cloneMutateAssem(InstrFactory inf, String newAssem)
Instr
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
.
cloneMutateAssem
in class Instr
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |