mirror of https://github.com/rust-lang/rust.git
![]() The target feature names are, right now, based on the llvm target feature names. These mostly line up well with the names of [Facility Inidications](https://publibfp.dhe.ibm.com/epubs/pdf/a227832d.pdf#page=301) names. The linux kernel uses shorter, more cryptic names. (e.g. "vector" is `vx`). We can deviate from the llvm names, but the CPU vendor (IBM) does not appear to use e.g. `vx` for what they call `vector`.
There are a number of implied target features between the vector facilities (based on the [Facility Inidications](https://publibfp.dhe.ibm.com/epubs/pdf/a227832d.pdf#page=301) table):
- 129 The vector facility for z/Architecture is installed in the z/Architecture architectural mode.
- 134 The vector packed decimal facility is installed in the z/Architecture architectural mode. When bit 134 is one, bit 129 is also one.
- 135 The vector enhancements facility 1 is installed in the z/Architecture architectural mode. When bit 135 is one, bit 129 is also one.
- 148 The vector-enhancements facility 2 is installed in the z/Architecture architectural mode. When bit 148 is one, bits 129 and 135 are also one.
- 152 The vector-packed-decimal-enhancement facility 1 is installed in the z/Architecture architectural mode. When bit 152 is one, bits 129 and 134 are also one.
- 165 The neural-network-processing-assist facility is installed in the z/Architecture architectural mode. When bit 165 is one, bit 129 is also one.
- 192 The vector-packed-decimal-enhancement facility 2 is installed in the z/Architecture architectural mode. When bit 192 is one, bits 129, 134, and 152 are also one.
And then there are a number of facilities without any implied target features
- 45 The distinct-operands, fast-BCR-serialization, high-word, and population-count facilities, the interlocked-access facility 1, and the load/store-oncondition facility 1 are installed in the z/Architecture architectural mode.
- 73 The transactional-execution facility is installed in the z/Architecture architectural mode. Bit 49 is one when bit 73 is one.
- 133 The guarded-storage facility is installed in the z/Architecture architectural mode.
- 150 The enhanced-sort facility is installed in the z/Architecture architectural mode.
- 151 The DEFLATE-conversion facility is installed in the z/Architecture architectural mode.
The added target features are those that have ISA implications, can be queried at runtime, and have LLVM support. LLVM [defines more target features](
|
||
---|---|---|
.. | ||
auxiliary | ||
allow-at-crate-level.rs | ||
allow-macro-cfg.rs | ||
allow-same-level.rs | ||
allow-same-level.stderr | ||
allow-top-level.rs | ||
allow-upper-level.rs | ||
and-more-diagnostic.rs | ||
and-more-diagnostic.stderr | ||
cargo-build-script.rs | ||
cargo-build-script.stderr | ||
cargo-feature.none.stderr | ||
cargo-feature.rs | ||
cargo-feature.some.stderr | ||
cfg-value-for-cfg-name-duplicate.rs | ||
cfg-value-for-cfg-name-duplicate.stderr | ||
cfg-value-for-cfg-name-multiple.rs | ||
cfg-value-for-cfg-name-multiple.stderr | ||
cfg-value-for-cfg-name.rs | ||
cfg-value-for-cfg-name.stderr | ||
compact-names.rs | ||
compact-names.stderr | ||
compact-values.rs | ||
compact-values.stderr | ||
concat-values.rs | ||
concat-values.stderr | ||
diagnotics.cargo.stderr | ||
diagnotics.rs | ||
diagnotics.rustc.stderr | ||
empty-values.rs | ||
empty-values.stderr | ||
exhaustive-names-values.empty_cfg.stderr | ||
exhaustive-names-values.feature.stderr | ||
exhaustive-names-values.full.stderr | ||
exhaustive-names-values.rs | ||
exhaustive-names.rs | ||
exhaustive-names.stderr | ||
exhaustive-values.empty_cfg.stderr | ||
exhaustive-values.rs | ||
exhaustive-values.without_names.stderr | ||
invalid-arguments.any_values.stderr | ||
invalid-arguments.anything_else.stderr | ||
invalid-arguments.boolean.stderr | ||
invalid-arguments.cfg_none.stderr | ||
invalid-arguments.giberich.stderr | ||
invalid-arguments.ident_in_values_1.stderr | ||
invalid-arguments.ident_in_values_2.stderr | ||
invalid-arguments.mixed_any.stderr | ||
invalid-arguments.mixed_values_any.stderr | ||
invalid-arguments.multiple_any.stderr | ||
invalid-arguments.multiple_values.stderr | ||
invalid-arguments.multiple_values_any.stderr | ||
invalid-arguments.none_not_empty.stderr | ||
invalid-arguments.not_empty_any.stderr | ||
invalid-arguments.not_empty_values_any.stderr | ||
invalid-arguments.rs | ||
invalid-arguments.string_for_name_1.stderr | ||
invalid-arguments.string_for_name_2.stderr | ||
invalid-arguments.unknown_meta_item_1.stderr | ||
invalid-arguments.unknown_meta_item_2.stderr | ||
invalid-arguments.unknown_meta_item_3.stderr | ||
invalid-arguments.unsafe_attr.stderr | ||
invalid-arguments.unterminated.stderr | ||
invalid-arguments.values_any_before_ident.stderr | ||
invalid-arguments.values_any_missing_values.stderr | ||
mix.rs | ||
mix.stderr | ||
my-awesome-platform.json | ||
no-expected-values.empty.stderr | ||
no-expected-values.mixed.stderr | ||
no-expected-values.rs | ||
no-expected-values.simple.stderr | ||
order-independant.rs | ||
order-independant.values_after.stderr | ||
order-independant.values_before.stderr | ||
raw-keywords.edition2015.stderr | ||
raw-keywords.edition2021.stderr | ||
raw-keywords.rs | ||
report-in-external-macros.cargo.stderr | ||
report-in-external-macros.rs | ||
report-in-external-macros.rustc.stderr | ||
stmt-no-ice.rs | ||
stmt-no-ice.stderr | ||
target_feature.rs | ||
target_feature.stderr | ||
unexpected-cfg-name.rs | ||
unexpected-cfg-name.stderr | ||
unexpected-cfg-value.rs | ||
unexpected-cfg-value.stderr | ||
unknown-values.rs | ||
values-none.concat_1.stderr | ||
values-none.concat_2.stderr | ||
values-none.explicit.stderr | ||
values-none.implicit.stderr | ||
values-none.rs | ||
values-none.simple.stderr | ||
values-target-json.rs | ||
well-known-names.rs | ||
well-known-names.stderr | ||
well-known-values.rs | ||
well-known-values.stderr |