Pass the ISA-specific compilation flags to the ABI implementations

Copyright (c) 2021, Arm Limited.
This commit is contained in:
Anton Kirilov
2021-11-16 23:40:19 +00:00
parent df37074218
commit 89919f4b1f
6 changed files with 21 additions and 8 deletions

View File

@@ -619,7 +619,10 @@ impl ABIMachineSpec for AArch64MachineDeps {
}
}
fn gen_debug_frame_info(flags: &settings::Flags) -> SmallInstVec<Inst> {
fn gen_debug_frame_info(
flags: &settings::Flags,
_isa_flags: &Vec<settings::Value>,
) -> SmallInstVec<Inst> {
let mut insts = SmallVec::new();
if flags.unwind_info() {
insts.push(Inst::Unwind {

View File

@@ -57,7 +57,7 @@ impl AArch64Backend {
flags: shared_settings::Flags,
) -> CodegenResult<VCode<inst::Inst>> {
let emit_info = EmitInfo::new(flags.clone());
let abi = Box::new(abi::AArch64ABICallee::new(func, flags)?);
let abi = Box::new(abi::AArch64ABICallee::new(func, flags, self.isa_flags())?);
compile::compile::<AArch64Backend>(func, self, abi, &self.reg_universe, emit_info)
}
}

View File

@@ -48,7 +48,7 @@ impl Arm32Backend {
// This performs lowering to VCode, register-allocates the code, computes
// block layout and finalizes branches. The result is ready for binary emission.
let emit_info = EmitInfo::new(flags.clone());
let abi = Box::new(abi::Arm32ABICallee::new(func, flags)?);
let abi = Box::new(abi::Arm32ABICallee::new(func, flags, self.isa_flags())?);
compile::compile::<Arm32Backend>(func, self, abi, &self.reg_universe, emit_info)
}
}

View File

@@ -60,7 +60,7 @@ impl S390xBackend {
flags: shared_settings::Flags,
) -> CodegenResult<VCode<inst::Inst>> {
let emit_info = EmitInfo::new(flags.clone(), self.isa_flags.clone());
let abi = Box::new(abi::S390xABICallee::new(func, flags)?);
let abi = Box::new(abi::S390xABICallee::new(func, flags, self.isa_flags())?);
compile::compile::<S390xBackend>(func, self, abi, &self.reg_universe, emit_info)
}
}

View File

@@ -49,7 +49,7 @@ impl X64Backend {
// This performs lowering to VCode, register-allocates the code, computes
// block layout and finalizes branches. The result is ready for binary emission.
let emit_info = EmitInfo::new(flags.clone(), self.x64_flags.clone());
let abi = Box::new(abi::X64ABICallee::new(&func, flags)?);
let abi = Box::new(abi::X64ABICallee::new(&func, flags, self.isa_flags())?);
compile::compile::<Self>(&func, self, abi, &self.reg_universe, emit_info)
}
}