Expression MemKernel(Func <Expression, Expression, Expression> f, Expression d, Expression ea, MemoryOperand mem) { if (mem.Indirect) { ea = m.Mem(PrimitiveType.Ptr16, ea); } m.Assign(d, f(d, m.Mem(mem.Width, ea))); return(d); }
Expression TestMemKernel(Func <Expression, Expression, Expression> f, Expression d, Expression ea, MemoryOperand mem) { var t = binder.CreateTemporary(mem.Width); if (mem.Indirect) { ea = m.Mem(PrimitiveType.Ptr16, ea); } m.Assign(t, m.Mem(mem.Width, ea)); m.Assign(t, f(d, t)); return(t); }
Expression EaKernel(Func <Expression, Expression, Expression> f, Expression d, Expression ea, MemoryOperand mem) { if (mem.Indirect) { ea = m.Mem(PrimitiveType.Ptr16, ea); } f(d, ea); return(d); }