dyninst.git
5 years agoMerge branch 'master' into parsing
Xiaozhu Meng [Mon, 13 Jul 2015 03:20:55 +0000 (22:20 -0500)]
Merge branch 'master' into parsing

Conflicts:
common/src/dyn_regs.C
parseAPI/src/Parser.C
parseAPI/src/ParserDetails.h
proccontrol/src/int_process.h

5 years agoBSF and BSR instructions can produce bounds for jump tables
Xiaozhu Meng [Mon, 13 Jul 2015 02:56:42 +0000 (21:56 -0500)]
BSF and BSR instructions can produce bounds for jump tables

5 years agoDefensive mode debugging fixes.
Alex Morris [Mon, 6 Jul 2015 19:52:00 +0000 (14:52 -0500)]
Defensive mode debugging fixes.

This commit removes excess debugging and logging code from defensive mode.

5 years agoDefensive mode dynamic fixes.
Alex Morris [Tue, 21 Apr 2015 15:30:30 +0000 (10:30 -0500)]
Defensive mode dynamic fixes.

This commit includes a few fixes. First, it adds a callback for changing
permissions of write-protected pages (pages are write protected by default
in defensive mode). Second, it excludes IAT symbols from function parsing.
These symbols are function pointers that were previously being parsed as
code. Last, this commit improves our dynamic parsing abilities, resulting
in fewer defensive mode crashes.

5 years agoVarious defensive mode fixes.
unknown [Mon, 29 Sep 2014 21:22:44 +0000 (16:22 -0500)]
Various defensive mode fixes.

This commit provides various minor fixes to defensive mode. For example,
this enables defensive parsing and includes new debugging assert
statements.

5 years agoMake PC's getThreadLocalAddress interface const
Matthew LeGendre [Mon, 29 Jun 2015 17:50:36 +0000 (10:50 -0700)]
Make PC's getThreadLocalAddress interface const

5 years agoRevert to default-off logs
Bill Williams [Wed, 24 Jun 2015 19:37:39 +0000 (14:37 -0500)]
Revert to default-off logs

5 years agoDon't add names (notably, from DWARF) that duplicate substrings of symbol-based names.
Bill Williams [Mon, 22 Jun 2015 21:06:17 +0000 (16:06 -0500)]
Don't add names (notably, from DWARF) that duplicate substrings of symbol-based names.

5 years agoDe-static some unnecessary statics
Bill Williams [Wed, 17 Jun 2015 19:20:00 +0000 (14:20 -0500)]
De-static some unnecessary statics

5 years agoRemove dead code
Bill Williams [Wed, 17 Jun 2015 19:19:31 +0000 (14:19 -0500)]
Remove dead code

5 years agoMore inline fixes
Bill Williams [Tue, 16 Jun 2015 19:17:54 +0000 (14:17 -0500)]
More inline fixes

5 years agoInline function handling: de-aggregate FunctionBase, add getName to functionBase...
Bill Williams [Mon, 15 Jun 2015 20:06:38 +0000 (15:06 -0500)]
Inline function handling: de-aggregate FunctionBase, add getName to functionBase for primary name, have a bunch of actual function interfaces virtual in FunctionBase rather than monolithically in Aggregate

5 years agoMerge branch 'master' of ssh://git.dyninst.org/pub/dyninst
SteveXiSong [Tue, 16 Jun 2015 21:34:41 +0000 (16:34 -0500)]
Merge branch 'master' of ssh://git.dyninst.org/pub/dyninst

Conflicts:
dyninstAPI/src/ast.C

5 years agoMerge branch 'temp'
SteveXiSong [Tue, 16 Jun 2015 21:32:23 +0000 (16:32 -0500)]
Merge branch 'temp'

5 years ago modified: dyninstAPI/src/ast.C
SteveXiSong [Tue, 16 Jun 2015 21:28:50 +0000 (16:28 -0500)]
modified:   dyninstAPI/src/ast.C

5 years agoMerge branch 'master' of /p/paradyn/development/xmeng/dyninstapi/dyninst into HEAD
SteveXiSong [Tue, 16 Jun 2015 21:26:13 +0000 (16:26 -0500)]
Merge branch 'master' of /p/paradyn/development/xmeng/dyninstapi/dyninst into HEAD

Conflicts:
dyninstAPI/src/ast.C

modified:   dyninstAPI/src/ast.C

