Various changes for powerpc 64-bit jump table analysis
authorXiaozhu Meng <xmeng@cs.wisc.edu>
Wed, 19 Jul 2017 13:07:54 +0000 (08:07 -0500)
committerXiaozhu Meng <xmeng@cs.wisc.edu>
Tue, 15 Aug 2017 20:51:27 +0000 (15:51 -0500)
commit4875ba0df882602566e8cbc74c5802b14f996835
treea8d3bf910cab78d1f729bf99f78be6065a8babbe
parentb1c8cb0cedc0e8b6df70ff3ab394563046de2d5e
Various changes for powerpc 64-bit jump table analysis
1. More fixes for conversion between Dyninst instructions and ROSE instructions
2. Add a few instruction semantics
3. Properly handle comparison and conditional jump for powerpc in jump table analysis
4. Handle rotate left operation in jump table analysis
5. Add support for power 64-bit on recognizing loading TOC pointers into R2. R2 is then often used to calculate the address of jump tables.
14 files changed:
common/src/dyn_regs.C
dataflowAPI/rose/semantics/DispatcherPowerpc.C
dataflowAPI/src/ExpressionConversionVisitor.C
dataflowAPI/src/RoseInsnFactory.C
dataflowAPI/src/SymbolicExpansion.C
parseAPI/src/BoundFactCalculator.C
parseAPI/src/BoundFactData.C
parseAPI/src/IndirectASTVisitor.C
parseAPI/src/IndirectASTVisitor.h
parseAPI/src/IndirectAnalyzer.C
parseAPI/src/JumpTableFormatPred.C
parseAPI/src/JumpTableFormatPred.h
parseAPI/src/JumpTableIndexPred.C
parseAPI/src/SymbolicExpression.C