[DynInst_API:] [dyninst/dyninst] 787110: Add RISC-V Instruction API


Date: Fri, 07 Nov 2025 13:25:15 -0800
From: wxrdnx <noreply@xxxxxxxxxx>
Subject: [DynInst_API:] [dyninst/dyninst] 787110: Add RISC-V Instruction API
  Branch: refs/heads/angushe/instruction-api-riscv
  Home:   https://github.com/dyninst/dyninst
  Commit: 7871107bd9de24f5e509faa24b1adcc78610371d
      https://github.com/dyninst/dyninst/commit/7871107bd9de24f5e509faa24b1adcc78610371d
  Author: wxrdnx <wxrdnx@xxxxxxxxxxxxxx>
  Date:   2025-11-07 (Fri, 07 Nov 2025)

  Changed paths:
    M instructionAPI/CMakeLists.txt
    M instructionAPI/h/ArchSpecificFormatters.h
    M instructionAPI/h/Instruction.h
    M instructionAPI/h/Operation_impl.h
    M instructionAPI/src/ArchSpecificFormatters.C
    M instructionAPI/src/Instruction.C
    M instructionAPI/src/InstructionCategories.C
    A instructionAPI/src/InstructionDecoder-Capstone.C
    A instructionAPI/src/InstructionDecoder-Capstone.h
    A instructionAPI/src/InstructionDecoder-riscv64.C
    M instructionAPI/src/InstructionDecoderImpl.C
    M instructionAPI/src/Operation.C

  Log Message:
  -----------
  Add RISC-V Instruction API


  Commit: 4c39b20d4c965494ed83536356b1201680d594b7
      https://github.com/dyninst/dyninst/commit/4c39b20d4c965494ed83536356b1201680d594b7
  Author: Tim Haines <thaines.astro@xxxxxxxxx>
  Date:   2025-11-07 (Fri, 07 Nov 2025)

  Changed paths:
    M instructionAPI/src/InstructionDecoderImpl.C

  Log Message:
  -----------
  Clean up InstructinAPI::InstructionDecoderImpl (#2040)

* Clean up comments

* Remove dead code

* Remove 'MultiRegister' include

* Remove unused Operation_impl include

* Remove redundant 'protected' specifier

* Remove using directive


  Commit: fc998af3d6f896d32ba875e83816ae5bf1ff16a3
      https://github.com/dyninst/dyninst/commit/fc998af3d6f896d32ba875e83816ae5bf1ff16a3
  Author: wxrdnx <wxrdnx@xxxxxxxxxxxxxx>
  Date:   2025-11-07 (Fri, 07 Nov 2025)

  Changed paths:
    M instructionAPI/src/InstructionDecoderImpl.C

  Log Message:
  -----------
  Add RISC-V Instruction API


  Commit: ceaba3d3b24ad0247859d05e2ec81921495029ce
      https://github.com/dyninst/dyninst/commit/ceaba3d3b24ad0247859d05e2ec81921495029ce
  Author: wxrdnx <wxrdnx@xxxxxxxxxxxxxx>
  Date:   2025-11-07 (Fri, 07 Nov 2025)

  Changed paths:
    M instructionAPI/CMakeLists.txt
    M instructionAPI/h/Instruction.h
    M instructionAPI/src/Instruction.C
    M instructionAPI/src/InstructionDecoderImpl.C
    A instructionAPI/src/riscv/categories.h
    A instructionAPI/src/riscv/decoder.C
    A instructionAPI/src/riscv/decoder.h
    A instructionAPI/src/riscv/opcode_xlat.C
    A instructionAPI/src/riscv/opcode_xlat.h
    A instructionAPI/src/riscv/register_xlat.C
    A instructionAPI/src/riscv/register_xlat.h
    A instructionAPI/src/riscv/type_conversion.h

  Log Message:
  -----------
  Update Capstone


  Commit: 6a137850ba255cc7d1e39f3d5f81e2878a17e87f
      https://github.com/dyninst/dyninst/commit/6a137850ba255cc7d1e39f3d5f81e2878a17e87f
  Author: wxrdnx <wxrdnx@xxxxxxxxxxxxxx>
  Date:   2025-11-07 (Fri, 07 Nov 2025)

  Changed paths:
    A common/src/arch-riscv64.h
    M instructionAPI/CMakeLists.txt
    M instructionAPI/src/Instruction.C
    M instructionAPI/src/riscv/categories.h
    M instructionAPI/src/riscv/decoder.C
    M instructionAPI/src/riscv/decoder.h

  Log Message:
  -----------
  Update pseudo instructions (wip)


  Commit: 2db0fa652b35439fe009f53f39a197d91f7dbea9
      https://github.com/dyninst/dyninst/commit/2db0fa652b35439fe009f53f39a197d91f7dbea9
  Author: wxrdnx <wxrdnx@xxxxxxxxxxxxxx>
  Date:   2025-11-07 (Fri, 07 Nov 2025)

  Changed paths:
    M common/src/arch-riscv64.h
    M instructionAPI/CMakeLists.txt
    M instructionAPI/src/riscv/decoder.C
    M instructionAPI/src/riscv/decoder.h
    A instructionAPI/src/riscv/mem_xlat.C
    A instructionAPI/src/riscv/mem_xlat.h

  Log Message:
  -----------
  Finish Capstone update


  Commit: 89e9bbfe28976921bb8d485b8531afc4c33418e1
      https://github.com/dyninst/dyninst/commit/89e9bbfe28976921bb8d485b8531afc4c33418e1
  Author: wxrdnx <wxrdnx@xxxxxxxxxxxxxx>
  Date:   2025-11-07 (Fri, 07 Nov 2025)

  Changed paths:
    M tests/integration/InstructionAPI/decoder/CMakeLists.txt
    A tests/integration/InstructionAPI/decoder/riscv/CMakeLists.txt
    A tests/integration/InstructionAPI/decoder/riscv/rv64i.cpp

  Log Message:
  -----------
  Add RV64i integration test


  Commit: 249970196f1dc7f9b3f9ad367668c3fd0afa6428
      https://github.com/dyninst/dyninst/commit/249970196f1dc7f9b3f9ad367668c3fd0afa6428
  Author: wxrdnx <wxrdnx@xxxxxxxxxxxxxx>
  Date:   2025-11-07 (Fri, 07 Nov 2025)

  Changed paths:
    M instructionAPI/h/Instruction.h
    M instructionAPI/src/Instruction.C
    M instructionAPI/src/riscv/categories.h
    M instructionAPI/src/riscv/decoder.C
    M instructionAPI/src/riscv/decoder.h

  Log Message:
  -----------
  Run cmake format


  Commit: 668ea19c4601b446b19349525fa8a6b57daa98ea
      https://github.com/dyninst/dyninst/commit/668ea19c4601b446b19349525fa8a6b57daa98ea
  Author: wxrdnx <wxrdnx@xxxxxxxxxxxxxx>
  Date:   2025-11-07 (Fri, 07 Nov 2025)

  Changed paths:
    M tests/integration/InstructionAPI/decoder/riscv/CMakeLists.txt
    A tests/integration/InstructionAPI/decoder/riscv/branches.cpp
    A tests/integration/InstructionAPI/decoder/riscv/pseudo.cpp
    A tests/integration/InstructionAPI/decoder/riscv/rv64a.cpp
    A tests/integration/InstructionAPI/decoder/riscv/rv64c.cpp
    A tests/integration/InstructionAPI/decoder/riscv/rv64d.cpp
    A tests/integration/InstructionAPI/decoder/riscv/rv64f.cpp
    M tests/integration/InstructionAPI/decoder/riscv/rv64i.cpp
    A tests/integration/InstructionAPI/decoder/riscv/rv64m.cpp

  Log Message:
  -----------
  Add integration tests for RV64GC


  Commit: ed2e76d31708348ad05342f5bc14eef31217746e
      https://github.com/dyninst/dyninst/commit/ed2e76d31708348ad05342f5bc14eef31217746e
  Author: wxrdnx <wxrdnx@xxxxxxxxxxxxxx>
  Date:   2025-11-07 (Fri, 07 Nov 2025)

  Changed paths:
    M instructionAPI/src/ArchSpecificFormatters.C

  Log Message:
  -----------
  Change RISC-V formatter


  Commit: ad93d4096171427020751eae999b1c119023fb31
      https://github.com/dyninst/dyninst/commit/ad93d4096171427020751eae999b1c119023fb31
  Author: wxrdnx <wxrdnx@xxxxxxxxxxxxxx>
  Date:   2025-11-07 (Fri, 07 Nov 2025)

  Changed paths:
    M tests/integration/InstructionAPI/decoder/riscv/rv64m.cpp

  Log Message:
  -----------
  Add mulw, divw, and remw to unit test


  Commit: 7ad6fdac3adfda13cf2d3e2bb9c1e75cc59a4148
      https://github.com/dyninst/dyninst/commit/7ad6fdac3adfda13cf2d3e2bb9c1e75cc59a4148
  Author: wxrdnx <wxrdnx@xxxxxxxxxxxxxx>
  Date:   2025-11-07 (Fri, 07 Nov 2025)

  Changed paths:
    M instructionAPI/h/Instruction.h
    M instructionAPI/src/Instruction.C
    M instructionAPI/src/InstructionCategories.C
    R instructionAPI/src/InstructionDecoder-Capstone.C
    R instructionAPI/src/InstructionDecoder-Capstone.h
    R instructionAPI/src/InstructionDecoder-riscv64.C
    M instructionAPI/src/InstructionDecoderImpl.C

  Log Message:
  -----------
  Remove unnecessary code and file


  Commit: 6b1688c123fd195ce161de8dbf577223ae440eb5
      https://github.com/dyninst/dyninst/commit/6b1688c123fd195ce161de8dbf577223ae440eb5
  Author: wxrdnx <wxrdnx@xxxxxxxxxxxxxx>
  Date:   2025-11-07 (Fri, 07 Nov 2025)

  Changed paths:
    M instructionAPI/h/Operation_impl.h
    M instructionAPI/src/Instruction.C
    M instructionAPI/src/Operation.C

  Log Message:
  -----------
  Change NonABIRiscv to NonABI


  Commit: fde68c4afa412fd3551ba358793348ae03ff4c8c
      https://github.com/dyninst/dyninst/commit/fde68c4afa412fd3551ba358793348ae03ff4c8c
  Author: wxrdnx <wxrdnx@xxxxxxxxxxxxxx>
  Date:   2025-11-07 (Fri, 07 Nov 2025)

  Changed paths:
    M tests/integration/InstructionAPI/decoder/riscv/CMakeLists.txt
    A tests/integration/InstructionAPI/decoder/riscv/a_ext.cpp
    M tests/integration/InstructionAPI/decoder/riscv/branches.cpp
    A tests/integration/InstructionAPI/decoder/riscv/c_ext.cpp
    A tests/integration/InstructionAPI/decoder/riscv/d_ext.cpp
    A tests/integration/InstructionAPI/decoder/riscv/f_ext.cpp
    A tests/integration/InstructionAPI/decoder/riscv/m_ext.cpp
    M tests/integration/InstructionAPI/decoder/riscv/pseudo.cpp
    R tests/integration/InstructionAPI/decoder/riscv/rv64a.cpp
    R tests/integration/InstructionAPI/decoder/riscv/rv64c.cpp
    R tests/integration/InstructionAPI/decoder/riscv/rv64d.cpp
    R tests/integration/InstructionAPI/decoder/riscv/rv64f.cpp
    R tests/integration/InstructionAPI/decoder/riscv/rv64i.cpp
    A tests/integration/InstructionAPI/decoder/riscv/rv64i_base.cpp
    R tests/integration/InstructionAPI/decoder/riscv/rv64m.cpp

  Log Message:
  -----------
  Rename unit test files and add description


  Commit: 5c4248f9c554aaa19fde46ab08cd70c9737a771e
      https://github.com/dyninst/dyninst/commit/5c4248f9c554aaa19fde46ab08cd70c9737a771e
  Author: wxrdnx <wxrdnx@xxxxxxxxxxxxxx>
  Date:   2025-11-07 (Fri, 07 Nov 2025)

  Changed paths:
    M instructionAPI/h/Instruction.h
    M instructionAPI/src/riscv/decoder.C
    M instructionAPI/src/riscv/decoder.h
    M instructionAPI/src/riscv/register_xlat.C

  Log Message:
  -----------
  Remove setMode


  Commit: bafc9bf533e2467f42b710229ce06abb1811225f
      https://github.com/dyninst/dyninst/commit/bafc9bf533e2467f42b710229ce06abb1811225f
  Author: wxrdnx <wxrdnx@xxxxxxxxxxxxxx>
  Date:   2025-11-07 (Fri, 07 Nov 2025)

  Changed paths:
    M tests/integration/InstructionAPI/decoder/riscv/pseudo.cpp

  Log Message:
  -----------
  Remove redundant white space


  Commit: e3521d08c08bec167bddc9572261b1fe466cc19a
      https://github.com/dyninst/dyninst/commit/e3521d08c08bec167bddc9572261b1fe466cc19a
  Author: wxrdnx <wxrdnx@xxxxxxxxxxxxxx>
  Date:   2025-11-07 (Fri, 07 Nov 2025)

  Changed paths:
    M cmake/tpls/DyninstCapstone.cmake

  Log Message:
  -----------
  Update capstone cmake file


  Commit: 2422fd4ee42419ecfb2c8fdcdbd38fc527eabbc3
      https://github.com/dyninst/dyninst/commit/2422fd4ee42419ecfb2c8fdcdbd38fc527eabbc3
  Author: wxrdnx <wxrdnx@xxxxxxxxxxxxxx>
  Date:   2025-11-07 (Fri, 07 Nov 2025)

  Changed paths:
    M cmake/tpls/DyninstCapstone.cmake

  Log Message:
  -----------
  Update capstone version


  Commit: 1ab1eecf123c0b54a6ef18ca5cf27c6898c97eba
      https://github.com/dyninst/dyninst/commit/1ab1eecf123c0b54a6ef18ca5cf27c6898c97eba
  Author: wxrdnx <wxrdnx@xxxxxxxxxxxxxx>
  Date:   2025-11-07 (Fri, 07 Nov 2025)

  Changed paths:
    M tests/integration/InstructionAPI/decoder/riscv/CMakeLists.txt

  Log Message:
  -----------
  Run cmake-format


  Commit: b6bb8dc85931645eb89a6f733507c96fcc64a9f3
      https://github.com/dyninst/dyninst/commit/b6bb8dc85931645eb89a6f733507c96fcc64a9f3
  Author: wxrdnx <wxrdnx@xxxxxxxxxxxxxx>
  Date:   2025-11-07 (Fri, 07 Nov 2025)

  Changed paths:
    M .github/workflows/build-opts.yaml
    M CMakeLists.txt
    M cmake/DyninstOptions.cmake
    M docker/build.sh
    M instructionAPI/CMakeLists.txt
    M instructionAPI/src/InstructionDecoderImpl.C

  Log Message:
  -----------
  Add Capstone conditional compiling


  Commit: e5dc431b3e4fe7fc07ab92f0407b25e8d1d64f34
      https://github.com/dyninst/dyninst/commit/e5dc431b3e4fe7fc07ab92f0407b25e8d1d64f34
  Author: wxrdnx <wxrdnx@xxxxxxxxxxxxxx>
  Date:   2025-11-07 (Fri, 07 Nov 2025)

  Changed paths:
    M instructionAPI/src/riscv/decoder.C

  Log Message:
  -----------
  Remove comments from x64


  Commit: 914407ee58288a28e9a001f5d9373691692edefc
      https://github.com/dyninst/dyninst/commit/914407ee58288a28e9a001f5d9373691692edefc
  Author: wxrdnx <wxrdnx@xxxxxxxxxxxxxx>
  Date:   2025-11-07 (Fri, 07 Nov 2025)

  Changed paths:
    M CMakeLists.txt
    M cmake/DyninstLibrary.cmake
    M cmake/DyninstOptions.cmake
    M cmake/DyninstPlatform.cmake
    M instructionAPI/CMakeLists.txt
    M instructionAPI/src/InstructionDecoderImpl.C
    A instructionAPI/src/decoder/riscv/categories.h
    A instructionAPI/src/decoder/riscv/decoder.C
    A instructionAPI/src/decoder/riscv/decoder.h
    A instructionAPI/src/decoder/riscv/mem_xlat.C
    A instructionAPI/src/decoder/riscv/mem_xlat.h
    A instructionAPI/src/decoder/riscv/opcode_xlat.C
    A instructionAPI/src/decoder/riscv/opcode_xlat.h
    A instructionAPI/src/decoder/riscv/register_xlat.C
    A instructionAPI/src/decoder/riscv/register_xlat.h
    A instructionAPI/src/decoder/type_conversion.h
    R instructionAPI/src/riscv/categories.h
    R instructionAPI/src/riscv/decoder.C
    R instructionAPI/src/riscv/decoder.h
    R instructionAPI/src/riscv/mem_xlat.C
    R instructionAPI/src/riscv/mem_xlat.h
    R instructionAPI/src/riscv/opcode_xlat.C
    R instructionAPI/src/riscv/opcode_xlat.h
    R instructionAPI/src/riscv/register_xlat.C
    R instructionAPI/src/riscv/register_xlat.h
    R instructionAPI/src/riscv/type_conversion.h

  Log Message:
  -----------
  Add DYNINST_ENABLE_CAPSTONE and add decoder directory


  Commit: 8074c1051c95ded6ce6427c942bc3868c9bab7a7
      https://github.com/dyninst/dyninst/commit/8074c1051c95ded6ce6427c942bc3868c9bab7a7
  Author: wxrdnx <wxrdnx@xxxxxxxxxxxxxx>
  Date:   2025-11-07 (Fri, 07 Nov 2025)

  Changed paths:
    M instructionAPI/src/Operation.C

  Log Message:
  -----------
  Default initialize variables in Operation class


  Commit: 4d08919a97af1ee3253fa003841f9a24124e3df7
      https://github.com/dyninst/dyninst/commit/4d08919a97af1ee3253fa003841f9a24124e3df7
  Author: wxrdnx <wxrdnx@xxxxxxxxxxxxxx>
  Date:   2025-11-07 (Fri, 07 Nov 2025)

  Changed paths:
    M instructionAPI/src/decoder/riscv/decoder.C

  Log Message:
  -----------
  Add type cast to code variable


  Commit: 2c4e3278aced4987760d6594429155d004bffda2
      https://github.com/dyninst/dyninst/commit/2c4e3278aced4987760d6594429155d004bffda2
  Author: wxrdnx <wxrdnx@xxxxxxxxxxxxxx>
  Date:   2025-11-07 (Fri, 07 Nov 2025)

  Changed paths:
    M instructionAPI/CMakeLists.txt

  Log Message:
  -----------
  Run cmake-format on InstructionAPI/CMakeLists.txt


  Commit: 3650652aef61d5ae0b609ce1b990316d4ca3f7f4
      https://github.com/dyninst/dyninst/commit/3650652aef61d5ae0b609ce1b990316d4ca3f7f4
  Author: wxrdnx <wxrdnx@xxxxxxxxxxxxxx>
  Date:   2025-11-07 (Fri, 07 Nov 2025)

  Changed paths:
    M instructionAPI/src/decoder/riscv/decoder.C

  Log Message:
  -----------
  For the code variable, cast to const void *


  Commit: a7bee96724cd3ad92b328ae1ef03e36e6505ff77
      https://github.com/dyninst/dyninst/commit/a7bee96724cd3ad92b328ae1ef03e36e6505ff77
  Author: wxrdnx <wxrdnx@xxxxxxxxxxxxxx>
  Date:   2025-11-07 (Fri, 07 Nov 2025)

  Changed paths:
    M instructionAPI/src/decoder/riscv/categories.h
    M instructionAPI/src/decoder/riscv/decoder.h
    M instructionAPI/src/decoder/riscv/mem_xlat.C
    M instructionAPI/src/decoder/riscv/mem_xlat.h
    M instructionAPI/src/decoder/riscv/opcode_xlat.C
    M instructionAPI/src/decoder/riscv/opcode_xlat.h
    M instructionAPI/src/decoder/riscv/register_xlat.C
    M instructionAPI/src/decoder/riscv/register_xlat.h
    M instructionAPI/src/decoder/type_conversion.h

  Log Message:
  -----------
  Run clang-format


  Commit: f94e48a81ed81967ad7a14afb3c9a10a5f864288
      https://github.com/dyninst/dyninst/commit/f94e48a81ed81967ad7a14afb3c9a10a5f864288
  Author: wxrdnx <67510189+wxrdnx@xxxxxxxxxxxxxxxxxxxxxxxx>
  Date:   2025-11-07 (Fri, 07 Nov 2025)

  Changed paths:
    M instructionAPI/src/InstructionDecoderImpl.C

  Log Message:
  -----------
  Guard riscv/decoder.h

Co-authored-by: kupsch <kupsch@xxxxxxxxxxx>


Compare: https://github.com/dyninst/dyninst/compare/614d7bdfd6c8...f94e48a81ed8

To unsubscribe from these emails, change your notification settings at https://github.com/dyninst/dyninst/settings/notifications
[← Prev in Thread] Current Thread [Next in Thread→]
  • [DynInst_API:] [dyninst/dyninst] 787110: Add RISC-V Instruction API, wxrdnx <=