change name of branch instruction to "jumpif"

This commit is contained in:
2026-08-04 10:10:49 +10:00
parent f0ee7263ec
commit 063f5a3d30
6 changed files with 39 additions and 15 deletions

19
test.c
View File

@@ -2,6 +2,7 @@
#include <stdio.h>
int main(void) {
// define program
GravityModule module = gravityCreateModule();
GravityBuilder builder = gravityCreateBuilder();
@@ -20,27 +21,33 @@ int main(void) {
gravityAppendBlockArgument(elseBlock, ptrType);
GravityBlock mergeBlock = gravityStartBlock("merge", mainFunc);
gravityAppendBlockArgument(mergeBlock, ptrType);
// write entry
gravityBuilderSwitchToBlock(builder, entryBlock);
GravityValue x = gravityBuildAlloc(builder, charType, "x");
gravityBuildBr(builder, gravityNewIntConstant(charType, 1), thenBlock, (GravityValue[]){x}, elseBlock, (GravityValue[]){x});
GravityValue oneConst = gravityBuildIntConstant(builder, charType, 1, "true");
gravityBuildBr(builder, oneConst, thenBlock, (GravityValue[]){x}, elseBlock, (GravityValue[]){x});
// then block
gravityBuilderSwitchToBlock(builder, thenBlock);
GravityValue thenValue = gravityGetBlockArg(thenBlock, 0);
gravityBuildStore(builder, thenValue, gravityNewIntConstant(charType, 5));
gravityBuildJump(builder, mergeBlock, NULL);
GravityValue fiveConst = gravityBuildIntConstant(builder, charType, 5, "five");
gravityBuildStore(builder, thenValue, fiveConst);
gravityBuildJump(builder, mergeBlock, (GravityValue[]){thenValue});
// else block
gravityBuilderSwitchToBlock(builder, elseBlock);
GravityValue elseValue = gravityGetBlockArg(elseBlock, 0);
gravityBuildStore(builder, elseValue, gravityNewIntConstant(charType, 10));
gravityBuildJump(builder, mergeBlock, NULL);
GravityValue tenConst = gravityBuildIntConstant(builder, charType, 10, "ten");
gravityBuildStore(builder, elseValue, tenConst);
gravityBuildJump(builder, mergeBlock, (GravityValue[]){elseValue});
// merge block
gravityBuilderSwitchToBlock(builder, mergeBlock);
GravityValue xValue = gravityBuildLoad(builder, x, "xValue");
GravityValue xVar = gravityGetBlockArg(mergeBlock, 0);
GravityValue xValue = gravityBuildLoad(builder, xVar, "xValue");
gravityBuildRet(builder, xValue);
printf("%s\n", gravityFunctionToCStr(mainFunc));