diff --git a/vm/vm.cpp b/vm/vm.cpp index 0e487e5..4207dd3 100644 --- a/vm/vm.cpp +++ b/vm/vm.cpp @@ -160,8 +160,8 @@ bool VM::execMOVR(void) { dst = as.code[regs[IP] + 1] >> 4; src = as.code[regs[IP] + 1] & 0b00001111; DBG_INFO(("MOVR %s, %s\n", getRegName(dst), getRegName(src))); - if (dst == IP || src == IP) { - DBG_ERROR(("Can't MOVR IP!\n")); + if (dst == IP || src == IP || dst == SP || src == SP || dst == RP || src== RP) { + DBG_ERROR(("MOVR: Invalid register!\n")); return false; } regs[dst] = regs[src];