macros: exprStructuralEquivalent for EqNimrodNode
Previously NimNode comparison in macros way returning false for anything else than nil literal.
This commit is contained in:
parent
6c256ddcae
commit
6ecce2941e
1 changed files with 5 additions and 1 deletions
|
|
@ -682,11 +682,15 @@ proc rawExecute(c: PCtx, start: int, tos: PStackFrame): TFullReg =
|
||||||
of opcLtu:
|
of opcLtu:
|
||||||
decodeBC(rkInt)
|
decodeBC(rkInt)
|
||||||
regs[ra].intVal = ord(regs[rb].intVal <% regs[rc].intVal)
|
regs[ra].intVal = ord(regs[rb].intVal <% regs[rc].intVal)
|
||||||
of opcEqRef, opcEqNimrodNode:
|
of opcEqRef:
|
||||||
decodeBC(rkInt)
|
decodeBC(rkInt)
|
||||||
regs[ra].intVal = ord((regs[rb].node.kind == nkNilLit and
|
regs[ra].intVal = ord((regs[rb].node.kind == nkNilLit and
|
||||||
regs[rc].node.kind == nkNilLit) or
|
regs[rc].node.kind == nkNilLit) or
|
||||||
regs[rb].node == regs[rc].node)
|
regs[rb].node == regs[rc].node)
|
||||||
|
of opcEqNimrodNode:
|
||||||
|
decodeBC(rkInt)
|
||||||
|
regs[ra].intVal =
|
||||||
|
ord(exprStructuralEquivalent(regs[rb].node, regs[rc].node))
|
||||||
of opcXor:
|
of opcXor:
|
||||||
decodeBC(rkInt)
|
decodeBC(rkInt)
|
||||||
regs[ra].intVal = ord(regs[rb].intVal != regs[rc].intVal)
|
regs[ra].intVal = ord(regs[rb].intVal != regs[rc].intVal)
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue