This series of commits includes bug fixes for stack analysis, as well as
some new functionality to provide less conservative stack analysis results.

Commit b35549cfbb99f5d8ec3c4fbc3bbc60712dc31af2
<http://git.dyninst.org/?p=dyninst.git;a=commit;h=b35549cfbb99f5d8ec3c4fbc3bbc60712dc31af2>
    Define >, <=, >=, and - operators for StackAnalysis::Height

Commit db37694b60067e7785d47d29d9ac159507849fde
<http://git.dyninst.org/?p=dyninst.git;a=commit;h=db37694b60067e7785d47d29d9ac159507849fde>
    Add += operator for StackAnalysis::Height

Commit 8054c01f082943c21cb789ae4a516dcaa8ba7e8e
<http://git.dyninst.org/?p=dyninst.git;a=commit;h=8054c01f082943c21cb789ae4a516dcaa8ba7e8e>
    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.

Commit 70ff5b36bd2908367910695362dcedeb6e43cc81
<http://git.dyninst.org/?p=dyninst.git;a=commit;h=70ff5b36bd2908367910695362dcedeb6e43cc81>
    Redefine delta and abs to be of type long in StackAnalysis::TransferFunc

Commit 0f5d60ae68f2eebd82f9c70fc9d26ed12e5c919e
<http://git.dyninst.org/?p=dyninst.git;a=commit;h=0f5d60ae68f2eebd82f9c70fc9d26ed12e5c919e>
    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

Commit d720f4b876cc2ec6d972890f0645c8311bc100b1
<http://git.dyninst.org/?p=dyninst.git;a=commit;h=d720f4b876cc2ec6d972890f0645c8311bc100b1>
    In stack analysis, add handlers for sign- and zero-extend instructions.

Commit 9c25128faa6c9279c936f608e85b2ceb1f9681a4
<http://git.dyninst.org/?p=dyninst.git;a=commit;h=9c25128faa6c9279c936f608e85b2ceb1f9681a4>
    Modify StackAnalysis::findDefinedHeights to include registers with a
height of BOTTOM.

Commit 0b3cc15d9569a8196378a2e23b11959fcfede70d
<http://git.dyninst.org/?p=dyninst.git;a=commit;h=0b3cc15d9569a8196378a2e23b11959fcfede70d>
    Redefine StackAnalysis::handleDefault to round a register to TOP or
BOTTOM,
    instead of always setting to BOTTOM.

Commit 60856a9e5ab0477cb85781c9ea6909de065bbcb4
<http://git.dyninst.org/?p=dyninst.git;a=commit;h=60856a9e5ab0477cb85781c9ea6909de065bbcb4>
    Updated StackAnalysis::handleAddSub to also operate on non-SP registers.

Commit 54d19f966dd02304a94001e5248eed5cca04739b
<http://git.dyninst.org/?p=dyninst.git;a=commit;h=54d19f966dd02304a94001e5248eed5cca04739b>
    Update StackAnalysis::handleMov to handle non register-register moves.

Commit f1d6ae78e50ea0db69396858b191e2ab6310acf0
<http://git.dyninst.org/?p=dyninst.git;a=commit;h=f1d6ae78e50ea0db69396858b191e2ab6310acf0>
    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.
_______________________________________________
Dyninst-api mailing list
[email protected]
https://lists.cs.wisc.edu/mailman/listinfo/dyninst-api

Reply via email to