summary refs log tree commit diff stats
path: root/compiler/vmgen.nim
diff options
context:
space:
mode:
Diffstat (limited to 'compiler/vmgen.nim')
-rw-r--r--compiler/vmgen.nim12
1 files changed, 6 insertions, 6 deletions
diff --git a/compiler/vmgen.nim b/compiler/vmgen.nim
index a9029442e..591c5ade8 100644
--- a/compiler/vmgen.nim
+++ b/compiler/vmgen.nim
@@ -944,9 +944,9 @@ proc genAddrDeref(c: PCtx; n: PNode; dest: var TDest; opc: TOpcode;
       if gfAddrOf notin flags and fitsRegister(n.typ):
         c.gABC(n, opcNodeToReg, dest, dest)
     elif c.prc.slots[tmp].kind >= slotTempUnknown:
-      gABC(c, n, opcAddrReg, dest, tmp)
-    else:
       gABC(c, n, opcAddrNode, dest, tmp)
+    else:
+      gABC(c, n, opcAddrReg, dest, tmp)
     c.freeTemp(tmp)
 
 proc whichAsgnOpc(n: PNode): TOpcode =
@@ -1001,7 +1001,7 @@ proc genAsgn(c: PCtx; le, ri: PNode; requiresCopy: bool) =
     c.gABC(left, opcWrObj, dest, idx, tmp)
     c.freeTemp(tmp)
   of nkDerefExpr, nkHiddenDeref:
-    let dest = c.genx(le, {gfAddrOf})
+    let dest = c.genx(le.sons[0], {gfAddrOf})
     let tmp = c.genx(ri)
     c.gABC(le, opcWrDeref, dest, tmp)
     c.freeTemp(tmp)
@@ -1542,9 +1542,9 @@ proc genProc(c: PCtx; s: PSym): int =
     c.gABC(body, opcEof, eofInstr.regA)
     c.optimizeJumps(result)
     s.offset = c.prc.maxSlots
-    #if s.name.s == "importImpl_forward" or s.name.s == "importImpl":
-    #c.echoCode(result)
-    #echo renderTree(body)
+    #if s.name.s == "xmlConstructor":
+    #  echo renderTree(body)
+    #  c.echoCode(result)
     c.prc = oldPrc
   else:
     c.prc.maxSlots = s.offset