4 years agoExpose endianness from Elf_X.
Bill Williams [Tue, 19 Apr 2016 16:11:23 +0000 (11:11 -0500)]
Expose endianness from Elf_X.

4 years agoVersion goes to 9.2. All independent defines/constants for version should be replaced...
Bill Williams [Tue, 19 Apr 2016 16:10:54 +0000 (11:10 -0500)]
Version goes to 9.2. All independent defines/constants for version should be replaced with version.h values.

4 years agoFix a PPC64 bit of compiler weirdness--signed char must be explicitly specified here.
Bill Williams [Tue, 19 Apr 2016 16:08:22 +0000 (11:08 -0500)]
Fix a PPC64 bit of compiler weirdness--signed char must be explicitly specified here.

4 years agoTemplate instantiation fixes to cover as wide a compiler range as possible.
Bill Williams [Mon, 18 Apr 2016 20:14:22 +0000 (15:14 -0500)]
Template instantiation fixes to cover as wide a compiler range as possible.

4 years agoAdd init_array and fini_array to the list of sections that need library_adjust applie...
Bill Williams [Mon, 18 Apr 2016 18:22:06 +0000 (13:22 -0500)]
Add init_array and fini_array to the list of sections that need library_adjust applied to them.

4 years agoThread safety and delayed destruction for DWARF-derived source file names in SymtabAPI.
Bill Williams [Thu, 14 Apr 2016 16:50:33 +0000 (11:50 -0500)]
Thread safety and delayed destruction for DWARF-derived source file names in SymtabAPI.

4 years agoLoop analysis optimizations and interface cleanup.
Bill Williams [Thu, 14 Apr 2016 16:49:42 +0000 (11:49 -0500)]
Loop analysis optimizations and interface cleanup.

4 years agoFixed more VEX2 table entries
John Detter [Thu, 7 Apr 2016 20:25:44 +0000 (15:25 -0500)]
Fixed more VEX2 table entries

4 years agoFix for operand mode bugs
John Detter [Thu, 7 Apr 2016 20:09:15 +0000 (15:09 -0500)]
Fix for operand mode bugs

4 years agoFixed an issue with vpadd (VEX2) and added more error reporting in arch-x86
John Detter [Wed, 6 Apr 2016 01:50:14 +0000 (20:50 -0500)]
Fixed an issue with vpadd (VEX2) and added more error reporting in arch-x86

4 years agoFix vpadd decoding. Clean up control flow target logic and shared pointer constructio...
Bill Williams [Fri, 8 Apr 2016 15:01:02 +0000 (10:01 -0500)]
Fix vpadd decoding. Clean up control flow target logic and shared pointer construction/return. Fix bits of tail call logic. Fix unsafe string usage in DwarfWalker. Ensure RTlib builds as a dependency of Dyninst so that dyninstAPI and dyninstAPI-install targets work properly.

4 years agoFix tail call bugs:
Xiaozhu Meng [Tue, 5 Apr 2016 19:20:07 +0000 (14:20 -0500)]
Fix tail call bugs:
1. When the jump target is a different function entry and the function entry hasn't been parsed, it is a tail call
2. When the jump target goes into overlapping instructions, print debugging message and it should not be a tail call

When checking whether a function contains a block, if the block is NULL, it should return false

4 years agoFixed InstructionDecoder-x86 opsema masking bug
John Detter [Tue, 5 Apr 2016 19:12:21 +0000 (14:12 -0500)]
Fixed InstructionDecoder-x86 opsema masking bug

4 years agoTemporary patch for isTailCall bug -- will be revisited
John Detter [Tue, 5 Apr 2016 04:12:44 +0000 (23:12 -0500)]
Temporary patch for isTailCall bug -- will be revisited

4 years agoRemoved some asserts that should return invalid instruction instead
John Detter [Thu, 31 Mar 2016 23:18:26 +0000 (18:18 -0500)]
Removed some asserts that should return invalid instruction instead

