Fixed handling swap in vmgen
This commit is contained in:
parent
0449791185
commit
b090b7ea4d
1 changed files with 6 additions and 4 deletions
|
|
@ -787,10 +787,12 @@ proc genMagic(c: PCtx; n: PNode; dest: var TDest) =
|
||||||
c.freeTemp(tmp)
|
c.freeTemp(tmp)
|
||||||
of mSwap:
|
of mSwap:
|
||||||
unused(n, dest)
|
unused(n, dest)
|
||||||
var d = c.genx(n.sons[1])
|
var
|
||||||
var tmp = c.genx(n.sons[2])
|
d1 = c.genx(n.sons[1])
|
||||||
c.gABC(n, opcSwap, d, tmp)
|
d2 = c.genx(n.sons[2])
|
||||||
c.freeTemp(tmp)
|
c.gABC(n, opcSwap, d1, d2)
|
||||||
|
c.genAsgnPatch(n.sons[1], d1)
|
||||||
|
c.genAsgnPatch(n.sons[2], d2)
|
||||||
of mIsNil: genUnaryABC(c, n, dest, opcIsNil)
|
of mIsNil: genUnaryABC(c, n, dest, opcIsNil)
|
||||||
of mCopyStr:
|
of mCopyStr:
|
||||||
if dest < 0: dest = c.getTemp(n.typ)
|
if dest < 0: dest = c.getTemp(n.typ)
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue