rust/compiler
bors c97922dca5 Auto merge of #99443 - jam1garner:mips-virt-feature, r=nagisa
Add support for MIPS VZ ISA extension

[Link to relevant LLVM line where virt extension is specified](83fab8cee9/llvm/lib/Target/Mips/Mips.td (L172-L173))

This has been tested on mips-unknown-linux-musl with a target-cpu that is >= MIPS32 5 and `target-features=+virt`. The example was checked in a disassembler to ensure the correct assembly sequence was being generated using the virtualization instructions.

Needed additional work:

* MIPS is missing from [the Rust reference CPU feature lists](https://doc.rust-lang.org/reference/attributes/codegen.html#available-features)

Example docs for later:

```md
#### `mips` or `mips64`

This platform requires that `#[target_feature]` is only applied to [`unsafe`
functions][unsafe function]. This target's feature support is currently unstable
and must be enabled by `#![feature(mips_target_feature)]` ([Issue #44839])

[Issue #44839]: https://github.com/rust-lang/rust/issues/44839

Further documentation on these features can be found in the [MIPS Instruction Set
Reference Manual], or elsewhere on [mips.com].

[MIPS Instruction Set Reference Manual]: https://s3-eu-west-1.amazonaws.com/downloads-mips/documents/MD00086-2B-MIPS32BIS-AFP-6.06.pdf
[developer.arm.com]: https://www.mips.com/products/architectures/ase/

Feature        | Implicitly Enables | Description
---------------|--------------------|-------------------
`fp64`         |                    | 64-bit Floating Point
`msa`          |                    | "MIPS SIMD Architecture"
`virt`         |                    | Virtualization instructions (VZ ASE)
```

If the above is good I can also submit a PR for that if there's interest in documenting it while it's still unstable. Otherwise that can be dropped, I just wrote it before realizing it was possibly not a good idea.

Relevant to #44839
2022-09-14 08:21:25 +00:00
..
rustc
rustc_apfloat
rustc_arena
rustc_ast Auto merge of #101709 - nnethercote:simplify-visitors-more, r=cjgillot 2022-09-14 05:21:14 +00:00
rustc_ast_lowering Auto merge of #101709 - nnethercote:simplify-visitors-more, r=cjgillot 2022-09-14 05:21:14 +00:00
rustc_ast_passes Auto merge of #101709 - nnethercote:simplify-visitors-more, r=cjgillot 2022-09-14 05:21:14 +00:00
rustc_ast_pretty
rustc_attr
rustc_borrowck Use def_span for external requirements. 2022-09-13 19:18:24 +02:00
rustc_builtin_macros
rustc_codegen_cranelift Auto merge of #99556 - davidtwco:collapse-debuginfo, r=wesleywiser 2022-09-13 01:19:05 +00:00
rustc_codegen_gcc
rustc_codegen_llvm Auto merge of #99443 - jam1garner:mips-virt-feature, r=nagisa 2022-09-14 08:21:25 +00:00
rustc_codegen_ssa Auto merge of #99443 - jam1garner:mips-virt-feature, r=nagisa 2022-09-14 08:21:25 +00:00
rustc_const_eval
rustc_data_structures Auto merge of #99334 - NiklasJonsson:84447/error-privacy, r=oli-obk 2022-09-12 15:57:37 +00:00
rustc_driver
rustc_error_codes
rustc_error_messages Rollup merge of #101266 - LuisCardosoOliveira:translation-rustcsession-pt3, r=davidtwco 2022-09-13 22:25:34 +02:00
rustc_errors Rollup merge of #101266 - LuisCardosoOliveira:translation-rustcsession-pt3, r=davidtwco 2022-09-13 22:25:34 +02:00
rustc_expand Rollup merge of #101602 - nnethercote:AttrTokenStream, r=petrochenkov 2022-09-13 16:51:31 +05:30
rustc_feature Auto merge of #96709 - jackh726:gats-stabilization, r=compiler-errors 2022-09-13 09:39:41 +00:00
rustc_fs_util
rustc_graphviz
rustc_hir Auto merge of #101709 - nnethercote:simplify-visitors-more, r=cjgillot 2022-09-14 05:21:14 +00:00
rustc_hir_pretty
rustc_incremental
rustc_index
rustc_infer Auto merge of #101709 - nnethercote:simplify-visitors-more, r=cjgillot 2022-09-14 05:21:14 +00:00
rustc_interface change rlib format to discern native dependencies 2022-09-12 16:45:03 +03:00
rustc_lexer
rustc_lint Auto merge of #101709 - nnethercote:simplify-visitors-more, r=cjgillot 2022-09-14 05:21:14 +00:00
rustc_lint_defs Auto merge of #96709 - jackh726:gats-stabilization, r=compiler-errors 2022-09-13 09:39:41 +00:00
rustc_llvm
rustc_log
rustc_macros
rustc_metadata Auto merge of #96709 - jackh726:gats-stabilization, r=compiler-errors 2022-09-13 09:39:41 +00:00
rustc_middle Auto merge of #101307 - jyn514:simplify-storage, r=cjgillot 2022-09-14 02:39:51 +00:00
rustc_mir_build Shrink some visibilities. 2022-09-13 19:18:24 +02:00
rustc_mir_dataflow
rustc_mir_transform
rustc_monomorphize
rustc_parse
rustc_parse_format
rustc_passes Auto merge of #101709 - nnethercote:simplify-visitors-more, r=cjgillot 2022-09-14 05:21:14 +00:00
rustc_plugin_impl
rustc_privacy Auto merge of #101709 - nnethercote:simplify-visitors-more, r=cjgillot 2022-09-14 05:21:14 +00:00
rustc_query_impl Auto merge of #101307 - jyn514:simplify-storage, r=cjgillot 2022-09-14 02:39:51 +00:00
rustc_query_system
rustc_resolve Auto merge of #101709 - nnethercote:simplify-visitors-more, r=cjgillot 2022-09-14 05:21:14 +00:00
rustc_save_analysis Remove path_span argument to the visit_path_segment methods. 2022-09-12 13:24:25 +10:00
rustc_serialize
rustc_session Rollup merge of #101266 - LuisCardosoOliveira:translation-rustcsession-pt3, r=davidtwco 2022-09-13 22:25:34 +02:00
rustc_smir Only keep one version of ImplicitSelfKind. 2022-09-13 19:18:23 +02:00
rustc_span Auto merge of #100640 - reitermarkus:socket-display-buffer, r=thomcc 2022-09-13 06:41:37 +00:00
rustc_symbol_mangling
rustc_target
rustc_trait_selection Auto merge of #96709 - jackh726:gats-stabilization, r=compiler-errors 2022-09-13 09:39:41 +00:00
rustc_traits
rustc_transmute
rustc_ty_utils Auto merge of #100251 - compiler-errors:tuple-trait-2, r=jackh726 2022-09-12 03:24:29 +00:00
rustc_type_ir
rustc_typeck Auto merge of #101709 - nnethercote:simplify-visitors-more, r=cjgillot 2022-09-14 05:21:14 +00:00