Commit Graph
4 Commits
Author SHA1 Message Date
naciandNaC-L 5ccd498998 Implement PUNPCKLQDQ and re-enable calc_cout (#92)
- Add lift_punpcklqdq handler in Semantics_Misc.ipp (XMM dest, low-quadword
  interleave from dest+src into a 128-bit result; rejects MMX/non-XMM forms
  via the standard not_implemented bailout)
- Wire OPCODE(punpcklqdq, PUNPCKLQDQ) in x86_64_opcodes.x and add a missing
  trailing newline
- Add manual punpcklqdq case to TestInstructions.cpp (rdrand-style XMM seed)
  and matching seeds in build_full_handler_seed.py
- Regenerate oracle_seed_full_handlers{,_enriched}.json, oracle_seed_vectors.json,
  and oracle_vectors_full_handlers.json with two punpcklqdq vectors
  (basic interleave, low-source-zero edge case)
- Drop ci_skip on calc_cout in instruction_microtests.json now that the STL
  PUNPCKLQDQ path lifts cleanly (4/4 semantic cases pass locally)
- Keep calc_fib and calc_sum_array ci_skipped: they still trip a separate
  lifter dyn_cast assertion that is not related to PUNPCKLQDQ; tracked as
  follow-up
- Update docs/SCOPE.md handler counts (115/119 covered, 4 intentional skips)
  and corpus counts (31 active samples / 175 cases)

Co-authored-by: NaC-L <nac-l@users.noreply.github.com>
2026-04-07 12:58:44 +03:00
yusufcanislek 25c2318ebe Fix fourth-pass review findings for memory and oracle correctness 2026-03-07 20:54:27 +03:00
yusufcanislek 8e2ada491f Add SSE2 integer XMM lifting and oracle coverage 2026-03-07 16:14:34 +03:00
yusufcanislek 1ed00cc67e Refactor: reorganize lifter/ into subdirectories with PascalCase naming
Directory structure:
  lifter/core/       - LifterClass, pipeline, drivers, application, utils
  lifter/semantics/  - Semantics*.ipp, OperandUtils.ipp, opcodes
  lifter/disasm/     - Disassembler backends, mnemonic/register mappings
  lifter/memory/     - GEPTracker, MemoryPolicy, FileReader
  lifter/analysis/   - PathSolver, CustomPasses
  lifter/test/       - TestInstructions, Tester, test_vectors/

Naming convention standardized to PascalCase:
  fileReader.hpp     -> FileReader.hpp
  lifterClass.hpp    -> LifterClass.hpp
  icedDisassembler*  -> IcedDisassembler*
  utils.h/cpp        -> Utils.h/cpp
  includes.h         -> Includes.h
  pp_macros.hpp      -> PPMacros.hpp
  test_instructions* -> TestInstructions*
  tester.hpp         -> Tester.hpp

Include resolution uses cmake include-directories so no
path prefixes needed in #include directives. All script
paths updated for new test_vectors and opcodes locations.
2026-03-06 18:07:26 +03:00