Exemple #1
0
        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);
        }
Exemple #4
0
        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);
        }
Exemple #5
0
 internal override HLLocation AddressOf()
 {
     return(HLFieldAddressLocation.Create(mInstance, mField));
 }