Cosmos/source/Cosmos.IL2CPU/IL/Ldind_U1.cs
2017-05-27 15:24:30 -05:00

22 lines
588 B
C#

using XSharp.Common;
using static XSharp.Common.XSRegisters;
namespace Cosmos.IL2CPU.X86.IL
{
[Cosmos.IL2CPU.OpCode(ILOpCode.Code.Ldind_U1)]
public class Ldind_U1 : ILOp
{
public Ldind_U1(Cosmos.Assembler.Assembler aAsmblr)
: base(aAsmblr)
{
}
public override void Execute(_MethodInfo aMethod, ILOpCode aOpCode)
{
DoNullReferenceCheck(Assembler, DebugEnabled, 0);
XS.Pop(XSRegisters.ECX);
XS.MoveZeroExtend(EAX, ECX, sourceIsIndirect: true, size: RegisterSize.Byte8);
XS.Push(XSRegisters.EAX);
}
}
}