dyninst.git
2 years agoMerge branch 'master' into new-parallel-parsing
Bill Williams [Wed, 27 Sep 2017 19:04:57 +0000 (14:04 -0500)]
Merge branch 'master' into new-parallel-parsing

# Conflicts:
# dyninstAPI/src/Relocation/Transformers/Movement-analysis.C
# symtabAPI/src/LineInformation.C
# symtabAPI/src/dwarfWalker.C

2 years agoMerge remote-tracking branch 'origin/master'
Bill Williams [Wed, 27 Sep 2017 19:02:30 +0000 (14:02 -0500)]
Merge remote-tracking branch 'origin/master'

2 years agoMerge branch 'master' into new-parallel-parsing
Bill Williams [Wed, 27 Sep 2017 18:38:23 +0000 (13:38 -0500)]
Merge branch 'master' into new-parallel-parsing

# Conflicts:
# dyninstAPI/src/Relocation/Transformers/Movement-analysis.C

2 years agoSome initial DWARF parallelism
Bill Williams [Wed, 27 Sep 2017 18:30:26 +0000 (13:30 -0500)]
Some initial DWARF parallelism

2 years agoNow getting actual parallelism:
Bill Williams [Tue, 26 Sep 2017 17:57:28 +0000 (12:57 -0500)]
Now getting actual parallelism:

* Instructions by value, not by shared pointer
* Blocks updated in region_data during finalize, not during parse

2 years agoMerge pull request #403 from dyninst/sasha/fix-dwarf-symbol-frame
Sasha NĂ­colas [Fri, 8 Sep 2017 20:24:55 +0000 (15:24 -0500)]
Merge pull request #403 from dyninst/sasha/fix-dwarf-symbol-frame

fix dwarf symbol frame

2 years agotemporary patch to dwarfWalker 403/head
John Mellor-Crummey [Wed, 6 Sep 2017 01:21:23 +0000 (20:21 -0500)]
temporary patch to dwarfWalker
returning false for getFrameBase prevented processing
of multiple levels of inlined functions in CUBINs

(cherry picked from commit e91fb8670dc5884db902a678a00f48466b126ced)

2 years agoimprove fix to dwarf line reading.
John Mellor-Crummey [Fri, 1 Sep 2017 22:41:01 +0000 (17:41 -0500)]
improve fix to dwarf line reading.

(cherry picked from commit f5f04afc71e8318f9295b209e8ee60600d156ae6)

2 years agodon't skip the first line in all but first range.
John Mellor-Crummey [Fri, 1 Sep 2017 16:26:10 +0000 (11:26 -0500)]
don't skip the first line in all but first range.

(cherry picked from commit 5b8cf9fd1aaf877feeed2971fc9d2f952d06fa7e)

2 years agoMerge pull request #401 from mxz297/jumptable_merge
Xiaozhu Meng [Tue, 29 Aug 2017 22:18:37 +0000 (15:18 -0700)]
Merge pull request #401 from mxz297/jumptable_merge

Merging my jump table improvements, att_syntax, arm semantics, v9.3.x, and libdw

2 years agoOnly do endianess translation for powerpc binaries 401/head
Xiaozhu Meng [Tue, 29 Aug 2017 22:13:51 +0000 (17:13 -0500)]
Only do endianess translation for powerpc binaries

2 years agoDisplacements should be signed integers
Xiaozhu Meng [Tue, 29 Aug 2017 20:41:36 +0000 (15:41 -0500)]
Displacements should be signed integers

2 years agoWe should only set proccontrol level process's data to NULL when the Dyninst level...
Xiaozhu Meng [Tue, 29 Aug 2017 17:18:26 +0000 (12:18 -0500)]
We should only set proccontrol level process's data to NULL when the Dyninst level process is the only owner of the proccontrol level process

2 years agoFix uninitialized return value in line info
Xiaozhu Meng [Tue, 29 Aug 2017 14:22:58 +0000 (09:22 -0500)]
Fix uninitialized return value in line info

