Cosmos/source/Cosmos.Core.Plugs/System/Assemblers/GetMulticastInvokeAssembler.cs
Matthijs ter Woord c4af87a933 .
2016-06-16 16:54:53 -04:00

23 lines
761 B
C#

using System;
using System.Reflection;
using Cosmos.IL2CPU;
using Cosmos.IL2CPU.Plugs;
using XSharp.Compiler;
using CPUx86 = Cosmos.Assembler.x86;
using MethodInfo = Cosmos.IL2CPU.MethodInfo;
namespace Cosmos.Core.Plugs.System.Assemblers
{
public class GetMulticastInvokeAssembler : AssemblerMethod
{
public override void AssembleNew(Cosmos.Assembler.Assembler aAssembler, object aMethodInfo)
{
var xAsm = (Assembler.Assembler)aAssembler;
var xMethodInfo = (MethodInfo)aMethodInfo;
var xDelegate = typeof(Delegate);
var xMethod = xDelegate.GetMethod("GetInvokeMethod", BindingFlags.NonPublic | BindingFlags.Instance);
XS.Push(ILOp.GetMethodLabel(xMethod));
}
}
}