示例#1
0
 public void WriteDisassembly(CfgWriter cw, DisassemblyWriter dw)
 {
     cw.WriteCfgNode(dw, m_predecessor.Value);
     dw.Write(" ");
     cw.WriteUseSsa(dw, m_reg);
     dw.WriteLine("");
 }
 protected override void WriteDisassemblyImpl(CfgWriter cw, DisassemblyWriter dw)
 {
     dw.WriteMethodHandleKey(m_methodHandle);
     dw.Write(" ");
     dw.Write(m_parameters.Length.ToString());
 }
 public override void WriteDisassembly(DisassemblyWriter dw)
 {
     dw.Write("gm_multicastdelegateinvoke(");
     m_dt.WriteDisassembly(dw);
     dw.Write(")");
 }
 protected override void WriteDisassemblyImpl(CfgWriter cw, DisassemblyWriter dw)
 {
     dw.Write(m_vtableSlotIndex.ToString());
     dw.Write(" ");
     dw.Write(m_parameters.Length.ToString());
 }
示例#5
0
 public override void WriteDisassembly(DisassemblyWriter dw)
 {
     dw.Write("box(");
     m_containedType.WriteDisassembly(dw);
     dw.Write(")");
 }
示例#6
0
        public void WriteDisassembly(CfgWriter cw, DisassemblyWriter dw)
        {
            if (m_phis.Length > 0)
            {
                dw.WriteLine("phis {");
                dw.PushIndent();

                foreach (HighPhi phi in m_phis)
                    phi.WriteDisassembly(cw, dw);
                dw.PopIndent();
                dw.WriteLine("}");
            }

            foreach (HighInstruction instr in m_instructions)
                instr.WriteDisassembly(cw, dw);
        }
 public override void WriteDisassembly(DisassemblyWriter dw)
 {
     dw.Write("multicaster(");
     m_delegateClass.WriteDisassembly(dw);
     dw.Write(")");
 }
 public override void WriteDisassembly(DisassemblyWriter dw)
 {
     dw.Write("gm_boxedvaluetypegethashcode(");
     m_bt.WriteDisassembly(dw);
     dw.Write(")");
 }
 protected override void WriteDisassemblyImpl(CfgWriter cw, DisassemblyWriter dw)
 {
     dw.Write(m_routeID.ToString());
 }
示例#10
0
        public void WriteDisassembly(DisassemblyWriter dw)
        {
            if (m_instanceLocal == null)
                dw.WriteLine("static");
            else
            {
                dw.Write("instance ");
                m_instanceLocal.WriteDisassembly(dw);
            }
            dw.WriteLine("args {");
            dw.PushIndent();
            foreach (HighLocal local in m_args)
                local.WriteDisassembly(dw);
            dw.PopIndent();
            dw.WriteLine("}");
            dw.WriteLine("locals {");
            dw.PushIndent();
            foreach (HighLocal local in m_locals)
                local.WriteDisassembly(dw);
            dw.PopIndent();
            dw.WriteLine("}");
            dw.Write("returns ");
            m_returnType.WriteDisassembly(dw);
            dw.WriteLine("");

            CfgWriter cfgWriter = new CfgWriter(dw, m_instanceLocal, m_args, m_locals);

            cfgWriter.GetCfgNodeIndex(m_entryRegion.EntryNode.Value);
            cfgWriter.WriteGraph();
        }
        protected override void WriteDisassemblyImpl(CfgWriter cw, DisassemblyWriter dw)
        {
            dw.Write(m_routeTerminations.Length.ToString());

            foreach (EdgedRouteTermination term in m_routeTerminations)
            {
                dw.Write(" ");
                dw.Write(term.RouteID.ToString());
            }
        }
 protected override void WriteDisassemblyImpl(CfgWriter cw, DisassemblyWriter dw)
 {
     dw.Write(m_conversionType.ToString());
     dw.Write(" ");
     dw.Write(m_destPrecision.ToString());
     dw.Write(" ");
     dw.Write(m_sourcePrecision.ToString());
 }
示例#13
0
        public void WriteDisassembly(CfgWriter cw, DisassemblyWriter dw)
        {
            dw.Write("phi ");
            cw.WriteDefSsa(dw, m_dest);
            dw.WriteLine(" {");
            dw.PushIndent();

            foreach (HighPhiLink phiLink in m_links)
                phiLink.WriteDisassembly(cw, dw);

            dw.PopIndent();
            dw.WriteLine("}");
        }
示例#14
0
 public override void WriteDisassembly(DisassemblyWriter dw)
 {
     m_typeNameTag.WriteDisassembly(dw);
     if (m_argTypes.Length > 0)
     {
         dw.Write("<");
         for (int i = 0; i < m_argTypes.Length; i++)
         {
             if (i != 0)
                 dw.Write(",");
             m_argTypes[i].WriteDisassembly(dw);
         }
         dw.Write(">");
     }
 }
示例#15
0
 public abstract void WriteDisassembly(DisassemblyWriter dw);
 protected override void WriteDisassemblyImpl(CfgWriter cw, DisassemblyWriter dw)
 {
     dw.Write(m_fieldIndex.ToString());
 }
示例#17
0
 public override void WriteDisassembly(DisassemblyWriter dw)
 {
     dw.Write("void");
 }
示例#18
0
 public override void WriteDisassembly(DisassemblyWriter dw)
 {
     dw.Write("methodSpecKey(");
     m_methodSpec.WriteDisassembly(dw);
     dw.Write(")");
 }
 protected override void WriteDisassemblyImpl(CfgWriter cw, DisassemblyWriter dw)
 {
     m_mdType.WriteDisassembly(dw);
 }
示例#20
0
 protected override void WriteDisassemblyImpl(CfgWriter cw, DisassemblyWriter dw)
 {
 }
 public override void WriteDisassembly(DisassemblyWriter dw)
 {
     dw.Write("gm_delegateconverttomulticast(");
     m_dt.WriteDisassembly(dw);
     dw.Write(")");
 }
示例#22
0
 public override void WriteDisassembly(DisassemblyWriter dw)
 {
     dw.Write("gen(");
     switch (m_genericParamType.Value)
     {
         case TypeSpecGenericParamTypeTag.Values.MVar:
             dw.Write("M");
             break;
         case TypeSpecGenericParamTypeTag.Values.Var:
             dw.Write("T");
             break;
         default:
             throw new Exception();
     }
     dw.Write(m_index.ToString());
     dw.Write(")");
 }
示例#23
0
        public void WriteMethodDisassembly(StreamWriter writer)
        {
            Dictionary<object, IDisassemblyWritable> mhReverse = new Dictionary<object, IDisassemblyWritable>();

            foreach (KeyValuePair<MethodKey, MethodHandle> kvp in m_methodInstances.AllInstances)
                mhReverse.Add(kvp.Value, kvp.Key);

            DisassemblyWriter dw = new DisassemblyWriter(writer, mhReverse);

            foreach (KeyValuePair<MethodKey, MethodHandle> methodInstance in m_methodInstances.AllInstances)
            {
                dw.Write("methodInstance ( ");
                methodInstance.Key.WriteDisassembly(dw);
                dw.WriteLine(" )");
                dw.WriteLine("{");
                methodInstance.Value.Value.WriteDisassembly(dw);
                dw.WriteLine("}");
            }
        }