working on vm

This commit is contained in:
Irmen de Jong
2022-03-27 17:46:15 +02:00
parent 3b6e7eccdd
commit 5494f309c0
5 changed files with 31 additions and 2 deletions
@@ -6,6 +6,7 @@ import prog8.code.ast.*
import prog8.code.core.*
import prog8.vm.Instruction
import prog8.vm.Opcode
import prog8.vm.Syscall
import prog8.vm.VmDataType
@@ -360,6 +361,17 @@ internal class ExpressionGen(val codeGen: CodeGen) {
"lsb" -> {
code += translateExpression(call.args.single(), resultRegister, regUsage)
}
"memory" -> {
val name = (call.args[0] as PtString).value
val size = (call.args[1] as PtNumber).number.toUInt()
val align = (call.args[2] as PtNumber).number.toUInt()
TODO("Memory($name, $size, $align)")
}
"rnd" -> {
code += VmCodeInstruction(Instruction(Opcode.SYSCALL, value=Syscall.RND.ordinal))
if(resultRegister!=0)
code += VmCodeInstruction(Instruction(Opcode.LOADR, VmDataType.BYTE, reg1=resultRegister, reg2=0))
}
else -> {
// TODO builtin functions...
TODO("builtinfunc ${call.name}")