pub fn is_callee_saved(&self) -> bool {
        if cfg!(all(target_family = "unix", target_arch = "x86_64")) {
            // In the System V x64 ABI, `rbx`, `rbp` and `r12-r15` are callee-saved.
            match *self {
                X86Register::BH | X86Register::BL => true,
                _ => false,
            }
        } else if cfg!(all(target_family = "windows", target_arch = "x86_64")) {
            // "The registers RBX, RBP, RDI, RSI, RSP, R12, R13, R14, and R15 are considered
            // nonvolatile and must be saved and restored by a function that uses them."
            match *self {
                X86Register::BH | X86Register::BL => true,
                _ => false,
            }
        } else {
            panic!("unsupported host arch :(");
        }
    }
/// Is this (part of) a callee-saved register? If yes, we need to generate code that does
/// exactly that.
///
/// If a register is not callee-saved, it is caller-saved, which means that we must save its
/// value before calling an external function.
///
/// This is part of the host's calling convention.


If a register is not callee-saved, it is caller-saved, which means that we must save its
value before calling an external function.

This is part of the host's calling convention.
If a register is not callee - saved it is caller - saved which means that we must save its value before calling an external function . This is part of the host ' s calling convention .
pub fn is_callee_saved(&self) -> bool {
        if cfg!(all(target_family = "unix", target_arch = "x86_64")) {
            // In the System V x64 ABI, `rbx`, `rbp` and `r12-r15` are callee-saved.
            match *self {
                X86Register::BH | X86Register::BL => true,
                _ => false,
            }
        } else if cfg!(all(target_family = "windows", target_arch = "x86_64")) {
            // "The registers RBX, RBP, RDI, RSI, RSP, R12, R13, R14, and R15 are considered
            // nonvolatile and must be saved and restored by a function that uses them."
            match *self {
                X86Register::BH | X86Register::BL => true,
                _ => false,
            }
        } else {
            panic!("unsupported host arch :(");
        }
    }
pub fn is_callee_saved ( & self ) -> bool { if cfg ! ( all ( target_family " " target_arch " " ) ) { // In the System V x64 ABI, `rbx`, `rbp` and `r12-r15` are callee-saved. match * self { X86Register :: BH | X86Register :: BL => true , _ => false , } } else if cfg ! ( all ( target_family " " target_arch " " ) ) { // "The registers RBX, RBP, RDI, RSI, RSP, R12, R13, R14, and R15 are considered // nonvolatile and must be saved and restored by a function that uses them." match * self { X86Register :: BH | X86Register :: BL => true , _ => false , } } else { panic ! ( " " ) ; } }
Is this (part of) a callee-saved register?
Is this ( part of ) a callee - saved register?
&self
&self