Auto merge of #38079 - BurntSushi:attrtarget, r=alexcrichton
Add new #[target_feature = "..."] attribute.
This commit adds a new attribute that instructs the compiler to emit
target specific code for a single function. For example, the following
function is permitted to use instructions that are part of SSE 4.2:
#[target_feature = "+sse4.2"]
fn foo() { ... }
In particular, use of this attribute does not require setting the
-C target-feature or -C target-cpu options on rustc.
This attribute does not have any protections built into it. For example,
nothing stops one from calling the above `foo` function on hosts without
SSE 4.2 support. Doing so may result in a SIGILL.
I've also expanded the x86 target feature whitelist.
This commit is contained in:
@@ -66,13 +66,13 @@ impl LLVMRustResult {
|
||||
|
||||
pub fn AddFunctionAttrStringValue(llfn: ValueRef,
|
||||
idx: AttributePlace,
|
||||
attr: &'static str,
|
||||
value: &'static str) {
|
||||
attr: &CStr,
|
||||
value: &CStr) {
|
||||
unsafe {
|
||||
LLVMRustAddFunctionAttrStringValue(llfn,
|
||||
idx.as_uint(),
|
||||
attr.as_ptr() as *const _,
|
||||
value.as_ptr() as *const _)
|
||||
attr.as_ptr(),
|
||||
value.as_ptr())
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user