Skip to content
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

ARM needs a "thumb-state" target-feature to fix a recent breakage that stdsimd caused. #59203

Open
Lokathor opened this issue Mar 15, 2019 · 2 comments
Labels
O-Arm Target: 32-bit Arm processors (armv6, armv7, thumb...), including 64-bit Arm in AArch32 state T-compiler Relevant to the compiler team, which will review and decide on the PR/issue.

Comments

@Lokathor
Copy link
Contributor

Lokathor commented Mar 15, 2019

So recently stdsimd added an intrinsic that was too liberal. The intrinsic needs to only be allowed in in specific circumstances, like so:

#[cfg(any(not(target_feature = "thumb-state"), target_feature = "v6t2"))]

Unfortunately we don't currently have a "thumb-mode" feature.

@gnzlbg said that before a PR for this change we should first have an issue with a ping to @parched, @Amanieu, and @japaric , so that everyone can be on the same page about how to proceed.

EDIT: Within official ARM docs, using ARM or Thumb code is called the "state", not "mode", so we should stick with that naming system. The CPU's "mode" is reserved for a different concept.

@Lokathor Lokathor changed the title ARM needs a "thumb-mode" target-feature to fix a recent breakage that stdsimd caused. ARM needs a "thumb-state" target-feature to fix a recent breakage that stdsimd caused. Mar 16, 2019
@sanxiyn sanxiyn added the O-Arm Target: 32-bit Arm processors (armv6, armv7, thumb...), including 64-bit Arm in AArch32 state label Mar 19, 2019
@jonas-schievink jonas-schievink added the T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. label Nov 9, 2019
@CJKay
Copy link

CJKay commented Dec 29, 2019

This is critical for certain inline assembly like semihosting instructions. There is no way to identify that armv7-linux-androideabi is going to build with Thumb code generation but arm-unknown-linux-gnueabi isn't.

@jonas-schievink
Copy link
Contributor

Related: rust-lang/rfcs#2867

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
O-Arm Target: 32-bit Arm processors (armv6, armv7, thumb...), including 64-bit Arm in AArch32 state T-compiler Relevant to the compiler team, which will review and decide on the PR/issue.
Projects
None yet
Development

No branches or pull requests

4 participants