[DynInst_API:] [dyninst/dyninst] d087ef: Fix register conversion between Dyninst and ROSE


Date: Mon, 19 Dec 2016 10:47:09 -0800
From: John Detter <jdetter@xxxxxxxx>
Subject: [DynInst_API:] [dyninst/dyninst] d087ef: Fix register conversion between Dyninst and ROSE
  Branch: refs/heads/att_syntax
  Home:   https://github.com/dyninst/dyninst
  Commit: d087ef0ac96c21eaca191c744d220080c2b58840
      https://github.com/dyninst/dyninst/commit/d087ef0ac96c21eaca191c744d220080c2b58840
  Author: Sunny Shah <shah28@xxxxxxxx>
  Date:   2016-07-21 (Thu, 21 Jul 2016)

  Changed paths:
    M common/src/dyn_regs.C
    M dataflowAPI/rose/semantics/SymEvalSemantics.C
    M dataflowAPI/rose/semantics/SymEvalSemantics.h

  Log Message:
  -----------
  Fix register conversion between Dyninst and ROSE
* The conversion of a Dyninst register to ROSE was using the full integer value in MachRegister, whereas only the lower 16 bits have to be used.
* convert() in SymEvalSemantics now takes in a RegisterDescriptor as argument to support all register categories other than SIMD/FPR.

Also fixed a few small bugs in the Dispatcher class for ARM.


  Commit: 3ac05a7597024895d504adcc2c74ec75d873f02a
      https://github.com/dyninst/dyninst/commit/3ac05a7597024895d504adcc2c74ec75d873f02a
  Author: Sunny Shah <shah28@xxxxxxxx>
  Date:   2016-09-09 (Fri, 09 Sep 2016)

  Changed paths:
    M dataflowAPI/rose/semantics/DispatcherARM64.C
    M dataflowAPI/rose/semantics/DispatcherARM64.h
    M dataflowAPI/rose/semantics/SymEvalSemantics.C
    M dataflowAPI/rose/semantics/SymEvalSemantics.h

  Log Message:
  -----------
  Added semantics for the following instructions:

* Immediate and register variants of LDR, LDRB, LDRH, LDRSB, LDRSH, LDRSW, STR, STRB, STRH
* Literal variants of LDR and LDRSW

The signatures of readMemory() and writeMemory() in SymEvalSemantics::StateARM64 and SymEvalSemantics::MemoryStateARM64 are modified to be able to pass in the read and write sizes.


  Commit: 31e138a3eef66fe7992236deacc5504b9d7851d0
      https://github.com/dyninst/dyninst/commit/31e138a3eef66fe7992236deacc5504b9d7851d0
  Author: Sunny Shah <shah28@xxxxxxxx>
  Date:   2016-09-12 (Mon, 12 Sep 2016)

  Changed paths:
    M dataflowAPI/rose/semantics/BaseSemantics2.C
    M dataflowAPI/rose/semantics/SymEvalSemantics.h

  Log Message:
  -----------
  Minor fixes for ARM64 semantics

* Fixed order of arguments in initialization of a boolean SValue in SymEvalSemantics
* Dispatcher::read() in BaseSemantics now does not assert if the input expression is an SgAsmBinaryLsl


  Commit: acaf57bd1dd9431d7d9c4cc6ac5ff549010f5e6b
      https://github.com/dyninst/dyninst/commit/acaf57bd1dd9431d7d9c4cc6ac5ff549010f5e6b
  Author: Sunny Shah <shah28@xxxxxxxx>
  Date:   2016-09-12 (Mon, 12 Sep 2016)

  Changed paths:
    M dataflowAPI/rose/semantics/DispatcherARM64.C
    M dataflowAPI/rose/semantics/DispatcherARM64.h

  Log Message:
  -----------
  Effective address calculation and load/store instruction semantics fixes.

The 'address' variable in the semantics for load/store instructions should not directly call Dispatcher::read(), but should only store the address of the target location in memory. The semantics have been updated to reflect this. A new method - DispatcherARM64::effectiveAddress() - is added which is called in the above scenario.

In addition, the pre-fix part of the address calculation doesn't have to be performed again in dataflow API since the required information is already encoded in the AST by instruction API.


  Commit: 5bc0beb79a4aece49ab4f94e4851cbf7902fe01c
      https://github.com/dyninst/dyninst/commit/5bc0beb79a4aece49ab4f94e4851cbf7902fe01c
  Author: Sunny Shah <shah28@xxxxxxxx>
  Date:   2016-09-14 (Wed, 14 Sep 2016)

  Changed paths:
    M common/src/dyn_regs.C

  Log Message:
  -----------
  When determining the ROSE register category for ARM registers, comparisions of the MachRegisters with 'baseID' should only use the MachRegister's lowermost 16 bits.


  Commit: 49e7cd96b6ba4e6db7607156cf6f126c2492021c
      https://github.com/dyninst/dyninst/commit/49e7cd96b6ba4e6db7607156cf6f126c2492021c
  Author: Sunny Shah <shah28@xxxxxxxx>
  Date:   2016-09-18 (Sun, 18 Sep 2016)

  Changed paths:
    M dataflowAPI/rose/semantics/SymEvalSemantics.C

  Log Message:
  -----------
  The argument to SymEvalSemantics::addWithCarries for unsign-extending
the second addend should be the second operand from the instruction AST.

The bug here was that the first operand from the AST was being passed
for the unsign-extend operation. This caused the semantic expression and
hence the resulting assignment expansion for the instructions calling
this function to be incorrect.


  Commit: ae8875e306a2c2ad77d2ea9b4b9c41e1770c8d74
      https://github.com/dyninst/dyninst/commit/ae8875e306a2c2ad77d2ea9b4b9c41e1770c8d74
  Author: Sunny Shah <shah28@xxxxxxxx>
  Date:   2016-09-23 (Fri, 23 Sep 2016)

  Changed paths:
    M common/h/dyn_regs.h
    M common/src/dyn_regs.C
    M dataflowAPI/rose/semantics/Registers.C
    M external/rose/armv8InstructionEnum.h

  Log Message:
  -----------
  Register definitions for treating the 4 ARM64 flags separately

As with dataflow analysis on other architectures, each flag should be treated as a distinct unit. Following changes, made as part of this commit, achieve this:
- n, z, c and v have been added as individual register definitions in dyn_regs with their baseIDs indicating their positions in the pstate register. The conversions from Dyninst to ROSE registers for these new additions are also defined.
- The 'nzcv' enum value in ARMv8PstateFields (for use in ARM semantics) is split into 4 different values, one for each flag. Each of these is also added to the register dictionary for ARMv8 in Registers.C.


  Commit: a43a70ed9d1e0dc97fe17a76015af76522a86ef8
      https://github.com/dyninst/dyninst/commit/a43a70ed9d1e0dc97fe17a76015af76522a86ef8
  Author: Sunny Shah <shah28@xxxxxxxx>
  Date:   2016-09-26 (Mon, 26 Sep 2016)

  Changed paths:
    M dataflowAPI/rose/semantics/DispatcherARM64.C
    M dataflowAPI/rose/semantics/DispatcherARM64.h
    M dataflowAPI/rose/semantics/SymEvalSemantics.C

  Log Message:
  -----------
  Modify DispatcherARM64 methods accessing flags to read/write them
individually from/to the respective registers. This includes changes to
the method signatures where required.


  Commit: 237d17d7cb4aded05e879ae42fb7d50efa919846
      https://github.com/dyninst/dyninst/commit/237d17d7cb4aded05e879ae42fb7d50efa919846
  Author: Sunny Shah <shah28@xxxxxxxx>
  Date:   2016-09-27 (Tue, 27 Sep 2016)

  Changed paths:
    M dataflowAPI/rose/semantics/DispatcherARM64.C

  Log Message:
  -----------
  Updated semantics to use register descriptor REG_N, REG_Z, REG_C, REG_V
for the flags instead of REG_NZCV.


  Commit: 3a15c6fdde4fe71414f74df0109dfc90cc5a4191
      https://github.com/dyninst/dyninst/commit/3a15c6fdde4fe71414f74df0109dfc90cc5a4191
  Author: Xiaozhu Meng <xmeng@xxxxxxxxxxx>
  Date:   2016-09-28 (Wed, 28 Sep 2016)

  Changed paths:
    M common/h/dyn_regs.h
    M common/src/dyn_regs.C
    M dataflowAPI/src/slicing.C
    M parseAPI/src/BoundFactCalculator.C

  Log Message:
  -----------
  1. Create an architecture independent interface to get the zero flag register and use it in jump table analysis
2. Change slicing code to use architecture independent interface to get program counter


  Commit: a269cee660426cb533a7fde57a7b16b8ad3a17de
      https://github.com/dyninst/dyninst/commit/a269cee660426cb533a7fde57a7b16b8ad3a17de
  Author: Sunny Shah <shahsunny712@xxxxxxxxx>
  Date:   2016-09-28 (Wed, 28 Sep 2016)

  Changed paths:
    M dataflowAPI/src/ExpressionConversionVisitor.C

  Log Message:
  -----------
  Ignore the PSTATE register when converting an instruction to ROSE's format


  Commit: 010df64b2c9c1ff6647924bb5cc477ce559255d1
      https://github.com/dyninst/dyninst/commit/010df64b2c9c1ff6647924bb5cc477ce559255d1
  Author: Sunny Shah <shahsunny712@xxxxxxxxx>
  Date:   2016-10-03 (Mon, 03 Oct 2016)

  Changed paths:
    M dataflowAPI/src/AbslocInterface.C

  Log Message:
  -----------
  When converting read/written registers to assignments for an instruction, replace all references to PSTATE with N, Z, C and V for ARM64.


  Commit: 3a8715b225efa4d2d9d685cd52ed4385d7817320
      https://github.com/dyninst/dyninst/commit/3a8715b225efa4d2d9d685cd52ed4385d7817320
  Author: Xiaozhu Meng <xmeng@xxxxxxxxxxx>
  Date:   2016-10-04 (Tue, 04 Oct 2016)

  Changed paths:
    M common/h/dyn_regs.h
    M common/src/dyn_regs.C
    M parseAPI/src/BoundFactCalculator.C
    M parseAPI/src/BoundFactData.C
    M parseAPI/src/IndirectASTVisitor.C
    M parseAPI/src/JumpTablePred.C

  Log Message:
  -----------
  1. Add an architecture-independent interface to check whether a register represents a flag
2. In jump table analysis, perform shift-left operations if both operands are constant and use architecture-independent interface


  Commit: 16295d10b920f6c73f1f574e2971eb20bdbb314a
      https://github.com/dyninst/dyninst/commit/16295d10b920f6c73f1f574e2971eb20bdbb314a
  Author: Sunny Shah <shahsunny712@xxxxxxxxx>
  Date:   2016-10-04 (Tue, 04 Oct 2016)

  Changed paths:
    M dataflowAPI/rose/semantics/DispatcherARM64.C

  Log Message:
  -----------
  The mask used when modifying a certain range of bits of a value was clearing out the bits that didn't need to be modified and perserving those that needed to be. Fixed to use the invert of this as the actual mask.
Additionally, the 'imm' and 'bit_pos' variables correspond to the second, and not the first, operand in the operand list.


  Commit: fc0c0bb1209a2675c1f58d91323c2eef108387a5
      https://github.com/dyninst/dyninst/commit/fc0c0bb1209a2675c1f58d91323c2eef108387a5
  Author: Xiaozhu Meng <xmeng@xxxxxxxxxxx>
  Date:   2016-10-04 (Tue, 04 Oct 2016)

  Changed paths:
    M parseAPI/src/BoundFactCalculator.C
    M parseAPI/src/BoundFactData.C
    M parseAPI/src/BoundFactData.h
    M parseAPI/src/IndirectASTVisitor.C
    M parseAPI/src/IndirectASTVisitor.h
    M parseAPI/src/InstructionSource-aarch64.C
    M parseAPI/src/JumpTablePred.C

  Log Message:
  -----------
  1. Jump table contents can be first multiplied and then added to a jump base.
2. On ARMV8, the PC value is pre-instruction, while the PC value is post-instruction on x86/x64


  Commit: e255d6e0c395f07c48b0d40d419c6432bbb2919b
      https://github.com/dyninst/dyninst/commit/e255d6e0c395f07c48b0d40d419c6432bbb2919b
  Author: Sunny Shah <shah28@xxxxxxxx>
  Date:   2016-10-06 (Thu, 06 Oct 2016)

  Changed paths:
    M common/src/dyn_regs.C
    M dataflowAPI/rose/semantics/Registers.C
    M dataflowAPI/rose/semantics/SymEvalSemantics.C
    M external/rose/armv8InstructionEnum.h

  Log Message:
  -----------
  Added ability to convert the ARM64 SIMD/FP registers between ROSE(semantics) and Dyninst.
- getROSERegister() supports computing the different values of a
RegisterDescriptor for ARM64 SIMD/FP registers
- RegisterDescriptors for all accessible parts of a SIMD/FP register
(8-bit, 16-bit, 32-bit, upper and lower 64-bit and 128-bit) are added to
the RegisterDictionary for ARM64 in ROSE semantics
- SymEvalSemantics now converts from SIMD/FP registers to
Dyninst::MachRegisters.


  Commit: 94beeb565c3967a14be8e3d87254b986c0a107d2
      https://github.com/dyninst/dyninst/commit/94beeb565c3967a14be8e3d87254b986c0a107d2
  Author: Sunny Shah <shah28@xxxxxxxx>
  Date:   2016-10-06 (Thu, 06 Oct 2016)

  Changed paths:
    M common/src/dyn_regs.C

  Log Message:
  -----------
  Bug fix for setting major and minor numbers of the ZR register when
converting from Dyninst to ROSE's representation.

The category of ZR/WZR in Dyninst is SPR and not GPR -- this fix moves
the major and minor number setting block to the appropriate case
statement.


  Commit: 9dca8456b22c71e7a8f791c1f780cacbc220f6fd
      https://github.com/dyninst/dyninst/commit/9dca8456b22c71e7a8f791c1f780cacbc220f6fd
  Author: Sunny Shah <shahsunny712@xxxxxxxxx>
  Date:   2016-10-06 (Thu, 06 Oct 2016)

  Changed paths:
    M dataflowAPI/rose/semantics/DispatcherARM64.C

  Log Message:
  -----------
  Semantics for FMOV

Added semantics manaully for FMOV. Floating point operations ar enot yet supported; however, the variant of FMOV we are seeing in jump tables does nothing but move a value from a FP register to a general purpose register. To allow the analysis to continue, the semantics for this instruction are thus manually added for now.


  Commit: 9cc7caf1f421b1a8b44ba4d148844d0f3a0246c4
      https://github.com/dyninst/dyninst/commit/9cc7caf1f421b1a8b44ba4d148844d0f3a0246c4
  Author: Xiaozhu Meng <xmeng@xxxxxxxxxxx>
  Date:   2016-10-06 (Thu, 06 Oct 2016)

  Changed paths:
    M common/src/dyn_regs.C
    M dataflowAPI/rose/semantics/DispatcherARM64.C
    M dataflowAPI/rose/semantics/Registers.C
    M dataflowAPI/rose/semantics/SymEvalSemantics.C
    M external/rose/armv8InstructionEnum.h

  Log Message:
  -----------
  Merge branch 'arm64/feature/semantics' of /home/ssunny/dyninst/dyninst-code into upstream/arm64/feature/semantics


  Commit: 1a2e3427d8037e04861abd279a3958d279fc534f
      https://github.com/dyninst/dyninst/commit/1a2e3427d8037e04861abd279a3958d279fc534f
  Author: Sunny Shah <shahsunny712@xxxxxxxxx>
  Date:   2016-10-11 (Tue, 11 Oct 2016)

  Changed paths:
    M dataflowAPI/src/ExpressionConversionVisitor.C
    M dataflowAPI/src/RoseImpl.C

  Log Message:
  -----------
  Bug fixes for converting Dyninst Instruction API objects to ROSE SgAsmInstruction objects for ARM64.

* RoseImpl.C: Fixed a bug that caused a stackoverflow when retrieving the SgAsmType of a SgAsmBinaryExpression
* ExpressionConversionVisitor.C: Fixed a typo (there was a && instead of &) that caused all registers to fall through to the call to getROSERegister (this should not be happening when the register is PSTATE)


  Commit: d4db8481e24a65455f0d6e62fbb4bfa7ea591776
      https://github.com/dyninst/dyninst/commit/d4db8481e24a65455f0d6e62fbb4bfa7ea591776
  Author: Sunny Shah <shahsunny712@xxxxxxxxx>
  Date:   2016-10-11 (Tue, 11 Oct 2016)

  Changed paths:
    M dataflowAPI/rose/semantics/DispatcherARM64.C

  Log Message:
  -----------
  Modified implementation of DispatcherARM64::ConditionHolds()

The previous implementation did not make use of the fact the condition value in the expression can be retrieved as a raw integer value and does not have to be treated as a SValuePtr. Treating as an integer greatly simplifies assignment expression for all flags and also makes the code more readable.


  Commit: 3b09cd609324056777095b51e8bb1ebe9e80858b
      https://github.com/dyninst/dyninst/commit/3b09cd609324056777095b51e8bb1ebe9e80858b
  Author: Xiaozhu Meng <xmeng@xxxxxxxxxxx>
  Date:   2016-10-11 (Tue, 11 Oct 2016)

  Changed paths:
    M parseAPI/src/BoundFactCalculator.C
    M parseAPI/src/BoundFactData.C
    M parseAPI/src/IndirectASTVisitor.C
    M parseAPI/src/IndirectASTVisitor.h
    M parseAPI/src/IndirectAnalyzer.C
    M parseAPI/src/JumpTablePred.C

  Log Message:
  -----------
  1. Should delete alias AST when a part of it is assigned a new value.
