some progress on #7261; VM does not support the new backwards indexing
This commit is contained in:
parent
a897371797
commit
934bba5255
2 changed files with 16 additions and 4 deletions
|
|
@ -779,6 +779,18 @@ proc rawExecute(c: PCtx, start: int, tos: PStackFrame): TFullReg =
|
||||||
regs[ra].intVal = ord(regs[rb].intVal <% regs[rc].intVal)
|
regs[ra].intVal = ord(regs[rb].intVal <% regs[rc].intVal)
|
||||||
of opcEqRef:
|
of opcEqRef:
|
||||||
decodeBC(rkInt)
|
decodeBC(rkInt)
|
||||||
|
if regs[rb].kind == rkNodeAddr:
|
||||||
|
if regs[rc].kind == rkNodeAddr:
|
||||||
|
regs[ra].intVal = ord(regs[rb].nodeAddr == regs[rc].nodeAddr)
|
||||||
|
else:
|
||||||
|
assert regs[rc].kind == rkNode
|
||||||
|
# we know these cannot be equal
|
||||||
|
regs[ra].intVal = ord(false)
|
||||||
|
elif regs[rc].kind == rkNodeAddr:
|
||||||
|
assert regs[rb].kind == rkNode
|
||||||
|
# we know these cannot be equal
|
||||||
|
regs[ra].intVal = ord(false)
|
||||||
|
else:
|
||||||
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)
|
||||||
|
|
|
||||||
|
|
@ -1288,7 +1288,7 @@ proc whichAsgnOpc(n: PNode): TOpcode =
|
||||||
opcAsgnStr
|
opcAsgnStr
|
||||||
of tyFloat..tyFloat128:
|
of tyFloat..tyFloat128:
|
||||||
opcAsgnFloat
|
opcAsgnFloat
|
||||||
of tyRef, tyNil, tyVar, tyLent:
|
of tyRef, tyNil, tyVar, tyLent, tyPtr:
|
||||||
opcAsgnRef
|
opcAsgnRef
|
||||||
else:
|
else:
|
||||||
opcAsgnComplex
|
opcAsgnComplex
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue