def adj (seq): (x_stack, y_stack) = seq[stack_idx] xsub = dict ([(v, xv) for (v, (xv, _)) in azip (inps, seq)]) ysub = dict ([(v, yv) for (v, (_, yv)) in azip (inps, seq)]) from logic import var_subst stk_eqs = [(syntax.mk_memacc (x_stack, var_subst (p, xsub), t), syntax.mk_memacc (y_stack, var_subst (p, ysub), t)) for (p, t) in addrs] return seq[:stack_idx] + seq[stack_idx + 1:] + stk_eqs
def adj(seq): (x_stack, y_stack) = seq[stack_idx] xsub = dict([(v, xv) for (v, (xv, _)) in azip(inps, seq)]) ysub = dict([(v, yv) for (v, (_, yv)) in azip(inps, seq)]) from logic import var_subst stk_eqs = [(syntax.mk_memacc(x_stack, var_subst(p, xsub), t), syntax.mk_memacc(y_stack, var_subst(p, ysub), t)) for (p, t) in addrs] return seq[:stack_idx] + seq[stack_idx + 1:] + stk_eqs
def mk_local(n, kind, off, k): (v, off2) = sp_reps[n][k] ptr = syntax.mk_plus(v, syntax.mk_word32(off + off2)) if kind == 'Ptr': return ptr elif kind == 'MemAcc': return syntax.mk_memacc(stack, ptr, syntax.word32T)
def mk_local (n, kind, off, k): (v, off2) = sp_reps[n][k] ptr = syntax.mk_plus (v, syntax.mk_word32 (off + off2)) if kind == 'Ptr': return ptr elif kind == 'MemAcc': return syntax.mk_memacc (stack, ptr, syntax.word32T)