diff options
author | Aryadev Chavali <aryadev@aryadevchavali.com> | 2023-11-01 14:23:48 +0000 |
---|---|---|
committer | Aryadev Chavali <aryadev@aryadevchavali.com> | 2023-11-01 14:23:48 +0000 |
commit | 727081f99a5065787dd3d035f92ef9f502f3622c (patch) | |
tree | e5989948e5a8d46c78345e09d5f8b80f1600efda /vm | |
parent | 90fb9816b495167c66f40284b66a9d4da22ae769 (diff) | |
download | ovm-727081f99a5065787dd3d035f92ef9f502f3622c.tar.gz ovm-727081f99a5065787dd3d035f92ef9f502f3622c.tar.bz2 ovm-727081f99a5065787dd3d035f92ef9f502f3622c.zip |
Removed OP_EQ signed versions as they're useless
A negative number under 2s complement can never be equal to its
positive as the top bit *must* be on. If two numbers are equivalent
bit-by-bit then they are equal for both signed and unsigned numbers.
Diffstat (limited to 'vm')
-rw-r--r-- | vm/runtime.c | 2 | ||||
-rw-r--r-- | vm/runtime.h | 5 |
2 files changed, 3 insertions, 4 deletions
diff --git a/vm/runtime.c b/vm/runtime.c index b29fcdc..998bdc3 100644 --- a/vm/runtime.c +++ b/vm/runtime.c @@ -55,7 +55,7 @@ const char *err_as_cstr(err_t err) err_t vm_execute(vm_t *vm) { - static_assert(NUMBER_OF_OPCODES == 73, "vm_execute: Out of date"); + static_assert(NUMBER_OF_OPCODES == 70, "vm_execute: Out of date"); struct Program *prog = &vm->program; if (prog->ptr >= prog->max) return ERR_END_OF_PROGRAM; diff --git a/vm/runtime.h b/vm/runtime.h index 2986bda..be907b3 100644 --- a/vm/runtime.h +++ b/vm/runtime.h @@ -181,9 +181,8 @@ static const stack_f STACK_ROUTINES[] = { [OP_XOR_BYTE] = vm_xor_byte, [OP_XOR_HWORD] = vm_xor_hword, [OP_XOR_WORD] = vm_xor_word, - [OP_EQ_BYTE] = vm_eq_byte, [OP_EQ_CHAR] = vm_eq_char, - [OP_EQ_INT] = vm_eq_int, [OP_EQ_HWORD] = vm_eq_hword, - [OP_EQ_LONG] = vm_eq_long, [OP_EQ_WORD] = vm_eq_word, + [OP_EQ_BYTE] = vm_eq_byte, [OP_EQ_HWORD] = vm_eq_hword, + [OP_EQ_WORD] = vm_eq_word, [OP_LT_BYTE] = vm_lt_byte, [OP_LT_CHAR] = vm_lt_char, [OP_LT_INT] = vm_lt_int, [OP_LT_HWORD] = vm_lt_hword, |