2 years agoFix symplifying concat operations in jump table analysis
Xiaozhu Meng [Thu, 24 Aug 2017 20:39:09 +0000 (15:39 -0500)]
Fix symplifying concat operations in jump table analysis

2 years agoMerge branch 'libdw' into jumptable_rebase
Xiaozhu Meng [Thu, 24 Aug 2017 17:12:23 +0000 (12:12 -0500)]
Merge branch 'libdw' into jumptable_rebase

2 years ago1. When we find potential indexing variable with table stride being 1, we need to...
Xiaozhu Meng [Wed, 23 Aug 2017 19:21:36 +0000 (14:21 -0500)]
1. When we find potential indexing variable with table stride being 1, we need to make sure that we have already found the table base to declare this variable as the table index.
2. Add constants multiplication in AST simplification

2 years agoFixing small things after the merge.
Sasha Nicolas [Wed, 23 Aug 2017 19:54:43 +0000 (14:54 -0500)]
Fixing small things after the merge.

2 years agoMerge branch 'sasha/libdw_deploy' into v9.3.x
Sasha Nicolas [Wed, 23 Aug 2017 17:41:34 +0000 (12:41 -0500)]
Merge branch 'sasha/libdw_deploy' into v9.3.x

2 years agoMerge checkpoint
Bill Williams [Tue, 22 Aug 2017 20:55:24 +0000 (15:55 -0500)]
Merge checkpoint

2 years agoMerge branch 'github_master' into jumptable_rebase
Xiaozhu Meng [Tue, 22 Aug 2017 14:59:06 +0000 (09:59 -0500)]
Merge branch 'github_master' into jumptable_rebase

2 years ago1. Fix ARM semantics for instructions that use conditional code
Xiaozhu Meng [Tue, 22 Aug 2017 14:44:46 +0000 (09:44 -0500)]
1. Fix ARM semantics for instructions that use conditional code
2. Make sure to keep multiplication by one and shifting left by zero through visitors and expansion cache

2 years agoAdded high-level of diagram of ROSE semantics
Sunny Shah [Fri, 12 May 2017 19:22:47 +0000 (14:22 -0500)]
Added high-level of diagram of ROSE semantics

2 years agoAdded pseudocode extractor extract and instruction pseudocode files
Sunny Shah [Thu, 11 May 2017 15:49:37 +0000 (10:49 -0500)]
Added pseudocode extractor extract and instruction pseudocode files

ISA_ps contains one file for each instruction in the XML specification,
with each file containing the pseudocode for that instruction
extracted from the specification by the script.

2 years agoAdded comments for the declaration of several methods in the DispatcherARM64 class and
Sunny Shah [Tue, 31 Jan 2017 22:58:20 +0000 (16:58 -0600)]
Added comments for the declaration of several methods in the DispatcherARM64 class and
relevant comments in their implementation.

2 years agoSemantics for UDIV and SDIV
Sunny Shah [Tue, 31 Jan 2017 18:42:28 +0000 (12:42 -0600)]
Semantics for UDIV and SDIV

2 years agoSemantics for load/store acquire/release instructions (non-SIMD)
Sunny Shah [Tue, 17 Jan 2017 18:47:44 +0000 (12:47 -0600)]
Semantics for load/store acquire/release instructions (non-SIMD)

Includes semantics for the following instructions:
* LDAR
* LDARH
* LDARB
* STLR
* STLRB
* STLRH

2 years agoSemantics for data processing (3-source) instructions and their aliases (non-SIMD)
Sunny Shah [Tue, 17 Jan 2017 18:23:52 +0000 (12:23 -0600)]
Semantics for data processing (3-source) instructions and their aliases (non-SIMD)

Includes semantics for the following instructions:
MADD, MSUB, MNEG, MUL, SMADDL, SMSUBL, SMNEGL, SMULH, SMULL, UMADDL,
UMSEBL, UMNEGL, UMULH, UMULL

2 years agoSemantics for CLS and CLZ
Sunny Shah [Thu, 5 Jan 2017 20:41:15 +0000 (14:41 -0600)]
Semantics for CLS and CLZ

Introduced new enum CountOp that indicates type of count operation for
these instructions, as well as the utility functions -
CountLeadingZeroBits and CountLeadingSignBits - that implement the
counting logic.

2 years agoSemantics for CSEL
Sunny Shah [Thu, 5 Jan 2017 19:17:17 +0000 (13:17 -0600)]
Semantics for CSEL

Also added a method to return the condition code value from the raw
isntruction based on the instruction category.

2 years agoSemantics for more arithmetic instructions
Sunny Shah [Fri, 23 Dec 2016 19:53:26 +0000 (13:53 -0600)]
Semantics for more arithmetic instructions

Includes semantics for the following instructions:
* TST (immediate)
* TST (shifted)
* SBC
* SBCS
* NGC
* NGCS
* NEG
* NEGS
* MVN
* MOV (to/from SP)

2 years agoSemantics for shift instruction.
Sunny Shah [Tue, 20 Dec 2016 19:24:33 +0000 (13:24 -0600)]
Semantics for shift instruction.

Includes semantics for the following instructions:
* LSL (register)
* LSLV
* LSR (register)
* LSRV
* ASR (register)
* ASRV
* ROR (register)
* RORV

Introduced method DispatcherARM64::ShiftReg that is utilized by the
semantics of all the above instructions and calls the appropriate shift
function under BaseSemantics::RiscOperators based on the shift type.

Introduced method DispatcherARM64::getShiftType that is again used by
the semantics code to determine the type of shift.

2 years agoSemantics for load/store-unscaled instructions
Sunny Shah [Mon, 12 Dec 2016 17:15:28 +0000 (11:15 -0600)]
Semantics for load/store-unscaled instructions

Includes semantics for the following instructions:
* LDUR
* LDURB
* LDURH
* LDURSB
* LDURSH
* LDURSW
* STUR
* STURB
* STURH

2 years agoSemantics for load/store (unprivileged instructions)
Sunny Shah [Mon, 12 Dec 2016 17:02:56 +0000 (11:02 -0600)]
Semantics for load/store (unprivileged instructions)

Includes semantics for the following instructions:
* LDTR
* LDTRB
* LDTRH
* LDTRSB
* LDTRSH
* STTR
* STTRB
* STTRH

2 years agoSemantics for load/store pair instructions
Sunny Shah [Mon, 5 Dec 2016 18:48:52 +0000 (12:48 -0600)]
Semantics for load/store pair instructions

Variants of following instructions now supported:
* LDP
* STP
* LDPSW
* LDNP
* STNP

2 years agoWhen symplifying AST in jump table analysis, we need to remove multiplying by one...
Xiaozhu Meng [Mon, 21 Aug 2017 20:14:38 +0000 (15:14 -0500)]
When symplifying AST in jump table analysis, we need to remove multiplying by one and shifting left by zero from the AST when doing jump table indexing slice, to improve aliasing tracking;
on the other hand, we should keep these multilcation by one or shifting left by zero when doing jump table format slice, to identify the index variable for one byte long tables

2 years agoFix simpliyfing AST with concat operations in jump table analysis
Xiaozhu Meng [Mon, 21 Aug 2017 18:30:30 +0000 (13:30 -0500)]
Fix simpliyfing AST with concat operations in jump table analysis

2 years agoFor x86/64 instruction decoding, when MODRM.mod is 01 or 10 and using sib, we still...
Xiaozhu Meng [Mon, 21 Aug 2017 16:06:37 +0000 (11:06 -0500)]
For x86/64 instruction decoding, when MODRM.mod is 01 or 10 and using sib, we still need to decode the displacement

2 years agoImplemented decoding of low pc address for FDE.
Sasha Nicolas [Thu, 20 Jul 2017 03:35:35 +0000 (22:35 -0500)]
Implemented decoding of low pc address for FDE.

Fixing a bug already fixed in another branch.

2 years agoEditing functions that are used to get exception blocks.
Sasha Nicolas [Sat, 15 Jul 2017 01:24:08 +0000 (20:24 -0500)]
Editing functions that are used to get exception blocks.

Getting the augmentation data of a FDE.

2 years agotest_line_info now passing.
Sasha Nicolas [Thu, 13 Jul 2017 00:08:55 +0000 (19:08 -0500)]
test_line_info now passing.

2 years agoFixing the destruction of objects under process control api.
Sasha Nicolas [Thu, 6 Jul 2017 23:36:36 +0000 (18:36 -0500)]
Fixing the destruction of objects under process control api.

2 years agoAbout to make many changes in dwarfFrameParser
Sasha Nicolas [Fri, 23 Jun 2017 20:39:00 +0000 (15:39 -0500)]
About to make many changes in dwarfFrameParser

Passing test of local_var_locations.

Fixing decode location list.

2 years agoFixing DwarfFrameParser to seek FDE and not Dwarf_Frame.
Sasha Nicolas [Sat, 20 May 2017 01:26:39 +0000 (20:26 -0500)]
Fixing DwarfFrameParser to seek FDE and not Dwarf_Frame.

2 years agoCleaning up some code. Fixing DwarfWalker::decodeExpression, and minor issues.
Sasha Nicolas [Tue, 11 Apr 2017 21:13:17 +0000 (16:13 -0500)]
Cleaning up some code. Fixing DwarfWalker::decodeExpression, and minor issues.

2 years agoEditing some verification of return values and changing some dwarf
Sasha Nicolas [Wed, 5 Apr 2017 00:51:56 +0000 (19:51 -0500)]
Editing some verification of return values and changing some dwarf
decoding code.

Editing decodeLocationList and fixing some return values verification.

2 years agoFixing some bugs. Including, among others, module language determination and parsing...
Sasha Nicolas [Wed, 29 Mar 2017 23:27:52 +0000 (18:27 -0500)]
Fixing some bugs. Including, among others, module language determination and parsing global symbol modules.

Fixing parseLineInfoForCU function. Still miss a snippet.

Fixing some logical comparisons due to diferent meaning of return status
between the libraries libdw and libdwarf.

2 years agoReplaced a bunch of asserts with graceful error handling.
Bill Williams [Thu, 2 Mar 2017 19:41:31 +0000 (13:41 -0600)]
Replaced a bunch of asserts with graceful error handling.

2 years agoUse an explicit name for anonymous unions, structs and classes
mneumann [Thu, 16 Feb 2017 10:49:18 +0000 (11:49 +0100)]
Use an explicit name for anonymous unions, structs and classes

2 years agoEnable parsing of members without location information (implicitely 0) in unions
mneumann [Tue, 14 Feb 2017 18:18:38 +0000 (19:18 +0100)]
Enable parsing of members without location information (implicitely 0) in unions

2 years agoGetting modifications from master.
Sasha Nicolas [Fri, 10 Mar 2017 22:11:20 +0000 (16:11 -0600)]
Getting modifications from master.

2 years agoFixing use of dwarf_nextcu.
Sasha Nicolas [Fri, 3 Mar 2017 02:25:08 +0000 (20:25 -0600)]
Fixing use of dwarf_nextcu.

2 years agoFixing assert.
Sasha Nicolas [Tue, 28 Feb 2017 17:33:47 +0000 (11:33 -0600)]
Fixing assert.

2 years agoAdaptations done, but remain to be fixed at some points. Dyninst is compiling.
Sasha Nicolas [Fri, 24 Feb 2017 23:45:36 +0000 (17:45 -0600)]
Adaptations done, but remain to be fixed at some points. Dyninst is compiling.

2 years agoNew changes to adapt code to libdw.
Sasha Nicolas [Fri, 24 Feb 2017 01:12:13 +0000 (19:12 -0600)]
New changes to adapt code to libdw.