5 years agoMerge branch 'master' of /p/paradyn/development/xmeng/dyninstapi/dyninst
SteveXiSong [Tue, 16 Jun 2015 21:22:51 +0000 (16:22 -0500)]
Merge branch 'master' of /p/paradyn/development/xmeng/dyninstapi/dyninst

Conflicts:
dyninstAPI/src/ast.C

modified:   dyninstAPI/src/ast.C
modified:   dyninstAPI/src/emit-x86.h
modified:   dyninstAPI/src/emitter.h

5 years agoMerge branch 'master' of ssh://git.dyninst.org/pub/dyninst
SteveXiSong [Tue, 16 Jun 2015 19:38:49 +0000 (14:38 -0500)]
Merge branch 'master' of ssh://git.dyninst.org/pub/dyninst

Conflicts:
dyninstAPI/src/ast.C

modified:   dyninstAPI/src/ast.C
modified:   dyninstAPI/src/emit-x86.h
modified:   dyninstAPI/src/emitter.h

5 years agoMerge branch 'master' into parsing
Xiaozhu Meng [Wed, 10 Jun 2015 18:55:01 +0000 (13:55 -0500)]
Merge branch 'master' into parsing

5 years agoMerge branch 'IndirectControlFlow' into parsing
Xiaozhu Meng [Wed, 10 Jun 2015 18:54:42 +0000 (13:54 -0500)]
Merge branch 'IndirectControlFlow' into parsing

Conflicts:
symtabAPI/src/Symtab.C

5 years agoupdate sw
Steve [Tue, 9 Jun 2015 03:53:08 +0000 (22:53 -0500)]
update sw

5 years agoMerge branch 'arm64' of feta.cs.wisc.edu:/p/paradyn/development/xi/Dyninst/dyninst...
Steve [Fri, 5 Jun 2015 20:00:52 +0000 (15:00 -0500)]
Merge branch 'arm64' of feta.cs.wisc.edu:/p/paradyn/development/xi/Dyninst/dyninst into arm64

5 years agofix registerMap.c
SteveXiSong [Fri, 5 Jun 2015 19:47:23 +0000 (14:47 -0500)]
fix registerMap.c

5 years agoMerge branch 'arm64' of feta.cs.wisc.edu:/p/paradyn/development/xi/Dyninst/dyninst...
Steve [Wed, 3 Jun 2015 21:19:46 +0000 (16:19 -0500)]
Merge branch 'arm64' of feta.cs.wisc.edu:/p/paradyn/development/xi/Dyninst/dyninst into arm64

5 years agoremove warning
SteveXiSong [Wed, 3 Jun 2015 21:08:21 +0000 (16:08 -0500)]
remove warning

5 years agoremove warning
SteveXiSong [Wed, 3 Jun 2015 21:02:37 +0000 (16:02 -0500)]
remove warning

5 years agoremove warning
SteveXiSong [Wed, 3 Jun 2015 18:27:03 +0000 (13:27 -0500)]
remove warning

5 years agoMerge branch 'arm64' of feta.cs.wisc.edu:/p/paradyn/development/xi/Dyninst/dyninst...
Steve [Wed, 3 Jun 2015 16:48:12 +0000 (11:48 -0500)]
Merge branch 'arm64' of feta.cs.wisc.edu:/p/paradyn/development/xi/Dyninst/dyninst into arm64

5 years agocomment #error
SteveXiSong [Wed, 3 Jun 2015 16:36:46 +0000 (11:36 -0500)]
comment #error

5 years agoresolve conflicts
Steve [Wed, 3 Jun 2015 16:04:54 +0000 (11:04 -0500)]
resolve conflicts

5 years agofix warning defines
SteveXiSong [Wed, 3 Jun 2015 15:53:06 +0000 (10:53 -0500)]
fix warning defines

5 years agomodified for swk
Steve [Sat, 30 May 2015 03:40:41 +0000 (22:40 -0500)]
modified for swk

5 years agochange struct to classes
SteveXiSong [Fri, 22 May 2015 19:32:29 +0000 (14:32 -0500)]
change struct to classes

5 years agofixes some arm compile issues on x86
SteveXiSong [Fri, 22 May 2015 19:01:04 +0000 (14:01 -0500)]
fixes some arm compile issues on x86

5 years agoMove x86-specific emitters out of Emitter class
Emily Gember-Jacobson [Fri, 22 May 2015 16:47:50 +0000 (11:47 -0500)]
Move x86-specific emitters out of Emitter class

