예제 #1
0
        static public void RenderIL_LoadAddress(this ILValue item, ILCanvas canvas)
        {
            ILAddressable cast;

            if (item.Convert <ILAddressable>(out cast))
            {
                cast.RenderIL_LoadAddress(canvas);
            }
            else
            {
                item.RenderIL_LoadAddressInternal(canvas);
            }
        }
예제 #2
0
        public ILLocal CreateCementedLocal(ILValue value)
        {
            ILLocal local;

            if (value.Convert <ILLocal>(out local))
            {
                if (local.IsCemented())
                {
                    return(local);
                }
            }

            return(cemented_locals.AddAndGet(new ILLocal(value.GetValueType(), null, value, true))
                   .Chain(l => AddStatement(new ILInitializeLocal(l))));
        }