generators set up

This commit is contained in:
2026-08-04 11:30:30 +10:00
parent 9eab7ffbda
commit 6de562b7c3
9 changed files with 162 additions and 10 deletions

12
test.c
View File

@@ -7,12 +7,12 @@ int main(void) {
GravityBuilder builder = gravityCreateBuilder();
GravityType charType = gravityCreateIntegerType(8, false);
GravityType ptrType = gravityCreatePointerType();
GravityType mainFuncType = gravityCreateFunctionType(0, NULL, charType);
GravityFunction mainFunc = gravityNewFunction(module, "main", mainFuncType);
GravityBlock entryBlock = gravityStartBlock("entry", mainFunc);
/*
// define blocks
GravityBlock thenBlock = gravityStartBlock("then", mainFunc);
gravityAppendBlockArgument(thenBlock, ptrType);
@@ -48,9 +48,17 @@ int main(void) {
gravityBuilderSwitchToBlock(builder, mergeBlock);
GravityValue xVar = gravityGetBlockArg(mergeBlock, 0);
GravityValue xValue = gravityBuildLoad(builder, xVar, "xValue");
gravityBuildRet(builder, xValue);
gravityBuildRet(builder, xValue);*/
gravityBuilderSwitchToBlock(builder, entryBlock);
GravityValue returnVal = gravityBuildIntConstant(builder, charType, 123, NULL);
gravityBuildRet(builder, returnVal);
printf("%s\n", gravityFunctionToCStr(mainFunc));
GravityTargetArch target = gravityCreate_x86_64Target();
char* outputASM = gravityTargetEmitModule(target, module);
printf("%s\n", outputASM);
return 0;
}