diff --git a/cranelift/codegen/src/isa/mod.rs b/cranelift/codegen/src/isa/mod.rs index 20e38ddeb4..c36d29ce2b 100644 --- a/cranelift/codegen/src/isa/mod.rs +++ b/cranelift/codegen/src/isa/mod.rs @@ -88,18 +88,17 @@ pub mod registers; mod stack; /// Returns a builder that can create a corresponding `TargetIsa` -/// or `Err(LookupError::Unsupported)` if not enabled. +/// or `Err(LookupError::SupportDisabled)` if not enabled. macro_rules! isa_builder { - ($name:ident, $feature:tt) => {{ + ($name: ident, $feature: tt, $triple: ident) => {{ #[cfg(feature = $feature)] - fn $name(triple: Triple) -> Result { - Ok($name::isa_builder(triple)) - }; + { + Ok($name::isa_builder($triple)) + } #[cfg(not(feature = $feature))] - fn $name(_triple: Triple) -> Result { + { Err(LookupError::SupportDisabled) } - $name }}; } @@ -107,12 +106,12 @@ macro_rules! isa_builder { /// Return a builder that can create a corresponding `TargetIsa`. pub fn lookup(triple: Triple) -> Result { match triple.architecture { - Architecture::Riscv32 | Architecture::Riscv64 => isa_builder!(riscv, "riscv")(triple), + Architecture::Riscv32 | Architecture::Riscv64 => isa_builder!(riscv, "riscv", triple), Architecture::I386 | Architecture::I586 | Architecture::I686 | Architecture::X86_64 => { - isa_builder!(x86, "x86")(triple) + isa_builder!(x86, "x86", triple) } - Architecture::Arm { .. } => isa_builder!(arm32, "arm32")(triple), - Architecture::Aarch64 { .. } => isa_builder!(arm64, "arm64")(triple), + Architecture::Arm { .. } => isa_builder!(arm32, "arm32", triple), + Architecture::Aarch64 { .. } => isa_builder!(arm64, "arm64", triple), _ => Err(LookupError::Unsupported), } }