2. Change Arch_x86 and Arch_x86_64 checking to use address width


  Commit: 3c8edd88e8567d8562f76ceb7345dbefb17f6e89
      https://github.com/dyninst/dyninst/commit/3c8edd88e8567d8562f76ceb7345dbefb17f6e89
  Author: Sunny Shah <shahsunny712@xxxxxxxxx>
  Date:   2016-10-11 (Tue, 11 Oct 2016)

  Changed paths:
    M dataflowAPI/rose/semantics/DispatcherARM64.C

  Log Message:
  -----------
  Fixed typo that caused low bit to be gretaer than the high bit when extracting a value from an integer in DispatcherARM64::getRegSize()


  Commit: 84e671b838fb335661b53832195f7d59cbd4383c
      https://github.com/dyninst/dyninst/commit/84e671b838fb335661b53832195f7d59cbd4383c
  Author: Sunny Shah <shahsunny712@xxxxxxxxx>
  Date:   2016-10-20 (Thu, 20 Oct 2016)

  Changed paths:
    M dataflowAPI/rose/semantics/DispatcherARM64.C
    M dataflowAPI/rose/semantics/DispatcherARM64.h

  Log Message:
  -----------
  Semantics for UBFM and SBFM variants

This commit introduces semantics for the 5 UBFM variants (UXTB, UXTH, UBFM, UBFIZ, UBFX) and SBFM variants (SXTB, SXTH, SBFM, SBFIZ, SBFX), and a couple functions in the DispatcherARM64 class used by these semantics. Implementation of one of these functions needs to be updated (next commit) and UXTB's semantics are modified to proceed with jump table analysis for now; the original semantics are still present as comments and will be restored in a future commit.


  Commit: 71de69136ad559954845ed70c5c8792ded00e373
      https://github.com/dyninst/dyninst/commit/71de69136ad559954845ed70c5c8792ded00e373
  Author: Sunny Shah <shah28@xxxxxxxx>
  Date:   2016-10-31 (Mon, 31 Oct 2016)

  Changed paths:
    M dataflowAPI/rose/semantics/DispatcherARM64.C
    M dataflowAPI/rose/semantics/DispatcherARM64.h

  Log Message:
  -----------
  Added a method to get the target SgAsmExpression when executing
write-back for load/store instructions


  Commit: 23421044f0c6a9fbf594747dc18489ecaa656e22
      https://github.com/dyninst/dyninst/commit/23421044f0c6a9fbf594747dc18489ecaa656e22
  Author: Sunny Shah <shah28@xxxxxxxx>
  Date:   2016-10-31 (Mon, 31 Oct 2016)

  Changed paths:
    M dataflowAPI/rose/semantics/DispatcherARM64.C
    M dataflowAPI/rose/semantics/DispatcherARM64.h

  Log Message:
  -----------
  Semantics for MOVZ, MOVK, MOVN and the MOV variants of MOVZ and MOVN

Also added enum (MoveWideOp) used in these semantics to determine the
type of move


  Commit: ee4bcb2c32ca7a1510b3da9e6b85feb74fc8800a
      https://github.com/dyninst/dyninst/commit/ee4bcb2c32ca7a1510b3da9e6b85feb74fc8800a
  Author: Sunny Shah <shahsunny712@xxxxxxxxx>
  Date:   2016-11-01 (Tue, 01 Nov 2016)

  Changed paths:
    M dataflowAPI/rose/semantics/BaseSemantics2.C

  Log Message:
  -----------
  Added ability to read operands that have a SgAsmBinaryAsr as the root expression


  Commit: bdc29b798ba5f48f8ac4cfd7509528654aeae14f
      https://github.com/dyninst/dyninst/commit/bdc29b798ba5f48f8ac4cfd7509528654aeae14f
  Author: Sunny Shah <shahsunny712@xxxxxxxxx>
  Date:   2016-11-01 (Tue, 01 Nov 2016)

  Changed paths:
    M dataflowAPI/rose/semantics/BaseSemantics2.C

  Log Message:
  -----------
  Allow reading of operands with a SgAsmBinaryLsr as the root expression


  Commit: 99fb8f7d7f29e19f9d476bc3188be3bbe62e725b
      https://github.com/dyninst/dyninst/commit/99fb8f7d7f29e19f9d476bc3188be3bbe62e725b
  Author: Sunny Shah <shah28@xxxxxxxx>
  Date:   2016-11-03 (Thu, 03 Nov 2016)

  Changed paths:
    M dataflowAPI/rose/semantics/DispatcherARM64.C
    M dataflowAPI/rose/semantics/DispatcherARM64.h

  Log Message:
  -----------
  Updated semantics for SBFM and UBFM variants

Semantics updated to not make redundant function calls with the same arguments. Also added implementation for DispatcherARM64::getBitfieldMask().


  Commit: 2e550dc1b390578aa2e3de12a19b634a44ae453b
      https://github.com/dyninst/dyninst/commit/2e550dc1b390578aa2e3de12a19b634a44ae453b
  Author: Sunny Shah <shah28@xxxxxxxx>
  Date:   2016-11-04 (Fri, 04 Nov 2016)

  Changed paths:
    M instructionAPI/src/InstructionDecoder-aarch64.C

  Log Message:
  -----------
  Fix for decoding error in register based load/store instructions

The shift amount for the second source register in load/store (register)
instructions should depend only on the value of the 'S' field.


  Commit: 5bbe517aaa7e0f0fcae61d4a5e88f5e25ed7dcd0
      https://github.com/dyninst/dyninst/commit/5bbe517aaa7e0f0fcae61d4a5e88f5e25ed7dcd0
  Author: Xiaozhu Meng <xmeng@xxxxxxxxxxx>
  Date:   2016-11-04 (Fri, 04 Nov 2016)

  Changed paths:
    M dataflowAPI/rose/semantics/DispatcherARM64.C
    M dataflowAPI/rose/semantics/DispatcherARM64.h
    M instructionAPI/src/InstructionDecoder-aarch64.C

  Log Message:
  -----------
  Merge branch 'arm64/feature/semantics' of /home/ssunny/dyninst/dyninst-code into upstream/arm64/feature/semantics


  Commit: 5f9bbfdd1875d079be34d74a9f5ae8feb82b3c3c
      https://github.com/dyninst/dyninst/commit/5f9bbfdd1875d079be34d74a9f5ae8feb82b3c3c
  Author: Sunny Shah <shah28@xxxxxxxx>
  Date:   2016-11-06 (Sun, 06 Nov 2016)

  Changed paths:
    M instructionAPI/src/InstructionDecoder-aarch64.C

  Log Message:
  -----------
  Instruction decoding fix: Alias ORR to MOV when the first source operand is WZR and the 'shift'
and 'imm6' fields are both 0.


  Commit: c7cf7ced2c3858acd97ec220c0d58c4bf4668cb6
      https://github.com/dyninst/dyninst/commit/c7cf7ced2c3858acd97ec220c0d58c4bf4668cb6
  Author: Xiaozhu Meng <xmeng@xxxxxxxxxxx>
  Date:   2016-11-07 (Mon, 07 Nov 2016)

  Changed paths:
    M instructionAPI/src/InstructionDecoder-aarch64.C

  Log Message:
  -----------
  Merge branch 'upstream/arm64/feature/semantics' of coriander.cs.wisc.edu:/p/paradyn/development/xmeng/dyninstapi/dyninst_development/dyninst into upstream/arm64/feature/semantics


  Commit: 2d5b3c0e5b85e216e6415f6cd8909bbaa30b8007
      https://github.com/dyninst/dyninst/commit/2d5b3c0e5b85e216e6415f6cd8909bbaa30b8007
  Author: Sunny Shah <shah28@xxxxxxxx>
  Date:   2016-11-07 (Mon, 07 Nov 2016)

  Changed paths:
    M dataflowAPI/rose/semantics/DispatcherARM64.C
    M dataflowAPI/rose/semantics/DispatcherARM64.h

  Log Message:
  -----------
  Semantics for ORR variants (including two MOV instructions), ORN and AND/ANDS variants

