Branch: refs/heads/thaines/capstone_integration
Home: https://github.com/dyninst/dyninst
Commit: 2142a50707b02e44565f78b723b8fc242dfcecc1
https://github.com/dyninst/dyninst/commit/2142a50707b02e44565f78b723b8fc242dfcecc1
Author: Tim Haines <thaines.astro@xxxxxxxxx>
Date: 2024-01-18 (Thu, 18 Jan 2024)
Changed paths:
M .github/workflows/consumers.yaml
Log Message:
-----------
GithubCI: update systemtap weekly test build (#1676)
* Use newer autoconf
2.71 is now the minimum
* Run autoreconf before build
The provided configure seems to only be updated on releases.
* Don't build python/java probes
They don't currently work with out-of-source builds.
Commit: e76e0366a0f2a8ed0d4bb6f08f87af9c06796a58
https://github.com/dyninst/dyninst/commit/e76e0366a0f2a8ed0d4bb6f08f87af9c06796a58
Author: Kirill Batuzov <43408219+batuzovk@xxxxxxxxxxxxxxxxxxxxxxxx>
Date: 2024-02-05 (Mon, 05 Feb 2024)
Changed paths:
M parseAPI/h/CFG.h
Log Message:
-----------
Use code region boundaries for ParseAPI::Function::less comparator (#1668)
Co-authored-by: Kirill Batuzov <kirill.batuzov1@xxxxxxxxxx>
Commit: 8bfd49857f9007c784147aef3602ab776401095a
https://github.com/dyninst/dyninst/commit/8bfd49857f9007c784147aef3602ab776401095a
Author: Tim Haines <thaines.astro@xxxxxxxxx>
Date: 2024-02-13 (Tue, 13 Feb 2024)
Changed paths:
M common/src/Timer.C
Log Message:
-----------
Remove unprintable characters from common/src/Timer.C (#1679)
Commit: 929734d244ae74733fa3ee5350547f0b29e00a8b
https://github.com/dyninst/dyninst/commit/929734d244ae74733fa3ee5350547f0b29e00a8b
Author: kupsch <kupsch@xxxxxxxxxxx>
Date: 2024-02-15 (Thu, 15 Feb 2024)
Changed paths:
M symtabAPI/h/Module.h
Log Message:
-----------
fix operator<< for Module* (#1682)
fix nullptr dereference if Module* is nullptr; print "null" instead
Commit: 6c1dba4995d79323d0d6ce21d7b01227327b99fc
https://github.com/dyninst/dyninst/commit/6c1dba4995d79323d0d6ce21d7b01227327b99fc
Author: kupsch <kupsch@xxxxxxxxxxx>
Date: 2024-02-19 (Mon, 19 Feb 2024)
Changed paths:
M parseAPI/src/IA_x86.C
Log Message:
-----------
correctly detect x86 LEA instructions as NOP (#1681)
LEA is a NOP if and only if the two operands refer to the same
register after simplifying binary expressions with identity
operands.
Commit: 7f4708f7e478e1c4a2407e1191579dbb28ef9372
https://github.com/dyninst/dyninst/commit/7f4708f7e478e1c4a2407e1191579dbb28ef9372
Author: ÐÐÑÑ <shliapin.ilia@xxxxxxxxx>
Date: 2024-02-19 (Mon, 19 Feb 2024)
Changed paths:
M parseAPI/src/IndirectAnalyzer.C
Log Message:
-----------
IndirectAnalyzer: fix potential segfault (#1672)
Co-authored-by: Ilya Shlyapin <ilya.shlyapin@xxxxxxxxxx>
Commit: 383e034dc173d8a9fa6dfc5b96c2d82f96f4a6a3
https://github.com/dyninst/dyninst/commit/383e034dc173d8a9fa6dfc5b96c2d82f96f4a6a3
Author: Tim Haines <thaines.astro@xxxxxxxxx>
Date: 2024-02-19 (Mon, 19 Feb 2024)
Changed paths:
R dyninstAPI/src/Relocation/Transformers/Defensive.C
Log Message:
-----------
Remove dyninstAPI/Relocation/Transformers/Defensive.C (#1685)
File deleted by 8bb4aa76a on 2011-02-08
Reintroduced by 976099e5d on 2011-03-18
Removed from dyninstAPI.vcproj by 78e8ab184 on 2011-04-29
Refers to header files renamed by 91246b9ca on 2011-05-12
Commit: 165f19cd730951a3e2f4a57ebc014fb779a81e34
https://github.com/dyninst/dyninst/commit/165f19cd730951a3e2f4a57ebc014fb779a81e34
Author: Tim Haines <thaines.astro@xxxxxxxxx>
Date: 2024-02-19 (Mon, 19 Feb 2024)
Changed paths:
M parseAPI/src/IA_IAPI.C
M parseAPI/src/IA_IAPI.h
M parseAPI/src/IA_aarch64.C
M parseAPI/src/IA_aarch64.h
M parseAPI/src/IA_amdgpu.C
M parseAPI/src/IA_amdgpu.h
M parseAPI/src/IA_power.C
M parseAPI/src/IA_power.h
M parseAPI/src/IA_x86.C
M parseAPI/src/IA_x86.h
Log Message:
-----------
Refactor IA_IAPI::isSyscall,isInterrupt into arch-specific files (#1684)
* Refactor IA_IAPI::isSyscall,isInterrupt into arch-specific files
This also requires those members be defined for all classes derived
from IA_IAPI.
Commit: 9debe8934ab87967610f489827ca129ddabe9f1e
https://github.com/dyninst/dyninst/commit/9debe8934ab87967610f489827ca129ddabe9f1e
Author: Tim Haines <thaines.astro@xxxxxxxxx>
Date: 2024-02-26 (Mon, 26 Feb 2024)
Changed paths:
M dyninstAPI/src/BPatch_addressSpace.C
Log Message:
-----------
Remove unreachable code in BPatch_addressSpace::getRegisters (#1687)
Commit: 091929d6889211d50b5e12618e98972c38e268fa
https://github.com/dyninst/dyninst/commit/091929d6889211d50b5e12618e98972c38e268fa
Author: Tim Haines <thaines.astro@xxxxxxxxx>
Date: 2024-02-26 (Mon, 26 Feb 2024)
Changed paths:
M instructionAPI/src/InstructionCategories.C
M parseAPI/src/IA_aarch64.C
M parseAPI/src/IA_power.C
M parseAPI/src/IA_x86.C
Log Message:
-----------
Improve syscall and interrupt instruction detection (#1686)
* Treat x86 software interrupts as system calls
* Correct detection of Linux vsyscall for 32-bit code
The existing code did not work because the Operand formatter uses AT&T
syntax and doesn't convert hex to decimal, so the '== "16"' check
always failed.
The convoluted logic in the visitor is needed because Dyninst does not
generate AST for segment registers. Yet, it _does_ record if they are
read/written.
The AST for the 'gs' register was made a file scope static because its
initialization would cause some glibc's to throw a
__gnu_cxx::recursive_init_error when using multiple threads.
* aarch64 - add svc
Supervisor Call
* ppc - add system call
* Add int1, into to IA_x86::isInterrupt
Commit: 5d2808259782e2328b005e253dc33d0d1dd7d2a2
https://github.com/dyninst/dyninst/commit/5d2808259782e2328b005e253dc33d0d1dd7d2a2
Author: Tim Haines <thaines.astro@xxxxxxxxx>
Date: 2024-02-26 (Mon, 26 Feb 2024)
Changed paths:
M cmake/DyninstLibrarySettings.cmake
M cmake/DyninstOptions.cmake
Log Message:
-----------
Add CMake option to control symbol visibility (#1688)
Currently, all symbols are hidden by default and
then explicitly made visible. This is the behavior
we want for publishing Dyninst libraries, but unit
testing the internal functionality requires access
to these symbols. This option allows that.
Commit: 19cccf1ef41f968c354197cb82e118b17eac1090
https://github.com/dyninst/dyninst/commit/19cccf1ef41f968c354197cb82e118b17eac1090
Author: Tim Haines <thaines.astro@xxxxxxxxx>
Date: 2024-02-27 (Tue, 27 Feb 2024)
Changed paths:
M parseAPI/src/IA_IAPI.C
Log Message:
-----------
Fix logic error in IA_IAPI::isInterruptOrSyscall (#1683)
This was broken by e7db16f5 in 2010.
Commit: ecdc2a57b6e566290a85716943329c2e84451d89
https://github.com/dyninst/dyninst/commit/ecdc2a57b6e566290a85716943329c2e84451d89
Author: kupsch <kupsch@xxxxxxxxxxx>
Date: 2024-02-27 (Tue, 27 Feb 2024)
Changed paths:
M COPYRIGHT
M parseAPI/h/SymLiteCodeSource.h
M parseAPI/src/CodeSource.C
M parseAPI/src/SymLiteCodeSource.C
Log Message:
-----------
update copyright header and date (#1689)
- update COPYRIGHT files's notice to include 2024
- update copyright header in source files to reference COPYRIGHT
Commit: 443e0a2b96a7ac3ac859fd06556080049d5cd7fd
https://github.com/dyninst/dyninst/commit/443e0a2b96a7ac3ac859fd06556080049d5cd7fd
Author: Tim Haines <thaines.astro@xxxxxxxxx>
Date: 2024-02-27 (Tue, 27 Feb 2024)
Changed paths:
M parseAPI/src/Parser.C
Log Message:
-----------
Remove explicit check for system calls in parse_frame_one_iteration (#1691)
165f19cd and 091929d6 changed the parsing semantics of system calls
such that software interrupts (e.g., `int` on x86) are always
interpreted as system calls. The `hasCFT()` check on line 1824 now
covers all of the system call cases because it considers those
instructions to have a control flow target (CFT).
Its non-use was verified against /usr/libx32/libc.so.6,
/usr/lib/i386-linux-gnu/libc.so.6, /usr/lib/x86_64-linux-gnu/libc.so.6,
and /usr/lib32/libc.so.6 on Ubuntu 22.04.
Commit: 48593c3ff35e022cd621b812063fbbf04fe25532
https://github.com/dyninst/dyninst/commit/48593c3ff35e022cd621b812063fbbf04fe25532
Author: Tim Haines <thaines.astro@xxxxxxxxx>
Date: 2024-02-27 (Tue, 27 Feb 2024)
Changed paths:
M dataflowAPI/src/liveness.C
M dyninstAPI/src/Relocation/Transformers/Movement-analysis.C
M dyninstAPI/src/Relocation/Transformers/Movement-analysis.h
M instructionAPI/CMakeLists.txt
A instructionAPI/h/syscalls.h
A instructionAPI/src/syscalls.C
M parseAPI/src/IA_IAPI.C
M parseAPI/src/IA_IAPI.h
M parseAPI/src/IA_aarch64.C
M parseAPI/src/IA_aarch64.h
M parseAPI/src/IA_amdgpu.C
M parseAPI/src/IA_amdgpu.h
M parseAPI/src/IA_power.C
M parseAPI/src/IA_power.h
M parseAPI/src/IA_x86.C
M parseAPI/src/IA_x86.h
M parseAPI/src/Parser.C
Log Message:
-----------
Unify system call detection (#1692)
* Move isSyscall to instructionAPI
* Use InstructionAPI::isSystemCall in LivenessAnalyzer::calcRWSets
* Use InstructionAPI::isSystemCall in PCSensitiveTransformer::process
* Use InstructionAPI::isSystemCall in Parse::parse_frame_one_iteration
* Use InstructionAPI::isSystemCall in IA_IAPI::getNewEdges
* Remove IA_IAPI::isSyscall
It is replaced by InstructionAPI::isSystemCall.
Commit: 2f2f73fcca8238624af08231795e4b0587fa3946
https://github.com/dyninst/dyninst/commit/2f2f73fcca8238624af08231795e4b0587fa3946
Author: Tim Haines <thaines.astro@xxxxxxxxx>
Date: 2024-02-28 (Wed, 28 Feb 2024)
Changed paths:
M dataflowAPI/src/liveness.C
M instructionAPI/CMakeLists.txt
A instructionAPI/h/interrupts.h
A instructionAPI/src/interrupts.C
M parseAPI/src/IA_IAPI.C
M parseAPI/src/IA_IAPI.h
M parseAPI/src/IA_aarch64.C
M parseAPI/src/IA_aarch64.h
M parseAPI/src/IA_amdgpu.C
M parseAPI/src/IA_amdgpu.h
M parseAPI/src/IA_power.C
M parseAPI/src/IA_power.h
M parseAPI/src/IA_x86.C
M parseAPI/src/IA_x86.h
Log Message:
-----------
Unify software interrupt instruction detection (#1693)
* Move isInterrupt to InstructionAPI
* Use InstructionAPI::isInterrupt in IA_IAPI::isInterruptOrSyscall
* Use InstructionAPI::isInterrupt in LivenessAnalyzer::calcRWSets
* Remove IA_IAPI::isInterrupt
It is replaced by InstructionAPI::isInterrupt
Commit: ff87bfc6c09c356f22ab02449076bc013c7b7229
https://github.com/dyninst/dyninst/commit/ff87bfc6c09c356f22ab02449076bc013c7b7229
Author: Tim Haines <thaines.astro@xxxxxxxxx>
Date: 2024-02-29 (Thu, 29 Feb 2024)
Changed paths:
A .github/workflows/unit-tests.yaml
M docker/build.sh
Log Message:
-----------
Github CI: add unit tests (#1694)
Commit: 268b6300b59d507317b6c342ae9588eb6fedf2ac
https://github.com/dyninst/dyninst/commit/268b6300b59d507317b6c342ae9588eb6fedf2ac
Author: kupsch <kupsch@xxxxxxxxxxx>
Date: 2024-02-29 (Thu, 29 Feb 2024)
Changed paths:
M CHANGELOG.md
M CMakeLists.txt
M common/doc/manual_frontpage.tex
M dataflowAPI/doc/dataflowAPI.pdf
M dynC_API/doc/dynC_API.pdf
M dyninstAPI/doc/dyninstAPI.docx
M dyninstAPI/doc/dyninstAPI.pdf
M instructionAPI/doc/instructionAPI.pdf
M parseAPI/doc/API/CodeObject.tex
M parseAPI/doc/API/Function.tex
A parseAPI/doc/code_sample.cc
A parseAPI/doc/example.cc
M parseAPI/doc/parseAPI.pdf
M patchAPI/doc/patchAPI.pdf
M patchAPI/doc/section/4_api_public.tex
M proccontrol/doc/proccontrol.docx
M proccontrol/doc/proccontrol.pdf
M stackwalk/doc/stackwalk.pdf
M symtabAPI/doc/API/Types/Type.tex
M symtabAPI/doc/symtabAPI.pdf
Log Message:
-----------
release 13.0.0 versions & docs (#1695)
- update dyninst version
- update CHANGELOG.md
- produce manuals with updated release dates and versions
- fix .tex files to eliminate latex errors:
- invalid char in symtabAPI/doc/API/Types/Type.tex
- invalid char in parseAPI/doc/API/Function.tex
- invalid char in patchAPI/doc/section/4_api_public.tex
- invlide line break in parseAPI/doc/API/CodeObject.tex
- restore parseAPI example code needed by docs removed in 6c2e31c0
Co-authored-by: James Kupsch <kupsch@xxxxxxxxxxxx>
Commit: 2d13ec683332cbd4e154a026a75a313429a5f897
https://github.com/dyninst/dyninst/commit/2d13ec683332cbd4e154a026a75a313429a5f897
Author: Tim Haines <thaines.astro@xxxxxxxxx>
Date: 2024-03-01 (Fri, 01 Mar 2024)
Changed paths:
M dataflowAPI/h/bitArray.h
Log Message:
-----------
Remove bitArray SPEC_*_BIT macros (#1696)
They were added by 3a70928cc in 2007, but never used.
Commit: f83cf2135a345856317eeaf5212901dac229f579
https://github.com/dyninst/dyninst/commit/f83cf2135a345856317eeaf5212901dac229f579
Author: Kirill Batuzov <43408219+batuzovk@xxxxxxxxxxxxxxxxxxxxxxxx>
Date: 2024-03-01 (Fri, 01 Mar 2024)
Changed paths:
M parseAPI/h/CodeObject.h
M parseAPI/src/CodeObject.C
M parseAPI/src/Parser.C
M parseAPI/src/Parser.h
Log Message:
-----------
Add CodeObject::parse overloads to accept multiple targets
Parser::parse_at takes only one target at a time. This has two repercussions:
1) It can't take full advantage of parallel parsing when there are multiple targets in need of it.
2) It still enters and exits OMP parallel loop. This operation has its own performance overhead that
depends on the host system (number of processors and OMP configuration). This overhead can be very significant.
This change introduces Parser::parse_vec that takes a vector of targets and parses them in parallel.
When there are significant number of parse_at calls, performance gains from migrating to parse_vec can be huge. Parsing what initial parse() missed in libLLVM-12.so.1 with parse_at took nearly 20 minutes on 4-core hyper-threaded
CPU. Doing the same with parse_vec took less than 4 minutes. On 128-bit ARM64 server we've seen even bigger gains
(from around 40 minutes to less than 3).
Co-authored-by: Kirill Batuzov <kirill.batuzov1@xxxxxxxxxx>
Commit: e182fa4230fcd8e2b5e7bd26c0d196c9a24c725a
https://github.com/dyninst/dyninst/commit/e182fa4230fcd8e2b5e7bd26c0d196c9a24c725a
Author: Tim Haines <thaines.astro@xxxxxxxxx>
Date: 2024-03-04 (Mon, 04 Mar 2024)
Changed paths:
M dyninstAPI/src/codegen-aarch64.C
M dyninstAPI/src/codegen-aarch64.h
M dyninstAPI/src/codegen-power.C
M dyninstAPI/src/codegen-power.h
Log Message:
-----------
Remove dead byte-swapping code in dyninstAPI codegen (#1697)
* Remove insnCodeGen::ptrAndInc
It was added by 311466419 in 2015 as commented-out code.
* Remove use of endian_mismatch macro
Its use was removed by 44507e6b0 in 2013.
* Remove insnPtr
It was only used by ptrAndInc.
Commit: 25530c4aa29a4e1263cb95bd46747b053f448a5c
https://github.com/dyninst/dyninst/commit/25530c4aa29a4e1263cb95bd46747b053f448a5c
Author: Tim Haines <thaines.astro@xxxxxxxxx>
Date: 2024-03-11 (Mon, 11 Mar 2024)
Changed paths:
M .github/workflows/pr-tests.yaml
M .github/workflows/unit-tests.yaml
Log Message:
-----------
GithubCI: use verbose output with ctest (#1706)
This will help with debugging test failures.
Commit: daa18eb077dd73bd7d230f10b6262cfd15393dc3
https://github.com/dyninst/dyninst/commit/daa18eb077dd73bd7d230f10b6262cfd15393dc3
Author: Tim Haines <thaines.astro@xxxxxxxxx>
Date: 2024-03-11 (Mon, 11 Mar 2024)
Changed paths:
M dataflowAPI/src/slicing.C
Log Message:
-----------
Do not kill caller-saved registers when slicing backward (#1705)
This check was added by 578ff24aa 2017, but the logic is inverted. From
the commit message:
Currently when backward slicing, a absloc that is written by call
defined by abi will be killed, however, caller saved registers
can/should survive
It's also unclear why r11 was excluded as it's not saved across
function calls (i.e., not callee-saved).
Commit: 9f82dd80fa46de3dcb4462a9c8c12daaf9610d1a
https://github.com/dyninst/dyninst/commit/9f82dd80fa46de3dcb4462a9c8c12daaf9610d1a
Author: Tim Haines <thaines.astro@xxxxxxxxx>
Date: 2024-03-11 (Mon, 11 Mar 2024)
Changed paths:
M .github/workflows/pr-tests.yaml
M .github/workflows/unit-tests.yaml
Log Message:
-----------
GithubCI: don't run tests for draft PRs (#1704)
Commit: 11baee8e51ca409b158718425d320be439bd2419
https://github.com/dyninst/dyninst/commit/11baee8e51ca409b158718425d320be439bd2419
Author: Tim Haines <thaines.astro@xxxxxxxxx>
Date: 2024-03-11 (Mon, 11 Mar 2024)
Changed paths:
M common/h/registers/x86_64_regs.h
Log Message:
-----------
Fix duplicate base ID in x86_64 GPRs (#1702)
FLAGS and BASEA should be unique.
This was introduced by 30f08e7b in 2023.
Commit: 88ad81c143bfe7a6567cf75a52ad618ba14ac9aa
https://github.com/dyninst/dyninst/commit/88ad81c143bfe7a6567cf75a52ad618ba14ac9aa
Author: Tim Haines <thaines.astro@xxxxxxxxx>
Date: 2024-03-11 (Mon, 11 Mar 2024)
Changed paths:
M common/h/registers/MachRegister.h
M common/src/registers/MachRegister.C
Log Message:
-----------
MachRegister: Add interface for collecting and retrieving all registers (#1703)
This makes writing ABI rules much simpler. It could also be useful for
some power users. The registers returned are in the order they are
declared in common/h/registers/<arch>_regs.h.
Names are only save the register when a name is given because
the other constructor is used to convert registers (e.g., getBaseRegister)
and would create duplicates entries since the name isn't changed.
Commit: a6e2a6690ff6b113a94e941c0882f3552120d974
https://github.com/dyninst/dyninst/commit/a6e2a6690ff6b113a94e941c0882f3552120d974
Author: Tim Haines <thaines.astro@xxxxxxxxx>
Date: 2024-03-11 (Mon, 11 Mar 2024)
Changed paths:
M common/src/registers/MachRegister.C
Log Message:
-----------
Fix definition of MachRegister::getAllRegistersForArch (#1709)
It's defined in the wrong scope, so it's not accessible outside of MachRegister.C.
Introduced by 88ad81c14 in 2024.
Commit: a208e09d7ec2c36e29eca75ff31491612ef388a4
https://github.com/dyninst/dyninst/commit/a208e09d7ec2c36e29eca75ff31491612ef388a4
Author: Tim Haines <thaines.astro@xxxxxxxxx>
Date: 2024-03-21 (Thu, 21 Mar 2024)
Changed paths:
M .github/workflows/system-libs.yaml
Log Message:
-----------
GitHub CI: use stronger error reporting in 'system-libs' action (#1715)
Commit: f821450b55533810717a99b98849e00a2ce9340f
https://github.com/dyninst/dyninst/commit/f821450b55533810717a99b98849e00a2ce9340f
Author: Tim Haines <thaines.astro@xxxxxxxxx>
Date: 2024-03-21 (Thu, 21 Mar 2024)
Changed paths:
M .github/workflows/pr-tests.yaml
M .github/workflows/unit-tests.yaml
Log Message:
-----------
GitHub CI: only run tests when source code changes (#1714)
Commit: 592a45be0438f3f07d4451d24bae785fecd235f9
https://github.com/dyninst/dyninst/commit/592a45be0438f3f07d4451d24bae785fecd235f9
Author: Tim Haines <thaines.astro@xxxxxxxxx>
Date: 2024-03-22 (Fri, 22 Mar 2024)
Changed paths:
M common/h/registers/MachRegister.h
M common/h/registers/aarch64_regs.h
M common/h/registers/ppc32_regs.h
M common/h/registers/ppc64_regs.h
M common/h/registers/x86_64_regs.h
M common/h/registers/x86_regs.h
Log Message:
-----------
Use fix-width type for MachRegister format (#1716)
This ensures the same number of bits is available on all platforms.
Fix comments: the fields are 8 bits wide, not 16.
Commit: b59a614c38faee582bbc52edee165a3784c772dc
https://github.com/dyninst/dyninst/commit/b59a614c38faee582bbc52edee165a3784c772dc
Author: Tim Haines <thaines.astro@xxxxxxxxx>
Date: 2024-03-22 (Fri, 22 Mar 2024)
Changed paths:
M dyninstAPI/src/BPatch_type.C
M dyninstAPI/src/image.C
M symtabAPI/src/annotations.C
M symtabAPI/src/annotations.h
Log Message:
-----------
Remove unused annotations (#1717)
* CommonBlockUpPtr
This was added by d4b6dac19 in 2009, but was never written to. The
check on line 243 would always pass and getCblocks would return an
empty vector.
* FunctionLocalVariablesAnno
Its usage was removed by 5ed068167 in 2013.
* Remove FunctionParametersAnno
Its usage was removed by 5ed068167 in 2013.
* Remove IdToSymMap
Its usage was remove dby c42859c30 in 2016.
* Remove ImageFuncUpPtrAnno
Its usage was removed by 5ed068167 in 2013.
* Remove LocalVarUpPtrAnno
It was added by d2e866379 in 2009, but has always been write-only.
* Remove ModuleLineInfoAnno
Its usage was remove by 186761951 in 2014.
* Remove ModuleTypeInfoAnno
Its usage was removed by 186761951 in 2014.
* Remove UserFuncsAnno
Its usage was removed by 74c0f9613 in 2008.
* Remove UserSymbolsAnno
Its usage was removed by 74c0f9613 in 2008.
Commit: eb74678be940db3851fdcef786c27c79bba78d22
https://github.com/dyninst/dyninst/commit/eb74678be940db3851fdcef786c27c79bba78d22
Author: Tim Haines <thaines.astro@xxxxxxxxx>
Date: 2024-03-22 (Fri, 22 Mar 2024)
Changed paths:
M dataflowAPI/h/liveness.h
Log Message:
-----------
Remove LivenessAnalyzer::query(ParseAPI::Location,Type,OutputIterator) (#1718)
It has never worked because it doesn't dereference the output
iterator.
Commit: cfa91d0260d40be1d7ee270e9d03567a56eefdad
https://github.com/dyninst/dyninst/commit/cfa91d0260d40be1d7ee270e9d03567a56eefdad
Author: Tim Haines <thaines.astro@xxxxxxxxx>
Date: 2024-03-26 (Tue, 26 Mar 2024)
Changed paths:
M common/h/Annotatable.h
M common/src/Annotatable.C
M common/src/arch-x86.C
M common/src/freebsdHeaders.h
M common/src/freebsdKludges.C
M common/src/headers.h
M common/src/linuxHeaders.h
M common/src/linuxKludges.C
M common/src/stats.C
M common/src/stats.h
M dataflowAPI/h/Absloc.h
M dataflowAPI/src/Absloc.C
M dyninstAPI/CMakeLists.txt
M dyninstAPI/h/BPatch_function.h
M dyninstAPI/h/BPatch_image.h
M dyninstAPI/h/BPatch_module.h
M dyninstAPI/h/BPatch_process.h
M dyninstAPI/h/BPatch_snippet.h
M dyninstAPI/src/BPatch_basicBlock.C
M dyninstAPI/src/BPatch_basicBlockLoop.C
M dyninstAPI/src/BPatch_function.C
M dyninstAPI/src/BPatch_module.C
M dyninstAPI/src/BPatch_snippet.C
M dyninstAPI/src/Patching.C
M dyninstAPI/src/Patching.h
M dyninstAPI/src/Relocation/CodeBuffer.C
M dyninstAPI/src/Relocation/Springboard.C
M dyninstAPI/src/Relocation/Transformers/Movement-adhoc.C
M dyninstAPI/src/Relocation/Transformers/Movement-analysis.C
M dyninstAPI/src/Relocation/Widgets/CFWidget.C
M dyninstAPI/src/StackMod/StackModChecker.C
M dyninstAPI/src/addressSpace.C
M dyninstAPI/src/ast.C
M dyninstAPI/src/ast.h
M dyninstAPI/src/codeRange.C
M dyninstAPI/src/codegen-x86.C
M dyninstAPI/src/dynProcess.C
M dyninstAPI/src/emit-power.h
M dyninstAPI/src/emit-x86.C
M dyninstAPI/src/function.C
M dyninstAPI/src/function.h
M dyninstAPI/src/image.C
M dyninstAPI/src/inst-aarch64.C
M dyninstAPI/src/inst-power.C
M dyninstAPI/src/inst-x86.C
M dyninstAPI/src/instP.h
M dyninstAPI/src/instPoint.C
M dyninstAPI/src/linux-x86.C
M dyninstAPI/src/mapped_module.C
M dyninstAPI/src/mapped_module.h
M dyninstAPI/src/mapped_object.h
M dyninstAPI/src/parse-cfg.h
M dyninstAPI/src/pcEventHandler.C
R dyninstAPI/src/syscalltrap.h
M dyninstAPI/src/unix.h
M dyninstAPI/src/util.C
M dyninstAPI/src/util.h
M dyninstAPI_RT/src/RTcommon.c
M dyninstAPI_RT/src/RTfreebsd.c
M instructionAPI/h/Dereference.h
M instructionAPI/h/Ternary.h
M instructionAPI/h/Visitor.h
M instructionAPI/src/Register.C
M instructionAPI/src/Ternary.C
M parseAPI/h/ParseContainers.h
M parseAPI/src/IA_IAPI.C
M parseAPI/src/IA_aarch64.C
M parseAPI/src/IA_power.C
M parseAPI/src/Parser.h
M parseAPI/src/dominator.C
M patchAPI/src/PatchBlock.C
M proccontrol/CMakeLists.txt
M proccontrol/h/ProcessSet.h
M proccontrol/src/freebsd.C
M proccontrol/src/int_thread_db.C
M proccontrol/src/linux.C
R proccontrol/src/notify_pipe.h
M proccontrol/src/pcerrors.C
M stackwalk/h/procstate.h
M symtabAPI/doc/API/Symtab/Symbol.tex
M symtabAPI/h/Function.h
M symtabAPI/h/Symbol.h
M symtabAPI/src/Function.C
M symtabAPI/src/Object-elf.C
M symtabAPI/src/Object-elf.h
M symtabAPI/src/Symtab-lookup.C
M symtabAPI/src/Symtab.C
M symtabAPI/src/Type.C
M symtabAPI/src/emitElf.C
M symtabAPI/src/emitElfStatic-aarch64.C
M symtabAPI/src/emitElfStatic-ppc64.C
M symtabAPI/src/parseDwarf.C
Log Message:
-----------
Dead code cleanup (#1719)
* Symtab.C
376da2b61 in 2007
b9ee0a524 in 2007
4025acd83 in 2012
4e4a375a4 in 2016
85927e97f in 2017
* instPoint.C
d8ade2 in 2011
* Absloc.h
cd39a7 in 2010
* headers.h
65bd80557 in 2008
ac8f2817 in 2008
* inst-power.C
3169f28af in 1995
90afda5d4 in 2002
8f5d555a0 in 2005
7d4113393 in 2006
bb377beb9 in 2007
7e70f8ea2 in 2007
41d0401ff in 2008
e07d7ad2e in 2009
62b7d1f21 in 2010
fcd67b50c in 2010
1bdb443c7 in 2010
b42dfb677 in 2011
13eeea75f in 2012
9fe681882 in 2012
1ad3c5ead in 2018
04c9b8706 in 2018
* Remove proccontrol/notify_pipe.h
Added empty by ac7f7e2001 in 2010
* Remove dyninstAPI/src/syscalltrap.h
Usage removed by 7a737b6a09e in 2010
* Absloc.C
4aa8839d9 in 2010
8ad73999f in 2010
0b763f360 in 2010
Technically an ABI/API break, but it's irrelevant since no one has been
able to use those functions since 2010.
* ia32_is_mode_64
556bc2b3a01b in 2017
* Ternary.C
Not sure when this was removed
* TernaryAST::makePC
Never implemented
* Register.C
DEBUG added by e4173885 in 2010
Debug printing removed by a4125a9e62a in 2011
* Visitor.h
74a1da3143 in 2016
* ProcessSet.h
Added by c9ec57036 in 2012, but never implemented
* symtabAPI/Function.h
name_iter added by 7a3f133bc47 in 2016, but never used
* Symbol::getVersionNum(unsigned&) const
Added by b3c1c8e4f in 2009, but never implemented
* ProcessState::setLibraryTracker(LibraryState *)
Added by 10ca1b477 in 2009, but never implemented
* dyninstAPI/src/ast.h
condMatch added by c79afe66f in 2001, but not implemented
20116a1026 in 2006
20116a1026 in 2007
fa14696b73 in 2009
* BPatch_image::findOrCreateVariable
No implementation
git has no record of this existing- even with a full pickaxe over
the entire repo. I'd say it's ancient.
* BPatch_process::PDSEP_updateObservedCostAddr(unsigned long a)
6293e88a8 in 2009
* BPatch_snippet::PDSEP_astMinCost()
6293e88a8 in 2009
* CHECK_ALL_CALL_POINTS
Last usage removed by 62b7d1f21 in 2009
* Remove decodeWaitPidStatus(procWaitpidStatus_t, EventRecord&)
db6f2d307 in 2010
* Remove checkIfRelocatable(instruction, bool&)
62b7d1f21 in 2010
* Remove parse_func::parseOMPSectFunc
dee8900ad in 2011
* image.C
80834b98d9 in 2005
6d4e94744a in 2005
75b6bee6b1 in 2005
2fc202af93 in 2006
6c65e3c9a8 in 2007
74c0f96134 in 2008
62b7d1f21d in 2010
d66f3e0dcb in 2012
* dyninstAPI/src/util.h
openFileWhenNotBusy: 23aaa1c7a in 2006
waitForFileToExist: e016bde56 in 2014
uiHash: f4613dcfe in 2008
CThash: 7a737b6a0 in 2010
intHash: f8dda5e2d in 2010
ptrHash4 added by 102d5c674 in 2005, but never implemented
ptrHash16 added by 102d5c674 in 2005, but never implemented
* IA_aarch64.C
Added by 0cbe6840935 in 2015, but never used
0cbe684093 in 2015
* Parser::parse_sbp()
bdb2cbdc8da in 2017
* Object::parseDwarfTypes(Symtab*)
Disabled by 9c0aea7f1266d in 2012
* parseDwarf.C
340799a201 in 2017
* BPatch_module::parseDwarfTypes()
a3e86c198 in 2009
* Annotatable.C
dummy_bs: 5eecdfe37 in 2009
63c8f6a1fb in 2009
3e890d05d7 in 2009
'buffer' was added by 3e890d05d74 in 2009
NON_STATIC_SPARSE_MAP, 3e890d05d74 in 2009
* ParseContainers.h
d0fb605ef21 in 2012
* Remove emitStorePreviousStackFrameRegister
usage removed by 4a4b40a24 in 2009,
disabled by 90f965c1d in 2008
* emitElfStatic-aarch64.C
AARCH64_WIDTH added by cf24b5261 in 2015, but never used
OLD_VERSION added by f95525cbd in 2015
* emitElfStatic-ppc64.C
5bc8d8877 in 2012
0d6036621 in 2012
760bfda6e in 2019
ca68472cf in 2019
x86 static vars added by aacf9a7c991 in 2012, but never used
* arch-x86.C
e72838f1bc in 2016
47b3368940 in 2016
* freebsdHeaders.h
6647c9baa in 2010
* freebsdKludges.C
ebd68e1b9 in 2012
* linuxHeaders.h
dccf6451aa1 in 2006
c51ddd7df17 in 1997
* stats.C
3520f22bad3 in 2008
* BPatch_process.h
3ca668c713 in 2012
* Movement-adhoc.C
dd8f40b7b4 in 2012
* CFWidget.C
b4d63301d1 in 2012
758aa22669 in 2016
* Movement-analysis.C
f891a319b in 2016
* linuxKludges.C
839b81684 in 2007
* stats.h
3520f22bad3 in 2008
* CFGWidget.C
8bb4aa76a in 2011
7ce20933e in 2011
* CodeBuffer.C
94bceeffc8d in 2011
* Springboard.C
fd362a2dff in 2012
5a88f21a24 in 2018
fb488fd49b in 2019
8d9621ae21 in 2011
* inst-aarch64.C
0cbe6840935 in 2015
* StackModChecker.C
d0458f210b in 2015
* addressSpace.C
c3fd2c456 in 2010
fdc07b07e in 2011
d0fb605ef in 2012
5adcaef10 in 2012
0efd04a78 in 2013
827ad8e2e in 2015
* ast.C
20116a1026 in 2006
21d1427b92 in 2010
4a4b40a242 in 2009
* BPatch_basicBlock.C
0f5b6e43c in 2012
d0fb605ef in 2012
a91a2b261 in 2009
* BPatch_basicBlockLoop.C
566ec0894c in 2012
* BPatch_function.C
b66154964a in 2008
* BPatch_module.C
d4b6dac19e4 in 2009
0f2ad9bc29c in 2008
* BPatch_snippet.C
23d4d4bb2 in 2009
49ccad8e4 in 2011
1c2eb3b7a in 2006
* codegen-x86.C
041bad2f6 in 2015
07c66053d in 2008
c3fd2c456 in 2010
da44e9b22 in 2006
70328949c in 2011
* codeRange.C
236581d63e in 2005
0bce3c156c in 2006
7a2dcd9df2 in 2010
* dynProcess.C
9c63b2738d in 2012
3faa4175c8 in 2012
0efd04a781 in 2013
0e791cce8c in 2015
0f9e277665 in 2018
* emit-x86.C
3173bd78e7 in 2011
0cc0b67318 in 2012
ab24c9bf00 in 2011
* func_instance::add_block_cb
286b2a90835 in 2012
* instP.h
8f5d555a082f in 2005
* Patching.h
23f0550145 in 2011
* inst-x86.C
f5943138c2 in 2010
4322603c84 in 2004
a7264f555f in 2010
* linux-x86.C
db6f2d3076a in 2010
* mapped_module.C
70328949c in 2011
d2412c4d1 in 2011
* pcEventHandler.C
0088b1285c in 2012
4e1b40d005 in 2014
0e791cce8c in 2015
* RTcommon.C
127dfc766 in 2010
bd5874eef in 2010
3717c253e in 2011
1e2389977 in 2011
* RTfreebsd.C
d915f03b32 in 2012
* Dereference.h
48f8d7b67b in 2016
* dominator.C
ae9230394c in 2014
* IA_IAPI.C
8cbd0fee4 in 2011
f5e3d0030 in 2011
* IA_power.C
641f99f4e in 2010
5274e3bb2 in 2011
2e0f15515 in 2011
b0d83c42f in 2012
* PatchBlock.C
f8842b40f6 in 2011
* freebsd.C
9b1e7b5a2 in 2010
d6399d41e in 2010
* int_thread_db.C
f5e3492a81 in 2011
* linux.C
579ba55f71 in 2011
b0ced1cb30 in 2015
bc243bcb9e in 2018
* pcerrors.C
b0ced1cb30 in 2015
* emitElf.C
5bc8d8877 in 2012
00098a1bb in 2016
91bdb5e73 in 2016
8c333ece5 in 2019
4e14b3ebc in 2020
* symtabAPI/Function.C
e1ed71e36c in 2009
2ce1f7662c in 2015
* Object-elf.C
a382e03ffa in 2012
758aa22669 in 2016
3a7d20c3f2 in 2017
0600a498fd in 2017
* Symtab-lookup.C
b82201865c in 2008
dc7c82aa91 in 2012
2d4c889dbb in 2018
* Type.C
b9ee0a524 in 2007
6a792a92a in 2008
349d38cea in 2008
3e890d05d in 2009
d2e866379 in 2009
Commit: e70b1001eb5082bb0204b602e3ca1cfccd67fc94
https://github.com/dyninst/dyninst/commit/e70b1001eb5082bb0204b602e3ca1cfccd67fc94
Author: kupsch <kupsch@xxxxxxxxxxx>
Date: 2024-04-09 (Tue, 09 Apr 2024)
Changed paths:
M .github/workflows/consumers.yaml
M .github/workflows/pr-tests.yaml
M .github/workflows/system-libs.yaml
M .github/workflows/unit-tests.yaml
M cmake/DyninstLibrarySettings.cmake
M parseThat/CMakeLists.txt
Log Message:
-----------
improve cmake install dirs (#1721)
* Use cmake's GNUInstallDirs to get the lib, bin and include directory
names instead of always using 'lib', 'bin', and 'include'. This
results in two changes to the installation:
- lib directory becomes 'lib64' on platforms where this is the
convention
- the lib, bin and include may be overwritten using the cmake
variables CMAKE_INSTALL_BINDIR, CMAKE_INSTALL_LIBDIR and
CMAKE_INSTALL_INCLUDEDIR respectively
* Update github workflows to handle the lib install dir lib64:
- use Dyninst_ROOT instead of Dyninst_DIR as it searches for the
directory used
- for non-cmake uses search for lib* to find either lib or lib64
Commit: 12fc2000b135f1b3ce5857723e9248d43c917a42
https://github.com/dyninst/dyninst/commit/12fc2000b135f1b3ce5857723e9248d43c917a42
Author: kupsch <kupsch@xxxxxxxxxxx>
Date: 2024-04-09 (Tue, 09 Apr 2024)
Changed paths:
M .github/workflows/system-libs.yaml
Log Message:
-----------
fix system-lib github workflow (#1722)
change shell code in workflow to be /bin/sh compliant instead of
using bash constructs
Commit: e885d38c535976c92f108bce29803dcb6145476e
https://github.com/dyninst/dyninst/commit/e885d38c535976c92f108bce29803dcb6145476e
Author: kupsch <kupsch@xxxxxxxxxxx>
Date: 2024-04-09 (Tue, 09 Apr 2024)
Changed paths:
M .github/workflows/system-libs.yaml
Log Message:
-----------
ignore .hmac files in system-libs github workflow (#1724)
.hmac files are library files so do not try to parse
Commit: 3f0bffb81377d5ecb5d02b273e398a8e6120f5ea
https://github.com/dyninst/dyninst/commit/3f0bffb81377d5ecb5d02b273e398a8e6120f5ea
Author: Tim Haines <thaines.astro@xxxxxxxxx>
Date: 2024-04-10 (Wed, 10 Apr 2024)
Changed paths:
M cmake/DyninstWarnings.cmake
M cmake/tpls/DyninstBoost.cmake
Log Message:
-----------
Disable -Wdeprecated-declarations for Boost on clang > 17 (#1723)
It's not clear why, but clang 18 and 19 do not correctly detect that
/usr/include/boost is a system directory, and it emits warnings for
use of deprecated std::unary_function.
Commit: b9554a67a0a7c80c711b79bf88c2819491affc20
https://github.com/dyninst/dyninst/commit/b9554a67a0a7c80c711b79bf88c2819491affc20
Author: bbiiggppiigg <bbiiggppiigg@xxxxxxxxx>
Date: 2024-04-16 (Tue, 16 Apr 2024)
Changed paths:
M instructionAPI/src/AMDGPU/gfx908/appendOperands.C
M instructionAPI/src/AMDGPU/gfx90a/appendOperands.C
M instructionAPI/src/AMDGPU/gfx940/appendOperands.C
Log Message:
-----------
Fix AMDGPU register operand expansion (#1728)
This commit fixes an issue with the use of dynmaic_pointer_cast
in appendOperands.C, where the base type should be used in stead of
the Ptr type.
Commit: 2c4c1b0135666f080780aadfc3e60091377503fb
https://github.com/dyninst/dyninst/commit/2c4c1b0135666f080780aadfc3e60091377503fb
Author: kupsch <kupsch@xxxxxxxxxxx>
Date: 2024-04-19 (Fri, 19 Apr 2024)
Changed paths:
M .github/workflows/consumers.yaml
Log Message:
-----------
fix hpctoolkit github ci workflow (#1729)
have spack use python that it built and intalled instead of the
system python, so meson gets installed in the correct path
Commit: 6ef6687cdf6ecb07a11116ee871817f2eacd2bb5
https://github.com/dyninst/dyninst/commit/6ef6687cdf6ecb07a11116ee871817f2eacd2bb5
Author: Tim Haines <thaines.astro@xxxxxxxxx>
Date: 2024-04-19 (Fri, 19 Apr 2024)
Changed paths:
M cmake/DyninstPlatform.cmake
Log Message:
-----------
CMake: update x86 platform detection (#1727)
Commit: a29f32ac87c4483b97a2c5cb9beed5642124ae8f
https://github.com/dyninst/dyninst/commit/a29f32ac87c4483b97a2c5cb9beed5642124ae8f
Author: Tim Haines <thaines.astro@xxxxxxxxx>
Date: 2024-04-22 (Mon, 22 Apr 2024)
Changed paths:
M common/CMakeLists.txt
M common/src/dyn_regs.C
M common/src/registers/MachRegister.C
A common/src/registers/MachRegisterCache.h
Log Message:
-----------
MachRegister: fix initialization order bug (#1731)
This fixes the static initialization ordering issue reported in https://github.com/dyninst/dyninst/issues/1730.
Commit: 2e17fe3e10b4d56fa2c3af180d017728fe151334
https://github.com/dyninst/dyninst/commit/2e17fe3e10b4d56fa2c3af180d017728fe151334
Author: Tim Haines <thaines.astro@xxxxxxxxx>
Date: 2024-04-26 (Fri, 26 Apr 2024)
Changed paths:
R instructionAPI/capstone/aarch64.py
A instructionAPI/capstone/aarch64/__init__.py
A instructionAPI/capstone/aarch64/mnemonics.py
A instructionAPI/capstone/aarch64/registers.py
R instructionAPI/capstone/capstone.py
R instructionAPI/capstone/import.py
A instructionAPI/capstone/import_mnemonics.py
R instructionAPI/capstone/ppc.py
A instructionAPI/capstone/ppc/__init__.py
A instructionAPI/capstone/ppc/mnemonics.py
A instructionAPI/capstone/ppc/registers.py
R instructionAPI/capstone/x86.py
A instructionAPI/capstone/x86/__init__.py
A instructionAPI/capstone/x86/mnemonics.py
A instructionAPI/capstone/x86/registers.py
Log Message:
-----------
Update Capstone importer scripts (#1734)
* Restructure layout for mnemonic parsing
* Add stubs for register importing
Commit: 95b6a50c1937fa162d7724783c18a229509df265
https://github.com/dyninst/dyninst/commit/95b6a50c1937fa162d7724783c18a229509df265
Author: Tim Haines <thaines.astro@xxxxxxxxx>
Date: 2024-05-03 (Fri, 03 May 2024)
Changed paths:
M dyninstAPI/src/BPatch_process.C
M dyninstAPI/src/freebsd.C
M dyninstAPI/src/linux-x86.C
M dyninstAPI/src/mapped_object.C
M parseAPI/src/LoopAnalyzer.C
Log Message:
-----------
Replace utos with std::to_string (#1737)
This function doesn't need to exist since there is a standard way of doing it now.
Commit: 67bc82c2df17c050924f154d6066ef55c3247d1a
https://github.com/dyninst/dyninst/commit/67bc82c2df17c050924f154d6066ef55c3247d1a
Author: Tim Haines <thaines.astro@xxxxxxxxx>
Date: 2024-05-03 (Fri, 03 May 2024)
Changed paths:
M common/CMakeLists.txt
M common/h/Annotatable.h
M common/h/Buffer.h
M common/h/DynAST.h
M common/h/Edge.h
M common/h/Graph.h
M common/h/MachSyscall.h
M common/h/Node.h
M common/h/SymReader.h
M common/h/VariableLocation.h
M common/h/concurrent.h
A common/h/dyninst_visibility.h
M common/h/entryIDs.h
M common/h/registers/MachRegister.h
M common/h/registers/reg_def.h
M common/h/util.h
M common/src/Annotatable.C
M common/src/MappedFile.h
M common/src/Timer.h
M common/src/addrtranslate.h
M common/src/arch-aarch64.h
M common/src/arch-power.h
M common/src/arch-x86.C
M common/src/arch-x86.h
M common/src/debug_common.h
M common/src/dthread.h
M common/src/freebsdHeaders.h
M common/src/freebsdKludges.h
M common/src/linuxHeaders.h
M common/src/linuxKludges.h
M common/src/lprintf.h
M common/src/parseauxv.h
M common/src/pathName.h
M common/src/stats.h
M common/src/util.C
M dataflowAPI/h/ABI.h
M dataflowAPI/h/Absloc.h
M dataflowAPI/h/AbslocInterface.h
M dataflowAPI/h/SymEval.h
M dataflowAPI/h/liveness.h
M dataflowAPI/h/slicing.h
M dataflowAPI/h/stackanalysis.h
M dataflowAPI/src/ExpressionConversionVisitor.h
M dataflowAPI/src/RoseInsnFactory.h
M dataflowAPI/src/SymEvalVisitors.h
M dwarf/h/dwarfExprParser.h
M dwarf/h/dwarfFrameParser.h
M dwarf/h/dwarfHandle.h
M dwarf/h/dwarfResult.h
M dwarf/src/dwarf_subrange.h
M dynC_API/CMakeLists.txt
M dynC_API/h/dynC.h
M dyninstAPI/h/BPatch.h
M dyninstAPI/h/BPatch_Set.h
M dyninstAPI/h/BPatch_addressSpace.h
M dyninstAPI/h/BPatch_basicBlock.h
M dyninstAPI/h/BPatch_basicBlockLoop.h
M dyninstAPI/h/BPatch_binaryEdit.h
M dyninstAPI/h/BPatch_dll.h
M dyninstAPI/h/BPatch_edge.h
M dyninstAPI/h/BPatch_flowGraph.h
M dyninstAPI/h/BPatch_frame.h
M dyninstAPI/h/BPatch_function.h
M dyninstAPI/h/BPatch_image.h
M dyninstAPI/h/BPatch_instruction.h
M dyninstAPI/h/BPatch_loopTreeNode.h
M dyninstAPI/h/BPatch_memoryAccess_NP.h
M dyninstAPI/h/BPatch_module.h
M dyninstAPI/h/BPatch_object.h
M dyninstAPI/h/BPatch_parRegion.h
M dyninstAPI/h/BPatch_point.h
M dyninstAPI/h/BPatch_process.h
M dyninstAPI/h/BPatch_snippet.h
M dyninstAPI/h/BPatch_sourceBlock.h
M dyninstAPI/h/BPatch_sourceObj.h
M dyninstAPI/h/BPatch_statement.h
M dyninstAPI/h/BPatch_thread.h
M dyninstAPI/h/BPatch_type.h
M dyninstAPI/h/StackMod.h
M elf/h/Elf_X.h
M instructionAPI/h/ArchSpecificFormatters.h
M instructionAPI/h/BinaryFunction.h
M instructionAPI/h/Dereference.h
M instructionAPI/h/Expression.h
M instructionAPI/h/Immediate.h
M instructionAPI/h/Instruction.h
M instructionAPI/h/InstructionAST.h
M instructionAPI/h/InstructionCategories.h
M instructionAPI/h/InstructionDecoder.h
M instructionAPI/h/Operand.h
M instructionAPI/h/Operation_impl.h
M instructionAPI/h/Register.h
M instructionAPI/h/Result.h
M instructionAPI/h/Ternary.h
M instructionAPI/h/interrupts.h
M instructionAPI/h/syscalls.h
M instructionAPI/src/Instruction.C
M instructionAPI/src/InstructionDecoder-x86.C
M instructionAPI/src/InstructionDecoder-x86.h
M instructionAPI/src/InstructionDecoder.C
M instructionAPI/src/Operand.C
M parseAPI/h/CFG.h
M parseAPI/h/CFGFactory.h
M parseAPI/h/CFGModifier.h
M parseAPI/h/CodeObject.h
M parseAPI/h/CodeSource.h
M parseAPI/h/GraphAdapter.h
M parseAPI/h/InstructionSource.h
M parseAPI/h/SymLiteCodeSource.h
M parseAPI/src/Parser.C
M parseAPI/src/debug_parse.h
M patchAPI/h/AddrSpace.h
M patchAPI/h/CFGMaker.h
M patchAPI/h/Command.h
M patchAPI/h/Instrumenter.h
M patchAPI/h/PatchCFG.h
M patchAPI/h/PatchCallback.h
M patchAPI/h/PatchMgr.h
M patchAPI/h/PatchModifier.h
M patchAPI/h/PatchObject.h
M patchAPI/h/Point.h
M patchAPI/h/Snippet.h
M proccontrol/CMakeLists.txt
M proccontrol/h/Decoder.h
M proccontrol/h/Event.h
M proccontrol/h/EventType.h
M proccontrol/h/Generator.h
M proccontrol/h/Handler.h
M proccontrol/h/Mailbox.h
M proccontrol/h/PCErrors.h
M proccontrol/h/PCProcess.h
M proccontrol/h/PlatFeatures.h
M proccontrol/h/ProcessSet.h
M proccontrol/src/proc_service_wrapper.h
M proccontrol/src/windows_handler.h
M stackwalk/CMakeLists.txt
M stackwalk/h/frame.h
M stackwalk/h/framestepper.h
M stackwalk/h/procstate.h
M stackwalk/h/swk_errors.h
M stackwalk/h/symlookup.h
M stackwalk/h/walker.h
M symlite/h/SymLite-elf.h
M symtabAPI/doc/API/Symtab/Symbol.tex
M symtabAPI/h/AddrLookup.h
M symtabAPI/h/Aggregate.h
M symtabAPI/h/Archive.h
M symtabAPI/h/Collections.h
M symtabAPI/h/ExceptionBlock.h
M symtabAPI/h/Function.h
M symtabAPI/h/LineInformation.h
M symtabAPI/h/Module.h
M symtabAPI/h/RangeLookup.h
M symtabAPI/h/Region.h
M symtabAPI/h/Statement.h
M symtabAPI/h/Symbol.h
M symtabAPI/h/Symtab.h
M symtabAPI/h/SymtabReader.h
M symtabAPI/h/Type.h
M symtabAPI/h/Variable.h
M symtabAPI/h/relocationEntry.h
M symtabAPI/h/symutil.h
M symtabAPI/src/Aggregate.C
M symtabAPI/src/ExceptionBlock.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/Symbol.C
M symtabAPI/src/Symtab-edit.C
M symtabAPI/src/Symtab.C
M symtabAPI/src/relocationEntry-elf-aarch64.C
M symtabAPI/src/relocationEntry-elf-ppc64.C
M symtabAPI/src/relocationEntry-elf-x86.C
M symtabAPI/src/relocationEntry.C
Log Message:
-----------
Consolidate visibility control macros (#1738)
There is no need to have one per toolkit.
This also removes the MSVC-specific check because we don't build there
and we don't have any of the visibility compiler switches set for it,
either.
Commit: 170c01dbe5724f5b483f2755f18e848b5e215f1d
https://github.com/dyninst/dyninst/commit/170c01dbe5724f5b483f2755f18e848b5e215f1d
Author: Tim Haines <thaines.astro@xxxxxxxxx>
Date: 2024-05-05 (Sun, 05 May 2024)
Changed paths:
M dyninstAPI/CMakeLists.txt
M dyninstAPI/h/BPatch.h
M dyninstAPI/h/BPatch_Set.h
M dyninstAPI/h/BPatch_addressSpace.h
M dyninstAPI/h/BPatch_basicBlock.h
M dyninstAPI/h/BPatch_basicBlockLoop.h
M dyninstAPI/h/BPatch_binaryEdit.h
R dyninstAPI/h/BPatch_dll.h
M dyninstAPI/h/BPatch_edge.h
M dyninstAPI/h/BPatch_flowGraph.h
M dyninstAPI/h/BPatch_function.h
M dyninstAPI/h/BPatch_image.h
M dyninstAPI/h/BPatch_instruction.h
M dyninstAPI/h/BPatch_loopTreeNode.h
M dyninstAPI/h/BPatch_module.h
M dyninstAPI/h/BPatch_object.h
M dyninstAPI/h/BPatch_parRegion.h
M dyninstAPI/h/BPatch_point.h
M dyninstAPI/h/BPatch_process.h
M dyninstAPI/h/BPatch_snippet.h
M dyninstAPI/h/BPatch_sourceBlock.h
M dyninstAPI/h/BPatch_sourceObj.h
M dyninstAPI/h/BPatch_statement.h
M dyninstAPI/h/BPatch_thread.h
M dyninstAPI/h/BPatch_type.h
M dyninstAPI/h/StackMod.h
Log Message:
-----------
Remove BPatch_dll.h (#1739)
Since 67bc82c2d, this no longer serves a purpose. The definition for
V_libdyninstAPI was removed by dee8900a in 2011.
Commit: ca0bb3aa69e792bf436468a1386ee1b64dba19d4
https://github.com/dyninst/dyninst/commit/ca0bb3aa69e792bf436468a1386ee1b64dba19d4
Author: Tim Haines <thaines.astro@xxxxxxxxx>
Date: 2024-05-10 (Fri, 10 May 2024)
Changed paths:
M symtabAPI/src/dwarfWalker.C
Log Message:
-----------
Hide ompc_leftmost reducer if not using OpenMP (#1741)
This causes a unused function warning when USE_OpenMP=OFF.
Commit: aa8eb5abcadf2f456bc4a8fecfdd7c897fca42cd
https://github.com/dyninst/dyninst/commit/aa8eb5abcadf2f456bc4a8fecfdd7c897fca42cd
Author: Tim Haines <thaines.astro@xxxxxxxxx>
Date: 2024-05-10 (Fri, 10 May 2024)
Changed paths:
M stackwalk/src/callchecker.C
M stackwalk/src/framestepper_pimple.h
Log Message:
-----------
Fix clang warnings when SW_ANALYSIS_STEPPER=OFF. (#1742)
* Fix -Wunused-private-field in AnalysisStepper
This was found by clang's -Wunused-private-field when
SW_ANALYSIS_STEPPER=OFF.
* Fix unaligned memory read in CallChecker::isPrevInstrACall
Found by clang's -Wcast-align when SW_ANALYSIS_STEPPER=OFF.
Commit: 040fb1961137a0183b10e8c7fbcb73ce2633bc71
https://github.com/dyninst/dyninst/commit/040fb1961137a0183b10e8c7fbcb73ce2633bc71
Author: Kirill Batuzov <43408219+batuzovk@xxxxxxxxxxxxxxxxxxxxxxxx>
Date: 2024-05-26 (Sun, 26 May 2024)
Changed paths:
M common/src/arch-x86.C
Log Message:
-----------
x86: check that opcode supports VEX/EVEX prefix if it is present (#1746)
Dyninst recognizes invalid combinations of VEX/EVEX prefixes and opcodes as valid instructions. The "&& false" check was introduced in 39caf8e and most probably is some debugging change that slipped into the main code by accident.
Commit: 9cb8cba5e42c406d82f5e2d2a8c40785e9f9f675
https://github.com/dyninst/dyninst/commit/9cb8cba5e42c406d82f5e2d2a8c40785e9f9f675
Author: Kirill Batuzov <43408219+batuzovk@xxxxxxxxxxxxxxxxxxxxxxxx>
Date: 2024-05-27 (Mon, 27 May 2024)
Changed paths:
M common/src/arch-x86.C
Log Message:
-----------
x86: correctly detect 3DNow instruction length (#1748)
Also, 3DNow instructions can't be VEX-prefixed
Co-authored-by: Kirill Batuzov <kirill.batuzov1@xxxxxxxxxx>
Commit: 07e41a479bce35c8b1c86b47feb869630918dd2d
https://github.com/dyninst/dyninst/commit/07e41a479bce35c8b1c86b47feb869630918dd2d
Author: Kirill Batuzov <43408219+batuzovk@xxxxxxxxxxxxxxxxxxxxxxxx>
Date: 2024-05-28 (Tue, 28 May 2024)
Changed paths:
M instructionAPI/src/Operation.C
Log Message:
-----------
x86: handle flag RF (#1749)
The only instruction supported by Dyninst that references flag RF is RSM. An attempt to getReadSet or getWriteSet for it fails.
Commit: 9daa8a09db09f8de153e351a6a18dd7ebcda1881
https://github.com/dyninst/dyninst/commit/9daa8a09db09f8de153e351a6a18dd7ebcda1881
Author: Kirill Batuzov <43408219+batuzovk@xxxxxxxxxxxxxxxxxxxxxxxx>
Date: 2024-05-30 (Thu, 30 May 2024)
Changed paths:
M common/src/arch-x86.C
Log Message:
-----------
x86: only group opcodes from groupMap2 can be VEX-prefixed (#1747)
Commit: 12d5b341e4d58ec06f3f98a4ef1a106a6d8501a7
https://github.com/dyninst/dyninst/commit/12d5b341e4d58ec06f3f98a4ef1a106a6d8501a7
Author: Kirill Batuzov <43408219+batuzovk@xxxxxxxxxxxxxxxxxxxxxxxx>
Date: 2024-05-31 (Fri, 31 May 2024)
Changed paths:
M common/src/arch-x86.C
Log Message:
-----------
x86: support XOP multiply-accumulate instructions (#1752)
Support decoding of XOP instructions from multiply-and-accumulate group. They were partially supported before. There were IDs for them and one variant was present in decoding tables.
Commit: 20c1c899be22332135b8b82ce0596db425f9a24e
https://github.com/dyninst/dyninst/commit/20c1c899be22332135b8b82ce0596db425f9a24e
Author: Kirill Batuzov <43408219+batuzovk@xxxxxxxxxxxxxxxxxxxxxxxx>
Date: 2024-05-31 (Fri, 31 May 2024)
Changed paths:
M common/src/arch-x86.C
Log Message:
-----------
x86: handle disambiguation between XOP prefix and POP instruction (#1754)
0x8f can be either the first byte of XOP prefix, or the opcode of POP instruction. The disambiguation is resolved by map_select field of XOP's second byte. If it is XOP prefix, than the field should be from [0x8, 0x1f] range. Otherwise it is ModRM byte, and 0x8f is an opcode. The only instruction with this opcode is POP, and it requires Reg filed of ModRM to be 0.
Commit: ed10444f852f9f8fdcfeffd0923e6f22bb6cb46f
https://github.com/dyninst/dyninst/commit/ed10444f852f9f8fdcfeffd0923e6f22bb6cb46f
Author: Heather McIntyre <112671134+hsmcintyre@xxxxxxxxxxxxxxxxxxxxxxxx>
Date: 2024-06-01 (Sat, 01 Jun 2024)
Changed paths:
M symtabAPI/src/Object-elf.C
M symtabAPI/src/Object-elf.h
Log Message:
-----------
Fix Race Condition in Parsing Line Map for NVIDIA Binaries (#1744)
* Fix Race Condition in Parsing Line Map for NVIDIA Binaries
---------
Co-authored-by: Heather McIntyre <hsm2@xxxxxxxxxxxxxxxxxx>
Commit: 8641f23ec3f18f0402ca039ff2b5d3cb49be003b
https://github.com/dyninst/dyninst/commit/8641f23ec3f18f0402ca039ff2b5d3cb49be003b
Author: Kirill Batuzov <batuzovk@xxxxxxxxx>
Date: 2024-06-06 (Thu, 06 Jun 2024)
Changed paths:
M common/src/arch-x86.C
Log Message:
-----------
x86: support XOP horizontal add/sub instructions (#1753)
Commit: ba75c625983634d775a7b19ce7842b940643795b
https://github.com/dyninst/dyninst/commit/ba75c625983634d775a7b19ce7842b940643795b
Author: Kirill Batuzov <batuzovk@xxxxxxxxx>
Date: 2024-06-06 (Thu, 06 Jun 2024)
Changed paths:
M common/h/mnemonics/x86_entryIDs.h
M common/src/arch-x86.C
M dataflowAPI/src/convertOpcodes.C
Log Message:
-----------
x86: handle UD0 and UD1 instructions (#1756)
Intel manual define 3 different UD instructions: UD0, UD1, and UD2. UD2 is fully supported by Dyninst, UD0 and UD1 are not.
Commit: d6e3937326b73d8b20ae6d5d4d090b76148dcff9
https://github.com/dyninst/dyninst/commit/d6e3937326b73d8b20ae6d5d4d090b76148dcff9
Author: Dmitry Koltunov <koltunov@xxxxxxxxx>
Date: 2024-06-07 (Fri, 07 Jun 2024)
Changed paths:
M common/src/arch-x86.C
M instructionAPI/src/InstructionDecoder-x86.C
Log Message:
-----------
x86: correctly decode 32 and 64 bit arguments of AVX instructions (#1759)
Some combinations of operand types resulted in ModRM not being read.
Read ModRM when we encounter an operand that references r/m field.
Fill REX fields from VEX prefix so that we can choose correct
argument size in decodeAVX function.
Signed-off-by: koltunov <koltunov@xxxxxxxxx>
Commit: 43b75762a130ee923f88f8a1608cd0fdcc3bbf56
https://github.com/dyninst/dyninst/commit/43b75762a130ee923f88f8a1608cd0fdcc3bbf56
Author: Dmitry Koltunov <koltunov@xxxxxxxxx>
Date: 2024-06-07 (Fri, 07 Jun 2024)
Changed paths:
M common/src/arch-x86.C
Log Message:
-----------
x86: add support for decoding multiple instructions and fix decoding of supported instructions (#1760)
* x86: add support for blsr, blsmsk, blsi with mem operand
Signed-off-by: koltunov <koltunov@xxxxxxxxx>
* x86: add support for adcx, adox instructions
Signed-off-by: koltunov <koltunov@xxxxxxxxx>
* x86: add support for vblendpd, vpblendw and fix blendps, blendpd, pblendw, vblendps instructions
Signed-off-by: koltunov <koltunov@xxxxxxxxx>
* x86: fix decoding of vpmaskmovd,vpmaskmovq instructions
Signed-off-by: koltunov <koltunov@xxxxxxxxx>
* x86: fix decoding of pextrb, pextrw and add vpextrw with opcode 0x15
Move pextrb and pextrw instructions to the correct position in sse_ter_table
since they are prefixed with 66 and not F2. Add support for decoding of EVEX
prefixed vpextrw instruction. Make operands of vpextrw and vpextrb instructions
consistent with Intel manual. Add support for decoding a variant of vpextrw
instruction with opcode 0x15.
Signed-off-by: koltunov <koltunov@xxxxxxxxx>
* x86: add rorx to vexw table
Signed-off-by: koltunov <koltunov@xxxxxxxxx>
* x86: fix decoding of dpps and add vdpps instruction
Signed-off-by: koltunov <koltunov@xxxxxxxxx>
* x86: fix decoding of pcmpestrm and add vpcmpestrm instruction
Signed-off-by: koltunov <koltunov@xxxxxxxxx>
* x86: fix decoding of vbroadcastf128, movntdqa, mpsadbw, vmovntpd, vmovntps, vmovntdqa
Signed-off-by: koltunov <koltunov@xxxxxxxxx>
* x86: fix decoding of roundps/pd/ss/sd, vrndscaleps/pd/ss/sd and add vroundps/pd/ss/sd instructions
Signed-off-by: koltunov <koltunov@xxxxxxxxx>
Commit: 36c67d0977ebcdf09512387ddacab60b4969f3a8
https://github.com/dyninst/dyninst/commit/36c67d0977ebcdf09512387ddacab60b4969f3a8
Author: Kirill Batuzov <batuzovk@xxxxxxxxx>
Date: 2024-06-11 (Tue, 11 Jun 2024)
Changed paths:
M common/src/arch-x86.C
Log Message:
-----------
x86: correctly disassemble VMOVDQA/VMODQU instructions variants (#1761)
Some of these instructions were supported, but not all. Some had incorrect number of arguments. Some vmovdqa32/vmodqa64 instructions were recognized as regular vmovdqa.
Commit: 075ff4bd68eebf131341c8772ae468486d4fdb69
https://github.com/dyninst/dyninst/commit/075ff4bd68eebf131341c8772ae468486d4fdb69
Author: bbiiggppiigg <bbiiggppiigg@xxxxxxxxx>
Date: 2024-07-15 (Mon, 15 Jul 2024)
Changed paths:
M dataflowAPI/src/AbslocInterface.C
M dataflowAPI/src/ExpressionConversionVisitor.C
M dataflowAPI/src/ExpressionConversionVisitor.h
M dataflowAPI/src/RoseInsnFactory.C
M dataflowAPI/src/stackanalysis.C
M dyninstAPI/src/BPatch_memoryAccessAdapter.C
M dyninstAPI/src/BPatch_memoryAccessAdapter.h
M dyninstAPI/src/IAPI_to_AST.C
M dyninstAPI/src/IAPI_to_AST.h
M dyninstAPI/src/Relocation/Transformers/Movement-adhoc.C
M dyninstAPI/src/StackMod/StackAccess.C
M instructionAPI/CMakeLists.txt
M instructionAPI/h/ArchSpecificFormatters.h
M instructionAPI/h/Expression.h
M instructionAPI/h/InstructionAST.h
A instructionAPI/h/MultiRegister.h
M instructionAPI/h/Register.h
M instructionAPI/h/Result.h
M instructionAPI/h/Visitor.h
M instructionAPI/src/AMDGPU/gfx908/appendOperands.C
M instructionAPI/src/AMDGPU/gfx908/decodeOperands.C
M instructionAPI/src/AMDGPU/gfx90a/appendOperands.C
M instructionAPI/src/AMDGPU/gfx90a/decodeOperands.C
M instructionAPI/src/AMDGPU/gfx940/appendOperands.C
M instructionAPI/src/AMDGPU/gfx940/decodeOperands.C
M instructionAPI/src/ArchSpecificFormatters.C
M instructionAPI/src/Expression.C
M instructionAPI/src/InstructionDecoderImpl.C
M instructionAPI/src/InstructionDecoderImpl.h
A instructionAPI/src/MultiRegister.C
M instructionAPI/src/Operand.C
M instructionAPI/src/syscalls.C
M parseAPI/src/IA_x86.C
Log Message:
-----------
Add MultiRegisterAST to instructionAPI for AMDGPU (#1733)
This commit introduce a new AT that denotes the use of multiple registers as a single operand.
* Add new AST MultiRegisterAST to instructionAPI
* Update existing implementation to use MultiRegisterAST.
* The constructor of the Expression class has been restructured to avoid redundant implementation.
* Fix decodeOPR_VCC to use vcc_lo instead
* Update visibility control macros based on (#1738)
---------
Co-authored-by: kupsch <kupsch@xxxxxxxxxxx>
Commit: 43d02b2b5a49df8199307e8b32c0d98668ab2bb9
https://github.com/dyninst/dyninst/commit/43d02b2b5a49df8199307e8b32c0d98668ab2bb9
Author: bbiiggppiigg <bbiiggppiigg@xxxxxxxxx>
Date: 2024-07-15 (Mon, 15 Jul 2024)
Changed paths:
M instructionAPI/h/Result.h
Log Message:
-----------
Fix the compiler error introduced in PR1733
Add missing return statements in Result.h
Commit: 1118bb6a7a7bf568e4617b8fe60692da41158ed2
https://github.com/dyninst/dyninst/commit/1118bb6a7a7bf568e4617b8fe60692da41158ed2
Author: bbiiggppiigg <bbiiggppiigg@xxxxxxxxx>
Date: 2024-07-16 (Tue, 16 Jul 2024)
Changed paths:
M dataflowAPI/src/RoseInsnFactory.C
Log Message:
-----------
Fix vector undefined behavior introduced in #1768 (#1769)
Commit: ebecc67d9f6433f7841f5b2114c151638509fc3f
https://github.com/dyninst/dyninst/commit/ebecc67d9f6433f7841f5b2114c151638509fc3f
Author: bbiiggppiigg <bbiiggppiigg@xxxxxxxxx>
Date: 2024-07-17 (Wed, 17 Jul 2024)
Changed paths:
M parseAPI/src/IndirectAnalyzer.C
Log Message:
-----------
Add missing IGFX90A and GFX940 Indirect Analysis (#1771)
Commit: ea460143416f6ff0d814a959e31d50d1c7e2a1fb
https://github.com/dyninst/dyninst/commit/ea460143416f6ff0d814a959e31d50d1c7e2a1fb
Author: bbiiggppiigg <bbiiggppiigg@xxxxxxxxx>
Date: 2024-07-17 (Wed, 17 Jul 2024)
Changed paths:
M common/h/registers/AMDGPU/amdgpu_gfx90a_regs.h
M common/h/registers/AMDGPU/amdgpu_gfx940_regs.h
M common/src/registers/MachRegister.C
M external/rose/amdgpuInstructionEnum.h
R instructionAPI/src/AMDGPU/gfx908/amdgpu_gfx908_insn_entry.h
M instructionAPI/src/AMDGPU/gfx90a/InstructionDecoder-amdgpu-gfx90a.h
M instructionAPI/src/AMDGPU/gfx90a/amdgpu_gfx90a_decoder_impl.C
R instructionAPI/src/AMDGPU/gfx90a/amdgpu_gfx90a_insn_entry.h
R instructionAPI/src/AMDGPU/gfx90a/amdgpu_gfx90a_opcode_tables.C
M instructionAPI/src/AMDGPU/gfx90a/appendOperands.C
M instructionAPI/src/AMDGPU/gfx90a/decodeOperands.C
M instructionAPI/src/AMDGPU/gfx90a/finalizeOperands.C
M instructionAPI/src/AMDGPU/gfx940/InstructionDecoder-amdgpu-gfx940.h
M instructionAPI/src/AMDGPU/gfx940/amdgpu_gfx940_decoder_impl.C
R instructionAPI/src/AMDGPU/gfx940/amdgpu_gfx940_opcode_tables.C
M instructionAPI/src/AMDGPU/gfx940/appendOperands.C
M instructionAPI/src/AMDGPU/gfx940/decodeOperands.C
M instructionAPI/src/AMDGPU/gfx940/finalizeOperands.C
Log Message:
-----------
AMDGPU GFX90A GFX940 update based on ISA drop (2024 02-25) (#1770)
* Add new registers based on ISA 2024 02-25
* Remove unused files
* GFX90A implementation update (ISA DROP 2024-0225)
* GFX940 Implementation Update (ISA DROP 2024-0225)
Commit: 2b70b8d4a1e58540cea7c72370af363a1b7259c6
https://github.com/dyninst/dyninst/commit/2b70b8d4a1e58540cea7c72370af363a1b7259c6
Author: bbiiggppiigg <bbiiggppiigg@xxxxxxxxx>
Date: 2024-08-02 (Fri, 02 Aug 2024)
Changed paths:
M dataflowAPI/h/ABI.h
M dataflowAPI/h/liveness.h
M dataflowAPI/src/ABI.C
M dataflowAPI/src/RegisterMap.C
M dataflowAPI/src/RegisterMap.h
M dataflowAPI/src/liveness.C
Log Message:
-----------
Add liveness support for AMDGPU GFX908/90A/940 (#1772)
* Add liveness support for AMDGPU GFX908 90A 940
Commit: 2d7817e088b09c237673e9f219291a65c5de3380
https://github.com/dyninst/dyninst/commit/2d7817e088b09c237673e9f219291a65c5de3380
Author: Kirill Batuzov <batuzovk@xxxxxxxxx>
Date: 2024-08-22 (Thu, 22 Aug 2024)
Changed paths:
M common/h/registers/x86_64_regs.h
Log Message:
-----------
Revert "Fix duplicate base ID in x86_64 GPRs (#1702)" (#1766)
This reverts commit 11baee8e51ca409b158718425d320be439bd2419.
Code for am_reg in InstructionDecoder_x86::decodeOneOperand
relies on internal register IDs being the same as their encoding
in the machine instruction.
Besides that, we need compatibility between x86 and x86_64 register IDs.
Commit: 0ebb29d71f73aa254e2d0bb006c4fd5ff88828ff
https://github.com/dyninst/dyninst/commit/0ebb29d71f73aa254e2d0bb006c4fd5ff88828ff
Author: Tim Haines <thaines.astro@xxxxxxxxx>
Date: 2024-08-30 (Fri, 30 Aug 2024)
Changed paths:
M .github/workflows/consumers.yaml
M .github/workflows/pr-tests.yaml
M .github/workflows/system-libs.yaml
A .github/workflows/unit-tests.yaml
M CHANGELOG.md
M CMakeLists.txt
M COPYRIGHT
M cmake/DyninstLibrarySettings.cmake
M cmake/DyninstOptions.cmake
M cmake/DyninstPlatform.cmake
M cmake/DyninstWarnings.cmake
M cmake/tpls/DyninstBoost.cmake
M common/CMakeLists.txt
M common/doc/manual_frontpage.tex
M common/h/Annotatable.h
M common/h/Buffer.h
M common/h/DynAST.h
M common/h/Edge.h
M common/h/Graph.h
M common/h/MachSyscall.h
M common/h/Node.h
M common/h/SymReader.h
M common/h/VariableLocation.h
M common/h/concurrent.h
A common/h/dyninst_visibility.h
M common/h/entryIDs.h
M common/h/mnemonics/x86_entryIDs.h
M common/h/registers/AMDGPU/amdgpu_gfx90a_regs.h
M common/h/registers/AMDGPU/amdgpu_gfx940_regs.h
M common/h/registers/MachRegister.h
M common/h/registers/aarch64_regs.h
M common/h/registers/ppc32_regs.h
M common/h/registers/ppc64_regs.h
M common/h/registers/reg_def.h
M common/h/registers/x86_64_regs.h
M common/h/registers/x86_regs.h
M common/h/util.h
M common/src/Annotatable.C
M common/src/MappedFile.h
M common/src/Timer.C
M common/src/Timer.h
M common/src/addrtranslate.h
M common/src/arch-aarch64.h
M common/src/arch-power.h
M common/src/arch-x86.C
M common/src/arch-x86.h
M common/src/debug_common.h
M common/src/dthread.h
M common/src/dyn_regs.C
M common/src/freebsdHeaders.h
M common/src/freebsdKludges.C
M common/src/freebsdKludges.h
M common/src/headers.h
M common/src/linuxHeaders.h
M common/src/linuxKludges.C
M common/src/linuxKludges.h
M common/src/lprintf.h
M common/src/parseauxv.h
M common/src/pathName.h
M common/src/registers/MachRegister.C
A common/src/registers/MachRegisterCache.h
M common/src/stats.C
M common/src/stats.h
M common/src/util.C
M dataflowAPI/doc/dataflowAPI.pdf
M dataflowAPI/h/ABI.h
M dataflowAPI/h/Absloc.h
M dataflowAPI/h/AbslocInterface.h
M dataflowAPI/h/SymEval.h
M dataflowAPI/h/bitArray.h
M dataflowAPI/h/liveness.h
M dataflowAPI/h/slicing.h
M dataflowAPI/h/stackanalysis.h
M dataflowAPI/src/ABI.C
M dataflowAPI/src/Absloc.C
M dataflowAPI/src/AbslocInterface.C
M dataflowAPI/src/ExpressionConversionVisitor.C
M dataflowAPI/src/ExpressionConversionVisitor.h
M dataflowAPI/src/RegisterMap.C
M dataflowAPI/src/RegisterMap.h
M dataflowAPI/src/RoseInsnFactory.C
M dataflowAPI/src/RoseInsnFactory.h
M dataflowAPI/src/SymEvalVisitors.h
M dataflowAPI/src/convertOpcodes.C
M dataflowAPI/src/liveness.C
M dataflowAPI/src/slicing.C
M dataflowAPI/src/stackanalysis.C
M docker/build.sh
M dwarf/h/dwarfExprParser.h
M dwarf/h/dwarfFrameParser.h
M dwarf/h/dwarfHandle.h
M dwarf/h/dwarfResult.h
M dwarf/src/dwarf_subrange.h
M dynC_API/CMakeLists.txt
M dynC_API/doc/dynC_API.pdf
M dynC_API/h/dynC.h
M dyninstAPI/CMakeLists.txt
M dyninstAPI/doc/dyninstAPI.docx
M dyninstAPI/doc/dyninstAPI.pdf
M dyninstAPI/h/BPatch.h
M dyninstAPI/h/BPatch_Set.h
M dyninstAPI/h/BPatch_addressSpace.h
M dyninstAPI/h/BPatch_basicBlock.h
M dyninstAPI/h/BPatch_basicBlockLoop.h
M dyninstAPI/h/BPatch_binaryEdit.h
R dyninstAPI/h/BPatch_dll.h
M dyninstAPI/h/BPatch_edge.h
M dyninstAPI/h/BPatch_flowGraph.h
M dyninstAPI/h/BPatch_frame.h
M dyninstAPI/h/BPatch_function.h
M dyninstAPI/h/BPatch_image.h
M dyninstAPI/h/BPatch_instruction.h
M dyninstAPI/h/BPatch_loopTreeNode.h
M dyninstAPI/h/BPatch_memoryAccess_NP.h
M dyninstAPI/h/BPatch_module.h
M dyninstAPI/h/BPatch_object.h
M dyninstAPI/h/BPatch_parRegion.h
M dyninstAPI/h/BPatch_point.h
M dyninstAPI/h/BPatch_process.h
M dyninstAPI/h/BPatch_snippet.h
M dyninstAPI/h/BPatch_sourceBlock.h
M dyninstAPI/h/BPatch_sourceObj.h
M dyninstAPI/h/BPatch_statement.h
M dyninstAPI/h/BPatch_thread.h
M dyninstAPI/h/BPatch_type.h
M dyninstAPI/h/StackMod.h
M dyninstAPI/src/BPatch_addressSpace.C
M dyninstAPI/src/BPatch_basicBlock.C
M dyninstAPI/src/BPatch_basicBlockLoop.C
M dyninstAPI/src/BPatch_function.C
M dyninstAPI/src/BPatch_memoryAccessAdapter.C
M dyninstAPI/src/BPatch_memoryAccessAdapter.h
M dyninstAPI/src/BPatch_module.C
M dyninstAPI/src/BPatch_process.C
M dyninstAPI/src/BPatch_snippet.C
M dyninstAPI/src/BPatch_type.C
M dyninstAPI/src/IAPI_to_AST.C
M dyninstAPI/src/IAPI_to_AST.h
M dyninstAPI/src/Patching.C
M dyninstAPI/src/Patching.h
M dyninstAPI/src/Relocation/CodeBuffer.C
M dyninstAPI/src/Relocation/Springboard.C
R dyninstAPI/src/Relocation/Transformers/Defensive.C
M dyninstAPI/src/Relocation/Transformers/Movement-adhoc.C
M dyninstAPI/src/Relocation/Transformers/Movement-analysis.C
M dyninstAPI/src/Relocation/Transformers/Movement-analysis.h
M dyninstAPI/src/Relocation/Widgets/CFWidget.C
M dyninstAPI/src/StackMod/StackAccess.C
M dyninstAPI/src/StackMod/StackModChecker.C
M dyninstAPI/src/addressSpace.C
M dyninstAPI/src/ast.C
M dyninstAPI/src/ast.h
M dyninstAPI/src/codeRange.C
M dyninstAPI/src/codegen-aarch64.C
M dyninstAPI/src/codegen-aarch64.h
M dyninstAPI/src/codegen-power.C
M dyninstAPI/src/codegen-power.h
M dyninstAPI/src/codegen-x86.C
M dyninstAPI/src/dynProcess.C
M dyninstAPI/src/emit-power.h
M dyninstAPI/src/emit-x86.C
M dyninstAPI/src/freebsd.C
M dyninstAPI/src/function.C
M dyninstAPI/src/function.h
M dyninstAPI/src/image.C
M dyninstAPI/src/inst-aarch64.C
M dyninstAPI/src/inst-power.C
M dyninstAPI/src/inst-x86.C
M dyninstAPI/src/instP.h
M dyninstAPI/src/instPoint.C
M dyninstAPI/src/linux-x86.C
M dyninstAPI/src/mapped_module.C
M dyninstAPI/src/mapped_module.h
M dyninstAPI/src/mapped_object.C
M dyninstAPI/src/mapped_object.h
M dyninstAPI/src/parse-cfg.h
M dyninstAPI/src/pcEventHandler.C
R dyninstAPI/src/syscalltrap.h
M dyninstAPI/src/unix.h
M dyninstAPI/src/util.C
M dyninstAPI/src/util.h
M dyninstAPI_RT/src/RTcommon.c
M dyninstAPI_RT/src/RTfreebsd.c
M elf/h/Elf_X.h
M external/rose/amdgpuInstructionEnum.h
M instructionAPI/CMakeLists.txt
R instructionAPI/capstone/aarch64.py
A instructionAPI/capstone/aarch64/__init__.py
A instructionAPI/capstone/aarch64/mnemonics.py
A instructionAPI/capstone/aarch64/registers.py
R instructionAPI/capstone/capstone.py
R instructionAPI/capstone/import.py
A instructionAPI/capstone/import_mnemonics.py
R instructionAPI/capstone/ppc.py
A instructionAPI/capstone/ppc/__init__.py
A instructionAPI/capstone/ppc/mnemonics.py
A instructionAPI/capstone/ppc/registers.py
R instructionAPI/capstone/x86.py
A instructionAPI/capstone/x86/__init__.py
A instructionAPI/capstone/x86/mnemonics.py
A instructionAPI/capstone/x86/registers.py
M instructionAPI/doc/instructionAPI.pdf
M instructionAPI/h/ArchSpecificFormatters.h
M instructionAPI/h/BinaryFunction.h
M instructionAPI/h/Dereference.h
M instructionAPI/h/Expression.h
M instructionAPI/h/Immediate.h
M instructionAPI/h/Instruction.h
M instructionAPI/h/InstructionAST.h
M instructionAPI/h/InstructionCategories.h
M instructionAPI/h/InstructionDecoder.h
A instructionAPI/h/MultiRegister.h
M instructionAPI/h/Operand.h
M instructionAPI/h/Operation_impl.h
M instructionAPI/h/Register.h
M instructionAPI/h/Result.h
M instructionAPI/h/Ternary.h
M instructionAPI/h/Visitor.h
A instructionAPI/h/interrupts.h
A instructionAPI/h/syscalls.h
R instructionAPI/src/AMDGPU/gfx908/amdgpu_gfx908_insn_entry.h
M instructionAPI/src/AMDGPU/gfx908/appendOperands.C
M instructionAPI/src/AMDGPU/gfx908/decodeOperands.C
M instructionAPI/src/AMDGPU/gfx90a/InstructionDecoder-amdgpu-gfx90a.h
M instructionAPI/src/AMDGPU/gfx90a/amdgpu_gfx90a_decoder_impl.C
R instructionAPI/src/AMDGPU/gfx90a/amdgpu_gfx90a_insn_entry.h
R instructionAPI/src/AMDGPU/gfx90a/amdgpu_gfx90a_opcode_tables.C
M instructionAPI/src/AMDGPU/gfx90a/appendOperands.C
M instructionAPI/src/AMDGPU/gfx90a/decodeOperands.C
M instructionAPI/src/AMDGPU/gfx90a/finalizeOperands.C
M instructionAPI/src/AMDGPU/gfx940/InstructionDecoder-amdgpu-gfx940.h
M instructionAPI/src/AMDGPU/gfx940/amdgpu_gfx940_decoder_impl.C
R instructionAPI/src/AMDGPU/gfx940/amdgpu_gfx940_opcode_tables.C
M instructionAPI/src/AMDGPU/gfx940/appendOperands.C
M instructionAPI/src/AMDGPU/gfx940/decodeOperands.C
M instructionAPI/src/AMDGPU/gfx940/finalizeOperands.C
M instructionAPI/src/ArchSpecificFormatters.C
M instructionAPI/src/Expression.C
M instructionAPI/src/Instruction.C
M instructionAPI/src/InstructionCategories.C
M instructionAPI/src/InstructionDecoder-x86.h
M instructionAPI/src/InstructionDecoder.C
M instructionAPI/src/InstructionDecoderImpl.C
M instructionAPI/src/InstructionDecoderImpl.h
A instructionAPI/src/MultiRegister.C
M instructionAPI/src/Operand.C
M instructionAPI/src/Operation.C
M instructionAPI/src/Register.C
M instructionAPI/src/Ternary.C
A instructionAPI/src/interrupts.C
A instructionAPI/src/syscalls.C
M parseAPI/doc/API/CodeObject.tex
M parseAPI/doc/API/Function.tex
A parseAPI/doc/code_sample.cc
A parseAPI/doc/example.cc
M parseAPI/doc/parseAPI.pdf
M parseAPI/h/CFG.h
M parseAPI/h/CFGFactory.h
M parseAPI/h/CFGModifier.h
M parseAPI/h/CodeObject.h
M parseAPI/h/CodeSource.h
M parseAPI/h/GraphAdapter.h
M parseAPI/h/InstructionSource.h
M parseAPI/h/ParseContainers.h
M parseAPI/h/SymLiteCodeSource.h
M parseAPI/src/CodeObject.C
M parseAPI/src/CodeSource.C
M parseAPI/src/IA_IAPI.C
M parseAPI/src/IA_IAPI.h
M parseAPI/src/IA_aarch64.C
M parseAPI/src/IA_power.C
M parseAPI/src/IA_x86.C
M parseAPI/src/IndirectAnalyzer.C
M parseAPI/src/LoopAnalyzer.C
M parseAPI/src/Parser.C
M parseAPI/src/Parser.h
M parseAPI/src/SymLiteCodeSource.C
M parseAPI/src/debug_parse.h
M parseAPI/src/dominator.C
M parseThat/CMakeLists.txt
M patchAPI/doc/patchAPI.pdf
M patchAPI/doc/section/4_api_public.tex
M patchAPI/h/AddrSpace.h
M patchAPI/h/CFGMaker.h
M patchAPI/h/Command.h
M patchAPI/h/Instrumenter.h
M patchAPI/h/PatchCFG.h
M patchAPI/h/PatchCallback.h
M patchAPI/h/PatchMgr.h
M patchAPI/h/PatchModifier.h
M patchAPI/h/PatchObject.h
M patchAPI/h/Point.h
M patchAPI/h/Snippet.h
M patchAPI/src/PatchBlock.C
M proccontrol/CMakeLists.txt
M proccontrol/doc/proccontrol.docx
M proccontrol/doc/proccontrol.pdf
M proccontrol/h/Decoder.h
M proccontrol/h/Event.h
M proccontrol/h/EventType.h
M proccontrol/h/Generator.h
M proccontrol/h/Handler.h
M proccontrol/h/Mailbox.h
M proccontrol/h/PCErrors.h
M proccontrol/h/PCProcess.h
M proccontrol/h/PlatFeatures.h
M proccontrol/h/ProcessSet.h
M proccontrol/src/freebsd.C
M proccontrol/src/int_thread_db.C
M proccontrol/src/linux.C
R proccontrol/src/notify_pipe.h
M proccontrol/src/pcerrors.C
M proccontrol/src/proc_service_wrapper.h
M proccontrol/src/windows_handler.h
M stackwalk/CMakeLists.txt
M stackwalk/doc/stackwalk.pdf
M stackwalk/h/frame.h
M stackwalk/h/framestepper.h
M stackwalk/h/procstate.h
M stackwalk/h/swk_errors.h
M stackwalk/h/symlookup.h
M stackwalk/h/walker.h
M stackwalk/src/callchecker.C
M stackwalk/src/framestepper_pimple.h
M symlite/h/SymLite-elf.h
M symtabAPI/doc/API/Symtab/Symbol.tex
M symtabAPI/doc/API/Types/Type.tex
M symtabAPI/doc/symtabAPI.pdf
M symtabAPI/h/AddrLookup.h
M symtabAPI/h/Aggregate.h
M symtabAPI/h/Archive.h
M symtabAPI/h/Collections.h
M symtabAPI/h/ExceptionBlock.h
M symtabAPI/h/Function.h
M symtabAPI/h/LineInformation.h
M symtabAPI/h/Module.h
M symtabAPI/h/RangeLookup.h
M symtabAPI/h/Region.h
M symtabAPI/h/Statement.h
M symtabAPI/h/Symbol.h
M symtabAPI/h/Symtab.h
M symtabAPI/h/SymtabReader.h
M symtabAPI/h/Type.h
M symtabAPI/h/Variable.h
M symtabAPI/h/relocationEntry.h
M symtabAPI/h/symutil.h
M symtabAPI/src/Aggregate.C
M symtabAPI/src/ExceptionBlock.C
M symtabAPI/src/Function.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/Symbol.C
M symtabAPI/src/Symtab-edit.C
M symtabAPI/src/Symtab-lookup.C
M symtabAPI/src/Symtab.C
M symtabAPI/src/Type.C
M symtabAPI/src/annotations.C
M symtabAPI/src/annotations.h
M symtabAPI/src/dwarfWalker.C
M symtabAPI/src/emitElf.C
M symtabAPI/src/emitElfStatic-aarch64.C
M symtabAPI/src/emitElfStatic-ppc64.C
M symtabAPI/src/parseDwarf.C
M symtabAPI/src/relocationEntry-elf-aarch64.C
M symtabAPI/src/relocationEntry-elf-ppc64.C
M symtabAPI/src/relocationEntry-elf-x86.C
M symtabAPI/src/relocationEntry.C
Log Message:
-----------
Merge branch 'master' into thaines/capstone_integration
Compare: https://github.com/dyninst/dyninst/compare/89b9ec010335...0ebb29d71f73
To unsubscribe from these emails, change your notification settings at https://github.com/dyninst/dyninst/settings/notifications
|