2 years agoSome changes at the dwarfWalker.
Sasha Nicolas [Thu, 23 Feb 2017 04:10:44 +0000 (22:10 -0600)]
Some changes at the dwarfWalker.

2 years agoMore changes in DwarfWalker.
Sasha Nicolas [Wed, 22 Feb 2017 01:37:18 +0000 (19:37 -0600)]
More changes in DwarfWalker.

2 years agoObject-elf.C is compiling with some incomplete functions.
Sasha Nicolas [Tue, 21 Feb 2017 00:55:15 +0000 (18:55 -0600)]
Object-elf.C is compiling with some incomplete functions.

2 years agoAdapting Object-elf.C
Sasha Nicolas [Sat, 18 Feb 2017 01:27:30 +0000 (19:27 -0600)]
Adapting Object-elf.C

2 years agolibdynDwarf is compiling now.
Sasha Nicolas [Fri, 17 Feb 2017 00:05:59 +0000 (18:05 -0600)]
libdynDwarf is compiling now.

2 years agoFixing indentation
Sasha Nicolas [Tue, 14 Feb 2017 22:11:23 +0000 (16:11 -0600)]
Fixing indentation

2 years agoStarting to change the library used for dwarf parsin.
Sasha Nicolas [Mon, 13 Feb 2017 23:08:28 +0000 (17:08 -0600)]
Starting to change the library used for dwarf parsin.

2 years agoBrought issues up to date and updated changelog accordingly.
Bill Williams [Thu, 2 Mar 2017 21:38:32 +0000 (15:38 -0600)]
Brought issues up to date and updated changelog accordingly.

2 years agoIncrement version and add changelog for 9.3.1
Bill Williams [Thu, 2 Mar 2017 21:20:19 +0000 (15:20 -0600)]
Increment version and add changelog for 9.3.1

2 years agoA memory access to a known address should be considered as a variable, rather than...
Xiaozhu Meng [Thu, 23 Feb 2017 16:24:15 +0000 (10:24 -0600)]
A memory access to a known address should be considered as a variable, rather than a table read.
So, the jump table analysis should not try to read the content of the variable, but try to determine whether the variable is bounded

2 years agoarm64: set number of regs defined in beginTrackRegDefs()
Itaru Kitayama [Wed, 1 Feb 2017 07:09:11 +0000 (16:09 +0900)]
arm64: set number of regs defined in beginTrackRegDefs()

2 years agoAdd a mapping of AArch64 MachRegister to index for Linux
Itaru Kitayama [Mon, 30 Jan 2017 04:15:45 +0000 (13:15 +0900)]
Add a mapping of AArch64 MachRegister to index for Linux

2 years agoUse ifdef to guard x86 code
Itaru Kitayama [Fri, 27 Jan 2017 07:22:17 +0000 (16:22 +0900)]
Use ifdef to guard x86 code

2 years agogetOPDFunctionAddr() should always return a true value on arm64
Itaru Kitayama [Thu, 19 Jan 2017 06:35:33 +0000 (15:35 +0900)]
getOPDFunctionAddr() should always return a true value on arm64

2 years agoSuppress debug message when no vsyscall page was found on arm64
Itaru Kitayama [Wed, 18 Jan 2017 22:28:14 +0000 (07:28 +0900)]
Suppress debug message when no vsyscall page was found on arm64

2 years agomore leaks
Peter Foley [Sat, 26 Nov 2016 01:21:01 +0000 (20:21 -0500)]
more leaks

2 years agomore leak fixes
Peter Foley [Thu, 24 Nov 2016 22:06:48 +0000 (17:06 -0500)]
more leak fixes

2 years agofix more leaks
Peter Foley [Thu, 24 Nov 2016 20:49:57 +0000 (15:49 -0500)]
fix more leaks

2 years agofix memory leaks
Peter Foley [Thu, 24 Nov 2016 19:28:29 +0000 (14:28 -0500)]
fix memory leaks

