summary refs log tree commit diff stats
path: root/compiler/vmgen.nim
diff options
context:
space:
mode:
authorAraq <rumpf_a@web.de>2014-03-27 19:20:59 +0100
committerAraq <rumpf_a@web.de>2014-03-27 19:20:59 +0100
commit3365b42bbe5e09f8e8a739597ae5e49e2ff2c259 (patch)
tree4d8ded5ab336ab4a3e07679dbc1ddd1d1cf5fbd0 /compiler/vmgen.nim
parentdc956c485aa9d8becd3d9eb3c2086ebac3b6eeed (diff)
downloadNim-3365b42bbe5e09f8e8a739597ae5e49e2ff2c259.tar.gz
fixes #1009
Diffstat (limited to 'compiler/vmgen.nim')
-rw-r--r--compiler/vmgen.nim9
1 files changed, 8 insertions, 1 deletions
diff --git a/compiler/vmgen.nim b/compiler/vmgen.nim
index e627fee48..3c0f8dbc9 100644
--- a/compiler/vmgen.nim
+++ b/compiler/vmgen.nim
@@ -41,7 +41,14 @@ proc codeListing(c: PCtx, result: var string, start=0) =
     let x = c.code[i]
 
     let opc = opcode(x)
-    if opc < firstABxInstr:
+    if opc in {opcConv, opcCast}:
+      let y = c.code[i+1]
+      let z = c.code[i+2]
+      result.addf("\t$#\tr$#, r$#, $#, $#", ($opc).substr(3), x.regA, x.regB,
+        c.types[y.regBx-wordExcess].typeToString, 
+        c.types[z.regBx-wordExcess].typeToString)
+      inc i, 2
+    elif opc < firstABxInstr:
       result.addf("\t$#\tr$#, r$#, r$#", ($opc).substr(3), x.regA, 
                   x.regB, x.regC)
     elif opc in relativeJumps: