From 8c617515ba222f4490389543092b02079813a471 Mon Sep 17 00:00:00 2001 From: Irmen de Jong Date: Fri, 23 Jun 2023 23:36:59 +0200 Subject: [PATCH] don't prefix 3-letter symbols too aggressively (could cause some compilation errors) --- compiler/res/prog8lib/cx16/syslib.p8 | 2 +- .../AsmInstructionNamesReplacer.kt | 8 +++++ .../compiler/astprocessing/AstExtensions.kt | 1 + .../test/codegeneration/TestAsmGenSymbols.kt | 23 +++++++++++++ docs/source/todo.rst | 7 ++-- examples/test.p8 | 32 +++++++------------ 6 files changed, 48 insertions(+), 25 deletions(-) diff --git a/compiler/res/prog8lib/cx16/syslib.p8 b/compiler/res/prog8lib/cx16/syslib.p8 index 387b626e3..4fa2c33b9 100644 --- a/compiler/res/prog8lib/cx16/syslib.p8 +++ b/compiler/res/prog8lib/cx16/syslib.p8 @@ -403,7 +403,7 @@ romsub $ff53 = joystick_scan() clobbers(A, X, Y) romsub $ff56 = joystick_get(ubyte joynr @A) -> ubyte @A, ubyte @X, ubyte @Y romsub $ff56 = joystick_get2(ubyte joynr @A) clobbers(Y) -> uword @AX ; alternative to above to not have the hassle to deal with multiple return values -; Audio (bank 10) +; Audio (rom bank 10) romsub $C04B = psg_init() clobbers(A,X,Y) romsub $C063 = ym_init() clobbers(A,X,Y) -> bool @Pc ; (re)init YM chip romsub $C066 = ym_loaddefpatches() clobbers(A,X,Y) -> bool @Pc ; load default YM patches diff --git a/compiler/src/prog8/compiler/astprocessing/AsmInstructionNamesReplacer.kt b/compiler/src/prog8/compiler/astprocessing/AsmInstructionNamesReplacer.kt index 87138045c..90aa68894 100644 --- a/compiler/src/prog8/compiler/astprocessing/AsmInstructionNamesReplacer.kt +++ b/compiler/src/prog8/compiler/astprocessing/AsmInstructionNamesReplacer.kt @@ -1,18 +1,26 @@ package prog8.compiler.astprocessing import prog8.ast.Node +import prog8.ast.Program import prog8.ast.expressions.IdentifierReference import prog8.ast.statements.* import prog8.ast.walk.AstWalker import prog8.ast.walk.IAstModification class AsmInstructionNamesReplacer( + val program: Program, val blocks: Set, val subroutines: Set, val variables: Set, val labels: Set