diff options
author | Lukas Rytz <lukas.rytz@gmail.com> | 2014-10-07 21:08:35 +0200 |
---|---|---|
committer | Lukas Rytz <lukas.rytz@gmail.com> | 2014-11-04 13:50:24 +0100 |
commit | 0eed07e729f4acb13c1cb700a7d1a2fbc382a1f7 (patch) | |
tree | b7eab97f5a38886bd2aa94d1b343473b07b743b5 | |
parent | b556b2fdcc7198bffe0ee90c5adc8c9eb3c29e36 (diff) | |
download | scala-0eed07e729f4acb13c1cb700a7d1a2fbc382a1f7.tar.gz scala-0eed07e729f4acb13c1cb700a7d1a2fbc382a1f7.tar.bz2 scala-0eed07e729f4acb13c1cb700a7d1a2fbc382a1f7.zip |
Debugging utility to print ASM instructions
-rw-r--r-- | src/compiler/scala/tools/nsc/backend/jvm/AsmUtils.scala | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/src/compiler/scala/tools/nsc/backend/jvm/AsmUtils.scala b/src/compiler/scala/tools/nsc/backend/jvm/AsmUtils.scala index 2af2037fec..7269910af6 100644 --- a/src/compiler/scala/tools/nsc/backend/jvm/AsmUtils.scala +++ b/src/compiler/scala/tools/nsc/backend/jvm/AsmUtils.scala @@ -5,7 +5,7 @@ package scala.tools.nsc.backend.jvm -import scala.tools.asm.tree.{ClassNode, MethodNode} +import scala.tools.asm.tree.{AbstractInsnNode, ClassNode, MethodNode} import java.io.PrintWriter import scala.tools.asm.util.{TraceClassVisitor, TraceMethodVisitor, Textifier} import scala.tools.asm.ClassReader @@ -58,4 +58,9 @@ object AsmUtils { new ClassReader(bytes).accept(node, 0) node } + + def instructionString(instruction: AbstractInsnNode): String = instruction.getOpcode match { + case -1 => instruction.toString + case op => scala.tools.asm.util.Printer.OPCODES(op) + } } |