[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