|
const Location * | getLocation (Constructor *ctor) const |
|
const Location * | getLocation (SleighSymbol *sym) const |
|
string | formatStatusMessage (const Location *loc, const string &msg) |
|
void | reportError (const string &msg) |
|
void | reportError (const Location *loc, const string &msg) |
|
void | reportWarning (const string &msg) |
|
void | reportWarning (const Location *loc, const string &msg) |
|
int4 | numErrors (void) const |
|
void | reportInfo (const string &msg) |
|
void | reportInfo (const Location *loc, const string &msg) |
|
uintb | getUniqueAddr (void) |
|
void | setUnnecessaryPcodeWarning (bool val) |
|
void | setDeadTempWarning (bool val) |
|
void | setEnforceLocalKeyWord (bool val) |
|
void | setLargeTemporaryWarning (bool val) |
|
void | setLenientConflict (bool val) |
|
void | setLocalCollisionWarning (bool val) |
|
void | setAllNopWarning (bool val) |
|
void | process (void) |
|
void | calcContextLayout (void) |
|
string | grabCurrentFilePath (void) const |
|
void | parseFromNewFile (const string &fname) |
|
void | parsePreprocMacro (void) |
|
void | parseFileFinished (void) |
|
void | nextLine (void) |
|
bool | getPreprocValue (const string &nm, string &res) const |
|
void | setPreprocValue (const string &nm, const string &value) |
|
bool | undefinePreprocValue (const string &nm) |
|
TokenSymbol * | defineToken (string *name, uintb *sz, int4 endian) |
|
void | addTokenField (TokenSymbol *sym, FieldQuality *qual) |
|
bool | addContextField (VarnodeSymbol *sym, FieldQuality *qual) |
|
void | newSpace (SpaceQuality *qual) |
|
SectionSymbol * | newSectionSymbol (const string &nm) |
|
void | setEndian (int4 end) |
|
void | setAlignment (int4 val) |
|
void | defineVarnodes (SpaceSymbol *spacesym, uintb *off, uintb *size, vector< string > *names) |
|
void | defineBitrange (string *name, VarnodeSymbol *sym, uint4 bitoffset, uint4 numb) |
|
void | addUserOp (vector< string > *names) |
|
void | attachValues (vector< SleighSymbol * > *symlist, vector< intb > *numlist) |
|
void | attachNames (vector< SleighSymbol * > *symlist, vector< string > *names) |
|
void | attachVarnodes (vector< SleighSymbol * > *symlist, vector< SleighSymbol * > *varlist) |
|
SubtableSymbol * | newTable (string *nm) |
|
void | newOperand (Constructor *ct, string *nm) |
|
VarnodeTpl * | addressOf (VarnodeTpl *var, uint4 size) |
|
PatternEquation * | constrainOperand (OperandSymbol *sym, PatternExpression *patexp) |
|
void | defineOperand (OperandSymbol *sym, PatternExpression *patexp) |
|
PatternEquation * | defineInvisibleOperand (TripleSymbol *sym) |
|
void | selfDefine (OperandSymbol *sym) |
|
ConstructTpl * | setResultVarnode (ConstructTpl *ct, VarnodeTpl *vn) |
|
ConstructTpl * | setResultStarVarnode (ConstructTpl *ct, StarQuality *star, VarnodeTpl *vn) |
|
bool | contextMod (vector< ContextChange * > *vec, ContextSymbol *sym, PatternExpression *pe) |
|
void | contextSet (vector< ContextChange * > *vec, TripleSymbol *sym, ContextSymbol *cvar) |
|
MacroSymbol * | createMacro (string *name, vector< string > *param) |
|
void | compareMacroParams (MacroSymbol *sym, const vector< ExprTree * > ¶m) |
|
vector< OpTpl * > * | createMacroUse (MacroSymbol *sym, vector< ExprTree * > *param) |
|
SectionVector * | standaloneSection (ConstructTpl *main) |
|
SectionVector * | firstNamedSection (ConstructTpl *main, SectionSymbol *sym) |
|
SectionVector * | nextNamedSection (SectionVector *vec, ConstructTpl *section, SectionSymbol *sym) |
|
SectionVector * | finalNamedSection (SectionVector *vec, ConstructTpl *section) |
|
vector< OpTpl * > * | createCrossBuild (VarnodeTpl *addr, SectionSymbol *sym) |
|
Constructor * | createConstructor (SubtableSymbol *sym) |
|
bool | isInRoot (Constructor *ct) const |
|
void | resetConstructors (void) |
|
void | pushWith (SubtableSymbol *ss, PatternEquation *pateq, vector< ContextChange * > *contvec) |
|
void | popWith (void) |
|
void | buildConstructor (Constructor *big, PatternEquation *pateq, vector< ContextChange * > *contvec, SectionVector *vec) |
|
void | buildMacro (MacroSymbol *sym, ConstructTpl *rtl) |
|
void | recordNop (void) |
|
virtual void | initialize (DocumentStorage &store) |
| Initialize the translator given XML configuration documents. More...
|
|
virtual int4 | instructionLength (const Address &baseaddr) const |
| Get the length of a machine instruction. More...
|
|
virtual int4 | oneInstruction (PcodeEmit &emit, const Address &baseaddr) const |
| Transform a single machine instruction into pcode. More...
|
|
virtual int4 | printAssembly (AssemblyEmit &emit, const Address &baseaddr) const |
| Disassemble a single machine instruction. More...
|
|
| SleighBase (void) |
| Construct an uninitialized translator.
|
|
virtual void | addRegister (const string &nm, AddrSpace *base, uintb offset, int4 size) |
| Add a named register to the model for this processor. More...
|
|
virtual const VarnodeData & | getRegister (const string &nm) const |
| Get a register as VarnodeData given its name. More...
|
|
virtual string | getRegisterName (AddrSpace *base, uintb off, int4 size) const |
| Get the name of a register given its location. More...
|
|
virtual void | getAllRegisters (map< VarnodeData, string > ®list) const |
| Get a list of all register names and the corresponding location. More...
|
|
virtual void | getUserOpNames (vector< string > &res) const |
| Get a list of all user-defined pcode ops. More...
|
|
void | saveXml (ostream &s) const |
| Write out the SLEIGH specification as an XML <sleigh> tag. More...
|
|
| Translate (void) |
| Constructor for the translator. More...
|
|
void | setDefaultFloatFormats (void) |
| If no explicit float formats, set up default formats. More...
|
|
bool | isBigEndian (void) const |
| Is the processor big endian? More...
|
|
const FloatFormat * | getFloatFormat (int4 size) const |
| Get format for a particular floating point encoding. More...
|
|
int4 | getAlignment (void) const |
| Get the instruction alignment for the processor. More...
|
|
uintm | getUniqueBase (void) const |
| Get the base offset for new temporary registers. More...
|
|
virtual void | registerContext (const string &name, int4 sbit, int4 ebit) |
| Add a new context variable to the model for this processor. More...
|
|
virtual void | setContextDefault (const string &name, uintm val) |
| Set the default value for a particular context variable. More...
|
|
virtual void | allowContextSet (bool val) const |
| Toggle whether disassembly is allowed to affect context. More...
|
|
| AddrSpaceManager (void) |
| Construct an empty address space manager. More...
|
|
virtual | ~AddrSpaceManager (void) |
| Destroy the manager. More...
|
|
int4 | getDefaultSize (void) const |
| Get size of addresses for the default space. More...
|
|
AddrSpace * | getSpaceByName (const string &nm) const |
| Get address space by name. More...
|
|
AddrSpace * | getSpaceByShortcut (char sc) const |
| Get address space from its shortcut. More...
|
|
AddrSpace * | getIopSpace (void) const |
| Get the internal pcode op space. More...
|
|
AddrSpace * | getFspecSpace (void) const |
| Get the internal callspec space. More...
|
|
AddrSpace * | getJoinSpace (void) const |
| Get the joining space. More...
|
|
AddrSpace * | getStackSpace (void) const |
| Get the stack space for this processor. More...
|
|
AddrSpace * | getUniqueSpace (void) const |
| Get the temporary register space for this processor. More...
|
|
AddrSpace * | getDefaultCodeSpace (void) const |
| Get the default address space of this processor. More...
|
|
AddrSpace * | getDefaultDataSpace (void) const |
| Get the default address space where data is stored. More...
|
|
AddrSpace * | getConstantSpace (void) const |
| Get the constant space. More...
|
|
Address | getConstant (uintb val) const |
| Get a constant encoded as an Address. More...
|
|
Address | createConstFromSpace (AddrSpace *spc) const |
| Create a constant address encoding an address space. More...
|
|
Address | resolveConstant (AddrSpace *spc, uintb val, int4 sz, const Address &point, uintb &fullEncoding) const |
| Resolve a native constant into an Address. More...
|
|
int4 | numSpaces (void) const |
| Get the number of address spaces for this processor. More...
|
|
AddrSpace * | getSpace (int4 i) const |
| Get an address space via its index. More...
|
|
AddrSpace * | getNextSpaceInOrder (AddrSpace *spc) const |
| Get the next contiguous address space. More...
|
|
JoinRecord * | findAddJoin (const vector< VarnodeData > &pieces, uint4 logicalsize) |
| Get (or create) JoinRecord for pieces. More...
|
|
JoinRecord * | findJoin (uintb offset) const |
| Find JoinRecord for offset in the join space. More...
|
|
void | setDeadcodeDelay (AddrSpace *spc, int4 delaydelta) |
| Set the deadcodedelay for a specific space. More...
|
|
void | truncateSpace (const TruncationTag &tag) |
| Mark a space as truncated from its original size. More...
|
|
Address | constructFloatExtensionAddress (const Address &realaddr, int4 realsize, int4 logicalsize) |
| Build a logically lower precision storage location for a bigger floating point register. More...
|
|
Address | constructJoinAddress (const Translate *translate, const Address &hiaddr, int4 hisz, const Address &loaddr, int4 losz) |
| Build a logical whole from register pairs. More...
|
|
void | renormalizeJoinAddress (Address &addr, int4 size) |
| Make sure a possibly offset join address has a proper JoinRecord. More...
|
|