Exemplo n.º 1
0
	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
Exemplo n.º 2
0
 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
Exemplo n.º 3
0
 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)
Exemplo n.º 4
0
	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)