-
Notifications
You must be signed in to change notification settings - Fork 12.8k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
LLVM Error with asm! #83495
Labels
A-inline-assembly
Area: Inline assembly (`asm!(…)`)
C-bug
Category: This is a bug.
F-asm
`#![feature(asm)]` (not `llvm_asm`)
O-x86_64
Target: x86-64 processors (like x86_64-*)
T-compiler
Relevant to the compiler team, which will review and decide on the PR/issue.
Comments
jonas-schievink
added
A-inline-assembly
Area: Inline assembly (`asm!(…)`)
F-asm
`#![feature(asm)]` (not `llvm_asm`)
labels
Mar 25, 2021
nagisa
added
E-needs-mcve
Call for participation: This issue has a repro, but needs a Minimal Complete and Verifiable Example
and removed
E-needs-mcve
Call for participation: This issue has a repro, but needs a Minimal Complete and Verifiable Example
labels
Mar 25, 2021
Minimal-ish IR test case: define dso_local void @main(i64* %arg) unnamed_addr {
%a = tail call { i64, i8 } asm "", "={bx},={ah}"()
%_4.0 = extractvalue { i64, i8 } %a, 0
%_4.1 = extractvalue { i64, i8 } %a, 1
store i64 %_4.0, i64* %arg
%1 = xor i8 %_4.1, 0
call void @banana()
%_30.not = icmp eq i8 %1, 64
br i1 %_30.not, label %bb7, label %bb6
bb6:
unreachable
bb7:
unreachable
}
declare dso_local void @banana() unnamed_addr Pending verification if reproducible in LLVM main. https://bugs.llvm.org/show_bug.cgi?id=49729 |
JohnTitor
added
the
T-compiler
Relevant to the compiler team, which will review and decide on the PR/issue.
label
Mar 26, 2021
I'm considering just outright banning the use of |
Amanieu
added a commit
to Amanieu/rust
that referenced
this issue
Apr 4, 2021
They are still allowed on x86 though. Fixes rust-lang#83495
Dylan-DPC-zz
pushed a commit
to Dylan-DPC-zz/rust
that referenced
this issue
Apr 5, 2021
Disallow the use of high byte registes as operands on x86_64 They are still allowed on x86 though. Fixes rust-lang#83495 r? ``@nagisa``
Dylan-DPC-zz
pushed a commit
to Dylan-DPC-zz/rust
that referenced
this issue
Apr 5, 2021
Disallow the use of high byte registes as operands on x86_64 They are still allowed on x86 though. Fixes rust-lang#83495 r? `@nagisa`
Dylan-DPC-zz
pushed a commit
to Dylan-DPC-zz/rust
that referenced
this issue
Apr 5, 2021
Disallow the use of high byte registes as operands on x86_64 They are still allowed on x86 though. Fixes rust-lang#83495 r? `@nagisa`
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Labels
A-inline-assembly
Area: Inline assembly (`asm!(…)`)
C-bug
Category: This is a bug.
F-asm
`#![feature(asm)]` (not `llvm_asm`)
O-x86_64
Target: x86-64 processors (like x86_64-*)
T-compiler
Relevant to the compiler team, which will review and decide on the PR/issue.
I tried this code:
I expected to see this happen:
The code compiles, like with
opt-level
0 or 1Instead, this happened:
When compiling with
opt-level
2 or 3, just this message appearsMeta
rustc --version --verbose
:No backtrace
The text was updated successfully, but these errors were encountered: