Skip to content

fix(deps): update module github.com/go-asmgen/asmgen to v0.16.0 - #28

Closed
tannevaled wants to merge 1 commit into
mainfrom
renovate/deps
Closed

tannevaled wants to merge 1 commit into
mainfrom
renovate/deps

Conversation

@tannevaled

Copy link
Copy Markdown
Contributor

This PR contains the following updates:

Package Change Age Confidence
github.com/go-asmgen/asmgen v0.14.0 → v0.16.0 age confidence

Release Notes

go-asmgen/asmgen (github.com/go-asmgen/asmgen)

v0.16.0

Compare Source

arm64: single-precision vector float arithmetic on the .4S arrangement (#​19). VFADD4S, VFSUB4S, VFMUL4S, VFMLA4S, VFMLS4S and VFNEG4S are emitted as mnemonics, which Go 1.27's assembler encodes, and checked against golden encodings. They are additive, next to the existing .2D helpers. They are used by go-fft's float32 NEON kernels.

v0.15.3

Compare Source

v0.15.2: — Go 1.27.1 floor, pinned CI

Compare Source

Patch release. The API is unchanged.

  • The go directive is now 1.27.1 (was 1.27.0), so builds get the security fixes in 1.27.1.
  • CI pins Go 1.27.1 instead of following stable. The toolchain now moves only through a reviewed bump that Renovate can propose. The goasm-gaps workflow still follows stable on purpose, because its job is to watch the newest release.
  • Go 1.27's gofmt reformats 11 example files, and a gofmt step is added to CI.

Known and accepted: go1.27.1 still miscompiles one loong64 pattern (golang/go#81000; backport golang/go#81147 pending for 1.27.2).

v0.15.1

Compare Source

Security audit of 2026-10-04. No library code changed.

  • SECURITY.md: private vulnerability reporting, and what counts as a vulnerability in a generator whose output runs outside Go's memory safety (a WORD that is not the instruction it names, a frame layout asmdecl misses, a builder emitting other than it documents).
  • CI: a govulncheck job over the library and tools.
  • README: wasm and internal/gap are in the 100% coverage gate.

Audit findings: govulncheck, gosec and staticcheck found nothing needing a change. Private vulnerability reporting, secret scanning and push protection are now enabled on every go-asmgen repository.

v0.15.0: — cmd/asm encodes; the rest becomes upstream patches

Compare Source

go-asmgen emits Plan 9 assembly and lets cmd/asm encode it. This release returns to that rule wherever Go allows it. Where Go cannot yet assemble an instruction, the release turns the gap into a Go patch.

Breaking

  • The go directive is now 1.27.0. The arm64 vector-float methods now emit mnemonics that Go 1.26 rejects. A consumer that regenerates its arm64 .s files needs Go ≥ 1.27. The machine code is unchanged.

Changes

  • arm64 (#​13): VFADD2D, VFSUB2D, VFMUL2D, VFNEG2D, VFMLA2D and VFMLS2D now emit VFADD Vm.D2, Vn.D2, Vd.D2 and the matching instructions. They used to emit hand-encoded WORDs. The new output assembles to the same 42/42 words as the system assembler.
  • loong64 (#​14): VLDREPLD/XVLDREPLD now emit VMOVQ off(R), V.V2 / XVMOVQ off(R), X.V4. This is how cmd/asm has spelt vldrepl.d since at least Go 1.26. The one exception is offset −2048, which Go refuses, so it is still a WORD.
  • ppc64 VSX float64 and loong64 FMA stay WORDs, marked transitional. Each WORD's comment now shows the Plan 9 spelling proposed for cmd/asm.
  • internal/gap: the registry of instructions cmd/asm lacks. Each entry holds:
    • the encoder;
    • the reference encodings (GNU as, with llvm-mc agreeing on all 102 cases);
    • the opcode mask;
    • the proposed spelling.
  • tools/goasmgap works from the registry:
    • scan searches Go's test data by encoding;
    • testdata writes the cmd/asm test lines for a patch;
    • verify assembles every reference case with a toolchain built from source.
  • goasm-patches/ holds three Go patches, ready but not yet mailed. CI applies them to Go master every week:
    • ppc64 VSX float64 arithmetic;
    • loong64 vector FMA and the full broadcast-load offset range;
    • a range check for loong64 element stores, which on Go master silently encode an out-of-range offset as a store to the wrong address.
  • goasm-gaps workflow: runs weekly. It opens an issue when a Go release or master gains one of these instructions. The job that writes issues is separate from the one that builds Go, so only the first holds write access.

Verification

  • The regenerated examples assemble to identical machine code: ppc64le 82/82 words, loong64 44/44.
  • Library coverage is 100%.
  • govulncheck finds no vulnerabilities under Go 1.27.1.
  • actionlint passes.

Configuration

📅 Schedule: (UTC)

  • Branch creation
    • At any time (no schedule defined)
  • Automerge
    • At any time (no schedule defined)

🚦 Automerge: Enabled.

♻ Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR has been generated by Mend Renovate CLI.

@tannevaled

Copy link
Copy Markdown
Contributor Author

Superseded by #29 (released as v0.5.1): the same go-asmgen v0.16.0 bump plus the regenerated ppc64le/loong64 kernels this PR was missing (comment-only changes, identical instructions).

@tannevaled tannevaled closed this Oct 7, 2026
@tannevaled
tannevaled deleted the renovate/deps branch October 7, 2026 19:24
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant