new vm: next steps

This commit is contained in:
Araq
2013-07-25 22:40:25 +02:00
parent 3e0899359b
commit 02c86567ee
2 changed files with 10 additions and 3 deletions

View File

@@ -79,7 +79,9 @@ template decodeBx(k: expr) {.immediate, dirty.} =
let rbx = instr.regBx - wordExcess
ensureKind(k)
proc compile(c: PCtx, s: PSym): int = vmgen.genProc(c, s)
proc compile(c: PCtx, s: PSym): int =
result = vmgen.genProc(c, s)
c.echoCode
proc myreset(n: PNode) =
when defined(system.reset):

View File

@@ -25,12 +25,17 @@ proc codeListing(c: PCtx, result: var string) =
result.addf("\t$#\tr$#, r$#, r$#", ($opc).substr(3), x.regA,
x.regB, x.regC)
else:
result.addf("\t$#\tr$#, r$#", ($opc).substr(3), x.regA, x.regBx)
result.add(" #")
result.addf("\t$#\tr$#, r$#", ($opc).substr(3), x.regA, x.regBx-wordExcess)
result.add("\t#")
result.add(toFileLine(c.debug[i]))
result.add("\n")
inc i
proc echoCode*(c: PCtx) =
var buf = ""
codeListing(c, buf)
echo buf
proc gABC(ctx: PCtx; n: PNode; opc: TOpcode; a, b, c: TRegister = 0) =
assert opc.ord < 255
let ins = (opc.uint32 or (a.uint32 shl 8'u32) or