diff options
| author | Aryadev Chavali <aryadev@aryadevchavali.com> | 2023-10-29 16:58:18 +0000 | 
|---|---|---|
| committer | Aryadev Chavali <aryadev@aryadevchavali.com> | 2023-10-29 16:58:18 +0000 | 
| commit | 597a45aa73d4d66fce4dd9135087e0e82f46899c (patch) | |
| tree | 773f5afb7174d89e6e3eb01e08a79ffad040ea87 | |
| parent | c4cb45f3ad3fedb4247577cffb3e5b07f41dab02 (diff) | |
| download | ovm-597a45aa73d4d66fce4dd9135087e0e82f46899c.tar.gz ovm-597a45aa73d4d66fce4dd9135087e0e82f46899c.tar.bz2 ovm-597a45aa73d4d66fce4dd9135087e0e82f46899c.zip | |
Fixed bug where JUMP_REGISTER couldn't be in bytecode read
| -rw-r--r-- | vm/inst.c | 5 | 
1 files changed, 2 insertions, 3 deletions
| @@ -323,14 +323,13 @@ inst_t inst_read_bytecode(darr_t *darr)    inst_t inst     = {0};    opcode_t opcode = darr->data[darr->used++];    if (opcode > OP_HALT || opcode == NUMBER_OF_OPCODES || opcode < OP_NOOP) -    // Translate to NOOP -    return inst; +    return INST_NOOP;    // Read operands    if (OPCODE_IS_TYPE(opcode, OP_PUSH))      inst.operand = read_type_from_darr(darr, (data_type_t)opcode);    // Read register (as a byte)    else if (OPCODE_IS_TYPE(opcode, OP_PUSH_REGISTER) || -           OPCODE_IS_TYPE(opcode, OP_MOV) || inst.opcode == OP_JUMP_STACK) +           OPCODE_IS_TYPE(opcode, OP_MOV) || opcode == OP_JUMP_REGISTER)      inst.operand = read_type_from_darr(darr, DATA_TYPE_BYTE);    else if (OPCODE_IS_TYPE(opcode, OP_DUP) || opcode == OP_JUMP_ABS ||             OPCODE_IS_TYPE(opcode, OP_JUMP_IF)) | 