5 years agoDefine cap_stack_mods and properly limit stack mods to x86,x86_64
Emily Gember-Jacobson [Fri, 22 May 2015 14:05:25 +0000 (09:05 -0500)]
Define cap_stack_mods and properly limit stack mods to x86,x86_64

5 years agopull from feta
Steve [Fri, 22 May 2015 16:20:42 +0000 (11:20 -0500)]
pull from feta

5 years agorebased and tests passes
Steve [Fri, 22 May 2015 16:14:04 +0000 (11:14 -0500)]
rebased and tests passes

5 years agoTemporary aarch64 fixes
Steve [Thu, 21 May 2015 22:52:08 +0000 (17:52 -0500)]
Temporary aarch64 fixes

5 years agoproccontrol: all tests passed. Solution II is used to solve arm kernel bug.
Steve [Thu, 21 May 2015 19:22:49 +0000 (14:22 -0500)]
proccontrol: all tests passed. Solution II is used to solve arm kernel bug.

5 years agoadded branch reg for emulated ss
Steve [Mon, 4 May 2015 18:54:59 +0000 (13:54 -0500)]
added branch reg for emulated ss

5 years agoInitial cmake fixes
Bill Williams [Tue, 10 Mar 2015 18:27:00 +0000 (13:27 -0500)]
Initial cmake fixes

5 years agoproccontrol: all tests passed. Solution II is used to solve arm kernel bug.
Steve [Thu, 21 May 2015 19:22:49 +0000 (14:22 -0500)]
proccontrol: all tests passed. Solution II is used to solve arm kernel bug.

5 years agosolved proccontrol mt bug by simple solution.
Steve [Fri, 15 May 2015 16:14:05 +0000 (11:14 -0500)]
solved proccontrol mt bug by simple solution.

5 years agoadded branch reg for emulated ss
Steve [Mon, 4 May 2015 18:54:59 +0000 (13:54 -0500)]
added branch reg for emulated ss

5 years agopc works in sp, mp mode, but mt mode failed
Steve [Mon, 27 Apr 2015 22:01:15 +0000 (17:01 -0500)]
pc works in sp, mp mode, but mt mode failed

5 years ago new file: .syntastic_cpp_config
Steve [Mon, 6 Apr 2015 20:50:20 +0000 (15:50 -0500)]
new file:   .syntastic_cpp_config
new file:   common/h/Display
new file:   common/h/FileType
new file:   common/h/Initial
new file:   common/h/Others
modified:   common/h/dyn_regs.h
modified:   common/src/arch-aarch64.C
modified:   common/src/arch-aarch64.h
modified:   common/src/dyn_regs.C
modified:   dyninstAPI/src/RegisterConversion-aarch64.C
modified:   dyninstAPI/src/codegen-aarch64.C
modified:   dyninstAPI/src/debug.C
modified:   dyninstAPI/src/registerSpace.h
modified:   elf/src/SystemTap.C
new file:   proccontrol/.syntastic_cpp_config
modified:   proccontrol/CMakeLists.txt
modified:   proccontrol/h/PCErrors.h
new file:   proccontrol/src/Display
new file:   proccontrol/src/FileType
new file:   proccontrol/src/Initial
new file:   proccontrol/src/Others
modified:   proccontrol/src/arm_process.C
modified:   proccontrol/src/arm_process.h
modified:   proccontrol/src/linux.C
modified:   proccontrol/src/loadLibrary/codegen-aarch64.C
modified:   proccontrol/src/mmapalloc.C
modified:   proccontrol/src/pcerrors.C
modified:   proccontrol/src/process.C
modified:   proccontrol/src/snippets.h
modified:   proccontrol/src/unix.C
modified:   stackwalk/src/aarch64-swk.C
new file:   syscalls/unistd-by-platform/Linux/Arch_aarch64/unistd.h

