summaryrefslogtreecommitdiff
path: root/mediumlevelilinstruction.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-22Move implementations of key functions on Variable and SSAVariable to headersMark Rowe
These types are heavily used as map keys so allowing the compiler to inline these functions makes map lookups cheaper.
2025-08-01Make the IL iterators real iterators for std::find_ifGlenn Smith
2025-03-28missed the older dates!Jordan Wiens
2025-02-14uidf refactorRyan Snyder
2024-12-16Update dependencies and fix compilation errors/warnings for g++14 and c++20Josh Ferrell
2024-06-10Add fmt formatters for IL instructionsGlenn Smith
2024-03-02Add support for memory intrinsics.Brian Potchik
2024-01-08update copyright yearJordan Wiens
2023-12-06Add LLIL/MLIL instructions to describe integer vs. floating point argument usageRusty Wagner
2023-08-25Make the IL exceptions include stack tracesGlenn Smith
2023-02-04Initial support for constant data expressions.Brian Potchik
2023-01-05Update copyright to 2023Josh F
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-14Add Dump() to *LILInstructionGlenn Smith
2022-01-28Format All FilesKyleMiles
2022-01-03update copyright yearsJordan Wiens
2021-01-18updating copyright yearJordan Wiens
2020-10-12Fix stale references when modifying in placeRusty Wagner
2020-09-27Add High Level IL Mappings.Brian Potchik
2020-06-16Fix GCC9 warningsRusty Wagner
2020-05-11Modifications for supporting jemalloc in the coreRusty Wagner
2020-05-11Use STL provided uint64_t hash function to speed up Windows buildRusty Wagner
2020-04-17Expand support for HLIL switch/case and data flow accessRusty Wagner
2020-01-01update copyright year to 2020Jordan Wiens
2019-12-19LLIL_JUMP_TO/MLIL_JUMP_TO now contain mappings from address to destination ↵Rusty Wagner
instruction
2019-01-17update company name and copyright dateJordan Wiens
2018-09-12Merging with devPeter LaFosse
2018-08-21Add return hint MLIL instruction (used in intermediate stages, not emitted ↵Rusty Wagner
in final forms)
2018-08-16Adding EXTERN_PTR typePeter LaFosse
2018-04-25Adding tailcall analysis to the core.Brian Potchik
2018-02-13Add missing instructionRusty Wagner
2018-02-09Add instructions for tracking freed register stack slotsRusty Wagner
2018-02-02Add rounding instructionsRusty Wagner
2018-01-31Adding CPU intrinsics supportRusty Wagner
2017-12-26Merge branch 'dev' into fpuRusty Wagner
2017-12-12Modify Hash Functions.Brian Potchik
2017-10-06Adding support for register stacks in IL (for x87)Rusty Wagner
2017-10-03Add basic floating point instructionsRusty Wagner