The semantics use the newly added LogicalOp enum to identify the type of
logical operation.


  Commit: a14cd6c5d74282d2383e80165fa5d03ca57b9425
      https://github.com/dyninst/dyninst/commit/a14cd6c5d74282d2383e80165fa5d03ca57b9425
  Author: Sunny Shah <shah28@xxxxxxxx>
  Date:   2016-11-07 (Mon, 07 Nov 2016)

  Changed paths:
    M dataflowAPI/rose/semantics/DispatcherARM64.C

  Log Message:
  -----------
  Semantics for EOR variants and EON


  Commit: 5e21f7614b40108a8a8c772bbfdb7e6b0b85e2ce
      https://github.com/dyninst/dyninst/commit/5e21f7614b40108a8a8c772bbfdb7e6b0b85e2ce
  Author: Xiaozhu Meng <xmeng@xxxxxxxxxxx>
  Date:   2016-11-07 (Mon, 07 Nov 2016)

  Changed paths:
    M dataflowAPI/rose/semantics/DispatcherARM64.C
    M dataflowAPI/rose/semantics/DispatcherARM64.h

  Log Message:
  -----------
  Merge branch 'upstream/arm64/feature/semantics' of coriander.cs.wisc.edu:/p/paradyn/development/xmeng/dyninstapi/dyninst_development/dyninst into upstream/arm64/feature/semantics


  Commit: 54cdbf8369b62a37f470faec2efd44e8879d9841
      https://github.com/dyninst/dyninst/commit/54cdbf8369b62a37f470faec2efd44e8879d9841
  Author: Sunny Shah <shah28@xxxxxxxx>
  Date:   2016-11-10 (Thu, 10 Nov 2016)

  Changed paths:
    M dataflowAPI/rose/semantics/DispatcherARM64.C

  Log Message:
  -----------
  Semantics for immediate variants of LSL, LSR and ASR


  Commit: b573a3572c0cafa8730559026754e565ca9b1ae2
      https://github.com/dyninst/dyninst/commit/b573a3572c0cafa8730559026754e565ca9b1ae2
  Author: Sunny Shah <shahsunny712@xxxxxxxxx>
  Date:   2016-11-10 (Thu, 10 Nov 2016)

  Changed paths:
    M dataflowAPI/rose/semantics/DispatcherARM64.C

  Log Message:
  -----------
  Merge branch 'arm64/feature/semantics' of bigking.cs.wisc.edu:/u/s/s/ssunny/dev-home/dyninst/dyninst-code into arm64/feature/semantics


  Commit: 57cd4981de373254e0f4f6de1cd4fbe27d0e6112
      https://github.com/dyninst/dyninst/commit/57cd4981de373254e0f4f6de1cd4fbe27d0e6112
  Author: Xiaozhu Meng <xmeng@xxxxxxxxxxx>
  Date:   2016-11-10 (Thu, 10 Nov 2016)

  Changed paths:
    M dataflowAPI/src/SymbolicExpansion.C
    M parseAPI/h/CodeSource.h
    M parseAPI/src/BoundFactData.C
    M parseAPI/src/CodeObject.C
    M parseAPI/src/IA_IAPI.C
    M parseAPI/src/IA_aarch64.C
    M parseAPI/src/IA_x86.C
    M parseAPI/src/IndirectAnalyzer.C
    M parseAPI/src/JumpTablePred.C
    M parseAPI/src/SymtabCodeSource.C
    M parseAPI/src/debug_parse.C
    M parseAPI/src/debug_parse.h

  Log Message:
  -----------
  1. Add timing statistics for parsing
2. Fix tail call heuristics for ARM
3. Eliminate redundant indirect edges


  Commit: 0058983b8d070fe3b1e987c3737ae443495b3628
      https://github.com/dyninst/dyninst/commit/0058983b8d070fe3b1e987c3737ae443495b3628
  Author: Xiaozhu Meng <xmeng@xxxxxxxxxxx>
  Date:   2016-11-10 (Thu, 10 Nov 2016)

  Changed paths:
    M dataflowAPI/rose/semantics/DispatcherARM64.C

  Log Message:
  -----------
  Merge branch 'arm64/feature/semantics' of /home/ssunny/dyninst/dyninst-code into upstream/arm64/feature/semantics


  Commit: 810d689960e6e2c9f57e2475f14677f6d1fce509
      https://github.com/dyninst/dyninst/commit/810d689960e6e2c9f57e2475f14677f6d1fce509
  Author: Xiaozhu Meng <xmeng@xxxxxxxxxxx>
  Date:   2016-11-11 (Fri, 11 Nov 2016)

  Changed paths:
    M parseAPI/src/IndirectASTVisitor.C

  Log Message:
  -----------
  Fix checking of zero flag for table index


  Commit: 9b12e48006423dd77ddd764445cdf32efa7fba7b
      https://github.com/dyninst/dyninst/commit/9b12e48006423dd77ddd764445cdf32efa7fba7b
  Author: Xiaozhu Meng <xmeng@xxxxxxxxxxx>
  Date:   2016-11-11 (Fri, 11 Nov 2016)

  Changed paths:
    M parseAPI/src/IndirectAnalyzer.C

  Log Message:
  -----------
  On ARM, many jump table reads are one-byte memory reads. Assuming one-byte read yields a value in [0,255] would cause too many bogus edges. Disable this heuristics on ARM


  Commit: 25119c1f2437e542e0f645a28dd4eb9054d780a2
      https://github.com/dyninst/dyninst/commit/25119c1f2437e542e0f645a28dd4eb9054d780a2
  Author: Xiaozhu Meng <xmeng@xxxxxxxxxxx>
  Date:   2016-11-11 (Fri, 11 Nov 2016)

  Changed paths:
    M parseAPI/src/JumpTablePred.C
    M parseAPI/src/JumpTablePred.h

  Log Message:
  -----------
  When we encounter instructions without instruction semantics, we should stop jump table analyis.
In such case, if the missing instruction is key to the jump table analysis, we will not be able to
resolve it. If the missing instruction is not relevant to the jump table analysis, the slicing
is including unnecessary instruction. In either case, we should fix things.


  Commit: 2c1b67eca9ad00addbbbd346b57dddbf51040052
      https://github.com/dyninst/dyninst/commit/2c1b67eca9ad00addbbbd346b57dddbf51040052
  Author: Xiaozhu Meng <xmeng@xxxxxxxxxxx>
  Date:   2016-11-11 (Fri, 11 Nov 2016)

  Changed paths:
    M parseAPI/src/JumpTablePred.C

  Log Message:
  -----------
  Only stop slicing when encoutering missing instruction semantics on ARM


  Commit: a17f5b48a5ab63550d44c3a56a356831a9b21467
      https://github.com/dyninst/dyninst/commit/a17f5b48a5ab63550d44c3a56a356831a9b21467
  Author: Xiaozhu Meng <xmeng@xxxxxxxxxxx>
  Date:   2016-11-11 (Fri, 11 Nov 2016)

  Changed paths:
    M .gitignore
    A .idea/deployment.xml
    A .idea/webServers.xml
    M .travis.yml
    M CMakeLists.txt
    R README
    A README.md
    A appveyor.yml
    A cmake/cotire.cmake
    M cmake/optimization.cmake
    M cmake/packages.cmake
    M cmake/shared.cmake
    M cmake/warnings.cmake
    M common/CMakeLists.txt
    M common/h/IBSTree-fast.h
    M common/h/IBSTree.h
    M common/h/SymReader.h
    M common/h/dyntypes.h
    M common/src/addrtranslate-win.C
    M common/src/arch-aarch64.C
    M common/src/debug_common.h
    M common/src/dyn_regs.C
    M common/src/ntHeaders.h
    M common/src/util.C
    A dataflowAPI/README.md
    M dataflowAPI/h/Absloc.h
    M dataflowAPI/h/SymEval.h
    M dataflowAPI/h/stackanalysis.h
    M dataflowAPI/rose/SgAsmPowerpcInstruction.h
    M dataflowAPI/rose/rangemap.C
    M dataflowAPI/rose/util/LinearCongruentialGenerator.C
    M dataflowAPI/rose/util/StringUtility.C
    M dataflowAPI/rose/util/StringUtility.h
    M dataflowAPI/src/ABI.C
    M dataflowAPI/src/Absloc.C
    M dataflowAPI/src/SymEvalPolicy.C
    M dataflowAPI/src/Visitors.C
    M dataflowAPI/src/liveness.C
    M dataflowAPI/src/stackanalysis.C
    M dwarf/CMakeLists.txt
    M dwarf/h/dwarfHandle.h
    M dwarf/src/dwarfHandle.C
    M dwarf/src/dwarfResult.C
    M dynC_API/CMakeLists.txt
    M dynC_API/h/snippetGen.h
    M dynC_API/src/C.l
    M dynC_API/src/C.y
    M dynC_API/src/dynC.C
    M dynC_API/src/dynC.tab.C
    M dynC_API/src/dynC.tab.h
    M dynC_API/src/lex.dynC.C
    M dyninstAPI/CMakeLists.txt
    R dyninstAPI/README
    A dyninstAPI/README.md
    M dyninstAPI/h/BPatch_addressSpace.h
    M dyninstAPI/h/BPatch_function.h
    M dyninstAPI/h/BPatch_image.h
    M dyninstAPI/h/BPatch_module.h
    M dyninstAPI/h/BPatch_object.h
    M dyninstAPI/h/BPatch_statement.h
    M dyninstAPI/src/BPatch_addressSpace.C
    M dyninstAPI/src/BPatch_function.C
    M dyninstAPI/src/BPatch_image.C
    M dyninstAPI/src/BPatch_module.C
    M dyninstAPI/src/BPatch_object.C
    M dyninstAPI/src/BPatch_statement.C
    M dyninstAPI/src/BPatch_type.C
    M dyninstAPI/src/Relocation/CodeTracker.C
    M dyninstAPI/src/Relocation/CodeTracker.h
    M dyninstAPI/src/Relocation/Springboard.h
    M dyninstAPI/src/Relocation/Transformers/Movement-adhoc.C
    M dyninstAPI/src/Relocation/Widgets/CFWidget.C
    M dyninstAPI/src/Relocation/Widgets/StackModWidget.h
    M dyninstAPI/src/StackMod/StackAccess.C
    M dyninstAPI/src/StackMod/StackModChecker.C
    M dyninstAPI/src/StackMod/StackModExpr.C
    M dyninstAPI/src/StackMod/StackModExpr.h
    M dyninstAPI/src/ast.C
    M dyninstAPI/src/ast.h
    M dyninstAPI/src/binaryEdit.C
    M dyninstAPI/src/codegen-x86.C
    M dyninstAPI/src/function.C
    M dyninstAPI/src/image.C
    M dyninstAPI/src/image.h
    M dyninstAPI/src/inst-x86.C
    M dyninstAPI/src/parse-cfg.C
    M dyninstAPI/src/parse-cfg.h
    M dyninstAPI_RT/src/RTheap-win.c
    M dyninstAPI_RT/src/RTheap.c
    M dyninstAPI_RT/src/RTwinnt.c
    R dynutil/CMakeLists.txt
    M elf/CMakeLists.txt
    M elf/h/Elf_X.h
    M elf/src/Elf_X.C
    M external/inttypes-win.h
    M external/stdint-win.h
    M instructionAPI/CMakeLists.txt
    M instructionAPI/h/InstructionAST.h
    M instructionAPI/src/BinaryFunction.C
    M instructionAPI/src/Instruction.C
    M instructionAPI/src/InstructionDecoder-aarch64.C
    M instructionAPI/src/InstructionDecoder-aarch64.h
    M instructionAPI/src/Operand.C
    R nmake.config
    M parseAPI/CMakeLists.txt
    R parseAPI/README
    A parseAPI/README.md
    M parseAPI/h/CFG.h
    M parseAPI/h/CFGFactory.h
    M parseAPI/h/CodeSource.h
    M parseAPI/src/Block.C
    M parseAPI/src/BoundFactCalculator.h
    M parseAPI/src/BoundFactData.C
    M parseAPI/src/BoundFactData.h
    M parseAPI/src/IA_aarch64Details.C
    M parseAPI/src/IA_x86.C
    M parseAPI/src/IndirectASTVisitor.C
    M parseAPI/src/IndirectAnalyzer.C
    M parseAPI/src/JumpTablePred.C
    M parseAPI/src/JumpTablePred.h
    M parseAPI/src/ProbabilisticParser.C
    M parseAPI/src/SymLiteCodeSource.C
    M parseAPI/src/SymtabCodeSource.C
    M parseAPI/src/util.h
    R parseThat/README
    A parseThat/README.md
    M parseThat/src/record.C
    M patchAPI/CMakeLists.txt
    M proccontrol/CMakeLists.txt
    A proccontrol/README.md
    M proccontrol/src/handler.C
    M proccontrol/src/int_process.h
    M proccontrol/src/int_thread_db.C
    M proccontrol/src/irpc.C
    M proccontrol/src/linux.C
    M proccontrol/src/linux.h
    M proccontrol/src/loadLibrary/codegen-linux.C
    M proccontrol/src/loadLibrary/codegen.C
    M proccontrol/src/process.C
    M proccontrol/src/processplat.C
    M proccontrol/src/procset.C
    M proccontrol/src/x86_process.C
    M stackwalk/CMakeLists.txt
    A stackwalk/README.md
    M stackwalk/doc/3-API.tex
    M stackwalk/doc/stackwalk.pdf
    M stackwalk/src/linux-x86-swk.C
    M symlite/CMakeLists.txt
    A symlite/README.md
    M symlite/h/SymLite-elf.h
    M symlite/src/SymLite-elf.C
    M symtabAPI/CMakeLists.txt
    R symtabAPI/README
    A symtabAPI/README.md
    M symtabAPI/h/Function.h
    M symtabAPI/h/LineInformation.h
    M symtabAPI/h/Module.h
    M symtabAPI/h/RangeLookup.h
    A symtabAPI/h/StringTable.h
    M symtabAPI/h/Symbol.h
    M symtabAPI/h/Symtab.h
    M symtabAPI/h/SymtabReader.h
    M symtabAPI/src/Function.C
    M symtabAPI/src/LineInformation.C
    M symtabAPI/src/Module.C
    M symtabAPI/src/Object-elf.C
    M symtabAPI/src/Object-elf.h
    M symtabAPI/src/Object-nt.C
    M symtabAPI/src/Object-nt.h
    M symtabAPI/src/Object.C
    M symtabAPI/src/Object.h
    M symtabAPI/src/Symtab-edit.C
    M symtabAPI/src/Symtab-lookup.C
    M symtabAPI/src/Symtab.C
    M symtabAPI/src/SymtabReader.C
    M symtabAPI/src/dwarfWalker.C
    M symtabAPI/src/dwarfWalker.h
    M symtabAPI/src/emitElf.C
    M symtabAPI/src/emitElfStatic-x86.C
    M symtabAPI/src/emitElfStatic.h
    M symtabAPI/src/emitWin.C

  Log Message:
  -----------
  Merge ARM jump table parsing and instruction semantics into master