4 years agoApplied Xiaozhu's patch (Fixed unknown register class error)
John Detter [Thu, 31 Mar 2016 23:09:52 +0000 (18:09 -0500)]
Applied Xiaozhu's patch (Fixed unknown register class error)

4 years agoLots of improvements:
John Detter [Tue, 29 Mar 2016 21:03:00 +0000 (16:03 -0500)]
Lots of improvements:
 - Added some AVX512 patch work from newer versions
 - Fixed some VEX2/VEX3 decoding table entries
 - Instruction decoder bug fixes for AVX512

4 years agoThread safety and memory improvements
Bill Williams [Wed, 6 Apr 2016 15:56:55 +0000 (10:56 -0500)]
Thread safety and memory improvements

4 years agoInitial gcc5 support (force old ABI for compatiblity with existing libelf/libdwarf...
Bill Williams [Wed, 6 Apr 2016 15:55:05 +0000 (10:55 -0500)]
Initial gcc5 support (force old ABI for compatiblity with existing libelf/libdwarf builds)

4 years agoFixed assert failure that gets triggered when processing non instructions
John Detter [Mon, 28 Mar 2016 20:46:39 +0000 (15:46 -0500)]
Fixed assert failure that gets triggered when processing non instructions

4 years agoAdded support for new SHA-512 instructions
John Detter [Mon, 7 Mar 2016 18:44:26 +0000 (12:44 -0600)]
Added support for new SHA-512 instructions

4 years agoSome VEX512 instructions decoded
John Detter [Thu, 3 Mar 2016 23:59:19 +0000 (17:59 -0600)]
Some VEX512 instructions decoded

4 years agoImplemented a ton of EVEX instructions
John Detter [Tue, 1 Mar 2016 13:57:20 +0000 (07:57 -0600)]
Implemented a ton of EVEX instructions

4 years agoNew tables are imported with no build problems -- testing
John Detter [Tue, 1 Mar 2016 10:28:14 +0000 (04:28 -0600)]
New tables are imported with no build problems -- testing

4 years agoAbout to replace all of the tables with autogenerated tables (again)
John Detter [Tue, 1 Mar 2016 10:06:51 +0000 (04:06 -0600)]
About to replace all of the tables with autogenerated tables (again)

4 years agoSSEB map autogenerated
John Detter [Tue, 1 Mar 2016 09:33:04 +0000 (03:33 -0600)]
SSEB map autogenerated

4 years agoSSE enum autogenerated
John Detter [Tue, 1 Mar 2016 09:26:27 +0000 (03:26 -0600)]
SSE enum autogenerated

4 years agoAbout to add all EVEX instructions
John Detter [Tue, 1 Mar 2016 09:13:06 +0000 (03:13 -0600)]
About to add all EVEX instructions

4 years agoWeird issue with adding properties to prefix class
John Detter [Tue, 1 Mar 2016 06:48:25 +0000 (00:48 -0600)]
Weird issue with adding properties to prefix class

4 years agoVEX2 and VEX3 prefixed instructions should be implemented
John Detter [Tue, 23 Feb 2016 16:32:37 +0000 (10:32 -0600)]
VEX2 and VEX3 prefixed instructions should be implemented

4 years agoAdded SSETER map stubs -- untested
John Detter [Sat, 20 Feb 2016 00:06:06 +0000 (18:06 -0600)]
Added SSETER map stubs -- untested

4 years agoAdded SSEBIS map autogenerated stubs
John Detter [Fri, 19 Feb 2016 23:54:42 +0000 (17:54 -0600)]
Added SSEBIS map autogenerated stubs

4 years agoAdding autogenerated stubs -- untested
John Detter [Fri, 19 Feb 2016 23:34:41 +0000 (17:34 -0600)]
Adding autogenerated stubs -- untested

4 years agoAbout to import output from generation script
John Detter [Thu, 18 Feb 2016 22:54:21 +0000 (16:54 -0600)]
About to import output from generation script

4 years agoAdded support for about 50 new AVX-512 instructions
John Detter [Fri, 5 Feb 2016 03:18:11 +0000 (21:18 -0600)]
Added support for about 50 new AVX-512 instructions

4 years agoAdded mneumonics for new VEX2 and VEX3 instructions
John Detter [Tue, 2 Feb 2016 15:37:03 +0000 (09:37 -0600)]
Added mneumonics for new VEX2 and VEX3 instructions

4 years agoAll AVX and AVX2 Series instructions (included 4 op) decoded
John Detter [Sun, 31 Jan 2016 22:26:28 +0000 (16:26 -0600)]
All AVX and AVX2 Series instructions (included 4 op) decoded

4 years agoCan now understand basic 4 operand VEX instructions
John Detter [Tue, 26 Jan 2016 02:39:08 +0000 (20:39 -0600)]
Can now understand basic 4 operand VEX instructions

4 years agoAll of the working instructions have
John Detter [Thu, 21 Jan 2016 22:46:39 +0000 (16:46 -0600)]
All of the working instructions have

4 years agoMoved as many VEX3 instructions into the sse tables as possible
John Detter [Wed, 20 Jan 2016 03:31:31 +0000 (21:31 -0600)]
Moved as many VEX3 instructions into the sse tables as possible

4 years agovpermilps instruction length fixed
John Detter [Wed, 13 Jan 2016 22:18:42 +0000 (16:18 -0600)]
vpermilps instruction length fixed

4 years agovpermpd and vpermq fixed
John Detter [Wed, 13 Jan 2016 22:12:16 +0000 (16:12 -0600)]
vpermpd and vpermq fixed

4 years agoAdded support for the 2 different operand modes for v[p]maskmov[p,s] instructions
John Detter [Wed, 13 Jan 2016 21:40:02 +0000 (15:40 -0600)]
Added support for the 2 different operand modes for v[p]maskmov[p,s] instructions

4 years agoDyninst can now use am_H addressing mode
John Detter [Tue, 12 Jan 2016 19:24:51 +0000 (13:24 -0600)]
Dyninst can now use am_H addressing mode

4 years agoStarting more in depth testing
John Detter [Tue, 12 Jan 2016 12:59:47 +0000 (06:59 -0600)]
Starting more in depth testing

4 years agoSome AVX, AVX2 instructions have operands decoded
John Detter [Mon, 4 Jan 2016 22:47:54 +0000 (16:47 -0600)]
Some AVX, AVX2 instructions have operands decoded

4 years agoSome VEX instructions have operands decoded
John Detter [Wed, 30 Dec 2015 23:54:44 +0000 (17:54 -0600)]
Some VEX instructions have operands decoded

4 years agoStarted working on VEX operand decoding.
John Detter [Wed, 30 Dec 2015 05:08:39 +0000 (23:08 -0600)]
Started working on VEX operand decoding.

4 years agoAVX and AVX2 decoded (working on decoding opcodes)
John Detter [Wed, 30 Dec 2015 02:07:41 +0000 (20:07 -0600)]
AVX and AVX2 decoded (working on decoding opcodes)

4 years agoProject building
John Detter [Mon, 28 Dec 2015 07:40:56 +0000 (01:40 -0600)]
Project building

4 years agoVEX2 and VEX3 now have their own tables
John Detter [Mon, 28 Dec 2015 05:47:45 +0000 (23:47 -0600)]
VEX2 and VEX3 now have their own tables

4 years agoDyninst can now recognize about 50 VEX instructions
John Detter [Wed, 23 Dec 2015 02:22:22 +0000 (20:22 -0600)]
Dyninst can now recognize about 50 VEX instructions

4 years agoICC sample works
Bill Williams [Fri, 23 Oct 2015 19:58:54 +0000 (14:58 -0500)]
ICC sample works

4 years agoInitial VEX prefix work.
Bill Williams [Thu, 22 Oct 2015 18:30:20 +0000 (13:30 -0500)]
Initial VEX prefix work.

4 years agocmake cleanup and fixes
Peter Foley [Wed, 23 Mar 2016 03:26:23 +0000 (23:26 -0400)]
cmake cleanup and fixes

Utility targets may not have link dependencies.
See https://cmake.org/cmake/help/v3.0/policy/CMP0039.html

Don't produce FindBoost debug output by default.

Don't call get_target_property on non-existant targets.
See https://cmake.org/cmake/help/v3.0/policy/CMP0045.html

Don't use the LOCATION target property.
See https://cmake.org/cmake/help/v3.0/policy/CMP0026.html

Signed-off-by: Peter Foley <pefoley2@pefoley.com>
4 years agoNEED_NATIVE_ASSEMBLER is unused
Peter Foley [Wed, 23 Mar 2016 03:26:22 +0000 (23:26 -0400)]

NEED_NATIVE_ASSEMBLER is passed, but not used anywhere.
Remove it.

Signed-off-by: Peter Foley <pefoley2@pefoley.com>
4 years agoRespect make -j for DyninstRT
Peter Foley [Wed, 23 Mar 2016 03:26:20 +0000 (23:26 -0400)]
Respect make -j for DyninstRT

Use the proper variable for make so that cmake propagates the
jobserver flags properly.

Signed-off-by: Peter Foley <pefoley2@pefoley.com>
4 years agoMake getFunctionRef work
Peter Foley [Wed, 23 Mar 2016 03:26:19 +0000 (23:26 -0400)]
Make getFunctionRef work

getFunctionRef depended on undefined behavior and was otherwise
completely broken. Fix it.

Signed-off-by: Peter Foley <pefoley2@pefoley.com>
4 years agoSupport libcxx
Peter Foley [Wed, 23 Mar 2016 03:26:18 +0000 (23:26 -0400)]
Support libcxx

Allow compiling dyninst against http://libcxx.llvm.org/

Signed-off-by: Peter Foley <pefoley2@pefoley.com>
4 years agoLine info fixes to make older libdwarfs safe to use.
Bill Williams [Fri, 18 Mar 2016 20:20:53 +0000 (15:20 -0500)]
Line info fixes to make older libdwarfs safe to use.

4 years agoFixed bugs from emitElf refactoring; test suite is now clean.
Bill Williams [Thu, 17 Mar 2016 19:07:05 +0000 (14:07 -0500)]
Fixed bugs from emitElf refactoring; test suite is now clean.

4 years agoMoved Symtab parameter into emitElf class.
Bill Williams [Tue, 8 Mar 2016 20:02:46 +0000 (14:02 -0600)]
Moved Symtab parameter into emitElf class.

4 years agoPPC/little-endian build patch
Bill Williams [Tue, 8 Mar 2016 19:52:52 +0000 (13:52 -0600)]
PPC/little-endian build patch

4 years agoEmitElf refactoring, stage 1: created elfTypes traits classes. emitElf64 is now the...
Bill Williams [Thu, 18 Feb 2016 19:56:37 +0000 (13:56 -0600)]
EmitElf refactoring, stage 1: created elfTypes traits classes. emitElf64 is now the authoritative ELF emitter, and emitElf is deleted.

4 years agoMerge branch 'master' of ssh://git.dyninst.org/pub/dyninst
Sunny Shah [Mon, 14 Mar 2016 20:33:05 +0000 (15:33 -0500)]
Merge branch 'master' of ssh://git.dyninst.org/pub/dyninst

4 years agoMerge branch 'arm64'
Sunny Shah [Mon, 14 Mar 2016 20:32:14 +0000 (15:32 -0500)]
Merge branch 'arm64'

4 years agoInstructions in the load/store category with V (bit 26) set to 1 use SIMD registers...
Sunny Shah [Sun, 13 Mar 2016 06:18:31 +0000 (00:18 -0600)]
Instructions in the load/store category with V (bit 26) set to 1 use SIMD registers for Rd and Rn. Fixed now to handle this case.

4 years agoLoad/store instructions with 7-bit immediate now have the correct immediate valaue...
Sunny Shah [Fri, 11 Mar 2016 21:58:16 +0000 (15:58 -0600)]
Load/store instructions with 7-bit immediate now have the correct immediate valaue for both SIMD and non-SIMD instructions.

4 years agoCalculation of immediate operand in logical immediate instructions was done wrong...
Sunny Shah [Fri, 11 Mar 2016 18:27:53 +0000 (12:27 -0600)]
Calculation of immediate operand in logical immediate instructions was done wrong. Fixed now to calculate it according to the DecodeBitMasks function of the ARMv8 manual (page 5595) -- this is per the semantics of the instructions of the logical immediate category.

4 years agoFixed missing semi-colon, and removed un-needed macros from the header.
Sunny Shah [Tue, 8 Mar 2016 22:56:26 +0000 (16:56 -0600)]
Fixed missing semi-colon, and removed un-needed macros from the header.

4 years agoFormatting changes to about half of the file to make the formatting consistent throug...
Sunny Shah [Tue, 8 Mar 2016 22:51:10 +0000 (16:51 -0600)]
Formatting changes to about half of the file to make the formatting consistent throughout.

4 years agoAll immh:immb values are valid for SIMD (non-scalar) shift by immediate instructions...
Sunny Shah [Tue, 8 Mar 2016 22:30:29 +0000 (16:30 -0600)]
All immh:immb values are valid for SIMD (non-scalar) shift by immediate instructions. Updated the code to allow this.

4 years agoFix for correctly identifying all instructions in the SIMD modified immediate category.
Sunny Shah [Tue, 8 Mar 2016 07:12:38 +0000 (01:12 -0600)]
Fix for correctly identifying all instructions in the SIMD modified immediate category.

All instructions in the above mentioned category were getting detected as MOVI. This has now been fixed by adding a few manually encoded entries to the instruction table to correctly identify these instructions.

4 years agoFixed issue of all SIMD modified immediate and shift by immediate instructions flatte...
Sunny Shah [Mon, 7 Mar 2016 23:42:02 +0000 (17:42 -0600)]
Fixed issue of all SIMD modified immediate and shift by immediate instructions flattening to the same instruction (MOVI).

Due to pecularities of the instruction encodings of SIMD modified immediate and shift by immediate instructions, all instructions in both sets (except shift by immediate instructions with lowest bit of opcode equal to 1) were getting treated as movi. This has been fixed. Modified immediate instructions, however, still all flatten to MOVI - the fix for this will be made later.

Also cleaned up code in the ARM decoder.

4 years agoField opc with value 3 in case of load/store literal instructions is a valid PRFM...
Sunny Shah [Tue, 1 Mar 2016 19:03:26 +0000 (13:03 -0600)]
Field opc with value 3 in case of load/store literal instructions is a valid PRFM instruction, not an invalid instruction.

4 years agoFixes to correctly handle the PRFM instruction.
Sunny Shah [Mon, 29 Feb 2016 22:11:27 +0000 (16:11 -0600)]
Fixes to correctly handle the PRFM instruction.

4 years agoFixes to correctly handle SIMD load/store single structure post-indexed category
Sunny Shah [Mon, 29 Feb 2016 19:26:44 +0000 (13:26 -0600)]
Fixes to correctly handle SIMD load/store single structure post-indexed category

4 years agoFixes to correctly handle SIMD load/store single structure instructions
Sunny Shah [Mon, 29 Feb 2016 06:03:03 +0000 (00:03 -0600)]
Fixes to correctly handle SIMD load/store single structure instructions

4 years agoFixes based on testing SIMD vector x indexed, load/store multiple structures and...
Sunny Shah [Fri, 26 Feb 2016 21:49:32 +0000 (15:49 -0600)]
Fixes based on testing SIMD vector x indexed, load/store multiple structures and load/store multiple structures post-indexed categories.

Most fixes revolve around adding the correct registers (several cases had been left out in the load/store categories) and taking care of the read/write properties of the registers (again, most problems were in the load/store instructions).

4 years agoStopped bottoming target registers of add/sub in some situations.
Matt Morehouse [Mon, 22 Feb 2016 16:21:35 +0000 (10:21 -0600)]
Stopped bottoming target registers of add/sub in some situations.

When add/sub reads an argument from a topped memory location, we
now round the target register to top or bottom rather than always
setting it to bottom.

4 years agoImproved handling of sign/zero extends.
Matt Morehouse [Fri, 19 Feb 2016 18:08:51 +0000 (12:08 -0600)]
Improved handling of sign/zero extends.

Extended memory-tracking to include sign/zero extends, made sign/
zero extends from topped locations yield topped values, and
implemented better handling of CBW and CWDE instructions.

4 years agoStarted topping loads from undetermined (topped) locations.
Matt Morehouse [Tue, 16 Feb 2016 16:58:38 +0000 (10:58 -0600)]
Started topping loads from undetermined (topped) locations.

Also made modifications to StackMod so that storing stack pointers
to topped locations results in the function being uninstrumentable.

4 years agoMemory leak fixes and stopped tracking topped locations.
Matt Morehouse [Mon, 8 Feb 2016 19:47:29 +0000 (13:47 -0600)]
Memory leak fixes and stopped tracking topped locations.

Various data structures were being dynamically allocated and never
freed.  Some of these structures I was able to switch to stack
allocation and others I was able to free when they were no longer

Additionally, several std::map objects were maintaining entries for
locations that did not contain stack heights.  By eliminating these
entries, I was able to drastically reduce memory consumption while
speeding up the fixpoint analysis.

4 years agoImplemented naive stack slot tracking.
Matt Morehouse [Tue, 26 Jan 2016 15:02:07 +0000 (09:02 -0600)]
Implemented naive stack slot tracking.

This is done by performing a second fixpoint analysis after
register stack heights are determined in the first fixpoint

4 years agoTightened up add/sub handling and added support for addsd/movsd.
Matt Morehouse [Tue, 19 Jan 2016 14:50:21 +0000 (08:50 -0600)]
Tightened up add/sub handling and added support for addsd/movsd.

4 years agoImproved LEA handling and added mul/div handling.
Matt Morehouse [Wed, 13 Jan 2016 20:09:32 +0000 (14:09 -0600)]
Improved LEA handling and added mul/div handling.

4 years agoImplemented basic memory tracking for stack analysis.
Matt Morehouse [Fri, 11 Dec 2015 15:10:23 +0000 (09:10 -0600)]
Implemented basic memory tracking for stack analysis.

Addresses that can be statically determined (e.g. global variables)
are now tracked in the same manner as registers. Currently only the
MOV instruction is handled for memory loads and stores. There are
plans to add sign/zero extends in the near future.

4 years agoMade several improvements to our stack analysis code.
Matt Morehouse [Tue, 17 Nov 2015 16:55:11 +0000 (10:55 -0600)]
Made several improvements to our stack analysis code.

1. Added handler for XOR zeroing.
2. Set caller-save registers to topBottom after a function call
   rather than bottom (as before).
3. Set registers containing memory-loaded values to bottom rather
   than topBottom (as before).

4 years agoFixed issue with tail call recognition
Matt Morehouse [Mon, 12 Oct 2015 14:46:18 +0000 (09:46 -0500)]
Fixed issue with tail call recognition

We now use the exitBlocks() method instead of callEdges() due to
changes in ParseAPI.

4 years agoFixed segfault on instantiation of non-seeded Randomize objects
Matt Morehouse [Mon, 21 Sep 2015 19:05:36 +0000 (14:05 -0500)]
Fixed segfault on instantiation of non-seeded Randomize objects

4 years agoFixed bug related to falsely recognizing memory accesses
Matt Morehouse [Mon, 21 Sep 2015 19:02:35 +0000 (14:02 -0500)]
Fixed bug related to falsely recognizing memory accesses

Some instructions were being incorrectly identified as accessing memory.

4 years agoBuild compatibility with Visual Studio 2015.
Allison Morris [Tue, 23 Feb 2016 18:53:08 +0000 (12:53 -0600)]
Build compatibility with Visual Studio 2015.

+C99 Support:
Older versions of Microsoft's compiler lack support for some C99
functions, such as snprintf. This commit removes Windows-only macros
on VS 2015 builds that were used to provide snprintf. These macros
are still intact for builds using older versions of MSVC.

+Initializer List Support:
Some of DataflowAPI used Boost libraries in Windows builds to make up
for MSVC's lack of initializer list support. Our initializer list code
is now used on VS 2015+ builds, while the Boost code continues to be
used in older MSVC builds.

4 years agoFixed source register addition for the SIMD table lookup category.
Sunny Shah [Mon, 22 Feb 2016 17:42:31 +0000 (11:42 -0600)]
Fixed source register addition for the SIMD table lookup category.

An extra second source register was getting added for the SIMD table lookup instructions. This has now been fixed.

4 years agoReplaced most asserts with a flag marking the instruction as invalid.
Sunny Shah [Mon, 22 Feb 2016 01:22:54 +0000 (19:22 -0600)]
Replaced most asserts with a flag marking the instruction as invalid.

Except for the cases where the assert didn't depend on the value of a field in the instruction, all of them have been replaced as described above.

4 years agoFixed detection of correct second source register for SIMD scalar X indexed instructi...
Sunny Shah [Fri, 19 Feb 2016 22:46:03 +0000 (16:46 -0600)]
Fixed detection of correct second source register for SIMD scalar X indexed instruction category.

The lower nibble of the opcode needs to be checked, and not the higher nibble.
Also set destination register read for some instructions in the SIMD modified immediate category.

4 years agoAdded support for SIMD scalar 3 same instruction category.
Sunny Shah [Thu, 18 Feb 2016 19:26:39 +0000 (13:26 -0600)]
Added support for SIMD scalar 3 same instruction category.

4 years agoAdded logic to detect invalid instructions in the SIMD scalar shift by immediate...
Sunny Shah [Tue, 16 Feb 2016 22:21:20 +0000 (16:21 -0600)]
Added logic to detect invalid instructions in the SIMD scalar shift by immediate category

4 years agoBug fixes from issues found by Nathan during fuzz testing
Sunny Shah [Tue, 16 Feb 2016 21:37:47 +0000 (15:37 -0600)]
Bug fixes from issues found by Nathan during fuzz testing

* All instructions that point to the INVALID entry of the instruction table have isValid marked as false, to prevent any form of operand post-processing on them. Such post processing was happening before this fix and was an incorrect implementation.
* The code for parsing immediates for scalar shift by immediate SIMD category is same as that for the non-scalar(variant) variant, but wasn;t gettubg executed for the scalar variant. A check has now been added to execute it for the scalar variant as well.

4 years agoBug fixes for SIMD instruction support.
Sunny Shah [Fri, 12 Feb 2016 18:24:44 +0000 (12:24 -0600)]
Bug fixes for SIMD instruction support.

Registers for the scalar pairwise category weren't being set correctly for the Rn field, and not at all for the Rd field. This has now been fixed.

4 years agoARM64 non-register branch and return instructions now have their correct category...
Sunny Shah [Fri, 12 Feb 2016 17:17:25 +0000 (11:17 -0600)]
ARM64 non-register branch and return instructions now have their correct category set.

This is used by ParseAPI to determine the type of an instruction when building basic blocks.