Cosmos/source/Indy.IL2CPU/IL/x86/Ldelem.cs
mterwoord_cp 5928581f2f
2008-11-07 12:27:08 +00:00

30 lines
No EOL
933 B
C#

using System;
using System.Collections.Generic;
using System.Linq;
namespace Indy.IL2CPU.IL.X86 {
[OpCode(OpCodeEnum.Ldelem)]
public class Ldelem: Op {
private uint mElementSize;
public static void ScanOp(ILReader aReader, MethodInformation aMethodInfo, SortedList<string, object> aMethodData)
{
Type xType = aReader.OperandValueType;
if (xType == null)
throw new Exception("Unable to determine Type!");
Engine.RegisterType(xType);
}
public Ldelem(ILReader aReader, MethodInformation aMethodInfo)
: base(aReader, aMethodInfo) {
Type xType = aReader.OperandValueType;
if (xType == null)
throw new Exception("Unable to determine Type!");
mElementSize = Engine.GetFieldStorageSize(xType);
}
public override void DoAssemble() {
Ldelem_Ref.Assemble(Assembler, mElementSize);
}
}
}