rust/compiler
Matthias Krüger 1762f018f7
Rollup merge of #137860 - taiki-e:powerpcspe-msync, r=workingjubilee
rustc_target: Add msync target feature and enable it on powerpcspe targets

Some older PowerPC processors do not have the `sync` (`sync 0`) and `lwsync` (`sync 1`) instructions, but instead have the `msync` instruction. (IIRC `msync` and `sync` will be assembled into the same bit-pattern, but `lwsync` will be SIGILL. See also https://gcc.gnu.org/legacy-ml/gcc-patches/2006-11/msg01238.html.)

LLVM recognizes this as the [`msync` feature](cc5d8a4b2f/llvm/lib/Target/PowerPC/PPC.td (L140)) and enables for some cpus such as [e500](cc5d8a4b2f/llvm/lib/Target/PowerPC/PPC.td (L644)).

powerpcspe is a target for CPUs such as e500 ([Debian Wiki](https://wiki.debian.org/PowerPCSPEPort)). However, the `msync` feature is currently not enabled except for vxworks, and at least since 2022-04, powerpc-unknown-linux-gnuspe was known to not work on real hardware without `-C target-cpu` (e.g., #96394, #117361).

8c392966a0/compiler/rustc_target/src/spec/targets/powerpc_wrs_vxworks_spe.rs (L28)

Fixes #117361

cc `@BKPepe` ([powerpc-unknown-linux-muslspe target maintainer](https://doc.rust-lang.org/nightly/rustc/platform-support/powerpc-unknown-linux-muslspe.html#target-maintainers))
cc `@glaubitz` (who added powerpc-unknown-linux-gnuspe in https://github.com/rust-lang/rust/pull/48484)
cc `@th0ma7` (who opened #117361)

r? workingjubilee

`@rustbot` label +O-PowerPC +A-target-feature
2025-03-02 22:44:25 +01:00
..
rustc Fix overcapturing, unsafe extern blocks, and new unsafe ops 2025-02-22 00:01:48 +00:00
rustc_abi rename BackendRepr::Vector → SimdVector 2025-02-28 17:17:45 +01:00
rustc_arena Upgrade the compiler to edition 2024 2025-02-22 00:01:48 +00:00
rustc_ast Auto merge of #137517 - nnethercote:rm-NtPat-NtItem-NtStmt, r=petrochenkov 2025-02-28 21:32:39 +00:00
rustc_ast_ir Upgrade the compiler to edition 2024 2025-02-22 00:01:48 +00:00
rustc_ast_lowering Rollup merge of #137824 - estebank:rtn-sugg, r=compiler-errors 2025-03-01 16:03:18 +01:00
rustc_ast_passes Teach structured errors to display short Ty 2025-02-25 16:56:03 +00:00
rustc_ast_pretty Introduce AssocOp::Binary. 2025-02-27 09:53:17 +11:00
rustc_attr_data_structures Spruce up AttributeKind docs 2025-02-26 22:21:36 +00:00
rustc_attr_parsing Remove NtPath. 2025-02-28 08:42:14 +11:00
rustc_baked_icu_data Upgrade the compiler to edition 2024 2025-02-22 00:01:48 +00:00
rustc_borrowck Use mk_ty_from_kind a bit less, clean up lifetime handling in borrowck 2025-02-28 01:27:08 +00:00
rustc_builtin_macros switch #[cfg(not(llvm_enzyme))] to cfg!(llvm_enzyme) 2025-02-27 19:32:30 +05:30
rustc_codegen_cranelift rename BackendRepr::Vector → SimdVector 2025-02-28 17:17:45 +01:00
rustc_codegen_gcc Rollup merge of #137804 - RalfJung:backend-repr-simd-vector, r=workingjubilee 2025-03-01 16:03:10 +01:00
rustc_codegen_llvm Rollup merge of #137804 - RalfJung:backend-repr-simd-vector, r=workingjubilee 2025-03-01 16:03:10 +01:00
rustc_codegen_ssa Rollup merge of #137851 - folkertdev:simd-intrinsic-mask-signed, r=workingjubilee 2025-03-02 22:44:25 +01:00
rustc_const_eval Rollup merge of #137804 - RalfJung:backend-repr-simd-vector, r=workingjubilee 2025-03-01 16:03:10 +01:00
rustc_data_structures Rollup merge of #136579 - bjorn3:fix_thinvec_ext_ub, r=BoxyUwU 2025-02-27 08:56:36 +01:00
rustc_driver Upgrade the compiler to edition 2024 2025-02-22 00:01:48 +00:00
rustc_driver_impl Upgrade the compiler to edition 2024 2025-02-22 00:01:48 +00:00
rustc_error_codes Update E0133 docs for 2024 edition 2025-02-27 08:33:44 -08:00
rustc_error_messages Upgrade the compiler to edition 2024 2025-02-22 00:01:48 +00:00
rustc_errors Fix rebase 2025-02-25 17:27:22 +00:00
rustc_expand Remove NtPath. 2025-02-28 08:42:14 +11:00
rustc_feature Introduce feature(generic_const_parameter_types) 2025-02-28 20:43:15 +00:00
rustc_fluent_macro Upgrade the compiler to edition 2024 2025-02-22 00:01:48 +00:00
rustc_fs_util Upgrade the compiler to edition 2024 2025-02-22 00:01:48 +00:00
rustc_graphviz Upgrade the compiler to edition 2024 2025-02-22 00:01:48 +00:00
rustc_hashes Upgrade the compiler to edition 2024 2025-02-22 00:01:48 +00:00
rustc_hir Rollup merge of #137686 - nbdd0121:asm_const, r=compiler-errors 2025-03-01 05:49:52 +01:00
rustc_hir_analysis Rollup merge of #137837 - fee1-dead-contrib:push-pvqvwuvrnwsy, r=compiler-errors 2025-03-01 16:03:20 +01:00
rustc_hir_pretty Rollup merge of #137686 - nbdd0121:asm_const, r=compiler-errors 2025-03-01 05:49:52 +01:00
rustc_hir_typeck Rollup merge of #137763 - compiler-errors:ty-nits, r=BoxyUwU 2025-03-01 11:34:00 +01:00
rustc_incremental Change span field accesses to method calls 2025-02-24 14:22:31 +01:00
rustc_index Rollup merge of #136610 - Jarcho:range_idx, r=Noratrieb 2025-02-24 02:11:32 -05:00
rustc_index_macros Upgrade the compiler to edition 2024 2025-02-22 00:01:48 +00:00
rustc_infer Use Binder<Vec<T>> instead of Vec<Binder<T>> in new solver 2025-02-26 17:32:26 +00:00
rustc_interface Auto merge of #137420 - matthiaskrgr:rollup-rr0q37f, r=matthiaskrgr 2025-02-22 13:32:44 +00:00
rustc_lexer Greatly simplify lifetime captures in edition 2024 2025-02-22 22:24:52 +00:00
rustc_lint Rollup merge of #136424 - 11happy:overflow.hex.fix, r=fmease 2025-02-28 21:41:58 +08:00
rustc_lint_defs Introduce new-style attribute parsers for several attributes 2025-02-24 14:31:17 +01:00
rustc_llvm Auto merge of #133250 - DianQK:embed-bitcode-pgo, r=nikic 2025-03-01 08:22:18 +00:00
rustc_log Upgrade the compiler to edition 2024 2025-02-22 00:01:48 +00:00
rustc_macros pretty print hir attributes 2025-02-24 14:31:19 +01:00
rustc_metadata Rollup merge of #137201 - estebank:structured-errors-long-ty, r=oli-obk 2025-02-26 19:03:55 +01:00
rustc_middle Rollup merge of #137837 - fee1-dead-contrib:push-pvqvwuvrnwsy, r=compiler-errors 2025-03-01 16:03:20 +01:00
rustc_mir_build Rollup merge of #137686 - nbdd0121:asm_const, r=compiler-errors 2025-03-01 05:49:52 +01:00
rustc_mir_dataflow Greatly simplify lifetime captures in edition 2024 2025-02-22 22:24:52 +00:00
rustc_mir_transform rename BackendRepr::Vector → SimdVector 2025-02-28 17:17:45 +01:00
rustc_monomorphize rename BackendRepr::Vector → SimdVector 2025-02-28 17:17:45 +01:00
rustc_next_trait_solver Rollup merge of #137776 - nnethercote:rustc_transmute-cleanups, r=jswrenn 2025-03-01 11:34:01 +01:00
rustc_parse Rollup merge of #137824 - estebank:rtn-sugg, r=compiler-errors 2025-03-01 16:03:18 +01:00
rustc_parse_format Upgrade the compiler to edition 2024 2025-02-22 00:01:48 +00:00
rustc_passes require trait impls to have matching const stabilities as the traits 2025-02-27 04:56:27 +00:00
rustc_pattern_analysis Greatly simplify lifetime captures in edition 2024 2025-02-22 22:24:52 +00:00
rustc_privacy Introduce new-style attribute parsers for several attributes 2025-02-24 14:31:17 +01:00
rustc_query_impl Introduce new parsing infrastructure and types for parsed attributes 2025-02-24 14:26:06 +01:00
rustc_query_system Introduce new parsing infrastructure and types for parsed attributes 2025-02-24 14:26:06 +01:00
rustc_resolve Rollup merge of #137617 - BoxyUwU:generic_const_parameter_types, r=lcnr 2025-03-01 11:33:58 +01:00
rustc_sanitizers Introduce new-style attribute parsers for several attributes 2025-02-24 14:31:17 +01:00
rustc_serialize rename sub_ptr 😅 2025-02-23 23:11:00 +07:00
rustc_session Auto merge of #133250 - DianQK:embed-bitcode-pgo, r=nikic 2025-03-01 08:22:18 +00:00
rustc_smir rename BackendRepr::Vector → SimdVector 2025-02-28 17:17:45 +01:00
rustc_span Introduce feature(generic_const_parameter_types) 2025-02-28 20:43:15 +00:00
rustc_symbol_mangling Introduce new-style attribute parsers for several attributes 2025-02-24 14:31:17 +01:00
rustc_target Rollup merge of #137860 - taiki-e:powerpcspe-msync, r=workingjubilee 2025-03-02 22:44:25 +01:00
rustc_trait_selection Rollup merge of #137822 - BoxyUwU:query_normalizer_docs, r=compiler-errors 2025-03-01 16:03:17 +01:00
rustc_traits Rollup merge of #137333 - compiler-errors:edition-2024-fresh, r=Nadrieril 2025-02-22 11:36:43 +01:00
rustc_transmute Remove allow(dead_code) attributes. 2025-02-28 17:31:31 +11:00
rustc_ty_utils Rollup merge of #137804 - RalfJung:backend-repr-simd-vector, r=workingjubilee 2025-03-01 16:03:10 +01:00
rustc_type_ir Rollup merge of #137689 - compiler-errors:coroutine, r=lcnr 2025-03-01 05:49:53 +01:00
rustc_type_ir_macros Upgrade the compiler to edition 2024 2025-02-22 00:01:48 +00:00
stable_mir change smir attributes getters to only support tool attributes 2025-02-24 14:31:19 +01:00