feat(lint): eleven new rules over directives, data and addressing

Assisted-by: GLM 5.3
This commit is contained in:
2026-10-02 00:40:54 +02:00
parent f405cea5bc
commit 69dcbec8ef
12 changed files with 1431 additions and 19 deletions
+12 -5
View File
@@ -131,8 +131,11 @@ Rules: `unknown-instruction`, `operand-count`, `undefined-label`,
`abi-argsize`, `unreachable-code`, `register-clobber`,
`funcdata-pcdata`, `unused-label`, `invalid-textflag`,
`stack-imbalance`, `register-width-mismatch`, `abi0-register-args`,
`nonportable-register-name`, `unencodable-instruction` and
`reserved-register-write`.
`nonportable-register-name`, `unencodable-instruction`,
`reserved-register-write`, `missing-argsize`, `noframe-frame-size`,
`unnamed-fp-reference`, `hardware-sp-addressing`, `vex-sse-mixing`,
`unnamed-result`, `data-width`, `data-value-overflow`,
`data-string-width`, `data-without-globl` and `data-exceeds-globl`.
```sh
gasm lint kernel_amd64.s
@@ -455,14 +458,18 @@ Provides: completion, hover, document symbols, push and pull diagnostics,
semantic tokens, go-to-definition, find references, rename, document
formatting, inlay hints, code actions, signature help, document highlights,
workspace symbol search, #include document links, and folding ranges for
function bodies. Definition, references and rename work across every open
function bodies. Completion offers the architecture's registers and
instructions, the TEXT/DATA/GLOBL directives, the annotation and padding
pseudo-ops (PCALIGN, FUNCDATA, PCDATA, the BYTE family) and the textflag
constants; hover documents mnemonics, registers, pseudo-registers and the
directives. Definition, references and rename work across every open
document and the wider workspace on disk: the server indexes the `.s` files
under the workspace root that the editor has never opened, an open buffer
always shadows its disk copy, and watched-file events together with a
per-query freshness check keep the index current. The quick fixes add the
missing `#include "textflag.h"`, set the TEXT argument area to the size the
`// func` signature implies, add a missing `RET`, and remove an unused
label.
`// func` signature implies, declare that area when it is omitted entirely,
add a missing `RET`, and remove an unused label.
## version