| Inline assembly (`asm!`) is not supported on this target. |
| |
| Example of erroneous code: |
| |
| ```ignore (cannot-change-target) |
| // compile-flags: --target sparc64-unknown-linux-gnu |
| #![no_std] |
| |
| use core::arch::asm; |
| |
| fn main() { |
| unsafe { |
| asm!(""); // error: inline assembly is not supported on this target |
| } |
| } |
| ``` |
| |
| The Rust compiler does not support inline assembly, with the `asm!` macro |
| (previously `llvm_asm!`), for all targets. All Tier 1 targets do support this |
| macro but support among Tier 2 and 3 targets is not guaranteed (even when they |
| have `std` support). Note that this error is related to |
| `error[E0658]: inline assembly is not stable yet on this architecture`, but |
| distinct in that with `E0472` support is not planned or in progress. |
| |
| There is no way to easily fix this issue, however: |
| * Consider if you really need inline assembly, is there some other way to |
| achieve your goal (intrinsics, etc)? |
| * Consider writing your assembly externally, linking with it and calling it |
| from Rust. |
| * Consider contributing to <https://github.com/rust-lang/rust> and help |
| integrate support for your target! |