diff --git a/.idea/encodings.xml b/.idea/encodings.xml
index c0bce7084..611e7fe78 100644
--- a/.idea/encodings.xml
+++ b/.idea/encodings.xml
@@ -2,6 +2,7 @@
+
\ No newline at end of file
diff --git a/.idea/jarRepositories.xml b/.idea/jarRepositories.xml
new file mode 100644
index 000000000..168626d08
--- /dev/null
+++ b/.idea/jarRepositories.xml
@@ -0,0 +1,25 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/main/java/dk/camelot64/kickc/Compiler.java b/src/main/java/dk/camelot64/kickc/Compiler.java
index ec4302c75..033720871 100644
--- a/src/main/java/dk/camelot64/kickc/Compiler.java
+++ b/src/main/java/dk/camelot64/kickc/Compiler.java
@@ -213,7 +213,7 @@ public class Compiler {
if(getLog().isVerboseStatementSequence()) {
getLog().append("\nSTATEMENTS");
for(Procedure procedure : program.getScope().getAllProcedures(true)) {
- final ProcedureCompilation procedureCompilation = program.createProcedureCompilation(procedure.getRef());
+ final ProcedureCompilation procedureCompilation = program.getProcedureCompilation(procedure.getRef());
getLog().append(procedureCompilation.getStatementSequence().toString(program));
}
}
diff --git a/src/main/java/dk/camelot64/kickc/passes/Pass1GenerateSingleStaticAssignmentForm.java b/src/main/java/dk/camelot64/kickc/passes/Pass1GenerateSingleStaticAssignmentForm.java
index 9e0643b49..bbc08276d 100644
--- a/src/main/java/dk/camelot64/kickc/passes/Pass1GenerateSingleStaticAssignmentForm.java
+++ b/src/main/java/dk/camelot64/kickc/passes/Pass1GenerateSingleStaticAssignmentForm.java
@@ -267,6 +267,10 @@ public class Pass1GenerateSingleStaticAssignmentForm extends Pass1Base {
}
}
}
+ if(procedure.getRef().equals(program.getStartProcedure())) {
+ // TODO: Does this handle main() / _start() correctly?
+ program.getLog().append("Does this handle main() / _start() correctly?");
+ }
}
return predecessors;
}
diff --git a/src/main/java/dk/camelot64/kickc/passes/Pass4MemoryCoalesce.java b/src/main/java/dk/camelot64/kickc/passes/Pass4MemoryCoalesce.java
index e2d2b3ca1..085dfc83a 100644
--- a/src/main/java/dk/camelot64/kickc/passes/Pass4MemoryCoalesce.java
+++ b/src/main/java/dk/camelot64/kickc/passes/Pass4MemoryCoalesce.java
@@ -33,12 +33,19 @@ public abstract class Pass4MemoryCoalesce extends Pass2Base {
ArrayList threadHeads = new ArrayList<>();
Collection procedures = program.getScope().getAllProcedures(true);
for(Procedure procedure : procedures) {
- if(procedure.getFullName().equals(SymbolRef.MAIN_PROC_NAME)) {
+ if(procedure.getRef().equals(program.getStartProcedure())) {
+ // TODO: Handles main() correctly?
threadHeads.add(procedure.getRef());
continue;
}
if(Pass2ConstantIdentification.isAddressOfUsed(procedure.getRef(), program)) {
threadHeads.add(procedure.getRef());
+ continue;
+ }
+ if(procedure.getInterruptType()!=null) {
+ // TODO: Handles Interrupts correctly?
+ threadHeads.add(procedure.getRef());
+ continue;
}
}
return threadHeads;
diff --git a/src/main/java/dk/camelot64/kickc/passes/calcs/PassNCalcLiveRangesEffectiveCallPaths.java b/src/main/java/dk/camelot64/kickc/passes/calcs/PassNCalcLiveRangesEffectiveCallPaths.java
index 6c03ade54..93c091832 100644
--- a/src/main/java/dk/camelot64/kickc/passes/calcs/PassNCalcLiveRangesEffectiveCallPaths.java
+++ b/src/main/java/dk/camelot64/kickc/passes/calcs/PassNCalcLiveRangesEffectiveCallPaths.java
@@ -70,7 +70,7 @@ public class PassNCalcLiveRangesEffectiveCallPaths extends PassNCalcBase rootPath = new ArrayList<>();
ArrayList rootAlive = new ArrayList<>();