From 9ed98b092083eab1e7c1a707f607547246dcddbc Mon Sep 17 00:00:00 2001 From: RuoyuZhou Date: Sat, 16 May 2026 14:45:11 +0800 Subject: [PATCH] Normalize linx-model fixture naming across docs and codec tooling The superproject now refers to the LLVM ELF minst fixture path consistently, so the model repo needs its docs, generator wording, and emitted record labels to match. This keeps the lightweight model references aligned with the rest of the bring-up documentation and tooling. Constraint: Superproject bring-up docs now use the LLVM ELF fixture naming consistently Rejected: Keep the legacy names in model docs and codec code | leaves the model surface inconsistent with the active bring-up docs Confidence: medium Scope-risk: narrow Directive: Keep minst fixture names synchronized between documentation and generator output Not-tested: No dedicated linx-model build or regression rerun in this publish turn --- CMakeLists.txt | 4 ++-- README.md | 4 ++-- docs/architecture.md | 2 +- docs/isa.md | 4 ++-- src/emulator/minst_record.cpp | 2 +- tools/isa/gen_minst_codec.py | 2 +- 6 files changed, 9 insertions(+), 9 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index d4410fd..f379443 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -41,11 +41,11 @@ add_library(linx::model ALIAS linx_model) add_custom_target( gen-isa-codec COMMAND "${CMAKE_CURRENT_SOURCE_DIR}/tools/isa/gen_minst_codec.py" - --spec "${CMAKE_CURRENT_SOURCE_DIR}/../../isa/v0.4/linxisa-v0.4.json" + --spec "${CMAKE_CURRENT_SOURCE_DIR}/../../isa/v0.56/linxisa-v0.56.json" --header "${CMAKE_CURRENT_SOURCE_DIR}/include/linx/model/isa/generated_tables.hpp" --source "${CMAKE_CURRENT_SOURCE_DIR}/src/isa/generated_tables.cpp" WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}" - COMMENT "Regenerating committed LinxISA v0.4 Minst codec tables") + COMMENT "Regenerating committed LinxISA v0.56 Minst codec tables") target_include_directories( linx_model diff --git a/README.md b/README.md index 3d45012..b3fc5f1 100644 --- a/README.md +++ b/README.md @@ -11,7 +11,7 @@ state. - `SimQueue` models latency-aware, cycle-visible FIFO movement for value payloads, `std::unique_ptr`, and `std::shared_ptr`. - `isa::Minst` is the single in-flight uop payload. Fetch allocates - `MinstPtr`, decode populates generated LinxISA v0.4 fields, and retire/flush + `MinstPtr`, decode populates generated LinxISA v0.56 fields, and retire/flush or DFX consumes the same object. - `ProgramImage` plus the ELF/raw loader and ISA disassembler let the model CLI load a binary, decode instructions, and print assembly directly from the @@ -71,7 +71,7 @@ ctest --test-dir build-sanitize --output-on-failure semantics - [`docs/testing.md`](./docs/testing.md) UT / ST / checks / sanitizers - [`docs/logging.md`](./docs/logging.md) structured log format and packet dump -- [`docs/isa.md`](./docs/isa.md) generated LinxISA v0.4 codec and `Minst` +- [`docs/isa.md`](./docs/isa.md) generated LinxISA v0.56 codec and `Minst` packet contract Doxygen can be generated locally with: diff --git a/docs/architecture.md b/docs/architecture.md index b2d724d..2fca29b 100644 --- a/docs/architecture.md +++ b/docs/architecture.md @@ -41,7 +41,7 @@ Within each `Module`, `WorkSelf()` is event-driven: repository. - fetch allocates `MinstPtr` -- decode fills generated v0.4 form metadata and canonical decoded fields +- decode fills generated v0.56 form metadata and canonical decoded fields - middle pipeline stages inspect or extend typed views on the same packet - retire, flush, or DFX consumes and destroys the packet, or converts it to shared ownership only at terminal boundaries diff --git a/docs/isa.md b/docs/isa.md index e1ab87d..1f440c7 100644 --- a/docs/isa.md +++ b/docs/isa.md @@ -2,10 +2,10 @@ ## Scope -`linx-model` ships a committed generated LinxISA v0.4 codec for `isa::Minst`. +`linx-model` ships a committed generated LinxISA v0.56 codec for `isa::Minst`. The source of truth is: -- `/Users/zhoubot/linx-isa/isa/v0.4/linxisa-v0.4.json` +- `/Users/zhoubot/linx-isa/isa/v0.56/linxisa-v0.56.json` The generated C++ tables are committed under: diff --git a/src/emulator/minst_record.cpp b/src/emulator/minst_record.cpp index 6bf29c9..ad67b44 100644 --- a/src/emulator/minst_record.cpp +++ b/src/emulator/minst_record.cpp @@ -50,7 +50,7 @@ void FillOperand(LinxMinstOperandRecordC &dst, const isa::MinstOperand *src) { [[nodiscard]] std::size_t BytesForLen(std::uint32_t len_bits) { LINX_MODEL_ASSERT_MSG(len_bits % 8U == 0U, "minst trace len must be byte-aligned"); LINX_MODEL_ASSERT_MSG(len_bits >= 16U && len_bits <= 64U, - "minst trace len must stay within v0.4 fetch sizes"); + "minst trace len must stay within v0.56 fetch sizes"); return static_cast(len_bits / 8U); } diff --git a/tools/isa/gen_minst_codec.py b/tools/isa/gen_minst_codec.py index 82748c2..e8202ff 100755 --- a/tools/isa/gen_minst_codec.py +++ b/tools/isa/gen_minst_codec.py @@ -298,7 +298,7 @@ def main() -> int: parser = argparse.ArgumentParser() parser.add_argument( "--spec", - default="/Users/zhoubot/linx-isa/isa/v0.4/linxisa-v0.4.json", + default="/Users/zhoubot/linx-isa/isa/v0.56/linxisa-v0.56.json", ) parser.add_argument( "--header",