|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectharpoon.Backend.Generic.InstrBuilder
harpoon.Backend.StrongARM.InstrBuilder
public class InstrBuilder
StrongARM.InstrBuilder
is an Generic.InstrBuilder
for the
StrongARM architecture.
Method Summary | |
---|---|
int |
getSize(Temp t)
Returns the size of temp on the stack. |
InstrLABEL |
makeLabel(Instr template)
|
InstrLABEL |
makeLabel(Label l,
Instr template)
Returns a new InstrLABEL for generating new
arbitrary code blocks to branch to. |
List |
makeLoad(Temp r,
int offset,
Instr template)
Generates a new set of Instr s for memory traffic
from RAM to one register in the register file. |
List |
makeStore(Temp r,
int offset,
Instr template)
Generates a new set of Instr s for memory traffic
from the register file to RAM. |
Methods inherited from class harpoon.Backend.Generic.InstrBuilder |
---|
makeLoad, makeStore |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Method Detail |
---|
public int getSize(Temp t)
InstrBuilder
temp
on the stack.
temp
would have on the stack (in
terms of the abstract number used for calculating stack
offsets in makeLoad()
and
makeStore()
).
t1
and
t2
, either
( offset(t2)
is greater than or equal to
offset(t1) + getSize(t1)
)
OR
( offset(t1)
is greater than or equal to
offset(t2) + getSize(t2)
).
getSize
in class InstrBuilder
InstrBuilder.makeLoad(java.util.List, int, harpoon.IR.Assem.Instr)
,
InstrBuilder.makeStore(java.util.List, int, harpoon.IR.Assem.Instr)
public List makeLoad(Temp r, int offset, Instr template)
InstrBuilder
Instr
s for memory traffic
from RAM to one register in the register file.
makeLoad
in class InstrBuilder
InstrBuilder.getSize(harpoon.Temp.Temp)
public List makeStore(Temp r, int offset, Instr template)
InstrBuilder
Instr
s for memory traffic
from the register file to RAM.
makeStore
in class InstrBuilder
InstrBuilder.getSize(harpoon.Temp.Temp)
public InstrLABEL makeLabel(Instr template)
public InstrLABEL makeLabel(Label l, Instr template)
InstrLABEL
for generating new
arbitrary code blocks to branch to.
makeLabel
in class InstrBuilder
template
- An Instr
to base the generated
InstrLABEL
.
template
should be part of the
instruction stream that the returned
InstrLABEL
is intended for.
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |