コード例 #1
0
ファイル: HLFieldLocation.cs プロジェクト: Astaelan/Neutron
        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);
        }
コード例 #2
0
 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;
 }
コード例 #3
0
        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);
        }
コード例 #4
0
ファイル: HLFieldLocation.cs プロジェクト: Astaelan/Neutron
        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);
        }
コード例 #5
0
ファイル: HLFieldLocation.cs プロジェクト: Astaelan/Neutron
 internal override HLLocation AddressOf()
 {
     return(HLFieldAddressLocation.Create(mInstance, mField));
 }