Path: blob/main/cranelift/assembler-x64/meta/src/lib.rs
1693 views
//! This crate generates Cranelift-specific assembly code for x64 instructions; see the `README.md`1//! for more information.23pub mod dsl;4mod generate;5pub mod instructions;67use cranelift_srcgen::{Formatter, Language};8use std::path::{Path, PathBuf};910/// Generate the assembler `file` containing the core assembler logic; each of11/// the DSL-defined instructions is emitted into a Rust `enum Inst`.12///13/// # Panics14///15/// This function panics if we cannot update the file.16pub fn generate_rust_assembler<P: AsRef<Path>>(dir: P, file: &str) -> PathBuf {17let out = dir.as_ref().join(file);18eprintln!("Generating {}", out.display());19let mut fmt = Formatter::new(Language::Rust);20generate::rust_assembler(&mut fmt, &instructions::list());21fmt.write(file, dir.as_ref()).unwrap();22out23}242526