2026-08-03 17:02:20 +10:00
|
|
|
#ifndef __GRAVITY__INSTRUCTION_H
|
|
|
|
|
#define __GRAVITY__INSTRUCTION_H
|
|
|
|
|
|
|
|
|
|
#include "value.h"
|
|
|
|
|
#include <stddef.h>
|
|
|
|
|
|
|
|
|
|
typedef enum {
|
2026-08-03 21:01:34 +10:00
|
|
|
GravityOpcodeAlloc = 0,
|
|
|
|
|
GravityOpcodeStore,
|
2026-08-03 21:24:29 +10:00
|
|
|
GravityOpcodeLoad,
|
|
|
|
|
GravityOpcodeRet
|
2026-08-03 17:02:20 +10:00
|
|
|
} GravityOpcode;
|
|
|
|
|
|
|
|
|
|
typedef struct {
|
|
|
|
|
GravityOpcode opcode;
|
|
|
|
|
GravityValue* operands;
|
|
|
|
|
size_t numOperands;
|
2026-08-03 21:01:34 +10:00
|
|
|
GravityValue result;
|
2026-08-03 17:02:20 +10:00
|
|
|
} GravityInstruction;
|
|
|
|
|
|
2026-08-03 21:01:34 +10:00
|
|
|
char* gravityInstructionToCStr(GravityInstruction inst);
|
|
|
|
|
char* gravityOpcodeToCStr(GravityOpcode opcode);
|
|
|
|
|
|
2026-08-03 17:02:20 +10:00
|
|
|
#endif
|