5 years ago modified: common/CMakeLists.txt
Steve [Fri, 20 Mar 2015 20:06:15 +0000 (15:06 -0500)]
modified:   common/CMakeLists.txt
modified:   common/h/dyn_regs.h
modified:   common/src/arch-aarch64.C
modified:   common/src/arch-aarch64.h
modified:   common/src/arch.h
modified:   common/src/dyn_regs.C
modified:   dataflowAPI/src/ABI.C
modified:   dataflowAPI/src/RegisterMap.C
modified:   dyninstAPI/CMakeLists.txt
modified:   dyninstAPI/src/BPatch_snippet.C
new file:   dyninstAPI/src/RegisterConversion-aarch64.C
new file:   dyninstAPI/src/Relocation/Widgets/CFWidget-aarch64.C
modified:   dyninstAPI/src/Relocation/Widgets/CFWidget.h
modified:   dyninstAPI/src/arch-forward-decl.h
modified:   dyninstAPI/src/ast.C
modified:   dyninstAPI/src/binaryEdit.C
new file:   dyninstAPI/src/codegen-aarch64.C
new file:   dyninstAPI/src/codegen-aarch64.h
modified:   dyninstAPI/src/codegen.h
new file:   dyninstAPI/src/emit-aarch64.h
new file:   dyninstAPI/src/inst-aarch64.C
new file:   dyninstAPI/src/inst-aarch64.h
modified:   dyninstAPI/src/legacy-instruction.h
new file:   dyninstAPI/src/linux-aarch64.C
new file:   dyninstAPI/src/linux-aarch64.h
modified:   dyninstAPI/src/linux.h
modified:   dyninstAPI/src/mapped_object.C
new file:   dyninstAPI/src/parse-aarch64.C
modified:   dyninstAPI/src/registerSpace.C
modified:   dyninstAPI/src/registerSpace.h
new file:   dyninstAPI/src/stackwalk-aarch64.C
modified:   dyninstAPI/src/vxworks.h
modified:   dyninstAPI_RT/CMakeLists.txt
modified:   dyninstAPI_RT/src/RTcommon.c
modified:   dyninstAPI_RT/src/RTlinux.c
new file:   dyninstAPI_RT/src/RTstatic_ctors_dtors-aarch64.c
new file:   dyninstAPI_RT/src/RTthread-aarch64-asm.S
new file:   dyninstAPI_RT/src/RTthread-aarch64-asm.s
new file:   dyninstAPI_RT/src/RTthread-aarch64.c
modified:   parseAPI/CMakeLists.txt
modified:   parseAPI/h/CFGModifier.h
modified:   parseAPI/src/IA_IAPI.C
modified:   parseAPI/src/IA_IAPI.h
new file:   parseAPI/src/IA_aarch64.C
new file:   parseAPI/src/IA_aarch64.h
new file:   parseAPI/src/IA_aarch64Details.C
new file:   parseAPI/src/IA_aarch64Details.h
modified:   parseAPI/src/IA_platformDetailsFactory.C
new file:   parseAPI/src/InstructionSource-aarch64.C
modified:   parseAPI/src/SymLiteCodeSource.C
modified:   parseAPI/src/SymtabCodeSource.C
modified:   proccontrol/src/arm_process.C
modified:   stackwalk/CMakeLists.txt
new file:   stackwalk/src/aarch64-swk.C
new file:   stackwalk/src/linux-aarch64-swk.C

5 years ago modified: cmake/cap_arch_def.cmake
Steve [Mon, 16 Mar 2015 16:32:28 +0000 (11:32 -0500)]
modified:   cmake/cap_arch_def.cmake
modified:   common/h/dyn_regs.h
new file:   common/src/arch-aarch64.C
new file:   common/src/arch-aarch64.h
modified:   common/src/arch.h
modified:   common/src/dyn_regs.C
modified:   dwarf/src/dwarfHandle.C
modified:   proccontrol/CMakeLists.txt
new file:   proccontrol/src/arm_process.C
new file:   proccontrol/src/arm_process.h
modified:   proccontrol/src/linux.C
modified:   proccontrol/src/linux.h
new file:   proccontrol/src/loadLibrary/codegen-aarch64.C
modified:   symtabAPI/CMakeLists.txt
modified:   symtabAPI/src/emitElfStatic-aarch64.C
modified:   symtabAPI/src/relocationEntry-elf-aarch64.C

5 years ago modified: symtabAPI/CMakeLists.txt
Steve [Thu, 12 Mar 2015 16:12:09 +0000 (11:12 -0500)]
modified:   symtabAPI/CMakeLists.txt
new file:   symtabAPI/src/emitElfStatic-aarch64.C
modified:   symtabAPI/src/emitElfStatic.C
new file:   symtabAPI/src/relocationEntry-elf-aarch64.C

5 years agoInitial cmake fixes
Bill Williams [Tue, 10 Mar 2015 18:27:00 +0000 (13:27 -0500)]
Initial cmake fixes

5 years agopatch 2
SteveXiSong [Fri, 22 May 2015 02:00:23 +0000 (21:00 -0500)]
patch 2

5 years agoTesting stack mods build fix
SteveXiSong [Thu, 21 May 2015 22:40:54 +0000 (17:40 -0500)]
Testing stack mods build fix

