Skip to content

docs(relinker): record Rosetta instruction support on an M1 with macOS 26.6.2 - #7185

Merged
oneandonlydean merged 1 commit into
boykopovar:mainfrom
Destroyers212x:docs/rosetta-m1-macos-26
Oct 17, 2026
Merged

oneandonlydean merged 1 commit into
boykopovar:mainfrom
Destroyers212x:docs/rosetta-m1-macos-26

Conversation

@Destroyers212x

Copy link
Copy Markdown
Contributor

What

Adds an M1 measurement to the --to-rosetta entry in docs/dev/debt/relinker.md. The entry says ANDN and RDRAND fault on an M1 running macOS 15.3.1. On an M1 running macOS 26.6.2 they execute, so on the M1 the difference follows the macOS (Rosetta) version, not the chip. The same host's results for the other instructions are recorded as well; they match the M5 / macOS 26.4 survey merged in #7143.

Method: each instruction runs in its own forked x86-64 process built with clang -arch x86_64. A process that exits normally executed the instruction; one killed by SIGILL did not. CPUID leaf 1 comes from machdep.cpu.features read under Rosetta; leaves 7 and 0x80000001 were not read. Raw results were posted in #7143.

M1, macOS 26.6.2
ANDN, BEXTR, BLSI, BLSMSK, BLSR, TZCNT, LZCNT, POPCNT, BZHI, MULX, PDEP, PEXT, RORX, SARX, SHLX, SHRX execute
MOVBE, FMA, AVX2, F16C, RDRAND, RDTSCP execute
RDSEED, RDPID, CLWB, ADCX, ADOX SIGILL

The overlap check reports #6111 on the same line, and #7173 edits it too. This changes one sentence; if either merges first, I'll rebase.

Tested

Documentation only. The measurements are from an M1 with macOS 26.6.2 as described above. python3 tools/check_conventions.py --base origin/main passes.

Checklist

  • Based on current main; no other open PR implements the same functions
  • One topic per PR; follow-ups go in a new PR
  • No comments in code except technical debt
  • Unimplemented paths throw (NotImplemented_nid_no_patch); silent stubs are listed under Silent stubs in their library's technical debt file
  • No notes, investigation .md files or images added to the repository (attach them to this PR)
  • New third-party code is a submodule built from source
  • Generic behaviour, not specific to one title
  • Depends on: none
  • Fixes: none
  • Unblocks: none
  • GPUs tested: n/a
  • AI-assisted: yes (Claude Code)

🤖 Generated with Claude Code

…S 26.6.2

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@MarcZX10

Copy link
Copy Markdown
Contributor

I checked the shared Rosetta debt entry against open #7173. The added M1 observations look internally consistent with the reported measurement, but after #7173 lands the existing sentence “ADCX/ADOX fault under Rosetta and are not converted” will be stale: #7173 adds both lowerings. Please retain the new M1 data while updating that sentence (and its compiler/CPUID rationale) when rebasing or after #7173 merges. The two PRs otherwise document different things.

@Destroyers212x

Copy link
Copy Markdown
Contributor Author

Agreed. Until #7173 merges, main doesn't convert them, so the sentence is still accurate here. Once #7173 lands, I'll rebase this onto it and change that sentence to say ADCX/ADOX are lowered to ADC (pointing to the new ADCX/ADOX lowering entry), dropping the "compilers do not emit them" rationale and keeping the CPUID note, alongside the M1 data.

AI-assisted: yes (Claude Code)

@github-actions github-actions Bot added the docs label Oct 17, 2026
@github-actions

github-actions Bot commented Oct 17, 2026 •

Copy link
Copy Markdown

Other open pull requests touch the same code. Merging one will break the other, or both implement the same thing. If this one builds on them, list them in Depends on.

Pull request Conflicting files (lines on main) Same exports Same new files
PR 6111 docs/dev/debt/relinker.md L20

Some comparisons could not be completed because a pull request conflicts with the base branch. Review these shared files manually before concluding that there is no overlap.

Pull request Shared files not compared
PR 5021 docs/dev/debt/relinker.md

@oneandonlydean
oneandonlydean merged commit 07475de into boykopovar:main Oct 17, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants