Pass the ISA-specific compilation flags to the ABI implementations
Copyright (c) 2021, Arm Limited.
This commit is contained in:
@@ -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 {
|
||||
|
||||
@@ -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)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user