5 years agoproccontrol: all tests passed. Solution II is used to solve arm kernel bug.
Steve [Thu, 21 May 2015 19:22:49 +0000 (14:22 -0500)]
proccontrol: all tests passed. Solution II is used to solve arm kernel bug.

5 years agoHandle complex LEA instructions in stack analysis.
Emily Gember-Jacobson [Fri, 8 May 2015 20:03:21 +0000 (15:03 -0500)]
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.

5 years agoUpdate StackAnalysis::handleMov to handle non register-register moves.
Emily Gember-Jacobson [Fri, 8 May 2015 19:34:23 +0000 (14:34 -0500)]
Update StackAnalysis::handleMov to handle non register-register moves.

5 years agoUpdated StackAnalysis::handleAddSub to also operate on non-SP registers.
Emily Gember-Jacobson [Fri, 8 May 2015 19:32:09 +0000 (14:32 -0500)]
Updated StackAnalysis::handleAddSub to also operate on non-SP registers.

5 years agoRedefine StackAnalysis::handleDefault to round a register to TOP or BOTTOM,
Emily Gember-Jacobson [Fri, 8 May 2015 19:26:54 +0000 (14:26 -0500)]
Redefine StackAnalysis::handleDefault to round a register to TOP or BOTTOM,
instead of always setting to BOTTOM.

5 years agoModify StackAnalysis::findDefinedHeights to include registers with a height of BOTTOM.
Emily Gember-Jacobson [Fri, 8 May 2015 19:24:46 +0000 (14:24 -0500)]
Modify StackAnalysis::findDefinedHeights to include registers with a height of BOTTOM.

5 years agoIn stack analysis, add handlers for sign- and zero-extend instructions.
Emily Gember-Jacobson [Fri, 8 May 2015 19:23:43 +0000 (14:23 -0500)]
In stack analysis, add handlers for sign- and zero-extend instructions.

5 years agoExtend stack analysis transfer functions to handle targets that should be
Emily Gember-Jacobson [Fri, 8 May 2015 19:19:45 +0000 (14:19 -0500)]
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

5 years agoRedefine delta and abs to be of type long in StackAnalysis::TransferFunc
Emily Gember-Jacobson [Fri, 8 May 2015 19:03:03 +0000 (14:03 -0500)]
Redefine delta and abs to be of type long in StackAnalysis::TransferFunc

5 years agoBug fixes for arithmetic operations for StackAnalysis::Height
Emily Gember-Jacobson [Fri, 8 May 2015 18:45:45 +0000 (13:45 -0500)]
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.

5 years agoAdd += operator for StackAnalysis::Height
Emily Gember-Jacobson [Fri, 8 May 2015 18:35:52 +0000 (13:35 -0500)]
Add += operator for StackAnalysis::Height

5 years agoAdd sensitivity analysis for stack modifications.
Emily Gember-Jacobson [Fri, 8 May 2015 18:33:05 +0000 (13:33 -0500)]
Add sensitivity analysis for stack modifications.

This sensitivity analysis determines which instructions access
relocated stack memory or stack memory shifted due to modifications;
these instructions are updated during relocation to access the new
stack locations (via a new StackModWidget).

5 years agoAdded insnCodeGen::modifyDisp, which modifies the displacement encoded in an instruction.
Emily Gember-Jacobson [Fri, 8 May 2015 18:11:51 +0000 (13:11 -0500)]
Added insnCodeGen::modifyDisp, which modifies the displacement encoded in an instruction.

5 years agoImplement stack modifications.
Emily Gember-Jacobson [Fri, 8 May 2015 17:37:21 +0000 (12:37 -0500)]
Implement stack modifications.

Stack modifications allow users to modify the stack frame layout by
inserting, removing, or moving stack space. Stack modifications are
based on the abstraction of stack locations, not the contents of
these locations. Further, we provide the ability to insert
stack canaries or to randomize the DWARF-provided local variables
in a stack frame.

5 years agoDefine >, <=, >=, and - operators for StackAnalysis::Height
Emily Gember-Jacobson [Fri, 8 May 2015 17:42:01 +0000 (12:42 -0500)]
Define >, <=, >=, and - operators for StackAnalysis::Height

5 years agoAdd several fortran functions to list of known non-returning functions
Emily Gember-Jacobson [Fri, 8 May 2015 15:55:35 +0000 (10:55 -0500)]
Add several fortran functions to list of known non-returning functions

