Skip to content

x86: reserve bl and bh registers to match rbx#153302

Merged
rust-bors[bot] merged 1 commit intorust-lang:mainfrom
CathalMullan:rbx
Mar 4, 2026
Merged

x86: reserve bl and bh registers to match rbx#153302
rust-bors[bot] merged 1 commit intorust-lang:mainfrom
CathalMullan:rbx

Conversation

@CathalMullan
Copy link
Contributor

bl and bh need to be explicitly marked as reserved, as they are sub-registers of rbx, which is reserved by LLVM.

Discovered this while trying to run Graviola through Cranelift, which was becoming corrupted due to the register allocator assigning bl: rust-lang/rustc_codegen_cranelift#1629

cc: @bjorn3

@rustbot rustbot added S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. labels Mar 2, 2026
@rustbot
Copy link
Collaborator

rustbot commented Mar 2, 2026

r? @petrochenkov

rustbot has assigned @petrochenkov.
They will have a look at your PR within the next two weeks and either review your PR or reassign to another reviewer.

Use r? to explicitly pick a reviewer

Why was this reviewer chosen?

The reviewer was selected based on:

  • Owners of files modified in this PR: compiler
  • compiler expanded to 69 candidates
  • Random selection from 15 candidates

@petrochenkov
Copy link
Contributor

r? @Amanieu

@rustbot rustbot assigned Amanieu and unassigned petrochenkov Mar 3, 2026
@Amanieu
Copy link
Member

Amanieu commented Mar 3, 2026

@bors r+

@rust-bors
Copy link
Contributor

rust-bors bot commented Mar 3, 2026

📌 Commit 6696649 has been approved by Amanieu

It is now in the queue for this repository.

@rust-bors rust-bors bot added S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. and removed S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels Mar 3, 2026
rust-bors bot pushed a commit that referenced this pull request Mar 4, 2026
Rollup of 8 pull requests

Successful merges:

 - #153280 (Add regression test for `doc(fake_variadic)` on reexports)
 - #153302 (x86: reserve `bl` and `bh` registers to match `rbx`)
 - #153358 (Boundary tests for various Duration-float operations)
 - #153048 (Improve irrefutable let-else lint wording)
 - #153258 (diag: Suppress `.clone()` suggestion inside derive macro expansions)
 - #153272 (Add `Path::absolute` method as alias for `std::path::absolute`)
 - #153295 (update panicking() docs for panic=abort)
 - #153352 (Migration of `LintDiagnostic` - part 6)
@rust-bors rust-bors bot merged commit df44e39 into rust-lang:main Mar 4, 2026
11 checks passed
@rustbot rustbot added this to the 1.96.0 milestone Mar 4, 2026
rust-timer added a commit that referenced this pull request Mar 4, 2026
Rollup merge of #153302 - CathalMullan:rbx, r=Amanieu

x86: reserve `bl` and `bh` registers to match `rbx`

`bl` and `bh` need to be explicitly marked as reserved, as they are sub-registers of `rbx`, which is reserved by LLVM.

Discovered this while trying to run Graviola through Cranelift, which was becoming corrupted due to the register allocator assigning `bl`: rust-lang/rustc_codegen_cranelift#1629

cc: @bjorn3
@CathalMullan CathalMullan deleted the rbx branch March 4, 2026 11:30
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants