Package ghidra.pcodeCPort.slgh_compile
Class PcodeCompile
- java.lang.Object
-
- ghidra.pcodeCPort.slgh_compile.PcodeCompile
-
- Direct Known Subclasses:
PcodeParser
public abstract class PcodeCompile extends java.lang.Object
-
-
Constructor Summary
Constructors Constructor Description PcodeCompile()
-
Method Summary
-
-
-
Field Detail
-
log
public static final org.apache.logging.log4j.Logger log
-
noplist
public VectorSTL<java.lang.String> noplist
-
-
Method Detail
-
setEnforceLocalKey
public void setEnforceLocalKey(boolean val)
-
getDefaultSpace
public abstract AddrSpace getDefaultSpace()
-
getConstantSpace
public abstract AddrSpace getConstantSpace()
-
getUniqueSpace
public abstract AddrSpace getUniqueSpace()
-
allocateTemp
public abstract long allocateTemp()
-
addSymbol
public abstract void addSymbol(SleighSymbol sym)
-
findSymbol
public abstract SleighSymbol findSymbol(java.lang.String nm)
-
newSectionSymbol
public abstract SectionSymbol newSectionSymbol(Location where, java.lang.String text)
-
createCrossBuild
public abstract VectorSTL<OpTpl> createCrossBuild(Location find, VarnodeTpl v, SectionSymbol second)
-
standaloneSection
public abstract SectionVector standaloneSection(ConstructTpl c)
-
firstNamedSection
public abstract SectionVector firstNamedSection(ConstructTpl main, SectionSymbol sym)
-
nextNamedSection
public abstract SectionVector nextNamedSection(SectionVector vec, ConstructTpl section, SectionSymbol sym)
-
finalNamedSection
public abstract SectionVector finalNamedSection(SectionVector vec, ConstructTpl section)
-
createMacroUse
public abstract VectorSTL<OpTpl> createMacroUse(Location location, MacroSymbol sym, VectorSTL<ExprTree> param)
- Parameters:
location
-sym
- MacroSymbolparam
-- Returns:
-
recordNop
public abstract void recordNop(Location location)
-
reportError
public void reportError(Location location, java.lang.String msg)
-
getErrors
public int getErrors()
-
reportWarning
public void reportWarning(Location location, java.lang.String msg)
-
getWarnings
public int getWarnings()
-
resetLabelCount
public void resetLabelCount()
-
buildTemporary
public VarnodeTpl buildTemporary(Location location)
-
defineLabel
public LabelSymbol defineLabel(Location location, java.lang.String name)
-
placeLabel
public VectorSTL<OpTpl> placeLabel(Location location, LabelSymbol labsym)
-
setResultVarnode
public ConstructTpl setResultVarnode(ConstructTpl ct, VarnodeTpl vn)
-
setResultStarVarnode
public ConstructTpl setResultStarVarnode(ConstructTpl ct, StarQuality star, VarnodeTpl vn)
-
newLocalDefinition
public void newLocalDefinition(Location location, java.lang.String varname)
-
newLocalDefinition
public void newLocalDefinition(Location location, java.lang.String varname, int size)
-
newOutput
public VectorSTL<OpTpl> newOutput(Location location, boolean usesLocalKey, ExprTree rhs, java.lang.String varname)
-
newOutput
public VectorSTL<OpTpl> newOutput(Location location, boolean usesLocalKey, ExprTree rhs, java.lang.String varname, int size)
-
createOpOut
public ExprTree createOpOut(Location location, VarnodeTpl outvn, OpCode opc, ExprTree vn1, ExprTree vn2)
-
createOpOutUnary
public ExprTree createOpOutUnary(Location location, VarnodeTpl outvn, OpCode opc, ExprTree vn)
-
createOpNoOut
public VectorSTL<OpTpl> createOpNoOut(Location location, OpCode opc, ExprTree vn1, ExprTree vn2)
-
createLoad
public ExprTree createLoad(Location location, StarQuality qual, ExprTree ptr)
-
createStore
public VectorSTL<OpTpl> createStore(Location location, StarQuality qual, ExprTree ptr, ExprTree val)
-
createUserOp
public ExprTree createUserOp(UserOpSymbol sym, VectorSTL<ExprTree> param)
-
createUserOpNoOut
public VectorSTL<OpTpl> createUserOpNoOut(Location location, UserOpSymbol sym, VectorSTL<ExprTree> param)
-
createVariadic
public ExprTree createVariadic(Location location, OpCode opc, VectorSTL<ExprTree> param)
-
buildTruncatedVarnode
public VarnodeTpl buildTruncatedVarnode(Location loc, VarnodeTpl basevn, int bitoffset, int numbits)
-
appendOp
public void appendOp(Location location, OpCode opc, ExprTree res, long constval, int constsz)
-
assignBitRange
public VectorSTL<OpTpl> assignBitRange(Location location, VarnodeTpl vn, int bitoffset, int numbits, ExprTree rhs)
-
createBitRange
public ExprTree createBitRange(Location location, SpecificSymbol sym, int bitoffset, int numbits)
-
addressOf
public VarnodeTpl addressOf(VarnodeTpl var, int size)
-
propagateSize
public boolean propagateSize(ConstructTpl ct)
-
entry
public static void entry(java.lang.String name, java.lang.Object... args)
-
findInternalFunction
public java.lang.Object findInternalFunction(Location location, java.lang.String name, VectorSTL<ExprTree> operands)
EXTREMELY IMPORTANT: keep this up to date with isInternalFunction below!!!- Parameters:
name
-- Returns:
-
isInternalFunction
public boolean isInternalFunction(java.lang.String name)
EXTREMELY IMPORTANT: keep this up to date with findInternalFunction above!!!- Parameters:
name
-- Returns:
-
-