Date: | Tue, 19 May 2015 10:21:00 -0500 |
---|---|
From: | Emily Gember-Jacobson <jacobson@xxxxxxxxxxx> |
Subject: | [DynInst_API:] COMMIT (3/3): Stack Analysis Updates |
This series of commits includes bug fixes for stack analysis, as well as some new functionality to provide less conservative stack analysis results.
 ÂÂDefine >, <=, >=, and - operators for StackAnalysis::Height  ÂÂAdd += operator for StackAnalysis::Height   Bug fixes for arithmetic operations for StackAnalysis::Height  Â   Previously, most arithmetic involving TOP returned TOP. This is not   correct, and the operators have been updated accordingly.  ÂÂRedefine delta and abs to be of type long in StackAnalysis::TransferFunc   Extend stack analysis transfer functions to handle targets that should be   "rounded" to TOP or BOTTOM.  Â   This annotate transfer functions that have the following characteristic:   if target is TOP, keep as TOP   else, target must be set to BOTTOM   E.g., sign-extending a register:    if the register had an uninitialized stack height (TOP),     the sign-extension has no effect    if the register had a valid or notunique (BOTTOM) stack height,     the sign-extension must result in a BOTTOM stack height  ÂÂIn stack analysis, add handlers for sign- and zero-extend instructions.  ÂÂModify StackAnalysis::findDefinedHeights to include registers with a height of BOTTOM.   Redefine StackAnalysis::handleDefault to round a register to TOP or BOTTOM,   instead of always setting to BOTTOM.  ÂÂUpdated StackAnalysis::handleAddSub to also operate on non-SP registers.   Update StackAnalysis::handleMov to handle non register-register moves.   Handle complex LEA instructions in stack analysis.  Â   Existing stack analysis only handled LEA instructions with a single source   register. This ignores LEA instructions where the source is an SIB   _expression_. A new transfer func, sibFunc, has been added, and the apply()   and accumulate() functions have been updated to properly handle this new   transfer function. |
[← Prev in Thread] | Current Thread | [Next in Thread→] |
---|---|---|
|
Previous by Date: | [DynInst_API:] COMMIT (2/3): Utility Support for Stack Modifications, Emily Gember-Jacobson |
---|---|
Next by Date: | [DynInst_API:] COMMIT: Stack modifications documentation (docs branch), Emily Gember-Jacobson |
Previous by Thread: | [DynInst_API:] COMMIT (2/3): Utility Support for Stack Modifications, Emily Gember-Jacobson |
Next by Thread: | [DynInst_API:] COMMIT: a few more fixes in parsing, Xiaozhu Meng |
Indexes: | [Date] [Thread] |