mirror of
https://github.com/nim-lang/Nim.git
synced 2026-06-01 09:31:18 +00:00
new vm: next steps
This commit is contained in:
@@ -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):
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user