bit of organisation

This commit is contained in:
2026-08-04 10:22:08 +10:00
parent 604b774ba9
commit 9eab7ffbda
16 changed files with 10 additions and 9 deletions

34
src/ir/instruction.c Normal file
View File

@@ -0,0 +1,34 @@
#include "instruction.h"
char* gravityOpcodeToCStr(GravityOpcode opcode) {
switch (opcode) {
case GravityOpcodeAlloc: return "alloc";
case GravityOpcodeStore: return "store";
case GravityOpcodeLoad: return "load";
case GravityOpcodeRet: return "ret";
case GravityOpcodeJumpIf: return "jumpif";
case GravityOpcodeJump: return "jump";
case GravityOpcodeIntConst: return "iconst";
default: return "fixme";
}
}
char* gravityInstructionToCStr(GravityInstruction inst) {
StringBuffer buff;
initStringBuff(&buff);
if (inst.result != NULL) {
sbAppend(&buff, "%s = ", gravityValueToCStr(inst.result));
}
sbAppend(&buff, "%s ", gravityOpcodeToCStr(inst.opcode));
for (unsigned int i = 0; i < inst.numOperands; i++) {
if (i < inst.numOperands - 1) {
sbAppend(&buff, "%s, ", gravityValueToCStr(inst.operands[i]));
} else {
sbAppend(&buff, "%s", gravityValueToCStr(inst.operands[i]));
}
}
return buff.data;
}