summaryrefslogtreecommitdiff
path: root/src/compiler
diff options
context:
space:
mode:
authorLukas Rytz <lukas.rytz@gmail.com>2014-10-07 21:08:35 +0200
committerLukas Rytz <lukas.rytz@gmail.com>2014-11-04 13:50:24 +0100
commit0eed07e729f4acb13c1cb700a7d1a2fbc382a1f7 (patch)
treeb7eab97f5a38886bd2aa94d1b343473b07b743b5 /src/compiler
parentb556b2fdcc7198bffe0ee90c5adc8c9eb3c29e36 (diff)
downloadscala-0eed07e729f4acb13c1cb700a7d1a2fbc382a1f7.tar.gz
scala-0eed07e729f4acb13c1cb700a7d1a2fbc382a1f7.tar.bz2
scala-0eed07e729f4acb13c1cb700a7d1a2fbc382a1f7.zip
Debugging utility to print ASM instructions
Diffstat (limited to 'src/compiler')
-rw-r--r--src/compiler/scala/tools/nsc/backend/jvm/AsmUtils.scala7
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)
+ }
}