use super::{buffer, code, Word, Patch, Label, Lower, ExecuteFn, Execute, RESULT};
use buffer::{Mmap};
mod enums;
pub use enums::{Register, ALL_REGISTERS, BinaryOp, ALL_BINARY_OPS, ShiftOp, ALL_SHIFT_OPS, Condition, ALL_CONDITIONS, Width, ALL_WIDTHS};
use Register::*;
mod assembler;
pub use assembler::{Assembler};
mod lowerer;
pub use lowerer::{Lowerer, ALLOCATABLE_REGISTERS};
pub const CALLEE_SAVES: [Register; 6] = [RB, RBP, R12, R13, R14, R15];
pub const CALLER_SAVES: [Register; 9] = [RDI, RSI, RD, RC, R8, R9, R10, R11, RA];
pub const ARGUMENTS: [Register; 6] = [RDI, RSI, RD, RC, R8, R9];
pub const RESULTS: [Register; 2] = [RA, RD];
#[derive(Default)]
pub struct Target;
impl super::Target for Target {
type Lowerer = Lowerer<Mmap>;
const NUM_REGISTERS: usize = ALLOCATABLE_REGISTERS.len();
fn lowerer(&self) -> Self::Lowerer {
Lowerer::new()
}
}