public static HLFieldLocation Create(HLLocation pInstance, HLField pField) { HLFieldLocation location = new HLFieldLocation(pField.Type); location.mInstance = pInstance; location.mField = pField; return location; }
public static HLStaticFieldLocation Create(HLField pStaticField) { HLStaticFieldLocation location = new HLStaticFieldLocation(pStaticField.Type); location.mStaticField = pStaticField; return(location); }
public static HLFieldAddressLocation Create(HLLocation pInstance, HLField pField) { HLFieldAddressLocation location = new HLFieldAddressLocation(HLDomain.GetOrCreateType(MutableModelHelper.GetManagedPointerTypeReference(pField.Type.Definition, HLDomain.Host.InternFactory, pField.Type.Definition))); location.mInstance = pInstance; location.mField = pField; return location; }
public static HLStaticFieldAddressLocation Create(HLField pStaticField) { HLStaticFieldAddressLocation location = new HLStaticFieldAddressLocation(HLDomain.GetOrCreateType(MutableModelHelper.GetManagedPointerTypeReference(pStaticField.Type.Definition, HLDomain.Host.InternFactory, pStaticField.Type.Definition))); location.mStaticField = pStaticField; return(location); }
public static HLFieldLocation Create(HLLocation pInstance, HLField pField) { HLFieldLocation location = new HLFieldLocation(pField.Type); location.mInstance = pInstance; location.mField = pField; return(location); }
internal static LLLocation LoadInstanceFieldPointer(LLFunction pFunction, HLLocation pInstance, HLField pField) { LLLocation locationInstance = pInstance.Load(pFunction); locationInstance = pFunction.CurrentBlock.EmitConversion(locationInstance, LLModule.GetOrCreatePointerType(LLModule.GetOrCreateUnsignedType(8), 1)); LLLocation locationFieldPointer = locationInstance; if (pField.Offset > 0) { locationFieldPointer = LLTemporaryLocation.Create(pFunction.CreateTemporary(locationFieldPointer.Type)); pFunction.CurrentBlock.EmitGetElementPointer(locationFieldPointer, locationInstance, LLLiteralLocation.Create(LLLiteral.Create(LLModule.GetOrCreateUnsignedType(32), pField.Offset.ToString()))); } return pFunction.CurrentBlock.EmitConversion(locationFieldPointer, pField.Type.LLType.PointerDepthPlusOne); }
internal static LLLocation LoadInstanceFieldPointer(LLFunction pFunction, HLLocation pInstance, HLField pField) { LLLocation locationInstance = pInstance.Load(pFunction); locationInstance = pFunction.CurrentBlock.EmitConversion(locationInstance, LLModule.GetOrCreatePointerType(LLModule.GetOrCreateUnsignedType(8), 1)); LLLocation locationFieldPointer = locationInstance; if (pField.Offset > 0) { locationFieldPointer = LLTemporaryLocation.Create(pFunction.CreateTemporary(locationFieldPointer.Type)); pFunction.CurrentBlock.EmitGetElementPointer(locationFieldPointer, locationInstance, LLLiteralLocation.Create(LLLiteral.Create(LLModule.GetOrCreateUnsignedType(32), pField.Offset.ToString()))); } return(pFunction.CurrentBlock.EmitConversion(locationFieldPointer, pField.Type.LLType.PointerDepthPlusOne)); }
public static HLStaticFieldLocation Create(HLField pStaticField) { HLStaticFieldLocation location = new HLStaticFieldLocation(pStaticField.Type); location.mStaticField = pStaticField; return location; }