docs: changelog and readme for the instruction wave and the honest corpus rate
Test / test (push) Successful in 2m17s
Test / test (push) Successful in 2m17s
Assisted-by: GLM 5.3 Flash
This commit is contained in:
@@ -9,6 +9,29 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|||||||
|
|
||||||
### Added
|
### Added
|
||||||
|
|
||||||
|
- **The GOROOT instruction wave, part 1.** The encoder now covers the
|
||||||
|
instruction families GOROOT's real code uses that gasm lacked,
|
||||||
|
byte-verified against `go tool asm`: on amd64 the carry ALU, the
|
||||||
|
atomics (CMPXCHG, XADD, XCHG), AES-NI, SHA-1/256, PCLMULQDQ, CRC32,
|
||||||
|
GFNI, ADX, BMI, the string primitives, the system set (CPUID, RDTSC,
|
||||||
|
SYSCALL, fences, MXCSR) and the SSE/AVX/EVEX gaps; on arm64 the pair
|
||||||
|
loads and stores (LDP/STP), acquire/release and LSE atomics, AES and
|
||||||
|
SHA, the system operations, the bit ops and the NEON slice including
|
||||||
|
structure loads and the literal-pool moves; on riscv64 the RV64A AMO
|
||||||
|
family with aq/rl ordering, the Zbb pseudos with their RVC
|
||||||
|
compressions, the FMA forms and the RVV slice with `vsetvli`/
|
||||||
|
`vsetivli`; on loong64 the AM atomics with acquire/release forms, the
|
||||||
|
LSX/LASX slice, the `VMOVQ`/`XVMOVQ` transfer family and FSEL.
|
||||||
|
Also fixed on the way: arm64 `CASD`/`CASW` lacked an opcode bit, and
|
||||||
|
riscv64 `VSETVLI` with an immediate length now canonicalises to
|
||||||
|
`vsetivli` as the toolchain does.
|
||||||
|
- **The corpus audit measures honestly.** Files named for Go ports gasm
|
||||||
|
does not target (arm, 386, s390x, ...) are no longer attempted for the
|
||||||
|
four supported architectures (no supported build compiles them), and
|
||||||
|
the headline rate is reported over attemptable files: 136 of 433 on
|
||||||
|
the full corpus (31.4 %), 135 of 383 on real code (35.2 %), from the
|
||||||
|
127 that the previous release measured. The probe battery that
|
||||||
|
decides encodability gained the operand shapes the new families use.
|
||||||
-
|
-
|
||||||
|
|
||||||
## [0.34.0] - 2026-09-20
|
## [0.34.0] - 2026-09-20
|
||||||
|
|||||||
@@ -124,8 +124,9 @@ can emit today is narrower, and a recognised but unencodable instruction is
|
|||||||
reported as an explicit error, never as a wrong byte.
|
reported as an explicit error, never as a wrong byte.
|
||||||
|
|
||||||
The same measurement runs over GOROOT's whole assembly corpus:
|
The same measurement runs over GOROOT's whole assembly corpus:
|
||||||
`gasm audit-instructions --corpus` reports 127 of 627 files (20.3 %)
|
`gasm audit-instructions --corpus` reports 136 of 433 attemptable files
|
||||||
assembling for every target architecture today, with the top failure
|
(31.4 %) assembling for every target architecture today (files named for
|
||||||
|
other Go ports are counted but never attempted), with the top failure
|
||||||
reasons per architecture; the number moves with every release.
|
reasons per architecture; the number moves with every release.
|
||||||
|
|
||||||
### Validation status
|
### Validation status
|
||||||
|
|||||||
Reference in New Issue
Block a user