Conflicts:
	common/src/dyn_regs.C
	dataflowAPI/rose/semantics/SymEvalSemantics.C
	parseAPI/src/BoundFactData.C
	parseAPI/src/JumpTablePred.C
	parseAPI/src/JumpTablePred.h


  Commit: d8edc10eafe935b80ebfd95e7c01e7791add50c5
      https://github.com/dyninst/dyninst/commit/d8edc10eafe935b80ebfd95e7c01e7791add50c5
  Author: Xiaozhu Meng <xmeng@xxxxxxxxxxx>
  Date:   2016-11-11 (Fri, 11 Nov 2016)

  Changed paths:
    M dataflowAPI/src/SymbolicExpansion.C

  Log Message:
  -----------
  Do not output missing semantics to stderr


  Commit: 05b75312397b627e051646b94a53c75b481474bf
      https://github.com/dyninst/dyninst/commit/05b75312397b627e051646b94a53c75b481474bf
  Author: Sunny Shah <shah28@xxxxxxxx>
  Date:   2016-11-11 (Fri, 11 Nov 2016)

  Changed paths:
    M dataflowAPI/rose/semantics/DispatcherARM64.C

  Log Message:
  -----------
  Semantics for BIC and BFM variants

Instructions covered:
* BIC
* BICS
* BFM
* BFXIL
* BFI


  Commit: a64a47497024bc8b8eab5b1adaf046dbae535efc
      https://github.com/dyninst/dyninst/commit/a64a47497024bc8b8eab5b1adaf046dbae535efc
  Author: Xiaozhu Meng <xmeng@xxxxxxxxxxx>
  Date:   2016-11-13 (Sun, 13 Nov 2016)

  Changed paths:
    M dataflowAPI/rose/semantics/DispatcherARM64.C

  Log Message:
  -----------
  Remove fprintf output


  Commit: d43f8e46f4f9fb3c92db8e75d18c93ceb4503240
      https://github.com/dyninst/dyninst/commit/d43f8e46f4f9fb3c92db8e75d18c93ceb4503240
  Author: Xiaozhu Meng <xmeng@xxxxxxxxxxx>
  Date:   2016-11-19 (Sat, 19 Nov 2016)

  Changed paths:
    M dataflowAPI/h/SymEval.h
    M parseAPI/src/IndirectAnalyzer.C

  Log Message:
  -----------
  Clean parsing log messages


  Commit: d811f19e4b94abeb7877d569e768a110ab606298
      https://github.com/dyninst/dyninst/commit/d811f19e4b94abeb7877d569e768a110ab606298
  Author: Xiaozhu Meng <xmeng@xxxxxxxxxxx>
  Date:   2016-11-20 (Sun, 20 Nov 2016)

  Changed paths:
    M parseAPI/src/BoundFactCalculator.C
    M parseAPI/src/BoundFactData.C
    M parseAPI/src/BoundFactData.h
    M parseAPI/src/IndirectASTVisitor.C
    M parseAPI/src/IndirectASTVisitor.h
    M parseAPI/src/JumpTablePred.C

  Log Message:
  -----------
  1. An indirect jump may be shared by several different jump tables. Add value set representations so that we can union jump targets from different tables.
2. Separate input absloc from absloc at the current address, as they may have different values


  Commit: c0f9eb28bf5c3d6c95923ba99a78da581212714f
      https://github.com/dyninst/dyninst/commit/c0f9eb28bf5c3d6c95923ba99a78da581212714f
  Author: Xiaozhu Meng <xmeng@xxxxxxxxxxx>
  Date:   2016-11-20 (Sun, 20 Nov 2016)

  Changed paths:
    M parseAPI/src/BoundFactData.C
    M parseAPI/src/BoundFactData.h
    M parseAPI/src/IndirectASTVisitor.C
    M parseAPI/src/IndirectASTVisitor.h
    M parseAPI/src/IndirectAnalyzer.C
    M parseAPI/src/JumpTablePred.C

  Log Message:
  -----------
  Address calculation should use 64-bit integers..


  Commit: dd1b12e7dfab293bd0c13995241e61b4e4406386
      https://github.com/dyninst/dyninst/commit/dd1b12e7dfab293bd0c13995241e61b4e4406386
  Author: Xiaozhu Meng <xmeng@xxxxxxxxxxx>
  Date:   2016-11-21 (Mon, 21 Nov 2016)

  Changed paths:
    M parseAPI/src/BoundFactData.C
    M parseAPI/src/IndirectASTVisitor.C
    M parseAPI/src/IndirectAnalyzer.C

  Log Message:
  -----------
  On x86, and instruction would generate an zf assignment that looks like an assignment generated from a cmp instruction.
