Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -75,11 +75,11 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Check out immutable LinxISA v0.58.3 authority
- name: Check out immutable LinxISA v0.58.6 authority
uses: actions/checkout@v4
with:
repository: LinxISA/linx-isa
ref: 1926864fed9405761f783b130674c45f92210d3d
ref: ed3f7a9d9715e6209d7b551aa51865decf59e9e6
path: linxisa-authority
- name: Install toolchain
run: sudo apt-get update && sudo apt-get install -y clang-format cmake ninja-build g++
Expand All @@ -100,11 +100,11 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Check out immutable LinxISA v0.58.3 authority
- name: Check out immutable LinxISA v0.58.6 authority
uses: actions/checkout@v4
with:
repository: LinxISA/linx-isa
ref: 1926864fed9405761f783b130674c45f92210d3d
ref: ed3f7a9d9715e6209d7b551aa51865decf59e9e6
path: linxisa-authority
- name: Install toolchain
run: sudo apt-get update && sudo apt-get install -y clang-format cmake ninja-build clang
Expand Down
6 changes: 3 additions & 3 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ set(CMAKE_EXPORT_COMPILE_COMMANDS ON)

option(LINX_MODEL_ENABLE_SANITIZERS "Enable ASan, LSan, and UBSan" OFF)
option(LINX_MODEL_BUILD_DOCS "Enable Doxygen documentation target" OFF)
set(LINXISA_AUTHORITY_ROOT "" CACHE PATH "Exact LinxISA checkout containing ISA v0.58.3 authority")
set(LINXISA_AUTHORITY_ROOT "" CACHE PATH "Exact LinxISA checkout containing ISA v0.58.6 authority")
if(NOT LINXISA_AUTHORITY_ROOT AND
EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/../../isa/v0.58/linxisa-v0.58.json")
get_filename_component(
Expand Down Expand Up @@ -56,7 +56,7 @@ add_custom_target(
--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 0.58.3 Minst codec tables")
COMMENT "Regenerating committed LinxISA 0.58.6 Minst codec tables")

add_custom_target(
check-isa-codec
Expand All @@ -66,7 +66,7 @@ add_custom_target(
--source "${CMAKE_CURRENT_SOURCE_DIR}/src/isa/generated_tables.cpp"
--check
WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}"
COMMENT "Checking committed LinxISA 0.58.3 Minst codec freshness")
COMMENT "Checking committed LinxISA 0.58.6 Minst codec freshness")

target_include_directories(
linx_model
Expand Down
8 changes: 4 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ state.
- `SimQueue<T>` models latency-aware, cycle-visible FIFO movement for value
payloads, `std::unique_ptr<T>`, and `std::shared_ptr<T>`.
- `isa::Minst` is the single in-flight uop payload. Fetch allocates
`MinstPtr`, decode populates generated LinxISA 0.58.3 fields, and retire/flush
`MinstPtr`, decode populates generated LinxISA 0.58.6 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
Expand Down Expand Up @@ -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 0.58.3 codec and `Minst`
- [`docs/isa.md`](./docs/isa.md) generated LinxISA 0.58.6 codec and `Minst`
packet contract

Doxygen can be generated locally with:
Expand All @@ -88,9 +88,9 @@ cmake --build build --target gen-isa-codec
cmake --build build --target check-isa-codec
```

Generation fails closed unless the root lock matches the exact PTO ISA 0.58.3
Generation fails closed unless the root lock matches the exact PTO ISA 0.58.6
release, ABI, projection, source commit/tree, catalog hashes/counts, and the
757-form codec cardinality. The freshness target regenerates into a temporary
773-form codec cardinality. The freshness target regenerates into a temporary
directory and byte-compares both committed outputs.

For a standalone checkout, configure with an immutable LinxISA authority:
Expand Down
2 changes: 1 addition & 1 deletion docs/architecture.md
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ Within each `Module`, `WorkSelf()` is event-driven:
repository.

- fetch allocates `MinstPtr`
- decode fills generated LinxISA 0.58.3 form metadata and canonical decoded fields
- decode fills generated LinxISA 0.58.6 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
Expand Down
18 changes: 9 additions & 9 deletions docs/isa.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,10 @@

## Scope

`linx-model` ships a committed generated LinxISA 0.58.3 codec for `isa::Minst`.
`linx-model` ships a committed generated LinxISA 0.58.6 codec for `isa::Minst`.
The source of truth is:

- `isa/v0.58/linxisa-v0.58.json` from the LinxISA 0.58.3 projection, generated
- `isa/v0.58/linxisa-v0.58.json` from the LinxISA 0.58.6 projection, generated
from the locked PTO-ISA/pto-spec release

The generated C++ tables are committed under:
Expand Down Expand Up @@ -48,7 +48,7 @@ Decoder behavior:
- chooses the unique most-specific form by fixed-bit count
- validates field constraints
- populates `Minst` metadata and typed views
- exposes exactly 757 current LinxISA forms, including the `B.FPATR`
- exposes exactly 773 current LinxISA forms, including the `B.FPATR`
`TransA`/`TransB` form and the `B.IOT`/`B.IOS` `PEMode`/`SizeCode` forms;
rejects retired scalar branches `B.EQ`, `B.GE`, `B.GEU`, `B.LT`, `B.LTU`,
`B.NE`, `B.NZ`, and `B.Z`, plus retired `B.ARG`,
Expand Down Expand Up @@ -110,18 +110,18 @@ cmake --build build --target gen-isa-codec
cmake --build build --target check-isa-codec
```

The generator validates the exact root PTO ISA 0.58.3 lock identity, source
commit/tree, catalog hashes/counts, and the generated 757/2643/3375/792
The generator validates the exact root PTO ISA 0.58.6 lock identity, source
commit/tree, catalog hashes/counts, and the generated 773/2667/3399/1067
form/field/piece/constraint cardinalities before writing. `check-isa-codec`
also rejects stale committed output without modifying it.

It additionally authenticates the complete authority bytes against the
immutable LinxISA v0.58.3 authority at `1926864fed9405761f783b130674c45f92210d3d`:
immutable LinxISA v0.58.6 authority at `ed3f7a9d9715e6209d7b551aa51865decf59e9e6`:
compiled catalog
`e003d9a8e8e68de63afe0e8662e59658c173bb651e90f670c490aec2121ad1c8`, PTO
lock `d5c17fd6f893267b43ed88ec157cc18ee9848eee6cf1801eaf3fe99358300a4d`,
`47d7d23e210e8205fa385473136c44613bb52e8de135e77602163147f91eaf91`, PTO
lock `77e792fb0add49a2cf4a0dcc6853a715d6b1c98490f48649b85f923579ba36be`,
and release manifest
`6f1b3fdc81e8be591d74427663a5747e6b2aa884c7d9787b2852b8eba4b5ed4d`.
`86ad5d2dee02131bf9865ba029d8043112174f94798a5dcdb7e8f8d081415a11`.
Standalone builds must provide that checkout through
`LINXISA_AUTHORITY_ROOT`; missing authority is an error for generation and
freshness checks.
Expand Down
Loading
Loading