You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
* tweaks symbolization and function start identification facilities
We remove the dependency on the Bap.Std.Image and instead use the
image specification directly. These gives us strictly more symbols,
as image imposes extra constraints, which my hide functions starts
and their names.
More information is not always better, as we now have more chances to
get the conflicting knowledge. To ensure that we're able to preserve
as much information as possible without compromising correctness we
leverage our agent-based conflict resolution system. We push all names
in which we're not completely sure into possible aliases and use a new
agent, `bap:gossiper` to propse names from that set.
To make everything work fine, we pushed down the reliability of the
objdump symbolizer (as we want bap to have the final word).
The improved symbolization facility uncovered a small bug in the way
how the x86 lock intrinsic was implemented, it was named just
`"lock"`, which obviously may conflict with a normal function with the
same name (which was uncovered by our testsuite). This commit adds
the `x86` prefix to the intrinsic, e.g., `x86:lock` as well as
properly delimits the locked code with the corresponding `x86:unlock`
intrinsic.
* adds 32-bit variants of armv8 and armv9, specifies alignments
* fixes `blx pc` semantics
It should be `call arm:unpredictable` instead of an interworking
branch (which essentially breaks the disassembler)
* assumes that all non word-aligned addresses have the T32 encoding
* fixes the test case with a non-word-aligned base
0 commit comments