The zf assignment from and needs special handling from a zf assignment from cmp.


  Commit: c7c9ebf5bce0c2befdaeeaacdfd8964d38e2e5c5
      https://github.com/dyninst/dyninst/commit/c7c9ebf5bce0c2befdaeeaacdfd8964d38e2e5c5
  Author: rafzi <dummdoof-doof@xxxxxx>
  Date:   2016-11-29 (Tue, 29 Nov 2016)

  Changed paths:
    M cmake/packages.cmake

  Log Message:
  -----------
  Fix dependency of LibDwarf

Dyninst would not build on the first run when libelf and libdwarf are not installed on the system.


  Commit: c8b61f2117c256eac994514ce4227dbd863228bc
      https://github.com/dyninst/dyninst/commit/c8b61f2117c256eac994514ce4227dbd863228bc
  Author: rafzi <dummdoof-doof@xxxxxx>
  Date:   2016-11-30 (Wed, 30 Nov 2016)

  Changed paths:
    M cmake/packages.cmake

  Log Message:
  -----------
  cmake: only make LibDwarf depend on LibElf if that exists


  Commit: c2c334874553f7054eaa3fca841766c333e67163
      https://github.com/dyninst/dyninst/commit/c2c334874553f7054eaa3fca841766c333e67163
  Author: Sunny Shah <shah28@xxxxxxxx>
  Date:   2016-12-01 (Thu, 01 Dec 2016)

  Changed paths:
    M .gitignore
    A .idea/deployment.xml
    A .idea/webServers.xml
    M .travis.yml
    M CMakeLists.txt
    R README
    A README.md
    A appveyor.yml
    A cmake/cotire.cmake
    M cmake/optimization.cmake
    M cmake/packages.cmake
    M cmake/shared.cmake
    M cmake/warnings.cmake
    M common/CMakeLists.txt
    M common/h/IBSTree-fast.h
    M common/h/IBSTree.h
    M common/h/SymReader.h
    M common/h/dyntypes.h
    M common/src/addrtranslate-win.C
    M common/src/arch-aarch64.C
    M common/src/debug_common.h
    M common/src/dyn_regs.C
    M common/src/ntHeaders.h
    M common/src/util.C
    A dataflowAPI/README.md
    M dataflowAPI/h/Absloc.h
    M dataflowAPI/h/SymEval.h
    M dataflowAPI/h/stackanalysis.h
    M dataflowAPI/rose/SgAsmPowerpcInstruction.h
    M dataflowAPI/rose/rangemap.C
    M dataflowAPI/rose/semantics/DispatcherARM64.C
    M dataflowAPI/rose/util/LinearCongruentialGenerator.C
    M dataflowAPI/rose/util/StringUtility.C
    M dataflowAPI/rose/util/StringUtility.h
    M dataflowAPI/src/ABI.C
    M dataflowAPI/src/Absloc.C
    M dataflowAPI/src/SymEvalPolicy.C
    M dataflowAPI/src/SymbolicExpansion.C
    M dataflowAPI/src/Visitors.C
    M dataflowAPI/src/liveness.C
    M dataflowAPI/src/stackanalysis.C
    M dwarf/CMakeLists.txt
    M dwarf/h/dwarfHandle.h
    M dwarf/src/dwarfHandle.C
    M dwarf/src/dwarfResult.C
    M dynC_API/CMakeLists.txt
    M dynC_API/h/snippetGen.h
    M dynC_API/src/C.l
    M dynC_API/src/C.y
    M dynC_API/src/dynC.C
    M dynC_API/src/dynC.tab.C
    M dynC_API/src/dynC.tab.h
    M dynC_API/src/lex.dynC.C
    M dyninstAPI/CMakeLists.txt
    R dyninstAPI/README
    A dyninstAPI/README.md
    M dyninstAPI/h/BPatch_addressSpace.h
    M dyninstAPI/h/BPatch_function.h
    M dyninstAPI/h/BPatch_image.h
    M dyninstAPI/h/BPatch_module.h
    M dyninstAPI/h/BPatch_object.h
    M dyninstAPI/h/BPatch_statement.h
    M dyninstAPI/src/BPatch_addressSpace.C
    M dyninstAPI/src/BPatch_function.C
    M dyninstAPI/src/BPatch_image.C
    M dyninstAPI/src/BPatch_module.C
    M dyninstAPI/src/BPatch_object.C
    M dyninstAPI/src/BPatch_statement.C
    M dyninstAPI/src/BPatch_type.C
    M dyninstAPI/src/Relocation/CodeTracker.C
    M dyninstAPI/src/Relocation/CodeTracker.h
    M dyninstAPI/src/Relocation/Springboard.h
    M dyninstAPI/src/Relocation/Transformers/Movement-adhoc.C
    M dyninstAPI/src/Relocation/Widgets/CFWidget.C
    M dyninstAPI/src/Relocation/Widgets/StackModWidget.h
    M dyninstAPI/src/StackMod/StackAccess.C
    M dyninstAPI/src/StackMod/StackModChecker.C
    M dyninstAPI/src/StackMod/StackModExpr.C
    M dyninstAPI/src/StackMod/StackModExpr.h
    M dyninstAPI/src/ast.C
    M dyninstAPI/src/ast.h
    M dyninstAPI/src/binaryEdit.C
    M dyninstAPI/src/codegen-x86.C
    M dyninstAPI/src/function.C
    M dyninstAPI/src/image.C
    M dyninstAPI/src/image.h
    M dyninstAPI/src/inst-x86.C
    M dyninstAPI/src/parse-cfg.C
    M dyninstAPI/src/parse-cfg.h
    M dyninstAPI_RT/src/RTheap-win.c
    M dyninstAPI_RT/src/RTheap.c
    M dyninstAPI_RT/src/RTwinnt.c
    R dynutil/CMakeLists.txt
    M elf/CMakeLists.txt
    M elf/h/Elf_X.h
    M elf/src/Elf_X.C
    M external/inttypes-win.h
    M external/stdint-win.h
    M instructionAPI/CMakeLists.txt
    M instructionAPI/h/InstructionAST.h
    M instructionAPI/src/BinaryFunction.C
    M instructionAPI/src/Instruction.C
    M instructionAPI/src/InstructionDecoder-aarch64.C
    M instructionAPI/src/InstructionDecoder-aarch64.h
    M instructionAPI/src/Operand.C
    R nmake.config
    M parseAPI/CMakeLists.txt
    R parseAPI/README
    A parseAPI/README.md
    M parseAPI/h/CFG.h
    M parseAPI/h/CFGFactory.h
    M parseAPI/h/CodeSource.h
    M parseAPI/src/Block.C
    M parseAPI/src/BoundFactCalculator.C
    M parseAPI/src/BoundFactCalculator.h
    M parseAPI/src/BoundFactData.C
    M parseAPI/src/BoundFactData.h
    M parseAPI/src/IA_aarch64Details.C
    M parseAPI/src/IA_x86.C
    M parseAPI/src/IndirectASTVisitor.C
    M parseAPI/src/IndirectASTVisitor.h
    M parseAPI/src/IndirectAnalyzer.C
    M parseAPI/src/JumpTablePred.C
    M parseAPI/src/JumpTablePred.h
    M parseAPI/src/ProbabilisticParser.C
    M parseAPI/src/SymLiteCodeSource.C
    M parseAPI/src/SymtabCodeSource.C
    M parseAPI/src/util.h
    R parseThat/README
    A parseThat/README.md
    M parseThat/src/record.C
    M patchAPI/CMakeLists.txt
    M proccontrol/CMakeLists.txt
    A proccontrol/README.md
    M proccontrol/src/handler.C
    M proccontrol/src/int_process.h
    M proccontrol/src/int_thread_db.C
    M proccontrol/src/irpc.C
    M proccontrol/src/linux.C
    M proccontrol/src/linux.h
    M proccontrol/src/loadLibrary/codegen-linux.C
    M proccontrol/src/loadLibrary/codegen.C
    M proccontrol/src/process.C
    M proccontrol/src/processplat.C
    M proccontrol/src/procset.C
    M proccontrol/src/x86_process.C
    M stackwalk/CMakeLists.txt
    A stackwalk/README.md
    M stackwalk/doc/3-API.tex
    M stackwalk/doc/stackwalk.pdf
    M stackwalk/src/linux-x86-swk.C
    M symlite/CMakeLists.txt
    A symlite/README.md
    M symlite/h/SymLite-elf.h
    M symlite/src/SymLite-elf.C
    M symtabAPI/CMakeLists.txt
    R symtabAPI/README
    A symtabAPI/README.md
    M symtabAPI/h/Function.h
    M symtabAPI/h/LineInformation.h
    M symtabAPI/h/Module.h
    M symtabAPI/h/RangeLookup.h
    A symtabAPI/h/StringTable.h
    M symtabAPI/h/Symbol.h
    M symtabAPI/h/Symtab.h
    M symtabAPI/h/SymtabReader.h
    M symtabAPI/src/Function.C
    M symtabAPI/src/LineInformation.C
    M symtabAPI/src/Module.C
    M symtabAPI/src/Object-elf.C
    M symtabAPI/src/Object-elf.h
    M symtabAPI/src/Object-nt.C
    M symtabAPI/src/Object-nt.h
    M symtabAPI/src/Object.C
    M symtabAPI/src/Object.h
    M symtabAPI/src/Symtab-edit.C
    M symtabAPI/src/Symtab-lookup.C
    M symtabAPI/src/Symtab.C
    M symtabAPI/src/SymtabReader.C
    M symtabAPI/src/dwarfWalker.C
    M symtabAPI/src/dwarfWalker.h
    M symtabAPI/src/emitElf.C
    M symtabAPI/src/emitElfStatic-x86.C
    M symtabAPI/src/emitElfStatic.h
    M symtabAPI/src/emitWin.C

  Log Message:
  -----------
  Merge remote-tracking branch 'mx297/master' into arm64/feature/semantics


  Commit: e3c1881e308ffed7e3e548e1c3da1bca269db1a0
      https://github.com/dyninst/dyninst/commit/e3c1881e308ffed7e3e548e1c3da1bca269db1a0
  Author: William Williams <bill@xxxxxxxxxxxxxxxxxxx>
  Date:   2016-12-01 (Thu, 01 Dec 2016)

  Changed paths:
    M elf/src/Elf_X.C

  Log Message:
  -----------
  Use in-place translation


  Commit: 8eff56c49e54fb4bf292590a191e294898ebe744
      https://github.com/dyninst/dyninst/commit/8eff56c49e54fb4bf292590a191e294898ebe744
  Author: Sunny Shah <shah28@xxxxxxxx>
  Date:   2016-12-01 (Thu, 01 Dec 2016)

  Changed paths:
    M .gitignore
    M CMakeLists.txt
    M cmake/shared.cmake
    M cmake/warnings.cmake
    M common/src/linuxKludges.C
    M dataflowAPI/src/stackanalysis.C
    M dynC_API/CMakeLists.txt
    M dynC_API/src/C.l
    M dynC_API/src/C.y
    M dynC_API/src/dynC.tab.C
    M dynC_API/src/dynC.tab.h
    M dynC_API/src/lex.dynC.C
    M dyninstAPI/src/BPatch_addressSpace.C
    M dyninstAPI/src/BPatch_type.C
    M dyninstAPI/src/Relocation/Transformers/Movement-adhoc.C
    M dyninstAPI/src/Relocation/Transformers/Movement-analysis.C
    M dyninstAPI/src/function.C
    M dyninstAPI/src/image.C
    M dyninstAPI/src/inst-power.C
    M dyninstAPI_RT/src/RTheap.c
    M instructionAPI/src/InstructionDecoder-aarch64.C
    M parseAPI/src/IA_powerDetails.C
    M parseThat/src/dyninstCore.C
    M proccontrol/doc/proccontrol.docx
    M proccontrol/doc/proccontrol.pdf
    M proccontrol/src/DecoderWindows.C
    M proccontrol/src/process.C
    M symtabAPI/src/Object-elf.C
    M symtabAPI/src/emitElf.C
    M symtabAPI/src/relocationEntry-elf-aarch64.C

  Log Message:
  -----------
  Merge branch 'master' into arm64/feature/semantics


  Commit: 98c54ebd8bb97ba0bf739446e78e039fb79c179b
      https://github.com/dyninst/dyninst/commit/98c54ebd8bb97ba0bf739446e78e039fb79c179b
  Author: Bill Williams <wwilliam47@xxxxxxxxx>
  Date:   2016-12-02 (Fri, 02 Dec 2016)

  Changed paths:
    M elf/src/Elf_X.C

  Log Message:
  -----------
  Merge pull request #284 from dyninst/ppc_elf_fix

