diff --git a/lib/base.h b/lib/base.h index ae866bc..da1d564 100644 --- a/lib/base.h +++ b/lib/base.h @@ -44,11 +44,11 @@ typedef float f32; typedef double f64; typedef u8 byte_t; -typedef i8 char_t; +typedef i8 sbyte_t; typedef u32 hword_t; -typedef i32 int_t; +typedef i32 shword_t; typedef u64 word_t; -typedef i64 long_t; +typedef i64 sword_t; /* Macros for the sizes of common base data types. */ #define HWORD_SIZE sizeof(hword_t) @@ -73,11 +73,11 @@ typedef i64 long_t; typedef union { byte_t as_byte; - char_t as_char; + sbyte_t as_sbyte; hword_t as_hword; - int_t as_int; + shword_t as_shword; word_t as_word; - long_t as_long; + sword_t as_sword; } data_t; /** diff --git a/lib/inst.c b/lib/inst.c index 9460c27..78b1b67 100644 --- a/lib/inst.c +++ b/lib/inst.c @@ -125,50 +125,50 @@ const char *opcode_as_cstr(opcode_t code) return "EQ_WORD"; case OP_LT_BYTE: return "LT_BYTE"; - case OP_LT_CHAR: - return "LT_CHAR"; + case OP_LT_SBYTE: + return "LT_SBYTE"; case OP_LT_HWORD: return "LT_HWORD"; - case OP_LT_INT: - return "LT_INT"; - case OP_LT_LONG: - return "LT_LONG"; + case OP_LT_SHWORD: + return "LT_SHWORD"; + case OP_LT_SWORD: + return "LT_SWORD"; case OP_LT_WORD: return "LT_WORD"; case OP_LTE_BYTE: return "LTE_BYTE"; - case OP_LTE_CHAR: - return "LTE_CHAR"; + case OP_LTE_SBYTE: + return "LTE_SBYTE"; case OP_LTE_HWORD: return "LTE_HWORD"; - case OP_LTE_INT: - return "LTE_INT"; - case OP_LTE_LONG: - return "LTE_LONG"; + case OP_LTE_SHWORD: + return "LTE_SHWORD"; + case OP_LTE_SWORD: + return "LTE_SWORD"; case OP_LTE_WORD: return "LTE_WORD"; case OP_GT_BYTE: return "GT_BYTE"; - case OP_GT_CHAR: - return "GT_CHAR"; + case OP_GT_SBYTE: + return "GT_SBYTE"; case OP_GT_HWORD: return "GT_HWORD"; - case OP_GT_INT: - return "GT_INT"; - case OP_GT_LONG: - return "GT_LONG"; + case OP_GT_SHWORD: + return "GT_SHWORD"; + case OP_GT_SWORD: + return "GT_SWORD"; case OP_GT_WORD: return "GT_WORD"; case OP_GTE_BYTE: return "GTE_BYTE"; - case OP_GTE_CHAR: - return "GTE_CHAR"; + case OP_GTE_SBYTE: + return "GTE_SBYTE"; case OP_GTE_HWORD: return "GTE_HWORD"; - case OP_GTE_INT: - return "GTE_INT"; - case OP_GTE_LONG: - return "GTE_LONG"; + case OP_GTE_SHWORD: + return "GTE_SHWORD"; + case OP_GTE_SWORD: + return "GTE_SWORD"; case OP_GTE_WORD: return "GTE_WORD"; case OP_PLUS_BYTE: @@ -205,16 +205,16 @@ const char *opcode_as_cstr(opcode_t code) return "CALL_STACK"; case OP_RET: return "RET"; - case OP_PRINT_CHAR: - return "PRINT_CHAR"; + case OP_PRINT_SBYTE: + return "PRINT_SBYTE"; case OP_PRINT_BYTE: return "PRINT_BYTE"; - case OP_PRINT_INT: - return "PRINT_INT"; + case OP_PRINT_SHWORD: + return "PRINT_SHWORD"; case OP_PRINT_HWORD: return "PRINT_HWORD"; - case OP_PRINT_LONG: - return "PRINT_LONG"; + case OP_PRINT_SWORD: + return "PRINT_SWORD"; case OP_PRINT_WORD: return "PRINT_WORD"; case OP_HALT: diff --git a/lib/inst.h b/lib/inst.h index 20908ad..701f1c9 100644 --- a/lib/inst.h +++ b/lib/inst.h @@ -20,7 +20,7 @@ (((OPCODE) >= OP_TYPE##_BYTE) && ((OPCODE) <= OP_TYPE##_WORD)) #define SIGNED_OPCODE_IS_TYPE(OPCODE, OP_TYPE) \ - (((OPCODE) >= OP_TYPE##_BYTE) && ((OPCODE) <= OP_TYPE##_LONG)) + (((OPCODE) >= OP_TYPE##_BYTE) && ((OPCODE) <= OP_TYPE##_SWORD)) #define OPCODE_DATA_TYPE(OPCODE, OP_TYPE) (OPCODE - OP_TYPE##_BYTE) @@ -114,40 +114,40 @@ typedef enum // Comparison operations OP_LT_BYTE, - OP_LT_CHAR, + OP_LT_SBYTE, OP_LT_HWORD, - OP_LT_INT, + OP_LT_SHWORD, OP_LT_WORD, - OP_LT_LONG, + OP_LT_SWORD, OP_LTE_BYTE, - OP_LTE_CHAR, + OP_LTE_SBYTE, OP_LTE_HWORD, - OP_LTE_INT, + OP_LTE_SHWORD, OP_LTE_WORD, - OP_LTE_LONG, + OP_LTE_SWORD, OP_GT_BYTE, - OP_GT_CHAR, + OP_GT_SBYTE, OP_GT_HWORD, - OP_GT_INT, + OP_GT_SHWORD, OP_GT_WORD, - OP_GT_LONG, + OP_GT_SWORD, OP_GTE_BYTE, - OP_GTE_CHAR, + OP_GTE_SBYTE, OP_GTE_HWORD, - OP_GTE_INT, + OP_GTE_SHWORD, OP_GTE_WORD, - OP_GTE_LONG, + OP_GTE_SWORD, // Simple I/O OP_PRINT_BYTE, - OP_PRINT_CHAR, + OP_PRINT_SBYTE, OP_PRINT_HWORD, - OP_PRINT_INT, + OP_PRINT_SHWORD, OP_PRINT_WORD, - OP_PRINT_LONG, + OP_PRINT_SWORD, // Program control flow OP_JUMP_ABS, diff --git a/vm/runtime.c b/vm/runtime.c index bf273ba..8ef4eca 100644 --- a/vm/runtime.c +++ b/vm/runtime.c @@ -61,7 +61,7 @@ static_assert(DATA_TYPE_NIL == -1 && DATA_TYPE_WORD == 2, "Code using OPCODE_DATA_TYPE for quick same type opcode " "conversion may be out of date."); -static_assert(OP_PRINT_LONG - OP_PRINT_BYTE == 5, +static_assert(OP_PRINT_SWORD - OP_PRINT_BYTE == 5, "Implementation of OP_PRINT is out of date"); err_t vm_execute(vm_t *vm) diff --git a/vm/runtime.h b/vm/runtime.h index 28fa9c7..550af35 100644 --- a/vm/runtime.h +++ b/vm/runtime.h @@ -223,33 +223,33 @@ static const stack_f STACK_ROUTINES[] = { [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, - [OP_LT_LONG] = vm_lt_long, - [OP_LT_WORD] = vm_lt_word, + [OP_LT_BYTE] = vm_lt_byte, + [OP_LT_SBYTE] = vm_lt_sbyte, + [OP_LT_SHWORD] = vm_lt_shword, + [OP_LT_HWORD] = vm_lt_hword, + [OP_LT_SWORD] = vm_lt_sword, + [OP_LT_WORD] = vm_lt_word, - [OP_LTE_BYTE] = vm_lte_byte, - [OP_LTE_CHAR] = vm_lte_char, - [OP_LTE_INT] = vm_lte_int, - [OP_LTE_HWORD] = vm_lte_hword, - [OP_LTE_LONG] = vm_lte_long, - [OP_LTE_WORD] = vm_lte_word, + [OP_LTE_BYTE] = vm_lte_byte, + [OP_LTE_SBYTE] = vm_lte_sbyte, + [OP_LTE_SHWORD] = vm_lte_shword, + [OP_LTE_HWORD] = vm_lte_hword, + [OP_LTE_SWORD] = vm_lte_sword, + [OP_LTE_WORD] = vm_lte_word, - [OP_GT_BYTE] = vm_gt_byte, - [OP_GT_CHAR] = vm_gt_char, - [OP_GT_INT] = vm_gt_int, - [OP_GT_HWORD] = vm_gt_hword, - [OP_GT_LONG] = vm_gt_long, - [OP_GT_WORD] = vm_gt_word, + [OP_GT_BYTE] = vm_gt_byte, + [OP_GT_SBYTE] = vm_gt_sbyte, + [OP_GT_SHWORD] = vm_gt_shword, + [OP_GT_HWORD] = vm_gt_hword, + [OP_GT_SWORD] = vm_gt_sword, + [OP_GT_WORD] = vm_gt_word, - [OP_GTE_BYTE] = vm_gte_byte, - [OP_GTE_CHAR] = vm_gte_char, - [OP_GTE_INT] = vm_gte_int, - [OP_GTE_HWORD] = vm_gte_hword, - [OP_GTE_LONG] = vm_gte_long, - [OP_GTE_WORD] = vm_gte_word, + [OP_GTE_BYTE] = vm_gte_byte, + [OP_GTE_SBYTE] = vm_gte_sbyte, + [OP_GTE_SHWORD] = vm_gte_shword, + [OP_GTE_HWORD] = vm_gte_hword, + [OP_GTE_SWORD] = vm_gte_sword, + [OP_GTE_WORD] = vm_gte_word, [OP_PLUS_BYTE] = vm_plus_byte, [OP_PLUS_HWORD] = vm_plus_hword,