diff options
author | jfrijters <jfrijters> | 2015-06-19 18:09:45 +0300 |
---|---|---|
committer | jfrijters <jfrijters> | 2015-06-19 18:09:45 +0300 |
commit | 1aa586244e1fd08eae8113267258bb2bd5502212 (patch) | |
tree | 1d876ad622d98a341ffa15110207d06d55f0d2ab | |
parent | be6daf30426500ed3c3188b9c2a7882b55176705 (diff) |
Dump more info for locals.
-rw-r--r-- | runtime/CodeEmitter.cs | 24 |
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]); |