Skip to content

fix: preserve local constant pools - #79

Merged
zhenghaoz merged 1 commit into
gorse-io:mainfrom
zhangzhenghao:fix/issue-78-constant-pool
Sep 24, 2026
Merged

zhenghaoz merged 1 commit into
gorse-io:mainfrom
zhangzhenghao:fix/issue-78-constant-pool

Conversation

@zhangzhenghao

@zhangzhenghao zhangzhenghao commented Sep 24, 2026 •

Copy link
Copy Markdown
Contributor

Summary

  • parse compiler-emitted integer data directives, including .xword and .dword, with target byte order
  • collect multi-line local constant-pool symbols without treating them as code labels
  • preserve amd64 RIP-relative, arm64 ADRP/LO12, riscv64 PC-relative, loong64 PC-relative, s390x LARL, and ppc64le TOC relocations as Go symbol references
  • run constant-pool value checks from the universal test suite on every supported architecture

Tests

  • go test ./... -count=1
  • go vet ./...
  • generate and assemble tests/src/universal.c for amd64, arm64, riscv64, loong64, s390x, and ppc64le
  • execute an amd64 standalone runtime probe for vector and floating-point constants
  • GitHub Actions cross-platform/QEMU matrix

Closes #78

@zhangzhenghao
zhangzhenghao force-pushed the fix/issue-78-constant-pool branch 4 times, most recently from 18d5d26 to 8156778 Compare September 24, 2026 09:55
@zhangzhenghao zhangzhenghao changed the title fix: preserve amd64 local constant pools fix: preserve local constant pools Sep 24, 2026
@zhangzhenghao
zhangzhenghao force-pushed the fix/issue-78-constant-pool branch 2 times, most recently from 5a94383 to 4094596 Compare September 24, 2026 10:55
@zhangzhenghao
zhangzhenghao force-pushed the fix/issue-78-constant-pool branch from 4094596 to 4544270 Compare September 24, 2026 11:05
@zhenghaoz
zhenghaoz merged commit 4875656 into gorse-io:main Sep 24, 2026
8 checks passed
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.

amd64 parser drops local constant-pool data and can cause SIGSEGV

2 participants