Files
Gravity/src/instruction.c

30 lines
864 B
C
Raw Normal View History

#include "instruction.h"
char* gravityOpcodeToCStr(GravityOpcode opcode) {
switch (opcode) {
case GravityOpcodeAlloc: return "alloc";
case GravityOpcodeStore: return "store";
case GravityOpcodeLoad: return "load";
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;
}