|
@@ -29,6 +29,7 @@ typedef __uint256_t unsigned_vm_register;
|
|
|
#define umax 256
|
|
|
#define imax 255
|
|
|
#define reg_size 32
|
|
|
+#define arch_name "knight256-base"
|
|
|
#elif VM128
|
|
|
typedef __int256_t signed_wide_register;
|
|
|
typedef __uint256_t unsigned_wide_register;
|
|
@@ -37,6 +38,7 @@ typedef __uint128_t unsigned_vm_register;
|
|
|
#define umax 128
|
|
|
#define imax 127
|
|
|
#define reg_size 16
|
|
|
+#define arch_name "knight128-base"
|
|
|
#elif VM64
|
|
|
typedef __int128_t signed_wide_register;
|
|
|
typedef __uint128_t unsigned_wide_register;
|
|
@@ -45,6 +47,7 @@ typedef uint64_t unsigned_vm_register;
|
|
|
#define umax 64
|
|
|
#define imax 63
|
|
|
#define reg_size 8
|
|
|
+#define arch_name "knight64-base"
|
|
|
#elif VM32
|
|
|
typedef int64_t signed_wide_register;
|
|
|
typedef uint64_t unsigned_wide_register;
|
|
@@ -53,6 +56,7 @@ typedef uint32_t unsigned_vm_register;
|
|
|
#define umax 32
|
|
|
#define imax 31
|
|
|
#define reg_size 4
|
|
|
+#define arch_name "knight32-base"
|
|
|
#else
|
|
|
typedef int32_t signed_wide_register;
|
|
|
typedef uint32_t unsigned_wide_register;
|
|
@@ -61,6 +65,7 @@ typedef uint16_t unsigned_vm_register;
|
|
|
#define umax 16
|
|
|
#define imax 15
|
|
|
#define reg_size 2
|
|
|
+#define arch_name "knight16-base"
|
|
|
#endif
|
|
|
|
|
|
/* Virtual machine state */
|
|
@@ -96,6 +101,7 @@ struct Instruction
|
|
|
/* Prototypes for functions in vm_instructions.c*/
|
|
|
void vm_EXIT(struct lilith* vm, uint64_t performance_counter);
|
|
|
void vm_CHMOD(struct lilith* vm);
|
|
|
+void vm_UNAME(struct lilith* vm);
|
|
|
void vm_FOPEN(struct lilith* vm);
|
|
|
void vm_FOPEN_READ(struct lilith* vm);
|
|
|
void vm_FOPEN_WRITE(struct lilith* vm);
|