fixes #1310
This commit is contained in:
parent
887a1ebe68
commit
21be7bf85a
3 changed files with 20 additions and 1 deletions
|
|
@ -138,6 +138,9 @@ proc createStrKeepNode(x: var TFullReg) =
|
|||
template createStr(x) =
|
||||
x.node = newNode(nkStrLit)
|
||||
|
||||
template createSet(x) =
|
||||
x.node = newNode(nkCurly)
|
||||
|
||||
proc moveConst(x: var TFullReg, y: TFullReg) =
|
||||
if x.kind != y.kind:
|
||||
myreset(x)
|
||||
|
|
@ -722,18 +725,22 @@ proc rawExecute(c: PCtx, start: int, tos: PStackFrame): TFullReg =
|
|||
regs[ra].intVal = ord(containsSets(a, b) and not equalSets(a, b))
|
||||
of opcMulSet:
|
||||
decodeBC(rkNode)
|
||||
createSet(regs[ra])
|
||||
move(regs[ra].node.sons,
|
||||
nimsets.intersectSets(regs[rb].node, regs[rc].node).sons)
|
||||
of opcPlusSet:
|
||||
decodeBC(rkNode)
|
||||
createSet(regs[ra])
|
||||
move(regs[ra].node.sons,
|
||||
nimsets.unionSets(regs[rb].node, regs[rc].node).sons)
|
||||
of opcMinusSet:
|
||||
decodeBC(rkNode)
|
||||
createSet(regs[ra])
|
||||
move(regs[ra].node.sons,
|
||||
nimsets.diffSets(regs[rb].node, regs[rc].node).sons)
|
||||
of opcSymdiffSet:
|
||||
decodeBC(rkNode)
|
||||
createSet(regs[ra])
|
||||
move(regs[ra].node.sons,
|
||||
nimsets.symdiffSets(regs[rb].node, regs[rc].node).sons)
|
||||
of opcConcatStr:
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue