[all-commits] [llvm/llvm-project] 7f5a6d: [MC][COFF][AArch64] Add helper symbols for large S...
hotschmoe via All-commits
all-commits at lists.llvm.org
Tue Jun 9 13:21:56 PDT 2026
Branch: refs/heads/main
Home: https://github.com/llvm/llvm-project
Commit: 7f5a6d77bac92ca3273bb0a98b8604f4987001ed
https://github.com/llvm/llvm-project/commit/7f5a6d77bac92ca3273bb0a98b8604f4987001ed
Author: hotschmoe <stronggarner66 at gmail.com>
Date: 2026-06-09 (Tue, 09 Jun 2026)
Changed paths:
M llvm/lib/MC/WinCOFFObjectWriter.cpp
A llvm/test/MC/AArch64/coff-secrel-hi12.s
Log Message:
-----------
[MC][COFF][AArch64] Add helper symbols for large SECREL addends (#199602)
## Summary
Create helper label symbols for ARM64 COFF SECREL HI12/LO12 relocations
when the byte offset cannot fit in the 12-bit instruction addend.
This is the MC-side follow-up to #200060: with LLD now handling small
SECREL_HIGH12A byte addends correctly, this patch only handles the
remaining large-addend case that needs a helper symbol.
Fixes #199581.
AI assistance: Claude (Anthropic), Codex (OpenAI).
## Tests
`llvm/test/MC/AArch64/coff-secrel-hi12.s`, run for both
`aarch64-windows` and `arm64ec-windows`, covers:
- Temporary symbol, offset in range (`.Lsmall`, `.Lsmall+4`): emitted as
a `.bss` section relocation with the offset baked into the imm12; no
helper symbol.
- Temporary symbol, offset out of range (`.Lsmall+16`, `.Llarge`,
`.Llarge+4`): a helper label symbol is created at the exact section
offset and the imm12 is cleared.
- Non-temporary symbol, offset in range (`large`, `large+128`):
relocation against the symbol with the addend in the imm12; no helper
symbol.
`ninja -C build check-llvm-mc`
To unsubscribe from these emails, change your notification settings at https://github.com/llvm/llvm-project/settings/notifications
More information about the All-commits
mailing list