| Age | Commit message (Collapse) | Author |
|
|
|
To keep backwards compatibility for commonly referenced code we re-export them within the architecture module.
Also does some light refactoring of some newly added APIs to keep them more consistent with other parts of the codebase.
|
|
This change consists of two parts:
1. Updating the system register enumeration and names based on the
latest data from ARM.
2. Removing register names that conflict with the official names from
ARM.
The conflicting register names came a data set of Apple-specific system
register names. These would ideally not be baked into the AArch64
disassembler at all, but would be added by Binary Ninja's Apple
platform. The exact mechanism for doing that is still TBD.
Fixes https://github.com/Vector35/binaryninja-api/issues/7664.
|
|
We already do this for a number of plugins / crates, this commit goes over the rest to make sure that they all do this.
We keep cleaning binaryninjacore-sys as we want to generate the core bindings immediately on changes to binaryninjacore.h
|
|
These are introduced after changing to Rust 1.91.1
|
|
|
|
[ARM64] remove zero extend from ubfx, ubfiz
[ARM64] only zero extend fmov when needed
arm64: resolve ambiguity
Resolves #7307
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
`abs`, `smax`, `smin`, `umax`, and `umin` are lifted to instruction
sequences involving comparisons, while `cnt` and `ctz` are lifted to
intrinsics.
|
|
|
|
|
|
Alongside this I also added support for decoding:
* LDR / STR (table)
* PMULLB / PMULLT
* ABS / CNT / CTZ
* SMIN / SMAX / UMIN / UMAX
* RPRFM
* PSEL
Note that while these instructions will now be disassembled, they are
not yet lifted to LLIL.
Additionally, I fixed a number of errors in the decoding of some less
commonly occurring instructions.
|
|
|
|
|
|
|
|
|
|
|
|
C++ plug-ins now consistently use the `plugin_rpath` or
`ui_plugin_rpath` macros to ensure they have `SKIP_BUILD_RPATH` set when
building on Mac (i.e., no `LC_RPATH` is added).
Rust plug-ins have their build.rs updated to only specify `-Wl,-rpath`
when building for Linux. It is not needed on macOS. On macOS we instead
explicitly specify an `@rpath`-relative install name. This doesn't
change any behavior, but avoids leaving an absolute path as the
library's install name and is consistent with CMake's behavior for C++
plug-ins.
|
|
thumb2 disassembler
|
|
|
|
floating-point/integer cases
|
|
[thumb2] removed redundant format suffixes from disassembly of VFP instruction
[thumb2] Corrected lifting of VCVT instruction
|
|
|
|
instead of deprecated Grako
|
|
PC when calculating address #6947
Updated thumb2 pcode parser used by disassembler generator to use Tatsu instead of deprecated Grako
|
|
ARM64 lifting replaces references to the zero register with constant
zeroes. The zero register is not intended to appear in any lifted IL.
In the case of the `mrs` instruction, the destination being a zero
register means the system register is accessed only for a side-effect,
and is not stored anywhere. The lifting is updated to specify no output
registers for the intrinsic in that case.
|
|
message
|
|
This ensures that CMake detects when files that match the glob are added
or removed.
|
|
|
|
Clang was taking around 30 seconds to compile assembler.cpp on my
machine, with most of its time spent in code generation for the global
initializer for `lookup`.
Changing the map key from `std::string` to `std::string_view` drops
compile time to under a second. This is because the compiler no longer
has to code gen the allocation, initialization, and moves of 2,100
`std::string`s. `std::string_view` is effectively free to initialize in
comparison.
While I was here I made the map `static const`. It's not required for
the build time improvement, but it is more correct and helped me check
that no-one is mutating the map.
|
|
|
|
|
|
|
|
|
|
|
|
r5900 (PS2 EE) support
|
|
|
|
coverage of instruction table in assembler.cpp
|
|
lifting XED_ICLASS_SYSRET* instructions as returns to RCX
|
|
* Remove dependency on capstone for PowerPC disassembly #6292
* Add support for PowerPC VLE instruction set #6740
* Add support for paired-single instructions #6821
* Various post-merge fixes and tweaks to disassembly and lifting
* Removal of dependence on capstone for assembler's scoring mechanism (capstone currently disabled, but not removed from codebase yet)
|
|
|
|
Also update minimum CMake version.
|