summaryrefslogtreecommitdiff
path: root/highlevelilinstruction.h
AgeCommit message (Collapse)Author
2026-06-05Add abs, min, and max instructionsMark Rowe
2026-06-04Add bswap, popcnt, clz, ctz, cls, and rbit instructionsMark Rowe
2026-05-22Refactor calling conventions to support correct representation of structuresRusty Wagner
2026-05-22Extend MLIL call instruction outputs to be expressionsRusty Wagner
2026-03-19Fix operand list iterators being validated when appending new instructionsMark Rowe
The iterators now store an offset into the operand storage, rather than a pointer. Deferencing the iterator retrieves the value at that offset from the IL function. This issue existed prior to the operand list storage refactor, but became easier to hit after that change. The separate operand list vector is smaller and thus more likely to reallocate when a new instruction is appended.
2026-03-16Represent operand lists and label maps more efficiently within IL instructionsMark Rowe
Rather than using chains of `UNDEF` instructions, the contents of these lists are in a vector alongside the instructions. The instruction itself stores the entry count and offset into this second vector at which the associated items can be found. This improves analysis performance by around 2% and decreases memory usage by around 5%.
2026-01-01update copyrights for 2026Jordan Wiens
2025-12-15Use bn::base::function_ref instead of std::function for parameters that are ↵Mark Rowe
not stored This avoids the overhead of constructing a `std::function`, which may require a heap allocation, when calling functions that immediately invokes a function object.
2025-12-11Use constexpr arrays for metadata about IL instruction operandsMark Rowe
This avoids constructing two unordered maps and numerous vectors for each IL level at library load time for each plug-in that uses the C++ API. Additionally, the arrays allow for more efficient look-ups.
2025-12-08Allow overriding the IL source location that is used by *ILInstruction::CopyToMark Rowe
2025-10-21Add derived strings and string recognizer APIRusty Wagner
2025-08-01Make the IL iterators real iterators for std::find_ifGlenn Smith
2025-03-282025 for other formats...Jordan Wiens
2025-02-14uidf refactorRyan Snyder
2024-12-16Update dependencies and fix compilation errors/warnings for g++14 and c++20Josh Ferrell
2024-10-23Linear view function regions collapsePeter LaFosse
Update collapse code to support PseudoC
2024-06-10Add fmt formatters for IL instructionsGlenn Smith
2023-08-25Make the IL exceptions include stack tracesGlenn Smith
2023-02-24Refactor VisitExprs to give separate API to gather subexpressionsRusty Wagner
2023-02-04Initial support for constant data expressions.Brian Potchik
2023-01-03Add instruction attributes to IL instructionsRusty Wagner
2022-11-20Initial constant expression builtin outliner.Brian Potchik
2022-10-17[C++ docs] Several fixes, improvements, additions, and general cleanupkat
- Sort documentation into groups (aka. modules) - Add DataRenderer, BinaryView, InstructionTextToken, Others docs - Fixes stylesheet for documentation website - New 'Deprecated' section listing deprecated items - Re-add 'Files' listing - Add a 'Main page' and restructure the navbar
2022-06-22Add unreachable instruction for switch statements with an unreachable defaultRusty Wagner
2022-06-14Add Dump() to *LILInstructionGlenn Smith
2022-01-28Format All FilesKyleMiles
2020-06-25Add C++ APIs to get SSA and non-SSA forms of HLIL instructionsRusty Wagner
2020-05-11Modifications for supporting jemalloc in the coreRusty Wagner
2020-04-27Add names for goto labelsRusty Wagner
2020-04-17Adding SSA support for HLILRusty Wagner
2020-04-17Add HLIL instructions for variable declarationsRusty Wagner
2020-04-17Add member index for structure field HLIL instructionsRusty Wagner
2020-04-17Expand support for HLIL switch/case and data flow accessRusty Wagner
2020-04-17Add mem SSA to HLILRusty Wagner
2020-04-17Add continue HLIL instructionRusty Wagner
2020-04-17Early HLIL testingRusty Wagner