X-Git-Url: https://git.bts.cx/sun.git/blobdiff_plain/c14e8cb22c12114bd78aae89e54ccd51ad522c50..refs/heads/mainline:/runtime/src/sun/compiler/vm_generator.c diff --git a/runtime/src/sun/compiler/vm_generator.c b/runtime/src/sun/compiler/vm_generator.c index deb10b8..6a3cb19 100644 --- a/runtime/src/sun/compiler/vm_generator.c +++ b/runtime/src/sun/compiler/vm_generator.c @@ -114,7 +114,7 @@ static VMGeneratorOutputScope *generatorCreate() { VMGeneratorOutputScope *scope = malloc(sizeof(VMGeneratorOutputScope)); // fixme these mallocs memset(scope, 0, sizeof(VMGeneratorOutputScope)); - scope->instructionCount = 1024; + scope->instructionCount = 2048; scope->instructions = malloc(scope->instructionCount * sizeof(struct VMGeneratorInstruction)); scope->nextInstructionIdx = 0; @@ -288,7 +288,7 @@ static bool nodeTypeDefinesScope(SLTNodeType type) { switch (type) { case SLTNodeTypeModule: case SLTNodeTypeFunctionDefinition: - case SLTNodeTypeTypeDefinition: + case SLTNodeTypeUserDefinedTypeDefinition: case SLTNodeTypeForIteration: case SLTNodeTypeDoIteration: case SLTNodeTypeWhileIteration: @@ -803,7 +803,7 @@ static SVMPointer generateExpressionInstructions(VMGeneratorOutputScope *generat return r; } - case SLTNodeTypeTypeAccess: + case SLTNodeTypeMemberAccess: generator_assert_msg(false, "not implemented: %s", sltNodeToString(node)); return -1; @@ -1001,27 +1001,27 @@ static size_t generateModuleInstructions(VMGeneratorOutputScope *generator, SLTN generatorPatchOperand(generator, start, 0, address); // then do variables - for (SLTNode *n = node->moduleStatementsAndDefinitions; n != NULL; n = n->sequenceNext) { - switch (n->sequenceNode->type) { - case SLTNodeTypeFunctionDefinition: + //for (SLTNode *n = node->moduleStatementsAndDefinitions; n != NULL; n = n->sequenceNext) { + // switch (n->sequenceNode->type) { + // case SLTNodeTypeFunctionDefinition: // Do nothing... - break; + // break; - case SLTNodeTypeVariableDefinition: - generateStatementInstructions(generator, n->sequenceNode, 0); - break; + //case SLTNodeTypeVariableDefinition: + //generateStatementInstructions(generator, n->sequenceNode, 0); + // break; - default: + // default: //generator_assert_msg(false, "could not define %s", sltNodeTypeToString(n->sequenceNode->type)); - break; - } - } + // break; + // } + //} // statements for (SLTNode *n = node->moduleStatementsAndDefinitions; n != NULL; n = n->sequenceNext) { switch (n->sequenceNode->type) { - case SLTNodeTypeVariableDefinition: - case SLTNodeTypeTypeDefinition: + //case SLTNodeTypeVariableDefinition: + case SLTNodeTypeUserDefinedTypeDefinition: case SLTNodeTypeFunctionDefinition: // Do nothing... break;