@@ -2,7 +2,7 @@ use crate::common;
22use crate :: traits:: { AsmMethods , BuilderMethods , GlobalAsmOperandRef , MiscMethods } ;
33use rustc_attr:: InstructionSetAttr ;
44use rustc_middle:: bug;
5- use rustc_middle:: mir:: mono:: { Linkage , MonoItem , MonoItemData , Visibility } ;
5+ use rustc_middle:: mir:: mono:: { MonoItem , MonoItemData , Visibility } ;
66use rustc_middle:: mir:: Body ;
77use rustc_middle:: mir:: InlineAsmOperand ;
88use 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-
132119fn 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