add List.map*

This commit is contained in:
Folkert 2023-08-27 21:06:41 +02:00
parent 07622eb6fd
commit 51067f0ae4
No known key found for this signature in database
GPG key ID: 1F17F6FFD112B97C
5 changed files with 605 additions and 66 deletions

View file

@ -51,7 +51,7 @@ pub fn build_module<'a, 'r>(
b".note.GNU-stack".to_vec(),
SectionKind::Elf(object::elf::SHT_PROGBITS),
);
build_object(procedures, backend, object)
build_object(env.mode, procedures, backend, object)
}
Triple {
architecture: TargetArch::X86_64,
@ -65,6 +65,7 @@ pub fn build_module<'a, 'r>(
x86_64::X86_64SystemV,
>(env, TargetInfo::default_x86_64(), interns, layout_interner);
build_object(
env.mode,
procedures,
backend,
Object::new(
@ -86,6 +87,7 @@ pub fn build_module<'a, 'r>(
x86_64::X86_64WindowsFastcall,
>(env, TargetInfo::default_x86_64(), interns, layout_interner);
build_object(
env.mode,
procedures,
backend,
Object::new(BinaryFormat::Coff, Architecture::X86_64, Endianness::Little),
@ -104,6 +106,7 @@ pub fn build_module<'a, 'r>(
aarch64::AArch64Call,
>(env, TargetInfo::default_aarch64(), interns, layout_interner);
build_object(
env.mode,
procedures,
backend,
Object::new(BinaryFormat::Elf, Architecture::Aarch64, Endianness::Little),
@ -122,6 +125,7 @@ pub fn build_module<'a, 'r>(
aarch64::AArch64Call,
>(env, TargetInfo::default_aarch64(), interns, layout_interner);
build_object(
env.mode,
procedures,
backend,
Object::new(
@ -294,6 +298,7 @@ fn generate_wrapper<'a, B: Backend<'a>>(
}
fn build_object<'a, B: Backend<'a>>(
mode: AssemblyBackendMode,
procedures: MutMap<(symbol::Symbol, ProcLayout<'a>), Proc<'a>>,
mut backend: B,
mut output: Object<'a>,
@ -402,9 +407,11 @@ fn build_object<'a, B: Backend<'a>>(
module_id.register_debug_idents(ident_ids);
}
// println!("{}", test_helper.to_pretty(backend.interner(), 200, true));
if let AssemblyBackendMode::Test = mode {
if true {
println!("{}", test_helper.to_pretty(backend.interner(), 200, true));
}
if let AssemblyBackendMode::Test = backend.env().mode {
build_proc_symbol(
&mut output,
&mut layout_ids,