docs: changelog for macro expansion and the corrected corpus audit
Test / test (push) Successful in 2m14s
Test / test (push) Successful in 2m14s
Assisted-by: GLM 5.3 Flash
This commit is contained in:
@@ -9,6 +9,16 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|||||||
|
|
||||||
### Added
|
### Added
|
||||||
|
|
||||||
|
- **Macro expansion and include splicing.** `gasm asm`, `gasm diff` and
|
||||||
|
`gasm audit-instructions` now preprocess assembly the way the
|
||||||
|
toolchain does: object and parameterised `#define` macros expand at
|
||||||
|
the point of use, `#undef` and the `#ifdef`/`#ifndef`/`#else`/
|
||||||
|
`#endif` family select branches, `#include` splices headers resolved
|
||||||
|
through the source directory and the new repeatable `-I` flag, `;`
|
||||||
|
separates statements, and constant expressions left in operands
|
||||||
|
(`$(32-7)`, `$~63`, `(index*4)(base)`) fold at parse. Expansion
|
||||||
|
happens only on the assembly path: `gasm lint`, `gasm fmt` and the
|
||||||
|
language server keep reading the raw file.
|
||||||
- **The GOROOT instruction wave, part 1.** The encoder now covers the
|
- **The GOROOT instruction wave, part 1.** The encoder now covers the
|
||||||
instruction families GOROOT's real code uses that gasm lacked,
|
instruction families GOROOT's real code uses that gasm lacked,
|
||||||
byte-verified against `go tool asm`: on amd64 the carry ALU, the
|
byte-verified against `go tool asm`: on amd64 the carry ALU, the
|
||||||
@@ -129,6 +139,11 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|||||||
|
|
||||||
### Fixed
|
### Fixed
|
||||||
|
|
||||||
|
- **The corpus audit attempts fewer files that no build would compile.**
|
||||||
|
Files named for Go ports gasm does not target (arm, 386, s390x, ...)
|
||||||
|
are reported as other-port and never attempted, the headline rate is
|
||||||
|
computed over attemptable files, and the audit searches the
|
||||||
|
toolchain's shipped headers (funcdata.h and friends) automatically.
|
||||||
- **riscv64 JALR silently jumped to the wrong register.** The trampoline
|
- **riscv64 JALR silently jumped to the wrong register.** The trampoline
|
||||||
form `JALR X0, 0(X5)` read the memory operand's base as the destination,
|
form `JALR X0, 0(X5)` read the memory operand's base as the destination,
|
||||||
encoding a jump to X0 with no diagnostic; the destination is the first
|
encoding a jump to X0 with no diagnostic; the destination is the first
|
||||||
|
|||||||
Reference in New Issue
Block a user