summaryrefslogtreecommitdiff
path: root/highlevelilinstruction.cpp
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-16Add more reserve callsScott Lagler
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-07-14Reserve vector capacity when populating vectors in conversion operatorsMark Rowe
2025-06-25Remove implicit conversions from Confidence to underlying type, these can ↵Rusty Wagner
cause bugs and also issues with C++20
2025-03-282025 for other formats...Jordan Wiens
2025-02-14uidf refactorRyan Snyder
2024-10-23Linear view function regions collapsePeter LaFosse
Update collapse code to support PseudoC
2024-06-19Fix double traversal of HLIL switch case contents when not in AST formRusty Wagner
2024-06-10Add fmt formatters for IL instructionsGlenn 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-06-22Add unreachable instruction for switch statements with an unreachable defaultRusty Wagner
2022-06-14Fix HLIL_ASSIGN_UNPACK_MEM_SSA mappingGlenn Smith
2022-06-14Add Dump() to *LILInstructionGlenn Smith
2022-01-28Format All FilesKyleMiles
2020-11-10Fix warningsRusty Wagner
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-20Fix typo in rotate left with carryRusty 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-17Add types to HLIL expressionsRusty 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