Use in-place translation


  Commit: 6b9f3e1b8f8749c08a6bea51583dbd63e1270c08
      https://github.com/dyninst/dyninst/commit/6b9f3e1b8f8749c08a6bea51583dbd63e1270c08
  Author: Bill Williams <wwilliam47@xxxxxxxxx>
  Date:   2016-12-02 (Fri, 02 Dec 2016)

  Changed paths:
    M cmake/packages.cmake

  Log Message:
  -----------
  Merge pull request #279 from rafzi/patch-1

Fix dependency of LibDwarf


  Commit: 990be908c15a91e80ac4c821b3c4111dae6c5f2b
      https://github.com/dyninst/dyninst/commit/990be908c15a91e80ac4c821b3c4111dae6c5f2b
  Author: Bill Williams <wwilliam47@xxxxxxxxx>
  Date:   2016-12-02 (Fri, 02 Dec 2016)

  Changed paths:
    M common/h/dyn_regs.h
    M common/src/dyn_regs.C
    M dataflowAPI/h/SymEval.h
    M dataflowAPI/rose/semantics/BaseSemantics2.C
    M dataflowAPI/rose/semantics/DispatcherARM64.C
    M dataflowAPI/rose/semantics/DispatcherARM64.h
    M dataflowAPI/rose/semantics/Registers.C
    M dataflowAPI/rose/semantics/SymEvalSemantics.C
    M dataflowAPI/rose/semantics/SymEvalSemantics.h
    M dataflowAPI/src/AbslocInterface.C
    M dataflowAPI/src/ExpressionConversionVisitor.C
    M dataflowAPI/src/RoseImpl.C
    M dataflowAPI/src/SymbolicExpansion.C
    M dataflowAPI/src/slicing.C
    M external/rose/armv8InstructionEnum.h
    M instructionAPI/src/InstructionDecoder-aarch64.C
    M parseAPI/h/CodeSource.h
    M parseAPI/src/BoundFactCalculator.C
    M parseAPI/src/BoundFactData.C
    M parseAPI/src/BoundFactData.h
    M parseAPI/src/CodeObject.C
    M parseAPI/src/IA_IAPI.C
    M parseAPI/src/IA_aarch64.C
    M parseAPI/src/IndirectASTVisitor.C
    M parseAPI/src/IndirectASTVisitor.h
    M parseAPI/src/IndirectAnalyzer.C
    M parseAPI/src/InstructionSource-aarch64.C
    M parseAPI/src/JumpTablePred.C
    M parseAPI/src/JumpTablePred.h
    M parseAPI/src/SymtabCodeSource.C
    M parseAPI/src/debug_parse.C
    M parseAPI/src/debug_parse.h

  Log Message:
  -----------
  Merge pull request #228 from mxz297/master

Merge ARM instruction semantics and jump table parsing


  Commit: f158e967c532e8f171094e965286f883bbccc3a8
      https://github.com/dyninst/dyninst/commit/f158e967c532e8f171094e965286f883bbccc3a8
  Author: Bill Williams <bill@xxxxxxxxxxx>
  Date:   2016-12-05 (Mon, 05 Dec 2016)

  Changed paths:
    M symtabAPI/h/Module.h
    M symtabAPI/src/Object-elf.C

  Log Message:
  -----------
  Added interface to query whether a module already has address range information, and reindented--this had become a ragged mess of 3 space/4 space/tab indents. Fixed merge issues from architecture auto-detection.


  Commit: 2ce139aea168dd1fab7bbcfdec94b773d9b7731f
      https://github.com/dyninst/dyninst/commit/2ce139aea168dd1fab7bbcfdec94b773d9b7731f
  Author: Bill Williams <bill@xxxxxxxxxxx>
  Date:   2016-12-05 (Mon, 05 Dec 2016)

  Changed paths:
    M symtabAPI/src/dwarfWalker.C

  Log Message:
  -----------
  DwarfWalker now ignores a lowpc/highpc entry of (0,0) and hands it back as "failed to parse"; it's never meaningful DWARF and we shouldn't pretend it is.


  Commit: 1182446c09b429057061526d3a9f1b2c31a57c20
      https://github.com/dyninst/dyninst/commit/1182446c09b429057061526d3a9f1b2c31a57c20
  Author: Bill Williams <bill@xxxxxxxxxxx>
  Date:   2016-12-05 (Mon, 05 Dec 2016)

  Changed paths:
    M symtabAPI/src/LineInformation.C

  Log Message:
  -----------
  Cleaned up equal_range: it *must* use boost::tuple, not std::tuple, in order to look up by multiple fields of a composite key, but that works.


  Commit: eb7ee84c07e4b31d3acdd1b53709283ab5dcd76b
      https://github.com/dyninst/dyninst/commit/eb7ee84c07e4b31d3acdd1b53709283ab5dcd76b
  Author: Bill Williams <bill@xxxxxxxxxxx>
  Date:   2016-12-05 (Mon, 05 Dec 2016)

  Changed paths:
    M symtabAPI/src/Object-elf.C

  Log Message:
  -----------
  Extract ranges from statements if all else fails.


  Commit: 4a5008274bb6095db6c2e4bce0398d236d60a98e
      https://github.com/dyninst/dyninst/commit/4a5008274bb6095db6c2e4bce0398d236d60a98e
  Author: Bill Williams <bill@xxxxxxxxxxx>
  Date:   2016-12-06 (Tue, 06 Dec 2016)

  Changed paths:
    M dataflowAPI/src/stackanalysis.C

  Log Message:
  -----------
  Wrap stackanalysis in a try-catch per function, and replace assertions with exceptions.


  Commit: 764e1769630b0c2ca5ae205256302f669d4ba567
      https://github.com/dyninst/dyninst/commit/764e1769630b0c2ca5ae205256302f669d4ba567
  Author: Bill Williams <wwilliam47@xxxxxxxxx>
  Date:   2016-12-06 (Tue, 06 Dec 2016)

  Changed paths:
    M dataflowAPI/src/stackanalysis.C

  Log Message:
  -----------
  Merge pull request #289 from dyninst/stackanalysis_safety

