Add v9, v8plus, and leoncasa target feature to sparc and use v8plus in create_object_file This adds the following three unstable target features: - `v9`: SPARC-V9 instructions ([LLVM definition][sparc-v9]) - Relevant to https://github.com/rust-lang/rust/pull/131222#issuecomment-2453310963 - Relevant to https://github.com/rust-lang/rust/pull/132472#discussion_r1832606081 - This is also needed to implement https://github.com/taiki-e/atomic-maybe-uninit/pull/31 (depends on inline assembly support) more robustly. - `v8plus`: SPARC-V8+ ABI ([LLVM definition][sparc-v8plus]) - This is added in LLVM 20. In LLVM 19 and older, it is emulated to work the same way as LLVM in each LLVM version. - See https://github.com/rust-lang/rust/issues/132585#issuecomment-2453926257 for more. - `leoncasa`: CASA instruction[^1] of LEON3 and LEON4 processors ([LLVM definition][sparc-leoncasa], LLVM feature name: `hasleoncasa`) - This is needed to implement https://github.com/taiki-e/atomic-maybe-uninit/pull/31 (depends on inline assembly support) more robustly. [^1]: Atomic CAS instruction [sparc-v9]:f5e4ffaa49/llvm/lib/Target/Sparc/Sparc.td (L37-L39)
[sparc-v8plus]:f5e4ffaa49/llvm/lib/Target/Sparc/Sparc.td (L37-L39)
[sparc-leoncasa]: https://github.com/llvm/llvm-project/blob/llvmorg-19.1.0/llvm/lib/Target/Sparc/LeonFeatures.td#L32-L37
UI Tests
This folder contains rustc
's
UI tests.
Test Directives (Headers)
Typically, a UI test will have some test directives / headers which are special comments that tell compiletest how to build and intepret a test.
As part of an on-going effort to rewrite compiletest
(see https://github.com/rust-lang/compiler-team/issues/536), a major
change proposal to change legacy compiletest-style headers // <directive>
to ui_test
-style headers
//@ <directive>
was accepted (see
https://github.com/rust-lang/compiler-team/issues/512.
An example directive is ignore-test
. In legacy compiletest style, the header
would be written as
// ignore-test
but in ui_test
style, the header would be written as
//@ ignore-test
compiletest is changed to accept only //@
directives for UI tests
(currently), and will reject and report an error if it encounters any
comments // <content>
that may be parsed as an legacy compiletest-style
test header. To fix this, you should migrate to the ui_test
-style header
//@ <content>
.