本文整理汇总了C#中CodeGen.Local方法的典型用法代码示例。如果您正苦于以下问题:C# CodeGen.Local方法的具体用法?C# CodeGen.Local怎么用?C# CodeGen.Local使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CodeGen
的用法示例。
在下文中一共展示了CodeGen.Local方法的9个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: EmitGet
internal override void EmitGet(CodeGen g)
{
Operand before = g.Local(target);
baseOp.SetOperand(before);
target.EmitSet(g, baseOp, false);
before.EmitGet(g);
}
示例2: EmitGet
protected internal override void EmitGet(CodeGen g)
{
OperandExtensions.SetLeakedState(this, false);
if (ReferenceEquals(_local, null))
_local = g.Local(_internal);
_local.EmitGet(g);
}
示例3: EmitGet
protected internal override void EmitGet(CodeGen g)
{
OperandExtensions.SetLeakedState(this, false);
Operand before = g.Local(_target);
_baseOp.SetOperand(before);
_target.EmitSet(g, _baseOp, false);
before.EmitGet(g);
}
示例4: EmitSet
protected internal override void EmitSet(CodeGen g, Operand value, bool allowExplicitConversion)
{
OperandExtensions.SetLeakedState(this, false);
if (ReferenceEquals(_local, null))
_local = g.Local(GetReturnType(g.TypeMapper));
_local.EmitSet(g, value, allowExplicitConversion);
_internal.EmitSet(g, value, allowExplicitConversion);
}
示例5: EmitGet
internal override void EmitGet(CodeGen g)
{
if (lvalue.TrivialAccess)
{
lvalue.EmitSet(g, rvalue, allowExplicitConversion);
lvalue.EmitGet(g);
}
else
{
Operand tmp = g.Local(lvalue.Type);
g.Assign(tmp, rvalue, allowExplicitConversion);
lvalue.EmitSet(g, tmp, false);
tmp.EmitGet(g);
}
}
示例6: EmitGet
internal override void EmitGet(CodeGen g)
{
if (target.TrivialAccess)
{
target.EmitSet(g, baseOp, false);
target.EmitGet(g);
}
else
{
Operand tmp = g.Local(target);
baseOp.SetOperand(tmp);
tmp.EmitSet(g, baseOp, false);
target.EmitSet(g, tmp, false);
tmp.EmitGet(g);
}
}
示例7: EmitGet
protected internal override void EmitGet(CodeGen g)
{
OperandExtensions.SetLeakedState(this, false);
if (_lvalue.TrivialAccess)
{
_lvalue.EmitSet(g, _rvalue, _allowExplicitConversion);
_lvalue.EmitGet(g);
}
else
{
Operand tmp = g.Local(_lvalue.GetReturnType(g.TypeMapper));
g.Assign(tmp, _rvalue, _allowExplicitConversion);
_lvalue.EmitSet(g, tmp, false);
tmp.EmitGet(g);
}
}
示例8: EmitGet
protected internal override void EmitGet(CodeGen g)
{
OperandExtensions.SetLeakedState(this, false);
if (_target.TrivialAccess)
{
_target.EmitSet(g, _baseOp, false);
_target.EmitGet(g);
}
else
{
Operand tmp = g.Local(_target);
_baseOp.SetOperand(tmp);
tmp.EmitSet(g, _baseOp, false);
_target.EmitSet(g, tmp, false);
tmp.EmitGet(g);
}
}
示例9: EmitBranch
protected internal override void EmitBranch(CodeGen g, OptionalLabel labelTrue, OptionalLabel labelFalse)
{
OperandExtensions.SetLeakedState(this, false);
if (ReferenceEquals(_local, null))
_local = g.Local(_internal);
_local.EmitBranch(g, labelTrue,labelFalse);
}