Remove stackanalysis assertions


  Commit: a79c99d94adfe28e38a3e742a0b244931eb26175
      https://github.com/dyninst/dyninst/commit/a79c99d94adfe28e38a3e742a0b244931eb26175
  Author: Bill Williams <wwilliam47@xxxxxxxxx>
  Date:   2016-12-07 (Wed, 07 Dec 2016)

  Changed paths:
    M symtabAPI/h/Module.h
    M symtabAPI/src/LineInformation.C
    M symtabAPI/src/Object-elf.C
    M symtabAPI/src/dwarfWalker.C

  Log Message:
  -----------
  Merge pull request #287 from dyninst/wrwilliams/line_info

Line info cleanup


  Commit: 910d4653f6987fe3655086174649c908fa18ce89
      https://github.com/dyninst/dyninst/commit/910d4653f6987fe3655086174649c908fa18ce89
  Author: Xiaozhu Meng <xmeng@xxxxxxxxxxx>
  Date:   2016-12-07 (Wed, 07 Dec 2016)

  Changed paths:
    M common/doc/manual_frontpage.tex
    M dataflowAPI/doc/dataflowAPI.pdf
    M dyninstAPI/doc/dyninstAPI.doc
    M dyninstAPI/doc/dyninstAPI.pdf
    M instructionAPI/doc/1-Intro.tex
    M instructionAPI/doc/instructionAPI.pdf
    M parseAPI/doc/1-Intro.tex
    M parseAPI/doc/parseAPI.pdf
    M patchAPI/doc/patchAPI.pdf
    M proccontrol/doc/proccontrol.docx
    M proccontrol/doc/proccontrol.pdf
    M symtabAPI/doc/1-Intro.tex
    M symtabAPI/doc/2-Abstractions.tex
    M symtabAPI/doc/API/LineInfo/Iterating.tex
    M symtabAPI/doc/symtabAPI.pdf

  Log Message:
  -----------
  Update manual version numbers and minor fixes


  Commit: c06e9c0df1e5fd30021da75d3da8d3846e0f68b2
      https://github.com/dyninst/dyninst/commit/c06e9c0df1e5fd30021da75d3da8d3846e0f68b2
  Author: Bill Williams <bill@xxxxxxxxxxx>
  Date:   2016-12-07 (Wed, 07 Dec 2016)

  Changed paths:
    M parseAPI/src/IA_powerDetails.C

  Log Message:
  -----------
  Fix crash when walking backward through blocks ending in fallthrough edges only


  Commit: c5d8942c5e27cf0f36a0a47cbebdf614cbdc6e1b
      https://github.com/dyninst/dyninst/commit/c5d8942c5e27cf0f36a0a47cbebdf614cbdc6e1b
  Author: Bill Williams <bill@xxxxxxxxxxx>
  Date:   2016-12-07 (Wed, 07 Dec 2016)

  Changed paths:
    M symtabAPI/src/dwarfWalker.C

  Log Message:
  -----------
  Fix fencepost error in string table guard; get shared pointer once rather than at each use so that it can't disappear mid-function by accident.


  Commit: d654b255400e34f5d518c85c97b13538516aff3a
      https://github.com/dyninst/dyninst/commit/d654b255400e34f5d518c85c97b13538516aff3a
  Author: Bill Williams <bill@xxxxxxxxxxx>
  Date:   2016-12-07 (Wed, 07 Dec 2016)

  Changed paths:
    M symtabAPI/src/Object-elf.C

  Log Message:
  -----------
  Fixed build for gcc 4.4: structs can't be defined inside functions. Also removed lurking debug output.


  Commit: ae31797b354ba3e24c8a448430a91b70bdc3c1c5
      https://github.com/dyninst/dyninst/commit/ae31797b354ba3e24c8a448430a91b70bdc3c1c5
  Author: Bill Williams <wwilliam47@xxxxxxxxx>
  Date:   2016-12-07 (Wed, 07 Dec 2016)

  Changed paths:
    M common/doc/manual_frontpage.tex
    M dataflowAPI/doc/dataflowAPI.pdf
    M dyninstAPI/doc/dyninstAPI.doc
    M dyninstAPI/doc/dyninstAPI.pdf
    M instructionAPI/doc/1-Intro.tex
    M instructionAPI/doc/instructionAPI.pdf
    M parseAPI/doc/1-Intro.tex
    M parseAPI/doc/parseAPI.pdf
    M patchAPI/doc/patchAPI.pdf
    M proccontrol/doc/proccontrol.docx
    M proccontrol/doc/proccontrol.pdf
    M symtabAPI/doc/1-Intro.tex
    M symtabAPI/doc/2-Abstractions.tex
    M symtabAPI/doc/API/LineInfo/Iterating.tex
    M symtabAPI/doc/symtabAPI.pdf

  Log Message:
  -----------
  Merge pull request #291 from dyninst/release9.3/fixes/manuals

Update manual version numbers and minor fixes


  Commit: c09b5ba48eb518ad6c86397e51130c566d49fa14
      https://github.com/dyninst/dyninst/commit/c09b5ba48eb518ad6c86397e51130c566d49fa14
  Author: Bill Williams <wwilliam47@xxxxxxxxx>
  Date:   2016-12-07 (Wed, 07 Dec 2016)

  Changed paths:
    M parseAPI/src/IA_powerDetails.C
    M symtabAPI/src/Object-elf.C
    M symtabAPI/src/dwarfWalker.C

  Log Message:
  -----------
  Merge pull request #292 from dyninst/wrwilliams/papercuts

Small fixes


  Commit: 7c0cfd436ab3edaa5ed3b1799f2ff4006c68c242
      https://github.com/dyninst/dyninst/commit/7c0cfd436ab3edaa5ed3b1799f2ff4006c68c242
  Author: John Detter <jdetter@xxxxxxxx>
  Date:   2016-12-19 (Mon, 19 Dec 2016)

  Changed paths:
    M cmake/packages.cmake
    M common/doc/manual_frontpage.tex
    M common/h/dyn_regs.h
    M common/src/dyn_regs.C
    M dataflowAPI/doc/dataflowAPI.pdf
    M dataflowAPI/h/SymEval.h
    M dataflowAPI/rose/semantics/BaseSemantics2.C
    M dataflowAPI/rose/semantics/DispatcherARM64.C
    M dataflowAPI/rose/semantics/DispatcherARM64.h
    M dataflowAPI/rose/semantics/Registers.C
    M dataflowAPI/rose/semantics/SymEvalSemantics.C
    M dataflowAPI/rose/semantics/SymEvalSemantics.h
    M dataflowAPI/src/AbslocInterface.C
    M dataflowAPI/src/ExpressionConversionVisitor.C
    M dataflowAPI/src/RoseImpl.C
    M dataflowAPI/src/SymbolicExpansion.C
    M dataflowAPI/src/slicing.C
    M dataflowAPI/src/stackanalysis.C
    M dyninstAPI/doc/dyninstAPI.doc
    M dyninstAPI/doc/dyninstAPI.pdf
    M elf/src/Elf_X.C
    M external/rose/armv8InstructionEnum.h
    M instructionAPI/doc/1-Intro.tex
    M instructionAPI/doc/instructionAPI.pdf
    M instructionAPI/src/InstructionDecoder-aarch64.C
    M parseAPI/doc/1-Intro.tex
    M parseAPI/doc/parseAPI.pdf
    M parseAPI/h/CodeSource.h
    M parseAPI/src/BoundFactCalculator.C
    M parseAPI/src/BoundFactData.C
    M parseAPI/src/BoundFactData.h
    M parseAPI/src/CodeObject.C
    M parseAPI/src/IA_IAPI.C
    M parseAPI/src/IA_aarch64.C
    M parseAPI/src/IA_powerDetails.C
    M parseAPI/src/IndirectASTVisitor.C
    M parseAPI/src/IndirectASTVisitor.h
    M parseAPI/src/IndirectAnalyzer.C
    M parseAPI/src/InstructionSource-aarch64.C
    M parseAPI/src/JumpTablePred.C
    M parseAPI/src/JumpTablePred.h
    M parseAPI/src/SymtabCodeSource.C
    M parseAPI/src/debug_parse.C
    M parseAPI/src/debug_parse.h
    M patchAPI/doc/patchAPI.pdf
    M proccontrol/doc/proccontrol.docx
    M proccontrol/doc/proccontrol.pdf
    M symtabAPI/doc/1-Intro.tex
    M symtabAPI/doc/2-Abstractions.tex
    M symtabAPI/doc/API/LineInfo/Iterating.tex
    M symtabAPI/doc/symtabAPI.pdf
    M symtabAPI/h/Module.h
    M symtabAPI/src/LineInformation.C
    M symtabAPI/src/Object-elf.C
    M symtabAPI/src/dwarfWalker.C

  Log Message:
  -----------
  Merge branch 'master' of http://github.com/dyninst/dyninst into att_syntax_merge


Compare: https://github.com/dyninst/dyninst/compare/6de952068521...7c0cfd436ab3
[← Prev in Thread] Current Thread [Next in Thread→]