com.joanju.cg.bytecode
Class PushInstr

java.lang.Object
  extended by com.joanju.cg.bytecode.Bytecode
      extended by com.joanju.cg.bytecode.PushInstr
Direct Known Subclasses:
PushonretInstr

public class PushInstr
extends Bytecode

Used at call sites for passing values as arguments. Subclasses: PushonretInstr.


Field Summary
protected  int paramNum
           
protected  java.util.HashSet<java.lang.Integer> values
          Stored.
 
Fields inherited from class com.joanju.cg.bytecode.Bytecode
address, cuid, instrSet, nodeNum, xrefs
 
Constructor Summary
PushInstr()
           
PushInstr(int cuid, int address)
           
 
Method Summary
 void calcValueSets()
          Calculate the value sets for the instruction.
protected  void checkWhereUsed()
          Add recalc and checkval records for internal and external where-used.
 Opcode getOpcode()
           
 int getParamNum()
           
 int getRVal()
           
 java.util.HashSet<java.lang.Integer> getValues()
          Get the set of values for this instruction.
 void setParamNum(int paramNum)
           
 void setRVal(int nameRVal)
           
protected  void setValuesFromByteStream(java.io.DataInputStream in)
           
 java.lang.String toStringFromData()
          All Bytecode instruction subclasses should override this eventually.
protected  void writeValuesToByteStream(java.io.DataOutputStream out)
           
 
Methods inherited from class com.joanju.cg.bytecode.Bytecode
addSource, addWhereUsed, beforeWrite, calcValuesAgain, compareTo, equals, fetchBytesFromDB, fetchInCu, generateDataForDB, getAddress, getCuID, getNodeNum, getSources, getValuesCalcLocal, getWhereUsed, getXrefs, hashCode, initData, isDataModified, isFromDB, setAddress, setCuID, setDataBytesFromDB, setDataModified, setFromDB, setInstructionSet, setNodeNum, shouldLoadData, sourcesForXrefTarget, storeIfModified, toString, toStringFromComments, toStringFromName, toStringFromSet
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 

Field Detail

paramNum

protected int paramNum

values

protected java.util.HashSet<java.lang.Integer> values
Stored.

Constructor Detail

PushInstr

public PushInstr()

PushInstr

public PushInstr(int cuid,
                 int address)
Method Detail

calcValueSets

public void calcValueSets()
                   throws java.sql.SQLException,
                          java.io.IOException
Description copied from class: Bytecode
Calculate the value sets for the instruction.

Called during build, build-recalc, checkvals, and checkvals-recalc. Implementations should only build from external values once. Calculates which xref records are needed as well.

IMPORTANT: Should only ever be called for instructions belonging to an InstructionSet.

Specified by:
calcValueSets in class Bytecode
Throws:
java.sql.SQLException
java.io.IOException

checkWhereUsed

protected void checkWhereUsed()
                       throws java.sql.SQLException,
                              java.io.IOException
Add recalc and checkval records for internal and external where-used.

Throws:
java.sql.SQLException
java.io.IOException

getValues

public java.util.HashSet<java.lang.Integer> getValues()
                                               throws java.sql.SQLException,
                                                      java.io.IOException
Description copied from class: Bytecode
Get the set of values for this instruction. Should be overridden by most subclasses. This default implementation returns a set containing one Layout.UNRESOLVED_VALUE.

Overrides:
getValues in class Bytecode
Throws:
java.sql.SQLException
java.io.IOException

getParamNum

public int getParamNum()
                throws java.sql.SQLException,
                       java.io.IOException
Throws:
java.sql.SQLException
java.io.IOException

getRVal

public int getRVal()
            throws java.sql.SQLException,
                   java.io.IOException
Throws:
java.sql.SQLException
java.io.IOException

getOpcode

public Opcode getOpcode()
Specified by:
getOpcode in class Bytecode

setParamNum

public void setParamNum(int paramNum)

setRVal

public void setRVal(int nameRVal)

setValuesFromByteStream

protected void setValuesFromByteStream(java.io.DataInputStream in)
                                throws java.io.IOException
Specified by:
setValuesFromByteStream in class Bytecode
Throws:
java.io.IOException

toStringFromData

public java.lang.String toStringFromData()
Description copied from class: Bytecode
All Bytecode instruction subclasses should override this eventually.

Overrides:
toStringFromData in class Bytecode
Returns:
"" if not overridden.

writeValuesToByteStream

protected void writeValuesToByteStream(java.io.DataOutputStream out)
                                throws java.io.IOException
Specified by:
writeValuesToByteStream in class Bytecode
Throws:
java.io.IOException


Copyright © 2008 Joanju Software. All Rights Reserved.