diff options
| author | bors <bors@rust-lang.org> | 2020-10-09 00:29:47 +0000 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2020-10-09 00:29:47 +0000 |
| commit | 03ef8a081ef713609a65e71ed41c6775aeb138aa (patch) | |
| tree | 93f00603d6f1b4e7258c20e696619ffd8e727fa0 /compiler/rustc_codegen_llvm/src | |
| parent | 8a84c4f9c82fbcae8e12201c141518c357d88410 (diff) | |
| parent | bdb3f7716b567178ebda5006ed62cbe476408ef3 (diff) | |
| download | rust-03ef8a081ef713609a65e71ed41c6775aeb138aa.tar.gz rust-03ef8a081ef713609a65e71ed41c6775aeb138aa.zip | |
Auto merge of #76260 - xd009642:rfc/2867, r=jonas-schievink
Implementation of RFC2867 https://github.com/rust-lang/rust/issues/74727 So I've started work on this, I think my next steps are to make use of the `instruction_set` value in the llvm codegen but this is the point where I begin to get a bit lost. I'm looking at the code but it would be nice to have some guidance on what I've currently done and what I'm doing next :smile:
Diffstat (limited to 'compiler/rustc_codegen_llvm/src')
| -rw-r--r-- | compiler/rustc_codegen_llvm/src/attributes.rs | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/compiler/rustc_codegen_llvm/src/attributes.rs b/compiler/rustc_codegen_llvm/src/attributes.rs index a633ea5e5a9..f02c30c3ee3 100644 --- a/compiler/rustc_codegen_llvm/src/attributes.rs +++ b/compiler/rustc_codegen_llvm/src/attributes.rs @@ -18,7 +18,7 @@ use crate::attributes; use crate::llvm::AttributePlace::Function; use crate::llvm::{self, Attribute}; use crate::llvm_util; -pub use rustc_attr::{InlineAttr, OptimizeAttr}; +pub use rustc_attr::{InlineAttr, InstructionSetAttr, OptimizeAttr}; use crate::context::CodegenCx; use crate::value::Value; @@ -310,6 +310,10 @@ pub fn from_fn_attrs(cx: &CodegenCx<'ll, 'tcx>, llfn: &'ll Value, instance: ty:: let feature = &f.as_str(); format!("+{}", llvm_util::to_llvm_feature(cx.tcx.sess, feature)) })) + .chain(codegen_fn_attrs.instruction_set.iter().map(|x| match x { + InstructionSetAttr::ArmA32 => "-thumb-mode".to_string(), + InstructionSetAttr::ArmT32 => "+thumb-mode".to_string(), + })) .collect::<Vec<String>>() .join(","); |
