jit_assembler/riscv64/
macros.rs

1/// JIT assembler macro interface
2///
3/// This module provides a macro-based interface for writing RISC-V assembly
4/// in a convenient syntax that gets compiled to machine code instructions.
5
6/// RISC-V JIT assembler macro
7///
8/// Provides a clean interface for generating RISC-V instructions.
9/// Uses the generic jit_asm_generic! macro with RISC-V InstructionBuilder.
10///
11/// Usage:
12/// ```rust
13/// use jit_assembler::riscv64::{reg, csr};
14/// use jit_assembler::common::InstructionBuilder;
15///
16/// let instructions = jit_assembler::riscv64_asm! {
17///     csrrw(reg::X1, csr::MSTATUS, reg::X2);
18///     addi(reg::X3, reg::X1, 100);
19///     add(reg::X4, reg::X1, reg::X3);
20/// };
21/// ```
22#[macro_export]
23macro_rules! riscv64_asm {
24    ($($method:ident($($args:expr),*);)*) => {{
25        $crate::jit_asm_generic!($crate::riscv64::Riscv64InstructionBuilder, $($method($($args),*);)*)
26    }};
27}
28
29// The complex jit_asm_chain! macro has been removed.
30// Now we use direct method calls on InstructionBuilder for better IDE support and maintainability.