@@ -2,7 +2,7 @@ use crate::common;
2
2
use crate :: traits:: { AsmMethods , BuilderMethods , GlobalAsmOperandRef , MiscMethods } ;
3
3
use rustc_attr:: InstructionSetAttr ;
4
4
use rustc_middle:: bug;
5
- use rustc_middle:: mir:: mono:: { Linkage , MonoItem , MonoItemData , Visibility } ;
5
+ use rustc_middle:: mir:: mono:: { MonoItem , MonoItemData , Visibility } ;
6
6
use rustc_middle:: mir:: Body ;
7
7
use rustc_middle:: mir:: InlineAsmOperand ;
8
8
use rustc_middle:: ty;
@@ -116,19 +116,6 @@ impl AsmBinaryFormat {
116
116
}
117
117
}
118
118
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
-
132
119
fn prefix_and_suffix < ' tcx > (
133
120
tcx : TyCtxt < ' tcx > ,
134
121
instance : Instance < ' tcx > ,
@@ -187,9 +174,7 @@ fn prefix_and_suffix<'tcx>(
187
174
188
175
writeln ! ( begin, ".pushsection {section},\" ax\" , {progbits}" ) . unwrap ( ) ;
189
176
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 ( ) ;
193
178
if let Visibility :: Hidden = item_data. visibility {
194
179
writeln ! ( begin, ".hidden {asm_name}" ) . unwrap ( ) ;
195
180
}
@@ -210,9 +195,7 @@ fn prefix_and_suffix<'tcx>(
210
195
let section = link_section. unwrap_or ( "__TEXT,__text" . to_string ( ) ) ;
211
196
writeln ! ( begin, ".pushsection {},regular,pure_instructions" , section) . unwrap ( ) ;
212
197
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 ( ) ;
216
199
if let Visibility :: Hidden = item_data. visibility {
217
200
writeln ! ( begin, ".private_extern {asm_name}" ) . unwrap ( ) ;
218
201
}
@@ -228,9 +211,7 @@ fn prefix_and_suffix<'tcx>(
228
211
let section = link_section. unwrap_or ( format ! ( ".text.{asm_name}" ) ) ;
229
212
writeln ! ( begin, ".pushsection {},\" xr\" " , section) . unwrap ( ) ;
230
213
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 ( ) ;
234
215
writeln ! ( begin, ".def {asm_name}" ) . unwrap ( ) ;
235
216
writeln ! ( begin, ".scl 2" ) . unwrap ( ) ;
236
217
writeln ! ( begin, ".type 32" ) . unwrap ( ) ;
0 commit comments