mirror of
https://github.com/nim-lang/Nim.git
synced 2026-04-19 14:00:35 +00:00
free some registers after usage, allows more complex macros (#10443)
This commit is contained in:
committed by
Andreas Rumpf
parent
15ee5d65d1
commit
6555d89c2c
@@ -326,8 +326,14 @@ proc genWhile(c: PCtx; n: PNode) =
|
||||
c.patch(L2)
|
||||
|
||||
proc genBlock(c: PCtx; n: PNode; dest: var TDest) =
|
||||
let oldRegisterCount = c.prc.maxSlots
|
||||
withBlock(n.sons[0].sym):
|
||||
c.gen(n.sons[1], dest)
|
||||
|
||||
for i in oldRegisterCount ..< c.prc.maxSlots:
|
||||
if c.prc.slots[i].kind in {slotFixedVar, slotFixedLet}:
|
||||
c.prc.slots[i] = (inUse: false, kind: slotEmpty)
|
||||
|
||||
c.clearDest(n, dest)
|
||||
|
||||
proc genBreak(c: PCtx; n: PNode) =
|
||||
|
||||
Reference in New Issue
Block a user