Skip to content

Commit 9e7dae7

Browse files
committed
more comments
1 parent d02b18a commit 9e7dae7

File tree

1 file changed

+15
-5
lines changed

1 file changed

+15
-5
lines changed

compiler/rustc_codegen_ssa/src/mir/naked_asm.rs

Lines changed: 15 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -154,7 +154,7 @@ fn parse_architecture(
154154
"csky" => (Architecture::Csky, None),
155155
"arm64ec" => (Architecture::Aarch64, Some(SubArchitecture::Arm64EC)),
156156

157-
// added here
157+
// These architecutres are added here, and not present in `create_object_file`
158158
"wasm32" => (Architecture::Wasm32, None),
159159
"wasm64" => (Architecture::Wasm64, None),
160160
"m68k" => (Architecture::M68k, None),
@@ -243,10 +243,10 @@ fn enable_disable_target_features<'tcx>(
243243
if let Some(minimum_isa) = features.filter_map(isa_revision_for_feature).max() {
244244
writeln!(begin, ".machine arch{minimum_isa}").unwrap();
245245

246-
// NOTE: LLVM does not support `.machine push` and `.machine pop`, so we rely on these
246+
// NOTE: LLVM does not currently support `.machine push` and `.machine pop`, so we rely on these
247247
// target features only being applied to this ASM block (LLVM clears them for the next)
248248
//
249-
// https://github.com/llvm/llvm-project/blob/74306afe87b85cb9b5734044eb6c74b8290098b3/llvm/lib/Target/SystemZ/AsmParser/SystemZAsmParser.cpp#L1362
249+
// https://github.com/llvm/llvm-project/issues/129053
250250
}
251251
}
252252
Architecture::PowerPc | Architecture::PowerPc64 => {
@@ -283,8 +283,18 @@ fn enable_disable_target_features<'tcx>(
283283
Architecture::M68k => {
284284
// https://sourceware.org/binutils/docs/as/M68K_002dDirectives.html#index-directives_002c-M680x0
285285

286-
// FIXME support m64k
287-
// return None;
286+
// M68k suports the .cpu and .arch directives, but they both can only be applied once
287+
//
288+
// > If it is given multiple times, or in conjunction with the -march option,
289+
// > all uses must be for the same architecture and extension set.
290+
//
291+
// That is not flexible enough for us, because different functions might want different
292+
// features.
293+
//
294+
// So far, we've not found any cases where ignoring the target features causes issues,
295+
// so that's what we do for now.
296+
297+
/* fallthrough */
288298
}
289299

290300
Architecture::Wasm32 | Architecture::Wasm64 => {

0 commit comments

Comments
 (0)