2 years agoFix memory leaks in indirect control flow.
Bill Williams [Tue, 14 Feb 2017 20:05:40 +0000 (14:05 -0600)]
Fix memory leaks in indirect control flow.

2 years agoRefactor to look up target blocks via parse data and remove block-level locks associa...
Bill Williams [Tue, 15 Aug 2017 22:43:07 +0000 (17:43 -0500)]
Refactor to look up target blocks via parse data and remove block-level locks associated with that lookup.

2 years ago1. Fix a NULL pointer deference issue in JumpTableFormatPred.C
Xiaozhu Meng [Wed, 16 Aug 2017 19:25:32 +0000 (14:25 -0500)]
1. Fix a NULL pointer deference issue in JumpTableFormatPred.C
2. On powerpc, operand RA should be a destination operand when RS is present. This bug is exposed because the order of RA and RS changed from power2 to newer power version
3. Fix corresponding operand order issue in Powerpc instruction semantics

2 years ago1. Add instruction semantics for powerpc ld
Xiaozhu Meng [Tue, 15 Aug 2017 17:52:50 +0000 (12:52 -0500)]
1. Add instruction semantics for powerpc ld
2. Properly use xlatetom to handle endianness
3. Improve identification of TOC base.
4. Allow reading jump table location from memory location

2 years agoFix uninitialized variables in ROSE Pool class
Xiaozhu Meng [Wed, 2 Aug 2017 15:51:46 +0000 (10:51 -0500)]
Fix uninitialized variables in ROSE Pool class

2 years ago1. Enable exception blocks parsing on non-x86/64 architectures
Xiaozhu Meng [Wed, 26 Jul 2017 20:02:49 +0000 (15:02 -0500)]
1. Enable exception blocks parsing on non-x86/64 architectures
2. Instead of trying to find catch blocks after CF instructions such as ret, jump,
and non-returning call, now if a call site is in a try block, then we parse the
corresponding catch block and create a catch edge from the call site to the catch block.

2 years agoAdd missed header files
Xiaozhu Meng [Sat, 22 Jul 2017 17:28:20 +0000 (12:28 -0500)]
Add missed header files

2 years ago1. Fix tail call identification on power: tail call can target FEP or FEP + 8
Xiaozhu Meng [Wed, 19 Jul 2017 20:40:11 +0000 (15:40 -0500)]
1. Fix tail call identification on power: tail call can target FEP or FEP + 8
2. Add class IA_x86, IA_power, IA_aarch64 to represent architecture specifics. These classes all extend IA_IAPI and are chosen at runtime depending on the arch enum of the analysis binary
3. Delete no longer used jump table heuristics

2 years agoVarious changes for powerpc 64-bit jump table analysis
Xiaozhu Meng [Wed, 19 Jul 2017 13:07:54 +0000 (08:07 -0500)]
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.

2 years ago1. Enables new jump table analysis for powerpc 2. Fix various inconsistency between...
Xiaozhu Meng [Fri, 14 Jul 2017 16:27:13 +0000 (11:27 -0500)]
1. Enables new jump table analysis for powerpc 2. Fix various inconsistency between Dyninst powerpc register representation and ROSE powerpc register representation 3. Fix various issues in converting Dyninst powerpc instructions to ROSE powerpc instructions

2 years agoAdd initial code for power 32 semantics and symbolic expansion for power 64
Xiaozhu Meng [Wed, 19 Apr 2017 19:13:07 +0000 (14:13 -0500)]
Add initial code for power 32 semantics and symbolic expansion for power 64

2 years agoIt is not a good idea to stop scanning jump table when an entry leads to an address...
Xiaozhu Meng [Wed, 21 Jun 2017 21:13:00 +0000 (16:13 -0500)]
It is not a good idea to stop scanning jump table when an entry leads to an address in another function.
The reason is that the another function can have an overapproximated jump table scan, causing wrong function boundary.
New heurisitics:
if the indirect jump is in a function with a hint, and the indirect jump jumps to an adderss outside the range speicified by the hint, we stop

