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);
        }
Пример #2
0
        internal override void Store(LLFunction pFunction, LLLocation pSource)
        {
            HLStaticFieldAddressLocation.CheckStaticConstructorCalled(pFunction, StaticField.Container);
            LLLocation locationFieldPointer = LLGlobalLocation.Create(LLModule.GetGlobal(StaticField.Container.ToString() + "." + StaticField.ToString()));
            LLLocation locationSource       = pFunction.CurrentBlock.EmitConversion(pSource, locationFieldPointer.Type.PointerDepthMinusOne);

            pFunction.CurrentBlock.EmitStore(locationFieldPointer, locationSource);
        }
Пример #3
0
        internal override LLLocation Load(LLFunction pFunction)
        {
            HLStaticFieldAddressLocation.CheckStaticConstructorCalled(pFunction, StaticField.Container);
            LLLocation locationFieldPointer = LLGlobalLocation.Create(LLModule.GetGlobal(StaticField.Container.ToString() + "." + StaticField.ToString()));
            LLLocation locationTemporary    = LLTemporaryLocation.Create(pFunction.CreateTemporary(locationFieldPointer.Type.PointerDepthMinusOne));

            pFunction.CurrentBlock.EmitLoad(locationTemporary, locationFieldPointer);
            return(locationTemporary);
        }
Пример #4
0
 internal override HLLocation AddressOf()
 {
     return(HLStaticFieldAddressLocation.Create(mStaticField));
 }
 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;
 }