diff --git a/compiler/src/prog8/compiler/target/ICompilationTarget.kt b/compiler/src/prog8/compiler/target/ICompilationTarget.kt index 6e305a33b..c760d6726 100644 --- a/compiler/src/prog8/compiler/target/ICompilationTarget.kt +++ b/compiler/src/prog8/compiler/target/ICompilationTarget.kt @@ -12,7 +12,7 @@ import prog8.compiler.IErrorReporter import prog8.compiler.Zeropage import prog8.compiler.target.c64.C64MachineDefinition import prog8.compiler.target.c64.Petscii -import prog8.compiler.target.c64.codegen.AsmGen +import prog8.compiler.target.cpu6502.codegen.AsmGen import prog8.compiler.target.cx16.CX16MachineDefinition import java.nio.file.Path @@ -114,5 +114,6 @@ internal fun asmGeneratorFor( outputDir: Path ): IAssemblyGenerator { + // at the moment we only have one code generation backend (for 6502 and 65c02) return AsmGen(program, errors, zp, options, compTarget, outputDir) } diff --git a/compiler/src/prog8/compiler/target/c64/codegen/AsmGen.kt b/compiler/src/prog8/compiler/target/cpu6502/codegen/AsmGen.kt similarity index 99% rename from compiler/src/prog8/compiler/target/c64/codegen/AsmGen.kt rename to compiler/src/prog8/compiler/target/cpu6502/codegen/AsmGen.kt index 879458b31..d23665e01 100644 --- a/compiler/src/prog8/compiler/target/c64/codegen/AsmGen.kt +++ b/compiler/src/prog8/compiler/target/cpu6502/codegen/AsmGen.kt @@ -1,4 +1,4 @@ -package prog8.compiler.target.c64.codegen +package prog8.compiler.target.cpu6502.codegen import prog8.ast.* import prog8.ast.antlr.escape @@ -11,8 +11,8 @@ import prog8.compiler.functions.FSignature import prog8.compiler.target.* import prog8.compiler.target.c64.AssemblyProgram import prog8.compiler.target.c64.Petscii -import prog8.compiler.target.c64.codegen.assignment.AsmAssignment -import prog8.compiler.target.c64.codegen.assignment.AssignmentAsmGen +import prog8.compiler.target.cpu6502.codegen.assignment.AsmAssignment +import prog8.compiler.target.cpu6502.codegen.assignment.AssignmentAsmGen import java.io.CharConversionException import java.nio.file.Path import java.nio.file.Paths diff --git a/compiler/src/prog8/compiler/target/c64/codegen/AsmOptimizer.kt b/compiler/src/prog8/compiler/target/cpu6502/codegen/AsmOptimizer.kt similarity index 99% rename from compiler/src/prog8/compiler/target/c64/codegen/AsmOptimizer.kt rename to compiler/src/prog8/compiler/target/cpu6502/codegen/AsmOptimizer.kt index efa1b0a47..3c4cdfe3d 100644 --- a/compiler/src/prog8/compiler/target/c64/codegen/AsmOptimizer.kt +++ b/compiler/src/prog8/compiler/target/cpu6502/codegen/AsmOptimizer.kt @@ -1,4 +1,4 @@ -package prog8.compiler.target.c64.codegen +package prog8.compiler.target.cpu6502.codegen // note: see https://wiki.nesdev.com/w/index.php/6502_assembly_optimisations diff --git a/compiler/src/prog8/compiler/target/c64/codegen/BuiltinFunctionsAsmGen.kt b/compiler/src/prog8/compiler/target/cpu6502/codegen/BuiltinFunctionsAsmGen.kt similarity index 99% rename from compiler/src/prog8/compiler/target/c64/codegen/BuiltinFunctionsAsmGen.kt rename to compiler/src/prog8/compiler/target/cpu6502/codegen/BuiltinFunctionsAsmGen.kt index e8b2dddf2..6bd1746f0 100644 --- a/compiler/src/prog8/compiler/target/c64/codegen/BuiltinFunctionsAsmGen.kt +++ b/compiler/src/prog8/compiler/target/cpu6502/codegen/BuiltinFunctionsAsmGen.kt @@ -1,4 +1,4 @@ -package prog8.compiler.target.c64.codegen +package prog8.compiler.target.cpu6502.codegen import prog8.ast.IFunctionCall import prog8.ast.Node @@ -13,7 +13,12 @@ import prog8.ast.toHex import prog8.compiler.AssemblyError import prog8.compiler.functions.FSignature import prog8.compiler.target.CpuType -import prog8.compiler.target.c64.codegen.assignment.* +import prog8.compiler.target.cpu6502.codegen.assignment.* +import prog8.compiler.target.cpu6502.codegen.assignment.AsmAssignSource +import prog8.compiler.target.cpu6502.codegen.assignment.AsmAssignTarget +import prog8.compiler.target.cpu6502.codegen.assignment.AsmAssignment +import prog8.compiler.target.cpu6502.codegen.assignment.SourceStorageKind +import prog8.compiler.target.cpu6502.codegen.assignment.TargetStorageKind import prog8.compiler.target.subroutineFloatEvalResultVar2 internal class BuiltinFunctionsAsmGen(private val program: Program, private val asmgen: AsmGen, private val assignAsmGen: AssignmentAsmGen) { diff --git a/compiler/src/prog8/compiler/target/c64/codegen/ExpressionsAsmGen.kt b/compiler/src/prog8/compiler/target/cpu6502/codegen/ExpressionsAsmGen.kt similarity index 99% rename from compiler/src/prog8/compiler/target/c64/codegen/ExpressionsAsmGen.kt rename to compiler/src/prog8/compiler/target/cpu6502/codegen/ExpressionsAsmGen.kt index 12d32ded4..aebb92491 100644 --- a/compiler/src/prog8/compiler/target/c64/codegen/ExpressionsAsmGen.kt +++ b/compiler/src/prog8/compiler/target/cpu6502/codegen/ExpressionsAsmGen.kt @@ -1,4 +1,4 @@ -package prog8.compiler.target.c64.codegen +package prog8.compiler.target.cpu6502.codegen import prog8.ast.Program import prog8.ast.base.* diff --git a/compiler/src/prog8/compiler/target/c64/codegen/ForLoopsAsmGen.kt b/compiler/src/prog8/compiler/target/cpu6502/codegen/ForLoopsAsmGen.kt similarity index 99% rename from compiler/src/prog8/compiler/target/c64/codegen/ForLoopsAsmGen.kt rename to compiler/src/prog8/compiler/target/cpu6502/codegen/ForLoopsAsmGen.kt index 7cfc8f506..7832ee500 100644 --- a/compiler/src/prog8/compiler/target/c64/codegen/ForLoopsAsmGen.kt +++ b/compiler/src/prog8/compiler/target/cpu6502/codegen/ForLoopsAsmGen.kt @@ -1,4 +1,4 @@ -package prog8.compiler.target.c64.codegen +package prog8.compiler.target.cpu6502.codegen import prog8.ast.Program import prog8.ast.base.ArrayElementTypes diff --git a/compiler/src/prog8/compiler/target/c64/codegen/FunctionCallAsmGen.kt b/compiler/src/prog8/compiler/target/cpu6502/codegen/FunctionCallAsmGen.kt similarity index 98% rename from compiler/src/prog8/compiler/target/c64/codegen/FunctionCallAsmGen.kt rename to compiler/src/prog8/compiler/target/cpu6502/codegen/FunctionCallAsmGen.kt index 77aef24ec..c8c0fccb3 100644 --- a/compiler/src/prog8/compiler/target/c64/codegen/FunctionCallAsmGen.kt +++ b/compiler/src/prog8/compiler/target/cpu6502/codegen/FunctionCallAsmGen.kt @@ -1,4 +1,4 @@ -package prog8.compiler.target.c64.codegen +package prog8.compiler.target.cpu6502.codegen import prog8.ast.IFunctionCall import prog8.ast.Node @@ -8,10 +8,10 @@ import prog8.ast.expressions.* import prog8.ast.statements.* import prog8.compiler.AssemblyError import prog8.compiler.target.CpuType -import prog8.compiler.target.c64.codegen.assignment.AsmAssignSource -import prog8.compiler.target.c64.codegen.assignment.AsmAssignTarget -import prog8.compiler.target.c64.codegen.assignment.AsmAssignment -import prog8.compiler.target.c64.codegen.assignment.TargetStorageKind +import prog8.compiler.target.cpu6502.codegen.assignment.AsmAssignSource +import prog8.compiler.target.cpu6502.codegen.assignment.AsmAssignTarget +import prog8.compiler.target.cpu6502.codegen.assignment.AsmAssignment +import prog8.compiler.target.cpu6502.codegen.assignment.TargetStorageKind internal class FunctionCallAsmGen(private val program: Program, private val asmgen: AsmGen) { diff --git a/compiler/src/prog8/compiler/target/c64/codegen/PostIncrDecrAsmGen.kt b/compiler/src/prog8/compiler/target/cpu6502/codegen/PostIncrDecrAsmGen.kt similarity index 99% rename from compiler/src/prog8/compiler/target/c64/codegen/PostIncrDecrAsmGen.kt rename to compiler/src/prog8/compiler/target/cpu6502/codegen/PostIncrDecrAsmGen.kt index ce398d146..939aacc10 100644 --- a/compiler/src/prog8/compiler/target/c64/codegen/PostIncrDecrAsmGen.kt +++ b/compiler/src/prog8/compiler/target/cpu6502/codegen/PostIncrDecrAsmGen.kt @@ -1,4 +1,4 @@ -package prog8.compiler.target.c64.codegen +package prog8.compiler.target.cpu6502.codegen import prog8.ast.Program import prog8.ast.base.* diff --git a/compiler/src/prog8/compiler/target/c64/codegen/assignment/AsmAssignment.kt b/compiler/src/prog8/compiler/target/cpu6502/codegen/assignment/AsmAssignment.kt similarity index 98% rename from compiler/src/prog8/compiler/target/c64/codegen/assignment/AsmAssignment.kt rename to compiler/src/prog8/compiler/target/cpu6502/codegen/assignment/AsmAssignment.kt index da8042a91..fea8ca3ee 100644 --- a/compiler/src/prog8/compiler/target/c64/codegen/assignment/AsmAssignment.kt +++ b/compiler/src/prog8/compiler/target/cpu6502/codegen/assignment/AsmAssignment.kt @@ -1,4 +1,4 @@ -package prog8.compiler.target.c64.codegen.assignment +package prog8.compiler.target.cpu6502.codegen.assignment import prog8.ast.IMemSizer import prog8.ast.Program @@ -6,7 +6,7 @@ import prog8.ast.base.* import prog8.ast.expressions.* import prog8.ast.statements.* import prog8.compiler.AssemblyError -import prog8.compiler.target.c64.codegen.AsmGen +import prog8.compiler.target.cpu6502.codegen.AsmGen internal enum class TargetStorageKind { diff --git a/compiler/src/prog8/compiler/target/c64/codegen/assignment/AssignmentAsmGen.kt b/compiler/src/prog8/compiler/target/cpu6502/codegen/assignment/AssignmentAsmGen.kt similarity index 99% rename from compiler/src/prog8/compiler/target/c64/codegen/assignment/AssignmentAsmGen.kt rename to compiler/src/prog8/compiler/target/cpu6502/codegen/assignment/AssignmentAsmGen.kt index e601fa620..5d27a942a 100644 --- a/compiler/src/prog8/compiler/target/c64/codegen/assignment/AssignmentAsmGen.kt +++ b/compiler/src/prog8/compiler/target/cpu6502/codegen/assignment/AssignmentAsmGen.kt @@ -1,4 +1,4 @@ -package prog8.compiler.target.c64.codegen.assignment +package prog8.compiler.target.cpu6502.codegen.assignment import prog8.ast.Program import prog8.ast.base.* @@ -9,12 +9,13 @@ import prog8.compiler.AssemblyError import prog8.compiler.functions.BuiltinFunctions import prog8.compiler.functions.builtinFunctionReturnType import prog8.compiler.target.CpuType -import prog8.compiler.target.c64.codegen.AsmGen -import prog8.compiler.target.c64.codegen.ExpressionsAsmGen +import prog8.compiler.target.cpu6502.codegen.AsmGen +import prog8.compiler.target.cpu6502.codegen.ExpressionsAsmGen internal class AssignmentAsmGen(private val program: Program, private val asmgen: AsmGen, - private val exprAsmgen: ExpressionsAsmGen) { + private val exprAsmgen: ExpressionsAsmGen +) { private val augmentableAsmGen = AugmentableAssignmentAsmGen(program, this, exprAsmgen, asmgen) @@ -356,7 +357,7 @@ internal class AssignmentAsmGen(private val program: Program, private val asmgen // special case optimizations - if(target.kind==TargetStorageKind.VARIABLE) { + if(target.kind== TargetStorageKind.VARIABLE) { if(value is IdentifierReference && valueDt != DataType.STRUCT) return assignTypeCastedIdentifier(target.asmVarname, targetDt, asmgen.asmVariableName(value), valueDt) diff --git a/compiler/src/prog8/compiler/target/c64/codegen/assignment/AugmentableAssignmentAsmGen.kt b/compiler/src/prog8/compiler/target/cpu6502/codegen/assignment/AugmentableAssignmentAsmGen.kt similarity index 99% rename from compiler/src/prog8/compiler/target/c64/codegen/assignment/AugmentableAssignmentAsmGen.kt rename to compiler/src/prog8/compiler/target/cpu6502/codegen/assignment/AugmentableAssignmentAsmGen.kt index 4cf054ed5..815fb105f 100644 --- a/compiler/src/prog8/compiler/target/c64/codegen/assignment/AugmentableAssignmentAsmGen.kt +++ b/compiler/src/prog8/compiler/target/cpu6502/codegen/assignment/AugmentableAssignmentAsmGen.kt @@ -1,4 +1,4 @@ -package prog8.compiler.target.c64.codegen.assignment +package prog8.compiler.target.cpu6502.codegen.assignment import prog8.ast.Program import prog8.ast.base.* @@ -7,13 +7,14 @@ import prog8.ast.statements.Subroutine import prog8.ast.toHex import prog8.compiler.AssemblyError import prog8.compiler.target.CpuType -import prog8.compiler.target.c64.codegen.AsmGen -import prog8.compiler.target.c64.codegen.ExpressionsAsmGen +import prog8.compiler.target.cpu6502.codegen.AsmGen +import prog8.compiler.target.cpu6502.codegen.ExpressionsAsmGen internal class AugmentableAssignmentAsmGen(private val program: Program, private val assignmentAsmGen: AssignmentAsmGen, private val exprAsmGen: ExpressionsAsmGen, - private val asmgen: AsmGen) { + private val asmgen: AsmGen +) { fun translate(assign: AsmAssignment) { require(assign.isAugmentable) require(assign.source.kind== SourceStorageKind.EXPRESSION)