2 years ago1. More strict check when searching for the instruction that spills register to stack
Xiaozhu Meng [Fri, 2 Jun 2017 14:53:17 +0000 (09:53 -0500)]
1. More strict check when searching for the instruction that spills register to stack
2. Add code for checking jump target for variable argument functions

2 years agoFixes for jump table analysis on ARM
Xiaozhu Meng [Thu, 1 Jun 2017 20:39:31 +0000 (15:39 -0500)]
Fixes for jump table analysis on ARM
1. Jump table format slice now correctly track through stack register spills
2. Disallow jump tagets to another function

2 years ago1. On arm, indexing can be performed through shift left operations. Add code to check...
Xiaozhu Meng [Wed, 31 May 2017 15:40:43 +0000 (10:40 -0500)]
1. On arm, indexing can be performed through shift left operations. Add code to check this case.
2. Better jump table format check
3. Only forbid a jump target when it causes overlapping instructions, so allow a jump target to split a basic block

2 years ago1. Allow jump targets to be from a jump table and multiple constant values2
Xiaozhu Meng [Mon, 29 May 2017 15:01:07 +0000 (10:01 -0500)]
1. Allow jump targets to be from a jump table and multiple constant values2
2. Stop reading tables once one table entry leads to overlapping basic blocks

2 years agoFix indirect jumps in variable argument functions, where there is no memory read
Xiaozhu Meng [Wed, 17 May 2017 14:32:16 +0000 (09:32 -0500)]
Fix indirect jumps in variable argument functions, where there is no memory read

2 years agoPerform table scan when the jump table index bound is unknown
Xiaozhu Meng [Mon, 15 May 2017 14:59:00 +0000 (09:59 -0500)]
Perform table scan when the jump table index bound is unknown

2 years ago1. Refactor code of reading contents from jump tables and determining jump target...
Xiaozhu Meng [Sun, 14 May 2017 14:43:18 +0000 (09:43 -0500)]
1. Refactor code of reading contents from jump tables and determining jump target by visiting the jump target AST.
2. Currently when backward slicing, a absloc that is written by call defined by abi will be killed, however, caller saved registers can/should survive

2 years agoInitial implementation of jump table index slice. Basically reusing lots of code...
Xiaozhu Meng [Thu, 11 May 2017 15:20:42 +0000 (10:20 -0500)]
Initial implementation of jump table index slice. Basically reusing lots of code of from class JumpTablePred.
As we only track value bound for the index variable, we only need struct StridedInterval and there is no need for struct BoundValue.

2 years agoStart to split jump table analysis to two different slices.
Xiaozhu Meng [Tue, 9 May 2017 16:33:19 +0000 (11:33 -0500)]
Start to split jump table analysis to two different slices.
1. Jump table format slice. This commit contains its initial implementation
2. Jump table index slice. To be done

2 years agoMerge branch 'att_syntax' into release10.0/fixes/372 393/head
John Detter [Sat, 12 Aug 2017 22:32:04 +0000 (17:32 -0500)]
Merge branch 'att_syntax' into release10.0/fixes/372

2 years agoFix for AVX512 version of vcvtsi2sd
John Detter [Sat, 12 Aug 2017 22:31:18 +0000 (17:31 -0500)]
Fix for AVX512 version of vcvtsi2sd

2 years agoMake dual locks atomic
Bill Williams [Thu, 10 Aug 2017 04:09:32 +0000 (23:09 -0500)]
Make dual locks atomic

2 years agoMerge commit 'd0160a8' into v9.3.x
Bill Williams [Wed, 9 Aug 2017 19:51:31 +0000 (12:51 -0700)]
Merge commit 'd0160a8' into v9.3.x

2 years agoFix line info lookup by file/line
Bill Williams [Wed, 9 Aug 2017 19:50:23 +0000 (12:50 -0700)]
Fix line info lookup by file/line