Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/ikvm-fork.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjfrijters <jfrijters>2015-06-19 18:09:45 +0300
committerjfrijters <jfrijters>2015-06-19 18:09:45 +0300
commit1aa586244e1fd08eae8113267258bb2bd5502212 (patch)
tree1d876ad622d98a341ffa15110207d06d55f0d2ab
parentbe6daf30426500ed3c3188b9c2a7882b55176705 (diff)
Dump more info for locals.
-rw-r--r--runtime/CodeEmitter.cs24
1 files changed, 22 insertions, 2 deletions
diff --git a/runtime/CodeEmitter.cs b/runtime/CodeEmitter.cs
index 72bab5a1..253de252 100644
--- a/runtime/CodeEmitter.cs
+++ b/runtime/CodeEmitter.cs
@@ -2376,11 +2376,15 @@ namespace IKVM.Internal
{
Console.Write(" label" + labelIndexes[code[i].Label]);
}
- else if (code[i].opcode == OpCodes.Ldarg)
+ else if (code[i].opcode == OpCodes.Ldarg_S || code[i].opcode == OpCodes.Ldarga_S)
+ {
+ Console.Write(" " + code[i].ValueByte);
+ }
+ else if (code[i].opcode == OpCodes.Ldarg || code[i].opcode == OpCodes.Ldarga)
{
Console.Write(" " + code[i].ValueInt16);
}
- else if (code[i].opcode == OpCodes.Isinst)
+ else if (code[i].opcode == OpCodes.Isinst || code[i].opcode == OpCodes.Castclass || code[i].opcode == OpCodes.Box || code[i].opcode == OpCodes.Unbox || code[i].opcode == OpCodes.Ldobj || code[i].opcode == OpCodes.Newarr)
{
Console.Write(" " + code[i].Type);
}
@@ -2388,12 +2392,28 @@ namespace IKVM.Internal
{
Console.Write(" " + code[i].MethodBase);
}
+ else if (code[i].opcode == OpCodes.Ldfld || code[i].opcode == OpCodes.Ldsfld || code[i].opcode == OpCodes.Stfld || code[i].opcode == OpCodes.Stsfld)
+ {
+ Console.Write(" " + code[i].FieldInfo);
+ }
+ else if (code[i].opcode == OpCodes.Ldc_I4)
+ {
+ Console.Write(" " + code[i].ValueInt32);
+ }
+ else if (code[i].opcode == OpCodes.Ldloc || code[i].opcode == OpCodes.Stloc)
+ {
+ Console.Write(" " + code[i].Local.__LocalIndex);
+ }
Console.WriteLine();
}
else if (code[i].pseudo == CodeType.Label)
{
Console.WriteLine("label{0}: // temp = {1}", i, code[i].Label.Temp);
}
+ else if (code[i].pseudo == CodeType.DeclareLocal)
+ {
+ Console.WriteLine("local #{0} = {1}", code[i].Local.__LocalIndex, code[i].Local.LocalType);
+ }
else
{
Console.WriteLine(code[i]);