#ifndef TSL_BYTECODE_H #define TSL_BYTECODE_H #include "std/buffer.h" #include /* All instructions are 4 bytes in size. */ typedef uint8_t TslOpcodeType; typedef uint8_t TslRegister; typedef uint16_t TslValueIndex; typedef enum { TSL_OPCODE_ASSIGN } TslOpcode; typedef struct { TslBuffer buffer; } TslBytecodeWriter; typedef struct { TslOpcodeType opcode; union { TslRegister dst_reg; TslRegister src_reg; } type1; union { TslRegister dst_reg; TslValueIndex value_index; } type2; } TslInstruction; void tsl_bytecode_writer_init(TslBytecodeWriter *self); void tsl_bytecode_writer_deinit(TslBytecodeWriter *self); int tsl_bytecode_writer_assign(TslBytecodeWriter *self, TslRegister reg, double value); #endif /* TSL_BYTECODE_H */