use super::{buffer, code, Patch, Label, RESULT, Lower, ExecuteFn, Execute};
use buffer::{Mmap};
mod immediate;
pub use immediate::{Offset, Shift, Unsigned, LogicImmediate};
mod enums;
pub use enums::{Register, RSP, Condition, ALL_CONDITIONS, MemOp, ShiftOp, AddOp, LogicOp};
use Register::*;
mod assembler;
pub use assembler::{Assembler};
mod lowerer;
pub use lowerer::{Lowerer, ALLOCATABLE_REGISTERS};
pub const CALLEE_SAVES: [Register; 10] = [R19, R20, R21, R22, R23, R24, R25, R26, R27, R28];
pub const CALLER_SAVES: [Register; 18] = [R0, R1, R2, R3, R4, R5, R6, R7, R8, R9, R10, R11, R12, R13, R14, R15, R16, R17];
pub const ARGUMENTS: [Register; 8] = [R0, R1, R2, R3, R4, R5, R6, R7];
pub const RESULTS: [Register; 8] = [R0, R1, R2, R3, R4, R5, R6, R7];
#[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()
}
}