diff options
Diffstat (limited to 'src/fvm.h')
| -rw-r--r-- | src/fvm.h | 37 |
1 files changed, 17 insertions, 20 deletions
@@ -3,20 +3,17 @@ #include <stdint.h> -typedef int64_t fvm_word_t; -typedef double fvm_float_t;; - struct fvm; // return non-zero if vm should be suspended -typedef void (*fvm_syscall_fn_t)(struct fvm* vm); +typedef void (*fvm_syscall_fn)(struct fvm* vm); struct fvm { - fvm_word_t sp; // stack pointer - fvm_word_t bp; // base pointer - fvm_word_t pc; // programm counter - fvm_word_t rv; // return value - fvm_syscall_fn_t *syscall_table; + int64_t sp; // stack pointer + int64_t bp; // base pointer + int64_t pc; // programm counter + int64_t rv; // return value + fvm_syscall_fn *syscall_table; }; enum fvm_op { @@ -100,22 +97,22 @@ enum fvm_op { int fvm_init(struct fvm *vm, void *code, int64_t stack_size); int64_t fvm_execute(struct fvm *vm); -void fvm_push(struct fvm *vm, fvm_word_t value); +void fvm_push(struct fvm *vm, int64_t value); int64_t fvm_pop(struct fvm *vm); -fvm_float_t fvm_loadf(struct fvm *vm, fvm_word_t addr); -void fvm_storef(struct fvm *vm, fvm_word_t addr, fvm_float_t val); +double fvm_loadf(struct fvm *vm, int64_t addr); +void fvm_storef(struct fvm *vm, int64_t addr, double val); -fvm_word_t fvm_load(struct fvm *vm, fvm_word_t addr); -void fvm_store(struct fvm *vm, fvm_word_t addr, int64_t value); +int64_t fvm_load(struct fvm *vm, int64_t addr); +void fvm_store(struct fvm *vm, int64_t addr, int64_t value); -int32_t fvm_load32(struct fvm *vm, fvm_word_t addr); -void fvm_store32(struct fvm *vm, fvm_word_t addr, int32_t value); +int32_t fvm_load32(struct fvm *vm, int64_t addr); +void fvm_store32(struct fvm *vm, int64_t addr, int32_t value); -int16_t fvm_load16(struct fvm *vm, fvm_word_t addr); -void fvm_store16(struct fvm *vm, fvm_word_t addr, int16_t value); +int16_t fvm_load16(struct fvm *vm, int64_t addr); +void fvm_store16(struct fvm *vm, int64_t addr, int16_t value); -int8_t fvm_load8(struct fvm *vm, fvm_word_t addr); -void fvm_store8(struct fvm *vm, fvm_word_t addr, int8_t value); +int8_t fvm_load8(struct fvm *vm, int64_t addr); +void fvm_store8(struct fvm *vm, int64_t addr, int8_t value); #endif |
