internal override void Store(LLFunction pFunction, LLLocation pSource) { LLLocation locationFieldPointer = HLFieldAddressLocation.LoadInstanceFieldPointer(pFunction, Instance, Field); LLLocation locationSource = pFunction.CurrentBlock.EmitConversion(pSource, locationFieldPointer.Type.PointerDepthMinusOne); pFunction.CurrentBlock.EmitStore(locationFieldPointer, locationSource); }
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 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); }
internal override LLLocation Load(LLFunction pFunction) { LLLocation locationFieldPointer = HLFieldAddressLocation.LoadInstanceFieldPointer(pFunction, Instance, Field); LLLocation locationTemporary = LLTemporaryLocation.Create(pFunction.CreateTemporary(locationFieldPointer.Type.PointerDepthMinusOne)); pFunction.CurrentBlock.EmitLoad(locationTemporary, locationFieldPointer); return(locationTemporary); }
internal override HLLocation AddressOf() { return(HLFieldAddressLocation.Create(mInstance, mField)); }