registers.h
This commit is contained in:
@@ -4,7 +4,7 @@
|
||||
i32 MOV_impl(VM* vm){
|
||||
u8 dst_register_i = 0;
|
||||
readRegisterVar(dst_register_i);
|
||||
u8 src_register_i = 0;
|
||||
u8 src_register_i = 0;
|
||||
readRegisterVar(src_register_i);
|
||||
if(dst_register_i == src_register_i){
|
||||
VM_setError(vm, "dst_register_i == src_register_i (%x) ", src_register_i);
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
#pragma once
|
||||
#include "../instructions.h"
|
||||
#include "../registers.h"
|
||||
|
||||
#define readVar(VAR) {\
|
||||
if(!VM_dataRead(vm, &VAR, vm->current_pos, sizeof(VAR))) \
|
||||
@@ -8,7 +9,7 @@
|
||||
}
|
||||
|
||||
#define validateRegisterIndex(VAR) {\
|
||||
if(VAR > sizeof(vm->registers)){\
|
||||
if(VAR> sizeof(vm->registers)){\
|
||||
VM_setError(vm, "invalid register index (%x)", VAR);\
|
||||
return -1;\
|
||||
}\
|
||||
@@ -16,6 +17,7 @@
|
||||
|
||||
#define readRegisterVar(VAR) {\
|
||||
readVar(VAR);\
|
||||
VAR -= 1;\
|
||||
validateRegisterIndex(VAR);\
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user