Skip to content

Commit 7af3c76

Browse files
committed
remove linkage_directive
1 parent e4e4f37 commit 7af3c76

File tree

1 file changed

+4
-23
lines changed

1 file changed

+4
-23
lines changed

compiler/rustc_codegen_ssa/src/mir/naked_asm.rs

Lines changed: 4 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ use crate::common;
22
use crate::traits::{AsmMethods, BuilderMethods, GlobalAsmOperandRef, MiscMethods};
33
use rustc_attr::InstructionSetAttr;
44
use rustc_middle::bug;
5-
use rustc_middle::mir::mono::{Linkage, MonoItem, MonoItemData, Visibility};
5+
use rustc_middle::mir::mono::{MonoItem, MonoItemData, Visibility};
66
use rustc_middle::mir::Body;
77
use rustc_middle::mir::InlineAsmOperand;
88
use rustc_middle::ty;
@@ -116,19 +116,6 @@ impl AsmBinaryFormat {
116116
}
117117
}
118118

119-
fn linkage_directive(linkage: Linkage) -> Option<&'static str> {
120-
match linkage {
121-
Linkage::External => Some(".globl"),
122-
Linkage::WeakAny | Linkage::WeakODR => Some(".weak"),
123-
Linkage::LinkOnceAny | Linkage::LinkOnceODR => Some(".weak"),
124-
Linkage::Internal | Linkage::Private => None, // just doesn't emit any attribute
125-
Linkage::ExternalWeak => None, // terminates with sigill on godbolt
126-
Linkage::AvailableExternally => None, // does not even emit the definition
127-
Linkage::Appending => None, // only valid on global variables
128-
Linkage::Common => None, // function may not have common linkage
129-
}
130-
}
131-
132119
fn prefix_and_suffix<'tcx>(
133120
tcx: TyCtxt<'tcx>,
134121
instance: Instance<'tcx>,
@@ -187,9 +174,7 @@ fn prefix_and_suffix<'tcx>(
187174

188175
writeln!(begin, ".pushsection {section},\"ax\", {progbits}").unwrap();
189176
writeln!(begin, ".balign 4").unwrap();
190-
if let Some(linkage) = linkage_directive(item_data.linkage) {
191-
writeln!(begin, "{linkage} {asm_name}").unwrap();
192-
}
177+
writeln!(begin, ".globl {asm_name}").unwrap();
193178
if let Visibility::Hidden = item_data.visibility {
194179
writeln!(begin, ".hidden {asm_name}").unwrap();
195180
}
@@ -210,9 +195,7 @@ fn prefix_and_suffix<'tcx>(
210195
let section = link_section.unwrap_or("__TEXT,__text".to_string());
211196
writeln!(begin, ".pushsection {},regular,pure_instructions", section).unwrap();
212197
writeln!(begin, ".balign 4").unwrap();
213-
if let Some(linkage) = linkage_directive(item_data.linkage) {
214-
writeln!(begin, "{linkage} {asm_name}").unwrap();
215-
}
198+
writeln!(begin, ".globl {asm_name}").unwrap();
216199
if let Visibility::Hidden = item_data.visibility {
217200
writeln!(begin, ".private_extern {asm_name}").unwrap();
218201
}
@@ -228,9 +211,7 @@ fn prefix_and_suffix<'tcx>(
228211
let section = link_section.unwrap_or(format!(".text.{asm_name}"));
229212
writeln!(begin, ".pushsection {},\"xr\"", section).unwrap();
230213
writeln!(begin, ".balign 4").unwrap();
231-
if let Some(linkage) = linkage_directive(item_data.linkage) {
232-
writeln!(begin, "{linkage} {asm_name}").unwrap();
233-
}
214+
writeln!(begin, ".globl {asm_name}").unwrap();
234215
writeln!(begin, ".def {asm_name}").unwrap();
235216
writeln!(begin, ".scl 2").unwrap();
236217
writeln!(begin, ".type 32").unwrap();

0 commit comments

Comments
 (0)