5 years agoRecord the frameOffset as an absolute offset in VariableLocation (in addition to...
Emily Gember-Jacobson [Fri, 8 May 2015 15:47:55 +0000 (10:47 -0500)]
Record the frameOffset as an absolute offset in VariableLocation (in addition to the existing relative offset)

5 years agoAdd flag to codeGen class to generate instrumentation code without baseTramp saves...
Emily Gember-Jacobson [Fri, 8 May 2015 15:43:51 +0000 (10:43 -0500)]
Add flag to codeGen class to generate instrumentation code without baseTramp saves and restores.

5 years agoMove emitLEA into the Emitter class
Emily Gember-Jacobson [Fri, 8 May 2015 15:32:31 +0000 (10:32 -0500)]
Move emitLEA into the Emitter class

5 years agoAdd emit functions to handle various operations with segment registers
Emily Gember-Jacobson [Fri, 8 May 2015 15:17:23 +0000 (10:17 -0500)]
Add emit functions to handle various operations with segment registers

5 years agoAdd support for the x86::gs and x86_64::fs registers
Emily Gember-Jacobson [Fri, 8 May 2015 14:57:21 +0000 (09:57 -0500)]
Add support for the x86::gs and x86_64::fs registers

5 years agoAdd reverse iterators and an updateValue function to IntervalTree.
Emily Gember-Jacobson [Fri, 8 May 2015 14:29:03 +0000 (09:29 -0500)]
Add reverse iterators and an updateValue function to IntervalTree.

5 years agosolved proccontrol mt bug by simple solution.
Steve [Fri, 15 May 2015 16:14:05 +0000 (11:14 -0500)]
solved proccontrol mt bug by simple solution.

5 years agoInstall dataflowAPI public headers.
Emily Gember-Jacobson [Mon, 11 May 2015 20:25:43 +0000 (15:25 -0500)]
Install dataflowAPI public headers.

5 years agoCMake fixes for building/installing components separately.
Bill Williams [Wed, 15 Apr 2015 15:49:19 +0000 (10:49 -0500)]
CMake fixes for building/installing components separately.

5 years ago1. Increase the minimal number of bytes needed to consider an interval as a gap ...
Xiaozhu Meng [Tue, 5 May 2015 14:43:38 +0000 (09:43 -0500)]
1. Increase the minimal number of bytes needed to consider an interval as a gap (from 5 bytes to 15 bytes)
2. All sorts of Nop is deinitely not FEP

5 years agoadded branch reg for emulated ss
Steve [Mon, 4 May 2015 18:54:59 +0000 (13:54 -0500)]
added branch reg for emulated ss

5 years agopc works in sp, mp mode, but mt mode failed
Steve [Mon, 27 Apr 2015 22:01:15 +0000 (17:01 -0500)]
pc works in sp, mp mode, but mt mode failed

5 years agoApply gap parsing immediately when finding a FEP over threshold to reduce the amount...
Xiaozhu Meng [Mon, 27 Apr 2015 01:04:15 +0000 (20:04 -0500)]
Apply gap parsing immediately when finding a FEP over threshold to reduce the amount of idiom matching needed

5 years agoOptimize gap parsing: decode opcode and operands at the same time to avoid redecoding
Xiaozhu Meng [Thu, 16 Apr 2015 18:51:58 +0000 (13:51 -0500)]
Optimize gap parsing: decode opcode and operands at the same time to avoid redecoding

5 years ago1. A wildcard term should only match one instruction (improve quality)
Xiaozhu Meng [Thu, 16 Apr 2015 15:49:18 +0000 (10:49 -0500)]
1. A wildcard term should only match one instruction (improve quality)
2. Do not copy matched idioms during idiom matching (improve running time)

5 years agoMore fixes in jump table analysis:
Xiaozhu Meng [Thu, 16 Apr 2015 03:32:49 +0000 (22:32 -0500)]
More fixes in jump table analysis:
1. Do not add control flow paths that slicer has not visited, otherwise there may be some instructions that affects target calculations
2. Need to track aliases across several variables

5 years agoA few more performance fixes on jump table analysis:
Xiaozhu Meng [Wed, 15 Apr 2015 16:17:12 +0000 (11:17 -0500)]
A few more performance fixes on jump table analysis:
1. Ignore conditional jumps that do not produce a range bound, like je and jne
2. All other conditinal jumps should be considered even when both branches can reach the indirect jump. In the case where two branches change the values of registers differently, the analysis must track the changes on both branches
3. Only analyze memory writes where the destination operand is an AST that has been seen in previous analysis, which means this memory write has the potential to create an alias.

5 years agoFix window compilation issues
Xiaozhu Meng [Mon, 13 Apr 2015 05:21:12 +0000 (00:21 -0500)]
Fix window compilation issues

5 years ago1. Add probabilistic parsing, which contains 32-bit Linux, 64-bit Linux, and 32-bit...
Xiaozhu Meng [Thu, 9 Apr 2015 21:10:30 +0000 (16:10 -0500)]
1. Add probabilistic parsing, which contains 32-bit Linux, 64-bit Linux, and 32-bit Windows models for identifying function entry points in gaps
2. Remove some asserts in instructionAPI, where they are used to represent impossible cases. Now they are possible to happen and indicate we are parsing junks

5 years ago new file: .syntastic_cpp_config
Steve [Mon, 6 Apr 2015 20:50:20 +0000 (15:50 -0500)]
new file:   .syntastic_cpp_config
new file:   common/h/Display
new file:   common/h/FileType
new file:   common/h/Initial
new file:   common/h/Others
modified:   common/h/dyn_regs.h
modified:   common/src/arch-aarch64.C
modified:   common/src/arch-aarch64.h
modified:   common/src/dyn_regs.C
modified:   dyninstAPI/src/RegisterConversion-aarch64.C
modified:   dyninstAPI/src/codegen-aarch64.C
modified:   dyninstAPI/src/debug.C
modified:   dyninstAPI/src/registerSpace.h
modified:   elf/src/SystemTap.C
new file:   proccontrol/.syntastic_cpp_config
modified:   proccontrol/CMakeLists.txt
modified:   proccontrol/h/PCErrors.h
new file:   proccontrol/src/Display
new file:   proccontrol/src/FileType
new file:   proccontrol/src/Initial
new file:   proccontrol/src/Others
modified:   proccontrol/src/arm_process.C
modified:   proccontrol/src/arm_process.h
modified:   proccontrol/src/linux.C
modified:   proccontrol/src/loadLibrary/codegen-aarch64.C
modified:   proccontrol/src/mmapalloc.C
modified:   proccontrol/src/pcerrors.C
modified:   proccontrol/src/process.C
modified:   proccontrol/src/snippets.h
modified:   proccontrol/src/unix.C
modified:   stackwalk/src/aarch64-swk.C
new file:   syscalls/unistd-by-platform/Linux/Arch_aarch64/unistd.h

5 years ago1. Add interface to get the prefered loading address for Windows binaries
Xiaozhu Meng [Mon, 6 Apr 2015 18:18:54 +0000 (13:18 -0500)]
1. Add interface to get the prefered loading address for Windows binaries
2. Clean an assert in instructionAPI
3. an name entry for entry ID e_No_Entry

5 years ago1. Handle the instruction sequence that push a constant and then immediately pop...
Xiaozhu Meng [Fri, 3 Apr 2015 02:24:44 +0000 (21:24 -0500)]
1. Handle the instruction sequence that push a constant and then immediately pop the const to a register.
2. SETxx instuctions set the operand 0 or 1 according to flags. So the operand is bounded.

5 years agoIf the destination operand is a memory location, we need to use the generator of...
Xiaozhu Meng [Thu, 2 Apr 2015 03:24:52 +0000 (22:24 -0500)]
If the destination operand is a memory location, we need to use the generator of the AbsRegion to produce an AST that represents the address calcuation and memory access.

5 years agoCANNOT use a global cache to store converted assignments based on their addresses
Xiaozhu Meng [Wed, 1 Apr 2015 16:44:11 +0000 (11:44 -0500)]
CANNOT use a global cache to store converted assignments based on their addresses
because the blocks containing them may change during parsing

5 years ago1. Add a callback interface to slicing code. It triggers when a new node is added...
Xiaozhu Meng [Wed, 1 Apr 2015 04:46:30 +0000 (23:46 -0500)]
1. Add a callback interface to slicing code. It triggers when a new node is added to the slice
2. Refactor the jump table analysis to use the new slice callback interface

5 years agoMerge branch 'master' into IndirectControlFlow
Xiaozhu Meng [Fri, 27 Mar 2015 19:20:32 +0000 (14:20 -0500)]
Merge branch 'master' into IndirectControlFlow

Conflicts:
dataflowAPI/src/RoseInsnFactory.C

5 years agoInstructionAPI Integer Multiply
Alex Morris [Wed, 25 Mar 2015 19:14:57 +0000 (14:14 -0500)]
InstructionAPI Integer Multiply
This commit fixes the handling of AL/AX in 8-bit unsigned multiplication.

5 years agoDivision and Multiplication Semantics
Alex Morris [Tue, 24 Mar 2015 21:12:55 +0000 (16:12 -0500)]
Division and Multiplication Semantics
Removes implicit operands from being passed to ROSE semantics for
IA32 div, idiv, imul, and mul instructions.

5 years agoSlicing optimizations
Alex Morris [Tue, 24 Mar 2015 17:43:01 +0000 (12:43 -0500)]
Slicing optimizations
This commit re-incorporates the caching mechanism from the older slicer in
order to improve performance. The slicer additionally checks for cycles
in the data dependence graph, and collects cached definitions to create
complete and correct slices. This commit also fixes the issue where no
nodes are marked as entry or exit nodes.

5 years agoInitially label call edges as CALL, not NOEDGE
Emily Gember-Jacobson [Mon, 23 Mar 2015 20:09:01 +0000 (15:09 -0500)]
Initially label call edges as CALL, not NOEDGE

5 years ago modified: common/CMakeLists.txt
Steve [Fri, 20 Mar 2015 20:06:15 +0000 (15:06 -0500)]
modified:   common/CMakeLists.txt
modified:   common/h/dyn_regs.h
modified:   common/src/arch-aarch64.C
modified:   common/src/arch-aarch64.h
modified:   common/src/arch.h
modified:   common/src/dyn_regs.C
modified:   dataflowAPI/src/ABI.C
modified:   dataflowAPI/src/RegisterMap.C
modified:   dyninstAPI/CMakeLists.txt
modified:   dyninstAPI/src/BPatch_snippet.C
new file:   dyninstAPI/src/RegisterConversion-aarch64.C
new file:   dyninstAPI/src/Relocation/Widgets/CFWidget-aarch64.C
modified:   dyninstAPI/src/Relocation/Widgets/CFWidget.h
modified:   dyninstAPI/src/arch-forward-decl.h
modified:   dyninstAPI/src/ast.C
modified:   dyninstAPI/src/binaryEdit.C
new file:   dyninstAPI/src/codegen-aarch64.C
new file:   dyninstAPI/src/codegen-aarch64.h
modified:   dyninstAPI/src/codegen.h
new file:   dyninstAPI/src/emit-aarch64.h
new file:   dyninstAPI/src/inst-aarch64.C
new file:   dyninstAPI/src/inst-aarch64.h
modified:   dyninstAPI/src/legacy-instruction.h
new file:   dyninstAPI/src/linux-aarch64.C
new file:   dyninstAPI/src/linux-aarch64.h
modified:   dyninstAPI/src/linux.h
modified:   dyninstAPI/src/mapped_object.C
new file:   dyninstAPI/src/parse-aarch64.C
modified:   dyninstAPI/src/registerSpace.C
modified:   dyninstAPI/src/registerSpace.h
new file:   dyninstAPI/src/stackwalk-aarch64.C
modified:   dyninstAPI/src/vxworks.h
modified:   dyninstAPI_RT/CMakeLists.txt
modified:   dyninstAPI_RT/src/RTcommon.c
modified:   dyninstAPI_RT/src/RTlinux.c
new file:   dyninstAPI_RT/src/RTstatic_ctors_dtors-aarch64.c
new file:   dyninstAPI_RT/src/RTthread-aarch64-asm.S
new file:   dyninstAPI_RT/src/RTthread-aarch64-asm.s
new file:   dyninstAPI_RT/src/RTthread-aarch64.c
modified:   parseAPI/CMakeLists.txt
modified:   parseAPI/h/CFGModifier.h
modified:   parseAPI/src/IA_IAPI.C
modified:   parseAPI/src/IA_IAPI.h
new file:   parseAPI/src/IA_aarch64.C
new file:   parseAPI/src/IA_aarch64.h
new file:   parseAPI/src/IA_aarch64Details.C
new file:   parseAPI/src/IA_aarch64Details.h
modified:   parseAPI/src/IA_platformDetailsFactory.C
new file:   parseAPI/src/InstructionSource-aarch64.C
modified:   parseAPI/src/SymLiteCodeSource.C
modified:   parseAPI/src/SymtabCodeSource.C
modified:   proccontrol/src/arm_process.C
modified:   stackwalk/CMakeLists.txt
new file:   stackwalk/src/aarch64-swk.C
new file:   stackwalk/src/linux-aarch64-swk.C