fn add_asm_call(
        &mut self,
        code: String,
        potentially_excepting: Option<MuName>,
        use_vec: Vec<P<Value>>,
        def_vec: Vec<P<Value>>,
        target: Option<(MuID, ASMLocation)>
    ) {
        let mut uses: LinkedHashMap<MuID, Vec<ASMLocation>> = LinkedHashMap::new();
        if target.is_some() {
            let (id, loc) = target.unwrap();
            uses.insert(id, vec![loc]);
        }
        for u in use_vec {
            uses.insert(u.id(), vec![]);
        }

        let mut defines: LinkedHashMap<MuID, Vec<ASMLocation>> = LinkedHashMap::new();
        for d in def_vec {
            defines.insert(d.id(), vec![]);
        }

        self.add_asm_inst_internal(
            code,
            defines,
            uses,
            false,
            {
                if potentially_excepting.is_some() {
                    ASMBranchTarget::PotentiallyExcepting(potentially_excepting.unwrap())
                } else {
                    ASMBranchTarget::None
                }
            },
            None
        )
    }
/// appends a call instruction. In this instruction:
/// * return registers are defined
/// * caller saved registers are defined
/// * user supplied registers
appends a call instruction. In this instruction:
return registers are defined
caller saved registers are defined
user supplied registers
appends a call instruction . In this instruction : return registers are defined caller saved registers are defined user supplied registers
fn add_asm_call(
        &mut self,
        code: String,
        potentially_excepting: Option<MuName>,
        use_vec: Vec<P<Value>>,
        def_vec: Vec<P<Value>>,
        target: Option<(MuID, ASMLocation)>
    ) {
        let mut uses: LinkedHashMap<MuID, Vec<ASMLocation>> = LinkedHashMap::new();
        if target.is_some() {
            let (id, loc) = target.unwrap();
            uses.insert(id, vec![loc]);
        }
        for u in use_vec {
            uses.insert(u.id(), vec![]);
        }
        let mut defines: LinkedHashMap<MuID, Vec<ASMLocation>> = LinkedHashMap::new();
        for d in def_vec {
            defines.insert(d.id(), vec![]);
        }
        self.add_asm_inst_internal(
            code,
            defines,
            uses,
            false,
            {
                if potentially_excepting.is_some() {
                    ASMBranchTarget::PotentiallyExcepting(potentially_excepting.unwrap())
                } else {
                    ASMBranchTarget::None
                }
            },
            None
        )
    }
fn add_asm_call ( & mut self , code : String , potentially_excepting : Option < MuName > , use_vec : Vec < P < Value > > , def_vec : Vec < P < Value > > , target : Option < ( MuID , ASMLocation ) > ) { let mut uses : LinkedHashMap < MuID , Vec < ASMLocation > > = LinkedHashMap :: new ( ) ; if target . is_some ( ) { let ( id , loc ) = target . unwrap ( ) ; uses . insert ( id , vec ! [ loc ] ) ; } for u in use_vec { uses . insert ( u . id ( ) , vec ! [ ] ) ; } let mut defines : LinkedHashMap < MuID , Vec < ASMLocation > > = LinkedHashMap :: new ( ) ; for d in def_vec { defines . insert ( d . id ( ) , vec ! [ ] ) ; } self . add_asm_inst_internal ( code , defines , uses , false , { if potentially_excepting . is_some ( ) { ASMBranchTarget :: PotentiallyExcepting ( potentially_excepting . unwrap ( ) ) } else { ASMBranchTarget :: None } } , None ) }
appends a call instruction.
appends a call instruction .
&mut self
code
String
potentially_excepting
Option<MuName>
use_vec
Vec<P<Value>>
def_vec
Vec<P<Value>>
target
Option<(MuID, ASMLocation)>
&mut self
code
String
potentially_excepting
Option<MuName>
use_vec
Vec<P<Value>>
def_vec
Vec<P<Value>>
target
Option<(MuID, ASMLocation)>