本文整理汇总了C#中ICodeWriter.ResolveType方法的典型用法代码示例。如果您正苦于以下问题:C# ICodeWriter.ResolveType方法的具体用法?C# ICodeWriter.ResolveType怎么用?C# ICodeWriter.ResolveType使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ICodeWriter
的用法示例。
在下文中一共展示了ICodeWriter.ResolveType方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: Register
public static void Register(ICodeWriter codeWriter)
{
// Registering GetHashCode
var tokenResolutions = new List<object>();
tokenResolutions.Add(codeWriter.ResolveType("System.Byte").ToPointerType());
tokenResolutions.Add(new SynthesizedStaticMethod(
"",
codeWriter.ResolveType("System.Array"),
codeWriter.ResolveType("System.Int32"),
new[] { codeWriter.ResolveType("System.Array") },
(llvmWriter, opCode) =>
{
// get element size
llvmWriter.WriteArrayGetElementSize(opCode);
}));
tokenResolutions.Add(new SynthesizedStaticMethod(
"",
codeWriter.ResolveType("System.Array"),
codeWriter.ResolveType("System.Void"),
new[] { codeWriter.ResolveType("System.Byte").ToPointerType(), codeWriter.ResolveType("System.Byte").ToPointerType(), codeWriter.ResolveType("System.Int32") },
(llvmWriter, opCode) =>
{
// copy data
var firstByteOfSourceArray = opCode.OpCodeOperands[0].Result;
var firstByteOfDestArray = opCode.OpCodeOperands[1].Result;
var len = opCode.OpCodeOperands[2].Result;
llvmWriter.WriteMemCopy(firstByteOfSourceArray, firstByteOfDestArray, len);
}));
tokenResolutions.Add(codeWriter.ResolveType("System.Byte"));
tokenResolutions.Add(codeWriter.ResolveType("System.Byte").ToArrayType(1));
var locals = new List<IType>();
locals.Add(codeWriter.ResolveType("System.Int32"));
var parameters = new List<IType>();
parameters.Add(codeWriter.ResolveType("System.Array"));
parameters.Add(codeWriter.ResolveType("System.Int32"));
parameters.Add(codeWriter.ResolveType("System.Array"));
parameters.Add(codeWriter.ResolveType("System.Int32"));
parameters.Add(codeWriter.ResolveType("System.Int32"));
MethodBodyBank.Register(ArrayCopyGen.Name, ArrayCopyGen.ByteCode, tokenResolutions, locals, parameters);
}
示例2: Register
public static void Register(ICodeWriter codeWriter)
{
// Registering GetHashCode
var tokenResolutions = new List<object>();
tokenResolutions.Add(new SynthesizedThisMethod("GetType", codeWriter.ResolveType("System.Object"), codeWriter.ResolveType("System.Type"), true));
tokenResolutions.Add(new SynthesizedThisMethod("get_Size", codeWriter.ResolveType("System.Type"), codeWriter.ResolveType("System.Int32"), true));
tokenResolutions.Add(codeWriter.ResolveType("System.Byte").ToPointerType());
var locals = new List<IType>();
locals.Add(codeWriter.ResolveType("System.Int32"));
locals.Add(codeWriter.ResolveType("System.Int32"));
locals.Add(codeWriter.ResolveType("System.Int32"));
locals.Add(codeWriter.ResolveType("System.Byte").ToPointerType());
var parameters = new List<IType>();
MethodBodyBank.Register(GetHashCodeGen.Name, GetHashCodeGen.ByteCode, tokenResolutions, locals, parameters);
}
示例3: Register
public static void Register(ICodeWriter codeWriter)
{
// Registering GetHashCode
var tokenResolutions = new List<object>();
tokenResolutions.Add(new SynthesizedThisMethod("GetType", codeWriter.ResolveType("System.Object"), codeWriter.ResolveType("System.Type"), true));
tokenResolutions.Add(new SynthesizedThisMethod("get_Size", codeWriter.ResolveType("System.Type"), codeWriter.ResolveType("System.Int32"), true));
tokenResolutions.Add(codeWriter.ResolveType("System.Byte").ToPointerType());
tokenResolutions.Add(new SynthesizedStaticMethod(
"",
codeWriter.ResolveType("System.Object"),
codeWriter.ResolveType("System.Byte").ToPointerType(),
new[] { codeWriter.ResolveType("System.Int32") },
(llvmWriter, opCode) =>
{
// write method allocation
llvmWriter.WriteAllocateMemory(opCode, opCode.OpCodeOperands[0].Result, false);
}));
tokenResolutions.Add(new SynthesizedStaticMethod(
"",
codeWriter.ResolveType("System.Object"),
codeWriter.ResolveType("System.Void"),
new[] { codeWriter.ResolveType("System.Byte").ToPointerType(), codeWriter.ResolveType("System.Byte").ToPointerType(), codeWriter.ResolveType("System.Int32") },
(llvmWriter, opCode) =>
{
// write method copy
llvmWriter.WriteMemCopy(opCode.OpCodeOperands[0].Result, opCode.OpCodeOperands[1].Result, opCode.OpCodeOperands[2].Result);
}));
tokenResolutions.Add(codeWriter.ResolveType("System.Object"));
var locals = new List<IType>();
locals.Add(codeWriter.ResolveType("System.Byte").ToPointerType());
locals.Add(codeWriter.ResolveType("System.Int32"));
var parameters = new List<IType>();
MethodBodyBank.Register(MemberwiseCloneGen.Name, MemberwiseCloneGen.ByteCode, tokenResolutions, locals, parameters);
}