fn internal_binop_no_def_mem_r(&mut self, inst: &str, op1: &P<Value>, op2: &P<Value>) {
        let len = check_op_len(op2);

        let inst = inst.to_string() + &op_postfix(len);
        trace!("emit: {} {} {}", inst, op1, op2);

        let (mem, mut uses) = self.prepare_mem(op1, inst.len() + 1);
        let (reg, id1, loc1) = self.prepare_reg(op2, inst.len() + 1 + mem.len() + 1);

        let asm = format!("{} {},{}", inst, mem, reg);

        // merge use vec
        if uses.contains_key(&id1) {
            let locs = uses.get_mut(&id1).unwrap();
            vec_utils::add_unique(locs, loc1.clone());
        } else {
            uses.insert(id1, vec![loc1]);
        }

        self.add_asm_inst(asm, linked_hashmap!{}, uses, true)
    }
/// emits an instruction (use 1 mem 1 reg, define none)
emits an instruction (use 1 mem 1 reg, define none)
emits an instruction ( use 1 mem 1 reg define none )
fn internal_binop_no_def_mem_r(&mut self, inst: &str, op1: &P<Value>, op2: &P<Value>) {
        let len = check_op_len(op2);
        let inst = inst.to_string() + &op_postfix(len);
        trace!("emit: {} {} {}", inst, op1, op2);
        let (mem, mut uses) = self.prepare_mem(op1, inst.len() + 1);
        let (reg, id1, loc1) = self.prepare_reg(op2, inst.len() + 1 + mem.len() + 1);
        let asm = format!("{} {},{}", inst, mem, reg);
        // merge use vec
        if uses.contains_key(&id1) {
            let locs = uses.get_mut(&id1).unwrap();
            vec_utils::add_unique(locs, loc1.clone());
        } else {
            uses.insert(id1, vec![loc1]);
        }
        self.add_asm_inst(asm, linked_hashmap!{}, uses, true)
    }
fn internal_binop_no_def_mem_r ( & mut self , inst : & str , op1 : & P < Value > , op2 : & P < Value > ) { let len = check_op_len ( op2 ) ; let inst = inst . to_string ( ) + & op_postfix ( len ) ; trace ! ( " " inst op1 op2 ) ; let ( mem , mut uses ) = self . prepare_mem ( op1 , inst . len ( ) + 1 ) ; let ( reg , id1 , loc1 ) = self . prepare_reg ( op2 , inst . len ( ) + 1 + mem . len ( ) + 1 ) ; let asm = format ! ( " " inst mem reg ) ; // merge use vec if uses . contains_key ( & id1 ) { let locs = uses . get_mut ( & id1 ) . unwrap ( ) ; vec_utils :: add_unique ( locs , loc1 . clone ( ) ) ; } else { uses . insert ( id1 , vec ! [ loc1 ] ) ; } self . add_asm_inst ( asm , linked_hashmap ! { } , uses , true ) }
emits an instruction (use 1 mem 1 reg, define none)
emits an instruction ( use 1 mem 1 reg define none )
&mut self
inst
&str
op1
&P<Value>
op2
&P<Value>
&mut self
inst
&str
op1
&P<Value>
op2
&P<Value>