diff --git a/src/main/java/dk/camelot64/kickc/Compiler.java b/src/main/java/dk/camelot64/kickc/Compiler.java index ae6bf7a63..89809e3f9 100644 --- a/src/main/java/dk/camelot64/kickc/Compiler.java +++ b/src/main/java/dk/camelot64/kickc/Compiler.java @@ -1,10 +1,7 @@ package dk.camelot64.kickc; import dk.camelot64.kickc.asm.AsmProgram; -import dk.camelot64.kickc.model.Comment; -import dk.camelot64.kickc.model.CompileError; -import dk.camelot64.kickc.model.Program; -import dk.camelot64.kickc.model.StatementSequence; +import dk.camelot64.kickc.model.*; import dk.camelot64.kickc.model.statements.StatementCall; import dk.camelot64.kickc.model.statements.StatementSource; import dk.camelot64.kickc.model.symbols.Variable; @@ -33,6 +30,9 @@ public class Compiler { /** Enable the zero-page coalesce pass. It takes a lot of time, but limits the zero page usage significantly. */ private boolean enableZeroPageCoalasce = false; + /** The target platform. */ + private TargetPlatform targetPlatform = TargetPlatform.DEFAULT; + public Compiler() { this.program = new Program(); } @@ -45,11 +45,14 @@ public class Compiler { this.enableZeroPageCoalasce = optimizeZeroPageCoalesce; } + public void setTargetPlatform(TargetPlatform targetPlatform) { + program.setTargetPlatform(targetPlatform); + } + public void setLog(CompileLog compileLog) { program.setLog(compileLog); } - public static void loadAndParseFile(String fileName, Program program, Path currentPath) { try { if(!fileName.endsWith(".kc")) { @@ -275,7 +278,6 @@ public class Compiler { optimizations.add(new PassNVariableReferenceInfos(program)); optimizations.add(new Pass2UnaryNotSimplification(program)); optimizations.add(new Pass2AliasElimination(program)); - //optimizations.add(new Pass2SelfPhiElimination(program)); optimizations.add(new Pass2IdenticalPhiElimination(program)); optimizations.add(new Pass2DuplicateRValueIdentification(program)); optimizations.add(new Pass2ConditionalJumpSimplification(program)); @@ -484,6 +486,7 @@ public class Compiler { new Pass4CodeGeneration(program, false).generate(); new Pass4AssertNoCpuClobber(program).check(); getLog().append("\nINITIAL ASM"); + getLog().append("Target platform is "+program.getTargetPlatform().getName()); getLog().append(program.getAsm().toString(new AsmProgram.AsmPrintState(true), program)); // Find potential registers for each live range equivalence class - based on clobbering of fragments diff --git a/src/main/java/dk/camelot64/kickc/KickC.java b/src/main/java/dk/camelot64/kickc/KickC.java index 678be571b..6e8b212fd 100644 --- a/src/main/java/dk/camelot64/kickc/KickC.java +++ b/src/main/java/dk/camelot64/kickc/KickC.java @@ -6,6 +6,7 @@ import dk.camelot64.kickc.fragment.AsmFragmentTemplateSynthesizer; import dk.camelot64.kickc.fragment.AsmFragmentTemplateUsages; import dk.camelot64.kickc.model.CompileError; import dk.camelot64.kickc.model.Program; +import dk.camelot64.kickc.model.TargetPlatform; import kickass.KickAssembler; import picocli.CommandLine; @@ -115,6 +116,8 @@ public class KickC implements Callable<Void> { @CommandLine.Option(names = {"-Si"}, description = "Interleave comments with intermediate language code and ASM fragment names in the generated ASM.") private boolean interleaveIclFile = false; + @CommandLine.Option(names = {"-t", "-target"}, description = "The target system. Default is C64 with BASIC upstart. ") + private String target = TargetPlatform.C64BASIC.getName(); /** Program Exit Code signaling a compile error. */ public static final int COMPILE_ERROR = 1; @@ -131,6 +134,21 @@ public class KickC implements Callable<Void> { Compiler compiler = new Compiler(); + if(target!=null) { + TargetPlatform targetPlatform = TargetPlatform.getTargetPlatform(target); + if(targetPlatform==null) { + System.err.println("Unknown target platform "+target); + StringBuffer supported = new StringBuffer(); + supported.append("The supported target platforms are: "); + for(TargetPlatform value : TargetPlatform.values()) { + supported.append(value.getName()).append(" "); + } + System.err.println(supported); + System.exit(COMPILE_ERROR); + } + compiler.setTargetPlatform(targetPlatform); + } + if(libDir != null) { for(Path libPath : libDir) { compiler.addImportPath(libPath.toString()); diff --git a/src/main/java/dk/camelot64/kickc/model/Program.java b/src/main/java/dk/camelot64/kickc/model/Program.java index cccbfaf21..c6ae55aaf 100644 --- a/src/main/java/dk/camelot64/kickc/model/Program.java +++ b/src/main/java/dk/camelot64/kickc/model/Program.java @@ -75,6 +75,8 @@ public class Program { private Map<LabelRef, PhiTransitions> phiTransitions; /** Struct values unwound to individual variables. */ private StructUnwinding structUnwinding; + /** The target platform that the program is being build for. */ + private TargetPlatform targetPlatform = TargetPlatform.DEFAULT; public Program() { this.scope = new ProgramScope(); @@ -85,6 +87,14 @@ public class Program { this.reservedZps = new ArrayList<>(); } + public TargetPlatform getTargetPlatform() { + return targetPlatform; + } + + public void setTargetPlatform(TargetPlatform targetPlatform) { + this.targetPlatform = targetPlatform; + } + public StructUnwinding getStructUnwinding() { return structUnwinding; } diff --git a/src/main/java/dk/camelot64/kickc/model/TargetPlatform.java b/src/main/java/dk/camelot64/kickc/model/TargetPlatform.java new file mode 100644 index 000000000..33e6ba41d --- /dev/null +++ b/src/main/java/dk/camelot64/kickc/model/TargetPlatform.java @@ -0,0 +1,36 @@ +package dk.camelot64.kickc.model; + +/** + * The target platform the compiler is creating a program for. + */ +public enum TargetPlatform { + /** Commodore 64 with BASIC upstart SYS-command. */ + C64BASIC("c64basic"), + /** 6502 assembler (with no upstart code.)*/ + ASM6502("asm6502"); + + /** The default target platform. */ + public static final TargetPlatform DEFAULT = C64BASIC; + + /** The platform name. */ + private String name; + + TargetPlatform(String name) { + this.name = name; + } + + public String getName() { + return name; + } + + /** Get a target platform by name. */ + public static TargetPlatform getTargetPlatform(String name) { + for(TargetPlatform value : TargetPlatform.values()) { + if(value.getName().equalsIgnoreCase(name)) { + return value; + } + } + return null; + } + +} diff --git a/src/main/java/dk/camelot64/kickc/parser/KickC.g4 b/src/main/java/dk/camelot64/kickc/parser/KickC.g4 index a3f6c6e93..b5564088e 100644 --- a/src/main/java/dk/camelot64/kickc/parser/KickC.g4 +++ b/src/main/java/dk/camelot64/kickc/parser/KickC.g4 @@ -68,6 +68,7 @@ parameterDecl globalDirective : '#' directiveReserve #globalDirectiveReserve | '#' 'pc' '(' NUMBER ')' #globalDirectivePc + | '#' 'platform' '(' NAME ')' #globalDirectivePlatform | '#' 'encoding' '(' NAME')' #globalDirectiveEncoding ; diff --git a/src/main/java/dk/camelot64/kickc/parser/KickC.tokens b/src/main/java/dk/camelot64/kickc/parser/KickC.tokens index e35ffe7a3..e74cc1bef 100644 --- a/src/main/java/dk/camelot64/kickc/parser/KickC.tokens +++ b/src/main/java/dk/camelot64/kickc/parser/KickC.tokens @@ -79,26 +79,27 @@ T__77=78 T__78=79 T__79=80 T__80=81 -MNEMONIC=82 -KICKASM=83 -SIMPLETYPE=84 -STRING=85 -CHAR=86 -BOOLEAN=87 -NUMBER=88 -NUMFLOAT=89 -BINFLOAT=90 -DECFLOAT=91 -HEXFLOAT=92 -NUMINT=93 -BININTEGER=94 -DECINTEGER=95 -HEXINTEGER=96 -NAME=97 -ASMREL=98 -WS=99 -COMMENT_LINE=100 -COMMENT_BLOCK=101 +T__81=82 +MNEMONIC=83 +KICKASM=84 +SIMPLETYPE=85 +STRING=86 +CHAR=87 +BOOLEAN=88 +NUMBER=89 +NUMFLOAT=90 +BINFLOAT=91 +DECFLOAT=92 +HEXFLOAT=93 +NUMINT=94 +BININTEGER=95 +DECINTEGER=96 +HEXINTEGER=97 +NAME=98 +ASMREL=99 +WS=100 +COMMENT_LINE=101 +COMMENT_BLOCK=102 'import'=1 ';'=2 'typedef'=3 @@ -110,73 +111,74 @@ COMMENT_BLOCK=101 '}'=9 '#'=10 'pc'=11 -'encoding'=12 -'const'=13 -'extern'=14 -'align'=15 -'register'=16 -'inline'=17 -'volatile'=18 -'interrupt'=19 -'reserve'=20 -'if'=21 -'else'=22 -'while'=23 -'do'=24 -'for'=25 -'return'=26 -'break'=27 -'continue'=28 -'asm'=29 -':'=30 -'..'=31 -'signed'=32 -'unsigned'=33 -'*'=34 -'['=35 -']'=36 -'struct'=37 -'enum'=38 -'.'=39 -'->'=40 -'sizeof'=41 -'typeid'=42 -'--'=43 -'++'=44 -'+'=45 -'-'=46 -'!'=47 -'&'=48 -'~'=49 -'>>'=50 -'<<'=51 -'/'=52 -'%'=53 -'<'=54 -'>'=55 -'=='=56 -'!='=57 -'<='=58 -'>='=59 -'^'=60 -'|'=61 -'&&'=62 -'||'=63 -'?'=64 -'+='=65 -'-='=66 -'*='=67 -'/='=68 -'%='=69 -'<<='=70 -'>>='=71 -'&='=72 -'|='=73 -'^='=74 -'kickasm'=75 -'resource'=76 -'uses'=77 -'clobbers'=78 -'bytes'=79 -'cycles'=80 -'.byte'=81 +'platform'=12 +'encoding'=13 +'const'=14 +'extern'=15 +'align'=16 +'register'=17 +'inline'=18 +'volatile'=19 +'interrupt'=20 +'reserve'=21 +'if'=22 +'else'=23 +'while'=24 +'do'=25 +'for'=26 +'return'=27 +'break'=28 +'continue'=29 +'asm'=30 +':'=31 +'..'=32 +'signed'=33 +'unsigned'=34 +'*'=35 +'['=36 +']'=37 +'struct'=38 +'enum'=39 +'.'=40 +'->'=41 +'sizeof'=42 +'typeid'=43 +'--'=44 +'++'=45 +'+'=46 +'-'=47 +'!'=48 +'&'=49 +'~'=50 +'>>'=51 +'<<'=52 +'/'=53 +'%'=54 +'<'=55 +'>'=56 +'=='=57 +'!='=58 +'<='=59 +'>='=60 +'^'=61 +'|'=62 +'&&'=63 +'||'=64 +'?'=65 +'+='=66 +'-='=67 +'*='=68 +'/='=69 +'%='=70 +'<<='=71 +'>>='=72 +'&='=73 +'|='=74 +'^='=75 +'kickasm'=76 +'resource'=77 +'uses'=78 +'clobbers'=79 +'bytes'=80 +'cycles'=81 +'.byte'=82 diff --git a/src/main/java/dk/camelot64/kickc/parser/KickCBaseListener.java b/src/main/java/dk/camelot64/kickc/parser/KickCBaseListener.java index cb8a11fa9..87153b0c2 100644 --- a/src/main/java/dk/camelot64/kickc/parser/KickCBaseListener.java +++ b/src/main/java/dk/camelot64/kickc/parser/KickCBaseListener.java @@ -1,4 +1,4 @@ -// Generated from C:/c64/kickc/src/main/java/dk/camelot64/kickc/parser\KickC.g4 by ANTLR 4.7 +// Generated from /Users/jespergravgaard/c64/kickc/src/main/java/dk/camelot64/kickc/parser/KickC.g4 by ANTLR 4.7 package dk.camelot64.kickc.parser; import org.antlr.v4.runtime.ParserRuleContext; @@ -227,6 +227,18 @@ public class KickCBaseListener implements KickCListener { * <p>The default implementation does nothing.</p> */ @Override public void exitGlobalDirectivePc(KickCParser.GlobalDirectivePcContext ctx) { } + /** + * {@inheritDoc} + * + * <p>The default implementation does nothing.</p> + */ + @Override public void enterGlobalDirectivePlatform(KickCParser.GlobalDirectivePlatformContext ctx) { } + /** + * {@inheritDoc} + * + * <p>The default implementation does nothing.</p> + */ + @Override public void exitGlobalDirectivePlatform(KickCParser.GlobalDirectivePlatformContext ctx) { } /** * {@inheritDoc} * diff --git a/src/main/java/dk/camelot64/kickc/parser/KickCBaseVisitor.java b/src/main/java/dk/camelot64/kickc/parser/KickCBaseVisitor.java index dba09d73e..52e652727 100644 --- a/src/main/java/dk/camelot64/kickc/parser/KickCBaseVisitor.java +++ b/src/main/java/dk/camelot64/kickc/parser/KickCBaseVisitor.java @@ -1,4 +1,4 @@ -// Generated from C:/c64/kickc/src/main/java/dk/camelot64/kickc/parser\KickC.g4 by ANTLR 4.7 +// Generated from /Users/jespergravgaard/c64/kickc/src/main/java/dk/camelot64/kickc/parser/KickC.g4 by ANTLR 4.7 package dk.camelot64.kickc.parser; import org.antlr.v4.runtime.tree.AbstractParseTreeVisitor; @@ -137,6 +137,13 @@ public class KickCBaseVisitor<T> extends AbstractParseTreeVisitor<T> implements * {@link #visitChildren} on {@code ctx}.</p> */ @Override public T visitGlobalDirectivePc(KickCParser.GlobalDirectivePcContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + * <p>The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.</p> + */ + @Override public T visitGlobalDirectivePlatform(KickCParser.GlobalDirectivePlatformContext ctx) { return visitChildren(ctx); } /** * {@inheritDoc} * diff --git a/src/main/java/dk/camelot64/kickc/parser/KickCLexer.java b/src/main/java/dk/camelot64/kickc/parser/KickCLexer.java index 7f417031e..123456f74 100644 --- a/src/main/java/dk/camelot64/kickc/parser/KickCLexer.java +++ b/src/main/java/dk/camelot64/kickc/parser/KickCLexer.java @@ -1,4 +1,4 @@ -// Generated from C:/c64/kickc/src/main/java/dk/camelot64/kickc/parser\KickC.g4 by ANTLR 4.7 +// Generated from /Users/jespergravgaard/c64/kickc/src/main/java/dk/camelot64/kickc/parser/KickC.g4 by ANTLR 4.7 package dk.camelot64.kickc.parser; import org.antlr.v4.runtime.Lexer; import org.antlr.v4.runtime.CharStream; @@ -28,10 +28,10 @@ public class KickCLexer extends Lexer { T__59=60, T__60=61, T__61=62, T__62=63, T__63=64, T__64=65, T__65=66, T__66=67, T__67=68, T__68=69, T__69=70, T__70=71, T__71=72, T__72=73, T__73=74, T__74=75, T__75=76, T__76=77, T__77=78, T__78=79, T__79=80, - T__80=81, MNEMONIC=82, KICKASM=83, SIMPLETYPE=84, STRING=85, CHAR=86, - BOOLEAN=87, NUMBER=88, NUMFLOAT=89, BINFLOAT=90, DECFLOAT=91, HEXFLOAT=92, - NUMINT=93, BININTEGER=94, DECINTEGER=95, HEXINTEGER=96, NAME=97, ASMREL=98, - WS=99, COMMENT_LINE=100, COMMENT_BLOCK=101; + T__80=81, T__81=82, MNEMONIC=83, KICKASM=84, SIMPLETYPE=85, STRING=86, + CHAR=87, BOOLEAN=88, NUMBER=89, NUMFLOAT=90, BINFLOAT=91, DECFLOAT=92, + HEXFLOAT=93, NUMINT=94, BININTEGER=95, DECINTEGER=96, HEXINTEGER=97, NAME=98, + ASMREL=99, WS=100, COMMENT_LINE=101, COMMENT_BLOCK=102; public static String[] channelNames = { "DEFAULT_TOKEN_CHANNEL", "HIDDEN" }; @@ -51,17 +51,17 @@ public class KickCLexer extends Lexer { "T__57", "T__58", "T__59", "T__60", "T__61", "T__62", "T__63", "T__64", "T__65", "T__66", "T__67", "T__68", "T__69", "T__70", "T__71", "T__72", "T__73", "T__74", "T__75", "T__76", "T__77", "T__78", "T__79", "T__80", - "MNEMONIC", "KICKASM", "SIMPLETYPE", "STRING", "CHAR", "BOOLEAN", "NUMBER", - "NUMFLOAT", "BINFLOAT", "DECFLOAT", "HEXFLOAT", "NUMINT", "BININTEGER", + "T__81", "MNEMONIC", "KICKASM", "SIMPLETYPE", "STRING", "CHAR", "BOOLEAN", + "NUMBER", "NUMFLOAT", "BINFLOAT", "DECFLOAT", "HEXFLOAT", "NUMINT", "BININTEGER", "DECINTEGER", "HEXINTEGER", "BINDIGIT", "DECDIGIT", "HEXDIGIT", "NAME", "NAME_START", "NAME_CHAR", "ASMREL", "WS", "COMMENT_LINE", "COMMENT_BLOCK" }; private static final String[] _LITERAL_NAMES = { null, "'import'", "';'", "'typedef'", "','", "'='", "'('", "')'", "'{'", - "'}'", "'#'", "'pc'", "'encoding'", "'const'", "'extern'", "'align'", - "'register'", "'inline'", "'volatile'", "'interrupt'", "'reserve'", "'if'", - "'else'", "'while'", "'do'", "'for'", "'return'", "'break'", "'continue'", + "'}'", "'#'", "'pc'", "'platform'", "'encoding'", "'const'", "'extern'", + "'align'", "'register'", "'inline'", "'volatile'", "'interrupt'", "'reserve'", + "'if'", "'else'", "'while'", "'do'", "'for'", "'return'", "'break'", "'continue'", "'asm'", "':'", "'..'", "'signed'", "'unsigned'", "'*'", "'['", "']'", "'struct'", "'enum'", "'.'", "'->'", "'sizeof'", "'typeid'", "'--'", "'++'", "'+'", "'-'", "'!'", "'&'", "'~'", "'>>'", "'<<'", "'/'", "'%'", "'<'", @@ -77,7 +77,7 @@ public class KickCLexer extends Lexer { null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, - null, null, null, null, null, null, null, null, null, null, "MNEMONIC", + null, null, null, null, null, null, null, null, null, null, null, "MNEMONIC", "KICKASM", "SIMPLETYPE", "STRING", "CHAR", "BOOLEAN", "NUMBER", "NUMFLOAT", "BINFLOAT", "DECFLOAT", "HEXFLOAT", "NUMINT", "BININTEGER", "DECINTEGER", "HEXINTEGER", "NAME", "ASMREL", "WS", "COMMENT_LINE", "COMMENT_BLOCK" @@ -140,7 +140,7 @@ public class KickCLexer extends Lexer { public ATN getATN() { return _ATN; } public static final String _serializedATN = - "\3\u608b\ua72a\u8133\ub9ed\u417c\u3be7\u7786\u5964\2g\u040f\b\1\4\2\t"+ + "\3\u608b\ua72a\u8133\ub9ed\u417c\u3be7\u7786\u5964\2h\u041a\b\1\4\2\t"+ "\2\4\3\t\3\4\4\t\4\4\5\t\5\4\6\t\6\4\7\t\7\4\b\t\b\4\t\t\t\4\n\t\n\4\13"+ "\t\13\4\f\t\f\4\r\t\r\4\16\t\16\4\17\t\17\4\20\t\20\4\21\t\21\4\22\t\22"+ "\4\23\t\23\4\24\t\24\4\25\t\25\4\26\t\26\4\27\t\27\4\30\t\30\4\31\t\31"+ @@ -152,369 +152,372 @@ public class KickCLexer extends Lexer { "\tI\4J\tJ\4K\tK\4L\tL\4M\tM\4N\tN\4O\tO\4P\tP\4Q\tQ\4R\tR\4S\tS\4T\tT"+ "\4U\tU\4V\tV\4W\tW\4X\tX\4Y\tY\4Z\tZ\4[\t[\4\\\t\\\4]\t]\4^\t^\4_\t_\4"+ "`\t`\4a\ta\4b\tb\4c\tc\4d\td\4e\te\4f\tf\4g\tg\4h\th\4i\ti\4j\tj\4k\t"+ - "k\3\2\3\2\3\2\3\2\3\2\3\2\3\2\3\3\3\3\3\4\3\4\3\4\3\4\3\4\3\4\3\4\3\4"+ - "\3\5\3\5\3\6\3\6\3\7\3\7\3\b\3\b\3\t\3\t\3\n\3\n\3\13\3\13\3\f\3\f\3\f"+ - "\3\r\3\r\3\r\3\r\3\r\3\r\3\r\3\r\3\r\3\16\3\16\3\16\3\16\3\16\3\16\3\17"+ - "\3\17\3\17\3\17\3\17\3\17\3\17\3\20\3\20\3\20\3\20\3\20\3\20\3\21\3\21"+ - "\3\21\3\21\3\21\3\21\3\21\3\21\3\21\3\22\3\22\3\22\3\22\3\22\3\22\3\22"+ - "\3\23\3\23\3\23\3\23\3\23\3\23\3\23\3\23\3\23\3\24\3\24\3\24\3\24\3\24"+ - "\3\24\3\24\3\24\3\24\3\24\3\25\3\25\3\25\3\25\3\25\3\25\3\25\3\25\3\26"+ - "\3\26\3\26\3\27\3\27\3\27\3\27\3\27\3\30\3\30\3\30\3\30\3\30\3\30\3\31"+ - "\3\31\3\31\3\32\3\32\3\32\3\32\3\33\3\33\3\33\3\33\3\33\3\33\3\33\3\34"+ - "\3\34\3\34\3\34\3\34\3\34\3\35\3\35\3\35\3\35\3\35\3\35\3\35\3\35\3\35"+ - "\3\36\3\36\3\36\3\36\3\37\3\37\3 \3 \3 \3!\3!\3!\3!\3!\3!\3!\3\"\3\"\3"+ - "\"\3\"\3\"\3\"\3\"\3\"\3\"\3#\3#\3$\3$\3%\3%\3&\3&\3&\3&\3&\3&\3&\3\'"+ - "\3\'\3\'\3\'\3\'\3(\3(\3)\3)\3)\3*\3*\3*\3*\3*\3*\3*\3+\3+\3+\3+\3+\3"+ - "+\3+\3,\3,\3,\3-\3-\3-\3.\3.\3/\3/\3\60\3\60\3\61\3\61\3\62\3\62\3\63"+ - "\3\63\3\63\3\64\3\64\3\64\3\65\3\65\3\66\3\66\3\67\3\67\38\38\39\39\3"+ - "9\3:\3:\3:\3;\3;\3;\3<\3<\3<\3=\3=\3>\3>\3?\3?\3?\3@\3@\3@\3A\3A\3B\3"+ - "B\3B\3C\3C\3C\3D\3D\3D\3E\3E\3E\3F\3F\3F\3G\3G\3G\3G\3H\3H\3H\3H\3I\3"+ - "I\3I\3J\3J\3J\3K\3K\3K\3L\3L\3L\3L\3L\3L\3L\3L\3M\3M\3M\3M\3M\3M\3M\3"+ - "M\3M\3N\3N\3N\3N\3N\3O\3O\3O\3O\3O\3O\3O\3O\3O\3P\3P\3P\3P\3P\3P\3Q\3"+ - "Q\3Q\3Q\3Q\3Q\3Q\3R\3R\3R\3R\3R\3R\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3"+ - "S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3"+ - "S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3"+ - "S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3"+ - "S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3"+ - "S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3"+ - "S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3"+ - "S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3"+ - "S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3"+ - "S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3"+ - "S\3S\3S\3S\5S\u0310\nS\3T\3T\3T\3T\7T\u0316\nT\fT\16T\u0319\13T\3T\3T"+ - "\3T\3U\3U\3U\3U\3U\3U\3U\3U\3U\3U\3U\3U\3U\3U\3U\3U\3U\3U\3U\3U\3U\3U"+ - "\3U\3U\3U\3U\3U\3U\3U\3U\3U\3U\3U\3U\3U\3U\3U\5U\u0343\nU\3V\3V\3V\3V"+ - "\7V\u0349\nV\fV\16V\u034c\13V\3V\3V\5V\u0350\nV\3V\3V\5V\u0354\nV\5V\u0356"+ - "\nV\3V\5V\u0359\nV\3W\3W\3W\3W\5W\u035f\nW\3W\3W\3X\3X\3X\3X\3X\3X\3X"+ - "\3X\3X\5X\u036c\nX\3Y\3Y\5Y\u0370\nY\3Z\3Z\3Z\5Z\u0375\nZ\3[\3[\3[\3["+ - "\3[\5[\u037c\n[\3[\7[\u037f\n[\f[\16[\u0382\13[\3[\3[\6[\u0386\n[\r[\16"+ - "[\u0387\3\\\7\\\u038b\n\\\f\\\16\\\u038e\13\\\3\\\3\\\6\\\u0392\n\\\r"+ - "\\\16\\\u0393\3]\3]\3]\3]\3]\5]\u039b\n]\3]\7]\u039e\n]\f]\16]\u03a1\13"+ - "]\3]\3]\6]\u03a5\n]\r]\16]\u03a6\3^\3^\3^\5^\u03ac\n^\3^\3^\3^\5^\u03b1"+ - "\n^\3_\3_\3_\6_\u03b6\n_\r_\16_\u03b7\3_\3_\6_\u03bc\n_\r_\16_\u03bd\5"+ - "_\u03c0\n_\3`\6`\u03c3\n`\r`\16`\u03c4\3a\3a\3a\3a\3a\5a\u03cc\na\3a\6"+ - "a\u03cf\na\ra\16a\u03d0\3b\3b\3c\3c\3d\3d\3e\3e\7e\u03db\ne\fe\16e\u03de"+ - "\13e\3f\3f\3g\3g\3h\3h\7h\u03e6\nh\fh\16h\u03e9\13h\3h\6h\u03ec\nh\rh"+ - "\16h\u03ed\3i\6i\u03f1\ni\ri\16i\u03f2\3i\3i\3j\3j\3j\3j\7j\u03fb\nj\f"+ - "j\16j\u03fe\13j\3j\3j\3k\3k\3k\3k\7k\u0406\nk\fk\16k\u0409\13k\3k\3k\3"+ - "k\3k\3k\4\u0317\u0407\2l\3\3\5\4\7\5\t\6\13\7\r\b\17\t\21\n\23\13\25\f"+ - "\27\r\31\16\33\17\35\20\37\21!\22#\23%\24\'\25)\26+\27-\30/\31\61\32\63"+ - "\33\65\34\67\359\36;\37= ?!A\"C#E$G%I&K\'M(O)Q*S+U,W-Y.[/]\60_\61a\62"+ - "c\63e\64g\65i\66k\67m8o9q:s;u<w=y>{?}@\177A\u0081B\u0083C\u0085D\u0087"+ - "E\u0089F\u008bG\u008dH\u008fI\u0091J\u0093K\u0095L\u0097M\u0099N\u009b"+ - "O\u009dP\u009fQ\u00a1R\u00a3S\u00a5T\u00a7U\u00a9V\u00abW\u00adX\u00af"+ - "Y\u00b1Z\u00b3[\u00b5\\\u00b7]\u00b9^\u00bb_\u00bd`\u00bfa\u00c1b\u00c3"+ - "\2\u00c5\2\u00c7\2\u00c9c\u00cb\2\u00cd\2\u00cfd\u00d1e\u00d3f\u00d5g"+ - "\3\2\22\3\2$$\3\2||\4\2rruu\4\2ooww\3\2))\4\2uuww\7\2dfkknnuuyy\4\2DD"+ - "dd\3\2\62\63\3\2\62;\5\2\62;CHch\5\2C\\aac|\6\2\62;C\\aac|\4\2--//\6\2"+ - "\13\f\17\17\"\"\u00a2\u00a2\4\2\f\f\17\17\2\u0481\2\3\3\2\2\2\2\5\3\2"+ - "\2\2\2\7\3\2\2\2\2\t\3\2\2\2\2\13\3\2\2\2\2\r\3\2\2\2\2\17\3\2\2\2\2\21"+ - "\3\2\2\2\2\23\3\2\2\2\2\25\3\2\2\2\2\27\3\2\2\2\2\31\3\2\2\2\2\33\3\2"+ - "\2\2\2\35\3\2\2\2\2\37\3\2\2\2\2!\3\2\2\2\2#\3\2\2\2\2%\3\2\2\2\2\'\3"+ - "\2\2\2\2)\3\2\2\2\2+\3\2\2\2\2-\3\2\2\2\2/\3\2\2\2\2\61\3\2\2\2\2\63\3"+ - "\2\2\2\2\65\3\2\2\2\2\67\3\2\2\2\29\3\2\2\2\2;\3\2\2\2\2=\3\2\2\2\2?\3"+ - "\2\2\2\2A\3\2\2\2\2C\3\2\2\2\2E\3\2\2\2\2G\3\2\2\2\2I\3\2\2\2\2K\3\2\2"+ - "\2\2M\3\2\2\2\2O\3\2\2\2\2Q\3\2\2\2\2S\3\2\2\2\2U\3\2\2\2\2W\3\2\2\2\2"+ - "Y\3\2\2\2\2[\3\2\2\2\2]\3\2\2\2\2_\3\2\2\2\2a\3\2\2\2\2c\3\2\2\2\2e\3"+ - "\2\2\2\2g\3\2\2\2\2i\3\2\2\2\2k\3\2\2\2\2m\3\2\2\2\2o\3\2\2\2\2q\3\2\2"+ - "\2\2s\3\2\2\2\2u\3\2\2\2\2w\3\2\2\2\2y\3\2\2\2\2{\3\2\2\2\2}\3\2\2\2\2"+ - "\177\3\2\2\2\2\u0081\3\2\2\2\2\u0083\3\2\2\2\2\u0085\3\2\2\2\2\u0087\3"+ - "\2\2\2\2\u0089\3\2\2\2\2\u008b\3\2\2\2\2\u008d\3\2\2\2\2\u008f\3\2\2\2"+ - "\2\u0091\3\2\2\2\2\u0093\3\2\2\2\2\u0095\3\2\2\2\2\u0097\3\2\2\2\2\u0099"+ - "\3\2\2\2\2\u009b\3\2\2\2\2\u009d\3\2\2\2\2\u009f\3\2\2\2\2\u00a1\3\2\2"+ - "\2\2\u00a3\3\2\2\2\2\u00a5\3\2\2\2\2\u00a7\3\2\2\2\2\u00a9\3\2\2\2\2\u00ab"+ - "\3\2\2\2\2\u00ad\3\2\2\2\2\u00af\3\2\2\2\2\u00b1\3\2\2\2\2\u00b3\3\2\2"+ - "\2\2\u00b5\3\2\2\2\2\u00b7\3\2\2\2\2\u00b9\3\2\2\2\2\u00bb\3\2\2\2\2\u00bd"+ - "\3\2\2\2\2\u00bf\3\2\2\2\2\u00c1\3\2\2\2\2\u00c9\3\2\2\2\2\u00cf\3\2\2"+ - "\2\2\u00d1\3\2\2\2\2\u00d3\3\2\2\2\2\u00d5\3\2\2\2\3\u00d7\3\2\2\2\5\u00de"+ - "\3\2\2\2\7\u00e0\3\2\2\2\t\u00e8\3\2\2\2\13\u00ea\3\2\2\2\r\u00ec\3\2"+ - "\2\2\17\u00ee\3\2\2\2\21\u00f0\3\2\2\2\23\u00f2\3\2\2\2\25\u00f4\3\2\2"+ - "\2\27\u00f6\3\2\2\2\31\u00f9\3\2\2\2\33\u0102\3\2\2\2\35\u0108\3\2\2\2"+ - "\37\u010f\3\2\2\2!\u0115\3\2\2\2#\u011e\3\2\2\2%\u0125\3\2\2\2\'\u012e"+ - "\3\2\2\2)\u0138\3\2\2\2+\u0140\3\2\2\2-\u0143\3\2\2\2/\u0148\3\2\2\2\61"+ - "\u014e\3\2\2\2\63\u0151\3\2\2\2\65\u0155\3\2\2\2\67\u015c\3\2\2\29\u0162"+ - "\3\2\2\2;\u016b\3\2\2\2=\u016f\3\2\2\2?\u0171\3\2\2\2A\u0174\3\2\2\2C"+ - "\u017b\3\2\2\2E\u0184\3\2\2\2G\u0186\3\2\2\2I\u0188\3\2\2\2K\u018a\3\2"+ - "\2\2M\u0191\3\2\2\2O\u0196\3\2\2\2Q\u0198\3\2\2\2S\u019b\3\2\2\2U\u01a2"+ - "\3\2\2\2W\u01a9\3\2\2\2Y\u01ac\3\2\2\2[\u01af\3\2\2\2]\u01b1\3\2\2\2_"+ - "\u01b3\3\2\2\2a\u01b5\3\2\2\2c\u01b7\3\2\2\2e\u01b9\3\2\2\2g\u01bc\3\2"+ - "\2\2i\u01bf\3\2\2\2k\u01c1\3\2\2\2m\u01c3\3\2\2\2o\u01c5\3\2\2\2q\u01c7"+ - "\3\2\2\2s\u01ca\3\2\2\2u\u01cd\3\2\2\2w\u01d0\3\2\2\2y\u01d3\3\2\2\2{"+ - "\u01d5\3\2\2\2}\u01d7\3\2\2\2\177\u01da\3\2\2\2\u0081\u01dd\3\2\2\2\u0083"+ - "\u01df\3\2\2\2\u0085\u01e2\3\2\2\2\u0087\u01e5\3\2\2\2\u0089\u01e8\3\2"+ - "\2\2\u008b\u01eb\3\2\2\2\u008d\u01ee\3\2\2\2\u008f\u01f2\3\2\2\2\u0091"+ - "\u01f6\3\2\2\2\u0093\u01f9\3\2\2\2\u0095\u01fc\3\2\2\2\u0097\u01ff\3\2"+ - "\2\2\u0099\u0207\3\2\2\2\u009b\u0210\3\2\2\2\u009d\u0215\3\2\2\2\u009f"+ - "\u021e\3\2\2\2\u00a1\u0224\3\2\2\2\u00a3\u022b\3\2\2\2\u00a5\u030f\3\2"+ - "\2\2\u00a7\u0311\3\2\2\2\u00a9\u0342\3\2\2\2\u00ab\u0344\3\2\2\2\u00ad"+ - "\u035a\3\2\2\2\u00af\u036b\3\2\2\2\u00b1\u036f\3\2\2\2\u00b3\u0374\3\2"+ - "\2\2\u00b5\u037b\3\2\2\2\u00b7\u038c\3\2\2\2\u00b9\u039a\3\2\2\2\u00bb"+ - "\u03ab\3\2\2\2\u00bd\u03bf\3\2\2\2\u00bf\u03c2\3\2\2\2\u00c1\u03cb\3\2"+ - "\2\2\u00c3\u03d2\3\2\2\2\u00c5\u03d4\3\2\2\2\u00c7\u03d6\3\2\2\2\u00c9"+ - "\u03d8\3\2\2\2\u00cb\u03df\3\2\2\2\u00cd\u03e1\3\2\2\2\u00cf\u03e3\3\2"+ - "\2\2\u00d1\u03f0\3\2\2\2\u00d3\u03f6\3\2\2\2\u00d5\u0401\3\2\2\2\u00d7"+ - "\u00d8\7k\2\2\u00d8\u00d9\7o\2\2\u00d9\u00da\7r\2\2\u00da\u00db\7q\2\2"+ - "\u00db\u00dc\7t\2\2\u00dc\u00dd\7v\2\2\u00dd\4\3\2\2\2\u00de\u00df\7="+ - "\2\2\u00df\6\3\2\2\2\u00e0\u00e1\7v\2\2\u00e1\u00e2\7{\2\2\u00e2\u00e3"+ - "\7r\2\2\u00e3\u00e4\7g\2\2\u00e4\u00e5\7f\2\2\u00e5\u00e6\7g\2\2\u00e6"+ - "\u00e7\7h\2\2\u00e7\b\3\2\2\2\u00e8\u00e9\7.\2\2\u00e9\n\3\2\2\2\u00ea"+ - "\u00eb\7?\2\2\u00eb\f\3\2\2\2\u00ec\u00ed\7*\2\2\u00ed\16\3\2\2\2\u00ee"+ - "\u00ef\7+\2\2\u00ef\20\3\2\2\2\u00f0\u00f1\7}\2\2\u00f1\22\3\2\2\2\u00f2"+ - "\u00f3\7\177\2\2\u00f3\24\3\2\2\2\u00f4\u00f5\7%\2\2\u00f5\26\3\2\2\2"+ - "\u00f6\u00f7\7r\2\2\u00f7\u00f8\7e\2\2\u00f8\30\3\2\2\2\u00f9\u00fa\7"+ - "g\2\2\u00fa\u00fb\7p\2\2\u00fb\u00fc\7e\2\2\u00fc\u00fd\7q\2\2\u00fd\u00fe"+ - "\7f\2\2\u00fe\u00ff\7k\2\2\u00ff\u0100\7p\2\2\u0100\u0101\7i\2\2\u0101"+ - "\32\3\2\2\2\u0102\u0103\7e\2\2\u0103\u0104\7q\2\2\u0104\u0105\7p\2\2\u0105"+ - "\u0106\7u\2\2\u0106\u0107\7v\2\2\u0107\34\3\2\2\2\u0108\u0109\7g\2\2\u0109"+ - "\u010a\7z\2\2\u010a\u010b\7v\2\2\u010b\u010c\7g\2\2\u010c\u010d\7t\2\2"+ - "\u010d\u010e\7p\2\2\u010e\36\3\2\2\2\u010f\u0110\7c\2\2\u0110\u0111\7"+ - "n\2\2\u0111\u0112\7k\2\2\u0112\u0113\7i\2\2\u0113\u0114\7p\2\2\u0114 "+ - "\3\2\2\2\u0115\u0116\7t\2\2\u0116\u0117\7g\2\2\u0117\u0118\7i\2\2\u0118"+ - "\u0119\7k\2\2\u0119\u011a\7u\2\2\u011a\u011b\7v\2\2\u011b\u011c\7g\2\2"+ - "\u011c\u011d\7t\2\2\u011d\"\3\2\2\2\u011e\u011f\7k\2\2\u011f\u0120\7p"+ - "\2\2\u0120\u0121\7n\2\2\u0121\u0122\7k\2\2\u0122\u0123\7p\2\2\u0123\u0124"+ - "\7g\2\2\u0124$\3\2\2\2\u0125\u0126\7x\2\2\u0126\u0127\7q\2\2\u0127\u0128"+ - "\7n\2\2\u0128\u0129\7c\2\2\u0129\u012a\7v\2\2\u012a\u012b\7k\2\2\u012b"+ - "\u012c\7n\2\2\u012c\u012d\7g\2\2\u012d&\3\2\2\2\u012e\u012f\7k\2\2\u012f"+ - "\u0130\7p\2\2\u0130\u0131\7v\2\2\u0131\u0132\7g\2\2\u0132\u0133\7t\2\2"+ - "\u0133\u0134\7t\2\2\u0134\u0135\7w\2\2\u0135\u0136\7r\2\2\u0136\u0137"+ - "\7v\2\2\u0137(\3\2\2\2\u0138\u0139\7t\2\2\u0139\u013a\7g\2\2\u013a\u013b"+ - "\7u\2\2\u013b\u013c\7g\2\2\u013c\u013d\7t\2\2\u013d\u013e\7x\2\2\u013e"+ - "\u013f\7g\2\2\u013f*\3\2\2\2\u0140\u0141\7k\2\2\u0141\u0142\7h\2\2\u0142"+ - ",\3\2\2\2\u0143\u0144\7g\2\2\u0144\u0145\7n\2\2\u0145\u0146\7u\2\2\u0146"+ - "\u0147\7g\2\2\u0147.\3\2\2\2\u0148\u0149\7y\2\2\u0149\u014a\7j\2\2\u014a"+ - "\u014b\7k\2\2\u014b\u014c\7n\2\2\u014c\u014d\7g\2\2\u014d\60\3\2\2\2\u014e"+ - "\u014f\7f\2\2\u014f\u0150\7q\2\2\u0150\62\3\2\2\2\u0151\u0152\7h\2\2\u0152"+ - "\u0153\7q\2\2\u0153\u0154\7t\2\2\u0154\64\3\2\2\2\u0155\u0156\7t\2\2\u0156"+ - "\u0157\7g\2\2\u0157\u0158\7v\2\2\u0158\u0159\7w\2\2\u0159\u015a\7t\2\2"+ - "\u015a\u015b\7p\2\2\u015b\66\3\2\2\2\u015c\u015d\7d\2\2\u015d\u015e\7"+ - "t\2\2\u015e\u015f\7g\2\2\u015f\u0160\7c\2\2\u0160\u0161\7m\2\2\u01618"+ - "\3\2\2\2\u0162\u0163\7e\2\2\u0163\u0164\7q\2\2\u0164\u0165\7p\2\2\u0165"+ - "\u0166\7v\2\2\u0166\u0167\7k\2\2\u0167\u0168\7p\2\2\u0168\u0169\7w\2\2"+ - "\u0169\u016a\7g\2\2\u016a:\3\2\2\2\u016b\u016c\7c\2\2\u016c\u016d\7u\2"+ - "\2\u016d\u016e\7o\2\2\u016e<\3\2\2\2\u016f\u0170\7<\2\2\u0170>\3\2\2\2"+ - "\u0171\u0172\7\60\2\2\u0172\u0173\7\60\2\2\u0173@\3\2\2\2\u0174\u0175"+ - "\7u\2\2\u0175\u0176\7k\2\2\u0176\u0177\7i\2\2\u0177\u0178\7p\2\2\u0178"+ - "\u0179\7g\2\2\u0179\u017a\7f\2\2\u017aB\3\2\2\2\u017b\u017c\7w\2\2\u017c"+ - "\u017d\7p\2\2\u017d\u017e\7u\2\2\u017e\u017f\7k\2\2\u017f\u0180\7i\2\2"+ - "\u0180\u0181\7p\2\2\u0181\u0182\7g\2\2\u0182\u0183\7f\2\2\u0183D\3\2\2"+ - "\2\u0184\u0185\7,\2\2\u0185F\3\2\2\2\u0186\u0187\7]\2\2\u0187H\3\2\2\2"+ - "\u0188\u0189\7_\2\2\u0189J\3\2\2\2\u018a\u018b\7u\2\2\u018b\u018c\7v\2"+ - "\2\u018c\u018d\7t\2\2\u018d\u018e\7w\2\2\u018e\u018f\7e\2\2\u018f\u0190"+ - "\7v\2\2\u0190L\3\2\2\2\u0191\u0192\7g\2\2\u0192\u0193\7p\2\2\u0193\u0194"+ - "\7w\2\2\u0194\u0195\7o\2\2\u0195N\3\2\2\2\u0196\u0197\7\60\2\2\u0197P"+ - "\3\2\2\2\u0198\u0199\7/\2\2\u0199\u019a\7@\2\2\u019aR\3\2\2\2\u019b\u019c"+ - "\7u\2\2\u019c\u019d\7k\2\2\u019d\u019e\7|\2\2\u019e\u019f\7g\2\2\u019f"+ - "\u01a0\7q\2\2\u01a0\u01a1\7h\2\2\u01a1T\3\2\2\2\u01a2\u01a3\7v\2\2\u01a3"+ - "\u01a4\7{\2\2\u01a4\u01a5\7r\2\2\u01a5\u01a6\7g\2\2\u01a6\u01a7\7k\2\2"+ - "\u01a7\u01a8\7f\2\2\u01a8V\3\2\2\2\u01a9\u01aa\7/\2\2\u01aa\u01ab\7/\2"+ - "\2\u01abX\3\2\2\2\u01ac\u01ad\7-\2\2\u01ad\u01ae\7-\2\2\u01aeZ\3\2\2\2"+ - "\u01af\u01b0\7-\2\2\u01b0\\\3\2\2\2\u01b1\u01b2\7/\2\2\u01b2^\3\2\2\2"+ - "\u01b3\u01b4\7#\2\2\u01b4`\3\2\2\2\u01b5\u01b6\7(\2\2\u01b6b\3\2\2\2\u01b7"+ - "\u01b8\7\u0080\2\2\u01b8d\3\2\2\2\u01b9\u01ba\7@\2\2\u01ba\u01bb\7@\2"+ - "\2\u01bbf\3\2\2\2\u01bc\u01bd\7>\2\2\u01bd\u01be\7>\2\2\u01beh\3\2\2\2"+ - "\u01bf\u01c0\7\61\2\2\u01c0j\3\2\2\2\u01c1\u01c2\7\'\2\2\u01c2l\3\2\2"+ - "\2\u01c3\u01c4\7>\2\2\u01c4n\3\2\2\2\u01c5\u01c6\7@\2\2\u01c6p\3\2\2\2"+ - "\u01c7\u01c8\7?\2\2\u01c8\u01c9\7?\2\2\u01c9r\3\2\2\2\u01ca\u01cb\7#\2"+ - "\2\u01cb\u01cc\7?\2\2\u01cct\3\2\2\2\u01cd\u01ce\7>\2\2\u01ce\u01cf\7"+ - "?\2\2\u01cfv\3\2\2\2\u01d0\u01d1\7@\2\2\u01d1\u01d2\7?\2\2\u01d2x\3\2"+ - "\2\2\u01d3\u01d4\7`\2\2\u01d4z\3\2\2\2\u01d5\u01d6\7~\2\2\u01d6|\3\2\2"+ - "\2\u01d7\u01d8\7(\2\2\u01d8\u01d9\7(\2\2\u01d9~\3\2\2\2\u01da\u01db\7"+ - "~\2\2\u01db\u01dc\7~\2\2\u01dc\u0080\3\2\2\2\u01dd\u01de\7A\2\2\u01de"+ - "\u0082\3\2\2\2\u01df\u01e0\7-\2\2\u01e0\u01e1\7?\2\2\u01e1\u0084\3\2\2"+ - "\2\u01e2\u01e3\7/\2\2\u01e3\u01e4\7?\2\2\u01e4\u0086\3\2\2\2\u01e5\u01e6"+ - "\7,\2\2\u01e6\u01e7\7?\2\2\u01e7\u0088\3\2\2\2\u01e8\u01e9\7\61\2\2\u01e9"+ - "\u01ea\7?\2\2\u01ea\u008a\3\2\2\2\u01eb\u01ec\7\'\2\2\u01ec\u01ed\7?\2"+ - "\2\u01ed\u008c\3\2\2\2\u01ee\u01ef\7>\2\2\u01ef\u01f0\7>\2\2\u01f0\u01f1"+ - "\7?\2\2\u01f1\u008e\3\2\2\2\u01f2\u01f3\7@\2\2\u01f3\u01f4\7@\2\2\u01f4"+ - "\u01f5\7?\2\2\u01f5\u0090\3\2\2\2\u01f6\u01f7\7(\2\2\u01f7\u01f8\7?\2"+ - "\2\u01f8\u0092\3\2\2\2\u01f9\u01fa\7~\2\2\u01fa\u01fb\7?\2\2\u01fb\u0094"+ - "\3\2\2\2\u01fc\u01fd\7`\2\2\u01fd\u01fe\7?\2\2\u01fe\u0096\3\2\2\2\u01ff"+ - "\u0200\7m\2\2\u0200\u0201\7k\2\2\u0201\u0202\7e\2\2\u0202\u0203\7m\2\2"+ - "\u0203\u0204\7c\2\2\u0204\u0205\7u\2\2\u0205\u0206\7o\2\2\u0206\u0098"+ - "\3\2\2\2\u0207\u0208\7t\2\2\u0208\u0209\7g\2\2\u0209\u020a\7u\2\2\u020a"+ - "\u020b\7q\2\2\u020b\u020c\7w\2\2\u020c\u020d\7t\2\2\u020d\u020e\7e\2\2"+ - "\u020e\u020f\7g\2\2\u020f\u009a\3\2\2\2\u0210\u0211\7w\2\2\u0211\u0212"+ - "\7u\2\2\u0212\u0213\7g\2\2\u0213\u0214\7u\2\2\u0214\u009c\3\2\2\2\u0215"+ - "\u0216\7e\2\2\u0216\u0217\7n\2\2\u0217\u0218\7q\2\2\u0218\u0219\7d\2\2"+ - "\u0219\u021a\7d\2\2\u021a\u021b\7g\2\2\u021b\u021c\7t\2\2\u021c\u021d"+ - "\7u\2\2\u021d\u009e\3\2\2\2\u021e\u021f\7d\2\2\u021f\u0220\7{\2\2\u0220"+ - "\u0221\7v\2\2\u0221\u0222\7g\2\2\u0222\u0223\7u\2\2\u0223\u00a0\3\2\2"+ - "\2\u0224\u0225\7e\2\2\u0225\u0226\7{\2\2\u0226\u0227\7e\2\2\u0227\u0228"+ - "\7n\2\2\u0228\u0229\7g\2\2\u0229\u022a\7u\2\2\u022a\u00a2\3\2\2\2\u022b"+ - "\u022c\7\60\2\2\u022c\u022d\7d\2\2\u022d\u022e\7{\2\2\u022e\u022f\7v\2"+ - "\2\u022f\u0230\7g\2\2\u0230\u00a4\3\2\2\2\u0231\u0232\7d\2\2\u0232\u0233"+ - "\7t\2\2\u0233\u0310\7m\2\2\u0234\u0235\7q\2\2\u0235\u0236\7t\2\2\u0236"+ - "\u0310\7c\2\2\u0237\u0238\7m\2\2\u0238\u0239\7k\2\2\u0239\u0310\7n\2\2"+ - "\u023a\u023b\7u\2\2\u023b\u023c\7n\2\2\u023c\u0310\7q\2\2\u023d\u023e"+ - "\7p\2\2\u023e\u023f\7q\2\2\u023f\u0310\7r\2\2\u0240\u0241\7c\2\2\u0241"+ - "\u0242\7u\2\2\u0242\u0310\7n\2\2\u0243\u0244\7r\2\2\u0244\u0245\7j\2\2"+ - "\u0245\u0310\7r\2\2\u0246\u0247\7c\2\2\u0247\u0248\7p\2\2\u0248\u0310"+ - "\7e\2\2\u0249\u024a\7d\2\2\u024a\u024b\7r\2\2\u024b\u0310\7n\2\2\u024c"+ - "\u024d\7e\2\2\u024d\u024e\7n\2\2\u024e\u0310\7e\2\2\u024f\u0250\7l\2\2"+ - "\u0250\u0251\7u\2\2\u0251\u0310\7t\2\2\u0252\u0253\7c\2\2\u0253\u0254"+ - "\7p\2\2\u0254\u0310\7f\2\2\u0255\u0256\7t\2\2\u0256\u0257\7n\2\2\u0257"+ - "\u0310\7c\2\2\u0258\u0259\7d\2\2\u0259\u025a\7k\2\2\u025a\u0310\7v\2\2"+ - "\u025b\u025c\7t\2\2\u025c\u025d\7q\2\2\u025d\u0310\7n\2\2\u025e\u025f"+ - "\7r\2\2\u025f\u0260\7n\2\2\u0260\u0310\7c\2\2\u0261\u0262\7r\2\2\u0262"+ - "\u0263\7n\2\2\u0263\u0310\7r\2\2\u0264\u0265\7d\2\2\u0265\u0266\7o\2\2"+ - "\u0266\u0310\7k\2\2\u0267\u0268\7u\2\2\u0268\u0269\7g\2\2\u0269\u0310"+ - "\7e\2\2\u026a\u026b\7t\2\2\u026b\u026c\7v\2\2\u026c\u0310\7k\2\2\u026d"+ - "\u026e\7g\2\2\u026e\u026f\7q\2\2\u026f\u0310\7t\2\2\u0270\u0271\7u\2\2"+ - "\u0271\u0272\7t\2\2\u0272\u0310\7g\2\2\u0273\u0274\7n\2\2\u0274\u0275"+ - "\7u\2\2\u0275\u0310\7t\2\2\u0276\u0277\7r\2\2\u0277\u0278\7j\2\2\u0278"+ - "\u0310\7c\2\2\u0279\u027a\7c\2\2\u027a\u027b\7n\2\2\u027b\u0310\7t\2\2"+ - "\u027c\u027d\7l\2\2\u027d\u027e\7o\2\2\u027e\u0310\7r\2\2\u027f\u0280"+ - "\7d\2\2\u0280\u0281\7x\2\2\u0281\u0310\7e\2\2\u0282\u0283\7e\2\2\u0283"+ - "\u0284\7n\2\2\u0284\u0310\7k\2\2\u0285\u0286\7t\2\2\u0286\u0287\7v\2\2"+ - "\u0287\u0310\7u\2\2\u0288\u0289\7c\2\2\u0289\u028a\7f\2\2\u028a\u0310"+ - "\7e\2\2\u028b\u028c\7t\2\2\u028c\u028d\7t\2\2\u028d\u0310\7c\2\2\u028e"+ - "\u028f\7d\2\2\u028f\u0290\7x\2\2\u0290\u0310\7u\2\2\u0291\u0292\7u\2\2"+ - "\u0292\u0293\7g\2\2\u0293\u0310\7k\2\2\u0294\u0295\7u\2\2\u0295\u0296"+ - "\7c\2\2\u0296\u0310\7z\2\2\u0297\u0298\7u\2\2\u0298\u0299\7v\2\2\u0299"+ - "\u0310\7{\2\2\u029a\u029b\7u\2\2\u029b\u029c\7v\2\2\u029c\u0310\7c\2\2"+ - "\u029d\u029e\7u\2\2\u029e\u029f\7v\2\2\u029f\u0310\7z\2\2\u02a0\u02a1"+ - "\7f\2\2\u02a1\u02a2\7g\2\2\u02a2\u0310\7{\2\2\u02a3\u02a4\7v\2\2\u02a4"+ - "\u02a5\7z\2\2\u02a5\u0310\7c\2\2\u02a6\u02a7\7z\2\2\u02a7\u02a8\7c\2\2"+ - "\u02a8\u0310\7c\2\2\u02a9\u02aa\7d\2\2\u02aa\u02ab\7e\2\2\u02ab\u0310"+ - "\7e\2\2\u02ac\u02ad\7c\2\2\u02ad\u02ae\7j\2\2\u02ae\u0310\7z\2\2\u02af"+ - "\u02b0\7v\2\2\u02b0\u02b1\7{\2\2\u02b1\u0310\7c\2\2\u02b2\u02b3\7v\2\2"+ - "\u02b3\u02b4\7z\2\2\u02b4\u0310\7u\2\2\u02b5\u02b6\7v\2\2\u02b6\u02b7"+ - "\7c\2\2\u02b7\u0310\7u\2\2\u02b8\u02b9\7u\2\2\u02b9\u02ba\7j\2\2\u02ba"+ - "\u0310\7{\2\2\u02bb\u02bc\7u\2\2\u02bc\u02bd\7j\2\2\u02bd\u0310\7z\2\2"+ - "\u02be\u02bf\7n\2\2\u02bf\u02c0\7f\2\2\u02c0\u0310\7{\2\2\u02c1\u02c2"+ - "\7n\2\2\u02c2\u02c3\7f\2\2\u02c3\u0310\7c\2\2\u02c4\u02c5\7n\2\2\u02c5"+ - "\u02c6\7f\2\2\u02c6\u0310\7z\2\2\u02c7\u02c8\7n\2\2\u02c8\u02c9\7c\2\2"+ - "\u02c9\u0310\7z\2\2\u02ca\u02cb\7v\2\2\u02cb\u02cc\7c\2\2\u02cc\u0310"+ - "\7{\2\2\u02cd\u02ce\7v\2\2\u02ce\u02cf\7c\2\2\u02cf\u0310\7z\2\2\u02d0"+ - "\u02d1\7d\2\2\u02d1\u02d2\7e\2\2\u02d2\u0310\7u\2\2\u02d3\u02d4\7e\2\2"+ - "\u02d4\u02d5\7n\2\2\u02d5\u0310\7x\2\2\u02d6\u02d7\7v\2\2\u02d7\u02d8"+ - "\7u\2\2\u02d8\u0310\7z\2\2\u02d9\u02da\7n\2\2\u02da\u02db\7c\2\2\u02db"+ - "\u0310\7u\2\2\u02dc\u02dd\7e\2\2\u02dd\u02de\7r\2\2\u02de\u0310\7{\2\2"+ - "\u02df\u02e0\7e\2\2\u02e0\u02e1\7o\2\2\u02e1\u0310\7r\2\2\u02e2\u02e3"+ - "\7e\2\2\u02e3\u02e4\7r\2\2\u02e4\u0310\7z\2\2\u02e5\u02e6\7f\2\2\u02e6"+ - "\u02e7\7e\2\2\u02e7\u0310\7r\2\2\u02e8\u02e9\7f\2\2\u02e9\u02ea\7g\2\2"+ - "\u02ea\u0310\7e\2\2\u02eb\u02ec\7k\2\2\u02ec\u02ed\7p\2\2\u02ed\u0310"+ - "\7e\2\2\u02ee\u02ef\7c\2\2\u02ef\u02f0\7z\2\2\u02f0\u0310\7u\2\2\u02f1"+ - "\u02f2\7d\2\2\u02f2\u02f3\7p\2\2\u02f3\u0310\7g\2\2\u02f4\u02f5\7e\2\2"+ - "\u02f5\u02f6\7n\2\2\u02f6\u0310\7f\2\2\u02f7\u02f8\7u\2\2\u02f8\u02f9"+ - "\7d\2\2\u02f9\u0310\7e\2\2\u02fa\u02fb\7k\2\2\u02fb\u02fc\7u\2\2\u02fc"+ - "\u0310\7e\2\2\u02fd\u02fe\7k\2\2\u02fe\u02ff\7p\2\2\u02ff\u0310\7z\2\2"+ - "\u0300\u0301\7d\2\2\u0301\u0302\7g\2\2\u0302\u0310\7s\2\2\u0303\u0304"+ - "\7u\2\2\u0304\u0305\7g\2\2\u0305\u0310\7f\2\2\u0306\u0307\7f\2\2\u0307"+ - "\u0308\7g\2\2\u0308\u0310\7z\2\2\u0309\u030a\7k\2\2\u030a\u030b\7p\2\2"+ - "\u030b\u0310\7{\2\2\u030c\u030d\7t\2\2\u030d\u030e\7q\2\2\u030e\u0310"+ - "\7t\2\2\u030f\u0231\3\2\2\2\u030f\u0234\3\2\2\2\u030f\u0237\3\2\2\2\u030f"+ - "\u023a\3\2\2\2\u030f\u023d\3\2\2\2\u030f\u0240\3\2\2\2\u030f\u0243\3\2"+ - "\2\2\u030f\u0246\3\2\2\2\u030f\u0249\3\2\2\2\u030f\u024c\3\2\2\2\u030f"+ - "\u024f\3\2\2\2\u030f\u0252\3\2\2\2\u030f\u0255\3\2\2\2\u030f\u0258\3\2"+ - "\2\2\u030f\u025b\3\2\2\2\u030f\u025e\3\2\2\2\u030f\u0261\3\2\2\2\u030f"+ - "\u0264\3\2\2\2\u030f\u0267\3\2\2\2\u030f\u026a\3\2\2\2\u030f\u026d\3\2"+ - "\2\2\u030f\u0270\3\2\2\2\u030f\u0273\3\2\2\2\u030f\u0276\3\2\2\2\u030f"+ - "\u0279\3\2\2\2\u030f\u027c\3\2\2\2\u030f\u027f\3\2\2\2\u030f\u0282\3\2"+ - "\2\2\u030f\u0285\3\2\2\2\u030f\u0288\3\2\2\2\u030f\u028b\3\2\2\2\u030f"+ - "\u028e\3\2\2\2\u030f\u0291\3\2\2\2\u030f\u0294\3\2\2\2\u030f\u0297\3\2"+ - "\2\2\u030f\u029a\3\2\2\2\u030f\u029d\3\2\2\2\u030f\u02a0\3\2\2\2\u030f"+ - "\u02a3\3\2\2\2\u030f\u02a6\3\2\2\2\u030f\u02a9\3\2\2\2\u030f\u02ac\3\2"+ - "\2\2\u030f\u02af\3\2\2\2\u030f\u02b2\3\2\2\2\u030f\u02b5\3\2\2\2\u030f"+ - "\u02b8\3\2\2\2\u030f\u02bb\3\2\2\2\u030f\u02be\3\2\2\2\u030f\u02c1\3\2"+ - "\2\2\u030f\u02c4\3\2\2\2\u030f\u02c7\3\2\2\2\u030f\u02ca\3\2\2\2\u030f"+ - "\u02cd\3\2\2\2\u030f\u02d0\3\2\2\2\u030f\u02d3\3\2\2\2\u030f\u02d6\3\2"+ - "\2\2\u030f\u02d9\3\2\2\2\u030f\u02dc\3\2\2\2\u030f\u02df\3\2\2\2\u030f"+ - "\u02e2\3\2\2\2\u030f\u02e5\3\2\2\2\u030f\u02e8\3\2\2\2\u030f\u02eb\3\2"+ - "\2\2\u030f\u02ee\3\2\2\2\u030f\u02f1\3\2\2\2\u030f\u02f4\3\2\2\2\u030f"+ - "\u02f7\3\2\2\2\u030f\u02fa\3\2\2\2\u030f\u02fd\3\2\2\2\u030f\u0300\3\2"+ - "\2\2\u030f\u0303\3\2\2\2\u030f\u0306\3\2\2\2\u030f\u0309\3\2\2\2\u030f"+ - "\u030c\3\2\2\2\u0310\u00a6\3\2\2\2\u0311\u0312\7}\2\2\u0312\u0313\7}\2"+ - "\2\u0313\u0317\3\2\2\2\u0314\u0316\13\2\2\2\u0315\u0314\3\2\2\2\u0316"+ - "\u0319\3\2\2\2\u0317\u0318\3\2\2\2\u0317\u0315\3\2\2\2\u0318\u031a\3\2"+ - "\2\2\u0319\u0317\3\2\2\2\u031a\u031b\7\177\2\2\u031b\u031c\7\177\2\2\u031c"+ - "\u00a8\3\2\2\2\u031d\u031e\7d\2\2\u031e\u031f\7{\2\2\u031f\u0320\7v\2"+ - "\2\u0320\u0343\7g\2\2\u0321\u0322\7y\2\2\u0322\u0323\7q\2\2\u0323\u0324"+ - "\7t\2\2\u0324\u0343\7f\2\2\u0325\u0326\7f\2\2\u0326\u0327\7y\2\2\u0327"+ - "\u0328\7q\2\2\u0328\u0329\7t\2\2\u0329\u0343\7f\2\2\u032a\u032b\7d\2\2"+ - "\u032b\u032c\7q\2\2\u032c\u032d\7q\2\2\u032d\u0343\7n\2\2\u032e\u032f"+ - "\7e\2\2\u032f\u0330\7j\2\2\u0330\u0331\7c\2\2\u0331\u0343\7t\2\2\u0332"+ - "\u0333\7u\2\2\u0333\u0334\7j\2\2\u0334\u0335\7q\2\2\u0335\u0336\7t\2\2"+ - "\u0336\u0343\7v\2\2\u0337\u0338\7k\2\2\u0338\u0339\7p\2\2\u0339\u0343"+ - "\7v\2\2\u033a\u033b\7n\2\2\u033b\u033c\7q\2\2\u033c\u033d\7p\2\2\u033d"+ - "\u0343\7i\2\2\u033e\u033f\7x\2\2\u033f\u0340\7q\2\2\u0340\u0341\7k\2\2"+ - "\u0341\u0343\7f\2\2\u0342\u031d\3\2\2\2\u0342\u0321\3\2\2\2\u0342\u0325"+ - "\3\2\2\2\u0342\u032a\3\2\2\2\u0342\u032e\3\2\2\2\u0342\u0332\3\2\2\2\u0342"+ - "\u0337\3\2\2\2\u0342\u033a\3\2\2\2\u0342\u033e\3\2\2\2\u0343\u00aa\3\2"+ - "\2\2\u0344\u034a\7$\2\2\u0345\u0346\7^\2\2\u0346\u0349\7$\2\2\u0347\u0349"+ - "\n\2\2\2\u0348\u0345\3\2\2\2\u0348\u0347\3\2\2\2\u0349\u034c\3\2\2\2\u034a"+ - "\u0348\3\2\2\2\u034a\u034b\3\2\2\2\u034b\u034d\3\2\2\2\u034c\u034a\3\2"+ - "\2\2\u034d\u034f\7$\2\2\u034e\u0350\t\3\2\2\u034f\u034e\3\2\2\2\u034f"+ - "\u0350\3\2\2\2\u0350\u0355\3\2\2\2\u0351\u0353\t\4\2\2\u0352\u0354\t\5"+ - "\2\2\u0353\u0352\3\2\2\2\u0353\u0354\3\2\2\2\u0354\u0356\3\2\2\2\u0355"+ - "\u0351\3\2\2\2\u0355\u0356\3\2\2\2\u0356\u0358\3\2\2\2\u0357\u0359\t\3"+ - "\2\2\u0358\u0357\3\2\2\2\u0358\u0359\3\2\2\2\u0359\u00ac\3\2\2\2\u035a"+ - "\u035e\7)\2\2\u035b\u035c\7^\2\2\u035c\u035f\7)\2\2\u035d\u035f\n\6\2"+ - "\2\u035e\u035b\3\2\2\2\u035e\u035d\3\2\2\2\u035f\u0360\3\2\2\2\u0360\u0361"+ - "\7)\2\2\u0361\u00ae\3\2\2\2\u0362\u0363\7v\2\2\u0363\u0364\7t\2\2\u0364"+ - "\u0365\7w\2\2\u0365\u036c\7g\2\2\u0366\u0367\7h\2\2\u0367\u0368\7c\2\2"+ - "\u0368\u0369\7n\2\2\u0369\u036a\7u\2\2\u036a\u036c\7g\2\2\u036b\u0362"+ - "\3\2\2\2\u036b\u0366\3\2\2\2\u036c\u00b0\3\2\2\2\u036d\u0370\5\u00b3Z"+ - "\2\u036e\u0370\5\u00bb^\2\u036f\u036d\3\2\2\2\u036f\u036e\3\2\2\2\u0370"+ - "\u00b2\3\2\2\2\u0371\u0375\5\u00b5[\2\u0372\u0375\5\u00b7\\\2\u0373\u0375"+ - "\5\u00b9]\2\u0374\u0371\3\2\2\2\u0374\u0372\3\2\2\2\u0374\u0373\3\2\2"+ - "\2\u0375\u00b4\3\2\2\2\u0376\u037c\7\'\2\2\u0377\u0378\7\62\2\2\u0378"+ - "\u037c\7d\2\2\u0379\u037a\7\62\2\2\u037a\u037c\7D\2\2\u037b\u0376\3\2"+ - "\2\2\u037b\u0377\3\2\2\2\u037b\u0379\3\2\2\2\u037c\u0380\3\2\2\2\u037d"+ - "\u037f\5\u00c3b\2\u037e\u037d\3\2\2\2\u037f\u0382\3\2\2\2\u0380\u037e"+ - "\3\2\2\2\u0380\u0381\3\2\2\2\u0381\u0383\3\2\2\2\u0382\u0380\3\2\2\2\u0383"+ - "\u0385\7\60\2\2\u0384\u0386\5\u00c3b\2\u0385\u0384\3\2\2\2\u0386\u0387"+ - "\3\2\2\2\u0387\u0385\3\2\2\2\u0387\u0388\3\2\2\2\u0388\u00b6\3\2\2\2\u0389"+ - "\u038b\5\u00c5c\2\u038a\u0389\3\2\2\2\u038b\u038e\3\2\2\2\u038c\u038a"+ - "\3\2\2\2\u038c\u038d\3\2\2\2\u038d\u038f\3\2\2\2\u038e\u038c\3\2\2\2\u038f"+ - "\u0391\7\60\2\2\u0390\u0392\5\u00c5c\2\u0391\u0390\3\2\2\2\u0392\u0393"+ - "\3\2\2\2\u0393\u0391\3\2\2\2\u0393\u0394\3\2\2\2\u0394\u00b8\3\2\2\2\u0395"+ - "\u039b\7&\2\2\u0396\u0397\7\62\2\2\u0397\u039b\7z\2\2\u0398\u0399\7\62"+ - "\2\2\u0399\u039b\7Z\2\2\u039a\u0395\3\2\2\2\u039a\u0396\3\2\2\2\u039a"+ - "\u0398\3\2\2\2\u039b\u039f\3\2\2\2\u039c\u039e\5\u00c7d\2\u039d\u039c"+ - "\3\2\2\2\u039e\u03a1\3\2\2\2\u039f\u039d\3\2\2\2\u039f\u03a0\3\2\2\2\u03a0"+ - "\u03a2\3\2\2\2\u03a1\u039f\3\2\2\2\u03a2\u03a4\7\60\2\2\u03a3\u03a5\5"+ - "\u00c7d\2\u03a4\u03a3\3\2\2\2\u03a5\u03a6\3\2\2\2\u03a6\u03a4\3\2\2\2"+ - "\u03a6\u03a7\3\2\2\2\u03a7\u00ba\3\2\2\2\u03a8\u03ac\5\u00bf`\2\u03a9"+ - "\u03ac\5\u00c1a\2\u03aa\u03ac\5\u00bd_\2\u03ab\u03a8\3\2\2\2\u03ab\u03a9"+ - "\3\2\2\2\u03ab\u03aa\3\2\2\2\u03ac\u03b0\3\2\2\2\u03ad\u03ae\t\7\2\2\u03ae"+ - "\u03b1\t\b\2\2\u03af\u03b1\7n\2\2\u03b0\u03ad\3\2\2\2\u03b0\u03af\3\2"+ - "\2\2\u03b0\u03b1\3\2\2\2\u03b1\u00bc\3\2\2\2\u03b2\u03b3\7\62\2\2\u03b3"+ - "\u03b5\t\t\2\2\u03b4\u03b6\5\u00c3b\2\u03b5\u03b4\3\2\2\2\u03b6\u03b7"+ - "\3\2\2\2\u03b7\u03b5\3\2\2\2\u03b7\u03b8\3\2\2\2\u03b8\u03c0\3\2\2\2\u03b9"+ - "\u03bb\7\'\2\2\u03ba\u03bc\5\u00c3b\2\u03bb\u03ba\3\2\2\2\u03bc\u03bd"+ - "\3\2\2\2\u03bd\u03bb\3\2\2\2\u03bd\u03be\3\2\2\2\u03be\u03c0\3\2\2\2\u03bf"+ - "\u03b2\3\2\2\2\u03bf\u03b9\3\2\2\2\u03c0\u00be\3\2\2\2\u03c1\u03c3\5\u00c5"+ - "c\2\u03c2\u03c1\3\2\2\2\u03c3\u03c4\3\2\2\2\u03c4\u03c2\3\2\2\2\u03c4"+ - "\u03c5\3\2\2\2\u03c5\u00c0\3\2\2\2\u03c6\u03cc\7&\2\2\u03c7\u03c8\7\62"+ - "\2\2\u03c8\u03cc\7z\2\2\u03c9\u03ca\7\62\2\2\u03ca\u03cc\7Z\2\2\u03cb"+ - "\u03c6\3\2\2\2\u03cb\u03c7\3\2\2\2\u03cb\u03c9\3\2\2\2\u03cc\u03ce\3\2"+ - "\2\2\u03cd\u03cf\5\u00c7d\2\u03ce\u03cd\3\2\2\2\u03cf\u03d0\3\2\2\2\u03d0"+ - "\u03ce\3\2\2\2\u03d0\u03d1\3\2\2\2\u03d1\u00c2\3\2\2\2\u03d2\u03d3\t\n"+ - "\2\2\u03d3\u00c4\3\2\2\2\u03d4\u03d5\t\13\2\2\u03d5\u00c6\3\2\2\2\u03d6"+ - "\u03d7\t\f\2\2\u03d7\u00c8\3\2\2\2\u03d8\u03dc\5\u00cbf\2\u03d9\u03db"+ - "\5\u00cdg\2\u03da\u03d9\3\2\2\2\u03db\u03de\3\2\2\2\u03dc\u03da\3\2\2"+ - "\2\u03dc\u03dd\3\2\2\2\u03dd\u00ca\3\2\2\2\u03de\u03dc\3\2\2\2\u03df\u03e0"+ - "\t\r\2\2\u03e0\u00cc\3\2\2\2\u03e1\u03e2\t\16\2\2\u03e2\u00ce\3\2\2\2"+ - "\u03e3\u03e7\7#\2\2\u03e4\u03e6\5\u00cdg\2\u03e5\u03e4\3\2\2\2\u03e6\u03e9"+ - "\3\2\2\2\u03e7\u03e5\3\2\2\2\u03e7\u03e8\3\2\2\2\u03e8\u03eb\3\2\2\2\u03e9"+ - "\u03e7\3\2\2\2\u03ea\u03ec\t\17\2\2\u03eb\u03ea\3\2\2\2\u03ec\u03ed\3"+ - "\2\2\2\u03ed\u03eb\3\2\2\2\u03ed\u03ee\3\2\2\2\u03ee\u00d0\3\2\2\2\u03ef"+ - "\u03f1\t\20\2\2\u03f0\u03ef\3\2\2\2\u03f1\u03f2\3\2\2\2\u03f2\u03f0\3"+ - "\2\2\2\u03f2\u03f3\3\2\2\2\u03f3\u03f4\3\2\2\2\u03f4\u03f5\bi\2\2\u03f5"+ - "\u00d2\3\2\2\2\u03f6\u03f7\7\61\2\2\u03f7\u03f8\7\61\2\2\u03f8\u03fc\3"+ - "\2\2\2\u03f9\u03fb\n\21\2\2\u03fa\u03f9\3\2\2\2\u03fb\u03fe\3\2\2\2\u03fc"+ - "\u03fa\3\2\2\2\u03fc\u03fd\3\2\2\2\u03fd\u03ff\3\2\2\2\u03fe\u03fc\3\2"+ - "\2\2\u03ff\u0400\bj\3\2\u0400\u00d4\3\2\2\2\u0401\u0402\7\61\2\2\u0402"+ - "\u0403\7,\2\2\u0403\u0407\3\2\2\2\u0404\u0406\13\2\2\2\u0405\u0404\3\2"+ - "\2\2\u0406\u0409\3\2\2\2\u0407\u0408\3\2\2\2\u0407\u0405\3\2\2\2\u0408"+ - "\u040a\3\2\2\2\u0409\u0407\3\2\2\2\u040a\u040b\7,\2\2\u040b\u040c\7\61"+ - "\2\2\u040c\u040d\3\2\2\2\u040d\u040e\bk\3\2\u040e\u00d6\3\2\2\2&\2\u030f"+ - "\u0317\u0342\u0348\u034a\u034f\u0353\u0355\u0358\u035e\u036b\u036f\u0374"+ - "\u037b\u0380\u0387\u038c\u0393\u039a\u039f\u03a6\u03ab\u03b0\u03b7\u03bd"+ - "\u03bf\u03c4\u03cb\u03d0\u03dc\u03e7\u03ed\u03f2\u03fc\u0407\4\2\3\2\2"+ - "\4\2"; + "k\4l\tl\3\2\3\2\3\2\3\2\3\2\3\2\3\2\3\3\3\3\3\4\3\4\3\4\3\4\3\4\3\4\3"+ + "\4\3\4\3\5\3\5\3\6\3\6\3\7\3\7\3\b\3\b\3\t\3\t\3\n\3\n\3\13\3\13\3\f\3"+ + "\f\3\f\3\r\3\r\3\r\3\r\3\r\3\r\3\r\3\r\3\r\3\16\3\16\3\16\3\16\3\16\3"+ + "\16\3\16\3\16\3\16\3\17\3\17\3\17\3\17\3\17\3\17\3\20\3\20\3\20\3\20\3"+ + "\20\3\20\3\20\3\21\3\21\3\21\3\21\3\21\3\21\3\22\3\22\3\22\3\22\3\22\3"+ + "\22\3\22\3\22\3\22\3\23\3\23\3\23\3\23\3\23\3\23\3\23\3\24\3\24\3\24\3"+ + "\24\3\24\3\24\3\24\3\24\3\24\3\25\3\25\3\25\3\25\3\25\3\25\3\25\3\25\3"+ + "\25\3\25\3\26\3\26\3\26\3\26\3\26\3\26\3\26\3\26\3\27\3\27\3\27\3\30\3"+ + "\30\3\30\3\30\3\30\3\31\3\31\3\31\3\31\3\31\3\31\3\32\3\32\3\32\3\33\3"+ + "\33\3\33\3\33\3\34\3\34\3\34\3\34\3\34\3\34\3\34\3\35\3\35\3\35\3\35\3"+ + "\35\3\35\3\36\3\36\3\36\3\36\3\36\3\36\3\36\3\36\3\36\3\37\3\37\3\37\3"+ + "\37\3 \3 \3!\3!\3!\3\"\3\"\3\"\3\"\3\"\3\"\3\"\3#\3#\3#\3#\3#\3#\3#\3"+ + "#\3#\3$\3$\3%\3%\3&\3&\3\'\3\'\3\'\3\'\3\'\3\'\3\'\3(\3(\3(\3(\3(\3)\3"+ + ")\3*\3*\3*\3+\3+\3+\3+\3+\3+\3+\3,\3,\3,\3,\3,\3,\3,\3-\3-\3-\3.\3.\3"+ + ".\3/\3/\3\60\3\60\3\61\3\61\3\62\3\62\3\63\3\63\3\64\3\64\3\64\3\65\3"+ + "\65\3\65\3\66\3\66\3\67\3\67\38\38\39\39\3:\3:\3:\3;\3;\3;\3<\3<\3<\3"+ + "=\3=\3=\3>\3>\3?\3?\3@\3@\3@\3A\3A\3A\3B\3B\3C\3C\3C\3D\3D\3D\3E\3E\3"+ + "E\3F\3F\3F\3G\3G\3G\3H\3H\3H\3H\3I\3I\3I\3I\3J\3J\3J\3K\3K\3K\3L\3L\3"+ + "L\3M\3M\3M\3M\3M\3M\3M\3M\3N\3N\3N\3N\3N\3N\3N\3N\3N\3O\3O\3O\3O\3O\3"+ + "P\3P\3P\3P\3P\3P\3P\3P\3P\3Q\3Q\3Q\3Q\3Q\3Q\3R\3R\3R\3R\3R\3R\3R\3S\3"+ + "S\3S\3S\3S\3S\3T\3T\3T\3T\3T\3T\3T\3T\3T\3T\3T\3T\3T\3T\3T\3T\3T\3T\3"+ + "T\3T\3T\3T\3T\3T\3T\3T\3T\3T\3T\3T\3T\3T\3T\3T\3T\3T\3T\3T\3T\3T\3T\3"+ + "T\3T\3T\3T\3T\3T\3T\3T\3T\3T\3T\3T\3T\3T\3T\3T\3T\3T\3T\3T\3T\3T\3T\3"+ + "T\3T\3T\3T\3T\3T\3T\3T\3T\3T\3T\3T\3T\3T\3T\3T\3T\3T\3T\3T\3T\3T\3T\3"+ + "T\3T\3T\3T\3T\3T\3T\3T\3T\3T\3T\3T\3T\3T\3T\3T\3T\3T\3T\3T\3T\3T\3T\3"+ + "T\3T\3T\3T\3T\3T\3T\3T\3T\3T\3T\3T\3T\3T\3T\3T\3T\3T\3T\3T\3T\3T\3T\3"+ + "T\3T\3T\3T\3T\3T\3T\3T\3T\3T\3T\3T\3T\3T\3T\3T\3T\3T\3T\3T\3T\3T\3T\3"+ + "T\3T\3T\3T\3T\3T\3T\3T\3T\3T\3T\3T\3T\3T\3T\3T\3T\3T\3T\3T\3T\3T\3T\3"+ + "T\3T\3T\3T\3T\3T\3T\3T\3T\3T\3T\3T\3T\3T\3T\3T\3T\3T\3T\3T\3T\3T\3T\3"+ + "T\3T\3T\3T\3T\3T\3T\3T\3T\3T\3T\3T\3T\3T\3T\3T\3T\3T\3T\3T\5T\u031b\n"+ + "T\3U\3U\3U\3U\7U\u0321\nU\fU\16U\u0324\13U\3U\3U\3U\3V\3V\3V\3V\3V\3V"+ + "\3V\3V\3V\3V\3V\3V\3V\3V\3V\3V\3V\3V\3V\3V\3V\3V\3V\3V\3V\3V\3V\3V\3V"+ + "\3V\3V\3V\3V\3V\3V\3V\3V\5V\u034e\nV\3W\3W\3W\3W\7W\u0354\nW\fW\16W\u0357"+ + "\13W\3W\3W\5W\u035b\nW\3W\3W\5W\u035f\nW\5W\u0361\nW\3W\5W\u0364\nW\3"+ + "X\3X\3X\3X\5X\u036a\nX\3X\3X\3Y\3Y\3Y\3Y\3Y\3Y\3Y\3Y\3Y\5Y\u0377\nY\3"+ + "Z\3Z\5Z\u037b\nZ\3[\3[\3[\5[\u0380\n[\3\\\3\\\3\\\3\\\3\\\5\\\u0387\n"+ + "\\\3\\\7\\\u038a\n\\\f\\\16\\\u038d\13\\\3\\\3\\\6\\\u0391\n\\\r\\\16"+ + "\\\u0392\3]\7]\u0396\n]\f]\16]\u0399\13]\3]\3]\6]\u039d\n]\r]\16]\u039e"+ + "\3^\3^\3^\3^\3^\5^\u03a6\n^\3^\7^\u03a9\n^\f^\16^\u03ac\13^\3^\3^\6^\u03b0"+ + "\n^\r^\16^\u03b1\3_\3_\3_\5_\u03b7\n_\3_\3_\3_\5_\u03bc\n_\3`\3`\3`\6"+ + "`\u03c1\n`\r`\16`\u03c2\3`\3`\6`\u03c7\n`\r`\16`\u03c8\5`\u03cb\n`\3a"+ + "\6a\u03ce\na\ra\16a\u03cf\3b\3b\3b\3b\3b\5b\u03d7\nb\3b\6b\u03da\nb\r"+ + "b\16b\u03db\3c\3c\3d\3d\3e\3e\3f\3f\7f\u03e6\nf\ff\16f\u03e9\13f\3g\3"+ + "g\3h\3h\3i\3i\7i\u03f1\ni\fi\16i\u03f4\13i\3i\6i\u03f7\ni\ri\16i\u03f8"+ + "\3j\6j\u03fc\nj\rj\16j\u03fd\3j\3j\3k\3k\3k\3k\7k\u0406\nk\fk\16k\u0409"+ + "\13k\3k\3k\3l\3l\3l\3l\7l\u0411\nl\fl\16l\u0414\13l\3l\3l\3l\3l\3l\4\u0322"+ + "\u0412\2m\3\3\5\4\7\5\t\6\13\7\r\b\17\t\21\n\23\13\25\f\27\r\31\16\33"+ + "\17\35\20\37\21!\22#\23%\24\'\25)\26+\27-\30/\31\61\32\63\33\65\34\67"+ + "\359\36;\37= ?!A\"C#E$G%I&K\'M(O)Q*S+U,W-Y.[/]\60_\61a\62c\63e\64g\65"+ + "i\66k\67m8o9q:s;u<w=y>{?}@\177A\u0081B\u0083C\u0085D\u0087E\u0089F\u008b"+ + "G\u008dH\u008fI\u0091J\u0093K\u0095L\u0097M\u0099N\u009bO\u009dP\u009f"+ + "Q\u00a1R\u00a3S\u00a5T\u00a7U\u00a9V\u00abW\u00adX\u00afY\u00b1Z\u00b3"+ + "[\u00b5\\\u00b7]\u00b9^\u00bb_\u00bd`\u00bfa\u00c1b\u00c3c\u00c5\2\u00c7"+ + "\2\u00c9\2\u00cbd\u00cd\2\u00cf\2\u00d1e\u00d3f\u00d5g\u00d7h\3\2\22\3"+ + "\2$$\3\2||\4\2rruu\4\2ooww\3\2))\4\2uuww\7\2dfkknnuuyy\4\2DDdd\3\2\62"+ + "\63\3\2\62;\5\2\62;CHch\5\2C\\aac|\6\2\62;C\\aac|\4\2--//\6\2\13\f\17"+ + "\17\"\"\u00a2\u00a2\4\2\f\f\17\17\2\u048c\2\3\3\2\2\2\2\5\3\2\2\2\2\7"+ + "\3\2\2\2\2\t\3\2\2\2\2\13\3\2\2\2\2\r\3\2\2\2\2\17\3\2\2\2\2\21\3\2\2"+ + "\2\2\23\3\2\2\2\2\25\3\2\2\2\2\27\3\2\2\2\2\31\3\2\2\2\2\33\3\2\2\2\2"+ + "\35\3\2\2\2\2\37\3\2\2\2\2!\3\2\2\2\2#\3\2\2\2\2%\3\2\2\2\2\'\3\2\2\2"+ + "\2)\3\2\2\2\2+\3\2\2\2\2-\3\2\2\2\2/\3\2\2\2\2\61\3\2\2\2\2\63\3\2\2\2"+ + "\2\65\3\2\2\2\2\67\3\2\2\2\29\3\2\2\2\2;\3\2\2\2\2=\3\2\2\2\2?\3\2\2\2"+ + "\2A\3\2\2\2\2C\3\2\2\2\2E\3\2\2\2\2G\3\2\2\2\2I\3\2\2\2\2K\3\2\2\2\2M"+ + "\3\2\2\2\2O\3\2\2\2\2Q\3\2\2\2\2S\3\2\2\2\2U\3\2\2\2\2W\3\2\2\2\2Y\3\2"+ + "\2\2\2[\3\2\2\2\2]\3\2\2\2\2_\3\2\2\2\2a\3\2\2\2\2c\3\2\2\2\2e\3\2\2\2"+ + "\2g\3\2\2\2\2i\3\2\2\2\2k\3\2\2\2\2m\3\2\2\2\2o\3\2\2\2\2q\3\2\2\2\2s"+ + "\3\2\2\2\2u\3\2\2\2\2w\3\2\2\2\2y\3\2\2\2\2{\3\2\2\2\2}\3\2\2\2\2\177"+ + "\3\2\2\2\2\u0081\3\2\2\2\2\u0083\3\2\2\2\2\u0085\3\2\2\2\2\u0087\3\2\2"+ + "\2\2\u0089\3\2\2\2\2\u008b\3\2\2\2\2\u008d\3\2\2\2\2\u008f\3\2\2\2\2\u0091"+ + "\3\2\2\2\2\u0093\3\2\2\2\2\u0095\3\2\2\2\2\u0097\3\2\2\2\2\u0099\3\2\2"+ + "\2\2\u009b\3\2\2\2\2\u009d\3\2\2\2\2\u009f\3\2\2\2\2\u00a1\3\2\2\2\2\u00a3"+ + "\3\2\2\2\2\u00a5\3\2\2\2\2\u00a7\3\2\2\2\2\u00a9\3\2\2\2\2\u00ab\3\2\2"+ + "\2\2\u00ad\3\2\2\2\2\u00af\3\2\2\2\2\u00b1\3\2\2\2\2\u00b3\3\2\2\2\2\u00b5"+ + "\3\2\2\2\2\u00b7\3\2\2\2\2\u00b9\3\2\2\2\2\u00bb\3\2\2\2\2\u00bd\3\2\2"+ + "\2\2\u00bf\3\2\2\2\2\u00c1\3\2\2\2\2\u00c3\3\2\2\2\2\u00cb\3\2\2\2\2\u00d1"+ + "\3\2\2\2\2\u00d3\3\2\2\2\2\u00d5\3\2\2\2\2\u00d7\3\2\2\2\3\u00d9\3\2\2"+ + "\2\5\u00e0\3\2\2\2\7\u00e2\3\2\2\2\t\u00ea\3\2\2\2\13\u00ec\3\2\2\2\r"+ + "\u00ee\3\2\2\2\17\u00f0\3\2\2\2\21\u00f2\3\2\2\2\23\u00f4\3\2\2\2\25\u00f6"+ + "\3\2\2\2\27\u00f8\3\2\2\2\31\u00fb\3\2\2\2\33\u0104\3\2\2\2\35\u010d\3"+ + "\2\2\2\37\u0113\3\2\2\2!\u011a\3\2\2\2#\u0120\3\2\2\2%\u0129\3\2\2\2\'"+ + "\u0130\3\2\2\2)\u0139\3\2\2\2+\u0143\3\2\2\2-\u014b\3\2\2\2/\u014e\3\2"+ + "\2\2\61\u0153\3\2\2\2\63\u0159\3\2\2\2\65\u015c\3\2\2\2\67\u0160\3\2\2"+ + "\29\u0167\3\2\2\2;\u016d\3\2\2\2=\u0176\3\2\2\2?\u017a\3\2\2\2A\u017c"+ + "\3\2\2\2C\u017f\3\2\2\2E\u0186\3\2\2\2G\u018f\3\2\2\2I\u0191\3\2\2\2K"+ + "\u0193\3\2\2\2M\u0195\3\2\2\2O\u019c\3\2\2\2Q\u01a1\3\2\2\2S\u01a3\3\2"+ + "\2\2U\u01a6\3\2\2\2W\u01ad\3\2\2\2Y\u01b4\3\2\2\2[\u01b7\3\2\2\2]\u01ba"+ + "\3\2\2\2_\u01bc\3\2\2\2a\u01be\3\2\2\2c\u01c0\3\2\2\2e\u01c2\3\2\2\2g"+ + "\u01c4\3\2\2\2i\u01c7\3\2\2\2k\u01ca\3\2\2\2m\u01cc\3\2\2\2o\u01ce\3\2"+ + "\2\2q\u01d0\3\2\2\2s\u01d2\3\2\2\2u\u01d5\3\2\2\2w\u01d8\3\2\2\2y\u01db"+ + "\3\2\2\2{\u01de\3\2\2\2}\u01e0\3\2\2\2\177\u01e2\3\2\2\2\u0081\u01e5\3"+ + "\2\2\2\u0083\u01e8\3\2\2\2\u0085\u01ea\3\2\2\2\u0087\u01ed\3\2\2\2\u0089"+ + "\u01f0\3\2\2\2\u008b\u01f3\3\2\2\2\u008d\u01f6\3\2\2\2\u008f\u01f9\3\2"+ + "\2\2\u0091\u01fd\3\2\2\2\u0093\u0201\3\2\2\2\u0095\u0204\3\2\2\2\u0097"+ + "\u0207\3\2\2\2\u0099\u020a\3\2\2\2\u009b\u0212\3\2\2\2\u009d\u021b\3\2"+ + "\2\2\u009f\u0220\3\2\2\2\u00a1\u0229\3\2\2\2\u00a3\u022f\3\2\2\2\u00a5"+ + "\u0236\3\2\2\2\u00a7\u031a\3\2\2\2\u00a9\u031c\3\2\2\2\u00ab\u034d\3\2"+ + "\2\2\u00ad\u034f\3\2\2\2\u00af\u0365\3\2\2\2\u00b1\u0376\3\2\2\2\u00b3"+ + "\u037a\3\2\2\2\u00b5\u037f\3\2\2\2\u00b7\u0386\3\2\2\2\u00b9\u0397\3\2"+ + "\2\2\u00bb\u03a5\3\2\2\2\u00bd\u03b6\3\2\2\2\u00bf\u03ca\3\2\2\2\u00c1"+ + "\u03cd\3\2\2\2\u00c3\u03d6\3\2\2\2\u00c5\u03dd\3\2\2\2\u00c7\u03df\3\2"+ + "\2\2\u00c9\u03e1\3\2\2\2\u00cb\u03e3\3\2\2\2\u00cd\u03ea\3\2\2\2\u00cf"+ + "\u03ec\3\2\2\2\u00d1\u03ee\3\2\2\2\u00d3\u03fb\3\2\2\2\u00d5\u0401\3\2"+ + "\2\2\u00d7\u040c\3\2\2\2\u00d9\u00da\7k\2\2\u00da\u00db\7o\2\2\u00db\u00dc"+ + "\7r\2\2\u00dc\u00dd\7q\2\2\u00dd\u00de\7t\2\2\u00de\u00df\7v\2\2\u00df"+ + "\4\3\2\2\2\u00e0\u00e1\7=\2\2\u00e1\6\3\2\2\2\u00e2\u00e3\7v\2\2\u00e3"+ + "\u00e4\7{\2\2\u00e4\u00e5\7r\2\2\u00e5\u00e6\7g\2\2\u00e6\u00e7\7f\2\2"+ + "\u00e7\u00e8\7g\2\2\u00e8\u00e9\7h\2\2\u00e9\b\3\2\2\2\u00ea\u00eb\7."+ + "\2\2\u00eb\n\3\2\2\2\u00ec\u00ed\7?\2\2\u00ed\f\3\2\2\2\u00ee\u00ef\7"+ + "*\2\2\u00ef\16\3\2\2\2\u00f0\u00f1\7+\2\2\u00f1\20\3\2\2\2\u00f2\u00f3"+ + "\7}\2\2\u00f3\22\3\2\2\2\u00f4\u00f5\7\177\2\2\u00f5\24\3\2\2\2\u00f6"+ + "\u00f7\7%\2\2\u00f7\26\3\2\2\2\u00f8\u00f9\7r\2\2\u00f9\u00fa\7e\2\2\u00fa"+ + "\30\3\2\2\2\u00fb\u00fc\7r\2\2\u00fc\u00fd\7n\2\2\u00fd\u00fe\7c\2\2\u00fe"+ + "\u00ff\7v\2\2\u00ff\u0100\7h\2\2\u0100\u0101\7q\2\2\u0101\u0102\7t\2\2"+ + "\u0102\u0103\7o\2\2\u0103\32\3\2\2\2\u0104\u0105\7g\2\2\u0105\u0106\7"+ + "p\2\2\u0106\u0107\7e\2\2\u0107\u0108\7q\2\2\u0108\u0109\7f\2\2\u0109\u010a"+ + "\7k\2\2\u010a\u010b\7p\2\2\u010b\u010c\7i\2\2\u010c\34\3\2\2\2\u010d\u010e"+ + "\7e\2\2\u010e\u010f\7q\2\2\u010f\u0110\7p\2\2\u0110\u0111\7u\2\2\u0111"+ + "\u0112\7v\2\2\u0112\36\3\2\2\2\u0113\u0114\7g\2\2\u0114\u0115\7z\2\2\u0115"+ + "\u0116\7v\2\2\u0116\u0117\7g\2\2\u0117\u0118\7t\2\2\u0118\u0119\7p\2\2"+ + "\u0119 \3\2\2\2\u011a\u011b\7c\2\2\u011b\u011c\7n\2\2\u011c\u011d\7k\2"+ + "\2\u011d\u011e\7i\2\2\u011e\u011f\7p\2\2\u011f\"\3\2\2\2\u0120\u0121\7"+ + "t\2\2\u0121\u0122\7g\2\2\u0122\u0123\7i\2\2\u0123\u0124\7k\2\2\u0124\u0125"+ + "\7u\2\2\u0125\u0126\7v\2\2\u0126\u0127\7g\2\2\u0127\u0128\7t\2\2\u0128"+ + "$\3\2\2\2\u0129\u012a\7k\2\2\u012a\u012b\7p\2\2\u012b\u012c\7n\2\2\u012c"+ + "\u012d\7k\2\2\u012d\u012e\7p\2\2\u012e\u012f\7g\2\2\u012f&\3\2\2\2\u0130"+ + "\u0131\7x\2\2\u0131\u0132\7q\2\2\u0132\u0133\7n\2\2\u0133\u0134\7c\2\2"+ + "\u0134\u0135\7v\2\2\u0135\u0136\7k\2\2\u0136\u0137\7n\2\2\u0137\u0138"+ + "\7g\2\2\u0138(\3\2\2\2\u0139\u013a\7k\2\2\u013a\u013b\7p\2\2\u013b\u013c"+ + "\7v\2\2\u013c\u013d\7g\2\2\u013d\u013e\7t\2\2\u013e\u013f\7t\2\2\u013f"+ + "\u0140\7w\2\2\u0140\u0141\7r\2\2\u0141\u0142\7v\2\2\u0142*\3\2\2\2\u0143"+ + "\u0144\7t\2\2\u0144\u0145\7g\2\2\u0145\u0146\7u\2\2\u0146\u0147\7g\2\2"+ + "\u0147\u0148\7t\2\2\u0148\u0149\7x\2\2\u0149\u014a\7g\2\2\u014a,\3\2\2"+ + "\2\u014b\u014c\7k\2\2\u014c\u014d\7h\2\2\u014d.\3\2\2\2\u014e\u014f\7"+ + "g\2\2\u014f\u0150\7n\2\2\u0150\u0151\7u\2\2\u0151\u0152\7g\2\2\u0152\60"+ + "\3\2\2\2\u0153\u0154\7y\2\2\u0154\u0155\7j\2\2\u0155\u0156\7k\2\2\u0156"+ + "\u0157\7n\2\2\u0157\u0158\7g\2\2\u0158\62\3\2\2\2\u0159\u015a\7f\2\2\u015a"+ + "\u015b\7q\2\2\u015b\64\3\2\2\2\u015c\u015d\7h\2\2\u015d\u015e\7q\2\2\u015e"+ + "\u015f\7t\2\2\u015f\66\3\2\2\2\u0160\u0161\7t\2\2\u0161\u0162\7g\2\2\u0162"+ + "\u0163\7v\2\2\u0163\u0164\7w\2\2\u0164\u0165\7t\2\2\u0165\u0166\7p\2\2"+ + "\u01668\3\2\2\2\u0167\u0168\7d\2\2\u0168\u0169\7t\2\2\u0169\u016a\7g\2"+ + "\2\u016a\u016b\7c\2\2\u016b\u016c\7m\2\2\u016c:\3\2\2\2\u016d\u016e\7"+ + "e\2\2\u016e\u016f\7q\2\2\u016f\u0170\7p\2\2\u0170\u0171\7v\2\2\u0171\u0172"+ + "\7k\2\2\u0172\u0173\7p\2\2\u0173\u0174\7w\2\2\u0174\u0175\7g\2\2\u0175"+ + "<\3\2\2\2\u0176\u0177\7c\2\2\u0177\u0178\7u\2\2\u0178\u0179\7o\2\2\u0179"+ + ">\3\2\2\2\u017a\u017b\7<\2\2\u017b@\3\2\2\2\u017c\u017d\7\60\2\2\u017d"+ + "\u017e\7\60\2\2\u017eB\3\2\2\2\u017f\u0180\7u\2\2\u0180\u0181\7k\2\2\u0181"+ + "\u0182\7i\2\2\u0182\u0183\7p\2\2\u0183\u0184\7g\2\2\u0184\u0185\7f\2\2"+ + "\u0185D\3\2\2\2\u0186\u0187\7w\2\2\u0187\u0188\7p\2\2\u0188\u0189\7u\2"+ + "\2\u0189\u018a\7k\2\2\u018a\u018b\7i\2\2\u018b\u018c\7p\2\2\u018c\u018d"+ + "\7g\2\2\u018d\u018e\7f\2\2\u018eF\3\2\2\2\u018f\u0190\7,\2\2\u0190H\3"+ + "\2\2\2\u0191\u0192\7]\2\2\u0192J\3\2\2\2\u0193\u0194\7_\2\2\u0194L\3\2"+ + "\2\2\u0195\u0196\7u\2\2\u0196\u0197\7v\2\2\u0197\u0198\7t\2\2\u0198\u0199"+ + "\7w\2\2\u0199\u019a\7e\2\2\u019a\u019b\7v\2\2\u019bN\3\2\2\2\u019c\u019d"+ + "\7g\2\2\u019d\u019e\7p\2\2\u019e\u019f\7w\2\2\u019f\u01a0\7o\2\2\u01a0"+ + "P\3\2\2\2\u01a1\u01a2\7\60\2\2\u01a2R\3\2\2\2\u01a3\u01a4\7/\2\2\u01a4"+ + "\u01a5\7@\2\2\u01a5T\3\2\2\2\u01a6\u01a7\7u\2\2\u01a7\u01a8\7k\2\2\u01a8"+ + "\u01a9\7|\2\2\u01a9\u01aa\7g\2\2\u01aa\u01ab\7q\2\2\u01ab\u01ac\7h\2\2"+ + "\u01acV\3\2\2\2\u01ad\u01ae\7v\2\2\u01ae\u01af\7{\2\2\u01af\u01b0\7r\2"+ + "\2\u01b0\u01b1\7g\2\2\u01b1\u01b2\7k\2\2\u01b2\u01b3\7f\2\2\u01b3X\3\2"+ + "\2\2\u01b4\u01b5\7/\2\2\u01b5\u01b6\7/\2\2\u01b6Z\3\2\2\2\u01b7\u01b8"+ + "\7-\2\2\u01b8\u01b9\7-\2\2\u01b9\\\3\2\2\2\u01ba\u01bb\7-\2\2\u01bb^\3"+ + "\2\2\2\u01bc\u01bd\7/\2\2\u01bd`\3\2\2\2\u01be\u01bf\7#\2\2\u01bfb\3\2"+ + "\2\2\u01c0\u01c1\7(\2\2\u01c1d\3\2\2\2\u01c2\u01c3\7\u0080\2\2\u01c3f"+ + "\3\2\2\2\u01c4\u01c5\7@\2\2\u01c5\u01c6\7@\2\2\u01c6h\3\2\2\2\u01c7\u01c8"+ + "\7>\2\2\u01c8\u01c9\7>\2\2\u01c9j\3\2\2\2\u01ca\u01cb\7\61\2\2\u01cbl"+ + "\3\2\2\2\u01cc\u01cd\7\'\2\2\u01cdn\3\2\2\2\u01ce\u01cf\7>\2\2\u01cfp"+ + "\3\2\2\2\u01d0\u01d1\7@\2\2\u01d1r\3\2\2\2\u01d2\u01d3\7?\2\2\u01d3\u01d4"+ + "\7?\2\2\u01d4t\3\2\2\2\u01d5\u01d6\7#\2\2\u01d6\u01d7\7?\2\2\u01d7v\3"+ + "\2\2\2\u01d8\u01d9\7>\2\2\u01d9\u01da\7?\2\2\u01dax\3\2\2\2\u01db\u01dc"+ + "\7@\2\2\u01dc\u01dd\7?\2\2\u01ddz\3\2\2\2\u01de\u01df\7`\2\2\u01df|\3"+ + "\2\2\2\u01e0\u01e1\7~\2\2\u01e1~\3\2\2\2\u01e2\u01e3\7(\2\2\u01e3\u01e4"+ + "\7(\2\2\u01e4\u0080\3\2\2\2\u01e5\u01e6\7~\2\2\u01e6\u01e7\7~\2\2\u01e7"+ + "\u0082\3\2\2\2\u01e8\u01e9\7A\2\2\u01e9\u0084\3\2\2\2\u01ea\u01eb\7-\2"+ + "\2\u01eb\u01ec\7?\2\2\u01ec\u0086\3\2\2\2\u01ed\u01ee\7/\2\2\u01ee\u01ef"+ + "\7?\2\2\u01ef\u0088\3\2\2\2\u01f0\u01f1\7,\2\2\u01f1\u01f2\7?\2\2\u01f2"+ + "\u008a\3\2\2\2\u01f3\u01f4\7\61\2\2\u01f4\u01f5\7?\2\2\u01f5\u008c\3\2"+ + "\2\2\u01f6\u01f7\7\'\2\2\u01f7\u01f8\7?\2\2\u01f8\u008e\3\2\2\2\u01f9"+ + "\u01fa\7>\2\2\u01fa\u01fb\7>\2\2\u01fb\u01fc\7?\2\2\u01fc\u0090\3\2\2"+ + "\2\u01fd\u01fe\7@\2\2\u01fe\u01ff\7@\2\2\u01ff\u0200\7?\2\2\u0200\u0092"+ + "\3\2\2\2\u0201\u0202\7(\2\2\u0202\u0203\7?\2\2\u0203\u0094\3\2\2\2\u0204"+ + "\u0205\7~\2\2\u0205\u0206\7?\2\2\u0206\u0096\3\2\2\2\u0207\u0208\7`\2"+ + "\2\u0208\u0209\7?\2\2\u0209\u0098\3\2\2\2\u020a\u020b\7m\2\2\u020b\u020c"+ + "\7k\2\2\u020c\u020d\7e\2\2\u020d\u020e\7m\2\2\u020e\u020f\7c\2\2\u020f"+ + "\u0210\7u\2\2\u0210\u0211\7o\2\2\u0211\u009a\3\2\2\2\u0212\u0213\7t\2"+ + "\2\u0213\u0214\7g\2\2\u0214\u0215\7u\2\2\u0215\u0216\7q\2\2\u0216\u0217"+ + "\7w\2\2\u0217\u0218\7t\2\2\u0218\u0219\7e\2\2\u0219\u021a\7g\2\2\u021a"+ + "\u009c\3\2\2\2\u021b\u021c\7w\2\2\u021c\u021d\7u\2\2\u021d\u021e\7g\2"+ + "\2\u021e\u021f\7u\2\2\u021f\u009e\3\2\2\2\u0220\u0221\7e\2\2\u0221\u0222"+ + "\7n\2\2\u0222\u0223\7q\2\2\u0223\u0224\7d\2\2\u0224\u0225\7d\2\2\u0225"+ + "\u0226\7g\2\2\u0226\u0227\7t\2\2\u0227\u0228\7u\2\2\u0228\u00a0\3\2\2"+ + "\2\u0229\u022a\7d\2\2\u022a\u022b\7{\2\2\u022b\u022c\7v\2\2\u022c\u022d"+ + "\7g\2\2\u022d\u022e\7u\2\2\u022e\u00a2\3\2\2\2\u022f\u0230\7e\2\2\u0230"+ + "\u0231\7{\2\2\u0231\u0232\7e\2\2\u0232\u0233\7n\2\2\u0233\u0234\7g\2\2"+ + "\u0234\u0235\7u\2\2\u0235\u00a4\3\2\2\2\u0236\u0237\7\60\2\2\u0237\u0238"+ + "\7d\2\2\u0238\u0239\7{\2\2\u0239\u023a\7v\2\2\u023a\u023b\7g\2\2\u023b"+ + "\u00a6\3\2\2\2\u023c\u023d\7d\2\2\u023d\u023e\7t\2\2\u023e\u031b\7m\2"+ + "\2\u023f\u0240\7q\2\2\u0240\u0241\7t\2\2\u0241\u031b\7c\2\2\u0242\u0243"+ + "\7m\2\2\u0243\u0244\7k\2\2\u0244\u031b\7n\2\2\u0245\u0246\7u\2\2\u0246"+ + "\u0247\7n\2\2\u0247\u031b\7q\2\2\u0248\u0249\7p\2\2\u0249\u024a\7q\2\2"+ + "\u024a\u031b\7r\2\2\u024b\u024c\7c\2\2\u024c\u024d\7u\2\2\u024d\u031b"+ + "\7n\2\2\u024e\u024f\7r\2\2\u024f\u0250\7j\2\2\u0250\u031b\7r\2\2\u0251"+ + "\u0252\7c\2\2\u0252\u0253\7p\2\2\u0253\u031b\7e\2\2\u0254\u0255\7d\2\2"+ + "\u0255\u0256\7r\2\2\u0256\u031b\7n\2\2\u0257\u0258\7e\2\2\u0258\u0259"+ + "\7n\2\2\u0259\u031b\7e\2\2\u025a\u025b\7l\2\2\u025b\u025c\7u\2\2\u025c"+ + "\u031b\7t\2\2\u025d\u025e\7c\2\2\u025e\u025f\7p\2\2\u025f\u031b\7f\2\2"+ + "\u0260\u0261\7t\2\2\u0261\u0262\7n\2\2\u0262\u031b\7c\2\2\u0263\u0264"+ + "\7d\2\2\u0264\u0265\7k\2\2\u0265\u031b\7v\2\2\u0266\u0267\7t\2\2\u0267"+ + "\u0268\7q\2\2\u0268\u031b\7n\2\2\u0269\u026a\7r\2\2\u026a\u026b\7n\2\2"+ + "\u026b\u031b\7c\2\2\u026c\u026d\7r\2\2\u026d\u026e\7n\2\2\u026e\u031b"+ + "\7r\2\2\u026f\u0270\7d\2\2\u0270\u0271\7o\2\2\u0271\u031b\7k\2\2\u0272"+ + "\u0273\7u\2\2\u0273\u0274\7g\2\2\u0274\u031b\7e\2\2\u0275\u0276\7t\2\2"+ + "\u0276\u0277\7v\2\2\u0277\u031b\7k\2\2\u0278\u0279\7g\2\2\u0279\u027a"+ + "\7q\2\2\u027a\u031b\7t\2\2\u027b\u027c\7u\2\2\u027c\u027d\7t\2\2\u027d"+ + "\u031b\7g\2\2\u027e\u027f\7n\2\2\u027f\u0280\7u\2\2\u0280\u031b\7t\2\2"+ + "\u0281\u0282\7r\2\2\u0282\u0283\7j\2\2\u0283\u031b\7c\2\2\u0284\u0285"+ + "\7c\2\2\u0285\u0286\7n\2\2\u0286\u031b\7t\2\2\u0287\u0288\7l\2\2\u0288"+ + "\u0289\7o\2\2\u0289\u031b\7r\2\2\u028a\u028b\7d\2\2\u028b\u028c\7x\2\2"+ + "\u028c\u031b\7e\2\2\u028d\u028e\7e\2\2\u028e\u028f\7n\2\2\u028f\u031b"+ + "\7k\2\2\u0290\u0291\7t\2\2\u0291\u0292\7v\2\2\u0292\u031b\7u\2\2\u0293"+ + "\u0294\7c\2\2\u0294\u0295\7f\2\2\u0295\u031b\7e\2\2\u0296\u0297\7t\2\2"+ + "\u0297\u0298\7t\2\2\u0298\u031b\7c\2\2\u0299\u029a\7d\2\2\u029a\u029b"+ + "\7x\2\2\u029b\u031b\7u\2\2\u029c\u029d\7u\2\2\u029d\u029e\7g\2\2\u029e"+ + "\u031b\7k\2\2\u029f\u02a0\7u\2\2\u02a0\u02a1\7c\2\2\u02a1\u031b\7z\2\2"+ + "\u02a2\u02a3\7u\2\2\u02a3\u02a4\7v\2\2\u02a4\u031b\7{\2\2\u02a5\u02a6"+ + "\7u\2\2\u02a6\u02a7\7v\2\2\u02a7\u031b\7c\2\2\u02a8\u02a9\7u\2\2\u02a9"+ + "\u02aa\7v\2\2\u02aa\u031b\7z\2\2\u02ab\u02ac\7f\2\2\u02ac\u02ad\7g\2\2"+ + "\u02ad\u031b\7{\2\2\u02ae\u02af\7v\2\2\u02af\u02b0\7z\2\2\u02b0\u031b"+ + "\7c\2\2\u02b1\u02b2\7z\2\2\u02b2\u02b3\7c\2\2\u02b3\u031b\7c\2\2\u02b4"+ + "\u02b5\7d\2\2\u02b5\u02b6\7e\2\2\u02b6\u031b\7e\2\2\u02b7\u02b8\7c\2\2"+ + "\u02b8\u02b9\7j\2\2\u02b9\u031b\7z\2\2\u02ba\u02bb\7v\2\2\u02bb\u02bc"+ + "\7{\2\2\u02bc\u031b\7c\2\2\u02bd\u02be\7v\2\2\u02be\u02bf\7z\2\2\u02bf"+ + "\u031b\7u\2\2\u02c0\u02c1\7v\2\2\u02c1\u02c2\7c\2\2\u02c2\u031b\7u\2\2"+ + "\u02c3\u02c4\7u\2\2\u02c4\u02c5\7j\2\2\u02c5\u031b\7{\2\2\u02c6\u02c7"+ + "\7u\2\2\u02c7\u02c8\7j\2\2\u02c8\u031b\7z\2\2\u02c9\u02ca\7n\2\2\u02ca"+ + "\u02cb\7f\2\2\u02cb\u031b\7{\2\2\u02cc\u02cd\7n\2\2\u02cd\u02ce\7f\2\2"+ + "\u02ce\u031b\7c\2\2\u02cf\u02d0\7n\2\2\u02d0\u02d1\7f\2\2\u02d1\u031b"+ + "\7z\2\2\u02d2\u02d3\7n\2\2\u02d3\u02d4\7c\2\2\u02d4\u031b\7z\2\2\u02d5"+ + "\u02d6\7v\2\2\u02d6\u02d7\7c\2\2\u02d7\u031b\7{\2\2\u02d8\u02d9\7v\2\2"+ + "\u02d9\u02da\7c\2\2\u02da\u031b\7z\2\2\u02db\u02dc\7d\2\2\u02dc\u02dd"+ + "\7e\2\2\u02dd\u031b\7u\2\2\u02de\u02df\7e\2\2\u02df\u02e0\7n\2\2\u02e0"+ + "\u031b\7x\2\2\u02e1\u02e2\7v\2\2\u02e2\u02e3\7u\2\2\u02e3\u031b\7z\2\2"+ + "\u02e4\u02e5\7n\2\2\u02e5\u02e6\7c\2\2\u02e6\u031b\7u\2\2\u02e7\u02e8"+ + "\7e\2\2\u02e8\u02e9\7r\2\2\u02e9\u031b\7{\2\2\u02ea\u02eb\7e\2\2\u02eb"+ + "\u02ec\7o\2\2\u02ec\u031b\7r\2\2\u02ed\u02ee\7e\2\2\u02ee\u02ef\7r\2\2"+ + "\u02ef\u031b\7z\2\2\u02f0\u02f1\7f\2\2\u02f1\u02f2\7e\2\2\u02f2\u031b"+ + "\7r\2\2\u02f3\u02f4\7f\2\2\u02f4\u02f5\7g\2\2\u02f5\u031b\7e\2\2\u02f6"+ + "\u02f7\7k\2\2\u02f7\u02f8\7p\2\2\u02f8\u031b\7e\2\2\u02f9\u02fa\7c\2\2"+ + "\u02fa\u02fb\7z\2\2\u02fb\u031b\7u\2\2\u02fc\u02fd\7d\2\2\u02fd\u02fe"+ + "\7p\2\2\u02fe\u031b\7g\2\2\u02ff\u0300\7e\2\2\u0300\u0301\7n\2\2\u0301"+ + "\u031b\7f\2\2\u0302\u0303\7u\2\2\u0303\u0304\7d\2\2\u0304\u031b\7e\2\2"+ + "\u0305\u0306\7k\2\2\u0306\u0307\7u\2\2\u0307\u031b\7e\2\2\u0308\u0309"+ + "\7k\2\2\u0309\u030a\7p\2\2\u030a\u031b\7z\2\2\u030b\u030c\7d\2\2\u030c"+ + "\u030d\7g\2\2\u030d\u031b\7s\2\2\u030e\u030f\7u\2\2\u030f\u0310\7g\2\2"+ + "\u0310\u031b\7f\2\2\u0311\u0312\7f\2\2\u0312\u0313\7g\2\2\u0313\u031b"+ + "\7z\2\2\u0314\u0315\7k\2\2\u0315\u0316\7p\2\2\u0316\u031b\7{\2\2\u0317"+ + "\u0318\7t\2\2\u0318\u0319\7q\2\2\u0319\u031b\7t\2\2\u031a\u023c\3\2\2"+ + "\2\u031a\u023f\3\2\2\2\u031a\u0242\3\2\2\2\u031a\u0245\3\2\2\2\u031a\u0248"+ + "\3\2\2\2\u031a\u024b\3\2\2\2\u031a\u024e\3\2\2\2\u031a\u0251\3\2\2\2\u031a"+ + "\u0254\3\2\2\2\u031a\u0257\3\2\2\2\u031a\u025a\3\2\2\2\u031a\u025d\3\2"+ + "\2\2\u031a\u0260\3\2\2\2\u031a\u0263\3\2\2\2\u031a\u0266\3\2\2\2\u031a"+ + "\u0269\3\2\2\2\u031a\u026c\3\2\2\2\u031a\u026f\3\2\2\2\u031a\u0272\3\2"+ + "\2\2\u031a\u0275\3\2\2\2\u031a\u0278\3\2\2\2\u031a\u027b\3\2\2\2\u031a"+ + "\u027e\3\2\2\2\u031a\u0281\3\2\2\2\u031a\u0284\3\2\2\2\u031a\u0287\3\2"+ + "\2\2\u031a\u028a\3\2\2\2\u031a\u028d\3\2\2\2\u031a\u0290\3\2\2\2\u031a"+ + "\u0293\3\2\2\2\u031a\u0296\3\2\2\2\u031a\u0299\3\2\2\2\u031a\u029c\3\2"+ + "\2\2\u031a\u029f\3\2\2\2\u031a\u02a2\3\2\2\2\u031a\u02a5\3\2\2\2\u031a"+ + "\u02a8\3\2\2\2\u031a\u02ab\3\2\2\2\u031a\u02ae\3\2\2\2\u031a\u02b1\3\2"+ + "\2\2\u031a\u02b4\3\2\2\2\u031a\u02b7\3\2\2\2\u031a\u02ba\3\2\2\2\u031a"+ + "\u02bd\3\2\2\2\u031a\u02c0\3\2\2\2\u031a\u02c3\3\2\2\2\u031a\u02c6\3\2"+ + "\2\2\u031a\u02c9\3\2\2\2\u031a\u02cc\3\2\2\2\u031a\u02cf\3\2\2\2\u031a"+ + "\u02d2\3\2\2\2\u031a\u02d5\3\2\2\2\u031a\u02d8\3\2\2\2\u031a\u02db\3\2"+ + "\2\2\u031a\u02de\3\2\2\2\u031a\u02e1\3\2\2\2\u031a\u02e4\3\2\2\2\u031a"+ + "\u02e7\3\2\2\2\u031a\u02ea\3\2\2\2\u031a\u02ed\3\2\2\2\u031a\u02f0\3\2"+ + "\2\2\u031a\u02f3\3\2\2\2\u031a\u02f6\3\2\2\2\u031a\u02f9\3\2\2\2\u031a"+ + "\u02fc\3\2\2\2\u031a\u02ff\3\2\2\2\u031a\u0302\3\2\2\2\u031a\u0305\3\2"+ + "\2\2\u031a\u0308\3\2\2\2\u031a\u030b\3\2\2\2\u031a\u030e\3\2\2\2\u031a"+ + "\u0311\3\2\2\2\u031a\u0314\3\2\2\2\u031a\u0317\3\2\2\2\u031b\u00a8\3\2"+ + "\2\2\u031c\u031d\7}\2\2\u031d\u031e\7}\2\2\u031e\u0322\3\2\2\2\u031f\u0321"+ + "\13\2\2\2\u0320\u031f\3\2\2\2\u0321\u0324\3\2\2\2\u0322\u0323\3\2\2\2"+ + "\u0322\u0320\3\2\2\2\u0323\u0325\3\2\2\2\u0324\u0322\3\2\2\2\u0325\u0326"+ + "\7\177\2\2\u0326\u0327\7\177\2\2\u0327\u00aa\3\2\2\2\u0328\u0329\7d\2"+ + "\2\u0329\u032a\7{\2\2\u032a\u032b\7v\2\2\u032b\u034e\7g\2\2\u032c\u032d"+ + "\7y\2\2\u032d\u032e\7q\2\2\u032e\u032f\7t\2\2\u032f\u034e\7f\2\2\u0330"+ + "\u0331\7f\2\2\u0331\u0332\7y\2\2\u0332\u0333\7q\2\2\u0333\u0334\7t\2\2"+ + "\u0334\u034e\7f\2\2\u0335\u0336\7d\2\2\u0336\u0337\7q\2\2\u0337\u0338"+ + "\7q\2\2\u0338\u034e\7n\2\2\u0339\u033a\7e\2\2\u033a\u033b\7j\2\2\u033b"+ + "\u033c\7c\2\2\u033c\u034e\7t\2\2\u033d\u033e\7u\2\2\u033e\u033f\7j\2\2"+ + "\u033f\u0340\7q\2\2\u0340\u0341\7t\2\2\u0341\u034e\7v\2\2\u0342\u0343"+ + "\7k\2\2\u0343\u0344\7p\2\2\u0344\u034e\7v\2\2\u0345\u0346\7n\2\2\u0346"+ + "\u0347\7q\2\2\u0347\u0348\7p\2\2\u0348\u034e\7i\2\2\u0349\u034a\7x\2\2"+ + "\u034a\u034b\7q\2\2\u034b\u034c\7k\2\2\u034c\u034e\7f\2\2\u034d\u0328"+ + "\3\2\2\2\u034d\u032c\3\2\2\2\u034d\u0330\3\2\2\2\u034d\u0335\3\2\2\2\u034d"+ + "\u0339\3\2\2\2\u034d\u033d\3\2\2\2\u034d\u0342\3\2\2\2\u034d\u0345\3\2"+ + "\2\2\u034d\u0349\3\2\2\2\u034e\u00ac\3\2\2\2\u034f\u0355\7$\2\2\u0350"+ + "\u0351\7^\2\2\u0351\u0354\7$\2\2\u0352\u0354\n\2\2\2\u0353\u0350\3\2\2"+ + "\2\u0353\u0352\3\2\2\2\u0354\u0357\3\2\2\2\u0355\u0353\3\2\2\2\u0355\u0356"+ + "\3\2\2\2\u0356\u0358\3\2\2\2\u0357\u0355\3\2\2\2\u0358\u035a\7$\2\2\u0359"+ + "\u035b\t\3\2\2\u035a\u0359\3\2\2\2\u035a\u035b\3\2\2\2\u035b\u0360\3\2"+ + "\2\2\u035c\u035e\t\4\2\2\u035d\u035f\t\5\2\2\u035e\u035d\3\2\2\2\u035e"+ + "\u035f\3\2\2\2\u035f\u0361\3\2\2\2\u0360\u035c\3\2\2\2\u0360\u0361\3\2"+ + "\2\2\u0361\u0363\3\2\2\2\u0362\u0364\t\3\2\2\u0363\u0362\3\2\2\2\u0363"+ + "\u0364\3\2\2\2\u0364\u00ae\3\2\2\2\u0365\u0369\7)\2\2\u0366\u0367\7^\2"+ + "\2\u0367\u036a\7)\2\2\u0368\u036a\n\6\2\2\u0369\u0366\3\2\2\2\u0369\u0368"+ + "\3\2\2\2\u036a\u036b\3\2\2\2\u036b\u036c\7)\2\2\u036c\u00b0\3\2\2\2\u036d"+ + "\u036e\7v\2\2\u036e\u036f\7t\2\2\u036f\u0370\7w\2\2\u0370\u0377\7g\2\2"+ + "\u0371\u0372\7h\2\2\u0372\u0373\7c\2\2\u0373\u0374\7n\2\2\u0374\u0375"+ + "\7u\2\2\u0375\u0377\7g\2\2\u0376\u036d\3\2\2\2\u0376\u0371\3\2\2\2\u0377"+ + "\u00b2\3\2\2\2\u0378\u037b\5\u00b5[\2\u0379\u037b\5\u00bd_\2\u037a\u0378"+ + "\3\2\2\2\u037a\u0379\3\2\2\2\u037b\u00b4\3\2\2\2\u037c\u0380\5\u00b7\\"+ + "\2\u037d\u0380\5\u00b9]\2\u037e\u0380\5\u00bb^\2\u037f\u037c\3\2\2\2\u037f"+ + "\u037d\3\2\2\2\u037f\u037e\3\2\2\2\u0380\u00b6\3\2\2\2\u0381\u0387\7\'"+ + "\2\2\u0382\u0383\7\62\2\2\u0383\u0387\7d\2\2\u0384\u0385\7\62\2\2\u0385"+ + "\u0387\7D\2\2\u0386\u0381\3\2\2\2\u0386\u0382\3\2\2\2\u0386\u0384\3\2"+ + "\2\2\u0387\u038b\3\2\2\2\u0388\u038a\5\u00c5c\2\u0389\u0388\3\2\2\2\u038a"+ + "\u038d\3\2\2\2\u038b\u0389\3\2\2\2\u038b\u038c\3\2\2\2\u038c\u038e\3\2"+ + "\2\2\u038d\u038b\3\2\2\2\u038e\u0390\7\60\2\2\u038f\u0391\5\u00c5c\2\u0390"+ + "\u038f\3\2\2\2\u0391\u0392\3\2\2\2\u0392\u0390\3\2\2\2\u0392\u0393\3\2"+ + "\2\2\u0393\u00b8\3\2\2\2\u0394\u0396\5\u00c7d\2\u0395\u0394\3\2\2\2\u0396"+ + "\u0399\3\2\2\2\u0397\u0395\3\2\2\2\u0397\u0398\3\2\2\2\u0398\u039a\3\2"+ + "\2\2\u0399\u0397\3\2\2\2\u039a\u039c\7\60\2\2\u039b\u039d\5\u00c7d\2\u039c"+ + "\u039b\3\2\2\2\u039d\u039e\3\2\2\2\u039e\u039c\3\2\2\2\u039e\u039f\3\2"+ + "\2\2\u039f\u00ba\3\2\2\2\u03a0\u03a6\7&\2\2\u03a1\u03a2\7\62\2\2\u03a2"+ + "\u03a6\7z\2\2\u03a3\u03a4\7\62\2\2\u03a4\u03a6\7Z\2\2\u03a5\u03a0\3\2"+ + "\2\2\u03a5\u03a1\3\2\2\2\u03a5\u03a3\3\2\2\2\u03a6\u03aa\3\2\2\2\u03a7"+ + "\u03a9\5\u00c9e\2\u03a8\u03a7\3\2\2\2\u03a9\u03ac\3\2\2\2\u03aa\u03a8"+ + "\3\2\2\2\u03aa\u03ab\3\2\2\2\u03ab\u03ad\3\2\2\2\u03ac\u03aa\3\2\2\2\u03ad"+ + "\u03af\7\60\2\2\u03ae\u03b0\5\u00c9e\2\u03af\u03ae\3\2\2\2\u03b0\u03b1"+ + "\3\2\2\2\u03b1\u03af\3\2\2\2\u03b1\u03b2\3\2\2\2\u03b2\u00bc\3\2\2\2\u03b3"+ + "\u03b7\5\u00c1a\2\u03b4\u03b7\5\u00c3b\2\u03b5\u03b7\5\u00bf`\2\u03b6"+ + "\u03b3\3\2\2\2\u03b6\u03b4\3\2\2\2\u03b6\u03b5\3\2\2\2\u03b7\u03bb\3\2"+ + "\2\2\u03b8\u03b9\t\7\2\2\u03b9\u03bc\t\b\2\2\u03ba\u03bc\7n\2\2\u03bb"+ + "\u03b8\3\2\2\2\u03bb\u03ba\3\2\2\2\u03bb\u03bc\3\2\2\2\u03bc\u00be\3\2"+ + "\2\2\u03bd\u03be\7\62\2\2\u03be\u03c0\t\t\2\2\u03bf\u03c1\5\u00c5c\2\u03c0"+ + "\u03bf\3\2\2\2\u03c1\u03c2\3\2\2\2\u03c2\u03c0\3\2\2\2\u03c2\u03c3\3\2"+ + "\2\2\u03c3\u03cb\3\2\2\2\u03c4\u03c6\7\'\2\2\u03c5\u03c7\5\u00c5c\2\u03c6"+ + "\u03c5\3\2\2\2\u03c7\u03c8\3\2\2\2\u03c8\u03c6\3\2\2\2\u03c8\u03c9\3\2"+ + "\2\2\u03c9\u03cb\3\2\2\2\u03ca\u03bd\3\2\2\2\u03ca\u03c4\3\2\2\2\u03cb"+ + "\u00c0\3\2\2\2\u03cc\u03ce\5\u00c7d\2\u03cd\u03cc\3\2\2\2\u03ce\u03cf"+ + "\3\2\2\2\u03cf\u03cd\3\2\2\2\u03cf\u03d0\3\2\2\2\u03d0\u00c2\3\2\2\2\u03d1"+ + "\u03d7\7&\2\2\u03d2\u03d3\7\62\2\2\u03d3\u03d7\7z\2\2\u03d4\u03d5\7\62"+ + "\2\2\u03d5\u03d7\7Z\2\2\u03d6\u03d1\3\2\2\2\u03d6\u03d2\3\2\2\2\u03d6"+ + "\u03d4\3\2\2\2\u03d7\u03d9\3\2\2\2\u03d8\u03da\5\u00c9e\2\u03d9\u03d8"+ + "\3\2\2\2\u03da\u03db\3\2\2\2\u03db\u03d9\3\2\2\2\u03db\u03dc\3\2\2\2\u03dc"+ + "\u00c4\3\2\2\2\u03dd\u03de\t\n\2\2\u03de\u00c6\3\2\2\2\u03df\u03e0\t\13"+ + "\2\2\u03e0\u00c8\3\2\2\2\u03e1\u03e2\t\f\2\2\u03e2\u00ca\3\2\2\2\u03e3"+ + "\u03e7\5\u00cdg\2\u03e4\u03e6\5\u00cfh\2\u03e5\u03e4\3\2\2\2\u03e6\u03e9"+ + "\3\2\2\2\u03e7\u03e5\3\2\2\2\u03e7\u03e8\3\2\2\2\u03e8\u00cc\3\2\2\2\u03e9"+ + "\u03e7\3\2\2\2\u03ea\u03eb\t\r\2\2\u03eb\u00ce\3\2\2\2\u03ec\u03ed\t\16"+ + "\2\2\u03ed\u00d0\3\2\2\2\u03ee\u03f2\7#\2\2\u03ef\u03f1\5\u00cfh\2\u03f0"+ + "\u03ef\3\2\2\2\u03f1\u03f4\3\2\2\2\u03f2\u03f0\3\2\2\2\u03f2\u03f3\3\2"+ + "\2\2\u03f3\u03f6\3\2\2\2\u03f4\u03f2\3\2\2\2\u03f5\u03f7\t\17\2\2\u03f6"+ + "\u03f5\3\2\2\2\u03f7\u03f8\3\2\2\2\u03f8\u03f6\3\2\2\2\u03f8\u03f9\3\2"+ + "\2\2\u03f9\u00d2\3\2\2\2\u03fa\u03fc\t\20\2\2\u03fb\u03fa\3\2\2\2\u03fc"+ + "\u03fd\3\2\2\2\u03fd\u03fb\3\2\2\2\u03fd\u03fe\3\2\2\2\u03fe\u03ff\3\2"+ + "\2\2\u03ff\u0400\bj\2\2\u0400\u00d4\3\2\2\2\u0401\u0402\7\61\2\2\u0402"+ + "\u0403\7\61\2\2\u0403\u0407\3\2\2\2\u0404\u0406\n\21\2\2\u0405\u0404\3"+ + "\2\2\2\u0406\u0409\3\2\2\2\u0407\u0405\3\2\2\2\u0407\u0408\3\2\2\2\u0408"+ + "\u040a\3\2\2\2\u0409\u0407\3\2\2\2\u040a\u040b\bk\3\2\u040b\u00d6\3\2"+ + "\2\2\u040c\u040d\7\61\2\2\u040d\u040e\7,\2\2\u040e\u0412\3\2\2\2\u040f"+ + "\u0411\13\2\2\2\u0410\u040f\3\2\2\2\u0411\u0414\3\2\2\2\u0412\u0413\3"+ + "\2\2\2\u0412\u0410\3\2\2\2\u0413\u0415\3\2\2\2\u0414\u0412\3\2\2\2\u0415"+ + "\u0416\7,\2\2\u0416\u0417\7\61\2\2\u0417\u0418\3\2\2\2\u0418\u0419\bl"+ + "\3\2\u0419\u00d8\3\2\2\2&\2\u031a\u0322\u034d\u0353\u0355\u035a\u035e"+ + "\u0360\u0363\u0369\u0376\u037a\u037f\u0386\u038b\u0392\u0397\u039e\u03a5"+ + "\u03aa\u03b1\u03b6\u03bb\u03c2\u03c8\u03ca\u03cf\u03d6\u03db\u03e7\u03f2"+ + "\u03f8\u03fd\u0407\u0412\4\2\3\2\2\4\2"; public static final ATN _ATN = new ATNDeserializer().deserialize(_serializedATN.toCharArray()); static { diff --git a/src/main/java/dk/camelot64/kickc/parser/KickCLexer.tokens b/src/main/java/dk/camelot64/kickc/parser/KickCLexer.tokens index e35ffe7a3..e74cc1bef 100644 --- a/src/main/java/dk/camelot64/kickc/parser/KickCLexer.tokens +++ b/src/main/java/dk/camelot64/kickc/parser/KickCLexer.tokens @@ -79,26 +79,27 @@ T__77=78 T__78=79 T__79=80 T__80=81 -MNEMONIC=82 -KICKASM=83 -SIMPLETYPE=84 -STRING=85 -CHAR=86 -BOOLEAN=87 -NUMBER=88 -NUMFLOAT=89 -BINFLOAT=90 -DECFLOAT=91 -HEXFLOAT=92 -NUMINT=93 -BININTEGER=94 -DECINTEGER=95 -HEXINTEGER=96 -NAME=97 -ASMREL=98 -WS=99 -COMMENT_LINE=100 -COMMENT_BLOCK=101 +T__81=82 +MNEMONIC=83 +KICKASM=84 +SIMPLETYPE=85 +STRING=86 +CHAR=87 +BOOLEAN=88 +NUMBER=89 +NUMFLOAT=90 +BINFLOAT=91 +DECFLOAT=92 +HEXFLOAT=93 +NUMINT=94 +BININTEGER=95 +DECINTEGER=96 +HEXINTEGER=97 +NAME=98 +ASMREL=99 +WS=100 +COMMENT_LINE=101 +COMMENT_BLOCK=102 'import'=1 ';'=2 'typedef'=3 @@ -110,73 +111,74 @@ COMMENT_BLOCK=101 '}'=9 '#'=10 'pc'=11 -'encoding'=12 -'const'=13 -'extern'=14 -'align'=15 -'register'=16 -'inline'=17 -'volatile'=18 -'interrupt'=19 -'reserve'=20 -'if'=21 -'else'=22 -'while'=23 -'do'=24 -'for'=25 -'return'=26 -'break'=27 -'continue'=28 -'asm'=29 -':'=30 -'..'=31 -'signed'=32 -'unsigned'=33 -'*'=34 -'['=35 -']'=36 -'struct'=37 -'enum'=38 -'.'=39 -'->'=40 -'sizeof'=41 -'typeid'=42 -'--'=43 -'++'=44 -'+'=45 -'-'=46 -'!'=47 -'&'=48 -'~'=49 -'>>'=50 -'<<'=51 -'/'=52 -'%'=53 -'<'=54 -'>'=55 -'=='=56 -'!='=57 -'<='=58 -'>='=59 -'^'=60 -'|'=61 -'&&'=62 -'||'=63 -'?'=64 -'+='=65 -'-='=66 -'*='=67 -'/='=68 -'%='=69 -'<<='=70 -'>>='=71 -'&='=72 -'|='=73 -'^='=74 -'kickasm'=75 -'resource'=76 -'uses'=77 -'clobbers'=78 -'bytes'=79 -'cycles'=80 -'.byte'=81 +'platform'=12 +'encoding'=13 +'const'=14 +'extern'=15 +'align'=16 +'register'=17 +'inline'=18 +'volatile'=19 +'interrupt'=20 +'reserve'=21 +'if'=22 +'else'=23 +'while'=24 +'do'=25 +'for'=26 +'return'=27 +'break'=28 +'continue'=29 +'asm'=30 +':'=31 +'..'=32 +'signed'=33 +'unsigned'=34 +'*'=35 +'['=36 +']'=37 +'struct'=38 +'enum'=39 +'.'=40 +'->'=41 +'sizeof'=42 +'typeid'=43 +'--'=44 +'++'=45 +'+'=46 +'-'=47 +'!'=48 +'&'=49 +'~'=50 +'>>'=51 +'<<'=52 +'/'=53 +'%'=54 +'<'=55 +'>'=56 +'=='=57 +'!='=58 +'<='=59 +'>='=60 +'^'=61 +'|'=62 +'&&'=63 +'||'=64 +'?'=65 +'+='=66 +'-='=67 +'*='=68 +'/='=69 +'%='=70 +'<<='=71 +'>>='=72 +'&='=73 +'|='=74 +'^='=75 +'kickasm'=76 +'resource'=77 +'uses'=78 +'clobbers'=79 +'bytes'=80 +'cycles'=81 +'.byte'=82 diff --git a/src/main/java/dk/camelot64/kickc/parser/KickCListener.java b/src/main/java/dk/camelot64/kickc/parser/KickCListener.java index ea1a1dbd9..c54377b21 100644 --- a/src/main/java/dk/camelot64/kickc/parser/KickCListener.java +++ b/src/main/java/dk/camelot64/kickc/parser/KickCListener.java @@ -1,4 +1,4 @@ -// Generated from C:/c64/kickc/src/main/java/dk/camelot64/kickc/parser\KickC.g4 by ANTLR 4.7 +// Generated from /Users/jespergravgaard/c64/kickc/src/main/java/dk/camelot64/kickc/parser/KickC.g4 by ANTLR 4.7 package dk.camelot64.kickc.parser; import org.antlr.v4.runtime.tree.ParseTreeListener; @@ -199,6 +199,18 @@ public interface KickCListener extends ParseTreeListener { * @param ctx the parse tree */ void exitGlobalDirectivePc(KickCParser.GlobalDirectivePcContext ctx); + /** + * Enter a parse tree produced by the {@code globalDirectivePlatform} + * labeled alternative in {@link KickCParser#globalDirective}. + * @param ctx the parse tree + */ + void enterGlobalDirectivePlatform(KickCParser.GlobalDirectivePlatformContext ctx); + /** + * Exit a parse tree produced by the {@code globalDirectivePlatform} + * labeled alternative in {@link KickCParser#globalDirective}. + * @param ctx the parse tree + */ + void exitGlobalDirectivePlatform(KickCParser.GlobalDirectivePlatformContext ctx); /** * Enter a parse tree produced by the {@code globalDirectiveEncoding} * labeled alternative in {@link KickCParser#globalDirective}. diff --git a/src/main/java/dk/camelot64/kickc/parser/KickCParser.java b/src/main/java/dk/camelot64/kickc/parser/KickCParser.java index 6b53e7031..106fe9412 100644 --- a/src/main/java/dk/camelot64/kickc/parser/KickCParser.java +++ b/src/main/java/dk/camelot64/kickc/parser/KickCParser.java @@ -1,4 +1,4 @@ -// Generated from C:/c64/kickc/src/main/java/dk/camelot64/kickc/parser\KickC.g4 by ANTLR 4.7 +// Generated from /Users/jespergravgaard/c64/kickc/src/main/java/dk/camelot64/kickc/parser/KickC.g4 by ANTLR 4.7 package dk.camelot64.kickc.parser; import org.antlr.v4.runtime.atn.*; import org.antlr.v4.runtime.dfa.DFA; @@ -28,10 +28,10 @@ public class KickCParser extends Parser { T__59=60, T__60=61, T__61=62, T__62=63, T__63=64, T__64=65, T__65=66, T__66=67, T__67=68, T__68=69, T__69=70, T__70=71, T__71=72, T__72=73, T__73=74, T__74=75, T__75=76, T__76=77, T__77=78, T__78=79, T__79=80, - T__80=81, MNEMONIC=82, KICKASM=83, SIMPLETYPE=84, STRING=85, CHAR=86, - BOOLEAN=87, NUMBER=88, NUMFLOAT=89, BINFLOAT=90, DECFLOAT=91, HEXFLOAT=92, - NUMINT=93, BININTEGER=94, DECINTEGER=95, HEXINTEGER=96, NAME=97, ASMREL=98, - WS=99, COMMENT_LINE=100, COMMENT_BLOCK=101; + T__80=81, T__81=82, MNEMONIC=83, KICKASM=84, SIMPLETYPE=85, STRING=86, + CHAR=87, BOOLEAN=88, NUMBER=89, NUMFLOAT=90, BINFLOAT=91, DECFLOAT=92, + HEXFLOAT=93, NUMINT=94, BININTEGER=95, DECINTEGER=96, HEXINTEGER=97, NAME=98, + ASMREL=99, WS=100, COMMENT_LINE=101, COMMENT_BLOCK=102; public static final int RULE_file = 0, RULE_asmFile = 1, RULE_importSeq = 2, RULE_importDecl = 3, RULE_declSeq = 4, RULE_decl = 5, RULE_typeDef = 6, RULE_declTypes = 7, @@ -58,9 +58,9 @@ public class KickCParser extends Parser { private static final String[] _LITERAL_NAMES = { null, "'import'", "';'", "'typedef'", "','", "'='", "'('", "')'", "'{'", - "'}'", "'#'", "'pc'", "'encoding'", "'const'", "'extern'", "'align'", - "'register'", "'inline'", "'volatile'", "'interrupt'", "'reserve'", "'if'", - "'else'", "'while'", "'do'", "'for'", "'return'", "'break'", "'continue'", + "'}'", "'#'", "'pc'", "'platform'", "'encoding'", "'const'", "'extern'", + "'align'", "'register'", "'inline'", "'volatile'", "'interrupt'", "'reserve'", + "'if'", "'else'", "'while'", "'do'", "'for'", "'return'", "'break'", "'continue'", "'asm'", "':'", "'..'", "'signed'", "'unsigned'", "'*'", "'['", "']'", "'struct'", "'enum'", "'.'", "'->'", "'sizeof'", "'typeid'", "'--'", "'++'", "'+'", "'-'", "'!'", "'&'", "'~'", "'>>'", "'<<'", "'/'", "'%'", "'<'", @@ -76,7 +76,7 @@ public class KickCParser extends Parser { null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, - null, null, null, null, null, null, null, null, null, null, "MNEMONIC", + null, null, null, null, null, null, null, null, null, null, null, "MNEMONIC", "KICKASM", "SIMPLETYPE", "STRING", "CHAR", "BOOLEAN", "NUMBER", "NUMFLOAT", "BINFLOAT", "DECFLOAT", "HEXFLOAT", "NUMINT", "BININTEGER", "DECINTEGER", "HEXINTEGER", "NAME", "ASMREL", "WS", "COMMENT_LINE", "COMMENT_BLOCK" @@ -379,7 +379,7 @@ public class KickCParser extends Parser { setState(103); _errHandler.sync(this); _la = _input.LA(1); - } while ( (((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__2) | (1L << T__5) | (1L << T__9) | (1L << T__12) | (1L << T__13) | (1L << T__14) | (1L << T__15) | (1L << T__16) | (1L << T__17) | (1L << T__18) | (1L << T__19) | (1L << T__31) | (1L << T__32) | (1L << T__36) | (1L << T__37))) != 0) || ((((_la - 75)) & ~0x3f) == 0 && ((1L << (_la - 75)) & ((1L << (T__74 - 75)) | (1L << (SIMPLETYPE - 75)) | (1L << (NAME - 75)))) != 0) ); + } while ( (((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__2) | (1L << T__5) | (1L << T__9) | (1L << T__13) | (1L << T__14) | (1L << T__15) | (1L << T__16) | (1L << T__17) | (1L << T__18) | (1L << T__19) | (1L << T__20) | (1L << T__32) | (1L << T__33) | (1L << T__37) | (1L << T__38))) != 0) || ((((_la - 76)) & ~0x3f) == 0 && ((1L << (_la - 76)) & ((1L << (T__75 - 76)) | (1L << (SIMPLETYPE - 76)) | (1L << (NAME - 76)))) != 0) ); } } catch (RecognitionException re) { @@ -438,7 +438,7 @@ public class KickCParser extends Parser { DeclContext _localctx = new DeclContext(_ctx, getState()); enterRule(_localctx, 10, RULE_decl); try { - setState(121); + setState(120); _errHandler.sync(this); switch ( getInterpreter().adaptivePredict(_input,2,_ctx) ) { case 1: @@ -479,29 +479,22 @@ public class KickCParser extends Parser { enterOuterAlt(_localctx, 5); { setState(115); - declFunction(); + declKasm(); } break; case 6: enterOuterAlt(_localctx, 6); { setState(116); - declKasm(); + globalDirective(); } break; case 7: enterOuterAlt(_localctx, 7); { setState(117); - globalDirective(); - } - break; - case 8: - enterOuterAlt(_localctx, 8); - { - setState(118); typeDef(); - setState(119); + setState(118); match(T__1); } break; @@ -547,9 +540,9 @@ public class KickCParser extends Parser { try { enterOuterAlt(_localctx, 1); { - setState(123); + setState(122); match(T__2); - setState(124); + setState(123); declVariables(); } } @@ -600,33 +593,33 @@ public class KickCParser extends Parser { try { enterOuterAlt(_localctx, 1); { - setState(129); + setState(128); _errHandler.sync(this); _la = _input.LA(1); - while ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__12) | (1L << T__13) | (1L << T__14) | (1L << T__15) | (1L << T__16) | (1L << T__17) | (1L << T__18) | (1L << T__19))) != 0)) { + while ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__13) | (1L << T__14) | (1L << T__15) | (1L << T__16) | (1L << T__17) | (1L << T__18) | (1L << T__19) | (1L << T__20))) != 0)) { { { - setState(126); + setState(125); directive(); } } - setState(131); + setState(130); _errHandler.sync(this); _la = _input.LA(1); } - setState(132); + setState(131); typeDecl(0); - setState(136); + setState(135); _errHandler.sync(this); _la = _input.LA(1); - while ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__12) | (1L << T__13) | (1L << T__14) | (1L << T__15) | (1L << T__16) | (1L << T__17) | (1L << T__18) | (1L << T__19))) != 0)) { + while ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__13) | (1L << T__14) | (1L << T__15) | (1L << T__16) | (1L << T__17) | (1L << T__18) | (1L << T__19) | (1L << T__20))) != 0)) { { { - setState(133); + setState(132); directive(); } } - setState(138); + setState(137); _errHandler.sync(this); _la = _input.LA(1); } @@ -675,9 +668,9 @@ public class KickCParser extends Parser { try { enterOuterAlt(_localctx, 1); { - setState(139); + setState(138); declTypes(); - setState(140); + setState(139); declVariableList(0); } } @@ -734,11 +727,11 @@ public class KickCParser extends Parser { enterOuterAlt(_localctx, 1); { { - setState(143); + setState(142); declVariableInit(); } _ctx.stop = _input.LT(-1); - setState(150); + setState(149); _errHandler.sync(this); _alt = getInterpreter().adaptivePredict(_input,5,_ctx); while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { @@ -749,16 +742,16 @@ public class KickCParser extends Parser { { _localctx = new DeclVariableListContext(_parentctx, _parentState); pushNewRecursionContext(_localctx, _startState, RULE_declVariableList); - setState(145); + setState(144); if (!(precpred(_ctx, 1))) throw new FailedPredicateException(this, "precpred(_ctx, 1)"); - setState(146); + setState(145); match(T__3); - setState(147); + setState(146); declVariableInit(); } } } - setState(152); + setState(151); _errHandler.sync(this); _alt = getInterpreter().adaptivePredict(_input,5,_ctx); } @@ -831,23 +824,23 @@ public class KickCParser extends Parser { DeclVariableInitContext _localctx = new DeclVariableInitContext(_ctx, getState()); enterRule(_localctx, 20, RULE_declVariableInit); try { - setState(161); + setState(160); _errHandler.sync(this); switch ( getInterpreter().adaptivePredict(_input,7,_ctx) ) { case 1: _localctx = new DeclVariableInitExprContext(_localctx); enterOuterAlt(_localctx, 1); { - setState(153); + setState(152); match(NAME); - setState(156); + setState(155); _errHandler.sync(this); switch ( getInterpreter().adaptivePredict(_input,6,_ctx) ) { case 1: { - setState(154); + setState(153); match(T__4); - setState(155); + setState(154); expr(0); } break; @@ -858,11 +851,11 @@ public class KickCParser extends Parser { _localctx = new DeclVariableInitKasmContext(_localctx); enterOuterAlt(_localctx, 2); { - setState(158); + setState(157); match(NAME); - setState(159); + setState(158); match(T__4); - setState(160); + setState(159); declKasm(); } break; @@ -916,37 +909,37 @@ public class KickCParser extends Parser { try { enterOuterAlt(_localctx, 1); { - setState(163); + setState(162); declTypes(); - setState(164); + setState(163); match(NAME); - setState(165); + setState(164); match(T__5); - setState(167); + setState(166); _errHandler.sync(this); _la = _input.LA(1); - if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__5) | (1L << T__12) | (1L << T__13) | (1L << T__14) | (1L << T__15) | (1L << T__16) | (1L << T__17) | (1L << T__18) | (1L << T__19) | (1L << T__31) | (1L << T__32) | (1L << T__36) | (1L << T__37))) != 0) || _la==SIMPLETYPE || _la==NAME) { + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__5) | (1L << T__13) | (1L << T__14) | (1L << T__15) | (1L << T__16) | (1L << T__17) | (1L << T__18) | (1L << T__19) | (1L << T__20) | (1L << T__32) | (1L << T__33) | (1L << T__37) | (1L << T__38))) != 0) || _la==SIMPLETYPE || _la==NAME) { { - setState(166); + setState(165); parameterListDecl(); } } - setState(169); + setState(168); match(T__6); - setState(170); + setState(169); match(T__7); - setState(172); + setState(171); _errHandler.sync(this); _la = _input.LA(1); - if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__5) | (1L << T__7) | (1L << T__12) | (1L << T__13) | (1L << T__14) | (1L << T__15) | (1L << T__16) | (1L << T__17) | (1L << T__18) | (1L << T__19) | (1L << T__20) | (1L << T__22) | (1L << T__23) | (1L << T__24) | (1L << T__25) | (1L << T__26) | (1L << T__27) | (1L << T__28) | (1L << T__31) | (1L << T__32) | (1L << T__33) | (1L << T__36) | (1L << T__37) | (1L << T__40) | (1L << T__41) | (1L << T__42) | (1L << T__43) | (1L << T__44) | (1L << T__45) | (1L << T__46) | (1L << T__47) | (1L << T__48) | (1L << T__53) | (1L << T__54))) != 0) || ((((_la - 75)) & ~0x3f) == 0 && ((1L << (_la - 75)) & ((1L << (T__74 - 75)) | (1L << (SIMPLETYPE - 75)) | (1L << (STRING - 75)) | (1L << (CHAR - 75)) | (1L << (BOOLEAN - 75)) | (1L << (NUMBER - 75)) | (1L << (NAME - 75)))) != 0)) { + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__5) | (1L << T__7) | (1L << T__13) | (1L << T__14) | (1L << T__15) | (1L << T__16) | (1L << T__17) | (1L << T__18) | (1L << T__19) | (1L << T__20) | (1L << T__21) | (1L << T__23) | (1L << T__24) | (1L << T__25) | (1L << T__26) | (1L << T__27) | (1L << T__28) | (1L << T__29) | (1L << T__32) | (1L << T__33) | (1L << T__34) | (1L << T__37) | (1L << T__38) | (1L << T__41) | (1L << T__42) | (1L << T__43) | (1L << T__44) | (1L << T__45) | (1L << T__46) | (1L << T__47) | (1L << T__48) | (1L << T__49) | (1L << T__54) | (1L << T__55))) != 0) || ((((_la - 76)) & ~0x3f) == 0 && ((1L << (_la - 76)) & ((1L << (T__75 - 76)) | (1L << (SIMPLETYPE - 76)) | (1L << (STRING - 76)) | (1L << (CHAR - 76)) | (1L << (BOOLEAN - 76)) | (1L << (NUMBER - 76)) | (1L << (NAME - 76)))) != 0)) { { - setState(171); + setState(170); stmtSeq(); } } - setState(174); + setState(173); match(T__8); } } @@ -994,21 +987,21 @@ public class KickCParser extends Parser { try { enterOuterAlt(_localctx, 1); { - setState(176); + setState(175); parameterDecl(); - setState(181); + setState(180); _errHandler.sync(this); _la = _input.LA(1); while (_la==T__3) { { { - setState(177); + setState(176); match(T__3); - setState(178); + setState(177); parameterDecl(); } } - setState(183); + setState(182); _errHandler.sync(this); _la = _input.LA(1); } @@ -1078,16 +1071,16 @@ public class KickCParser extends Parser { ParameterDeclContext _localctx = new ParameterDeclContext(_ctx, getState()); enterRule(_localctx, 26, RULE_parameterDecl); try { - setState(188); + setState(187); _errHandler.sync(this); switch ( getInterpreter().adaptivePredict(_input,11,_ctx) ) { case 1: _localctx = new ParameterDeclTypeContext(_localctx); enterOuterAlt(_localctx, 1); { - setState(184); + setState(183); declTypes(); - setState(185); + setState(184); match(NAME); } break; @@ -1095,7 +1088,7 @@ public class KickCParser extends Parser { _localctx = new ParameterDeclVoidContext(_localctx); enterOuterAlt(_localctx, 2); { - setState(187); + setState(186); match(SIMPLETYPE); } break; @@ -1176,21 +1169,38 @@ public class KickCParser extends Parser { else return visitor.visitChildren(this); } } + public static class GlobalDirectivePlatformContext extends GlobalDirectiveContext { + public TerminalNode NAME() { return getToken(KickCParser.NAME, 0); } + public GlobalDirectivePlatformContext(GlobalDirectiveContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof KickCListener ) ((KickCListener)listener).enterGlobalDirectivePlatform(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof KickCListener ) ((KickCListener)listener).exitGlobalDirectivePlatform(this); + } + @Override + public <T> T accept(ParseTreeVisitor<? extends T> visitor) { + if ( visitor instanceof KickCVisitor ) return ((KickCVisitor<? extends T>)visitor).visitGlobalDirectivePlatform(this); + else return visitor.visitChildren(this); + } + } public final GlobalDirectiveContext globalDirective() throws RecognitionException { GlobalDirectiveContext _localctx = new GlobalDirectiveContext(_ctx, getState()); enterRule(_localctx, 28, RULE_globalDirective); try { - setState(202); + setState(206); _errHandler.sync(this); switch ( getInterpreter().adaptivePredict(_input,12,_ctx) ) { case 1: _localctx = new GlobalDirectiveReserveContext(_localctx); enterOuterAlt(_localctx, 1); { - setState(190); + setState(189); match(T__9); - setState(191); + setState(190); directiveReserve(); } break; @@ -1198,31 +1208,47 @@ public class KickCParser extends Parser { _localctx = new GlobalDirectivePcContext(_localctx); enterOuterAlt(_localctx, 2); { - setState(192); + setState(191); match(T__9); - setState(193); + setState(192); match(T__10); - setState(194); + setState(193); match(T__5); - setState(195); + setState(194); match(NUMBER); - setState(196); + setState(195); match(T__6); } break; case 3: - _localctx = new GlobalDirectiveEncodingContext(_localctx); + _localctx = new GlobalDirectivePlatformContext(_localctx); enterOuterAlt(_localctx, 3); { - setState(197); + setState(196); match(T__9); - setState(198); + setState(197); match(T__11); - setState(199); + setState(198); match(T__5); - setState(200); + setState(199); match(NAME); + setState(200); + match(T__6); + } + break; + case 4: + _localctx = new GlobalDirectiveEncodingContext(_localctx); + enterOuterAlt(_localctx, 4); + { setState(201); + match(T__9); + setState(202); + match(T__12); + setState(203); + match(T__5); + setState(204); + match(NAME); + setState(205); match(T__6); } break; @@ -1389,96 +1415,96 @@ public class KickCParser extends Parser { DirectiveContext _localctx = new DirectiveContext(_ctx, getState()); enterRule(_localctx, 30, RULE_directive); try { - setState(223); + setState(227); _errHandler.sync(this); switch (_input.LA(1)) { - case T__12: + case T__13: _localctx = new DirectiveConstContext(_localctx); enterOuterAlt(_localctx, 1); { - setState(204); - match(T__12); - } - break; - case T__13: - _localctx = new DirectiveExternContext(_localctx); - enterOuterAlt(_localctx, 2); - { - setState(205); + setState(208); match(T__13); } break; case T__14: - _localctx = new DirectiveAlignContext(_localctx); - enterOuterAlt(_localctx, 3); + _localctx = new DirectiveExternContext(_localctx); + enterOuterAlt(_localctx, 2); { - setState(206); - match(T__14); - setState(207); - match(T__5); - setState(208); - match(NUMBER); setState(209); - match(T__6); + match(T__14); } break; case T__15: - _localctx = new DirectiveRegisterContext(_localctx); - enterOuterAlt(_localctx, 4); + _localctx = new DirectiveAlignContext(_localctx); + enterOuterAlt(_localctx, 3); { setState(210); match(T__15); setState(211); match(T__5); setState(212); - match(NAME); + match(NUMBER); setState(213); match(T__6); } break; case T__16: - _localctx = new DirectiveInlineContext(_localctx); - enterOuterAlt(_localctx, 5); + _localctx = new DirectiveRegisterContext(_localctx); + enterOuterAlt(_localctx, 4); { setState(214); match(T__16); + setState(215); + match(T__5); + setState(216); + match(NAME); + setState(217); + match(T__6); } break; case T__17: - _localctx = new DirectiveVolatileContext(_localctx); - enterOuterAlt(_localctx, 6); + _localctx = new DirectiveInlineContext(_localctx); + enterOuterAlt(_localctx, 5); { - setState(215); + setState(218); match(T__17); } break; case T__18: + _localctx = new DirectiveVolatileContext(_localctx); + enterOuterAlt(_localctx, 6); + { + setState(219); + match(T__18); + } + break; + case T__19: _localctx = new DirectiveInterruptContext(_localctx); enterOuterAlt(_localctx, 7); { - setState(216); - match(T__18); setState(220); + match(T__19); + setState(224); _errHandler.sync(this); switch ( getInterpreter().adaptivePredict(_input,13,_ctx) ) { case 1: { - setState(217); + setState(221); match(T__5); - setState(218); + setState(222); match(NAME); - setState(219); + setState(223); match(T__6); } break; } } break; - case T__19: + case T__20: _localctx = new DirectiveReserveZpContext(_localctx); enterOuterAlt(_localctx, 8); { - setState(222); + setState(226); directiveReserve(); } break; @@ -1528,29 +1554,29 @@ public class KickCParser extends Parser { try { enterOuterAlt(_localctx, 1); { - setState(225); - match(T__19); - setState(226); + setState(229); + match(T__20); + setState(230); match(T__5); - setState(227); + setState(231); match(NUMBER); - setState(232); + setState(236); _errHandler.sync(this); _la = _input.LA(1); while (_la==T__3) { { { - setState(228); + setState(232); match(T__3); - setState(229); + setState(233); match(NUMBER); } } - setState(234); + setState(238); _errHandler.sync(this); _la = _input.LA(1); } - setState(235); + setState(239); match(T__6); } } @@ -1598,20 +1624,20 @@ public class KickCParser extends Parser { try { enterOuterAlt(_localctx, 1); { - setState(238); + setState(242); _errHandler.sync(this); _la = _input.LA(1); do { { { - setState(237); + setState(241); stmt(); } } - setState(240); + setState(244); _errHandler.sync(this); _la = _input.LA(1); - } while ( (((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__5) | (1L << T__7) | (1L << T__12) | (1L << T__13) | (1L << T__14) | (1L << T__15) | (1L << T__16) | (1L << T__17) | (1L << T__18) | (1L << T__19) | (1L << T__20) | (1L << T__22) | (1L << T__23) | (1L << T__24) | (1L << T__25) | (1L << T__26) | (1L << T__27) | (1L << T__28) | (1L << T__31) | (1L << T__32) | (1L << T__33) | (1L << T__36) | (1L << T__37) | (1L << T__40) | (1L << T__41) | (1L << T__42) | (1L << T__43) | (1L << T__44) | (1L << T__45) | (1L << T__46) | (1L << T__47) | (1L << T__48) | (1L << T__53) | (1L << T__54))) != 0) || ((((_la - 75)) & ~0x3f) == 0 && ((1L << (_la - 75)) & ((1L << (T__74 - 75)) | (1L << (SIMPLETYPE - 75)) | (1L << (STRING - 75)) | (1L << (CHAR - 75)) | (1L << (BOOLEAN - 75)) | (1L << (NUMBER - 75)) | (1L << (NAME - 75)))) != 0) ); + } while ( (((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__5) | (1L << T__7) | (1L << T__13) | (1L << T__14) | (1L << T__15) | (1L << T__16) | (1L << T__17) | (1L << T__18) | (1L << T__19) | (1L << T__20) | (1L << T__21) | (1L << T__23) | (1L << T__24) | (1L << T__25) | (1L << T__26) | (1L << T__27) | (1L << T__28) | (1L << T__29) | (1L << T__32) | (1L << T__33) | (1L << T__34) | (1L << T__37) | (1L << T__38) | (1L << T__41) | (1L << T__42) | (1L << T__43) | (1L << T__44) | (1L << T__45) | (1L << T__46) | (1L << T__47) | (1L << T__48) | (1L << T__49) | (1L << T__54) | (1L << T__55))) != 0) || ((((_la - 76)) & ~0x3f) == 0 && ((1L << (_la - 76)) & ((1L << (T__75 - 76)) | (1L << (SIMPLETYPE - 76)) | (1L << (STRING - 76)) | (1L << (CHAR - 76)) | (1L << (BOOLEAN - 76)) | (1L << (NUMBER - 76)) | (1L << (NAME - 76)))) != 0) ); } } catch (RecognitionException re) { @@ -1900,16 +1926,16 @@ public class KickCParser extends Parser { enterRule(_localctx, 36, RULE_stmt); int _la; try { - setState(318); + setState(322); _errHandler.sync(this); switch ( getInterpreter().adaptivePredict(_input,24,_ctx) ) { case 1: _localctx = new StmtDeclVarContext(_localctx); enterOuterAlt(_localctx, 1); { - setState(242); + setState(246); declVariables(); - setState(243); + setState(247); match(T__1); } break; @@ -1917,19 +1943,19 @@ public class KickCParser extends Parser { _localctx = new StmtBlockContext(_localctx); enterOuterAlt(_localctx, 2); { - setState(245); + setState(249); match(T__7); - setState(247); + setState(251); _errHandler.sync(this); _la = _input.LA(1); - if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__5) | (1L << T__7) | (1L << T__12) | (1L << T__13) | (1L << T__14) | (1L << T__15) | (1L << T__16) | (1L << T__17) | (1L << T__18) | (1L << T__19) | (1L << T__20) | (1L << T__22) | (1L << T__23) | (1L << T__24) | (1L << T__25) | (1L << T__26) | (1L << T__27) | (1L << T__28) | (1L << T__31) | (1L << T__32) | (1L << T__33) | (1L << T__36) | (1L << T__37) | (1L << T__40) | (1L << T__41) | (1L << T__42) | (1L << T__43) | (1L << T__44) | (1L << T__45) | (1L << T__46) | (1L << T__47) | (1L << T__48) | (1L << T__53) | (1L << T__54))) != 0) || ((((_la - 75)) & ~0x3f) == 0 && ((1L << (_la - 75)) & ((1L << (T__74 - 75)) | (1L << (SIMPLETYPE - 75)) | (1L << (STRING - 75)) | (1L << (CHAR - 75)) | (1L << (BOOLEAN - 75)) | (1L << (NUMBER - 75)) | (1L << (NAME - 75)))) != 0)) { + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__5) | (1L << T__7) | (1L << T__13) | (1L << T__14) | (1L << T__15) | (1L << T__16) | (1L << T__17) | (1L << T__18) | (1L << T__19) | (1L << T__20) | (1L << T__21) | (1L << T__23) | (1L << T__24) | (1L << T__25) | (1L << T__26) | (1L << T__27) | (1L << T__28) | (1L << T__29) | (1L << T__32) | (1L << T__33) | (1L << T__34) | (1L << T__37) | (1L << T__38) | (1L << T__41) | (1L << T__42) | (1L << T__43) | (1L << T__44) | (1L << T__45) | (1L << T__46) | (1L << T__47) | (1L << T__48) | (1L << T__49) | (1L << T__54) | (1L << T__55))) != 0) || ((((_la - 76)) & ~0x3f) == 0 && ((1L << (_la - 76)) & ((1L << (T__75 - 76)) | (1L << (SIMPLETYPE - 76)) | (1L << (STRING - 76)) | (1L << (CHAR - 76)) | (1L << (BOOLEAN - 76)) | (1L << (NUMBER - 76)) | (1L << (NAME - 76)))) != 0)) { { - setState(246); + setState(250); stmtSeq(); } } - setState(249); + setState(253); match(T__8); } break; @@ -1937,9 +1963,9 @@ public class KickCParser extends Parser { _localctx = new StmtExprContext(_localctx); enterOuterAlt(_localctx, 3); { - setState(250); + setState(254); commaExpr(0); - setState(251); + setState(255); match(T__1); } break; @@ -1947,24 +1973,24 @@ public class KickCParser extends Parser { _localctx = new StmtIfElseContext(_localctx); enterOuterAlt(_localctx, 4); { - setState(253); - match(T__20); - setState(254); - match(T__5); - setState(255); - commaExpr(0); - setState(256); - match(T__6); setState(257); - stmt(); + match(T__21); + setState(258); + match(T__5); + setState(259); + commaExpr(0); setState(260); + match(T__6); + setState(261); + stmt(); + setState(264); _errHandler.sync(this); switch ( getInterpreter().adaptivePredict(_input,18,_ctx) ) { case 1: { - setState(258); - match(T__21); - setState(259); + setState(262); + match(T__22); + setState(263); stmt(); } break; @@ -1975,29 +2001,29 @@ public class KickCParser extends Parser { _localctx = new StmtWhileContext(_localctx); enterOuterAlt(_localctx, 5); { - setState(265); + setState(269); _errHandler.sync(this); _la = _input.LA(1); - while ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__12) | (1L << T__13) | (1L << T__14) | (1L << T__15) | (1L << T__16) | (1L << T__17) | (1L << T__18) | (1L << T__19))) != 0)) { + while ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__13) | (1L << T__14) | (1L << T__15) | (1L << T__16) | (1L << T__17) | (1L << T__18) | (1L << T__19) | (1L << T__20))) != 0)) { { { - setState(262); + setState(266); directive(); } } - setState(267); + setState(271); _errHandler.sync(this); _la = _input.LA(1); } - setState(268); - match(T__22); - setState(269); - match(T__5); - setState(270); - commaExpr(0); - setState(271); - match(T__6); setState(272); + match(T__23); + setState(273); + match(T__5); + setState(274); + commaExpr(0); + setState(275); + match(T__6); + setState(276); stmt(); } break; @@ -2005,33 +2031,33 @@ public class KickCParser extends Parser { _localctx = new StmtDoWhileContext(_localctx); enterOuterAlt(_localctx, 6); { - setState(277); + setState(281); _errHandler.sync(this); _la = _input.LA(1); - while ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__12) | (1L << T__13) | (1L << T__14) | (1L << T__15) | (1L << T__16) | (1L << T__17) | (1L << T__18) | (1L << T__19))) != 0)) { + while ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__13) | (1L << T__14) | (1L << T__15) | (1L << T__16) | (1L << T__17) | (1L << T__18) | (1L << T__19) | (1L << T__20))) != 0)) { { { - setState(274); + setState(278); directive(); } } - setState(279); + setState(283); _errHandler.sync(this); _la = _input.LA(1); } - setState(280); - match(T__23); - setState(281); - stmt(); - setState(282); - match(T__22); - setState(283); - match(T__5); setState(284); - commaExpr(0); + match(T__24); setState(285); - match(T__6); + stmt(); setState(286); + match(T__23); + setState(287); + match(T__5); + setState(288); + commaExpr(0); + setState(289); + match(T__6); + setState(290); match(T__1); } break; @@ -2039,29 +2065,29 @@ public class KickCParser extends Parser { _localctx = new StmtForContext(_localctx); enterOuterAlt(_localctx, 7); { - setState(291); + setState(295); _errHandler.sync(this); _la = _input.LA(1); - while ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__12) | (1L << T__13) | (1L << T__14) | (1L << T__15) | (1L << T__16) | (1L << T__17) | (1L << T__18) | (1L << T__19))) != 0)) { + while ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__13) | (1L << T__14) | (1L << T__15) | (1L << T__16) | (1L << T__17) | (1L << T__18) | (1L << T__19) | (1L << T__20))) != 0)) { { { - setState(288); + setState(292); directive(); } } - setState(293); + setState(297); _errHandler.sync(this); _la = _input.LA(1); } - setState(294); - match(T__24); - setState(295); - match(T__5); - setState(296); - forLoop(); - setState(297); - match(T__6); setState(298); + match(T__25); + setState(299); + match(T__5); + setState(300); + forLoop(); + setState(301); + match(T__6); + setState(302); stmt(); } break; @@ -2069,19 +2095,19 @@ public class KickCParser extends Parser { _localctx = new StmtReturnContext(_localctx); enterOuterAlt(_localctx, 8); { - setState(300); - match(T__25); - setState(302); + setState(304); + match(T__26); + setState(306); _errHandler.sync(this); _la = _input.LA(1); - if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__5) | (1L << T__7) | (1L << T__33) | (1L << T__40) | (1L << T__41) | (1L << T__42) | (1L << T__43) | (1L << T__44) | (1L << T__45) | (1L << T__46) | (1L << T__47) | (1L << T__48) | (1L << T__53) | (1L << T__54))) != 0) || ((((_la - 85)) & ~0x3f) == 0 && ((1L << (_la - 85)) & ((1L << (STRING - 85)) | (1L << (CHAR - 85)) | (1L << (BOOLEAN - 85)) | (1L << (NUMBER - 85)) | (1L << (NAME - 85)))) != 0)) { + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__5) | (1L << T__7) | (1L << T__34) | (1L << T__41) | (1L << T__42) | (1L << T__43) | (1L << T__44) | (1L << T__45) | (1L << T__46) | (1L << T__47) | (1L << T__48) | (1L << T__49) | (1L << T__54) | (1L << T__55))) != 0) || ((((_la - 86)) & ~0x3f) == 0 && ((1L << (_la - 86)) & ((1L << (STRING - 86)) | (1L << (CHAR - 86)) | (1L << (BOOLEAN - 86)) | (1L << (NUMBER - 86)) | (1L << (NAME - 86)))) != 0)) { { - setState(301); + setState(305); commaExpr(0); } } - setState(304); + setState(308); match(T__1); } break; @@ -2089,9 +2115,9 @@ public class KickCParser extends Parser { _localctx = new StmtBreakContext(_localctx); enterOuterAlt(_localctx, 9); { - setState(305); - match(T__26); - setState(306); + setState(309); + match(T__27); + setState(310); match(T__1); } break; @@ -2099,9 +2125,9 @@ public class KickCParser extends Parser { _localctx = new StmtContinueContext(_localctx); enterOuterAlt(_localctx, 10); { - setState(307); - match(T__27); - setState(308); + setState(311); + match(T__28); + setState(312); match(T__1); } break; @@ -2109,23 +2135,23 @@ public class KickCParser extends Parser { _localctx = new StmtAsmContext(_localctx); enterOuterAlt(_localctx, 11); { - setState(309); - match(T__28); - setState(311); + setState(313); + match(T__29); + setState(315); _errHandler.sync(this); _la = _input.LA(1); if (_la==T__5) { { - setState(310); + setState(314); asmDirectives(); } } - setState(313); + setState(317); match(T__7); - setState(314); + setState(318); asmLines(); - setState(315); + setState(319); match(T__8); } break; @@ -2133,7 +2159,7 @@ public class KickCParser extends Parser { _localctx = new StmtDeclKasmContext(_localctx); enterOuterAlt(_localctx, 12); { - setState(317); + setState(321); declKasm(); } break; @@ -2218,27 +2244,27 @@ public class KickCParser extends Parser { enterRule(_localctx, 38, RULE_forLoop); int _la; try { - setState(336); + setState(340); _errHandler.sync(this); switch ( getInterpreter().adaptivePredict(_input,27,_ctx) ) { case 1: _localctx = new ForClassicContext(_localctx); enterOuterAlt(_localctx, 1); { - setState(320); + setState(324); forClassicInit(); - setState(321); - match(T__1); - setState(322); - commaExpr(0); - setState(323); - match(T__1); setState(325); + match(T__1); + setState(326); + commaExpr(0); + setState(327); + match(T__1); + setState(329); _errHandler.sync(this); _la = _input.LA(1); - if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__5) | (1L << T__7) | (1L << T__33) | (1L << T__40) | (1L << T__41) | (1L << T__42) | (1L << T__43) | (1L << T__44) | (1L << T__45) | (1L << T__46) | (1L << T__47) | (1L << T__48) | (1L << T__53) | (1L << T__54))) != 0) || ((((_la - 85)) & ~0x3f) == 0 && ((1L << (_la - 85)) & ((1L << (STRING - 85)) | (1L << (CHAR - 85)) | (1L << (BOOLEAN - 85)) | (1L << (NUMBER - 85)) | (1L << (NAME - 85)))) != 0)) { + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__5) | (1L << T__7) | (1L << T__34) | (1L << T__41) | (1L << T__42) | (1L << T__43) | (1L << T__44) | (1L << T__45) | (1L << T__46) | (1L << T__47) | (1L << T__48) | (1L << T__49) | (1L << T__54) | (1L << T__55))) != 0) || ((((_la - 86)) & ~0x3f) == 0 && ((1L << (_la - 86)) & ((1L << (STRING - 86)) | (1L << (CHAR - 86)) | (1L << (BOOLEAN - 86)) | (1L << (NUMBER - 86)) | (1L << (NAME - 86)))) != 0)) { { - setState(324); + setState(328); commaExpr(0); } } @@ -2249,27 +2275,27 @@ public class KickCParser extends Parser { _localctx = new ForRangeContext(_localctx); enterOuterAlt(_localctx, 2); { - setState(328); + setState(332); _errHandler.sync(this); switch ( getInterpreter().adaptivePredict(_input,26,_ctx) ) { case 1: { - setState(327); + setState(331); declTypes(); } break; } - setState(330); + setState(334); match(NAME); - setState(331); - match(T__29); - setState(332); + setState(335); + match(T__30); + setState(336); expr(0); { - setState(333); - match(T__30); + setState(337); + match(T__31); } - setState(334); + setState(338); expr(0); } break; @@ -2341,19 +2367,19 @@ public class KickCParser extends Parser { enterRule(_localctx, 40, RULE_forClassicInit); int _la; try { - setState(342); + setState(346); _errHandler.sync(this); switch ( getInterpreter().adaptivePredict(_input,29,_ctx) ) { case 1: _localctx = new ForClassicInitDeclContext(_localctx); enterOuterAlt(_localctx, 1); { - setState(339); + setState(343); _errHandler.sync(this); _la = _input.LA(1); - if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__5) | (1L << T__12) | (1L << T__13) | (1L << T__14) | (1L << T__15) | (1L << T__16) | (1L << T__17) | (1L << T__18) | (1L << T__19) | (1L << T__31) | (1L << T__32) | (1L << T__36) | (1L << T__37))) != 0) || _la==SIMPLETYPE || _la==NAME) { + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__5) | (1L << T__13) | (1L << T__14) | (1L << T__15) | (1L << T__16) | (1L << T__17) | (1L << T__18) | (1L << T__19) | (1L << T__20) | (1L << T__32) | (1L << T__33) | (1L << T__37) | (1L << T__38))) != 0) || _la==SIMPLETYPE || _la==NAME) { { - setState(338); + setState(342); declVariables(); } } @@ -2364,7 +2390,7 @@ public class KickCParser extends Parser { _localctx = new ForClassicInitExprContext(_localctx); enterOuterAlt(_localctx, 2); { - setState(341); + setState(345); commaExpr(0); } break; @@ -2615,7 +2641,7 @@ public class KickCParser extends Parser { int _alt; enterOuterAlt(_localctx, 1); { - setState(359); + setState(363); _errHandler.sync(this); switch ( getInterpreter().adaptivePredict(_input,31,_ctx) ) { case 1: @@ -2624,11 +2650,11 @@ public class KickCParser extends Parser { _ctx = _localctx; _prevctx = _localctx; - setState(345); + setState(349); match(T__5); - setState(346); + setState(350); typeDecl(0); - setState(347); + setState(351); match(T__6); } break; @@ -2637,7 +2663,7 @@ public class KickCParser extends Parser { _localctx = new TypeSimpleContext(_localctx); _ctx = _localctx; _prevctx = _localctx; - setState(349); + setState(353); match(SIMPLETYPE); } break; @@ -2646,9 +2672,9 @@ public class KickCParser extends Parser { _localctx = new TypeSignedSimpleContext(_localctx); _ctx = _localctx; _prevctx = _localctx; - setState(350); + setState(354); _la = _input.LA(1); - if ( !(_la==T__31 || _la==T__32) ) { + if ( !(_la==T__32 || _la==T__33) ) { _errHandler.recoverInline(this); } else { @@ -2656,12 +2682,12 @@ public class KickCParser extends Parser { _errHandler.reportMatch(this); consume(); } - setState(352); + setState(356); _errHandler.sync(this); switch ( getInterpreter().adaptivePredict(_input,30,_ctx) ) { case 1: { - setState(351); + setState(355); match(SIMPLETYPE); } break; @@ -2673,7 +2699,7 @@ public class KickCParser extends Parser { _localctx = new TypeStructDefContext(_localctx); _ctx = _localctx; _prevctx = _localctx; - setState(354); + setState(358); structDef(); } break; @@ -2682,7 +2708,7 @@ public class KickCParser extends Parser { _localctx = new TypeStructRefContext(_localctx); _ctx = _localctx; _prevctx = _localctx; - setState(355); + setState(359); structRef(); } break; @@ -2691,7 +2717,7 @@ public class KickCParser extends Parser { _localctx = new TypeEnumDefContext(_localctx); _ctx = _localctx; _prevctx = _localctx; - setState(356); + setState(360); enumDef(); } break; @@ -2700,7 +2726,7 @@ public class KickCParser extends Parser { _localctx = new TypeEnumRefContext(_localctx); _ctx = _localctx; _prevctx = _localctx; - setState(357); + setState(361); enumRef(); } break; @@ -2709,13 +2735,13 @@ public class KickCParser extends Parser { _localctx = new TypeNamedRefContext(_localctx); _ctx = _localctx; _prevctx = _localctx; - setState(358); + setState(362); match(NAME); } break; } _ctx.stop = _input.LT(-1); - setState(374); + setState(378); _errHandler.sync(this); _alt = getInterpreter().adaptivePredict(_input,34,_ctx); while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { @@ -2723,57 +2749,57 @@ public class KickCParser extends Parser { if ( _parseListeners!=null ) triggerExitRuleEvent(); _prevctx = _localctx; { - setState(372); + setState(376); _errHandler.sync(this); switch ( getInterpreter().adaptivePredict(_input,33,_ctx) ) { case 1: { _localctx = new TypePtrContext(new TypeDeclContext(_parentctx, _parentState)); pushNewRecursionContext(_localctx, _startState, RULE_typeDecl); - setState(361); + setState(365); if (!(precpred(_ctx, 8))) throw new FailedPredicateException(this, "precpred(_ctx, 8)"); - setState(362); - match(T__33); + setState(366); + match(T__34); } break; case 2: { _localctx = new TypeArrayContext(new TypeDeclContext(_parentctx, _parentState)); pushNewRecursionContext(_localctx, _startState, RULE_typeDecl); - setState(363); + setState(367); if (!(precpred(_ctx, 7))) throw new FailedPredicateException(this, "precpred(_ctx, 7)"); - setState(364); - match(T__34); - setState(366); + setState(368); + match(T__35); + setState(370); _errHandler.sync(this); _la = _input.LA(1); - if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__5) | (1L << T__7) | (1L << T__33) | (1L << T__40) | (1L << T__41) | (1L << T__42) | (1L << T__43) | (1L << T__44) | (1L << T__45) | (1L << T__46) | (1L << T__47) | (1L << T__48) | (1L << T__53) | (1L << T__54))) != 0) || ((((_la - 85)) & ~0x3f) == 0 && ((1L << (_la - 85)) & ((1L << (STRING - 85)) | (1L << (CHAR - 85)) | (1L << (BOOLEAN - 85)) | (1L << (NUMBER - 85)) | (1L << (NAME - 85)))) != 0)) { + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__5) | (1L << T__7) | (1L << T__34) | (1L << T__41) | (1L << T__42) | (1L << T__43) | (1L << T__44) | (1L << T__45) | (1L << T__46) | (1L << T__47) | (1L << T__48) | (1L << T__49) | (1L << T__54) | (1L << T__55))) != 0) || ((((_la - 86)) & ~0x3f) == 0 && ((1L << (_la - 86)) & ((1L << (STRING - 86)) | (1L << (CHAR - 86)) | (1L << (BOOLEAN - 86)) | (1L << (NUMBER - 86)) | (1L << (NAME - 86)))) != 0)) { { - setState(365); + setState(369); expr(0); } } - setState(368); - match(T__35); + setState(372); + match(T__36); } break; case 3: { _localctx = new TypeProcedureContext(new TypeDeclContext(_parentctx, _parentState)); pushNewRecursionContext(_localctx, _startState, RULE_typeDecl); - setState(369); + setState(373); if (!(precpred(_ctx, 6))) throw new FailedPredicateException(this, "precpred(_ctx, 6)"); - setState(370); + setState(374); match(T__5); - setState(371); + setState(375); match(T__6); } break; } } } - setState(376); + setState(380); _errHandler.sync(this); _alt = getInterpreter().adaptivePredict(_input,34,_ctx); } @@ -2817,9 +2843,9 @@ public class KickCParser extends Parser { try { enterOuterAlt(_localctx, 1); { - setState(377); - match(T__36); - setState(378); + setState(381); + match(T__37); + setState(382); match(NAME); } } @@ -2868,35 +2894,35 @@ public class KickCParser extends Parser { try { enterOuterAlt(_localctx, 1); { - setState(380); - match(T__36); - setState(382); + setState(384); + match(T__37); + setState(386); _errHandler.sync(this); _la = _input.LA(1); if (_la==NAME) { { - setState(381); + setState(385); match(NAME); } } - setState(384); + setState(388); match(T__7); - setState(386); + setState(390); _errHandler.sync(this); _la = _input.LA(1); do { { { - setState(385); + setState(389); structMembers(); } } - setState(388); + setState(392); _errHandler.sync(this); _la = _input.LA(1); - } while ( (((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__5) | (1L << T__12) | (1L << T__13) | (1L << T__14) | (1L << T__15) | (1L << T__16) | (1L << T__17) | (1L << T__18) | (1L << T__19) | (1L << T__31) | (1L << T__32) | (1L << T__36) | (1L << T__37))) != 0) || _la==SIMPLETYPE || _la==NAME ); - setState(390); + } while ( (((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__5) | (1L << T__13) | (1L << T__14) | (1L << T__15) | (1L << T__16) | (1L << T__17) | (1L << T__18) | (1L << T__19) | (1L << T__20) | (1L << T__32) | (1L << T__33) | (1L << T__37) | (1L << T__38))) != 0) || _la==SIMPLETYPE || _la==NAME ); + setState(394); match(T__8); } } @@ -2940,9 +2966,9 @@ public class KickCParser extends Parser { try { enterOuterAlt(_localctx, 1); { - setState(392); + setState(396); declVariables(); - setState(393); + setState(397); match(T__1); } } @@ -2984,9 +3010,9 @@ public class KickCParser extends Parser { try { enterOuterAlt(_localctx, 1); { - setState(395); - match(T__37); - setState(396); + setState(399); + match(T__38); + setState(400); match(NAME); } } @@ -3032,23 +3058,23 @@ public class KickCParser extends Parser { try { enterOuterAlt(_localctx, 1); { - setState(398); - match(T__37); - setState(400); + setState(402); + match(T__38); + setState(404); _errHandler.sync(this); _la = _input.LA(1); if (_la==NAME) { { - setState(399); + setState(403); match(NAME); } } - setState(402); + setState(406); match(T__7); - setState(403); + setState(407); enumMemberList(0); - setState(404); + setState(408); match(T__8); } } @@ -3105,11 +3131,11 @@ public class KickCParser extends Parser { enterOuterAlt(_localctx, 1); { { - setState(407); + setState(411); enumMember(); } _ctx.stop = _input.LT(-1); - setState(414); + setState(418); _errHandler.sync(this); _alt = getInterpreter().adaptivePredict(_input,38,_ctx); while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { @@ -3120,16 +3146,16 @@ public class KickCParser extends Parser { { _localctx = new EnumMemberListContext(_parentctx, _parentState); pushNewRecursionContext(_localctx, _startState, RULE_enumMemberList); - setState(409); + setState(413); if (!(precpred(_ctx, 1))) throw new FailedPredicateException(this, "precpred(_ctx, 1)"); - setState(410); + setState(414); match(T__3); - setState(411); + setState(415); enumMember(); } } } - setState(416); + setState(420); _errHandler.sync(this); _alt = getInterpreter().adaptivePredict(_input,38,_ctx); } @@ -3176,16 +3202,16 @@ public class KickCParser extends Parser { try { enterOuterAlt(_localctx, 1); { - setState(417); + setState(421); match(NAME); - setState(420); + setState(424); _errHandler.sync(this); switch ( getInterpreter().adaptivePredict(_input,39,_ctx) ) { case 1: { - setState(418); + setState(422); match(T__4); - setState(419); + setState(423); expr(0); } break; @@ -3276,11 +3302,11 @@ public class KickCParser extends Parser { _ctx = _localctx; _prevctx = _localctx; - setState(423); + setState(427); expr(0); } _ctx.stop = _input.LT(-1); - setState(430); + setState(434); _errHandler.sync(this); _alt = getInterpreter().adaptivePredict(_input,40,_ctx); while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { @@ -3291,16 +3317,16 @@ public class KickCParser extends Parser { { _localctx = new CommaSimpleContext(new CommaExprContext(_parentctx, _parentState)); pushNewRecursionContext(_localctx, _startState, RULE_commaExpr); - setState(425); + setState(429); if (!(precpred(_ctx, 1))) throw new FailedPredicateException(this, "precpred(_ctx, 1)"); - setState(426); + setState(430); match(T__3); - setState(427); + setState(431); expr(0); } } } - setState(432); + setState(436); _errHandler.sync(this); _alt = getInterpreter().adaptivePredict(_input,40,_ctx); } @@ -3788,7 +3814,7 @@ public class KickCParser extends Parser { int _alt; enterOuterAlt(_localctx, 1); { - setState(487); + setState(491); _errHandler.sync(this); switch ( getInterpreter().adaptivePredict(_input,45,_ctx) ) { case 1: @@ -3797,11 +3823,11 @@ public class KickCParser extends Parser { _ctx = _localctx; _prevctx = _localctx; - setState(434); + setState(438); match(T__5); - setState(435); + setState(439); commaExpr(0); - setState(436); + setState(440); match(T__6); } break; @@ -3810,27 +3836,27 @@ public class KickCParser extends Parser { _localctx = new ExprSizeOfContext(_localctx); _ctx = _localctx; _prevctx = _localctx; - setState(438); - match(T__40); - setState(439); - match(T__5); setState(442); + match(T__41); + setState(443); + match(T__5); + setState(446); _errHandler.sync(this); switch ( getInterpreter().adaptivePredict(_input,41,_ctx) ) { case 1: { - setState(440); + setState(444); expr(0); } break; case 2: { - setState(441); + setState(445); typeDecl(0); } break; } - setState(444); + setState(448); match(T__6); } break; @@ -3839,27 +3865,27 @@ public class KickCParser extends Parser { _localctx = new ExprTypeIdContext(_localctx); _ctx = _localctx; _prevctx = _localctx; - setState(446); - match(T__41); - setState(447); - match(T__5); setState(450); + match(T__42); + setState(451); + match(T__5); + setState(454); _errHandler.sync(this); switch ( getInterpreter().adaptivePredict(_input,42,_ctx) ) { case 1: { - setState(448); + setState(452); expr(0); } break; case 2: { - setState(449); + setState(453); typeDecl(0); } break; } - setState(452); + setState(456); match(T__6); } break; @@ -3868,13 +3894,13 @@ public class KickCParser extends Parser { _localctx = new ExprCastContext(_localctx); _ctx = _localctx; _prevctx = _localctx; - setState(454); + setState(458); match(T__5); - setState(455); + setState(459); typeDecl(0); - setState(456); + setState(460); match(T__6); - setState(457); + setState(461); expr(24); } break; @@ -3883,39 +3909,9 @@ public class KickCParser extends Parser { _localctx = new ExprPreModContext(_localctx); _ctx = _localctx; _prevctx = _localctx; - setState(459); - _la = _input.LA(1); - if ( !(_la==T__42 || _la==T__43) ) { - _errHandler.recoverInline(this); - } - else { - if ( _input.LA(1)==Token.EOF ) matchedEOF = true; - _errHandler.reportMatch(this); - consume(); - } - setState(460); - expr(23); - } - break; - case 6: - { - _localctx = new ExprPtrContext(_localctx); - _ctx = _localctx; - _prevctx = _localctx; - setState(461); - match(T__33); - setState(462); - expr(21); - } - break; - case 7: - { - _localctx = new ExprUnaryContext(_localctx); - _ctx = _localctx; - _prevctx = _localctx; setState(463); _la = _input.LA(1); - if ( !((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__44) | (1L << T__45) | (1L << T__46) | (1L << T__47) | (1L << T__48))) != 0)) ) { + if ( !(_la==T__43 || _la==T__44) ) { _errHandler.recoverInline(this); } else { @@ -3924,6 +3920,36 @@ public class KickCParser extends Parser { consume(); } setState(464); + expr(23); + } + break; + case 6: + { + _localctx = new ExprPtrContext(_localctx); + _ctx = _localctx; + _prevctx = _localctx; + setState(465); + match(T__34); + setState(466); + expr(21); + } + break; + case 7: + { + _localctx = new ExprUnaryContext(_localctx); + _ctx = _localctx; + _prevctx = _localctx; + setState(467); + _la = _input.LA(1); + if ( !((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__45) | (1L << T__46) | (1L << T__47) | (1L << T__48) | (1L << T__49))) != 0)) ) { + _errHandler.recoverInline(this); + } + else { + if ( _input.LA(1)==Token.EOF ) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + setState(468); expr(20); } break; @@ -3932,9 +3958,9 @@ public class KickCParser extends Parser { _localctx = new ExprUnaryContext(_localctx); _ctx = _localctx; _prevctx = _localctx; - setState(465); + setState(469); _la = _input.LA(1); - if ( !(_la==T__53 || _la==T__54) ) { + if ( !(_la==T__54 || _la==T__55) ) { _errHandler.recoverInline(this); } else { @@ -3942,7 +3968,7 @@ public class KickCParser extends Parser { _errHandler.reportMatch(this); consume(); } - setState(466); + setState(470); expr(16); } break; @@ -3951,27 +3977,27 @@ public class KickCParser extends Parser { _localctx = new InitListContext(_localctx); _ctx = _localctx; _prevctx = _localctx; - setState(467); + setState(471); match(T__7); - setState(468); + setState(472); expr(0); - setState(473); + setState(477); _errHandler.sync(this); _la = _input.LA(1); while (_la==T__3) { { { - setState(469); + setState(473); match(T__3); - setState(470); + setState(474); expr(0); } } - setState(475); + setState(479); _errHandler.sync(this); _la = _input.LA(1); } - setState(476); + setState(480); match(T__8); } break; @@ -3980,7 +4006,7 @@ public class KickCParser extends Parser { _localctx = new ExprIdContext(_localctx); _ctx = _localctx; _prevctx = _localctx; - setState(478); + setState(482); match(NAME); } break; @@ -3989,7 +4015,7 @@ public class KickCParser extends Parser { _localctx = new ExprNumberContext(_localctx); _ctx = _localctx; _prevctx = _localctx; - setState(479); + setState(483); match(NUMBER); } break; @@ -3998,7 +4024,7 @@ public class KickCParser extends Parser { _localctx = new ExprStringContext(_localctx); _ctx = _localctx; _prevctx = _localctx; - setState(481); + setState(485); _errHandler.sync(this); _alt = 1; do { @@ -4006,7 +4032,7 @@ public class KickCParser extends Parser { case 1: { { - setState(480); + setState(484); match(STRING); } } @@ -4014,7 +4040,7 @@ public class KickCParser extends Parser { default: throw new NoViableAltException(this); } - setState(483); + setState(487); _errHandler.sync(this); _alt = getInterpreter().adaptivePredict(_input,44,_ctx); } while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ); @@ -4025,7 +4051,7 @@ public class KickCParser extends Parser { _localctx = new ExprCharContext(_localctx); _ctx = _localctx; _prevctx = _localctx; - setState(485); + setState(489); match(CHAR); } break; @@ -4034,13 +4060,13 @@ public class KickCParser extends Parser { _localctx = new ExprBoolContext(_localctx); _ctx = _localctx; _prevctx = _localctx; - setState(486); + setState(490); match(BOOLEAN); } break; } _ctx.stop = _input.LT(-1); - setState(549); + setState(553); _errHandler.sync(this); _alt = getInterpreter().adaptivePredict(_input,48,_ctx); while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { @@ -4048,18 +4074,18 @@ public class KickCParser extends Parser { if ( _parseListeners!=null ) triggerExitRuleEvent(); _prevctx = _localctx; { - setState(547); + setState(551); _errHandler.sync(this); switch ( getInterpreter().adaptivePredict(_input,47,_ctx) ) { case 1: { _localctx = new ExprBinaryContext(new ExprContext(_parentctx, _parentState)); pushNewRecursionContext(_localctx, _startState, RULE_expr); - setState(489); + setState(493); if (!(precpred(_ctx, 19))) throw new FailedPredicateException(this, "precpred(_ctx, 19)"); - setState(490); + setState(494); _la = _input.LA(1); - if ( !(_la==T__49 || _la==T__50) ) { + if ( !(_la==T__50 || _la==T__51) ) { _errHandler.recoverInline(this); } else { @@ -4067,7 +4093,7 @@ public class KickCParser extends Parser { _errHandler.reportMatch(this); consume(); } - setState(491); + setState(495); expr(20); } break; @@ -4075,11 +4101,11 @@ public class KickCParser extends Parser { { _localctx = new ExprBinaryContext(new ExprContext(_parentctx, _parentState)); pushNewRecursionContext(_localctx, _startState, RULE_expr); - setState(492); + setState(496); if (!(precpred(_ctx, 18))) throw new FailedPredicateException(this, "precpred(_ctx, 18)"); - setState(493); + setState(497); _la = _input.LA(1); - if ( !((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__33) | (1L << T__51) | (1L << T__52))) != 0)) ) { + if ( !((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__34) | (1L << T__52) | (1L << T__53))) != 0)) ) { _errHandler.recoverInline(this); } else { @@ -4087,7 +4113,7 @@ public class KickCParser extends Parser { _errHandler.reportMatch(this); consume(); } - setState(494); + setState(498); expr(19); } break; @@ -4095,11 +4121,11 @@ public class KickCParser extends Parser { { _localctx = new ExprBinaryContext(new ExprContext(_parentctx, _parentState)); pushNewRecursionContext(_localctx, _startState, RULE_expr); - setState(495); + setState(499); if (!(precpred(_ctx, 17))) throw new FailedPredicateException(this, "precpred(_ctx, 17)"); - setState(496); + setState(500); _la = _input.LA(1); - if ( !(_la==T__44 || _la==T__45) ) { + if ( !(_la==T__45 || _la==T__46) ) { _errHandler.recoverInline(this); } else { @@ -4107,7 +4133,7 @@ public class KickCParser extends Parser { _errHandler.reportMatch(this); consume(); } - setState(497); + setState(501); expr(18); } break; @@ -4115,11 +4141,11 @@ public class KickCParser extends Parser { { _localctx = new ExprBinaryContext(new ExprContext(_parentctx, _parentState)); pushNewRecursionContext(_localctx, _startState, RULE_expr); - setState(498); + setState(502); if (!(precpred(_ctx, 15))) throw new FailedPredicateException(this, "precpred(_ctx, 15)"); - setState(499); + setState(503); _la = _input.LA(1); - if ( !((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__53) | (1L << T__54) | (1L << T__55) | (1L << T__56) | (1L << T__57) | (1L << T__58))) != 0)) ) { + if ( !((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__54) | (1L << T__55) | (1L << T__56) | (1L << T__57) | (1L << T__58) | (1L << T__59))) != 0)) ) { _errHandler.recoverInline(this); } else { @@ -4127,7 +4153,7 @@ public class KickCParser extends Parser { _errHandler.reportMatch(this); consume(); } - setState(500); + setState(504); expr(16); } break; @@ -4135,13 +4161,13 @@ public class KickCParser extends Parser { { _localctx = new ExprBinaryContext(new ExprContext(_parentctx, _parentState)); pushNewRecursionContext(_localctx, _startState, RULE_expr); - setState(501); + setState(505); if (!(precpred(_ctx, 14))) throw new FailedPredicateException(this, "precpred(_ctx, 14)"); { - setState(502); - match(T__47); + setState(506); + match(T__48); } - setState(503); + setState(507); expr(15); } break; @@ -4149,13 +4175,13 @@ public class KickCParser extends Parser { { _localctx = new ExprBinaryContext(new ExprContext(_parentctx, _parentState)); pushNewRecursionContext(_localctx, _startState, RULE_expr); - setState(504); + setState(508); if (!(precpred(_ctx, 13))) throw new FailedPredicateException(this, "precpred(_ctx, 13)"); { - setState(505); - match(T__59); + setState(509); + match(T__60); } - setState(506); + setState(510); expr(14); } break; @@ -4163,13 +4189,13 @@ public class KickCParser extends Parser { { _localctx = new ExprBinaryContext(new ExprContext(_parentctx, _parentState)); pushNewRecursionContext(_localctx, _startState, RULE_expr); - setState(507); + setState(511); if (!(precpred(_ctx, 12))) throw new FailedPredicateException(this, "precpred(_ctx, 12)"); { - setState(508); - match(T__60); + setState(512); + match(T__61); } - setState(509); + setState(513); expr(13); } break; @@ -4177,13 +4203,13 @@ public class KickCParser extends Parser { { _localctx = new ExprBinaryContext(new ExprContext(_parentctx, _parentState)); pushNewRecursionContext(_localctx, _startState, RULE_expr); - setState(510); + setState(514); if (!(precpred(_ctx, 11))) throw new FailedPredicateException(this, "precpred(_ctx, 11)"); { - setState(511); - match(T__61); + setState(515); + match(T__62); } - setState(512); + setState(516); expr(12); } break; @@ -4191,13 +4217,13 @@ public class KickCParser extends Parser { { _localctx = new ExprBinaryContext(new ExprContext(_parentctx, _parentState)); pushNewRecursionContext(_localctx, _startState, RULE_expr); - setState(513); + setState(517); if (!(precpred(_ctx, 10))) throw new FailedPredicateException(this, "precpred(_ctx, 10)"); { - setState(514); - match(T__62); + setState(518); + match(T__63); } - setState(515); + setState(519); expr(11); } break; @@ -4205,15 +4231,15 @@ public class KickCParser extends Parser { { _localctx = new ExprTernaryContext(new ExprContext(_parentctx, _parentState)); pushNewRecursionContext(_localctx, _startState, RULE_expr); - setState(516); - if (!(precpred(_ctx, 9))) throw new FailedPredicateException(this, "precpred(_ctx, 9)"); - setState(517); - match(T__63); - setState(518); - expr(0); - setState(519); - match(T__29); setState(520); + if (!(precpred(_ctx, 9))) throw new FailedPredicateException(this, "precpred(_ctx, 9)"); + setState(521); + match(T__64); + setState(522); + expr(0); + setState(523); + match(T__30); + setState(524); expr(10); } break; @@ -4221,11 +4247,11 @@ public class KickCParser extends Parser { { _localctx = new ExprAssignmentContext(new ExprContext(_parentctx, _parentState)); pushNewRecursionContext(_localctx, _startState, RULE_expr); - setState(522); + setState(526); if (!(precpred(_ctx, 8))) throw new FailedPredicateException(this, "precpred(_ctx, 8)"); - setState(523); + setState(527); match(T__4); - setState(524); + setState(528); expr(8); } break; @@ -4233,11 +4259,11 @@ public class KickCParser extends Parser { { _localctx = new ExprAssignmentCompoundContext(new ExprContext(_parentctx, _parentState)); pushNewRecursionContext(_localctx, _startState, RULE_expr); - setState(525); + setState(529); if (!(precpred(_ctx, 7))) throw new FailedPredicateException(this, "precpred(_ctx, 7)"); - setState(526); + setState(530); _la = _input.LA(1); - if ( !(((((_la - 65)) & ~0x3f) == 0 && ((1L << (_la - 65)) & ((1L << (T__64 - 65)) | (1L << (T__65 - 65)) | (1L << (T__66 - 65)) | (1L << (T__67 - 65)) | (1L << (T__68 - 65)) | (1L << (T__69 - 65)) | (1L << (T__70 - 65)) | (1L << (T__71 - 65)) | (1L << (T__72 - 65)) | (1L << (T__73 - 65)))) != 0)) ) { + if ( !(((((_la - 66)) & ~0x3f) == 0 && ((1L << (_la - 66)) & ((1L << (T__65 - 66)) | (1L << (T__66 - 66)) | (1L << (T__67 - 66)) | (1L << (T__68 - 66)) | (1L << (T__69 - 66)) | (1L << (T__70 - 66)) | (1L << (T__71 - 66)) | (1L << (T__72 - 66)) | (1L << (T__73 - 66)) | (1L << (T__74 - 66)))) != 0)) ) { _errHandler.recoverInline(this); } else { @@ -4245,7 +4271,7 @@ public class KickCParser extends Parser { _errHandler.reportMatch(this); consume(); } - setState(527); + setState(531); expr(7); } break; @@ -4253,11 +4279,11 @@ public class KickCParser extends Parser { { _localctx = new ExprDotContext(new ExprContext(_parentctx, _parentState)); pushNewRecursionContext(_localctx, _startState, RULE_expr); - setState(528); + setState(532); if (!(precpred(_ctx, 30))) throw new FailedPredicateException(this, "precpred(_ctx, 30)"); - setState(529); - match(T__38); - setState(530); + setState(533); + match(T__39); + setState(534); match(NAME); } break; @@ -4265,11 +4291,11 @@ public class KickCParser extends Parser { { _localctx = new ExprArrowContext(new ExprContext(_parentctx, _parentState)); pushNewRecursionContext(_localctx, _startState, RULE_expr); - setState(531); + setState(535); if (!(precpred(_ctx, 29))) throw new FailedPredicateException(this, "precpred(_ctx, 29)"); - setState(532); - match(T__39); - setState(533); + setState(536); + match(T__40); + setState(537); match(NAME); } break; @@ -4277,21 +4303,21 @@ public class KickCParser extends Parser { { _localctx = new ExprCallContext(new ExprContext(_parentctx, _parentState)); pushNewRecursionContext(_localctx, _startState, RULE_expr); - setState(534); + setState(538); if (!(precpred(_ctx, 28))) throw new FailedPredicateException(this, "precpred(_ctx, 28)"); - setState(535); + setState(539); match(T__5); - setState(537); + setState(541); _errHandler.sync(this); _la = _input.LA(1); - if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__5) | (1L << T__7) | (1L << T__33) | (1L << T__40) | (1L << T__41) | (1L << T__42) | (1L << T__43) | (1L << T__44) | (1L << T__45) | (1L << T__46) | (1L << T__47) | (1L << T__48) | (1L << T__53) | (1L << T__54))) != 0) || ((((_la - 85)) & ~0x3f) == 0 && ((1L << (_la - 85)) & ((1L << (STRING - 85)) | (1L << (CHAR - 85)) | (1L << (BOOLEAN - 85)) | (1L << (NUMBER - 85)) | (1L << (NAME - 85)))) != 0)) { + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__5) | (1L << T__7) | (1L << T__34) | (1L << T__41) | (1L << T__42) | (1L << T__43) | (1L << T__44) | (1L << T__45) | (1L << T__46) | (1L << T__47) | (1L << T__48) | (1L << T__49) | (1L << T__54) | (1L << T__55))) != 0) || ((((_la - 86)) & ~0x3f) == 0 && ((1L << (_la - 86)) & ((1L << (STRING - 86)) | (1L << (CHAR - 86)) | (1L << (BOOLEAN - 86)) | (1L << (NUMBER - 86)) | (1L << (NAME - 86)))) != 0)) { { - setState(536); + setState(540); parameterList(); } } - setState(539); + setState(543); match(T__6); } break; @@ -4299,25 +4325,25 @@ public class KickCParser extends Parser { { _localctx = new ExprArrayContext(new ExprContext(_parentctx, _parentState)); pushNewRecursionContext(_localctx, _startState, RULE_expr); - setState(540); + setState(544); if (!(precpred(_ctx, 25))) throw new FailedPredicateException(this, "precpred(_ctx, 25)"); - setState(541); - match(T__34); - setState(542); - commaExpr(0); - setState(543); + setState(545); match(T__35); + setState(546); + commaExpr(0); + setState(547); + match(T__36); } break; case 17: { _localctx = new ExprPostModContext(new ExprContext(_parentctx, _parentState)); pushNewRecursionContext(_localctx, _startState, RULE_expr); - setState(545); + setState(549); if (!(precpred(_ctx, 22))) throw new FailedPredicateException(this, "precpred(_ctx, 22)"); - setState(546); + setState(550); _la = _input.LA(1); - if ( !(_la==T__42 || _la==T__43) ) { + if ( !(_la==T__43 || _la==T__44) ) { _errHandler.recoverInline(this); } else { @@ -4330,7 +4356,7 @@ public class KickCParser extends Parser { } } } - setState(551); + setState(555); _errHandler.sync(this); _alt = getInterpreter().adaptivePredict(_input,48,_ctx); } @@ -4380,21 +4406,21 @@ public class KickCParser extends Parser { try { enterOuterAlt(_localctx, 1); { - setState(552); + setState(556); expr(0); - setState(557); + setState(561); _errHandler.sync(this); _la = _input.LA(1); while (_la==T__3) { { { - setState(553); + setState(557); match(T__3); - setState(554); + setState(558); expr(0); } } - setState(559); + setState(563); _errHandler.sync(this); _la = _input.LA(1); } @@ -4442,19 +4468,19 @@ public class KickCParser extends Parser { try { enterOuterAlt(_localctx, 1); { - setState(560); - match(T__74); - setState(562); + setState(564); + match(T__75); + setState(566); _errHandler.sync(this); _la = _input.LA(1); if (_la==T__5) { { - setState(561); + setState(565); asmDirectives(); } } - setState(564); + setState(568); match(KICKASM); } } @@ -4502,27 +4528,27 @@ public class KickCParser extends Parser { try { enterOuterAlt(_localctx, 1); { - setState(566); + setState(570); match(T__5); - setState(567); + setState(571); asmDirective(); - setState(572); + setState(576); _errHandler.sync(this); _la = _input.LA(1); while (_la==T__3) { { { - setState(568); + setState(572); match(T__3); - setState(569); + setState(573); asmDirective(); } } - setState(574); + setState(578); _errHandler.sync(this); _la = _input.LA(1); } - setState(575); + setState(579); match(T__6); } } @@ -4661,56 +4687,56 @@ public class KickCParser extends Parser { AsmDirectiveContext _localctx = new AsmDirectiveContext(_ctx, getState()); enterRule(_localctx, 68, RULE_asmDirective); try { - setState(592); + setState(596); _errHandler.sync(this); switch (_input.LA(1)) { - case T__75: + case T__76: _localctx = new AsmDirectiveResourceContext(_localctx); enterOuterAlt(_localctx, 1); { - setState(577); - match(T__75); - setState(578); - match(STRING); - } - break; - case T__76: - _localctx = new AsmDirectiveUsesContext(_localctx); - enterOuterAlt(_localctx, 2); - { - setState(579); - match(T__76); - setState(580); - match(NAME); - } - break; - case T__77: - _localctx = new AsmDirectiveClobberContext(_localctx); - enterOuterAlt(_localctx, 3); - { setState(581); - match(T__77); + match(T__76); setState(582); match(STRING); } break; - case T__78: - _localctx = new AsmDirectiveBytesContext(_localctx); - enterOuterAlt(_localctx, 4); + case T__77: + _localctx = new AsmDirectiveUsesContext(_localctx); + enterOuterAlt(_localctx, 2); { setState(583); - match(T__78); + match(T__77); setState(584); - expr(0); + match(NAME); + } + break; + case T__78: + _localctx = new AsmDirectiveClobberContext(_localctx); + enterOuterAlt(_localctx, 3); + { + setState(585); + match(T__78); + setState(586); + match(STRING); } break; case T__79: + _localctx = new AsmDirectiveBytesContext(_localctx); + enterOuterAlt(_localctx, 4); + { + setState(587); + match(T__79); + setState(588); + expr(0); + } + break; + case T__80: _localctx = new AsmDirectiveCyclesContext(_localctx); enterOuterAlt(_localctx, 5); { - setState(585); - match(T__79); - setState(586); + setState(589); + match(T__80); + setState(590); expr(0); } break; @@ -4718,21 +4744,20 @@ public class KickCParser extends Parser { _localctx = new AsmDirectiveAddressContext(_localctx); enterOuterAlt(_localctx, 6); { - setState(587); + setState(591); match(T__10); - setState(590); + setState(594); _errHandler.sync(this); switch (_input.LA(1)) { - case T__16: + case T__17: { - setState(588); - match(T__16); + setState(592); + match(T__17); } break; case T__5: case T__7: - case T__33: - case T__40: + case T__34: case T__41: case T__42: case T__43: @@ -4741,15 +4766,16 @@ public class KickCParser extends Parser { case T__46: case T__47: case T__48: - case T__53: + case T__49: case T__54: + case T__55: case STRING: case CHAR: case BOOLEAN: case NUMBER: case NAME: { - setState(589); + setState(593); expr(0); } break; @@ -4806,17 +4832,17 @@ public class KickCParser extends Parser { try { enterOuterAlt(_localctx, 1); { - setState(597); + setState(601); _errHandler.sync(this); _la = _input.LA(1); - while (((((_la - 47)) & ~0x3f) == 0 && ((1L << (_la - 47)) & ((1L << (T__46 - 47)) | (1L << (T__80 - 47)) | (1L << (MNEMONIC - 47)) | (1L << (NAME - 47)))) != 0)) { + while (((((_la - 48)) & ~0x3f) == 0 && ((1L << (_la - 48)) & ((1L << (T__47 - 48)) | (1L << (T__81 - 48)) | (1L << (MNEMONIC - 48)) | (1L << (NAME - 48)))) != 0)) { { { - setState(594); + setState(598); asmLine(); } } - setState(599); + setState(603); _errHandler.sync(this); _la = _input.LA(1); } @@ -4866,28 +4892,28 @@ public class KickCParser extends Parser { AsmLineContext _localctx = new AsmLineContext(_ctx, getState()); enterRule(_localctx, 72, RULE_asmLine); try { - setState(603); + setState(607); _errHandler.sync(this); switch (_input.LA(1)) { - case T__46: + case T__47: case NAME: enterOuterAlt(_localctx, 1); { - setState(600); + setState(604); asmLabel(); } break; case MNEMONIC: enterOuterAlt(_localctx, 2); { - setState(601); + setState(605); asmInstruction(); } break; - case T__80: + case T__81: enterOuterAlt(_localctx, 3); { - setState(602); + setState(606); asmBytes(); } break; @@ -4957,37 +4983,37 @@ public class KickCParser extends Parser { enterRule(_localctx, 74, RULE_asmLabel); int _la; try { - setState(612); + setState(616); _errHandler.sync(this); switch (_input.LA(1)) { case NAME: _localctx = new AsmLabelNameContext(_localctx); enterOuterAlt(_localctx, 1); { - setState(605); + setState(609); match(NAME); - setState(606); - match(T__29); + setState(610); + match(T__30); } break; - case T__46: + case T__47: _localctx = new AsmLabelMultiContext(_localctx); enterOuterAlt(_localctx, 2); { - setState(607); - match(T__46); - setState(609); + setState(611); + match(T__47); + setState(613); _errHandler.sync(this); _la = _input.LA(1); if (_la==NAME) { { - setState(608); + setState(612); match(NAME); } } - setState(611); - match(T__29); + setState(615); + match(T__30); } break; default: @@ -5035,14 +5061,14 @@ public class KickCParser extends Parser { try { enterOuterAlt(_localctx, 1); { - setState(614); + setState(618); match(MNEMONIC); - setState(616); + setState(620); _errHandler.sync(this); switch ( getInterpreter().adaptivePredict(_input,58,_ctx) ) { case 1: { - setState(615); + setState(619); asmParamMode(); } break; @@ -5093,23 +5119,23 @@ public class KickCParser extends Parser { try { enterOuterAlt(_localctx, 1); { - setState(618); - match(T__80); - setState(619); + setState(622); + match(T__81); + setState(623); asmExpr(0); - setState(624); + setState(628); _errHandler.sync(this); _la = _input.LA(1); while (_la==T__3) { { { - setState(620); + setState(624); match(T__3); - setState(621); + setState(625); asmExpr(0); } } - setState(626); + setState(630); _errHandler.sync(this); _la = _input.LA(1); } @@ -5259,14 +5285,14 @@ public class KickCParser extends Parser { AsmParamModeContext _localctx = new AsmParamModeContext(_ctx, getState()); enterRule(_localctx, 80, RULE_asmParamMode); try { - setState(650); + setState(654); _errHandler.sync(this); switch ( getInterpreter().adaptivePredict(_input,60,_ctx) ) { case 1: _localctx = new AsmModeAbsContext(_localctx); enterOuterAlt(_localctx, 1); { - setState(627); + setState(631); asmExpr(0); } break; @@ -5274,9 +5300,9 @@ public class KickCParser extends Parser { _localctx = new AsmModeImmContext(_localctx); enterOuterAlt(_localctx, 2); { - setState(628); + setState(632); match(T__9); - setState(629); + setState(633); asmExpr(0); } break; @@ -5284,11 +5310,11 @@ public class KickCParser extends Parser { _localctx = new AsmModeAbsXYContext(_localctx); enterOuterAlt(_localctx, 3); { - setState(630); + setState(634); asmExpr(0); - setState(631); + setState(635); match(T__3); - setState(632); + setState(636); match(NAME); } break; @@ -5296,15 +5322,15 @@ public class KickCParser extends Parser { _localctx = new AsmModeIndIdxXYContext(_localctx); enterOuterAlt(_localctx, 4); { - setState(634); - match(T__5); - setState(635); - asmExpr(0); - setState(636); - match(T__6); - setState(637); - match(T__3); setState(638); + match(T__5); + setState(639); + asmExpr(0); + setState(640); + match(T__6); + setState(641); + match(T__3); + setState(642); match(NAME); } break; @@ -5312,15 +5338,15 @@ public class KickCParser extends Parser { _localctx = new AsmModeIdxIndXYContext(_localctx); enterOuterAlt(_localctx, 5); { - setState(640); - match(T__5); - setState(641); - asmExpr(0); - setState(642); - match(T__3); - setState(643); - match(NAME); setState(644); + match(T__5); + setState(645); + asmExpr(0); + setState(646); + match(T__3); + setState(647); + match(NAME); + setState(648); match(T__6); } break; @@ -5328,11 +5354,11 @@ public class KickCParser extends Parser { _localctx = new AsmModeIndContext(_localctx); enterOuterAlt(_localctx, 6); { - setState(646); + setState(650); match(T__5); - setState(647); + setState(651); asmExpr(0); - setState(648); + setState(652); match(T__6); } break; @@ -5522,34 +5548,34 @@ public class KickCParser extends Parser { int _alt; enterOuterAlt(_localctx, 1); { - setState(666); + setState(670); _errHandler.sync(this); switch (_input.LA(1)) { - case T__34: + case T__35: { _localctx = new AsmExprParContext(_localctx); _ctx = _localctx; _prevctx = _localctx; - setState(653); - match(T__34); - setState(654); - asmExpr(0); - setState(655); + setState(657); match(T__35); + setState(658); + asmExpr(0); + setState(659); + match(T__36); } break; - case T__44: case T__45: - case T__53: + case T__46: case T__54: + case T__55: { _localctx = new AsmExprUnaryContext(_localctx); _ctx = _localctx; _prevctx = _localctx; - setState(657); + setState(661); _la = _input.LA(1); - if ( !((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__44) | (1L << T__45) | (1L << T__53) | (1L << T__54))) != 0)) ) { + if ( !((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__45) | (1L << T__46) | (1L << T__54) | (1L << T__55))) != 0)) ) { _errHandler.recoverInline(this); } else { @@ -5557,7 +5583,7 @@ public class KickCParser extends Parser { _errHandler.reportMatch(this); consume(); } - setState(658); + setState(662); asmExpr(8); } break; @@ -5566,7 +5592,7 @@ public class KickCParser extends Parser { _localctx = new AsmExprLabelContext(_localctx); _ctx = _localctx; _prevctx = _localctx; - setState(659); + setState(663); match(NAME); } break; @@ -5575,7 +5601,7 @@ public class KickCParser extends Parser { _localctx = new AsmExprLabelRelContext(_localctx); _ctx = _localctx; _prevctx = _localctx; - setState(660); + setState(664); match(ASMREL); } break; @@ -5584,11 +5610,11 @@ public class KickCParser extends Parser { _localctx = new AsmExprReplaceContext(_localctx); _ctx = _localctx; _prevctx = _localctx; - setState(661); + setState(665); match(T__7); - setState(662); + setState(666); match(NAME); - setState(663); + setState(667); match(T__8); } break; @@ -5597,7 +5623,7 @@ public class KickCParser extends Parser { _localctx = new AsmExprIntContext(_localctx); _ctx = _localctx; _prevctx = _localctx; - setState(664); + setState(668); match(NUMBER); } break; @@ -5606,7 +5632,7 @@ public class KickCParser extends Parser { _localctx = new AsmExprCharContext(_localctx); _ctx = _localctx; _prevctx = _localctx; - setState(665); + setState(669); match(CHAR); } break; @@ -5614,7 +5640,7 @@ public class KickCParser extends Parser { throw new NoViableAltException(this); } _ctx.stop = _input.LT(-1); - setState(682); + setState(686); _errHandler.sync(this); _alt = getInterpreter().adaptivePredict(_input,63,_ctx); while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { @@ -5622,20 +5648,20 @@ public class KickCParser extends Parser { if ( _parseListeners!=null ) triggerExitRuleEvent(); _prevctx = _localctx; { - setState(680); + setState(684); _errHandler.sync(this); switch ( getInterpreter().adaptivePredict(_input,62,_ctx) ) { case 1: { _localctx = new AsmExprBinaryContext(new AsmExprContext(_parentctx, _parentState)); pushNewRecursionContext(_localctx, _startState, RULE_asmExpr); - setState(668); + setState(672); if (!(precpred(_ctx, 10))) throw new FailedPredicateException(this, "precpred(_ctx, 10)"); { - setState(669); - match(T__38); + setState(673); + match(T__39); } - setState(670); + setState(674); asmExpr(11); } break; @@ -5643,11 +5669,11 @@ public class KickCParser extends Parser { { _localctx = new AsmExprBinaryContext(new AsmExprContext(_parentctx, _parentState)); pushNewRecursionContext(_localctx, _startState, RULE_asmExpr); - setState(671); + setState(675); if (!(precpred(_ctx, 9))) throw new FailedPredicateException(this, "precpred(_ctx, 9)"); - setState(672); + setState(676); _la = _input.LA(1); - if ( !(_la==T__49 || _la==T__50) ) { + if ( !(_la==T__50 || _la==T__51) ) { _errHandler.recoverInline(this); } else { @@ -5655,7 +5681,7 @@ public class KickCParser extends Parser { _errHandler.reportMatch(this); consume(); } - setState(673); + setState(677); asmExpr(10); } break; @@ -5663,11 +5689,11 @@ public class KickCParser extends Parser { { _localctx = new AsmExprBinaryContext(new AsmExprContext(_parentctx, _parentState)); pushNewRecursionContext(_localctx, _startState, RULE_asmExpr); - setState(674); + setState(678); if (!(precpred(_ctx, 7))) throw new FailedPredicateException(this, "precpred(_ctx, 7)"); - setState(675); + setState(679); _la = _input.LA(1); - if ( !(_la==T__33 || _la==T__51) ) { + if ( !(_la==T__34 || _la==T__52) ) { _errHandler.recoverInline(this); } else { @@ -5675,7 +5701,7 @@ public class KickCParser extends Parser { _errHandler.reportMatch(this); consume(); } - setState(676); + setState(680); asmExpr(8); } break; @@ -5683,11 +5709,11 @@ public class KickCParser extends Parser { { _localctx = new AsmExprBinaryContext(new AsmExprContext(_parentctx, _parentState)); pushNewRecursionContext(_localctx, _startState, RULE_asmExpr); - setState(677); + setState(681); if (!(precpred(_ctx, 6))) throw new FailedPredicateException(this, "precpred(_ctx, 6)"); - setState(678); + setState(682); _la = _input.LA(1); - if ( !(_la==T__44 || _la==T__45) ) { + if ( !(_la==T__45 || _la==T__46) ) { _errHandler.recoverInline(this); } else { @@ -5695,14 +5721,14 @@ public class KickCParser extends Parser { _errHandler.reportMatch(this); consume(); } - setState(679); + setState(683); asmExpr(7); } break; } } } - setState(684); + setState(688); _errHandler.sync(this); _alt = getInterpreter().adaptivePredict(_input,63,_ctx); } @@ -5822,7 +5848,7 @@ public class KickCParser extends Parser { } public static final String _serializedATN = - "\3\u608b\ua72a\u8133\ub9ed\u417c\u3be7\u7786\u5964\3g\u02b0\4\2\t\2\4"+ + "\3\u608b\ua72a\u8133\ub9ed\u417c\u3be7\u7786\u5964\3h\u02b4\4\2\t\2\4"+ "\3\t\3\4\4\t\4\4\5\t\5\4\6\t\6\4\7\t\7\4\b\t\b\4\t\t\t\4\n\t\n\4\13\t"+ "\13\4\f\t\f\4\r\t\r\4\16\t\16\4\17\t\17\4\20\t\20\4\21\t\21\4\22\t\22"+ "\4\23\t\23\4\24\t\24\4\25\t\25\4\26\t\26\4\27\t\27\4\30\t\30\4\31\t\31"+ @@ -5830,262 +5856,263 @@ public class KickCParser extends Parser { "\t!\4\"\t\"\4#\t#\4$\t$\4%\t%\4&\t&\4\'\t\'\4(\t(\4)\t)\4*\t*\4+\t+\3"+ "\2\3\2\3\2\3\2\3\3\3\3\3\3\3\4\7\4_\n\4\f\4\16\4b\13\4\3\5\3\5\3\5\3\6"+ "\6\6h\n\6\r\6\16\6i\3\7\3\7\3\7\3\7\3\7\3\7\3\7\3\7\3\7\3\7\3\7\3\7\3"+ - "\7\3\7\3\7\3\7\5\7|\n\7\3\b\3\b\3\b\3\t\7\t\u0082\n\t\f\t\16\t\u0085\13"+ - "\t\3\t\3\t\7\t\u0089\n\t\f\t\16\t\u008c\13\t\3\n\3\n\3\n\3\13\3\13\3\13"+ - "\3\13\3\13\3\13\7\13\u0097\n\13\f\13\16\13\u009a\13\13\3\f\3\f\3\f\5\f"+ - "\u009f\n\f\3\f\3\f\3\f\5\f\u00a4\n\f\3\r\3\r\3\r\3\r\5\r\u00aa\n\r\3\r"+ - "\3\r\3\r\5\r\u00af\n\r\3\r\3\r\3\16\3\16\3\16\7\16\u00b6\n\16\f\16\16"+ - "\16\u00b9\13\16\3\17\3\17\3\17\3\17\5\17\u00bf\n\17\3\20\3\20\3\20\3\20"+ - "\3\20\3\20\3\20\3\20\3\20\3\20\3\20\3\20\5\20\u00cd\n\20\3\21\3\21\3\21"+ - "\3\21\3\21\3\21\3\21\3\21\3\21\3\21\3\21\3\21\3\21\3\21\3\21\3\21\5\21"+ - "\u00df\n\21\3\21\5\21\u00e2\n\21\3\22\3\22\3\22\3\22\3\22\7\22\u00e9\n"+ - "\22\f\22\16\22\u00ec\13\22\3\22\3\22\3\23\6\23\u00f1\n\23\r\23\16\23\u00f2"+ - "\3\24\3\24\3\24\3\24\3\24\5\24\u00fa\n\24\3\24\3\24\3\24\3\24\3\24\3\24"+ - "\3\24\3\24\3\24\3\24\3\24\5\24\u0107\n\24\3\24\7\24\u010a\n\24\f\24\16"+ - "\24\u010d\13\24\3\24\3\24\3\24\3\24\3\24\3\24\3\24\7\24\u0116\n\24\f\24"+ - "\16\24\u0119\13\24\3\24\3\24\3\24\3\24\3\24\3\24\3\24\3\24\3\24\7\24\u0124"+ - "\n\24\f\24\16\24\u0127\13\24\3\24\3\24\3\24\3\24\3\24\3\24\3\24\3\24\5"+ - "\24\u0131\n\24\3\24\3\24\3\24\3\24\3\24\3\24\3\24\5\24\u013a\n\24\3\24"+ - "\3\24\3\24\3\24\3\24\5\24\u0141\n\24\3\25\3\25\3\25\3\25\3\25\5\25\u0148"+ - "\n\25\3\25\5\25\u014b\n\25\3\25\3\25\3\25\3\25\3\25\3\25\5\25\u0153\n"+ - "\25\3\26\5\26\u0156\n\26\3\26\5\26\u0159\n\26\3\27\3\27\3\27\3\27\3\27"+ - "\3\27\3\27\3\27\5\27\u0163\n\27\3\27\3\27\3\27\3\27\3\27\5\27\u016a\n"+ - "\27\3\27\3\27\3\27\3\27\3\27\5\27\u0171\n\27\3\27\3\27\3\27\3\27\7\27"+ - "\u0177\n\27\f\27\16\27\u017a\13\27\3\30\3\30\3\30\3\31\3\31\5\31\u0181"+ - "\n\31\3\31\3\31\6\31\u0185\n\31\r\31\16\31\u0186\3\31\3\31\3\32\3\32\3"+ - "\32\3\33\3\33\3\33\3\34\3\34\5\34\u0193\n\34\3\34\3\34\3\34\3\34\3\35"+ - "\3\35\3\35\3\35\3\35\3\35\7\35\u019f\n\35\f\35\16\35\u01a2\13\35\3\36"+ - "\3\36\3\36\5\36\u01a7\n\36\3\37\3\37\3\37\3\37\3\37\3\37\7\37\u01af\n"+ - "\37\f\37\16\37\u01b2\13\37\3 \3 \3 \3 \3 \3 \3 \3 \3 \5 \u01bd\n \3 \3"+ - " \3 \3 \3 \3 \5 \u01c5\n \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3"+ - " \3 \3 \3 \3 \7 \u01da\n \f \16 \u01dd\13 \3 \3 \3 \3 \3 \6 \u01e4\n "+ - "\r \16 \u01e5\3 \3 \5 \u01ea\n \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3"+ - " \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3"+ - " \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \5 \u021c\n \3 \3 \3 \3 \3 \3 \3"+ - " \3 \7 \u0226\n \f \16 \u0229\13 \3!\3!\3!\7!\u022e\n!\f!\16!\u0231\13"+ - "!\3\"\3\"\5\"\u0235\n\"\3\"\3\"\3#\3#\3#\3#\7#\u023d\n#\f#\16#\u0240\13"+ - "#\3#\3#\3$\3$\3$\3$\3$\3$\3$\3$\3$\3$\3$\3$\3$\5$\u0251\n$\5$\u0253\n"+ - "$\3%\7%\u0256\n%\f%\16%\u0259\13%\3&\3&\3&\5&\u025e\n&\3\'\3\'\3\'\3\'"+ - "\5\'\u0264\n\'\3\'\5\'\u0267\n\'\3(\3(\5(\u026b\n(\3)\3)\3)\3)\7)\u0271"+ - "\n)\f)\16)\u0274\13)\3*\3*\3*\3*\3*\3*\3*\3*\3*\3*\3*\3*\3*\3*\3*\3*\3"+ - "*\3*\3*\3*\3*\3*\3*\5*\u028d\n*\3+\3+\3+\3+\3+\3+\3+\3+\3+\3+\3+\3+\3"+ - "+\3+\5+\u029d\n+\3+\3+\3+\3+\3+\3+\3+\3+\3+\3+\3+\3+\7+\u02ab\n+\f+\16"+ - "+\u02ae\13+\3+\2\b\24,8<>T,\2\4\6\b\n\f\16\20\22\24\26\30\32\34\36 \""+ - "$&(*,.\60\62\64\668:<>@BDFHJLNPRT\2\r\3\2\"#\3\2-.\3\2/\63\3\289\3\2\64"+ - "\65\4\2$$\66\67\3\2/\60\3\28=\3\2CL\4\2/\6089\4\2$$\66\66\2\u030e\2V\3"+ - "\2\2\2\4Z\3\2\2\2\6`\3\2\2\2\bc\3\2\2\2\ng\3\2\2\2\f{\3\2\2\2\16}\3\2"+ - "\2\2\20\u0083\3\2\2\2\22\u008d\3\2\2\2\24\u0090\3\2\2\2\26\u00a3\3\2\2"+ - "\2\30\u00a5\3\2\2\2\32\u00b2\3\2\2\2\34\u00be\3\2\2\2\36\u00cc\3\2\2\2"+ - " \u00e1\3\2\2\2\"\u00e3\3\2\2\2$\u00f0\3\2\2\2&\u0140\3\2\2\2(\u0152\3"+ - "\2\2\2*\u0158\3\2\2\2,\u0169\3\2\2\2.\u017b\3\2\2\2\60\u017e\3\2\2\2\62"+ - "\u018a\3\2\2\2\64\u018d\3\2\2\2\66\u0190\3\2\2\28\u0198\3\2\2\2:\u01a3"+ - "\3\2\2\2<\u01a8\3\2\2\2>\u01e9\3\2\2\2@\u022a\3\2\2\2B\u0232\3\2\2\2D"+ - "\u0238\3\2\2\2F\u0252\3\2\2\2H\u0257\3\2\2\2J\u025d\3\2\2\2L\u0266\3\2"+ - "\2\2N\u0268\3\2\2\2P\u026c\3\2\2\2R\u028c\3\2\2\2T\u029c\3\2\2\2VW\5\6"+ - "\4\2WX\5\n\6\2XY\7\2\2\3Y\3\3\2\2\2Z[\5H%\2[\\\7\2\2\3\\\5\3\2\2\2]_\5"+ - "\b\5\2^]\3\2\2\2_b\3\2\2\2`^\3\2\2\2`a\3\2\2\2a\7\3\2\2\2b`\3\2\2\2cd"+ - "\7\3\2\2de\7W\2\2e\t\3\2\2\2fh\5\f\7\2gf\3\2\2\2hi\3\2\2\2ig\3\2\2\2i"+ - "j\3\2\2\2j\13\3\2\2\2kl\5\22\n\2lm\7\4\2\2m|\3\2\2\2no\5\60\31\2op\7\4"+ - "\2\2p|\3\2\2\2qr\5\66\34\2rs\7\4\2\2s|\3\2\2\2t|\5\30\r\2u|\5\30\r\2v"+ - "|\5B\"\2w|\5\36\20\2xy\5\16\b\2yz\7\4\2\2z|\3\2\2\2{k\3\2\2\2{n\3\2\2"+ - "\2{q\3\2\2\2{t\3\2\2\2{u\3\2\2\2{v\3\2\2\2{w\3\2\2\2{x\3\2\2\2|\r\3\2"+ - "\2\2}~\7\5\2\2~\177\5\22\n\2\177\17\3\2\2\2\u0080\u0082\5 \21\2\u0081"+ - "\u0080\3\2\2\2\u0082\u0085\3\2\2\2\u0083\u0081\3\2\2\2\u0083\u0084\3\2"+ - "\2\2\u0084\u0086\3\2\2\2\u0085\u0083\3\2\2\2\u0086\u008a\5,\27\2\u0087"+ - "\u0089\5 \21\2\u0088\u0087\3\2\2\2\u0089\u008c\3\2\2\2\u008a\u0088\3\2"+ - "\2\2\u008a\u008b\3\2\2\2\u008b\21\3\2\2\2\u008c\u008a\3\2\2\2\u008d\u008e"+ - "\5\20\t\2\u008e\u008f\5\24\13\2\u008f\23\3\2\2\2\u0090\u0091\b\13\1\2"+ - "\u0091\u0092\5\26\f\2\u0092\u0098\3\2\2\2\u0093\u0094\f\3\2\2\u0094\u0095"+ - "\7\6\2\2\u0095\u0097\5\26\f\2\u0096\u0093\3\2\2\2\u0097\u009a\3\2\2\2"+ - "\u0098\u0096\3\2\2\2\u0098\u0099\3\2\2\2\u0099\25\3\2\2\2\u009a\u0098"+ - "\3\2\2\2\u009b\u009e\7c\2\2\u009c\u009d\7\7\2\2\u009d\u009f\5> \2\u009e"+ - "\u009c\3\2\2\2\u009e\u009f\3\2\2\2\u009f\u00a4\3\2\2\2\u00a0\u00a1\7c"+ - "\2\2\u00a1\u00a2\7\7\2\2\u00a2\u00a4\5B\"\2\u00a3\u009b\3\2\2\2\u00a3"+ - "\u00a0\3\2\2\2\u00a4\27\3\2\2\2\u00a5\u00a6\5\20\t\2\u00a6\u00a7\7c\2"+ - "\2\u00a7\u00a9\7\b\2\2\u00a8\u00aa\5\32\16\2\u00a9\u00a8\3\2\2\2\u00a9"+ - "\u00aa\3\2\2\2\u00aa\u00ab\3\2\2\2\u00ab\u00ac\7\t\2\2\u00ac\u00ae\7\n"+ - "\2\2\u00ad\u00af\5$\23\2\u00ae\u00ad\3\2\2\2\u00ae\u00af\3\2\2\2\u00af"+ - "\u00b0\3\2\2\2\u00b0\u00b1\7\13\2\2\u00b1\31\3\2\2\2\u00b2\u00b7\5\34"+ - "\17\2\u00b3\u00b4\7\6\2\2\u00b4\u00b6\5\34\17\2\u00b5\u00b3\3\2\2\2\u00b6"+ - "\u00b9\3\2\2\2\u00b7\u00b5\3\2\2\2\u00b7\u00b8\3\2\2\2\u00b8\33\3\2\2"+ - "\2\u00b9\u00b7\3\2\2\2\u00ba\u00bb\5\20\t\2\u00bb\u00bc\7c\2\2\u00bc\u00bf"+ - "\3\2\2\2\u00bd\u00bf\7V\2\2\u00be\u00ba\3\2\2\2\u00be\u00bd\3\2\2\2\u00bf"+ - "\35\3\2\2\2\u00c0\u00c1\7\f\2\2\u00c1\u00cd\5\"\22\2\u00c2\u00c3\7\f\2"+ - "\2\u00c3\u00c4\7\r\2\2\u00c4\u00c5\7\b\2\2\u00c5\u00c6\7Z\2\2\u00c6\u00cd"+ - "\7\t\2\2\u00c7\u00c8\7\f\2\2\u00c8\u00c9\7\16\2\2\u00c9\u00ca\7\b\2\2"+ - "\u00ca\u00cb\7c\2\2\u00cb\u00cd\7\t\2\2\u00cc\u00c0\3\2\2\2\u00cc\u00c2"+ - "\3\2\2\2\u00cc\u00c7\3\2\2\2\u00cd\37\3\2\2\2\u00ce\u00e2\7\17\2\2\u00cf"+ - "\u00e2\7\20\2\2\u00d0\u00d1\7\21\2\2\u00d1\u00d2\7\b\2\2\u00d2\u00d3\7"+ - "Z\2\2\u00d3\u00e2\7\t\2\2\u00d4\u00d5\7\22\2\2\u00d5\u00d6\7\b\2\2\u00d6"+ - "\u00d7\7c\2\2\u00d7\u00e2\7\t\2\2\u00d8\u00e2\7\23\2\2\u00d9\u00e2\7\24"+ - "\2\2\u00da\u00de\7\25\2\2\u00db\u00dc\7\b\2\2\u00dc\u00dd\7c\2\2\u00dd"+ - "\u00df\7\t\2\2\u00de\u00db\3\2\2\2\u00de\u00df\3\2\2\2\u00df\u00e2\3\2"+ - "\2\2\u00e0\u00e2\5\"\22\2\u00e1\u00ce\3\2\2\2\u00e1\u00cf\3\2\2\2\u00e1"+ - "\u00d0\3\2\2\2\u00e1\u00d4\3\2\2\2\u00e1\u00d8\3\2\2\2\u00e1\u00d9\3\2"+ - "\2\2\u00e1\u00da\3\2\2\2\u00e1\u00e0\3\2\2\2\u00e2!\3\2\2\2\u00e3\u00e4"+ - "\7\26\2\2\u00e4\u00e5\7\b\2\2\u00e5\u00ea\7Z\2\2\u00e6\u00e7\7\6\2\2\u00e7"+ - "\u00e9\7Z\2\2\u00e8\u00e6\3\2\2\2\u00e9\u00ec\3\2\2\2\u00ea\u00e8\3\2"+ - "\2\2\u00ea\u00eb\3\2\2\2\u00eb\u00ed\3\2\2\2\u00ec\u00ea\3\2\2\2\u00ed"+ - "\u00ee\7\t\2\2\u00ee#\3\2\2\2\u00ef\u00f1\5&\24\2\u00f0\u00ef\3\2\2\2"+ - "\u00f1\u00f2\3\2\2\2\u00f2\u00f0\3\2\2\2\u00f2\u00f3\3\2\2\2\u00f3%\3"+ - "\2\2\2\u00f4\u00f5\5\22\n\2\u00f5\u00f6\7\4\2\2\u00f6\u0141\3\2\2\2\u00f7"+ - "\u00f9\7\n\2\2\u00f8\u00fa\5$\23\2\u00f9\u00f8\3\2\2\2\u00f9\u00fa\3\2"+ - "\2\2\u00fa\u00fb\3\2\2\2\u00fb\u0141\7\13\2\2\u00fc\u00fd\5<\37\2\u00fd"+ - "\u00fe\7\4\2\2\u00fe\u0141\3\2\2\2\u00ff\u0100\7\27\2\2\u0100\u0101\7"+ - "\b\2\2\u0101\u0102\5<\37\2\u0102\u0103\7\t\2\2\u0103\u0106\5&\24\2\u0104"+ - "\u0105\7\30\2\2\u0105\u0107\5&\24\2\u0106\u0104\3\2\2\2\u0106\u0107\3"+ - "\2\2\2\u0107\u0141\3\2\2\2\u0108\u010a\5 \21\2\u0109\u0108\3\2\2\2\u010a"+ - "\u010d\3\2\2\2\u010b\u0109\3\2\2\2\u010b\u010c\3\2\2\2\u010c\u010e\3\2"+ - "\2\2\u010d\u010b\3\2\2\2\u010e\u010f\7\31\2\2\u010f\u0110\7\b\2\2\u0110"+ - "\u0111\5<\37\2\u0111\u0112\7\t\2\2\u0112\u0113\5&\24\2\u0113\u0141\3\2"+ - "\2\2\u0114\u0116\5 \21\2\u0115\u0114\3\2\2\2\u0116\u0119\3\2\2\2\u0117"+ - "\u0115\3\2\2\2\u0117\u0118\3\2\2\2\u0118\u011a\3\2\2\2\u0119\u0117\3\2"+ - "\2\2\u011a\u011b\7\32\2\2\u011b\u011c\5&\24\2\u011c\u011d\7\31\2\2\u011d"+ - "\u011e\7\b\2\2\u011e\u011f\5<\37\2\u011f\u0120\7\t\2\2\u0120\u0121\7\4"+ - "\2\2\u0121\u0141\3\2\2\2\u0122\u0124\5 \21\2\u0123\u0122\3\2\2\2\u0124"+ - "\u0127\3\2\2\2\u0125\u0123\3\2\2\2\u0125\u0126\3\2\2\2\u0126\u0128\3\2"+ - "\2\2\u0127\u0125\3\2\2\2\u0128\u0129\7\33\2\2\u0129\u012a\7\b\2\2\u012a"+ - "\u012b\5(\25\2\u012b\u012c\7\t\2\2\u012c\u012d\5&\24\2\u012d\u0141\3\2"+ - "\2\2\u012e\u0130\7\34\2\2\u012f\u0131\5<\37\2\u0130\u012f\3\2\2\2\u0130"+ - "\u0131\3\2\2\2\u0131\u0132\3\2\2\2\u0132\u0141\7\4\2\2\u0133\u0134\7\35"+ - "\2\2\u0134\u0141\7\4\2\2\u0135\u0136\7\36\2\2\u0136\u0141\7\4\2\2\u0137"+ - "\u0139\7\37\2\2\u0138\u013a\5D#\2\u0139\u0138\3\2\2\2\u0139\u013a\3\2"+ - "\2\2\u013a\u013b\3\2\2\2\u013b\u013c\7\n\2\2\u013c\u013d\5H%\2\u013d\u013e"+ - "\7\13\2\2\u013e\u0141\3\2\2\2\u013f\u0141\5B\"\2\u0140\u00f4\3\2\2\2\u0140"+ - "\u00f7\3\2\2\2\u0140\u00fc\3\2\2\2\u0140\u00ff\3\2\2\2\u0140\u010b\3\2"+ - "\2\2\u0140\u0117\3\2\2\2\u0140\u0125\3\2\2\2\u0140\u012e\3\2\2\2\u0140"+ - "\u0133\3\2\2\2\u0140\u0135\3\2\2\2\u0140\u0137\3\2\2\2\u0140\u013f\3\2"+ - "\2\2\u0141\'\3\2\2\2\u0142\u0143\5*\26\2\u0143\u0144\7\4\2\2\u0144\u0145"+ - "\5<\37\2\u0145\u0147\7\4\2\2\u0146\u0148\5<\37\2\u0147\u0146\3\2\2\2\u0147"+ - "\u0148\3\2\2\2\u0148\u0153\3\2\2\2\u0149\u014b\5\20\t\2\u014a\u0149\3"+ - "\2\2\2\u014a\u014b\3\2\2\2\u014b\u014c\3\2\2\2\u014c\u014d\7c\2\2\u014d"+ - "\u014e\7 \2\2\u014e\u014f\5> \2\u014f\u0150\7!\2\2\u0150\u0151\5> \2\u0151"+ - "\u0153\3\2\2\2\u0152\u0142\3\2\2\2\u0152\u014a\3\2\2\2\u0153)\3\2\2\2"+ - "\u0154\u0156\5\22\n\2\u0155\u0154\3\2\2\2\u0155\u0156\3\2\2\2\u0156\u0159"+ - "\3\2\2\2\u0157\u0159\5<\37\2\u0158\u0155\3\2\2\2\u0158\u0157\3\2\2\2\u0159"+ - "+\3\2\2\2\u015a\u015b\b\27\1\2\u015b\u015c\7\b\2\2\u015c\u015d\5,\27\2"+ - "\u015d\u015e\7\t\2\2\u015e\u016a\3\2\2\2\u015f\u016a\7V\2\2\u0160\u0162"+ - "\t\2\2\2\u0161\u0163\7V\2\2\u0162\u0161\3\2\2\2\u0162\u0163\3\2\2\2\u0163"+ - "\u016a\3\2\2\2\u0164\u016a\5\60\31\2\u0165\u016a\5.\30\2\u0166\u016a\5"+ - "\66\34\2\u0167\u016a\5\64\33\2\u0168\u016a\7c\2\2\u0169\u015a\3\2\2\2"+ - "\u0169\u015f\3\2\2\2\u0169\u0160\3\2\2\2\u0169\u0164\3\2\2\2\u0169\u0165"+ - "\3\2\2\2\u0169\u0166\3\2\2\2\u0169\u0167\3\2\2\2\u0169\u0168\3\2\2\2\u016a"+ - "\u0178\3\2\2\2\u016b\u016c\f\n\2\2\u016c\u0177\7$\2\2\u016d\u016e\f\t"+ - "\2\2\u016e\u0170\7%\2\2\u016f\u0171\5> \2\u0170\u016f\3\2\2\2\u0170\u0171"+ - "\3\2\2\2\u0171\u0172\3\2\2\2\u0172\u0177\7&\2\2\u0173\u0174\f\b\2\2\u0174"+ - "\u0175\7\b\2\2\u0175\u0177\7\t\2\2\u0176\u016b\3\2\2\2\u0176\u016d\3\2"+ - "\2\2\u0176\u0173\3\2\2\2\u0177\u017a\3\2\2\2\u0178\u0176\3\2\2\2\u0178"+ - "\u0179\3\2\2\2\u0179-\3\2\2\2\u017a\u0178\3\2\2\2\u017b\u017c\7\'\2\2"+ - "\u017c\u017d\7c\2\2\u017d/\3\2\2\2\u017e\u0180\7\'\2\2\u017f\u0181\7c"+ - "\2\2\u0180\u017f\3\2\2\2\u0180\u0181\3\2\2\2\u0181\u0182\3\2\2\2\u0182"+ - "\u0184\7\n\2\2\u0183\u0185\5\62\32\2\u0184\u0183\3\2\2\2\u0185\u0186\3"+ - "\2\2\2\u0186\u0184\3\2\2\2\u0186\u0187\3\2\2\2\u0187\u0188\3\2\2\2\u0188"+ - "\u0189\7\13\2\2\u0189\61\3\2\2\2\u018a\u018b\5\22\n\2\u018b\u018c\7\4"+ - "\2\2\u018c\63\3\2\2\2\u018d\u018e\7(\2\2\u018e\u018f\7c\2\2\u018f\65\3"+ - "\2\2\2\u0190\u0192\7(\2\2\u0191\u0193\7c\2\2\u0192\u0191\3\2\2\2\u0192"+ - "\u0193\3\2\2\2\u0193\u0194\3\2\2\2\u0194\u0195\7\n\2\2\u0195\u0196\58"+ - "\35\2\u0196\u0197\7\13\2\2\u0197\67\3\2\2\2\u0198\u0199\b\35\1\2\u0199"+ - "\u019a\5:\36\2\u019a\u01a0\3\2\2\2\u019b\u019c\f\3\2\2\u019c\u019d\7\6"+ - "\2\2\u019d\u019f\5:\36\2\u019e\u019b\3\2\2\2\u019f\u01a2\3\2\2\2\u01a0"+ - "\u019e\3\2\2\2\u01a0\u01a1\3\2\2\2\u01a19\3\2\2\2\u01a2\u01a0\3\2\2\2"+ - "\u01a3\u01a6\7c\2\2\u01a4\u01a5\7\7\2\2\u01a5\u01a7\5> \2\u01a6\u01a4"+ - "\3\2\2\2\u01a6\u01a7\3\2\2\2\u01a7;\3\2\2\2\u01a8\u01a9\b\37\1\2\u01a9"+ - "\u01aa\5> \2\u01aa\u01b0\3\2\2\2\u01ab\u01ac\f\3\2\2\u01ac\u01ad\7\6\2"+ - "\2\u01ad\u01af\5> \2\u01ae\u01ab\3\2\2\2\u01af\u01b2\3\2\2\2\u01b0\u01ae"+ - "\3\2\2\2\u01b0\u01b1\3\2\2\2\u01b1=\3\2\2\2\u01b2\u01b0\3\2\2\2\u01b3"+ - "\u01b4\b \1\2\u01b4\u01b5\7\b\2\2\u01b5\u01b6\5<\37\2\u01b6\u01b7\7\t"+ - "\2\2\u01b7\u01ea\3\2\2\2\u01b8\u01b9\7+\2\2\u01b9\u01bc\7\b\2\2\u01ba"+ - "\u01bd\5> \2\u01bb\u01bd\5,\27\2\u01bc\u01ba\3\2\2\2\u01bc\u01bb\3\2\2"+ - "\2\u01bd\u01be\3\2\2\2\u01be\u01bf\7\t\2\2\u01bf\u01ea\3\2\2\2\u01c0\u01c1"+ - "\7,\2\2\u01c1\u01c4\7\b\2\2\u01c2\u01c5\5> \2\u01c3\u01c5\5,\27\2\u01c4"+ - "\u01c2\3\2\2\2\u01c4\u01c3\3\2\2\2\u01c5\u01c6\3\2\2\2\u01c6\u01c7\7\t"+ - "\2\2\u01c7\u01ea\3\2\2\2\u01c8\u01c9\7\b\2\2\u01c9\u01ca\5,\27\2\u01ca"+ - "\u01cb\7\t\2\2\u01cb\u01cc\5> \32\u01cc\u01ea\3\2\2\2\u01cd\u01ce\t\3"+ - "\2\2\u01ce\u01ea\5> \31\u01cf\u01d0\7$\2\2\u01d0\u01ea\5> \27\u01d1\u01d2"+ - "\t\4\2\2\u01d2\u01ea\5> \26\u01d3\u01d4\t\5\2\2\u01d4\u01ea\5> \22\u01d5"+ - "\u01d6\7\n\2\2\u01d6\u01db\5> \2\u01d7\u01d8\7\6\2\2\u01d8\u01da\5> \2"+ - "\u01d9\u01d7\3\2\2\2\u01da\u01dd\3\2\2\2\u01db\u01d9\3\2\2\2\u01db\u01dc"+ - "\3\2\2\2\u01dc\u01de\3\2\2\2\u01dd\u01db\3\2\2\2\u01de\u01df\7\13\2\2"+ - "\u01df\u01ea\3\2\2\2\u01e0\u01ea\7c\2\2\u01e1\u01ea\7Z\2\2\u01e2\u01e4"+ - "\7W\2\2\u01e3\u01e2\3\2\2\2\u01e4\u01e5\3\2\2\2\u01e5\u01e3\3\2\2\2\u01e5"+ - "\u01e6\3\2\2\2\u01e6\u01ea\3\2\2\2\u01e7\u01ea\7X\2\2\u01e8\u01ea\7Y\2"+ - "\2\u01e9\u01b3\3\2\2\2\u01e9\u01b8\3\2\2\2\u01e9\u01c0\3\2\2\2\u01e9\u01c8"+ - "\3\2\2\2\u01e9\u01cd\3\2\2\2\u01e9\u01cf\3\2\2\2\u01e9\u01d1\3\2\2\2\u01e9"+ - "\u01d3\3\2\2\2\u01e9\u01d5\3\2\2\2\u01e9\u01e0\3\2\2\2\u01e9\u01e1\3\2"+ - "\2\2\u01e9\u01e3\3\2\2\2\u01e9\u01e7\3\2\2\2\u01e9\u01e8\3\2\2\2\u01ea"+ - "\u0227\3\2\2\2\u01eb\u01ec\f\25\2\2\u01ec\u01ed\t\6\2\2\u01ed\u0226\5"+ - "> \26\u01ee\u01ef\f\24\2\2\u01ef\u01f0\t\7\2\2\u01f0\u0226\5> \25\u01f1"+ - "\u01f2\f\23\2\2\u01f2\u01f3\t\b\2\2\u01f3\u0226\5> \24\u01f4\u01f5\f\21"+ - "\2\2\u01f5\u01f6\t\t\2\2\u01f6\u0226\5> \22\u01f7\u01f8\f\20\2\2\u01f8"+ - "\u01f9\7\62\2\2\u01f9\u0226\5> \21\u01fa\u01fb\f\17\2\2\u01fb\u01fc\7"+ - ">\2\2\u01fc\u0226\5> \20\u01fd\u01fe\f\16\2\2\u01fe\u01ff\7?\2\2\u01ff"+ - "\u0226\5> \17\u0200\u0201\f\r\2\2\u0201\u0202\7@\2\2\u0202\u0226\5> \16"+ - "\u0203\u0204\f\f\2\2\u0204\u0205\7A\2\2\u0205\u0226\5> \r\u0206\u0207"+ - "\f\13\2\2\u0207\u0208\7B\2\2\u0208\u0209\5> \2\u0209\u020a\7 \2\2\u020a"+ - "\u020b\5> \f\u020b\u0226\3\2\2\2\u020c\u020d\f\n\2\2\u020d\u020e\7\7\2"+ - "\2\u020e\u0226\5> \n\u020f\u0210\f\t\2\2\u0210\u0211\t\n\2\2\u0211\u0226"+ - "\5> \t\u0212\u0213\f \2\2\u0213\u0214\7)\2\2\u0214\u0226\7c\2\2\u0215"+ - "\u0216\f\37\2\2\u0216\u0217\7*\2\2\u0217\u0226\7c\2\2\u0218\u0219\f\36"+ - "\2\2\u0219\u021b\7\b\2\2\u021a\u021c\5@!\2\u021b\u021a\3\2\2\2\u021b\u021c"+ - "\3\2\2\2\u021c\u021d\3\2\2\2\u021d\u0226\7\t\2\2\u021e\u021f\f\33\2\2"+ - "\u021f\u0220\7%\2\2\u0220\u0221\5<\37\2\u0221\u0222\7&\2\2\u0222\u0226"+ - "\3\2\2\2\u0223\u0224\f\30\2\2\u0224\u0226\t\3\2\2\u0225\u01eb\3\2\2\2"+ - "\u0225\u01ee\3\2\2\2\u0225\u01f1\3\2\2\2\u0225\u01f4\3\2\2\2\u0225\u01f7"+ - "\3\2\2\2\u0225\u01fa\3\2\2\2\u0225\u01fd\3\2\2\2\u0225\u0200\3\2\2\2\u0225"+ - "\u0203\3\2\2\2\u0225\u0206\3\2\2\2\u0225\u020c\3\2\2\2\u0225\u020f\3\2"+ - "\2\2\u0225\u0212\3\2\2\2\u0225\u0215\3\2\2\2\u0225\u0218\3\2\2\2\u0225"+ - "\u021e\3\2\2\2\u0225\u0223\3\2\2\2\u0226\u0229\3\2\2\2\u0227\u0225\3\2"+ - "\2\2\u0227\u0228\3\2\2\2\u0228?\3\2\2\2\u0229\u0227\3\2\2\2\u022a\u022f"+ - "\5> \2\u022b\u022c\7\6\2\2\u022c\u022e\5> \2\u022d\u022b\3\2\2\2\u022e"+ - "\u0231\3\2\2\2\u022f\u022d\3\2\2\2\u022f\u0230\3\2\2\2\u0230A\3\2\2\2"+ - "\u0231\u022f\3\2\2\2\u0232\u0234\7M\2\2\u0233\u0235\5D#\2\u0234\u0233"+ - "\3\2\2\2\u0234\u0235\3\2\2\2\u0235\u0236\3\2\2\2\u0236\u0237\7U\2\2\u0237"+ - "C\3\2\2\2\u0238\u0239\7\b\2\2\u0239\u023e\5F$\2\u023a\u023b\7\6\2\2\u023b"+ - "\u023d\5F$\2\u023c\u023a\3\2\2\2\u023d\u0240\3\2\2\2\u023e\u023c\3\2\2"+ - "\2\u023e\u023f\3\2\2\2\u023f\u0241\3\2\2\2\u0240\u023e\3\2\2\2\u0241\u0242"+ - "\7\t\2\2\u0242E\3\2\2\2\u0243\u0244\7N\2\2\u0244\u0253\7W\2\2\u0245\u0246"+ - "\7O\2\2\u0246\u0253\7c\2\2\u0247\u0248\7P\2\2\u0248\u0253\7W\2\2\u0249"+ - "\u024a\7Q\2\2\u024a\u0253\5> \2\u024b\u024c\7R\2\2\u024c\u0253\5> \2\u024d"+ - "\u0250\7\r\2\2\u024e\u0251\7\23\2\2\u024f\u0251\5> \2\u0250\u024e\3\2"+ - "\2\2\u0250\u024f\3\2\2\2\u0251\u0253\3\2\2\2\u0252\u0243\3\2\2\2\u0252"+ - "\u0245\3\2\2\2\u0252\u0247\3\2\2\2\u0252\u0249\3\2\2\2\u0252\u024b\3\2"+ - "\2\2\u0252\u024d\3\2\2\2\u0253G\3\2\2\2\u0254\u0256\5J&\2\u0255\u0254"+ - "\3\2\2\2\u0256\u0259\3\2\2\2\u0257\u0255\3\2\2\2\u0257\u0258\3\2\2\2\u0258"+ - "I\3\2\2\2\u0259\u0257\3\2\2\2\u025a\u025e\5L\'\2\u025b\u025e\5N(\2\u025c"+ - "\u025e\5P)\2\u025d\u025a\3\2\2\2\u025d\u025b\3\2\2\2\u025d\u025c\3\2\2"+ - "\2\u025eK\3\2\2\2\u025f\u0260\7c\2\2\u0260\u0267\7 \2\2\u0261\u0263\7"+ - "\61\2\2\u0262\u0264\7c\2\2\u0263\u0262\3\2\2\2\u0263\u0264\3\2\2\2\u0264"+ - "\u0265\3\2\2\2\u0265\u0267\7 \2\2\u0266\u025f\3\2\2\2\u0266\u0261\3\2"+ - "\2\2\u0267M\3\2\2\2\u0268\u026a\7T\2\2\u0269\u026b\5R*\2\u026a\u0269\3"+ - "\2\2\2\u026a\u026b\3\2\2\2\u026bO\3\2\2\2\u026c\u026d\7S\2\2\u026d\u0272"+ - "\5T+\2\u026e\u026f\7\6\2\2\u026f\u0271\5T+\2\u0270\u026e\3\2\2\2\u0271"+ - "\u0274\3\2\2\2\u0272\u0270\3\2\2\2\u0272\u0273\3\2\2\2\u0273Q\3\2\2\2"+ - "\u0274\u0272\3\2\2\2\u0275\u028d\5T+\2\u0276\u0277\7\f\2\2\u0277\u028d"+ - "\5T+\2\u0278\u0279\5T+\2\u0279\u027a\7\6\2\2\u027a\u027b\7c\2\2\u027b"+ - "\u028d\3\2\2\2\u027c\u027d\7\b\2\2\u027d\u027e\5T+\2\u027e\u027f\7\t\2"+ - "\2\u027f\u0280\7\6\2\2\u0280\u0281\7c\2\2\u0281\u028d\3\2\2\2\u0282\u0283"+ - "\7\b\2\2\u0283\u0284\5T+\2\u0284\u0285\7\6\2\2\u0285\u0286\7c\2\2\u0286"+ - "\u0287\7\t\2\2\u0287\u028d\3\2\2\2\u0288\u0289\7\b\2\2\u0289\u028a\5T"+ - "+\2\u028a\u028b\7\t\2\2\u028b\u028d\3\2\2\2\u028c\u0275\3\2\2\2\u028c"+ - "\u0276\3\2\2\2\u028c\u0278\3\2\2\2\u028c\u027c\3\2\2\2\u028c\u0282\3\2"+ - "\2\2\u028c\u0288\3\2\2\2\u028dS\3\2\2\2\u028e\u028f\b+\1\2\u028f\u0290"+ - "\7%\2\2\u0290\u0291\5T+\2\u0291\u0292\7&\2\2\u0292\u029d\3\2\2\2\u0293"+ - "\u0294\t\13\2\2\u0294\u029d\5T+\n\u0295\u029d\7c\2\2\u0296\u029d\7d\2"+ - "\2\u0297\u0298\7\n\2\2\u0298\u0299\7c\2\2\u0299\u029d\7\13\2\2\u029a\u029d"+ - "\7Z\2\2\u029b\u029d\7X\2\2\u029c\u028e\3\2\2\2\u029c\u0293\3\2\2\2\u029c"+ - "\u0295\3\2\2\2\u029c\u0296\3\2\2\2\u029c\u0297\3\2\2\2\u029c\u029a\3\2"+ - "\2\2\u029c\u029b\3\2\2\2\u029d\u02ac\3\2\2\2\u029e\u029f\f\f\2\2\u029f"+ - "\u02a0\7)\2\2\u02a0\u02ab\5T+\r\u02a1\u02a2\f\13\2\2\u02a2\u02a3\t\6\2"+ - "\2\u02a3\u02ab\5T+\f\u02a4\u02a5\f\t\2\2\u02a5\u02a6\t\f\2\2\u02a6\u02ab"+ - "\5T+\n\u02a7\u02a8\f\b\2\2\u02a8\u02a9\t\b\2\2\u02a9\u02ab\5T+\t\u02aa"+ - "\u029e\3\2\2\2\u02aa\u02a1\3\2\2\2\u02aa\u02a4\3\2\2\2\u02aa\u02a7\3\2"+ - "\2\2\u02ab\u02ae\3\2\2\2\u02ac\u02aa\3\2\2\2\u02ac\u02ad\3\2\2\2\u02ad"+ - "U\3\2\2\2\u02ae\u02ac\3\2\2\2B`i{\u0083\u008a\u0098\u009e\u00a3\u00a9"+ - "\u00ae\u00b7\u00be\u00cc\u00de\u00e1\u00ea\u00f2\u00f9\u0106\u010b\u0117"+ - "\u0125\u0130\u0139\u0140\u0147\u014a\u0152\u0155\u0158\u0162\u0169\u0170"+ - "\u0176\u0178\u0180\u0186\u0192\u01a0\u01a6\u01b0\u01bc\u01c4\u01db\u01e5"+ - "\u01e9\u021b\u0225\u0227\u022f\u0234\u023e\u0250\u0252\u0257\u025d\u0263"+ - "\u0266\u026a\u0272\u028c\u029c\u02aa\u02ac"; + "\7\3\7\3\7\5\7{\n\7\3\b\3\b\3\b\3\t\7\t\u0081\n\t\f\t\16\t\u0084\13\t"+ + "\3\t\3\t\7\t\u0088\n\t\f\t\16\t\u008b\13\t\3\n\3\n\3\n\3\13\3\13\3\13"+ + "\3\13\3\13\3\13\7\13\u0096\n\13\f\13\16\13\u0099\13\13\3\f\3\f\3\f\5\f"+ + "\u009e\n\f\3\f\3\f\3\f\5\f\u00a3\n\f\3\r\3\r\3\r\3\r\5\r\u00a9\n\r\3\r"+ + "\3\r\3\r\5\r\u00ae\n\r\3\r\3\r\3\16\3\16\3\16\7\16\u00b5\n\16\f\16\16"+ + "\16\u00b8\13\16\3\17\3\17\3\17\3\17\5\17\u00be\n\17\3\20\3\20\3\20\3\20"+ + "\3\20\3\20\3\20\3\20\3\20\3\20\3\20\3\20\3\20\3\20\3\20\3\20\3\20\5\20"+ + "\u00d1\n\20\3\21\3\21\3\21\3\21\3\21\3\21\3\21\3\21\3\21\3\21\3\21\3\21"+ + "\3\21\3\21\3\21\3\21\5\21\u00e3\n\21\3\21\5\21\u00e6\n\21\3\22\3\22\3"+ + "\22\3\22\3\22\7\22\u00ed\n\22\f\22\16\22\u00f0\13\22\3\22\3\22\3\23\6"+ + "\23\u00f5\n\23\r\23\16\23\u00f6\3\24\3\24\3\24\3\24\3\24\5\24\u00fe\n"+ + "\24\3\24\3\24\3\24\3\24\3\24\3\24\3\24\3\24\3\24\3\24\3\24\5\24\u010b"+ + "\n\24\3\24\7\24\u010e\n\24\f\24\16\24\u0111\13\24\3\24\3\24\3\24\3\24"+ + "\3\24\3\24\3\24\7\24\u011a\n\24\f\24\16\24\u011d\13\24\3\24\3\24\3\24"+ + "\3\24\3\24\3\24\3\24\3\24\3\24\7\24\u0128\n\24\f\24\16\24\u012b\13\24"+ + "\3\24\3\24\3\24\3\24\3\24\3\24\3\24\3\24\5\24\u0135\n\24\3\24\3\24\3\24"+ + "\3\24\3\24\3\24\3\24\5\24\u013e\n\24\3\24\3\24\3\24\3\24\3\24\5\24\u0145"+ + "\n\24\3\25\3\25\3\25\3\25\3\25\5\25\u014c\n\25\3\25\5\25\u014f\n\25\3"+ + "\25\3\25\3\25\3\25\3\25\3\25\5\25\u0157\n\25\3\26\5\26\u015a\n\26\3\26"+ + "\5\26\u015d\n\26\3\27\3\27\3\27\3\27\3\27\3\27\3\27\3\27\5\27\u0167\n"+ + "\27\3\27\3\27\3\27\3\27\3\27\5\27\u016e\n\27\3\27\3\27\3\27\3\27\3\27"+ + "\5\27\u0175\n\27\3\27\3\27\3\27\3\27\7\27\u017b\n\27\f\27\16\27\u017e"+ + "\13\27\3\30\3\30\3\30\3\31\3\31\5\31\u0185\n\31\3\31\3\31\6\31\u0189\n"+ + "\31\r\31\16\31\u018a\3\31\3\31\3\32\3\32\3\32\3\33\3\33\3\33\3\34\3\34"+ + "\5\34\u0197\n\34\3\34\3\34\3\34\3\34\3\35\3\35\3\35\3\35\3\35\3\35\7\35"+ + "\u01a3\n\35\f\35\16\35\u01a6\13\35\3\36\3\36\3\36\5\36\u01ab\n\36\3\37"+ + "\3\37\3\37\3\37\3\37\3\37\7\37\u01b3\n\37\f\37\16\37\u01b6\13\37\3 \3"+ + " \3 \3 \3 \3 \3 \3 \3 \5 \u01c1\n \3 \3 \3 \3 \3 \3 \5 \u01c9\n \3 \3"+ + " \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \7 \u01de\n \f \16"+ + " \u01e1\13 \3 \3 \3 \3 \3 \6 \u01e8\n \r \16 \u01e9\3 \3 \5 \u01ee\n "+ + "\3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 "+ + "\3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 "+ + "\3 \3 \5 \u0220\n \3 \3 \3 \3 \3 \3 \3 \3 \7 \u022a\n \f \16 \u022d\13"+ + " \3!\3!\3!\7!\u0232\n!\f!\16!\u0235\13!\3\"\3\"\5\"\u0239\n\"\3\"\3\""+ + "\3#\3#\3#\3#\7#\u0241\n#\f#\16#\u0244\13#\3#\3#\3$\3$\3$\3$\3$\3$\3$\3"+ + "$\3$\3$\3$\3$\3$\5$\u0255\n$\5$\u0257\n$\3%\7%\u025a\n%\f%\16%\u025d\13"+ + "%\3&\3&\3&\5&\u0262\n&\3\'\3\'\3\'\3\'\5\'\u0268\n\'\3\'\5\'\u026b\n\'"+ + "\3(\3(\5(\u026f\n(\3)\3)\3)\3)\7)\u0275\n)\f)\16)\u0278\13)\3*\3*\3*\3"+ + "*\3*\3*\3*\3*\3*\3*\3*\3*\3*\3*\3*\3*\3*\3*\3*\3*\3*\3*\3*\5*\u0291\n"+ + "*\3+\3+\3+\3+\3+\3+\3+\3+\3+\3+\3+\3+\3+\3+\5+\u02a1\n+\3+\3+\3+\3+\3"+ + "+\3+\3+\3+\3+\3+\3+\3+\7+\u02af\n+\f+\16+\u02b2\13+\3+\2\b\24,8<>T,\2"+ + "\4\6\b\n\f\16\20\22\24\26\30\32\34\36 \"$&(*,.\60\62\64\668:<>@BDFHJL"+ + "NPRT\2\r\3\2#$\3\2./\3\2\60\64\3\29:\3\2\65\66\4\2%%\678\3\2\60\61\3\2"+ + "9>\3\2DM\4\2\60\619:\4\2%%\67\67\2\u0312\2V\3\2\2\2\4Z\3\2\2\2\6`\3\2"+ + "\2\2\bc\3\2\2\2\ng\3\2\2\2\fz\3\2\2\2\16|\3\2\2\2\20\u0082\3\2\2\2\22"+ + "\u008c\3\2\2\2\24\u008f\3\2\2\2\26\u00a2\3\2\2\2\30\u00a4\3\2\2\2\32\u00b1"+ + "\3\2\2\2\34\u00bd\3\2\2\2\36\u00d0\3\2\2\2 \u00e5\3\2\2\2\"\u00e7\3\2"+ + "\2\2$\u00f4\3\2\2\2&\u0144\3\2\2\2(\u0156\3\2\2\2*\u015c\3\2\2\2,\u016d"+ + "\3\2\2\2.\u017f\3\2\2\2\60\u0182\3\2\2\2\62\u018e\3\2\2\2\64\u0191\3\2"+ + "\2\2\66\u0194\3\2\2\28\u019c\3\2\2\2:\u01a7\3\2\2\2<\u01ac\3\2\2\2>\u01ed"+ + "\3\2\2\2@\u022e\3\2\2\2B\u0236\3\2\2\2D\u023c\3\2\2\2F\u0256\3\2\2\2H"+ + "\u025b\3\2\2\2J\u0261\3\2\2\2L\u026a\3\2\2\2N\u026c\3\2\2\2P\u0270\3\2"+ + "\2\2R\u0290\3\2\2\2T\u02a0\3\2\2\2VW\5\6\4\2WX\5\n\6\2XY\7\2\2\3Y\3\3"+ + "\2\2\2Z[\5H%\2[\\\7\2\2\3\\\5\3\2\2\2]_\5\b\5\2^]\3\2\2\2_b\3\2\2\2`^"+ + "\3\2\2\2`a\3\2\2\2a\7\3\2\2\2b`\3\2\2\2cd\7\3\2\2de\7X\2\2e\t\3\2\2\2"+ + "fh\5\f\7\2gf\3\2\2\2hi\3\2\2\2ig\3\2\2\2ij\3\2\2\2j\13\3\2\2\2kl\5\22"+ + "\n\2lm\7\4\2\2m{\3\2\2\2no\5\60\31\2op\7\4\2\2p{\3\2\2\2qr\5\66\34\2r"+ + "s\7\4\2\2s{\3\2\2\2t{\5\30\r\2u{\5B\"\2v{\5\36\20\2wx\5\16\b\2xy\7\4\2"+ + "\2y{\3\2\2\2zk\3\2\2\2zn\3\2\2\2zq\3\2\2\2zt\3\2\2\2zu\3\2\2\2zv\3\2\2"+ + "\2zw\3\2\2\2{\r\3\2\2\2|}\7\5\2\2}~\5\22\n\2~\17\3\2\2\2\177\u0081\5 "+ + "\21\2\u0080\177\3\2\2\2\u0081\u0084\3\2\2\2\u0082\u0080\3\2\2\2\u0082"+ + "\u0083\3\2\2\2\u0083\u0085\3\2\2\2\u0084\u0082\3\2\2\2\u0085\u0089\5,"+ + "\27\2\u0086\u0088\5 \21\2\u0087\u0086\3\2\2\2\u0088\u008b\3\2\2\2\u0089"+ + "\u0087\3\2\2\2\u0089\u008a\3\2\2\2\u008a\21\3\2\2\2\u008b\u0089\3\2\2"+ + "\2\u008c\u008d\5\20\t\2\u008d\u008e\5\24\13\2\u008e\23\3\2\2\2\u008f\u0090"+ + "\b\13\1\2\u0090\u0091\5\26\f\2\u0091\u0097\3\2\2\2\u0092\u0093\f\3\2\2"+ + "\u0093\u0094\7\6\2\2\u0094\u0096\5\26\f\2\u0095\u0092\3\2\2\2\u0096\u0099"+ + "\3\2\2\2\u0097\u0095\3\2\2\2\u0097\u0098\3\2\2\2\u0098\25\3\2\2\2\u0099"+ + "\u0097\3\2\2\2\u009a\u009d\7d\2\2\u009b\u009c\7\7\2\2\u009c\u009e\5> "+ + "\2\u009d\u009b\3\2\2\2\u009d\u009e\3\2\2\2\u009e\u00a3\3\2\2\2\u009f\u00a0"+ + "\7d\2\2\u00a0\u00a1\7\7\2\2\u00a1\u00a3\5B\"\2\u00a2\u009a\3\2\2\2\u00a2"+ + "\u009f\3\2\2\2\u00a3\27\3\2\2\2\u00a4\u00a5\5\20\t\2\u00a5\u00a6\7d\2"+ + "\2\u00a6\u00a8\7\b\2\2\u00a7\u00a9\5\32\16\2\u00a8\u00a7\3\2\2\2\u00a8"+ + "\u00a9\3\2\2\2\u00a9\u00aa\3\2\2\2\u00aa\u00ab\7\t\2\2\u00ab\u00ad\7\n"+ + "\2\2\u00ac\u00ae\5$\23\2\u00ad\u00ac\3\2\2\2\u00ad\u00ae\3\2\2\2\u00ae"+ + "\u00af\3\2\2\2\u00af\u00b0\7\13\2\2\u00b0\31\3\2\2\2\u00b1\u00b6\5\34"+ + "\17\2\u00b2\u00b3\7\6\2\2\u00b3\u00b5\5\34\17\2\u00b4\u00b2\3\2\2\2\u00b5"+ + "\u00b8\3\2\2\2\u00b6\u00b4\3\2\2\2\u00b6\u00b7\3\2\2\2\u00b7\33\3\2\2"+ + "\2\u00b8\u00b6\3\2\2\2\u00b9\u00ba\5\20\t\2\u00ba\u00bb\7d\2\2\u00bb\u00be"+ + "\3\2\2\2\u00bc\u00be\7W\2\2\u00bd\u00b9\3\2\2\2\u00bd\u00bc\3\2\2\2\u00be"+ + "\35\3\2\2\2\u00bf\u00c0\7\f\2\2\u00c0\u00d1\5\"\22\2\u00c1\u00c2\7\f\2"+ + "\2\u00c2\u00c3\7\r\2\2\u00c3\u00c4\7\b\2\2\u00c4\u00c5\7[\2\2\u00c5\u00d1"+ + "\7\t\2\2\u00c6\u00c7\7\f\2\2\u00c7\u00c8\7\16\2\2\u00c8\u00c9\7\b\2\2"+ + "\u00c9\u00ca\7d\2\2\u00ca\u00d1\7\t\2\2\u00cb\u00cc\7\f\2\2\u00cc\u00cd"+ + "\7\17\2\2\u00cd\u00ce\7\b\2\2\u00ce\u00cf\7d\2\2\u00cf\u00d1\7\t\2\2\u00d0"+ + "\u00bf\3\2\2\2\u00d0\u00c1\3\2\2\2\u00d0\u00c6\3\2\2\2\u00d0\u00cb\3\2"+ + "\2\2\u00d1\37\3\2\2\2\u00d2\u00e6\7\20\2\2\u00d3\u00e6\7\21\2\2\u00d4"+ + "\u00d5\7\22\2\2\u00d5\u00d6\7\b\2\2\u00d6\u00d7\7[\2\2\u00d7\u00e6\7\t"+ + "\2\2\u00d8\u00d9\7\23\2\2\u00d9\u00da\7\b\2\2\u00da\u00db\7d\2\2\u00db"+ + "\u00e6\7\t\2\2\u00dc\u00e6\7\24\2\2\u00dd\u00e6\7\25\2\2\u00de\u00e2\7"+ + "\26\2\2\u00df\u00e0\7\b\2\2\u00e0\u00e1\7d\2\2\u00e1\u00e3\7\t\2\2\u00e2"+ + "\u00df\3\2\2\2\u00e2\u00e3\3\2\2\2\u00e3\u00e6\3\2\2\2\u00e4\u00e6\5\""+ + "\22\2\u00e5\u00d2\3\2\2\2\u00e5\u00d3\3\2\2\2\u00e5\u00d4\3\2\2\2\u00e5"+ + "\u00d8\3\2\2\2\u00e5\u00dc\3\2\2\2\u00e5\u00dd\3\2\2\2\u00e5\u00de\3\2"+ + "\2\2\u00e5\u00e4\3\2\2\2\u00e6!\3\2\2\2\u00e7\u00e8\7\27\2\2\u00e8\u00e9"+ + "\7\b\2\2\u00e9\u00ee\7[\2\2\u00ea\u00eb\7\6\2\2\u00eb\u00ed\7[\2\2\u00ec"+ + "\u00ea\3\2\2\2\u00ed\u00f0\3\2\2\2\u00ee\u00ec\3\2\2\2\u00ee\u00ef\3\2"+ + "\2\2\u00ef\u00f1\3\2\2\2\u00f0\u00ee\3\2\2\2\u00f1\u00f2\7\t\2\2\u00f2"+ + "#\3\2\2\2\u00f3\u00f5\5&\24\2\u00f4\u00f3\3\2\2\2\u00f5\u00f6\3\2\2\2"+ + "\u00f6\u00f4\3\2\2\2\u00f6\u00f7\3\2\2\2\u00f7%\3\2\2\2\u00f8\u00f9\5"+ + "\22\n\2\u00f9\u00fa\7\4\2\2\u00fa\u0145\3\2\2\2\u00fb\u00fd\7\n\2\2\u00fc"+ + "\u00fe\5$\23\2\u00fd\u00fc\3\2\2\2\u00fd\u00fe\3\2\2\2\u00fe\u00ff\3\2"+ + "\2\2\u00ff\u0145\7\13\2\2\u0100\u0101\5<\37\2\u0101\u0102\7\4\2\2\u0102"+ + "\u0145\3\2\2\2\u0103\u0104\7\30\2\2\u0104\u0105\7\b\2\2\u0105\u0106\5"+ + "<\37\2\u0106\u0107\7\t\2\2\u0107\u010a\5&\24\2\u0108\u0109\7\31\2\2\u0109"+ + "\u010b\5&\24\2\u010a\u0108\3\2\2\2\u010a\u010b\3\2\2\2\u010b\u0145\3\2"+ + "\2\2\u010c\u010e\5 \21\2\u010d\u010c\3\2\2\2\u010e\u0111\3\2\2\2\u010f"+ + "\u010d\3\2\2\2\u010f\u0110\3\2\2\2\u0110\u0112\3\2\2\2\u0111\u010f\3\2"+ + "\2\2\u0112\u0113\7\32\2\2\u0113\u0114\7\b\2\2\u0114\u0115\5<\37\2\u0115"+ + "\u0116\7\t\2\2\u0116\u0117\5&\24\2\u0117\u0145\3\2\2\2\u0118\u011a\5 "+ + "\21\2\u0119\u0118\3\2\2\2\u011a\u011d\3\2\2\2\u011b\u0119\3\2\2\2\u011b"+ + "\u011c\3\2\2\2\u011c\u011e\3\2\2\2\u011d\u011b\3\2\2\2\u011e\u011f\7\33"+ + "\2\2\u011f\u0120\5&\24\2\u0120\u0121\7\32\2\2\u0121\u0122\7\b\2\2\u0122"+ + "\u0123\5<\37\2\u0123\u0124\7\t\2\2\u0124\u0125\7\4\2\2\u0125\u0145\3\2"+ + "\2\2\u0126\u0128\5 \21\2\u0127\u0126\3\2\2\2\u0128\u012b\3\2\2\2\u0129"+ + "\u0127\3\2\2\2\u0129\u012a\3\2\2\2\u012a\u012c\3\2\2\2\u012b\u0129\3\2"+ + "\2\2\u012c\u012d\7\34\2\2\u012d\u012e\7\b\2\2\u012e\u012f\5(\25\2\u012f"+ + "\u0130\7\t\2\2\u0130\u0131\5&\24\2\u0131\u0145\3\2\2\2\u0132\u0134\7\35"+ + "\2\2\u0133\u0135\5<\37\2\u0134\u0133\3\2\2\2\u0134\u0135\3\2\2\2\u0135"+ + "\u0136\3\2\2\2\u0136\u0145\7\4\2\2\u0137\u0138\7\36\2\2\u0138\u0145\7"+ + "\4\2\2\u0139\u013a\7\37\2\2\u013a\u0145\7\4\2\2\u013b\u013d\7 \2\2\u013c"+ + "\u013e\5D#\2\u013d\u013c\3\2\2\2\u013d\u013e\3\2\2\2\u013e\u013f\3\2\2"+ + "\2\u013f\u0140\7\n\2\2\u0140\u0141\5H%\2\u0141\u0142\7\13\2\2\u0142\u0145"+ + "\3\2\2\2\u0143\u0145\5B\"\2\u0144\u00f8\3\2\2\2\u0144\u00fb\3\2\2\2\u0144"+ + "\u0100\3\2\2\2\u0144\u0103\3\2\2\2\u0144\u010f\3\2\2\2\u0144\u011b\3\2"+ + "\2\2\u0144\u0129\3\2\2\2\u0144\u0132\3\2\2\2\u0144\u0137\3\2\2\2\u0144"+ + "\u0139\3\2\2\2\u0144\u013b\3\2\2\2\u0144\u0143\3\2\2\2\u0145\'\3\2\2\2"+ + "\u0146\u0147\5*\26\2\u0147\u0148\7\4\2\2\u0148\u0149\5<\37\2\u0149\u014b"+ + "\7\4\2\2\u014a\u014c\5<\37\2\u014b\u014a\3\2\2\2\u014b\u014c\3\2\2\2\u014c"+ + "\u0157\3\2\2\2\u014d\u014f\5\20\t\2\u014e\u014d\3\2\2\2\u014e\u014f\3"+ + "\2\2\2\u014f\u0150\3\2\2\2\u0150\u0151\7d\2\2\u0151\u0152\7!\2\2\u0152"+ + "\u0153\5> \2\u0153\u0154\7\"\2\2\u0154\u0155\5> \2\u0155\u0157\3\2\2\2"+ + "\u0156\u0146\3\2\2\2\u0156\u014e\3\2\2\2\u0157)\3\2\2\2\u0158\u015a\5"+ + "\22\n\2\u0159\u0158\3\2\2\2\u0159\u015a\3\2\2\2\u015a\u015d\3\2\2\2\u015b"+ + "\u015d\5<\37\2\u015c\u0159\3\2\2\2\u015c\u015b\3\2\2\2\u015d+\3\2\2\2"+ + "\u015e\u015f\b\27\1\2\u015f\u0160\7\b\2\2\u0160\u0161\5,\27\2\u0161\u0162"+ + "\7\t\2\2\u0162\u016e\3\2\2\2\u0163\u016e\7W\2\2\u0164\u0166\t\2\2\2\u0165"+ + "\u0167\7W\2\2\u0166\u0165\3\2\2\2\u0166\u0167\3\2\2\2\u0167\u016e\3\2"+ + "\2\2\u0168\u016e\5\60\31\2\u0169\u016e\5.\30\2\u016a\u016e\5\66\34\2\u016b"+ + "\u016e\5\64\33\2\u016c\u016e\7d\2\2\u016d\u015e\3\2\2\2\u016d\u0163\3"+ + "\2\2\2\u016d\u0164\3\2\2\2\u016d\u0168\3\2\2\2\u016d\u0169\3\2\2\2\u016d"+ + "\u016a\3\2\2\2\u016d\u016b\3\2\2\2\u016d\u016c\3\2\2\2\u016e\u017c\3\2"+ + "\2\2\u016f\u0170\f\n\2\2\u0170\u017b\7%\2\2\u0171\u0172\f\t\2\2\u0172"+ + "\u0174\7&\2\2\u0173\u0175\5> \2\u0174\u0173\3\2\2\2\u0174\u0175\3\2\2"+ + "\2\u0175\u0176\3\2\2\2\u0176\u017b\7\'\2\2\u0177\u0178\f\b\2\2\u0178\u0179"+ + "\7\b\2\2\u0179\u017b\7\t\2\2\u017a\u016f\3\2\2\2\u017a\u0171\3\2\2\2\u017a"+ + "\u0177\3\2\2\2\u017b\u017e\3\2\2\2\u017c\u017a\3\2\2\2\u017c\u017d\3\2"+ + "\2\2\u017d-\3\2\2\2\u017e\u017c\3\2\2\2\u017f\u0180\7(\2\2\u0180\u0181"+ + "\7d\2\2\u0181/\3\2\2\2\u0182\u0184\7(\2\2\u0183\u0185\7d\2\2\u0184\u0183"+ + "\3\2\2\2\u0184\u0185\3\2\2\2\u0185\u0186\3\2\2\2\u0186\u0188\7\n\2\2\u0187"+ + "\u0189\5\62\32\2\u0188\u0187\3\2\2\2\u0189\u018a\3\2\2\2\u018a\u0188\3"+ + "\2\2\2\u018a\u018b\3\2\2\2\u018b\u018c\3\2\2\2\u018c\u018d\7\13\2\2\u018d"+ + "\61\3\2\2\2\u018e\u018f\5\22\n\2\u018f\u0190\7\4\2\2\u0190\63\3\2\2\2"+ + "\u0191\u0192\7)\2\2\u0192\u0193\7d\2\2\u0193\65\3\2\2\2\u0194\u0196\7"+ + ")\2\2\u0195\u0197\7d\2\2\u0196\u0195\3\2\2\2\u0196\u0197\3\2\2\2\u0197"+ + "\u0198\3\2\2\2\u0198\u0199\7\n\2\2\u0199\u019a\58\35\2\u019a\u019b\7\13"+ + "\2\2\u019b\67\3\2\2\2\u019c\u019d\b\35\1\2\u019d\u019e\5:\36\2\u019e\u01a4"+ + "\3\2\2\2\u019f\u01a0\f\3\2\2\u01a0\u01a1\7\6\2\2\u01a1\u01a3\5:\36\2\u01a2"+ + "\u019f\3\2\2\2\u01a3\u01a6\3\2\2\2\u01a4\u01a2\3\2\2\2\u01a4\u01a5\3\2"+ + "\2\2\u01a59\3\2\2\2\u01a6\u01a4\3\2\2\2\u01a7\u01aa\7d\2\2\u01a8\u01a9"+ + "\7\7\2\2\u01a9\u01ab\5> \2\u01aa\u01a8\3\2\2\2\u01aa\u01ab\3\2\2\2\u01ab"+ + ";\3\2\2\2\u01ac\u01ad\b\37\1\2\u01ad\u01ae\5> \2\u01ae\u01b4\3\2\2\2\u01af"+ + "\u01b0\f\3\2\2\u01b0\u01b1\7\6\2\2\u01b1\u01b3\5> \2\u01b2\u01af\3\2\2"+ + "\2\u01b3\u01b6\3\2\2\2\u01b4\u01b2\3\2\2\2\u01b4\u01b5\3\2\2\2\u01b5="+ + "\3\2\2\2\u01b6\u01b4\3\2\2\2\u01b7\u01b8\b \1\2\u01b8\u01b9\7\b\2\2\u01b9"+ + "\u01ba\5<\37\2\u01ba\u01bb\7\t\2\2\u01bb\u01ee\3\2\2\2\u01bc\u01bd\7,"+ + "\2\2\u01bd\u01c0\7\b\2\2\u01be\u01c1\5> \2\u01bf\u01c1\5,\27\2\u01c0\u01be"+ + "\3\2\2\2\u01c0\u01bf\3\2\2\2\u01c1\u01c2\3\2\2\2\u01c2\u01c3\7\t\2\2\u01c3"+ + "\u01ee\3\2\2\2\u01c4\u01c5\7-\2\2\u01c5\u01c8\7\b\2\2\u01c6\u01c9\5> "+ + "\2\u01c7\u01c9\5,\27\2\u01c8\u01c6\3\2\2\2\u01c8\u01c7\3\2\2\2\u01c9\u01ca"+ + "\3\2\2\2\u01ca\u01cb\7\t\2\2\u01cb\u01ee\3\2\2\2\u01cc\u01cd\7\b\2\2\u01cd"+ + "\u01ce\5,\27\2\u01ce\u01cf\7\t\2\2\u01cf\u01d0\5> \32\u01d0\u01ee\3\2"+ + "\2\2\u01d1\u01d2\t\3\2\2\u01d2\u01ee\5> \31\u01d3\u01d4\7%\2\2\u01d4\u01ee"+ + "\5> \27\u01d5\u01d6\t\4\2\2\u01d6\u01ee\5> \26\u01d7\u01d8\t\5\2\2\u01d8"+ + "\u01ee\5> \22\u01d9\u01da\7\n\2\2\u01da\u01df\5> \2\u01db\u01dc\7\6\2"+ + "\2\u01dc\u01de\5> \2\u01dd\u01db\3\2\2\2\u01de\u01e1\3\2\2\2\u01df\u01dd"+ + "\3\2\2\2\u01df\u01e0\3\2\2\2\u01e0\u01e2\3\2\2\2\u01e1\u01df\3\2\2\2\u01e2"+ + "\u01e3\7\13\2\2\u01e3\u01ee\3\2\2\2\u01e4\u01ee\7d\2\2\u01e5\u01ee\7["+ + "\2\2\u01e6\u01e8\7X\2\2\u01e7\u01e6\3\2\2\2\u01e8\u01e9\3\2\2\2\u01e9"+ + "\u01e7\3\2\2\2\u01e9\u01ea\3\2\2\2\u01ea\u01ee\3\2\2\2\u01eb\u01ee\7Y"+ + "\2\2\u01ec\u01ee\7Z\2\2\u01ed\u01b7\3\2\2\2\u01ed\u01bc\3\2\2\2\u01ed"+ + "\u01c4\3\2\2\2\u01ed\u01cc\3\2\2\2\u01ed\u01d1\3\2\2\2\u01ed\u01d3\3\2"+ + "\2\2\u01ed\u01d5\3\2\2\2\u01ed\u01d7\3\2\2\2\u01ed\u01d9\3\2\2\2\u01ed"+ + "\u01e4\3\2\2\2\u01ed\u01e5\3\2\2\2\u01ed\u01e7\3\2\2\2\u01ed\u01eb\3\2"+ + "\2\2\u01ed\u01ec\3\2\2\2\u01ee\u022b\3\2\2\2\u01ef\u01f0\f\25\2\2\u01f0"+ + "\u01f1\t\6\2\2\u01f1\u022a\5> \26\u01f2\u01f3\f\24\2\2\u01f3\u01f4\t\7"+ + "\2\2\u01f4\u022a\5> \25\u01f5\u01f6\f\23\2\2\u01f6\u01f7\t\b\2\2\u01f7"+ + "\u022a\5> \24\u01f8\u01f9\f\21\2\2\u01f9\u01fa\t\t\2\2\u01fa\u022a\5>"+ + " \22\u01fb\u01fc\f\20\2\2\u01fc\u01fd\7\63\2\2\u01fd\u022a\5> \21\u01fe"+ + "\u01ff\f\17\2\2\u01ff\u0200\7?\2\2\u0200\u022a\5> \20\u0201\u0202\f\16"+ + "\2\2\u0202\u0203\7@\2\2\u0203\u022a\5> \17\u0204\u0205\f\r\2\2\u0205\u0206"+ + "\7A\2\2\u0206\u022a\5> \16\u0207\u0208\f\f\2\2\u0208\u0209\7B\2\2\u0209"+ + "\u022a\5> \r\u020a\u020b\f\13\2\2\u020b\u020c\7C\2\2\u020c\u020d\5> \2"+ + "\u020d\u020e\7!\2\2\u020e\u020f\5> \f\u020f\u022a\3\2\2\2\u0210\u0211"+ + "\f\n\2\2\u0211\u0212\7\7\2\2\u0212\u022a\5> \n\u0213\u0214\f\t\2\2\u0214"+ + "\u0215\t\n\2\2\u0215\u022a\5> \t\u0216\u0217\f \2\2\u0217\u0218\7*\2\2"+ + "\u0218\u022a\7d\2\2\u0219\u021a\f\37\2\2\u021a\u021b\7+\2\2\u021b\u022a"+ + "\7d\2\2\u021c\u021d\f\36\2\2\u021d\u021f\7\b\2\2\u021e\u0220\5@!\2\u021f"+ + "\u021e\3\2\2\2\u021f\u0220\3\2\2\2\u0220\u0221\3\2\2\2\u0221\u022a\7\t"+ + "\2\2\u0222\u0223\f\33\2\2\u0223\u0224\7&\2\2\u0224\u0225\5<\37\2\u0225"+ + "\u0226\7\'\2\2\u0226\u022a\3\2\2\2\u0227\u0228\f\30\2\2\u0228\u022a\t"+ + "\3\2\2\u0229\u01ef\3\2\2\2\u0229\u01f2\3\2\2\2\u0229\u01f5\3\2\2\2\u0229"+ + "\u01f8\3\2\2\2\u0229\u01fb\3\2\2\2\u0229\u01fe\3\2\2\2\u0229\u0201\3\2"+ + "\2\2\u0229\u0204\3\2\2\2\u0229\u0207\3\2\2\2\u0229\u020a\3\2\2\2\u0229"+ + "\u0210\3\2\2\2\u0229\u0213\3\2\2\2\u0229\u0216\3\2\2\2\u0229\u0219\3\2"+ + "\2\2\u0229\u021c\3\2\2\2\u0229\u0222\3\2\2\2\u0229\u0227\3\2\2\2\u022a"+ + "\u022d\3\2\2\2\u022b\u0229\3\2\2\2\u022b\u022c\3\2\2\2\u022c?\3\2\2\2"+ + "\u022d\u022b\3\2\2\2\u022e\u0233\5> \2\u022f\u0230\7\6\2\2\u0230\u0232"+ + "\5> \2\u0231\u022f\3\2\2\2\u0232\u0235\3\2\2\2\u0233\u0231\3\2\2\2\u0233"+ + "\u0234\3\2\2\2\u0234A\3\2\2\2\u0235\u0233\3\2\2\2\u0236\u0238\7N\2\2\u0237"+ + "\u0239\5D#\2\u0238\u0237\3\2\2\2\u0238\u0239\3\2\2\2\u0239\u023a\3\2\2"+ + "\2\u023a\u023b\7V\2\2\u023bC\3\2\2\2\u023c\u023d\7\b\2\2\u023d\u0242\5"+ + "F$\2\u023e\u023f\7\6\2\2\u023f\u0241\5F$\2\u0240\u023e\3\2\2\2\u0241\u0244"+ + "\3\2\2\2\u0242\u0240\3\2\2\2\u0242\u0243\3\2\2\2\u0243\u0245\3\2\2\2\u0244"+ + "\u0242\3\2\2\2\u0245\u0246\7\t\2\2\u0246E\3\2\2\2\u0247\u0248\7O\2\2\u0248"+ + "\u0257\7X\2\2\u0249\u024a\7P\2\2\u024a\u0257\7d\2\2\u024b\u024c\7Q\2\2"+ + "\u024c\u0257\7X\2\2\u024d\u024e\7R\2\2\u024e\u0257\5> \2\u024f\u0250\7"+ + "S\2\2\u0250\u0257\5> \2\u0251\u0254\7\r\2\2\u0252\u0255\7\24\2\2\u0253"+ + "\u0255\5> \2\u0254\u0252\3\2\2\2\u0254\u0253\3\2\2\2\u0255\u0257\3\2\2"+ + "\2\u0256\u0247\3\2\2\2\u0256\u0249\3\2\2\2\u0256\u024b\3\2\2\2\u0256\u024d"+ + "\3\2\2\2\u0256\u024f\3\2\2\2\u0256\u0251\3\2\2\2\u0257G\3\2\2\2\u0258"+ + "\u025a\5J&\2\u0259\u0258\3\2\2\2\u025a\u025d\3\2\2\2\u025b\u0259\3\2\2"+ + "\2\u025b\u025c\3\2\2\2\u025cI\3\2\2\2\u025d\u025b\3\2\2\2\u025e\u0262"+ + "\5L\'\2\u025f\u0262\5N(\2\u0260\u0262\5P)\2\u0261\u025e\3\2\2\2\u0261"+ + "\u025f\3\2\2\2\u0261\u0260\3\2\2\2\u0262K\3\2\2\2\u0263\u0264\7d\2\2\u0264"+ + "\u026b\7!\2\2\u0265\u0267\7\62\2\2\u0266\u0268\7d\2\2\u0267\u0266\3\2"+ + "\2\2\u0267\u0268\3\2\2\2\u0268\u0269\3\2\2\2\u0269\u026b\7!\2\2\u026a"+ + "\u0263\3\2\2\2\u026a\u0265\3\2\2\2\u026bM\3\2\2\2\u026c\u026e\7U\2\2\u026d"+ + "\u026f\5R*\2\u026e\u026d\3\2\2\2\u026e\u026f\3\2\2\2\u026fO\3\2\2\2\u0270"+ + "\u0271\7T\2\2\u0271\u0276\5T+\2\u0272\u0273\7\6\2\2\u0273\u0275\5T+\2"+ + "\u0274\u0272\3\2\2\2\u0275\u0278\3\2\2\2\u0276\u0274\3\2\2\2\u0276\u0277"+ + "\3\2\2\2\u0277Q\3\2\2\2\u0278\u0276\3\2\2\2\u0279\u0291\5T+\2\u027a\u027b"+ + "\7\f\2\2\u027b\u0291\5T+\2\u027c\u027d\5T+\2\u027d\u027e\7\6\2\2\u027e"+ + "\u027f\7d\2\2\u027f\u0291\3\2\2\2\u0280\u0281\7\b\2\2\u0281\u0282\5T+"+ + "\2\u0282\u0283\7\t\2\2\u0283\u0284\7\6\2\2\u0284\u0285\7d\2\2\u0285\u0291"+ + "\3\2\2\2\u0286\u0287\7\b\2\2\u0287\u0288\5T+\2\u0288\u0289\7\6\2\2\u0289"+ + "\u028a\7d\2\2\u028a\u028b\7\t\2\2\u028b\u0291\3\2\2\2\u028c\u028d\7\b"+ + "\2\2\u028d\u028e\5T+\2\u028e\u028f\7\t\2\2\u028f\u0291\3\2\2\2\u0290\u0279"+ + "\3\2\2\2\u0290\u027a\3\2\2\2\u0290\u027c\3\2\2\2\u0290\u0280\3\2\2\2\u0290"+ + "\u0286\3\2\2\2\u0290\u028c\3\2\2\2\u0291S\3\2\2\2\u0292\u0293\b+\1\2\u0293"+ + "\u0294\7&\2\2\u0294\u0295\5T+\2\u0295\u0296\7\'\2\2\u0296\u02a1\3\2\2"+ + "\2\u0297\u0298\t\13\2\2\u0298\u02a1\5T+\n\u0299\u02a1\7d\2\2\u029a\u02a1"+ + "\7e\2\2\u029b\u029c\7\n\2\2\u029c\u029d\7d\2\2\u029d\u02a1\7\13\2\2\u029e"+ + "\u02a1\7[\2\2\u029f\u02a1\7Y\2\2\u02a0\u0292\3\2\2\2\u02a0\u0297\3\2\2"+ + "\2\u02a0\u0299\3\2\2\2\u02a0\u029a\3\2\2\2\u02a0\u029b\3\2\2\2\u02a0\u029e"+ + "\3\2\2\2\u02a0\u029f\3\2\2\2\u02a1\u02b0\3\2\2\2\u02a2\u02a3\f\f\2\2\u02a3"+ + "\u02a4\7*\2\2\u02a4\u02af\5T+\r\u02a5\u02a6\f\13\2\2\u02a6\u02a7\t\6\2"+ + "\2\u02a7\u02af\5T+\f\u02a8\u02a9\f\t\2\2\u02a9\u02aa\t\f\2\2\u02aa\u02af"+ + "\5T+\n\u02ab\u02ac\f\b\2\2\u02ac\u02ad\t\b\2\2\u02ad\u02af\5T+\t\u02ae"+ + "\u02a2\3\2\2\2\u02ae\u02a5\3\2\2\2\u02ae\u02a8\3\2\2\2\u02ae\u02ab\3\2"+ + "\2\2\u02af\u02b2\3\2\2\2\u02b0\u02ae\3\2\2\2\u02b0\u02b1\3\2\2\2\u02b1"+ + "U\3\2\2\2\u02b2\u02b0\3\2\2\2B`iz\u0082\u0089\u0097\u009d\u00a2\u00a8"+ + "\u00ad\u00b6\u00bd\u00d0\u00e2\u00e5\u00ee\u00f6\u00fd\u010a\u010f\u011b"+ + "\u0129\u0134\u013d\u0144\u014b\u014e\u0156\u0159\u015c\u0166\u016d\u0174"+ + "\u017a\u017c\u0184\u018a\u0196\u01a4\u01aa\u01b4\u01c0\u01c8\u01df\u01e9"+ + "\u01ed\u021f\u0229\u022b\u0233\u0238\u0242\u0254\u0256\u025b\u0261\u0267"+ + "\u026a\u026e\u0276\u0290\u02a0\u02ae\u02b0"; public static final ATN _ATN = new ATNDeserializer().deserialize(_serializedATN.toCharArray()); static { diff --git a/src/main/java/dk/camelot64/kickc/parser/KickCVisitor.java b/src/main/java/dk/camelot64/kickc/parser/KickCVisitor.java index fff9c94c6..d862426d1 100644 --- a/src/main/java/dk/camelot64/kickc/parser/KickCVisitor.java +++ b/src/main/java/dk/camelot64/kickc/parser/KickCVisitor.java @@ -1,4 +1,4 @@ -// Generated from C:/c64/kickc/src/main/java/dk/camelot64/kickc/parser\KickC.g4 by ANTLR 4.7 +// Generated from /Users/jespergravgaard/c64/kickc/src/main/java/dk/camelot64/kickc/parser/KickC.g4 by ANTLR 4.7 package dk.camelot64.kickc.parser; import org.antlr.v4.runtime.tree.ParseTreeVisitor; @@ -124,6 +124,13 @@ public interface KickCVisitor<T> extends ParseTreeVisitor<T> { * @return the visitor result */ T visitGlobalDirectivePc(KickCParser.GlobalDirectivePcContext ctx); + /** + * Visit a parse tree produced by the {@code globalDirectivePlatform} + * labeled alternative in {@link KickCParser#globalDirective}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitGlobalDirectivePlatform(KickCParser.GlobalDirectivePlatformContext ctx); /** * Visit a parse tree produced by the {@code globalDirectiveEncoding} * labeled alternative in {@link KickCParser#globalDirective}. diff --git a/src/main/java/dk/camelot64/kickc/passes/Pass0GenerateStatementSequence.java b/src/main/java/dk/camelot64/kickc/passes/Pass0GenerateStatementSequence.java index 29eff1373..9daf3a9ee 100644 --- a/src/main/java/dk/camelot64/kickc/passes/Pass0GenerateStatementSequence.java +++ b/src/main/java/dk/camelot64/kickc/passes/Pass0GenerateStatementSequence.java @@ -133,6 +133,19 @@ public class Pass0GenerateStatementSequence extends KickCBaseVisitor<Object> { Number programPc = NumberParser.parseLiteral(ctx.NUMBER().getText()); if(programPc != null) { program.setProgramPc(programPc); + } else { + throw new CompileError("Cannot parse #pc directive",new StatementSource(ctx)); + } + return null; + } + + @Override + public Object visitGlobalDirectivePlatform(KickCParser.GlobalDirectivePlatformContext ctx) { + TargetPlatform platform = TargetPlatform.getTargetPlatform(ctx.NAME().getText()); + if(platform != null) { + program.setTargetPlatform(platform); + } else { + throw new CompileError("Unknown target platform in #platform directive",new StatementSource(ctx)); } return null; } diff --git a/src/main/java/dk/camelot64/kickc/passes/Pass4CodeGeneration.java b/src/main/java/dk/camelot64/kickc/passes/Pass4CodeGeneration.java index c4c6cf208..db45eb3f9 100644 --- a/src/main/java/dk/camelot64/kickc/passes/Pass4CodeGeneration.java +++ b/src/main/java/dk/camelot64/kickc/passes/Pass4CodeGeneration.java @@ -77,12 +77,18 @@ public class Pass4CodeGeneration { if(program.getProgramPc() != null) { programPc = program.getProgramPc(); } else { - programPc = 0x080d; + if(TargetPlatform.C64BASIC.equals(program.getTargetPlatform())) { + programPc = 0x080d; + } else { + programPc = 0x1000; + } } - asm.startSegment(currentScope, null, "Basic Upstart"); - asm.addLine(new AsmSetPc("Basic", AsmFormat.getAsmNumber(0x0801))); - asm.addLine(new AsmBasicUpstart("bbegin")); + asm.startSegment(currentScope, null, "Upstart"); + if(TargetPlatform.C64BASIC.equals(program.getTargetPlatform())) { + asm.addLine(new AsmSetPc("Basic", AsmFormat.getAsmNumber(0x0801))); + asm.addLine(new AsmBasicUpstart("bbegin")); + } asm.addLine(new AsmSetPc("Program", AsmFormat.getAsmNumber(programPc))); // Generate global ZP labels diff --git a/src/test/java/dk/camelot64/kickc/test/TestPrograms.java b/src/test/java/dk/camelot64/kickc/test/TestPrograms.java index 0cc48883a..ec85f4c8e 100644 --- a/src/test/java/dk/camelot64/kickc/test/TestPrograms.java +++ b/src/test/java/dk/camelot64/kickc/test/TestPrograms.java @@ -35,6 +35,12 @@ public class TestPrograms { public TestPrograms() { } + @Test + public void testPlatformAsm6502() throws IOException, URISyntaxException { + compileAndCompare("platform-asm6502"); + } + + @Test public void testEuclid2() throws IOException, URISyntaxException { compileAndCompare("euclid-3"); diff --git a/src/test/kc/euclid-3.kc b/src/test/kc/euclid-3.kc index 2e697c271..b01ae3e31 100644 --- a/src/test/kc/euclid-3.kc +++ b/src/test/kc/euclid-3.kc @@ -1,5 +1,5 @@ /* - * Find least common denominator using subtraction-based Euclidian algorithm + * Find greatest common denominator using subtraction-based Euclidian algorithm * See https://en.wikipedia.org/wiki/Euclidean_algorithm * Based on facebook post from */ diff --git a/src/test/kc/platform-asm6502.kc b/src/test/kc/platform-asm6502.kc new file mode 100644 index 000000000..d02d11ada --- /dev/null +++ b/src/test/kc/platform-asm6502.kc @@ -0,0 +1,10 @@ +// Tests the target platform ASM6502 + +#platform(asm6502) + +unsigned char[10] TABLE; + +void main() { + for(char i=0;i<10;i++) + TABLE[i] = i; +} \ No newline at end of file diff --git a/src/test/ref/address-of-0.log b/src/test/ref/address-of-0.log index d0749c391..ff73a2f0d 100644 --- a/src/test/ref/address-of-0.log +++ b/src/test/ref/address-of-0.log @@ -145,9 +145,10 @@ Allocated zp ZP_BYTE:2 [ main::b#2 main::b#0 main::b#1 ] Allocated zp ZP_BYTE:3 [ main::c#0 ] INITIAL ASM +Target platform is c64basic // File Comments // Test address-of - use the pointer to get the value - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -223,7 +224,7 @@ Uplifting [main] best 368 combination zp ZP_BYTE:2 [ main::b#2 main::b#0 main::b ASSEMBLER BEFORE OPTIMIZATION // File Comments // Test address-of - use the pointer to get the value - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -327,7 +328,7 @@ Score: 296 // File Comments // Test address-of - use the pointer to get the value - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/address-of-1.log b/src/test/ref/address-of-1.log index a665bf4af..5fb0757fa 100644 --- a/src/test/ref/address-of-1.log +++ b/src/test/ref/address-of-1.log @@ -261,9 +261,10 @@ Allocated zp ZP_BYTE:6 [ main::b2#0 ] Allocated zp ZP_BYTE:7 [ main::b3#0 ] INITIAL ASM +Target platform is c64basic // File Comments // Test address-of - pass the pointer as parameter - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -414,7 +415,7 @@ Allocated (was zp ZP_BYTE:7) zp ZP_BYTE:6 [ main::b3#0 ] ASSEMBLER BEFORE OPTIMIZATION // File Comments // Test address-of - pass the pointer as parameter - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -595,7 +596,7 @@ Score: 108 // File Comments // Test address-of - pass the pointer as parameter - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/address-of-2.log b/src/test/ref/address-of-2.log index 569335bae..be2d5cb11 100644 --- a/src/test/ref/address-of-2.log +++ b/src/test/ref/address-of-2.log @@ -364,9 +364,10 @@ Complete equivalence classes Allocated zp ZP_BYTE:2 [ val#0 val#1 val#2 val#12 ] INITIAL ASM +Target platform is c64basic // File Comments // Test address-of by assigning the affected variable in multiple ways - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -521,7 +522,7 @@ Uplifting [] best 175 combination zp ZP_BYTE:2 [ val#0 val#1 val#2 val#12 ] ASSEMBLER BEFORE OPTIMIZATION // File Comments // Test address-of by assigning the affected variable in multiple ways - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -703,7 +704,7 @@ Score: 154 // File Comments // Test address-of by assigning the affected variable in multiple ways - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" diff --git a/src/test/ref/array-length-symbolic-min.log b/src/test/ref/array-length-symbolic-min.log index 015193fea..c1b32a18f 100644 --- a/src/test/ref/array-length-symbolic-min.log +++ b/src/test/ref/array-length-symbolic-min.log @@ -143,9 +143,10 @@ Complete equivalence classes Allocated zp ZP_BYTE:2 [ main::sub#2 main::sub#1 ] INITIAL ASM +Target platform is c64basic // File Comments // Illustrates symbolic array lengths - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -215,7 +216,7 @@ Uplifting [] best 263 combination ASSEMBLER BEFORE OPTIMIZATION // File Comments // Illustrates symbolic array lengths - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -317,7 +318,7 @@ Score: 161 // File Comments // Illustrates symbolic array lengths - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/array-length-symbolic.log b/src/test/ref/array-length-symbolic.log index 39a37923f..0d0d89178 100644 --- a/src/test/ref/array-length-symbolic.log +++ b/src/test/ref/array-length-symbolic.log @@ -285,9 +285,10 @@ Allocated zp ZP_BYTE:6 [ main::$2 ] Allocated zp ZP_BYTE:7 [ main::$3 ] INITIAL ASM +Target platform is c64basic // File Comments // Illustrates symbolic array lengths - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -420,7 +421,7 @@ Allocated (was zp ZP_WORD:3) zp ZP_WORD:2 [ main::cur_item#4 main::cur_item#1 ] ASSEMBLER BEFORE OPTIMIZATION // File Comments // Illustrates symbolic array lengths - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -587,7 +588,7 @@ Score: 3416 // File Comments // Illustrates symbolic array lengths - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/arrays-init-kasm-0.log b/src/test/ref/arrays-init-kasm-0.log index d1cbea46b..26534385a 100644 --- a/src/test/ref/arrays-init-kasm-0.log +++ b/src/test/ref/arrays-init-kasm-0.log @@ -91,9 +91,10 @@ Initial phi equivalence classes Complete equivalence classes INITIAL ASM +Target platform is c64basic // File Comments // Test initializing array using KickAssembler - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -143,7 +144,7 @@ Uplifting [] best 29 combination ASSEMBLER BEFORE OPTIMIZATION // File Comments // Test initializing array using KickAssembler - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -217,7 +218,7 @@ Score: 14 // File Comments // Test initializing array using KickAssembler - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/arrays-init.log b/src/test/ref/arrays-init.log index 2f0fff69f..497c83d71 100644 --- a/src/test/ref/arrays-init.log +++ b/src/test/ref/arrays-init.log @@ -138,8 +138,9 @@ Initial phi equivalence classes Complete equivalence classes INITIAL ASM +Target platform is c64basic // File Comments - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -199,7 +200,7 @@ Uplifting [] best 51 combination ASSEMBLER BEFORE OPTIMIZATION // File Comments - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -285,7 +286,7 @@ FINAL ASSEMBLER Score: 32 // File Comments - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/assignment-chained.log b/src/test/ref/assignment-chained.log index 720dd0188..9d599cc22 100644 --- a/src/test/ref/assignment-chained.log +++ b/src/test/ref/assignment-chained.log @@ -149,9 +149,10 @@ Complete equivalence classes Allocated zp ZP_BYTE:2 [ main::a#2 ] INITIAL ASM +Target platform is c64basic // File Comments // Tests that chained assignments work as intended - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -222,7 +223,7 @@ Uplifting [] best 59 combination ASSEMBLER BEFORE OPTIMIZATION // File Comments // Tests that chained assignments work as intended - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -312,7 +313,7 @@ Score: 38 // File Comments // Tests that chained assignments work as intended - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/assignment-compound.log b/src/test/ref/assignment-compound.log index 6f7edb037..2a5f56ccc 100644 --- a/src/test/ref/assignment-compound.log +++ b/src/test/ref/assignment-compound.log @@ -744,9 +744,10 @@ Allocated zp ZP_BYTE:2 [ test::a#11 ] Allocated zp ZP_BYTE:3 [ test::i#11 ] INITIAL ASM +Target platform is c64basic // File Comments // Test compound assignment operators - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -1010,7 +1011,7 @@ Uplifting [test] best 250 combination zp ZP_BYTE:2 [ test::a#11 ] ASSEMBLER BEFORE OPTIMIZATION // File Comments // Test compound assignment operators - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -1342,7 +1343,7 @@ Score: 202 // File Comments // Test compound assignment operators - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/bgblack.log b/src/test/ref/bgblack.log index 4cad9c327..fd685c7a9 100644 --- a/src/test/ref/bgblack.log +++ b/src/test/ref/bgblack.log @@ -89,8 +89,9 @@ Initial phi equivalence classes Complete equivalence classes INITIAL ASM +Target platform is c64basic // File Comments - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -137,7 +138,7 @@ Uplifting [] best 27 combination ASSEMBLER BEFORE OPTIMIZATION // File Comments - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -207,7 +208,7 @@ FINAL ASSEMBLER Score: 12 // File Comments - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/bitmap-plot-0.log b/src/test/ref/bitmap-plot-0.log index 639ec47c5..63fc32383 100644 --- a/src/test/ref/bitmap-plot-0.log +++ b/src/test/ref/bitmap-plot-0.log @@ -1802,10 +1802,11 @@ Allocated zp ZP_BYTE:35 [ bitmap_init::$5 ] Allocated zp ZP_BYTE:36 [ bitmap_init::$6 ] INITIAL ASM +Target platform is c64basic // File Comments // Tests the simple bitmap plotter - and counts plots per frame in an IRQ // Plots simple plots - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -2573,7 +2574,7 @@ ASSEMBLER BEFORE OPTIMIZATION // File Comments // Tests the simple bitmap plotter - and counts plots per frame in an IRQ // Plots simple plots - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -3448,7 +3449,7 @@ Score: 3147 // File Comments // Tests the simple bitmap plotter - and counts plots per frame in an IRQ // Plots simple plots - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" diff --git a/src/test/ref/bitmap-plot-1.log b/src/test/ref/bitmap-plot-1.log index 7cd046147..e96e8410b 100644 --- a/src/test/ref/bitmap-plot-1.log +++ b/src/test/ref/bitmap-plot-1.log @@ -4021,10 +4021,11 @@ Allocated zp ZP_BYTE:224 [ divr16u::$2 ] Allocated zp ZP_WORD:225 [ rem16u#1 ] INITIAL ASM +Target platform is c64basic // File Comments // Tests the simple bitmap plotter - and counts plots per frame in an IRQ // Plots a fullscreen elipsis - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -6376,7 +6377,7 @@ ASSEMBLER BEFORE OPTIMIZATION // File Comments // Tests the simple bitmap plotter - and counts plots per frame in an IRQ // Plots a fullscreen elipsis - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -8645,7 +8646,7 @@ Score: 20251 // File Comments // Tests the simple bitmap plotter - and counts plots per frame in an IRQ // Plots a fullscreen elipsis - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" diff --git a/src/test/ref/bitmap-plot-2.log b/src/test/ref/bitmap-plot-2.log index f9af9f2b3..dd9ffded2 100644 --- a/src/test/ref/bitmap-plot-2.log +++ b/src/test/ref/bitmap-plot-2.log @@ -4257,10 +4257,11 @@ Allocated zp ZP_BYTE:223 [ divr16u::$2 ] Allocated zp ZP_WORD:224 [ rem16u#1 ] INITIAL ASM +Target platform is c64basic // File Comments // Tests the simple bitmap plotter - and counts plots per frame in an IRQ // Plots a spiral - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -6693,7 +6694,7 @@ ASSEMBLER BEFORE OPTIMIZATION // File Comments // Tests the simple bitmap plotter - and counts plots per frame in an IRQ // Plots a spiral - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -9054,7 +9055,7 @@ Score: 20436 // File Comments // Tests the simple bitmap plotter - and counts plots per frame in an IRQ // Plots a spiral - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" diff --git a/src/test/ref/bitmap-plot-3.log b/src/test/ref/bitmap-plot-3.log index 0caf62fa5..ff466b2f2 100644 --- a/src/test/ref/bitmap-plot-3.log +++ b/src/test/ref/bitmap-plot-3.log @@ -2493,10 +2493,11 @@ Allocated zp ZP_BYTE:72 [ bitmap_init::$5 ] Allocated zp ZP_BYTE:73 [ bitmap_init::$6 ] INITIAL ASM +Target platform is c64basic // File Comments // Tests the simple bitmap plotter // Plots a few lines using the bresenham line algorithm - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -3717,7 +3718,7 @@ ASSEMBLER BEFORE OPTIMIZATION // File Comments // Tests the simple bitmap plotter // Plots a few lines using the bresenham line algorithm - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -4970,7 +4971,7 @@ Score: 27229 // File Comments // Tests the simple bitmap plotter // Plots a few lines using the bresenham line algorithm - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/bitmap-plotter.log b/src/test/ref/bitmap-plotter.log index 5768efd54..9aff62547 100644 --- a/src/test/ref/bitmap-plotter.log +++ b/src/test/ref/bitmap-plotter.log @@ -1020,8 +1020,9 @@ Allocated zp ZP_BYTE:32 [ init_plot_tables::$8 ] Allocated zp ZP_BYTE:33 [ init_plot_tables::$9 ] INITIAL ASM +Target platform is c64basic // File Comments - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -1559,7 +1560,7 @@ Allocated (was zp ZP_BYTE:30) zp ZP_BYTE:14 [ init_plot_tables::$10 ] ASSEMBLER BEFORE OPTIMIZATION // File Comments - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -2149,7 +2150,7 @@ FINAL ASSEMBLER Score: 6171 // File Comments - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/bitwise-not.log b/src/test/ref/bitwise-not.log index 101797448..a231b2790 100644 --- a/src/test/ref/bitwise-not.log +++ b/src/test/ref/bitwise-not.log @@ -124,8 +124,9 @@ Allocated zp ZP_BYTE:2 [ main::c#2 main::c#1 ] Allocated zp ZP_BYTE:3 [ main::$0 ] INITIAL ASM +Target platform is c64basic // File Comments - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -204,7 +205,7 @@ Uplifting [] best 289 combination ASSEMBLER BEFORE OPTIMIZATION // File Comments - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -304,7 +305,7 @@ FINAL ASSEMBLER Score: 187 // File Comments - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/bool-const.log b/src/test/ref/bool-const.log index 4f7658ef5..f5ab2a5dd 100644 --- a/src/test/ref/bool-const.log +++ b/src/test/ref/bool-const.log @@ -386,9 +386,10 @@ Initial phi equivalence classes Complete equivalence classes INITIAL ASM +Target platform is c64basic // File Comments // A Minimal test of boolean constants. - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -508,7 +509,7 @@ Uplifting [] best 180 combination ASSEMBLER BEFORE OPTIMIZATION // File Comments // A Minimal test of boolean constants. - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -680,7 +681,7 @@ Score: 60 // File Comments // A Minimal test of boolean constants. - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/bool-function.log b/src/test/ref/bool-function.log index c870811a1..a1e23ca2f 100644 --- a/src/test/ref/bool-function.log +++ b/src/test/ref/bool-function.log @@ -275,9 +275,10 @@ Allocated zp ZP_BOOL:9 [ isSet::$1 ] Allocated zp ZP_BOOL:10 [ isSet::return#1 ] INITIAL ASM +Target platform is c64basic // File Comments // Test a function taking boolean parameter and returning boolean result - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -447,7 +448,7 @@ Allocated (was zp ZP_BOOL:4) zp ZP_BOOL:2 [ isSet::b#0 ] ASSEMBLER BEFORE OPTIMIZATION // File Comments // Test a function taking boolean parameter and returning boolean result - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -631,7 +632,7 @@ Score: 540 // File Comments // Test a function taking boolean parameter and returning boolean result - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/bool-ifs.log b/src/test/ref/bool-ifs.log index 838aae630..71b94545a 100644 --- a/src/test/ref/bool-ifs.log +++ b/src/test/ref/bool-ifs.log @@ -657,9 +657,10 @@ Allocated zp ZP_BYTE:8 [ bool_or::$1 ] Allocated zp ZP_BYTE:9 [ bool_and::$1 ] INITIAL ASM +Target platform is c64basic // File Comments // A test of boolean conditions using && || and ! - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -1031,7 +1032,7 @@ Uplifting [] best 2488 combination ASSEMBLER BEFORE OPTIMIZATION // File Comments // A test of boolean conditions using && || and ! - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -1474,7 +1475,7 @@ Score: 1684 // File Comments // A test of boolean conditions using && || and ! - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/bool-nullpointer-exception.log b/src/test/ref/bool-nullpointer-exception.log index 93bbef88d..972fec4b1 100644 --- a/src/test/ref/bool-nullpointer-exception.log +++ b/src/test/ref/bool-nullpointer-exception.log @@ -139,9 +139,10 @@ Complete equivalence classes Allocated zp ZP_BOOL:2 [ framedone#2 ] INITIAL ASM +Target platform is c64basic // File Comments // Some bool code that causes a NullPointerException - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -203,7 +204,7 @@ Uplifting [main] best 892 combination ASSEMBLER BEFORE OPTIMIZATION // File Comments // Some bool code that causes a NullPointerException - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -290,7 +291,7 @@ Score: 820 // File Comments // Some bool code that causes a NullPointerException - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/bool-pointer.log b/src/test/ref/bool-pointer.log index b416e227c..4ccf72aa0 100644 --- a/src/test/ref/bool-pointer.log +++ b/src/test/ref/bool-pointer.log @@ -133,9 +133,10 @@ Initial phi equivalence classes Complete equivalence classes INITIAL ASM +Target platform is c64basic // File Comments // Tests a pointer to a boolean - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -200,7 +201,7 @@ Uplifting [] best 56 combination ASSEMBLER BEFORE OPTIMIZATION // File Comments // Tests a pointer to a boolean - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -286,7 +287,7 @@ Score: 40 // File Comments // Tests a pointer to a boolean - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/bool-vars.log b/src/test/ref/bool-vars.log index fd1769670..24085e8b2 100644 --- a/src/test/ref/bool-vars.log +++ b/src/test/ref/bool-vars.log @@ -710,9 +710,10 @@ Allocated zp ZP_BYTE:10 [ bool_or::$1 ] Allocated zp ZP_BYTE:11 [ bool_and::$1 ] INITIAL ASM +Target platform is c64basic // File Comments // A test of boolean conditions using && || and ! - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -1120,7 +1121,7 @@ Allocated (was zp ZP_BOOL:8) zp ZP_BOOL:3 [ bool_complex::o2#0 ] ASSEMBLER BEFORE OPTIMIZATION // File Comments // A test of boolean conditions using && || and ! - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -1598,7 +1599,7 @@ Score: 2059 // File Comments // A test of boolean conditions using && || and ! - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/bresenham.log b/src/test/ref/bresenham.log index 7c4866c3e..b70947131 100644 --- a/src/test/ref/bresenham.log +++ b/src/test/ref/bresenham.log @@ -390,8 +390,9 @@ Allocated zp ZP_BYTE:5 [ main::e#3 main::e#5 main::e#1 main::e#2 ] Allocated zp ZP_BYTE:6 [ main::y#2 main::y#4 main::y#1 ] INITIAL ASM +Target platform is c64basic // File Comments - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -547,7 +548,7 @@ Allocated (was zp ZP_BYTE:6) zp ZP_BYTE:5 [ main::y#2 main::y#4 main::y#1 ] ASSEMBLER BEFORE OPTIMIZATION // File Comments - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -744,7 +745,7 @@ FINAL ASSEMBLER Score: 926 // File Comments - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/bresenhamarr.log b/src/test/ref/bresenhamarr.log index 6c054efca..c67406555 100644 --- a/src/test/ref/bresenhamarr.log +++ b/src/test/ref/bresenhamarr.log @@ -401,8 +401,9 @@ Allocated zp ZP_BYTE:6 [ main::y#2 main::y#4 main::y#1 ] Allocated zp ZP_WORD:7 [ main::$15 ] INITIAL ASM +Target platform is c64basic // File Comments - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -569,7 +570,7 @@ Allocated (was zp ZP_WORD:7) zp ZP_WORD:6 [ main::$15 ] ASSEMBLER BEFORE OPTIMIZATION // File Comments - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -777,7 +778,7 @@ FINAL ASSEMBLER Score: 1111 // File Comments - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/c-types.log b/src/test/ref/c-types.log index 23f239c6a..29e816edb 100644 --- a/src/test/ref/c-types.log +++ b/src/test/ref/c-types.log @@ -2275,9 +2275,10 @@ Allocated zp ZP_BYTE:24 [ print_byte::$0 ] Allocated zp ZP_BYTE:25 [ print_byte::$2 ] INITIAL ASM +Target platform is c64basic // File Comments // Tests the different standard C types - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -3341,7 +3342,7 @@ Allocated (was zp ZP_WORD:22) zp ZP_WORD:14 [ memset::dst#2 memset::dst#1 ] ASSEMBLER BEFORE OPTIMIZATION // File Comments // Tests the different standard C types - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -4685,7 +4686,7 @@ Score: 2166 // File Comments // Tests the different standard C types - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/c64dtv-8bppcharstretch.log b/src/test/ref/c64dtv-8bppcharstretch.log index 88c01a1f6..d1b40154f 100644 --- a/src/test/ref/c64dtv-8bppcharstretch.log +++ b/src/test/ref/c64dtv-8bppcharstretch.log @@ -1603,9 +1603,10 @@ Allocated zp ZP_BYTE:25 [ gfx_init_screen0::$2 ] Allocated zp ZP_BYTE:26 [ gfx_init_screen0::$3 ] INITIAL ASM +Target platform is c64basic // File Comments // C64DTV 8bpp charmode stretcher - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -2388,7 +2389,7 @@ Allocated (was zp ZP_BYTE:24) zp ZP_BYTE:13 [ gfx_init_screen0::$1 ] ASSEMBLER BEFORE OPTIMIZATION // File Comments // C64DTV 8bpp charmode stretcher - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -3269,7 +3270,7 @@ Score: 75375 // File Comments // C64DTV 8bpp charmode stretcher - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/c64dtv-8bppchunkystretch.log b/src/test/ref/c64dtv-8bppchunkystretch.log index 05f771a40..09de71eb9 100644 --- a/src/test/ref/c64dtv-8bppchunkystretch.log +++ b/src/test/ref/c64dtv-8bppchunkystretch.log @@ -1134,9 +1134,10 @@ Allocated zp ZP_WORD:14 [ gfx_init_chunky::$8 ] Allocated zp ZP_BYTE:16 [ gfx_init_chunky::c#0 ] INITIAL ASM +Target platform is c64basic // File Comments // C64DTV 8bpp charmode stretcher - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -1691,7 +1692,7 @@ Allocated (was zp ZP_WORD:14) zp ZP_WORD:7 [ gfx_init_chunky::$8 ] ASSEMBLER BEFORE OPTIMIZATION // File Comments // C64DTV 8bpp charmode stretcher - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -2328,7 +2329,7 @@ Score: 19882 // File Comments // C64DTV 8bpp charmode stretcher - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/c64dtv-blitter-box.log b/src/test/ref/c64dtv-blitter-box.log index 07fbe0008..33eea80f2 100644 --- a/src/test/ref/c64dtv-blitter-box.log +++ b/src/test/ref/c64dtv-blitter-box.log @@ -641,9 +641,10 @@ Complete equivalence classes Allocated zp ZP_BYTE:2 [ main::$13 ] INITIAL ASM +Target platform is c64basic // File Comments // Fill a box on the screen using the blitter - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -904,7 +905,7 @@ Uplifting [] best 348 combination ASSEMBLER BEFORE OPTIMIZATION // File Comments // Fill a box on the screen using the blitter - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -1247,7 +1248,7 @@ Score: 291 // File Comments // Fill a box on the screen using the blitter - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/c64dtv-blittermin.log b/src/test/ref/c64dtv-blittermin.log index f79ed40df..60d23f54e 100644 --- a/src/test/ref/c64dtv-blittermin.log +++ b/src/test/ref/c64dtv-blittermin.log @@ -683,8 +683,9 @@ Allocated zp ZP_BYTE:2 [ main::r#2 main::r#1 ] Allocated zp ZP_BYTE:3 [ main::$9 ] INITIAL ASM +Target platform is c64basic // File Comments - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -1006,7 +1007,7 @@ Uplifting [] best 2515 combination ASSEMBLER BEFORE OPTIMIZATION // File Comments - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -1390,7 +1391,7 @@ FINAL ASSEMBLER Score: 1553 // File Comments - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/c64dtv-color.log b/src/test/ref/c64dtv-color.log index f5950e86a..549d2922f 100644 --- a/src/test/ref/c64dtv-color.log +++ b/src/test/ref/c64dtv-color.log @@ -329,9 +329,10 @@ Allocated zp ZP_BYTE:2 [ main::r#2 main::r#1 ] Allocated zp ZP_BYTE:3 [ main::c#2 main::c#1 ] INITIAL ASM +Target platform is c64basic // File Comments // Test C64DTV v2 256-colors and the 16-color redefinable palette - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -490,7 +491,7 @@ Uplifting [] best 11689 combination ASSEMBLER BEFORE OPTIMIZATION // File Comments // Test C64DTV v2 256-colors and the 16-color redefinable palette - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -691,7 +692,7 @@ Score: 10174 // File Comments // Test C64DTV v2 256-colors and the 16-color redefinable palette - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/c64dtv-gfxexplorer.log b/src/test/ref/c64dtv-gfxexplorer.log index 8411b6223..43eba9985 100644 --- a/src/test/ref/c64dtv-gfxexplorer.log +++ b/src/test/ref/c64dtv-gfxexplorer.log @@ -15133,9 +15133,10 @@ Allocated zp ZP_BYTE:341 [ gfx_init_screen0::$2 ] Allocated zp ZP_BYTE:342 [ gfx_init_screen0::$3 ] INITIAL ASM +Target platform is c64basic // File Comments // Interactive Explorer for C64DTV Screen Modes - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -22544,7 +22545,7 @@ Allocated (was zp ZP_BYTE:340) zp ZP_BYTE:139 [ gfx_init_screen0::$1 ] ASSEMBLER BEFORE OPTIMIZATION // File Comments // Interactive Explorer for C64DTV Screen Modes - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -30424,7 +30425,7 @@ Score: 10127070 // File Comments // Interactive Explorer for C64DTV Screen Modes - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/c64dtv-gfxmodes.log b/src/test/ref/c64dtv-gfxmodes.log index 7a8827f7b..75007d7bc 100644 --- a/src/test/ref/c64dtv-gfxmodes.log +++ b/src/test/ref/c64dtv-gfxmodes.log @@ -14063,9 +14063,10 @@ Allocated zp ZP_BYTE:293 [ mode_stdchar::$30 ] Allocated zp ZP_BYTE:294 [ print_str_lines::ch#0 ] INITIAL ASM +Target platform is c64basic // File Comments // Exploring C64DTV Screen Modes - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -20970,7 +20971,7 @@ Allocated (was zp ZP_BYTE:291) zp ZP_BYTE:128 [ mode_stdchar::$28 ] ASSEMBLER BEFORE OPTIMIZATION // File Comments // Exploring C64DTV Screen Modes - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -28102,7 +28103,7 @@ Score: 2305541 // File Comments // Exploring C64DTV Screen Modes - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/call-parameter-autocast.log b/src/test/ref/call-parameter-autocast.log index 20208ae48..7b40ea2d5 100644 --- a/src/test/ref/call-parameter-autocast.log +++ b/src/test/ref/call-parameter-autocast.log @@ -260,9 +260,10 @@ Allocated zp ZP_WORD:3 [ print::w#3 ] Allocated zp ZP_BYTE:5 [ print::$0 ] INITIAL ASM +Target platform is c64basic // File Comments // Test auto-casting of call-parameters - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -384,7 +385,7 @@ Allocated (was zp ZP_WORD:3) zp ZP_WORD:2 [ print::w#3 ] ASSEMBLER BEFORE OPTIMIZATION // File Comments // Test auto-casting of call-parameters - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -540,7 +541,7 @@ Score: 86 // File Comments // Test auto-casting of call-parameters - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/callconstparam.log b/src/test/ref/callconstparam.log index e8928f521..d271edce3 100644 --- a/src/test/ref/callconstparam.log +++ b/src/test/ref/callconstparam.log @@ -251,11 +251,12 @@ Allocated zp ZP_BYTE:3 [ line::x#2 line::x#0 line::x#1 ] Allocated zp ZP_WORD:4 [ screen#10 screen#14 screen#11 ] INITIAL ASM +Target platform is c64basic // File Comments // Multiple calls with different (constant?) parameters should yield different values at runtime // Currently the same constant parameter is passed on every call. // Reason: Multiple versioned parameter constants x0#0, x0#1 are only output as a single constant in the ASM .const x0 = 0 - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -378,7 +379,7 @@ ASSEMBLER BEFORE OPTIMIZATION // Multiple calls with different (constant?) parameters should yield different values at runtime // Currently the same constant parameter is passed on every call. // Reason: Multiple versioned parameter constants x0#0, x0#1 are only output as a single constant in the ASM .const x0 = 0 - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -535,7 +536,7 @@ Score: 348 // Multiple calls with different (constant?) parameters should yield different values at runtime // Currently the same constant parameter is passed on every call. // Reason: Multiple versioned parameter constants x0#0, x0#1 are only output as a single constant in the ASM .const x0 = 0 - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/cast-deref.log b/src/test/ref/cast-deref.log index 3a7bcf0d5..e2e9406bd 100644 --- a/src/test/ref/cast-deref.log +++ b/src/test/ref/cast-deref.log @@ -136,9 +136,10 @@ Complete equivalence classes Allocated zp ZP_BYTE:2 [ main::i#2 main::i#1 ] INITIAL ASM +Target platform is c64basic // File Comments // Example of NOP-casting a dereferenced signed byte to a byte - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -210,7 +211,7 @@ Uplifting [] best 288 combination ASSEMBLER BEFORE OPTIMIZATION // File Comments // Example of NOP-casting a dereferenced signed byte to a byte - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -310,7 +311,7 @@ Score: 186 // File Comments // Example of NOP-casting a dereferenced signed byte to a byte - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/cast-not-needed-2.log b/src/test/ref/cast-not-needed-2.log index 735dbe44e..230d5c599 100644 --- a/src/test/ref/cast-not-needed-2.log +++ b/src/test/ref/cast-not-needed-2.log @@ -226,9 +226,10 @@ Allocated zp ZP_WORD:2 [ main::getScreen1_return#0 ] Allocated zp ZP_WORD:4 [ main::spritePtr1_return#0 ] INITIAL ASM +Target platform is c64basic // File Comments // Tests a cast that is not needed - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -306,7 +307,7 @@ Coalescing zero page register with common assignment [ zp ZP_WORD:2 [ main::getS ASSEMBLER BEFORE OPTIMIZATION // File Comments // Tests a cast that is not needed - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -421,7 +422,7 @@ Score: 48 // File Comments // Tests a cast that is not needed - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/cast-not-needed-3.log b/src/test/ref/cast-not-needed-3.log index a6884f56f..57f33fbfd 100644 --- a/src/test/ref/cast-not-needed-3.log +++ b/src/test/ref/cast-not-needed-3.log @@ -231,9 +231,10 @@ Allocated zp ZP_WORD:4 [ main::spritePtr1_$0#0 ] Allocated zp ZP_BYTE:6 [ main::spritePtr1_return#0 ] INITIAL ASM +Target platform is c64basic // File Comments // Tests a cast that is not needed - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -317,7 +318,7 @@ Coalescing zero page register with common assignment [ zp ZP_WORD:2 [ main::getS ASSEMBLER BEFORE OPTIMIZATION // File Comments // Tests a cast that is not needed - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -437,7 +438,7 @@ Score: 49 // File Comments // Tests a cast that is not needed - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/cast-not-needed.log b/src/test/ref/cast-not-needed.log index 11c163476..8a96dcd33 100644 --- a/src/test/ref/cast-not-needed.log +++ b/src/test/ref/cast-not-needed.log @@ -120,9 +120,10 @@ Initial phi equivalence classes Complete equivalence classes INITIAL ASM +Target platform is c64basic // File Comments // Tests a cast that is not needed - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -170,7 +171,7 @@ Uplifting [] best 27 combination ASSEMBLER BEFORE OPTIMIZATION // File Comments // Tests a cast that is not needed - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -243,7 +244,7 @@ Score: 12 // File Comments // Tests a cast that is not needed - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/cast-precedence-problem.log b/src/test/ref/cast-precedence-problem.log index bbb5f5dc2..04e771d61 100644 --- a/src/test/ref/cast-precedence-problem.log +++ b/src/test/ref/cast-precedence-problem.log @@ -233,9 +233,10 @@ Initial phi equivalence classes Complete equivalence classes INITIAL ASM +Target platform is c64basic // File Comments // Tests that casting inside constants in the output handles precedence between cast and + correctly - should generate the following KA-expression ($ff & sumw>>1)+1 - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -311,7 +312,7 @@ Uplifting [] best 61 combination ASSEMBLER BEFORE OPTIMIZATION // File Comments // Tests that casting inside constants in the output handles precedence between cast and + correctly - should generate the following KA-expression ($ff & sumw>>1)+1 - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -424,7 +425,7 @@ Score: 46 // File Comments // Tests that casting inside constants in the output handles precedence between cast and + correctly - should generate the following KA-expression ($ff & sumw>>1)+1 - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/casting.log b/src/test/ref/casting.log index d73fd7db1..b597f6e59 100644 --- a/src/test/ref/casting.log +++ b/src/test/ref/casting.log @@ -362,8 +362,9 @@ Allocated zp ZP_BYTE:5 [ main::sb#0 ] Allocated zp ZP_BYTE:6 [ w::b2#0 ] INITIAL ASM +Target platform is c64basic // File Comments - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -520,7 +521,7 @@ Uplifting [] best 816 combination ASSEMBLER BEFORE OPTIMIZATION // File Comments - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -716,7 +717,7 @@ FINAL ASSEMBLER Score: 648 // File Comments - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/chargen.log b/src/test/ref/chargen.log index e10367c5e..a0fa54d73 100644 --- a/src/test/ref/chargen.log +++ b/src/test/ref/chargen.log @@ -381,8 +381,9 @@ Allocated zp ZP_BYTE:7 [ main::c#2 ] Allocated zp ZP_BYTE:8 [ main::$1 ] INITIAL ASM +Target platform is c64basic // File Comments - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -567,7 +568,7 @@ Uplifting [main] best 7232 combination zp ZP_BYTE:2 [ main::y#2 main::y#1 ] ASSEMBLER BEFORE OPTIMIZATION // File Comments - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -799,7 +800,7 @@ FINAL ASSEMBLER Score: 5627 // File Comments - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/chessboard.log b/src/test/ref/chessboard.log index 67a38e61f..cf4b70afa 100644 --- a/src/test/ref/chessboard.log +++ b/src/test/ref/chessboard.log @@ -284,9 +284,10 @@ Allocated zp ZP_BYTE:7 [ main::column#2 main::column#1 ] Allocated zp ZP_BYTE:8 [ main::color#3 main::color#5 main::color#2 main::color#1 ] INITIAL ASM +Target platform is c64basic // File Comments // Draws a chess board in the upper left corner of the screen - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -445,7 +446,7 @@ Uplifting [main] best 4863 combination zp ZP_BYTE:6 [ main::row#4 main::row#1 ] ASSEMBLER BEFORE OPTIMIZATION // File Comments // Draws a chess board in the upper left corner of the screen - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -634,7 +635,7 @@ Score: 3861 // File Comments // Draws a chess board in the upper left corner of the screen - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/cia-timer-cyclecount.log b/src/test/ref/cia-timer-cyclecount.log index 5a69a931c..dd06faa72 100644 --- a/src/test/ref/cia-timer-cyclecount.log +++ b/src/test/ref/cia-timer-cyclecount.log @@ -716,9 +716,10 @@ Allocated zp ZP_BYTE:29 [ print_byte_at::$2 ] Allocated zp ZP_DWORD:30 [ clock::return#0 ] INITIAL ASM +Target platform is c64basic // File Comments // Counting cycles using a CIA timer - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -1144,7 +1145,7 @@ Allocated (was zp ZP_DWORD:12) zp ZP_DWORD:9 [ clock::return#2 main::$1 clock::r ASSEMBLER BEFORE OPTIMIZATION // File Comments // Counting cycles using a CIA timer - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -1585,7 +1586,7 @@ Score: 869 // File Comments // Counting cycles using a CIA timer - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/cia-timer-simple.log b/src/test/ref/cia-timer-simple.log index 28b958114..380fe67c0 100644 --- a/src/test/ref/cia-timer-simple.log +++ b/src/test/ref/cia-timer-simple.log @@ -684,9 +684,10 @@ Allocated zp ZP_BYTE:21 [ print_byte_at::$2 ] Allocated zp ZP_DWORD:22 [ clock::return#0 ] INITIAL ASM +Target platform is c64basic // File Comments // Setup and run a simple CIA-timer - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -1071,7 +1072,7 @@ Allocated (was zp ZP_DWORD:12) zp ZP_DWORD:9 [ clock::return#2 print_dword_at::d ASSEMBLER BEFORE OPTIMIZATION // File Comments // Setup and run a simple CIA-timer - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -1479,7 +1480,7 @@ Score: 455 // File Comments // Setup and run a simple CIA-timer - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/clobber-a-problem.log b/src/test/ref/clobber-a-problem.log index 02cc18590..1dc86f4e6 100644 --- a/src/test/ref/clobber-a-problem.log +++ b/src/test/ref/clobber-a-problem.log @@ -244,8 +244,9 @@ Allocated zp ZP_BYTE:3 [ irq_raster_next#0 irq_raster_next#1 ] Allocated zp ZP_BYTE:4 [ irq::$0 ] INITIAL ASM +Target platform is c64basic // File Comments - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -377,7 +378,7 @@ Removing interrupt register storage ldy #00 in SEG30 [16] return - exit interru ASSEMBLER BEFORE OPTIMIZATION // File Comments - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -537,7 +538,7 @@ FINAL ASSEMBLER Score: 159 // File Comments - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" diff --git a/src/test/ref/comma-decl-for.log b/src/test/ref/comma-decl-for.log index 443359d46..4e8578b2b 100644 --- a/src/test/ref/comma-decl-for.log +++ b/src/test/ref/comma-decl-for.log @@ -133,9 +133,10 @@ Allocated zp ZP_BYTE:2 [ main::j#2 main::j#1 ] Allocated zp ZP_BYTE:3 [ main::i#2 main::i#1 ] INITIAL ASM +Target platform is c64basic // File Comments // Tests comma-separated declarations inside for() - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -211,7 +212,7 @@ Uplifting [] best 303 combination ASSEMBLER BEFORE OPTIMIZATION // File Comments // Tests comma-separated declarations inside for() - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -317,7 +318,7 @@ Score: 201 // File Comments // Tests comma-separated declarations inside for() - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/comma-decl.log b/src/test/ref/comma-decl.log index d65bad555..90fd818b4 100644 --- a/src/test/ref/comma-decl.log +++ b/src/test/ref/comma-decl.log @@ -131,9 +131,10 @@ Initial phi equivalence classes Complete equivalence classes INITIAL ASM +Target platform is c64basic // File Comments // Tests comma-separated declarations - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -190,7 +191,7 @@ Uplifting [] best 39 combination ASSEMBLER BEFORE OPTIMIZATION // File Comments // Tests comma-separated declarations - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -272,7 +273,7 @@ Score: 24 // File Comments // Tests comma-separated declarations - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/comma-expr-1.log b/src/test/ref/comma-expr-1.log index 885233aa1..ce2b6603c 100644 --- a/src/test/ref/comma-expr-1.log +++ b/src/test/ref/comma-expr-1.log @@ -106,9 +106,10 @@ Initial phi equivalence classes Complete equivalence classes INITIAL ASM +Target platform is c64basic // File Comments // Tests simple comma-expression (in parenthesis) - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -156,7 +157,7 @@ Uplifting [] best 27 combination ASSEMBLER BEFORE OPTIMIZATION // File Comments // Tests simple comma-expression (in parenthesis) - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -229,7 +230,7 @@ Score: 12 // File Comments // Tests simple comma-expression (in parenthesis) - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/comma-expr-2.log b/src/test/ref/comma-expr-2.log index 85f149eb7..1c43b1424 100644 --- a/src/test/ref/comma-expr-2.log +++ b/src/test/ref/comma-expr-2.log @@ -93,9 +93,10 @@ Initial phi equivalence classes Complete equivalence classes INITIAL ASM +Target platform is c64basic // File Comments // Tests simple comma-expressions (without parenthesis) - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -142,7 +143,7 @@ Uplifting [] best 27 combination ASSEMBLER BEFORE OPTIMIZATION // File Comments // Tests simple comma-expressions (without parenthesis) - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -212,7 +213,7 @@ Score: 12 // File Comments // Tests simple comma-expressions (without parenthesis) - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/comma-expr-for.log b/src/test/ref/comma-expr-for.log index 32e583477..1f0fe9b98 100644 --- a/src/test/ref/comma-expr-for.log +++ b/src/test/ref/comma-expr-for.log @@ -137,9 +137,10 @@ Allocated zp ZP_BYTE:2 [ main::j#2 main::j#1 ] Allocated zp ZP_BYTE:3 [ main::i#2 main::i#1 ] INITIAL ASM +Target platform is c64basic // File Comments // Tests comma-expressions in for()-statement - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -215,7 +216,7 @@ Uplifting [] best 303 combination ASSEMBLER BEFORE OPTIMIZATION // File Comments // Tests comma-expressions in for()-statement - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -321,7 +322,7 @@ Score: 201 // File Comments // Tests comma-expressions in for()-statement - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/comparison-rewriting-pointer.log b/src/test/ref/comparison-rewriting-pointer.log index 1c2be1b5f..e025e331a 100644 --- a/src/test/ref/comparison-rewriting-pointer.log +++ b/src/test/ref/comparison-rewriting-pointer.log @@ -185,9 +185,10 @@ Allocated zp ZP_WORD:2 [ main::sc#2 main::sc#1 ] Allocated zp ZP_WORD:4 [ main::cc#2 main::cc#1 ] INITIAL ASM +Target platform is c64basic // File Comments // Test rewriting of constant comparisons for pointers - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -306,7 +307,7 @@ Uplifting [] best 1198 combination ASSEMBLER BEFORE OPTIMIZATION // File Comments // Test rewriting of constant comparisons for pointers - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -466,7 +467,7 @@ Score: 1036 // File Comments // Test rewriting of constant comparisons for pointers - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/comparison-rewriting.log b/src/test/ref/comparison-rewriting.log index 467bf0d10..6ae119034 100644 --- a/src/test/ref/comparison-rewriting.log +++ b/src/test/ref/comparison-rewriting.log @@ -485,9 +485,10 @@ Allocated zp ZP_BYTE:7 [ main::i1#10 main::i1#1 ] Allocated zp ZP_BYTE:8 [ main::$3 ] INITIAL ASM +Target platform is c64basic // File Comments // Test rewriting of constant comparisons - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -732,7 +733,7 @@ Allocated (was zp ZP_WORD:5) zp ZP_WORD:4 [ main::screen#4 main::screen#1 ] ASSEMBLER BEFORE OPTIMIZATION // File Comments // Test rewriting of constant comparisons - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -1016,7 +1017,7 @@ Score: 1931 // File Comments // Test rewriting of constant comparisons - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/complex-conditional-problem.log b/src/test/ref/complex-conditional-problem.log index 25b8bd352..4cfbeaef8 100644 --- a/src/test/ref/complex-conditional-problem.log +++ b/src/test/ref/complex-conditional-problem.log @@ -180,9 +180,10 @@ Complete equivalence classes Allocated zp ZP_BYTE:2 [ main::key#2 main::key#0 ] INITIAL ASM +Target platform is c64basic // File Comments // Test to provoke Exception when using complex || condition - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -263,7 +264,7 @@ Uplifting [] best 382 combination ASSEMBLER BEFORE OPTIMIZATION // File Comments // Test to provoke Exception when using complex || condition - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -382,7 +383,7 @@ Score: 220 // File Comments // Test to provoke Exception when using complex || condition - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/complex/clearscreen/clearscreen.log b/src/test/ref/complex/clearscreen/clearscreen.log index 2acd89296..bf6acecbb 100644 --- a/src/test/ref/complex/clearscreen/clearscreen.log +++ b/src/test/ref/complex/clearscreen/clearscreen.log @@ -5182,9 +5182,10 @@ Allocated zp ZP_BYTE:184 [ processChars::$39 ] Allocated zp ZP_BYTE:185 [ processChars::$33 ] INITIAL ASM +Target platform is c64basic // File Comments // Clears start screen throwing around the letters (by turning them into sprites) - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -8231,7 +8232,7 @@ Allocated (was zp ZP_BYTE:176) zp ZP_BYTE:79 [ processChars::ypos#0 ] ASSEMBLER BEFORE OPTIMIZATION // File Comments // Clears start screen throwing around the letters (by turning them into sprites) - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -11147,7 +11148,7 @@ Score: 1113582 // File Comments // Clears start screen throwing around the letters (by turning them into sprites) - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" diff --git a/src/test/ref/complex/medusa/medusa.log b/src/test/ref/complex/medusa/medusa.log index 7e1ba8de3..76dd0a2a6 100644 --- a/src/test/ref/complex/medusa/medusa.log +++ b/src/test/ref/complex/medusa/medusa.log @@ -384,10 +384,11 @@ Allocated zp ZP_WORD:8 [ memcpy::dst#2 memcpy::dst#4 memcpy::dst#1 ] Allocated zp ZP_WORD:10 [ memcpy::src_end#0 ] INITIAL ASM +Target platform is c64basic // File Comments // Display MEDUSA PETSCII by Buzz_clik // https://csdb.dk/release/?id=178673 - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -566,7 +567,7 @@ ASSEMBLER BEFORE OPTIMIZATION // File Comments // Display MEDUSA PETSCII by Buzz_clik // https://csdb.dk/release/?id=178673 - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -792,7 +793,7 @@ Score: 797 // File Comments // Display MEDUSA PETSCII by Buzz_clik // https://csdb.dk/release/?id=178673 - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/complex/splines/truetype-splines.log b/src/test/ref/complex/splines/truetype-splines.log index a799cf636..96dd5a635 100644 --- a/src/test/ref/complex/splines/truetype-splines.log +++ b/src/test/ref/complex/splines/truetype-splines.log @@ -8002,9 +8002,10 @@ Allocated zp ZP_BYTE:310 [ mulf_init::$10 ] Allocated zp ZP_BYTE:311 [ mulf_init::$11 ] INITIAL ASM +Target platform is c64basic // File Comments // Show a few simple splines using the splines library - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -12185,7 +12186,7 @@ Allocated (was zp ZP_BYTE:305) zp ZP_BYTE:93 [ bitmap_init::$7 ] ASSEMBLER BEFORE OPTIMIZATION // File Comments // Show a few simple splines using the splines library - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -15840,7 +15841,7 @@ Score: 678994 // File Comments // Show a few simple splines using the splines library - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/complex/tetris/test-sprites.log b/src/test/ref/complex/tetris/test-sprites.log index 07c3a8eea..b92c93018 100644 --- a/src/test/ref/complex/tetris/test-sprites.log +++ b/src/test/ref/complex/tetris/test-sprites.log @@ -2136,8 +2136,9 @@ Allocated zp ZP_BYTE:25 [ sprites_irq::ptr#1 ] Allocated zp ZP_BYTE:26 [ sprites_irq::ptr#2 ] INITIAL ASM +Target platform is c64basic // File Comments - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -3015,7 +3016,7 @@ Removing interrupt register storage ldy #00 in SEG166 [98] return - exit interr ASSEMBLER BEFORE OPTIMIZATION // File Comments - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -4000,7 +4001,7 @@ FINAL ASSEMBLER Score: 11662 // File Comments - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" diff --git a/src/test/ref/complex/tetris/tetris.log b/src/test/ref/complex/tetris/tetris.log index 36bdc846b..fd8244bd2 100644 --- a/src/test/ref/complex/tetris/tetris.log +++ b/src/test/ref/complex/tetris/tetris.log @@ -13834,11 +13834,12 @@ Allocated zp ZP_BYTE:222 [ sprites_irq::ptr#1 ] Allocated zp ZP_BYTE:223 [ sprites_irq::ptr#2 ] INITIAL ASM +Target platform is c64basic // File Comments // Tetris Game for the Commodore 64 // The tetris game tries to match NES tetris gameplay pretty closely // Source: https://meatfighter.com/nintendotetrisai/ - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -18973,7 +18974,7 @@ ASSEMBLER BEFORE OPTIMIZATION // Tetris Game for the Commodore 64 // The tetris game tries to match NES tetris gameplay pretty closely // Source: https://meatfighter.com/nintendotetrisai/ - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -24454,7 +24455,7 @@ Score: 3353852 // Tetris Game for the Commodore 64 // The tetris game tries to match NES tetris gameplay pretty closely // Source: https://meatfighter.com/nintendotetrisai/ - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" diff --git a/src/test/ref/condition-integer-0.log b/src/test/ref/condition-integer-0.log index 5eeb9194f..b6b498869 100644 --- a/src/test/ref/condition-integer-0.log +++ b/src/test/ref/condition-integer-0.log @@ -383,10 +383,11 @@ Allocated zp ZP_WORD:4 [ main::i1#2 main::i1#1 ] Allocated zp ZP_BYTE:6 [ main::idx#12 main::idx#17 main::idx#5 main::idx#6 ] INITIAL ASM +Target platform is c64basic // File Comments // Tests using integer conditions in if() // This should produce '+ ++ ++' at the top of the screen - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -579,7 +580,7 @@ ASSEMBLER BEFORE OPTIMIZATION // File Comments // Tests using integer conditions in if() // This should produce '+ ++ ++' at the top of the screen - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -817,7 +818,7 @@ Score: 862 // File Comments // Tests using integer conditions in if() // This should produce '+ ++ ++' at the top of the screen - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/condition-integer-1.log b/src/test/ref/condition-integer-1.log index 4b595b204..fdd1f94dc 100644 --- a/src/test/ref/condition-integer-1.log +++ b/src/test/ref/condition-integer-1.log @@ -385,10 +385,11 @@ Allocated zp ZP_WORD:4 [ main::i1#2 main::i1#1 ] Allocated zp ZP_BYTE:6 [ main::idx#12 main::idx#17 main::idx#5 main::idx#6 ] INITIAL ASM +Target platform is c64basic // File Comments // Tests using integer conditions in if() // This should produce '0 0 0' at the top of the screen - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -580,7 +581,7 @@ ASSEMBLER BEFORE OPTIMIZATION // File Comments // Tests using integer conditions in if() // This should produce '0 0 0' at the top of the screen - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -818,7 +819,7 @@ Score: 862 // File Comments // Tests using integer conditions in if() // This should produce '0 0 0' at the top of the screen - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/condition-integer-2.log b/src/test/ref/condition-integer-2.log index 9122ce630..adcdd7a69 100644 --- a/src/test/ref/condition-integer-2.log +++ b/src/test/ref/condition-integer-2.log @@ -309,10 +309,11 @@ Allocated zp ZP_BYTE:6 [ main::k#2 main::k#1 ] Allocated zp ZP_BYTE:7 [ idx#12 idx#4 idx#13 ] INITIAL ASM +Target platform is c64basic // File Comments // Tests using integer conditions in while() / for() / do..while // This should produce 'ba ba ba' at the top of the screen - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -484,7 +485,7 @@ ASSEMBLER BEFORE OPTIMIZATION // File Comments // Tests using integer conditions in while() / for() / do..while // This should produce 'ba ba ba' at the top of the screen - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -689,7 +690,7 @@ Score: 599 // File Comments // Tests using integer conditions in while() / for() / do..while // This should produce 'ba ba ba' at the top of the screen - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/condition-integer-3.log b/src/test/ref/condition-integer-3.log index 1a7bb00d5..f5423b27a 100644 --- a/src/test/ref/condition-integer-3.log +++ b/src/test/ref/condition-integer-3.log @@ -210,10 +210,11 @@ Allocated zp ZP_BYTE:3 [ main::idx#2 main::idx#1 ] Allocated zp ZP_BYTE:4 [ main::j#0 ] INITIAL ASM +Target platform is c64basic // File Comments // Tests using integer conditions in ternary operator // This should produce '++0++' at the top of the screen - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -315,7 +316,7 @@ ASSEMBLER BEFORE OPTIMIZATION // File Comments // Tests using integer conditions in ternary operator // This should produce '++0++' at the top of the screen - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -452,7 +453,7 @@ Score: 296 // File Comments // Tests using integer conditions in ternary operator // This should produce '++0++' at the top of the screen - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/condition-integer-4.log b/src/test/ref/condition-integer-4.log index a44725abd..26260de8d 100644 --- a/src/test/ref/condition-integer-4.log +++ b/src/test/ref/condition-integer-4.log @@ -411,10 +411,11 @@ Allocated zp ZP_BYTE:8 [ main::$11 ] Allocated zp ZP_BYTE:9 [ main::$12 ] INITIAL ASM +Target platform is c64basic // File Comments // Tests using integer conditions in && and || operator // This should produce '01010101', '00110011', '00010001', '01110111' at the top of the screen - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -629,7 +630,7 @@ ASSEMBLER BEFORE OPTIMIZATION // File Comments // Tests using integer conditions in && and || operator // This should produce '01010101', '00110011', '00010001', '01110111' at the top of the screen - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -863,7 +864,7 @@ Score: 1121 // File Comments // Tests using integer conditions in && and || operator // This should produce '01010101', '00110011', '00010001', '01110111' at the top of the screen - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/condition-type-mismatch.log b/src/test/ref/condition-type-mismatch.log index cb79c9bee..9889c96f0 100644 --- a/src/test/ref/condition-type-mismatch.log +++ b/src/test/ref/condition-type-mismatch.log @@ -112,9 +112,10 @@ Initial phi equivalence classes Complete equivalence classes INITIAL ASM +Target platform is c64basic // File Comments // Tests a condition type mismatch (not boolean) - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -165,7 +166,7 @@ Uplifting [] best 57 combination ASSEMBLER BEFORE OPTIMIZATION // File Comments // Tests a condition type mismatch (not boolean) - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -242,7 +243,7 @@ Score: 12 // File Comments // Tests a condition type mismatch (not boolean) - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/consolidate-array-index-problem.log b/src/test/ref/consolidate-array-index-problem.log index 6f96a0c7a..9c8683331 100644 --- a/src/test/ref/consolidate-array-index-problem.log +++ b/src/test/ref/consolidate-array-index-problem.log @@ -158,8 +158,9 @@ Allocated zp ZP_BYTE:2 [ main::x#2 main::x#1 ] Allocated zp ZP_BYTE:3 [ main::y#0 ] INITIAL ASM +Target platform is c64basic // File Comments - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -245,7 +246,7 @@ Uplifting [] best 393 combination ASSEMBLER BEFORE OPTIMIZATION // File Comments - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -357,7 +358,7 @@ FINAL ASSEMBLER Score: 291 // File Comments - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/consolidate-constant-problem.log b/src/test/ref/consolidate-constant-problem.log index b55271fbe..679cbc230 100644 --- a/src/test/ref/consolidate-constant-problem.log +++ b/src/test/ref/consolidate-constant-problem.log @@ -226,8 +226,9 @@ Initial phi equivalence classes Complete equivalence classes INITIAL ASM +Target platform is c64basic // File Comments - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -292,7 +293,7 @@ Uplifting [] best 78 combination ASSEMBLER BEFORE OPTIMIZATION // File Comments - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -388,7 +389,7 @@ FINAL ASSEMBLER Score: 24 // File Comments - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/const-condition.log b/src/test/ref/const-condition.log index f27be950f..0aa68f00b 100644 --- a/src/test/ref/const-condition.log +++ b/src/test/ref/const-condition.log @@ -103,9 +103,10 @@ Initial phi equivalence classes Complete equivalence classes INITIAL ASM +Target platform is c64basic // File Comments // Ensure that if()'s with constant comparisons are identified and eliminated - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -156,7 +157,7 @@ Uplifting [] best 57 combination ASSEMBLER BEFORE OPTIMIZATION // File Comments // Ensure that if()'s with constant comparisons are identified and eliminated - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -232,7 +233,7 @@ Score: 12 // File Comments // Ensure that if()'s with constant comparisons are identified and eliminated - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/const-early-identification.log b/src/test/ref/const-early-identification.log index 7f9a60b4b..b27260ca1 100644 --- a/src/test/ref/const-early-identification.log +++ b/src/test/ref/const-early-identification.log @@ -184,9 +184,10 @@ Allocated zp ZP_BYTE:2 [ A#0 ] Allocated zp ZP_BYTE:3 [ sub::D#0 ] INITIAL ASM +Target platform is c64basic // File Comments // Tests that constants are identified early - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -277,7 +278,7 @@ Uplifting [] best 77 combination zp ZP_BYTE:2 [ A#0 ] ASSEMBLER BEFORE OPTIMIZATION // File Comments // Tests that constants are identified early - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -389,7 +390,7 @@ Score: 71 // File Comments // Tests that constants are identified early - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" diff --git a/src/test/ref/const-identification.log b/src/test/ref/const-identification.log index 4a1c520dc..725e61a64 100644 --- a/src/test/ref/const-identification.log +++ b/src/test/ref/const-identification.log @@ -336,8 +336,9 @@ Allocated zp ZP_BYTE:5 [ plot::idx#0 ] Allocated zp ZP_BYTE:6 [ plot::$0 ] INITIAL ASM +Target platform is c64basic // File Comments - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -491,7 +492,7 @@ Uplifting [line] best 3018 combination reg byte y [ line::x#2 line::x#1 ] ASSEMBLER BEFORE OPTIMIZATION // File Comments - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -684,7 +685,7 @@ FINAL ASSEMBLER Score: 1713 // File Comments - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/const-if-problem.log b/src/test/ref/const-if-problem.log index 211673895..c93bd8851 100644 --- a/src/test/ref/const-if-problem.log +++ b/src/test/ref/const-if-problem.log @@ -151,9 +151,10 @@ Initial phi equivalence classes Complete equivalence classes INITIAL ASM +Target platform is c64basic // File Comments // Constant if() contains call to (unused) function - should be optimized away - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -204,7 +205,7 @@ Uplifting [] best 57 combination ASSEMBLER BEFORE OPTIMIZATION // File Comments // Constant if() contains call to (unused) function - should be optimized away - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -281,7 +282,7 @@ Score: 12 // File Comments // Constant if() contains call to (unused) function - should be optimized away - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/const-int-cast-problem.log b/src/test/ref/const-int-cast-problem.log index 63ce50a70..1e45dfe3f 100644 --- a/src/test/ref/const-int-cast-problem.log +++ b/src/test/ref/const-int-cast-problem.log @@ -129,9 +129,10 @@ Allocated zp ZP_BYTE:2 [ main::i#2 main::i#1 ] Allocated zp ZP_BYTE:3 [ main::$0 ] INITIAL ASM +Target platform is c64basic // File Comments // Test a problem with converting casted constant numbers to fixed type constant integers - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -211,7 +212,7 @@ Uplifting [] best 343 combination ASSEMBLER BEFORE OPTIMIZATION // File Comments // Test a problem with converting casted constant numbers to fixed type constant integers - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -315,7 +316,7 @@ Score: 241 // File Comments // Test a problem with converting casted constant numbers to fixed type constant integers - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/const-mult-div.log b/src/test/ref/const-mult-div.log index 70a193c64..b21765fb2 100644 --- a/src/test/ref/const-mult-div.log +++ b/src/test/ref/const-mult-div.log @@ -90,9 +90,10 @@ Initial phi equivalence classes Complete equivalence classes INITIAL ASM +Target platform is c64basic // File Comments // Test a constant with multiplication and division - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -139,7 +140,7 @@ Uplifting [] best 27 combination ASSEMBLER BEFORE OPTIMIZATION // File Comments // Test a constant with multiplication and division - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -209,7 +210,7 @@ Score: 12 // File Comments // Test a constant with multiplication and division - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/const-param.log b/src/test/ref/const-param.log index c06dc9e15..5458e8441 100644 --- a/src/test/ref/const-param.log +++ b/src/test/ref/const-param.log @@ -258,9 +258,10 @@ Allocated zp ZP_BYTE:8 [ main::$2 ] Allocated zp ZP_BYTE:9 [ sum::return#3 ] INITIAL ASM +Target platform is c64basic // File Comments // Test that the compiler optimizes when the same parameter value is passed into a function in all calls - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -396,7 +397,7 @@ Uplifting [sum] best 79 combination reg byte a [ sum::return#3 ] ASSEMBLER BEFORE OPTIMIZATION // File Comments // Test that the compiler optimizes when the same parameter value is passed into a function in all calls - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -552,7 +553,7 @@ Score: 52 // File Comments // Test that the compiler optimizes when the same parameter value is passed into a function in all calls - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/const-pointer.log b/src/test/ref/const-pointer.log index 7eb72bd57..544aa29ef 100644 --- a/src/test/ref/const-pointer.log +++ b/src/test/ref/const-pointer.log @@ -126,9 +126,10 @@ Initial phi equivalence classes Complete equivalence classes INITIAL ASM +Target platform is c64basic // File Comments //Test that constant pointers are detected correctly - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -179,7 +180,7 @@ Uplifting [] best 57 combination ASSEMBLER BEFORE OPTIMIZATION // File Comments //Test that constant pointers are detected correctly - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -257,7 +258,7 @@ Score: 12 // File Comments //Test that constant pointers are detected correctly - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/const-signed-promotion.log b/src/test/ref/const-signed-promotion.log index a8e70cfc0..c1ea2ab97 100644 --- a/src/test/ref/const-signed-promotion.log +++ b/src/test/ref/const-signed-promotion.log @@ -166,9 +166,10 @@ Allocated zp ZP_BYTE:2 [ main::i#2 main::i#1 ] Allocated zp ZP_BYTE:3 [ main::$1 ] INITIAL ASM +Target platform is c64basic // File Comments // Test fragment promotion of a constant (400) to signed word even if it also matches an unsigned word - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -260,7 +261,7 @@ Uplifting [] best 412 combination ASSEMBLER BEFORE OPTIMIZATION // File Comments // Test fragment promotion of a constant (400) to signed word even if it also matches an unsigned word - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -379,7 +380,7 @@ Score: 307 // File Comments // Test fragment promotion of a constant (400) to signed word even if it also matches an unsigned word - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/const-word-pointer.log b/src/test/ref/const-word-pointer.log index 5ac39cf08..6c81b09be 100644 --- a/src/test/ref/const-word-pointer.log +++ b/src/test/ref/const-word-pointer.log @@ -157,10 +157,11 @@ Allocated zp ZP_BYTE:6 [ main::$3 ] Allocated zp ZP_BYTE:7 [ main::$4 ] INITIAL ASM +Target platform is c64basic // File Comments // Test a constant word pointers (pointing to a word placed on zeropage). // The result when running is "CML!" on the screen. - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -251,7 +252,7 @@ ASSEMBLER BEFORE OPTIMIZATION // File Comments // Test a constant word pointers (pointing to a word placed on zeropage). // The result when running is "CML!" on the screen. - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -357,7 +358,7 @@ Score: 60 // File Comments // Test a constant word pointers (pointing to a word placed on zeropage). // The result when running is "CML!" on the screen. - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/constabsmin.log b/src/test/ref/constabsmin.log index 895b36833..859d35e5c 100644 --- a/src/test/ref/constabsmin.log +++ b/src/test/ref/constabsmin.log @@ -78,8 +78,9 @@ Initial phi equivalence classes Complete equivalence classes INITIAL ASM +Target platform is c64basic // File Comments - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -124,7 +125,7 @@ Uplifting [] best 27 combination ASSEMBLER BEFORE OPTIMIZATION // File Comments - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -190,7 +191,7 @@ FINAL ASSEMBLER Score: 12 // File Comments - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/constant-string-concat-0.log b/src/test/ref/constant-string-concat-0.log index 72dbe8029..cd9c31dcc 100644 --- a/src/test/ref/constant-string-concat-0.log +++ b/src/test/ref/constant-string-concat-0.log @@ -126,9 +126,10 @@ Complete equivalence classes Allocated zp ZP_BYTE:2 [ main::i#2 main::i#1 ] INITIAL ASM +Target platform is c64basic // File Comments // Concatenates string constants in different ways - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -203,7 +204,7 @@ Uplifting [] best 333 combination ASSEMBLER BEFORE OPTIMIZATION // File Comments // Concatenates string constants in different ways - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -304,7 +305,7 @@ Score: 231 // File Comments // Concatenates string constants in different ways - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/constant-string-concat.log b/src/test/ref/constant-string-concat.log index 8734d989b..7737bd5f9 100644 --- a/src/test/ref/constant-string-concat.log +++ b/src/test/ref/constant-string-concat.log @@ -125,9 +125,10 @@ Complete equivalence classes Allocated zp ZP_BYTE:2 [ main::i#2 main::i#1 ] INITIAL ASM +Target platform is c64basic // File Comments // Concatenates string constants in different ways - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -199,7 +200,7 @@ Uplifting [] best 288 combination ASSEMBLER BEFORE OPTIMIZATION // File Comments // Concatenates string constants in different ways - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -299,7 +300,7 @@ Score: 186 // File Comments // Concatenates string constants in different ways - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/constantmin.log b/src/test/ref/constantmin.log index 323131c18..0af9f60f0 100644 --- a/src/test/ref/constantmin.log +++ b/src/test/ref/constantmin.log @@ -188,8 +188,9 @@ Complete equivalence classes Allocated zp ZP_BYTE:2 [ main::i#2 main::i#1 ] INITIAL ASM +Target platform is c64basic // File Comments - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -270,7 +271,7 @@ Uplifting [] best 275 combination ASSEMBLER BEFORE OPTIMIZATION // File Comments - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -379,7 +380,7 @@ FINAL ASSEMBLER Score: 173 // File Comments - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/constants.log b/src/test/ref/constants.log index cdb47afe1..d0901a084 100644 --- a/src/test/ref/constants.log +++ b/src/test/ref/constants.log @@ -1604,8 +1604,9 @@ Allocated zp ZP_BYTE:15 [ assert_byte::c#3 ] Allocated zp ZP_WORD:16 [ memset::dst#2 memset::dst#1 ] INITIAL ASM +Target platform is c64basic // File Comments - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -2266,7 +2267,7 @@ Allocated (was zp ZP_WORD:16) zp ZP_WORD:10 [ memset::dst#2 memset::dst#1 ] ASSEMBLER BEFORE OPTIMIZATION // File Comments - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -3079,7 +3080,7 @@ FINAL ASSEMBLER Score: 1852 // File Comments - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/cordic-atan2-16-ref.log b/src/test/ref/cordic-atan2-16-ref.log index 35437e73b..35df30258 100644 --- a/src/test/ref/cordic-atan2-16-ref.log +++ b/src/test/ref/cordic-atan2-16-ref.log @@ -2425,10 +2425,11 @@ Allocated zp ZP_BYTE:67 [ init_font_hex::$2 ] Allocated zp ZP_BYTE:68 [ init_font_hex::idx#3 ] INITIAL ASM +Target platform is c64basic // File Comments // Find atan2(x, y) using the CORDIC method // See http://bsvi.ru/uploads/CORDIC--_10EBA/cordic.pdf - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -3573,7 +3574,7 @@ ASSEMBLER BEFORE OPTIMIZATION // File Comments // Find atan2(x, y) using the CORDIC method // See http://bsvi.ru/uploads/CORDIC--_10EBA/cordic.pdf - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -4826,7 +4827,7 @@ Score: 1044367 // File Comments // Find atan2(x, y) using the CORDIC method // See http://bsvi.ru/uploads/CORDIC--_10EBA/cordic.pdf - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/cordic-atan2-16.log b/src/test/ref/cordic-atan2-16.log index 7ae7ed32d..829eac88e 100644 --- a/src/test/ref/cordic-atan2-16.log +++ b/src/test/ref/cordic-atan2-16.log @@ -1844,10 +1844,11 @@ Allocated zp ZP_BYTE:49 [ init_font_hex::$2 ] Allocated zp ZP_BYTE:50 [ init_font_hex::idx#3 ] INITIAL ASM +Target platform is c64basic // File Comments // Find atan2(x, y) using the CORDIC method // See http://bsvi.ru/uploads/CORDIC--_10EBA/cordic.pdf - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -2713,7 +2714,7 @@ ASSEMBLER BEFORE OPTIMIZATION // File Comments // Find atan2(x, y) using the CORDIC method // See http://bsvi.ru/uploads/CORDIC--_10EBA/cordic.pdf - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -3669,7 +3670,7 @@ Score: 1038737 // File Comments // Find atan2(x, y) using the CORDIC method // See http://bsvi.ru/uploads/CORDIC--_10EBA/cordic.pdf - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/cordic-atan2-clear.log b/src/test/ref/cordic-atan2-clear.log index 0fe64b59e..d3273dd89 100644 --- a/src/test/ref/cordic-atan2-clear.log +++ b/src/test/ref/cordic-atan2-clear.log @@ -2056,10 +2056,11 @@ Allocated zp ZP_BYTE:60 [ init_font_hex::$2 ] Allocated zp ZP_BYTE:61 [ init_font_hex::idx#3 ] INITIAL ASM +Target platform is c64basic // File Comments // Find atan2(x, y) using the CORDIC method // See http://bsvi.ru/uploads/CORDIC--_10EBA/cordic.pdf - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -3096,7 +3097,7 @@ ASSEMBLER BEFORE OPTIMIZATION // File Comments // Find atan2(x, y) using the CORDIC method // See http://bsvi.ru/uploads/CORDIC--_10EBA/cordic.pdf - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -4208,7 +4209,7 @@ Score: 1056409 // File Comments // Find atan2(x, y) using the CORDIC method // See http://bsvi.ru/uploads/CORDIC--_10EBA/cordic.pdf - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/cordic-atan2.log b/src/test/ref/cordic-atan2.log index 28b992c8c..29c917c33 100644 --- a/src/test/ref/cordic-atan2.log +++ b/src/test/ref/cordic-atan2.log @@ -1527,10 +1527,11 @@ Allocated zp ZP_BYTE:29 [ init_font_hex::$2 ] Allocated zp ZP_BYTE:30 [ init_font_hex::idx#3 ] INITIAL ASM +Target platform is c64basic // File Comments // Find atan2(x, y) using the CORDIC method // See http://bsvi.ru/uploads/CORDIC--_10EBA/cordic.pdf - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -2246,7 +2247,7 @@ ASSEMBLER BEFORE OPTIMIZATION // File Comments // Find atan2(x, y) using the CORDIC method // See http://bsvi.ru/uploads/CORDIC--_10EBA/cordic.pdf - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -3052,7 +3053,7 @@ Score: 232352 // File Comments // Find atan2(x, y) using the CORDIC method // See http://bsvi.ru/uploads/CORDIC--_10EBA/cordic.pdf - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/deep-nesting.log b/src/test/ref/deep-nesting.log index 82d37a43c..cd540de22 100644 --- a/src/test/ref/deep-nesting.log +++ b/src/test/ref/deep-nesting.log @@ -7179,9 +7179,10 @@ Initial phi equivalence classes Complete equivalence classes INITIAL ASM +Target platform is c64basic // File Comments // Test that the compiler handles deep nesting well -- mainly a performance issue. - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -8731,7 +8732,7 @@ Uplifting [] best 1557 combination ASSEMBLER BEFORE OPTIMIZATION // File Comments // Test that the compiler handles deep nesting well -- mainly a performance issue. - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -10905,7 +10906,7 @@ Score: 1212 // File Comments // Test that the compiler handles deep nesting well -- mainly a performance issue. - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/default-font.log b/src/test/ref/default-font.log index 0e035b163..f7047412a 100644 --- a/src/test/ref/default-font.log +++ b/src/test/ref/default-font.log @@ -431,9 +431,10 @@ Allocated zp ZP_BYTE:6 [ main::y#2 main::y#1 ] Allocated zp ZP_WORD:7 [ memset::dst#2 memset::dst#1 ] INITIAL ASM +Target platform is c64basic // File Comments // Show default font on screen - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -631,7 +632,7 @@ Allocated (was zp ZP_WORD:7) zp ZP_WORD:6 [ memset::dst#2 memset::dst#1 ] ASSEMBLER BEFORE OPTIMIZATION // File Comments // Show default font on screen - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -879,7 +880,7 @@ Score: 4693 // File Comments // Show default font on screen - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/deref-to-derefidx-2.log b/src/test/ref/deref-to-derefidx-2.log index 2a3458e9f..71b31d71c 100644 --- a/src/test/ref/deref-to-derefidx-2.log +++ b/src/test/ref/deref-to-derefidx-2.log @@ -232,9 +232,10 @@ Allocated zp ZP_BYTE:4 [ screen_idx#10 screen_idx#11 ] Allocated zp ZP_BYTE:5 [ print::$2 ] INITIAL ASM +Target platform is c64basic // File Comments // Tests optimizing derefs of *(ptr+b) to ptr[b - even when a noop-cast is needed - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -346,7 +347,7 @@ Uplifting [] best 107 combination zp ZP_BYTE:4 [ screen_idx#10 screen_idx#11 ] ASSEMBLER BEFORE OPTIMIZATION // File Comments // Tests optimizing derefs of *(ptr+b) to ptr[b - even when a noop-cast is needed - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -489,7 +490,7 @@ Score: 86 // File Comments // Tests optimizing derefs of *(ptr+b) to ptr[b - even when a noop-cast is needed - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/deref-to-derefidx.log b/src/test/ref/deref-to-derefidx.log index dd4639d30..b2c9ed45f 100644 --- a/src/test/ref/deref-to-derefidx.log +++ b/src/test/ref/deref-to-derefidx.log @@ -214,9 +214,10 @@ Allocated zp ZP_WORD:2 [ print::m#2 ] Allocated zp ZP_BYTE:4 [ idx#10 idx#11 ] INITIAL ASM +Target platform is c64basic // File Comments // Tests optimizing derefs of *(ptr+b) to ptr[b] - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -315,7 +316,7 @@ Uplifting [main] best 81 combination ASSEMBLER BEFORE OPTIMIZATION // File Comments // Tests optimizing derefs of *(ptr+b) to ptr[b] - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -447,7 +448,7 @@ Score: 60 // File Comments // Tests optimizing derefs of *(ptr+b) to ptr[b] - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/derefidx-word-0.log b/src/test/ref/derefidx-word-0.log index 9eefb3a1b..7860c2f0e 100644 --- a/src/test/ref/derefidx-word-0.log +++ b/src/test/ref/derefidx-word-0.log @@ -128,9 +128,10 @@ Allocated zp ZP_WORD:2 [ main::i#2 main::i#1 ] Allocated zp ZP_WORD:4 [ main::$1 ] INITIAL ASM +Target platform is c64basic // File Comments // Tests that array-indexing by a word variable is turned into pointer addition - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -225,7 +226,7 @@ Uplifting [] best 838 combination ASSEMBLER BEFORE OPTIMIZATION // File Comments // Tests that array-indexing by a word variable is turned into pointer addition - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -353,7 +354,7 @@ Score: 716 // File Comments // Tests that array-indexing by a word variable is turned into pointer addition - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/derefidx-word-1.log b/src/test/ref/derefidx-word-1.log index 8b342aea0..720f3f21c 100644 --- a/src/test/ref/derefidx-word-1.log +++ b/src/test/ref/derefidx-word-1.log @@ -82,9 +82,10 @@ Initial phi equivalence classes Complete equivalence classes INITIAL ASM +Target platform is c64basic // File Comments // Tests that array-indexing by a constant word is turned into a constant pointer - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -130,7 +131,7 @@ Uplifting [] best 27 combination ASSEMBLER BEFORE OPTIMIZATION // File Comments // Tests that array-indexing by a constant word is turned into a constant pointer - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -197,7 +198,7 @@ Score: 12 // File Comments // Tests that array-indexing by a constant word is turned into a constant pointer - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/derefidx-word-2.log b/src/test/ref/derefidx-word-2.log index 40f6a17c8..08d93d414 100644 --- a/src/test/ref/derefidx-word-2.log +++ b/src/test/ref/derefidx-word-2.log @@ -133,9 +133,10 @@ Complete equivalence classes Allocated zp ZP_BYTE:2 [ main::i#2 main::i#1 ] INITIAL ASM +Target platform is c64basic // File Comments // Tests that array-indexing by a word variable that is a sum of a constant word and a byte is turned back into derefidx - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -206,7 +207,7 @@ Uplifting [] best 263 combination ASSEMBLER BEFORE OPTIMIZATION // File Comments // Tests that array-indexing by a word variable that is a sum of a constant word and a byte is turned back into derefidx - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -303,7 +304,7 @@ Score: 161 // File Comments // Tests that array-indexing by a word variable that is a sum of a constant word and a byte is turned back into derefidx - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/divide-2s.log b/src/test/ref/divide-2s.log index fd8183aae..d56cfb0da 100644 --- a/src/test/ref/divide-2s.log +++ b/src/test/ref/divide-2s.log @@ -248,9 +248,10 @@ Allocated zp ZP_BYTE:6 [ main::sb#0 ] Allocated zp ZP_BYTE:7 [ main::$12 ] INITIAL ASM +Target platform is c64basic // File Comments // Check that division by factors of 2 is converted to shifts - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -387,7 +388,7 @@ Uplifting [main] best 763 combination reg byte a [ main::$12 ] ASSEMBLER BEFORE OPTIMIZATION // File Comments // Check that division by factors of 2 is converted to shifts - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -523,7 +524,7 @@ Score: 661 // File Comments // Check that division by factors of 2 is converted to shifts - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/double-assignment.log b/src/test/ref/double-assignment.log index c532b6951..3a4f5f962 100644 --- a/src/test/ref/double-assignment.log +++ b/src/test/ref/double-assignment.log @@ -111,9 +111,10 @@ Initial phi equivalence classes Complete equivalence classes INITIAL ASM +Target platform is c64basic // File Comments // Test that a double-assignment works. - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -164,7 +165,7 @@ Uplifting [] best 33 combination ASSEMBLER BEFORE OPTIMIZATION // File Comments // Test that a double-assignment works. - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -240,7 +241,7 @@ Score: 16 // File Comments // Test that a double-assignment works. - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/double-import.log b/src/test/ref/double-import.log index c7e52dd71..db79a225d 100644 --- a/src/test/ref/double-import.log +++ b/src/test/ref/double-import.log @@ -83,8 +83,9 @@ Initial phi equivalence classes Complete equivalence classes INITIAL ASM +Target platform is c64basic // File Comments - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -130,7 +131,7 @@ Uplifting [] best 27 combination ASSEMBLER BEFORE OPTIMIZATION // File Comments - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -199,7 +200,7 @@ FINAL ASSEMBLER Score: 12 // File Comments - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/double-indexing-arrays.log b/src/test/ref/double-indexing-arrays.log index cb0901b73..3608b3768 100644 --- a/src/test/ref/double-indexing-arrays.log +++ b/src/test/ref/double-indexing-arrays.log @@ -334,9 +334,10 @@ Complete equivalence classes [ main::x#2 main::x#1 ] INITIAL ASM +Target platform is c64basic // File Comments // Tests that constant offset indexing into arrays is handled correctly - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -447,7 +448,7 @@ Uplifting [] best 1368 combination ASSEMBLER BEFORE OPTIMIZATION // File Comments // Tests that constant offset indexing into arrays is handled correctly - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -588,7 +589,7 @@ Score: 1266 // File Comments // Tests that constant offset indexing into arrays is handled correctly - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/duplicate-loop-problem.log b/src/test/ref/duplicate-loop-problem.log index 49210bb4b..a514a49d1 100644 --- a/src/test/ref/duplicate-loop-problem.log +++ b/src/test/ref/duplicate-loop-problem.log @@ -163,10 +163,11 @@ Allocated zp ZP_BYTE:2 [ key#1 ] Allocated zp ZP_BYTE:3 [ main::$1 ] INITIAL ASM +Target platform is c64basic // File Comments // Duplicate Loop Problem from Richard-William Loerakker // Resulted in infinite loop in loop depth analysis - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -238,7 +239,7 @@ ASSEMBLER BEFORE OPTIMIZATION // File Comments // Duplicate Loop Problem from Richard-William Loerakker // Resulted in infinite loop in loop depth analysis - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -340,7 +341,7 @@ Score: 1730 // File Comments // Duplicate Loop Problem from Richard-William Loerakker // Resulted in infinite loop in loop depth analysis - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/dword.log b/src/test/ref/dword.log index 772055b56..87b852a67 100644 --- a/src/test/ref/dword.log +++ b/src/test/ref/dword.log @@ -155,8 +155,9 @@ Allocated zp ZP_DWORD:3 [ main::b#0 ] Allocated zp ZP_BYTE:7 [ main::c#0 ] INITIAL ASM +Target platform is c64basic // File Comments - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -251,7 +252,7 @@ Allocated (was zp ZP_DWORD:3) zp ZP_DWORD:2 [ main::b#0 ] ASSEMBLER BEFORE OPTIMIZATION // File Comments - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -372,7 +373,7 @@ FINAL ASSEMBLER Score: 471 // File Comments - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/emptyblock-error.log b/src/test/ref/emptyblock-error.log index 2a7d8b40c..938b29c16 100644 --- a/src/test/ref/emptyblock-error.log +++ b/src/test/ref/emptyblock-error.log @@ -210,9 +210,10 @@ Initial phi equivalence classes Complete equivalence classes INITIAL ASM +Target platform is c64basic // File Comments // Error cleaning up unused blocks - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -300,7 +301,7 @@ Uplifting [] best 8929 combination ASSEMBLER BEFORE OPTIMIZATION // File Comments // Error cleaning up unused blocks - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -425,7 +426,7 @@ Score: 8551 // File Comments // Error cleaning up unused blocks - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/enum-0.log b/src/test/ref/enum-0.log index e6d95373b..57bd786f8 100644 --- a/src/test/ref/enum-0.log +++ b/src/test/ref/enum-0.log @@ -83,9 +83,10 @@ Initial phi equivalence classes Complete equivalence classes INITIAL ASM +Target platform is c64basic // File Comments // Test of simple enum - two-value enum - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -134,7 +135,7 @@ Uplifting [] best 27 combination ASSEMBLER BEFORE OPTIMIZATION // File Comments // Test of simple enum - two-value enum - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -206,7 +207,7 @@ Score: 12 // File Comments // Test of simple enum - two-value enum - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/enum-1.log b/src/test/ref/enum-1.log index 4472283df..09dcb1c50 100644 --- a/src/test/ref/enum-1.log +++ b/src/test/ref/enum-1.log @@ -84,9 +84,10 @@ Initial phi equivalence classes Complete equivalence classes INITIAL ASM +Target platform is c64basic // File Comments // Test of simple enum - three-value enum with specified integer values and increment - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -135,7 +136,7 @@ Uplifting [] best 27 combination ASSEMBLER BEFORE OPTIMIZATION // File Comments // Test of simple enum - three-value enum with specified integer values and increment - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -208,7 +209,7 @@ Score: 12 // File Comments // Test of simple enum - three-value enum with specified integer values and increment - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/enum-2.log b/src/test/ref/enum-2.log index 8819bb62a..9f2002770 100644 --- a/src/test/ref/enum-2.log +++ b/src/test/ref/enum-2.log @@ -84,9 +84,10 @@ Initial phi equivalence classes Complete equivalence classes INITIAL ASM +Target platform is c64basic // File Comments // Test of simple enum - char values with increment - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -135,7 +136,7 @@ Uplifting [] best 27 combination ASSEMBLER BEFORE OPTIMIZATION // File Comments // Test of simple enum - char values with increment - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -208,7 +209,7 @@ Score: 12 // File Comments // Test of simple enum - char values with increment - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/enum-3.log b/src/test/ref/enum-3.log index cf0eeb61d..60df54664 100644 --- a/src/test/ref/enum-3.log +++ b/src/test/ref/enum-3.log @@ -86,9 +86,10 @@ Initial phi equivalence classes Complete equivalence classes INITIAL ASM +Target platform is c64basic // File Comments // Test of simple enum - value with complex calculation - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -137,7 +138,7 @@ Uplifting [] best 27 combination ASSEMBLER BEFORE OPTIMIZATION // File Comments // Test of simple enum - value with complex calculation - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -210,7 +211,7 @@ Score: 12 // File Comments // Test of simple enum - value with complex calculation - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/enum-4.log b/src/test/ref/enum-4.log index 7d24a0bd9..ce65a4066 100644 --- a/src/test/ref/enum-4.log +++ b/src/test/ref/enum-4.log @@ -81,9 +81,10 @@ Initial phi equivalence classes Complete equivalence classes INITIAL ASM +Target platform is c64basic // File Comments // Test of simple enum - inline enum definitions - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -130,7 +131,7 @@ Uplifting [] best 27 combination ASSEMBLER BEFORE OPTIMIZATION // File Comments // Test of simple enum - inline enum definitions - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -200,7 +201,7 @@ Score: 12 // File Comments // Test of simple enum - inline enum definitions - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/enum-5.log b/src/test/ref/enum-5.log index f35c22b55..dc1fe0ae6 100644 --- a/src/test/ref/enum-5.log +++ b/src/test/ref/enum-5.log @@ -121,9 +121,10 @@ Initial phi equivalence classes Complete equivalence classes INITIAL ASM +Target platform is c64basic // File Comments // Test of simple enum - multiple inline enum definitions - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -188,7 +189,7 @@ Uplifting [] best 48 combination ASSEMBLER BEFORE OPTIMIZATION // File Comments // Test of simple enum - multiple inline enum definitions - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -281,7 +282,7 @@ Score: 30 // File Comments // Test of simple enum - multiple inline enum definitions - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/enum-6.log b/src/test/ref/enum-6.log index dc211b62c..86b5786e7 100644 --- a/src/test/ref/enum-6.log +++ b/src/test/ref/enum-6.log @@ -99,9 +99,10 @@ Initial phi equivalence classes Complete equivalence classes INITIAL ASM +Target platform is c64basic // File Comments // Test of simple enum - anonymous enum definition - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -153,7 +154,7 @@ Uplifting [] best 33 combination ASSEMBLER BEFORE OPTIMIZATION // File Comments // Test of simple enum - anonymous enum definition - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -228,7 +229,7 @@ Score: 18 // File Comments // Test of simple enum - anonymous enum definition - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/enum-7.log b/src/test/ref/enum-7.log index ff72a4a8d..bff05f52d 100644 --- a/src/test/ref/enum-7.log +++ b/src/test/ref/enum-7.log @@ -118,9 +118,10 @@ Initial phi equivalence classes Complete equivalence classes INITIAL ASM +Target platform is c64basic // File Comments // Test of simple enum - struct with enum - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -176,7 +177,7 @@ Uplifting [] best 33 combination ASSEMBLER BEFORE OPTIMIZATION // File Comments // Test of simple enum - struct with enum - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -256,7 +257,7 @@ Score: 18 // File Comments // Test of simple enum - struct with enum - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/enum-8.log b/src/test/ref/enum-8.log index f5de2db2d..cd665094f 100644 --- a/src/test/ref/enum-8.log +++ b/src/test/ref/enum-8.log @@ -120,9 +120,10 @@ Initial phi equivalence classes Complete equivalence classes INITIAL ASM +Target platform is c64basic // File Comments // Test of simple enum - struct with inline anonymous enum - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -178,7 +179,7 @@ Uplifting [] best 33 combination ASSEMBLER BEFORE OPTIMIZATION // File Comments // Test of simple enum - struct with inline anonymous enum - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -256,7 +257,7 @@ Score: 18 // File Comments // Test of simple enum - struct with inline anonymous enum - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/euclid-3.log b/src/test/ref/euclid-3.log index ff77e0788..512febf42 100644 --- a/src/test/ref/euclid-3.log +++ b/src/test/ref/euclid-3.log @@ -1227,13 +1227,14 @@ Allocated zp ZP_BYTE:15 [ print_byte::$0 ] Allocated zp ZP_BYTE:16 [ print_byte::$2 ] INITIAL ASM +Target platform is c64basic // File Comments /* * Find least common denominator using subtraction-based Euclidian algorithm * See https://en.wikipedia.org/wiki/Euclidean_algorithm * Based on facebook post from */ - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -1785,7 +1786,7 @@ ASSEMBLER BEFORE OPTIMIZATION * See https://en.wikipedia.org/wiki/Euclidean_algorithm * Based on facebook post from */ - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -2446,7 +2447,7 @@ Score: 1577 * See https://en.wikipedia.org/wiki/Euclidean_algorithm * Based on facebook post from */ - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/euclid-problem-2.log b/src/test/ref/euclid-problem-2.log index 32268805a..9a7a3d027 100644 --- a/src/test/ref/euclid-problem-2.log +++ b/src/test/ref/euclid-problem-2.log @@ -465,10 +465,11 @@ Allocated zp ZP_BYTE:10 [ euclid::return#3 ] Allocated zp ZP_BYTE:11 [ main::$3 ] INITIAL ASM +Target platform is c64basic // File Comments // Demonstrates a problem where wrong alive ranges result in clobbering an alive variable // The compiler does not realize that A is alive in the statement b=b-a - and thus can clobber it. - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -683,7 +684,7 @@ ASSEMBLER BEFORE OPTIMIZATION // File Comments // Demonstrates a problem where wrong alive ranges result in clobbering an alive variable // The compiler does not realize that A is alive in the statement b=b-a - and thus can clobber it. - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -925,7 +926,7 @@ Score: 472 // File Comments // Demonstrates a problem where wrong alive ranges result in clobbering an alive variable // The compiler does not realize that A is alive in the statement b=b-a - and thus can clobber it. - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/euclid-problem.log b/src/test/ref/euclid-problem.log index 3578b491c..e0dbc1627 100644 --- a/src/test/ref/euclid-problem.log +++ b/src/test/ref/euclid-problem.log @@ -192,10 +192,11 @@ Allocated zp ZP_BYTE:2 [ main::a#2 main::a#1 ] Allocated zp ZP_BYTE:3 [ main::b#2 main::b#1 ] INITIAL ASM +Target platform is c64basic // File Comments // Demonstrates a problem where wrong alive ranges result in clobbering an alive variable // The compiler does not realize that A is alive in the statement b=b-a - and thus can clobber it. - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -301,7 +302,7 @@ ASSEMBLER BEFORE OPTIMIZATION // File Comments // Demonstrates a problem where wrong alive ranges result in clobbering an alive variable // The compiler does not realize that A is alive in the statement b=b-a - and thus can clobber it. - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -443,7 +444,7 @@ Score: 463 // File Comments // Demonstrates a problem where wrong alive ranges result in clobbering an alive variable // The compiler does not realize that A is alive in the statement b=b-a - and thus can clobber it. - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/examples/3d/3d.log b/src/test/ref/examples/3d/3d.log index ae6df0b7c..c8a33310f 100644 --- a/src/test/ref/examples/3d/3d.log +++ b/src/test/ref/examples/3d/3d.log @@ -4719,12 +4719,13 @@ Allocated zp ZP_WORD:97 [ debug_print_init::$62 ] Allocated zp ZP_WORD:99 [ debug_print_init::$65 ] INITIAL ASM +Target platform is c64basic // File Comments // 3D Rotation using a Rotation Matrix // Based on: // - C= Hacking Magazine Issue 8. http://www.ffd2.com/fridge/chacking/c=hacking8.txt // - Codebase64 Article http://codebase64.org/doku.php?id=base:3d_rotation - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -7359,7 +7360,7 @@ ASSEMBLER BEFORE OPTIMIZATION // Based on: // - C= Hacking Magazine Issue 8. http://www.ffd2.com/fridge/chacking/c=hacking8.txt // - Codebase64 Article http://codebase64.org/doku.php?id=base:3d_rotation - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -10055,7 +10056,7 @@ Score: 66016 // Based on: // - C= Hacking Magazine Issue 8. http://www.ffd2.com/fridge/chacking/c=hacking8.txt // - Codebase64 Article http://codebase64.org/doku.php?id=base:3d_rotation - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/examples/3d/perspective.log b/src/test/ref/examples/3d/perspective.log index 498ebc075..18e08b32a 100644 --- a/src/test/ref/examples/3d/perspective.log +++ b/src/test/ref/examples/3d/perspective.log @@ -1698,12 +1698,13 @@ Allocated zp ZP_BYTE:22 [ mulf_init::$8 ] Allocated zp ZP_BYTE:23 [ mulf_init::$10 ] INITIAL ASM +Target platform is c64basic // File Comments // 3D Rotation using a Rotation Matrix // Based on: // - C= Hacking Magazine Issue 8. http://www.ffd2.com/fridge/chacking/c=hacking8.txt // - Codebase64 Article http://codebase64.org/doku.php?id=base:3d_rotation - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -2533,7 +2534,7 @@ ASSEMBLER BEFORE OPTIMIZATION // Based on: // - C= Hacking Magazine Issue 8. http://www.ffd2.com/fridge/chacking/c=hacking8.txt // - Codebase64 Article http://codebase64.org/doku.php?id=base:3d_rotation - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -3527,7 +3528,7 @@ Score: 3345 // Based on: // - C= Hacking Magazine Issue 8. http://www.ffd2.com/fridge/chacking/c=hacking8.txt // - Codebase64 Article http://codebase64.org/doku.php?id=base:3d_rotation - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/examples/bresenham/bitmap-bresenham.log b/src/test/ref/examples/bresenham/bitmap-bresenham.log index d9b1190b1..735e9cb84 100644 --- a/src/test/ref/examples/bresenham/bitmap-bresenham.log +++ b/src/test/ref/examples/bresenham/bitmap-bresenham.log @@ -2739,8 +2739,9 @@ Allocated zp ZP_BYTE:66 [ bitmap_init::$8 ] Allocated zp ZP_BYTE:67 [ bitmap_init::$9 ] INITIAL ASM +Target platform is c64basic // File Comments - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -4163,7 +4164,7 @@ Allocated (was zp ZP_BYTE:64) zp ZP_BYTE:28 [ bitmap_init::$10 ] ASSEMBLER BEFORE OPTIMIZATION // File Comments - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -5663,7 +5664,7 @@ FINAL ASSEMBLER Score: 221034 // File Comments - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/examples/chargen/chargen-analysis.log b/src/test/ref/examples/chargen/chargen-analysis.log index d46bb45bb..0c00d97c8 100644 --- a/src/test/ref/examples/chargen/chargen-analysis.log +++ b/src/test/ref/examples/chargen/chargen-analysis.log @@ -2546,9 +2546,10 @@ Allocated zp ZP_BYTE:60 [ keyboard_matrix_read::return#0 ] Allocated zp ZP_BYTE:61 [ keyboard_get_keycode::return#0 ] INITIAL ASM +Target platform is c64basic // File Comments // Allows analysis of the CHARGEN ROM font - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -3707,7 +3708,7 @@ Allocated (was zp ZP_WORD:28) zp ZP_WORD:18 [ print_str_at::at#5 print_str_at::a ASSEMBLER BEFORE OPTIMIZATION // File Comments // Allows analysis of the CHARGEN ROM font - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -5105,7 +5106,7 @@ Score: 628893 // File Comments // Allows analysis of the CHARGEN ROM font - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/examples/fastmultiply/fastmultiply8.log b/src/test/ref/examples/fastmultiply/fastmultiply8.log index 01ffb2ab2..0ab1a22d5 100644 --- a/src/test/ref/examples/fastmultiply/fastmultiply8.log +++ b/src/test/ref/examples/fastmultiply/fastmultiply8.log @@ -1279,6 +1279,7 @@ Allocated zp ZP_BYTE:31 [ print_byte_at::$2 ] Allocated zp ZP_BYTE:32 [ fmul8::return#1 ] INITIAL ASM +Target platform is c64basic // File Comments // Seriously fast multiply 8-bit version (8bit*8bit=8bit) // Multiplies two signed 8-bit numbers and results in an 8-bit number @@ -1287,7 +1288,7 @@ INITIAL ASM // See the following for information about the method // - http://codebase64.org/doku.php?id=base:seriously_fast_multiplication // - http://codebase64.org/doku.php?id=magazines:chacking16 - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -2044,7 +2045,7 @@ ASSEMBLER BEFORE OPTIMIZATION // See the following for information about the method // - http://codebase64.org/doku.php?id=base:seriously_fast_multiplication // - http://codebase64.org/doku.php?id=magazines:chacking16 - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -2848,7 +2849,7 @@ Score: 10016 // See the following for information about the method // - http://codebase64.org/doku.php?id=base:seriously_fast_multiplication // - http://codebase64.org/doku.php?id=magazines:chacking16 - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/examples/fire/fire.log b/src/test/ref/examples/fire/fire.log index 34dcb9bfd..b54ae4985 100644 --- a/src/test/ref/examples/fire/fire.log +++ b/src/test/ref/examples/fire/fire.log @@ -1665,13 +1665,14 @@ Allocated zp ZP_WORD:42 [ makecharset::$15 ] Allocated zp ZP_WORD:44 [ makecharset::$18 ] INITIAL ASM +Target platform is c64basic // File Comments // A KickC version of the fire routine from the CC65 samples // (w)2002 by groepaz/hitmen // Cleanup and porting to CC65 by Ullrich von Bassewitz and Greg King . // Ported to KickC by Jesper Gravgaard. // Original source https://github.com/cc65/cc65/blob/master/samples/fire.c - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -2567,7 +2568,7 @@ ASSEMBLER BEFORE OPTIMIZATION // Cleanup and porting to CC65 by Ullrich von Bassewitz and Greg King . // Ported to KickC by Jesper Gravgaard. // Original source https://github.com/cc65/cc65/blob/master/samples/fire.c - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -3541,7 +3542,7 @@ Score: 98915 // Cleanup and porting to CC65 by Ullrich von Bassewitz and Greg King . // Ported to KickC by Jesper Gravgaard. // Original source https://github.com/cc65/cc65/blob/master/samples/fire.c - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/examples/helloworld/helloworld.log b/src/test/ref/examples/helloworld/helloworld.log index 11a939604..0274eb904 100644 --- a/src/test/ref/examples/helloworld/helloworld.log +++ b/src/test/ref/examples/helloworld/helloworld.log @@ -368,8 +368,9 @@ Allocated zp ZP_WORD:4 [ print_str::str#2 print_str::str#0 ] Allocated zp ZP_WORD:6 [ print_char_cursor#10 print_char_cursor#1 ] INITIAL ASM +Target platform is c64basic // File Comments - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -533,7 +534,7 @@ Uplifting [main] best 1423 combination ASSEMBLER BEFORE OPTIMIZATION // File Comments - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -752,7 +753,7 @@ FINAL ASSEMBLER Score: 1235 // File Comments - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/examples/irq/irq-hyperscreen.log b/src/test/ref/examples/irq/irq-hyperscreen.log index d13c211b3..27e7e2180 100644 --- a/src/test/ref/examples/irq/irq-hyperscreen.log +++ b/src/test/ref/examples/irq/irq-hyperscreen.log @@ -294,9 +294,10 @@ Initial phi equivalence classes Complete equivalence classes INITIAL ASM +Target platform is c64basic // File Comments // A raster IRQ that opens the top/bottom border. - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -475,7 +476,7 @@ Uplifting [] best 175 combination ASSEMBLER BEFORE OPTIMIZATION // File Comments // A raster IRQ that opens the top/bottom border. - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -686,7 +687,7 @@ Score: 154 // File Comments // A raster IRQ that opens the top/bottom border. - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/examples/multiplexer/simple-multiplexer.log b/src/test/ref/examples/multiplexer/simple-multiplexer.log index 111af78be..66bfb2dbc 100644 --- a/src/test/ref/examples/multiplexer/simple-multiplexer.log +++ b/src/test/ref/examples/multiplexer/simple-multiplexer.log @@ -2259,9 +2259,10 @@ Allocated zp ZP_BYTE:32 [ plexSort::s#2 ] Allocated zp ZP_BYTE:33 [ init::$8 ] INITIAL ASM +Target platform is c64basic // File Comments // A simple usage of the flexible sprite multiplexer routine - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -3096,7 +3097,7 @@ Allocated (was zp ZP_BYTE:31) zp ZP_BYTE:14 [ plexSort::nxt_y#0 ] ASSEMBLER BEFORE OPTIMIZATION // File Comments // A simple usage of the flexible sprite multiplexer routine - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -4033,7 +4034,7 @@ Score: 62204 // File Comments // A simple usage of the flexible sprite multiplexer routine - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/examples/music/music.log b/src/test/ref/examples/music/music.log index 541573087..69f589256 100644 --- a/src/test/ref/examples/music/music.log +++ b/src/test/ref/examples/music/music.log @@ -138,9 +138,10 @@ Initial phi equivalence classes Complete equivalence classes INITIAL ASM +Target platform is c64basic // File Comments // A simple SID music player playing music in the main loop. - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -217,7 +218,7 @@ Uplifting [] best 4227 combination ASSEMBLER BEFORE OPTIMIZATION // File Comments // A simple SID music player playing music in the main loop. - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -322,7 +323,7 @@ Score: 3882 // File Comments // A simple SID music player playing music in the main loop. - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/examples/music/music_irq.log b/src/test/ref/examples/music/music_irq.log index c4c771bcd..d53835b2c 100644 --- a/src/test/ref/examples/music/music_irq.log +++ b/src/test/ref/examples/music/music_irq.log @@ -209,9 +209,10 @@ Initial phi equivalence classes Complete equivalence classes INITIAL ASM +Target platform is c64basic // File Comments // A simple SID music player using RASTER IRQ - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -339,7 +340,7 @@ Uplifting [] best 2947 combination ASSEMBLER BEFORE OPTIMIZATION // File Comments // A simple SID music player using RASTER IRQ - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -504,7 +505,7 @@ Score: 2899 // File Comments // A simple SID music player using RASTER IRQ - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/examples/plasma/plasma-unroll.log b/src/test/ref/examples/plasma/plasma-unroll.log index 27ac9faf0..a8f72268b 100644 --- a/src/test/ref/examples/plasma/plasma-unroll.log +++ b/src/test/ref/examples/plasma/plasma-unroll.log @@ -3147,6 +3147,7 @@ Allocated zp ZP_BYTE:65 [ makecharset::$11 ] Allocated zp ZP_BYTE:66 [ sid_rnd::return#0 ] INITIAL ASM +Target platform is c64basic // File Comments // A KickC version of the plasma routine from the CC65 samples // This version has an unrolled inner loop to reach 50+FPS @@ -3155,7 +3156,7 @@ INITIAL ASM // Cleanup and porting to CC65 by Ullrich von Bassewitz. // Ported to KickC by Jesper Gravgaard. // Original source https://github.com/cc65/cc65/blob/master/samples/plasma.c - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -4442,7 +4443,7 @@ ASSEMBLER BEFORE OPTIMIZATION // Cleanup and porting to CC65 by Ullrich von Bassewitz. // Ported to KickC by Jesper Gravgaard. // Original source https://github.com/cc65/cc65/blob/master/samples/plasma.c - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -5737,7 +5738,7 @@ Score: 93726 // Cleanup and porting to CC65 by Ullrich von Bassewitz. // Ported to KickC by Jesper Gravgaard. // Original source https://github.com/cc65/cc65/blob/master/samples/plasma.c - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/examples/plasma/plasma.log b/src/test/ref/examples/plasma/plasma.log index 18b9efdfc..d2cf7743c 100644 --- a/src/test/ref/examples/plasma/plasma.log +++ b/src/test/ref/examples/plasma/plasma.log @@ -2449,13 +2449,14 @@ Allocated zp ZP_BYTE:41 [ makecharset::$11 ] Allocated zp ZP_BYTE:42 [ sid_rnd::return#0 ] INITIAL ASM +Target platform is c64basic // File Comments // A KickC version of the plasma routine from the CC65 samples // (w)2001 by groepaz/hitmen // Cleanup and porting to CC65 by Ullrich von Bassewitz. // Ported to KickC by Jesper Gravgaard. // Original source https://github.com/cc65/cc65/blob/master/samples/plasma.c - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -3339,7 +3340,7 @@ ASSEMBLER BEFORE OPTIMIZATION // Cleanup and porting to CC65 by Ullrich von Bassewitz. // Ported to KickC by Jesper Gravgaard. // Original source https://github.com/cc65/cc65/blob/master/samples/plasma.c - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -4390,7 +4391,7 @@ Score: 90512 // Cleanup and porting to CC65 by Ullrich von Bassewitz. // Ported to KickC by Jesper Gravgaard. // Original source https://github.com/cc65/cc65/blob/master/samples/plasma.c - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/examples/rasterbars/raster-bars.log b/src/test/ref/examples/rasterbars/raster-bars.log index c7ee73134..c84de2f44 100644 --- a/src/test/ref/examples/rasterbars/raster-bars.log +++ b/src/test/ref/examples/rasterbars/raster-bars.log @@ -273,8 +273,9 @@ Allocated zp ZP_BYTE:2 [ raster::col#2 raster::col#0 raster::col#1 ] Allocated zp ZP_BYTE:3 [ raster::i#2 raster::i#1 ] INITIAL ASM +Target platform is c64basic // File Comments - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -429,7 +430,7 @@ Uplifting [] best 9585 combination ASSEMBLER BEFORE OPTIMIZATION // File Comments - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -622,7 +623,7 @@ FINAL ASSEMBLER Score: 8340 // File Comments - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/examples/rotate/rotate.log b/src/test/ref/examples/rotate/rotate.log index d26d5fdc7..4d3b70949 100644 --- a/src/test/ref/examples/rotate/rotate.log +++ b/src/test/ref/examples/rotate/rotate.log @@ -2645,9 +2645,10 @@ Allocated zp ZP_BYTE:96 [ mulf_init::$10 ] Allocated zp ZP_BYTE:97 [ mulf_init::$11 ] INITIAL ASM +Target platform is c64basic // File Comments // 2D rotattion of 8 sprites - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -4120,7 +4121,7 @@ Allocated (was zp ZP_DWORD:64) zp ZP_DWORD:34 [ clock::return#2 anim::$28 clock: ASSEMBLER BEFORE OPTIMIZATION // File Comments // 2D rotattion of 8 sprites - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -5557,7 +5558,7 @@ Score: 30954 // File Comments // 2D rotattion of 8 sprites - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/examples/scroll/scroll.log b/src/test/ref/examples/scroll/scroll.log index 104f60dbc..934d5078b 100644 --- a/src/test/ref/examples/scroll/scroll.log +++ b/src/test/ref/examples/scroll/scroll.log @@ -503,8 +503,9 @@ Allocated zp ZP_WORD:5 [ main::nxt#4 main::nxt#9 main::nxt#10 main::nxt#1 ] Allocated zp ZP_WORD:7 [ fillscreen::cursor#2 fillscreen::cursor#1 ] INITIAL ASM +Target platform is c64basic // File Comments - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -747,7 +748,7 @@ Allocated (was zp ZP_WORD:7) zp ZP_WORD:4 [ fillscreen::cursor#2 fillscreen::cur ASSEMBLER BEFORE OPTIMIZATION // File Comments - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -1061,7 +1062,7 @@ FINAL ASSEMBLER Score: 5932 // File Comments - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/examples/scrollbig/scrollbig.log b/src/test/ref/examples/scrollbig/scrollbig.log index 7b1b72f16..33c275050 100644 --- a/src/test/ref/examples/scrollbig/scrollbig.log +++ b/src/test/ref/examples/scrollbig/scrollbig.log @@ -1353,9 +1353,10 @@ Allocated zp ZP_BYTE:21 [ scroll_bit::bits#0 ] Allocated zp ZP_BYTE:22 [ scroll_bit::$9 ] INITIAL ASM +Target platform is c64basic // File Comments // An 8x8 char letter scroller - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -1898,7 +1899,7 @@ Allocated (was zp ZP_WORD:14) zp ZP_WORD:9 [ fillscreen::cursor#2 fillscreen::cu ASSEMBLER BEFORE OPTIMIZATION // File Comments // An 8x8 char letter scroller - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -2518,7 +2519,7 @@ Score: 20556 // File Comments // An 8x8 char letter scroller - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/examples/scrolllogo/scrolllogo.log b/src/test/ref/examples/scrolllogo/scrolllogo.log index 5f4fd3574..d30079671 100644 --- a/src/test/ref/examples/scrolllogo/scrolllogo.log +++ b/src/test/ref/examples/scrolllogo/scrolllogo.log @@ -4259,8 +4259,9 @@ Allocated zp ZP_WORD:177 [ rem16u#1 ] Allocated zp ZP_WORD:179 [ memset::end#0 ] INITIAL ASM +Target platform is c64basic // File Comments - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -6398,7 +6399,7 @@ Allocated (was zp ZP_WORD:179) zp ZP_WORD:62 [ memset::end#0 ] ASSEMBLER BEFORE OPTIMIZATION // File Comments - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -8512,7 +8513,7 @@ FINAL ASSEMBLER Score: 46354 // File Comments - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/examples/showlogo/showlogo.log b/src/test/ref/examples/showlogo/showlogo.log index ce11737cf..b4a43a471 100644 --- a/src/test/ref/examples/showlogo/showlogo.log +++ b/src/test/ref/examples/showlogo/showlogo.log @@ -669,8 +669,9 @@ Allocated zp ZP_WORD:8 [ memset::dst#2 memset::dst#3 memset::dst#1 ] Allocated zp ZP_WORD:10 [ memset::end#0 ] INITIAL ASM +Target platform is c64basic // File Comments - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -925,7 +926,7 @@ Allocated (was zp ZP_WORD:5) zp ZP_WORD:4 [ memset::str#3 memset::dst#2 memset:: ASSEMBLER BEFORE OPTIMIZATION // File Comments - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -1250,7 +1251,7 @@ FINAL ASSEMBLER Score: 5887 // File Comments - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/examples/sinplotter/sine-plotter.log b/src/test/ref/examples/sinplotter/sine-plotter.log index 9fe0896d9..ba68518cf 100644 --- a/src/test/ref/examples/sinplotter/sine-plotter.log +++ b/src/test/ref/examples/sinplotter/sine-plotter.log @@ -3950,9 +3950,10 @@ Allocated zp ZP_BYTE:191 [ bitmap_init::$5 ] Allocated zp ZP_BYTE:192 [ bitmap_init::$6 ] INITIAL ASM +Target platform is c64basic // File Comments // Generate a big sinus and plot it on a bitmap - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -6099,7 +6100,7 @@ Allocated (was zp ZP_BYTE:189) zp ZP_BYTE:67 [ bitmap_init::$7 ] ASSEMBLER BEFORE OPTIMIZATION // File Comments // Generate a big sinus and plot it on a bitmap - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -8278,7 +8279,7 @@ Score: 24639 // File Comments // Generate a big sinus and plot it on a bitmap - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/examples/sinsprites/sinus-sprites.log b/src/test/ref/examples/sinsprites/sinus-sprites.log index 4efa48503..cd0813449 100644 --- a/src/test/ref/examples/sinsprites/sinus-sprites.log +++ b/src/test/ref/examples/sinsprites/sinus-sprites.log @@ -3552,8 +3552,9 @@ Allocated zp ZP_BYTE:70 [ gen_chargen_sprite::$6 ] Allocated zp ZP_BYTE:71 [ place_sprites::j2#1 ] INITIAL ASM +Target platform is c64basic // File Comments - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -5409,7 +5410,7 @@ Allocated (was zp ZP_WORD:63) zp ZP_WORD:40 [ gen_chargen_sprite::$0 gen_chargen ASSEMBLER BEFORE OPTIMIZATION // File Comments - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -7450,7 +7451,7 @@ FINAL ASSEMBLER Score: 769618 // File Comments - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/fastmultiply-127.log b/src/test/ref/fastmultiply-127.log index 7f75fa984..527024a36 100644 --- a/src/test/ref/fastmultiply-127.log +++ b/src/test/ref/fastmultiply-127.log @@ -2789,13 +2789,14 @@ Allocated zp ZP_WORD:47 [ mulf8u127::return#0 ] Allocated zp ZP_WORD:49 [ print_mulf8u127::c#0 ] INITIAL ASM +Target platform is c64basic // File Comments // An implementation of seriously fast multiply for integer values in the interval [-1;1] with the best possible precision // NOTE: So far unsuccessful - since the handling of sign and values where a+b>sqrt2) makes the code slower than regular fast multiply // In this model 255 binary represents 1.0 - meaning that 255*255 = 255 // Uses principles from C=Hacking #16 https://codebase64.org/doku.php?id=magazines:chacking16 // Utilizes the fact that a*b = ((a+b)/2)^2 - ((a-b)/2)^2 - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -4172,7 +4173,7 @@ ASSEMBLER BEFORE OPTIMIZATION // In this model 255 binary represents 1.0 - meaning that 255*255 = 255 // Uses principles from C=Hacking #16 https://codebase64.org/doku.php?id=magazines:chacking16 // Utilizes the fact that a*b = ((a+b)/2)^2 - ((a-b)/2)^2 - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -5769,7 +5770,7 @@ Score: 2300 // In this model 255 binary represents 1.0 - meaning that 255*255 = 255 // Uses principles from C=Hacking #16 https://codebase64.org/doku.php?id=magazines:chacking16 // Utilizes the fact that a*b = ((a+b)/2)^2 - ((a-b)/2)^2 - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/fibmem.log b/src/test/ref/fibmem.log index 2db64960b..3833ee8e0 100644 --- a/src/test/ref/fibmem.log +++ b/src/test/ref/fibmem.log @@ -162,8 +162,9 @@ Allocated zp ZP_BYTE:2 [ main::i#2 main::i#1 ] Allocated zp ZP_BYTE:3 [ main::$2 ] INITIAL ASM +Target platform is c64basic // File Comments - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -249,7 +250,7 @@ Uplifting [] best 365 combination ASSEMBLER BEFORE OPTIMIZATION // File Comments - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -353,7 +354,7 @@ FINAL ASSEMBLER Score: 263 // File Comments - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/fill-square.log b/src/test/ref/fill-square.log index ac069d604..82f1949de 100644 --- a/src/test/ref/fill-square.log +++ b/src/test/ref/fill-square.log @@ -224,9 +224,10 @@ Allocated zp ZP_WORD:12 [ main::line#0 ] Allocated zp ZP_BYTE:14 [ main::$3 ] INITIAL ASM +Target platform is c64basic // File Comments // Fill a square on the screen - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -396,7 +397,7 @@ Allocated (was zp ZP_WORD:6) zp ZP_WORD:5 [ main::$6 ] ASSEMBLER BEFORE OPTIMIZATION // File Comments // Fill a square on the screen - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -583,7 +584,7 @@ Score: 3381 // File Comments // Fill a square on the screen - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/fillscreen.log b/src/test/ref/fillscreen.log index d7099c6b2..31e060463 100644 --- a/src/test/ref/fillscreen.log +++ b/src/test/ref/fillscreen.log @@ -213,8 +213,9 @@ Allocated zp ZP_BYTE:3 [ main::c#0 ] Allocated zp ZP_BYTE:4 [ fillscreen::c#0 ] INITIAL ASM +Target platform is c64basic // File Comments - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -319,7 +320,7 @@ Uplifting [] best 412 combination ASSEMBLER BEFORE OPTIMIZATION // File Comments - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -453,7 +454,7 @@ FINAL ASSEMBLER Score: 307 // File Comments - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/flipper-rex2.log b/src/test/ref/flipper-rex2.log index 1ed162c2e..03d1e3ef5 100644 --- a/src/test/ref/flipper-rex2.log +++ b/src/test/ref/flipper-rex2.log @@ -687,8 +687,9 @@ Allocated zp ZP_BYTE:12 [ flip::i#2 flip::i#1 ] Allocated zp ZP_BYTE:13 [ prepare::i#2 prepare::i#1 ] INITIAL ASM +Target platform is c64basic // File Comments - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -1049,7 +1050,7 @@ Allocated (was zp ZP_BYTE:11) zp ZP_BYTE:6 [ flip::c#2 flip::c#1 ] ASSEMBLER BEFORE OPTIMIZATION // File Comments - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -1489,7 +1490,7 @@ FINAL ASSEMBLER Score: 82694 // File Comments - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/font-hex-show.log b/src/test/ref/font-hex-show.log index f1693dea3..76a67a503 100644 --- a/src/test/ref/font-hex-show.log +++ b/src/test/ref/font-hex-show.log @@ -754,9 +754,10 @@ Allocated zp ZP_BYTE:15 [ init_font_hex::$2 ] Allocated zp ZP_BYTE:16 [ init_font_hex::idx#3 ] INITIAL ASM +Target platform is c64basic // File Comments // Shows a font where each char contains the number of the char (00-ff) - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -1069,7 +1070,7 @@ Allocated (was zp ZP_BYTE:13) zp ZP_BYTE:11 [ init_font_hex::$0 ] ASSEMBLER BEFORE OPTIMIZATION // File Comments // Shows a font where each char contains the number of the char (00-ff) - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -1441,7 +1442,7 @@ Score: 72379 // File Comments // Shows a font where each char contains the number of the char (00-ff) - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/for-empty-increment.log b/src/test/ref/for-empty-increment.log index 45d358e41..f8a0e91d4 100644 --- a/src/test/ref/for-empty-increment.log +++ b/src/test/ref/for-empty-increment.log @@ -118,9 +118,10 @@ Complete equivalence classes Allocated zp ZP_BYTE:2 [ main::i#2 main::i#1 ] INITIAL ASM +Target platform is c64basic // File Comments // Tests that for()-loops can have empty increments - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -188,7 +189,7 @@ Uplifting [] best 263 combination ASSEMBLER BEFORE OPTIMIZATION // File Comments // Tests that for()-loops can have empty increments - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -285,7 +286,7 @@ Score: 161 // File Comments // Tests that for()-loops can have empty increments - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/for-empty-init.log b/src/test/ref/for-empty-init.log index e5f33a0d7..8b7109ce3 100644 --- a/src/test/ref/for-empty-init.log +++ b/src/test/ref/for-empty-init.log @@ -118,9 +118,10 @@ Complete equivalence classes Allocated zp ZP_BYTE:2 [ main::i#2 main::i#1 ] INITIAL ASM +Target platform is c64basic // File Comments // Tests that for()-loops can have empty inits - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -188,7 +189,7 @@ Uplifting [] best 263 combination ASSEMBLER BEFORE OPTIMIZATION // File Comments // Tests that for()-loops can have empty inits - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -285,7 +286,7 @@ Score: 161 // File Comments // Tests that for()-loops can have empty inits - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/for-two-vars.log b/src/test/ref/for-two-vars.log index 701666483..2b291b52a 100644 --- a/src/test/ref/for-two-vars.log +++ b/src/test/ref/for-two-vars.log @@ -147,10 +147,11 @@ Allocated zp ZP_BYTE:2 [ main::i#2 main::i#1 ] Allocated zp ZP_WORD:3 [ main::sc#2 main::sc#1 ] INITIAL ASM +Target platform is c64basic // File Comments // Test a for-loop with two iterating variables // Illustrates that for()-loops currently cannot contain two variable declarations. - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -240,7 +241,7 @@ ASSEMBLER BEFORE OPTIMIZATION // File Comments // Test a for-loop with two iterating variables // Illustrates that for()-loops currently cannot contain two variable declarations. - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -356,7 +357,7 @@ Score: 446 // File Comments // Test a for-loop with two iterating variables // Illustrates that for()-loops currently cannot contain two variable declarations. - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/forclassicmin.log b/src/test/ref/forclassicmin.log index 45c5bd6a9..7d55eecd4 100644 --- a/src/test/ref/forclassicmin.log +++ b/src/test/ref/forclassicmin.log @@ -131,9 +131,10 @@ Complete equivalence classes Allocated zp ZP_BYTE:2 [ main::i#2 main::i#1 ] INITIAL ASM +Target platform is c64basic // File Comments // Minimal classic for() loop - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -201,7 +202,7 @@ Uplifting [] best 263 combination ASSEMBLER BEFORE OPTIMIZATION // File Comments // Minimal classic for() loop - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -298,7 +299,7 @@ Score: 161 // File Comments // Minimal classic for() loop - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/forincrementassign.log b/src/test/ref/forincrementassign.log index ff4f2b3a5..e66fcaf79 100644 --- a/src/test/ref/forincrementassign.log +++ b/src/test/ref/forincrementassign.log @@ -128,10 +128,11 @@ Complete equivalence classes Allocated zp ZP_BYTE:2 [ main::i#2 main::i#1 ] INITIAL ASM +Target platform is c64basic // File Comments // Classic for() does not allow assignment as increment, eg. for(byte i=0;i<40;i=i+2) {} // The following should give a program rendering a char on every second char of the first line - but results in a syntax error - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -203,7 +204,7 @@ ASSEMBLER BEFORE OPTIMIZATION // File Comments // Classic for() does not allow assignment as increment, eg. for(byte i=0;i<40;i=i+2) {} // The following should give a program rendering a char on every second char of the first line - but results in a syntax error - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -302,7 +303,7 @@ Score: 181 // File Comments // Classic for() does not allow assignment as increment, eg. for(byte i=0;i<40;i=i+2) {} // The following should give a program rendering a char on every second char of the first line - but results in a syntax error - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/forrangedwords.log b/src/test/ref/forrangedwords.log index a70f16c77..048d19bd5 100644 --- a/src/test/ref/forrangedwords.log +++ b/src/test/ref/forrangedwords.log @@ -214,8 +214,9 @@ Allocated zp ZP_BYTE:8 [ main::$3 ] Allocated zp ZP_BYTE:9 [ main::$4 ] INITIAL ASM +Target platform is c64basic // File Comments - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -351,7 +352,7 @@ Uplifting [] best 1158 combination ASSEMBLER BEFORE OPTIMIZATION // File Comments - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -518,7 +519,7 @@ FINAL ASSEMBLER Score: 976 // File Comments - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/forrangemin.log b/src/test/ref/forrangemin.log index a1d1919dd..241404f54 100644 --- a/src/test/ref/forrangemin.log +++ b/src/test/ref/forrangemin.log @@ -181,9 +181,10 @@ Allocated zp ZP_BYTE:2 [ main::i#2 main::i#1 ] Allocated zp ZP_BYTE:3 [ main::j#3 main::j#2 ] INITIAL ASM +Target platform is c64basic // File Comments // Minimal range based for() loop - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -276,7 +277,7 @@ Uplifting [] best 478 combination ASSEMBLER BEFORE OPTIMIZATION // File Comments // Minimal range based for() loop - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -405,7 +406,7 @@ Score: 316 // File Comments // Minimal range based for() loop - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/forrangesymbolic.log b/src/test/ref/forrangesymbolic.log index 2105cacad..a3640a4a3 100644 --- a/src/test/ref/forrangesymbolic.log +++ b/src/test/ref/forrangesymbolic.log @@ -134,10 +134,11 @@ Complete equivalence classes Allocated zp ZP_WORD:2 [ main::b#2 main::b#1 ] INITIAL ASM +Target platform is c64basic // File Comments // Range-based for does not recognize symbolic constants. // The following should work but gives a not-constant exception - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -218,7 +219,7 @@ ASSEMBLER BEFORE OPTIMIZATION // File Comments // Range-based for does not recognize symbolic constants. // The following should work but gives a not-constant exception - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -330,7 +331,7 @@ Score: 511 // File Comments // Range-based for does not recognize symbolic constants. // The following should work but gives a not-constant exception - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/fragment-synth.log b/src/test/ref/fragment-synth.log index 683d12dd0..3343b0541 100644 --- a/src/test/ref/fragment-synth.log +++ b/src/test/ref/fragment-synth.log @@ -286,10 +286,11 @@ Allocated zp ZP_BYTE:7 [ main::a2#0 ] Allocated zp ZP_BYTE:8 [ fct::return#2 ] INITIAL ASM +Target platform is c64basic // File Comments // Tests a sub-optimal fragment synthesis // vbuaa=vbuxx_band_pbuz1_derefidx_vbuc1 < vbuaa=pbuz1_derefidx_vbuc1_band_vbuxx < vbuaa=pbuz1_derefidx_vbuaa_band_vbuxx < vbuaa=pbuz1_derefidx_vbuyy_band_vbuxx < vbuaa=pbuz1_derefidx_vbuyy_band_vbuaa < vbuaa=vbuaa_band_pbuz1_derefidx_vbuyy - clobber:A Y cycles:11.5 - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -416,7 +417,7 @@ ASSEMBLER BEFORE OPTIMIZATION // File Comments // Tests a sub-optimal fragment synthesis // vbuaa=vbuxx_band_pbuz1_derefidx_vbuc1 < vbuaa=pbuz1_derefidx_vbuc1_band_vbuxx < vbuaa=pbuz1_derefidx_vbuaa_band_vbuxx < vbuaa=pbuz1_derefidx_vbuyy_band_vbuxx < vbuaa=pbuz1_derefidx_vbuyy_band_vbuaa < vbuaa=vbuaa_band_pbuz1_derefidx_vbuyy - clobber:A Y cycles:11.5 - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -571,7 +572,7 @@ Score: 77 // File Comments // Tests a sub-optimal fragment synthesis // vbuaa=vbuxx_band_pbuz1_derefidx_vbuc1 < vbuaa=pbuz1_derefidx_vbuc1_band_vbuxx < vbuaa=pbuz1_derefidx_vbuaa_band_vbuxx < vbuaa=pbuz1_derefidx_vbuyy_band_vbuxx < vbuaa=pbuz1_derefidx_vbuyy_band_vbuaa < vbuaa=vbuaa_band_pbuz1_derefidx_vbuyy - clobber:A Y cycles:11.5 - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/fragment-variations.log b/src/test/ref/fragment-variations.log index 43eb90cfa..d0b76c99b 100644 --- a/src/test/ref/fragment-variations.log +++ b/src/test/ref/fragment-variations.log @@ -256,10 +256,11 @@ Allocated zp ZP_DWORD:20 [ main::$1 ] Allocated zp ZP_DWORD:24 [ mul16u::return#2 ] INITIAL ASM +Target platform is c64basic // File Comments // Tests that ASM fragment variations works // ASM fragment variations "cast" constants to different types - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -450,7 +451,7 @@ ASSEMBLER BEFORE OPTIMIZATION // File Comments // Tests that ASM fragment variations works // ASM fragment variations "cast" constants to different types - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -636,7 +637,7 @@ Score: 172 // File Comments // Tests that ASM fragment variations works // ASM fragment variations "cast" constants to different types - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/function-pointer-noarg-2.log b/src/test/ref/function-pointer-noarg-2.log index f15ba2411..6067ddb85 100644 --- a/src/test/ref/function-pointer-noarg-2.log +++ b/src/test/ref/function-pointer-noarg-2.log @@ -195,9 +195,10 @@ Allocated zp ZP_BYTE:2 [ main::i#2 main::i#1 ] Allocated zp ZP_BYTE:3 [ main::$0 ] INITIAL ASM +Target platform is c64basic // File Comments // Tests creating and assigning pointers to non-args no-return functions - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -278,7 +279,7 @@ Uplifting [] best 338 combination ASSEMBLER BEFORE OPTIMIZATION // File Comments // Tests creating and assigning pointers to non-args no-return functions - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -393,7 +394,7 @@ Score: 151 // File Comments // Tests creating and assigning pointers to non-args no-return functions - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/function-pointer-noarg-3.log b/src/test/ref/function-pointer-noarg-3.log index d3471fdbd..afec00d25 100644 --- a/src/test/ref/function-pointer-noarg-3.log +++ b/src/test/ref/function-pointer-noarg-3.log @@ -259,9 +259,10 @@ Allocated zp ZP_WORD:3 [ main::f#3 ] Allocated zp ZP_BYTE:5 [ main::$0 ] INITIAL ASM +Target platform is c64basic // File Comments // Tests creating and assigning pointers to non-args no-return functions - plus inline kickasm-based calling - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -390,7 +391,7 @@ Allocated (was zp ZP_WORD:3) zp ZP_WORD:2 [ main::f#3 ] ASSEMBLER BEFORE OPTIMIZATION // File Comments // Tests creating and assigning pointers to non-args no-return functions - plus inline kickasm-based calling - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -564,7 +565,7 @@ Score: 3225 // File Comments // Tests creating and assigning pointers to non-args no-return functions - plus inline kickasm-based calling - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/function-pointer-noarg-call-10.log b/src/test/ref/function-pointer-noarg-call-10.log index 901b594b4..794a8936f 100644 --- a/src/test/ref/function-pointer-noarg-call-10.log +++ b/src/test/ref/function-pointer-noarg-call-10.log @@ -379,9 +379,10 @@ Allocated zp ZP_BYTE:7 [ print::i#2 print::i#1 ] Allocated zp ZP_BYTE:8 [ idx#11 idx#16 idx#12 ] INITIAL ASM +Target platform is c64basic // File Comments // Tests calling into different function pointers which call a common sub-method - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -596,7 +597,7 @@ Allocated (was zp ZP_BYTE:8) zp ZP_BYTE:7 [ idx#11 idx#16 idx#12 ] ASSEMBLER BEFORE OPTIMIZATION // File Comments // Tests calling into different function pointers which call a common sub-method - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -855,7 +856,7 @@ Score: 676 // File Comments // Tests calling into different function pointers which call a common sub-method - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" diff --git a/src/test/ref/function-pointer-noarg-call-2.log b/src/test/ref/function-pointer-noarg-call-2.log index 0ef5410ad..c1341638f 100644 --- a/src/test/ref/function-pointer-noarg-call-2.log +++ b/src/test/ref/function-pointer-noarg-call-2.log @@ -247,9 +247,10 @@ Allocated zp ZP_WORD:3 [ main::f#3 ] Allocated zp ZP_BYTE:5 [ main::$0 ] INITIAL ASM +Target platform is c64basic // File Comments // Tests creating, assigning and calling pointers to non-args no-return functions - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -379,7 +380,7 @@ Uplifting [main] best 727 combination zp ZP_BYTE:2 [ main::i#2 main::i#1 ] ASSEMBLER BEFORE OPTIMIZATION // File Comments // Tests creating, assigning and calling pointers to non-args no-return functions - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -546,7 +547,7 @@ Score: 589 // File Comments // Tests creating, assigning and calling pointers to non-args no-return functions - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/function-pointer-noarg-call-3.log b/src/test/ref/function-pointer-noarg-call-3.log index 47f206fcf..d4d235ccc 100644 --- a/src/test/ref/function-pointer-noarg-call-3.log +++ b/src/test/ref/function-pointer-noarg-call-3.log @@ -288,9 +288,10 @@ Allocated zp ZP_WORD:8 [ main::$1 ] Allocated zp ZP_BYTE:10 [ getfn::$0 ] INITIAL ASM +Target platform is c64basic // File Comments // Tests creating, assigning returning and calling pointers to non-args no-return functions - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -457,7 +458,7 @@ Coalescing zero page register with common assignment [ zp ZP_WORD:3 [ getfn::ret ASSEMBLER BEFORE OPTIMIZATION // File Comments // Tests creating, assigning returning and calling pointers to non-args no-return functions - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -651,7 +652,7 @@ Score: 392 // File Comments // Tests creating, assigning returning and calling pointers to non-args no-return functions - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/function-pointer-noarg-call-4.log b/src/test/ref/function-pointer-noarg-call-4.log index 70511a114..6575033f9 100644 --- a/src/test/ref/function-pointer-noarg-call-4.log +++ b/src/test/ref/function-pointer-noarg-call-4.log @@ -210,9 +210,10 @@ Complete equivalence classes Allocated zp ZP_BYTE:2 [ main::i#2 main::i#1 ] INITIAL ASM +Target platform is c64basic // File Comments // Tests creating, assigning returning and calling pointers to non-args no-return functions - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -303,7 +304,7 @@ Uplifting [] best 289 combination ASSEMBLER BEFORE OPTIMIZATION // File Comments // Tests creating, assigning returning and calling pointers to non-args no-return functions - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -434,7 +435,7 @@ Score: 154 // File Comments // Tests creating, assigning returning and calling pointers to non-args no-return functions - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/function-pointer-noarg-call-5.log b/src/test/ref/function-pointer-noarg-call-5.log index 2b384f471..10ce8ec2b 100644 --- a/src/test/ref/function-pointer-noarg-call-5.log +++ b/src/test/ref/function-pointer-noarg-call-5.log @@ -218,9 +218,10 @@ Allocated zp ZP_BYTE:4 [ main::$2 ] Allocated zp ZP_WORD:5 [ main::f#0 ] INITIAL ASM +Target platform is c64basic // File Comments // Tests calling into arrays of pointers to non-args no-return functions - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -341,7 +342,7 @@ Allocated (was zp ZP_WORD:5) zp ZP_WORD:3 [ main::f#0 ] ASSEMBLER BEFORE OPTIMIZATION // File Comments // Tests calling into arrays of pointers to non-args no-return functions - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -487,7 +488,7 @@ Score: 504 // File Comments // Tests calling into arrays of pointers to non-args no-return functions - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/function-pointer-noarg-call-6.log b/src/test/ref/function-pointer-noarg-call-6.log index 85d7ed9d9..d41e40217 100644 --- a/src/test/ref/function-pointer-noarg-call-6.log +++ b/src/test/ref/function-pointer-noarg-call-6.log @@ -184,9 +184,10 @@ Allocated zp ZP_WORD:2 [ main::cols#2 main::cols#1 ] Allocated zp ZP_WORD:4 [ fn1::screen#2 fn1::screen#1 ] INITIAL ASM +Target platform is c64basic // File Comments // Tests calling into a function pointer with local variables - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -321,7 +322,7 @@ Uplifting [] best 7565 combination ASSEMBLER BEFORE OPTIMIZATION // File Comments // Tests calling into a function pointer with local variables - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -501,7 +502,7 @@ Score: 6343 // File Comments // Tests calling into a function pointer with local variables - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/function-pointer-noarg-call-7.log b/src/test/ref/function-pointer-noarg-call-7.log index 10ca1a31b..888154767 100644 --- a/src/test/ref/function-pointer-noarg-call-7.log +++ b/src/test/ref/function-pointer-noarg-call-7.log @@ -278,9 +278,10 @@ Allocated zp ZP_BYTE:3 [ hello::i#2 hello::i#1 ] Allocated zp ZP_BYTE:4 [ idx#0 idx#3 idx#7 idx#1 ] INITIAL ASM +Target platform is c64basic // File Comments // Tests calling into a function pointer with local variables - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -425,7 +426,7 @@ Allocated (was zp ZP_BYTE:4) zp ZP_BYTE:3 [ idx#0 idx#3 idx#7 idx#1 ] ASSEMBLER BEFORE OPTIMIZATION // File Comments // Tests calling into a function pointer with local variables - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -607,7 +608,7 @@ Score: 3326 // File Comments // Tests calling into a function pointer with local variables - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" diff --git a/src/test/ref/function-pointer-noarg-call-8.log b/src/test/ref/function-pointer-noarg-call-8.log index 4bce1199e..8edae657a 100644 --- a/src/test/ref/function-pointer-noarg-call-8.log +++ b/src/test/ref/function-pointer-noarg-call-8.log @@ -341,9 +341,10 @@ Allocated zp ZP_WORD:4 [ msg#0 msg#1 msg#10 ] Allocated zp ZP_BYTE:6 [ idx#0 idx#3 idx#7 idx#1 ] INITIAL ASM +Target platform is c64basic // File Comments // Tests calling into a function pointer with local variables - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -518,7 +519,7 @@ Allocated (was zp ZP_BYTE:6) zp ZP_BYTE:5 [ idx#0 idx#3 idx#7 idx#1 ] ASSEMBLER BEFORE OPTIMIZATION // File Comments // Tests calling into a function pointer with local variables - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -735,7 +736,7 @@ Score: 3558 // File Comments // Tests calling into a function pointer with local variables - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" diff --git a/src/test/ref/function-pointer-noarg-call-9.log b/src/test/ref/function-pointer-noarg-call-9.log index ba967b53f..d749c8774 100644 --- a/src/test/ref/function-pointer-noarg-call-9.log +++ b/src/test/ref/function-pointer-noarg-call-9.log @@ -145,9 +145,10 @@ Complete equivalence classes Allocated zp ZP_BYTE:2 [ idx#0 idx#1 ] INITIAL ASM +Target platform is c64basic // File Comments // Tests calling into a function pointer which modifies global volatile - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -225,7 +226,7 @@ Uplifting [] best 72 combination zp ZP_BYTE:2 [ idx#0 idx#1 ] ASSEMBLER BEFORE OPTIMIZATION // File Comments // Tests calling into a function pointer which modifies global volatile - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -324,7 +325,7 @@ Score: 66 // File Comments // Tests calling into a function pointer which modifies global volatile - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" diff --git a/src/test/ref/function-pointer-noarg-call.log b/src/test/ref/function-pointer-noarg-call.log index 7177d858a..0b9420627 100644 --- a/src/test/ref/function-pointer-noarg-call.log +++ b/src/test/ref/function-pointer-noarg-call.log @@ -109,9 +109,10 @@ Initial phi equivalence classes Complete equivalence classes INITIAL ASM +Target platform is c64basic // File Comments // Tests creating, assigning and calling pointers to non-args no-return functions - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -169,7 +170,7 @@ Uplifting [] best 42 combination ASSEMBLER BEFORE OPTIMIZATION // File Comments // Tests creating, assigning and calling pointers to non-args no-return functions - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -253,7 +254,7 @@ Score: 24 // File Comments // Tests creating, assigning and calling pointers to non-args no-return functions - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/function-pointer-noarg.log b/src/test/ref/function-pointer-noarg.log index 4da109896..6f6a631b4 100644 --- a/src/test/ref/function-pointer-noarg.log +++ b/src/test/ref/function-pointer-noarg.log @@ -223,9 +223,10 @@ Initial phi equivalence classes Complete equivalence classes INITIAL ASM +Target platform is c64basic // File Comments // Tests creating pointers to non-args no-return functions - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -309,7 +310,7 @@ Uplifting [] best 75 combination ASSEMBLER BEFORE OPTIMIZATION // File Comments // Tests creating pointers to non-args no-return functions - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -420,7 +421,7 @@ Score: 54 // File Comments // Tests creating pointers to non-args no-return functions - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/function-pointer-return.log b/src/test/ref/function-pointer-return.log index a7a4e8c18..62e871c69 100644 --- a/src/test/ref/function-pointer-return.log +++ b/src/test/ref/function-pointer-return.log @@ -289,9 +289,10 @@ Allocated zp ZP_BYTE:5 [ main::$0 ] Allocated zp ZP_BYTE:6 [ main::$4 ] INITIAL ASM +Target platform is c64basic // File Comments // Tests creating and assigning pointers to non-args return with function value - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -423,7 +424,7 @@ Allocated (was zp ZP_WORD:3) zp ZP_WORD:2 [ main::f#3 ] ASSEMBLER BEFORE OPTIMIZATION // File Comments // Tests creating and assigning pointers to non-args return with function value - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -595,7 +596,7 @@ Score: 479 // File Comments // Tests creating and assigning pointers to non-args return with function value - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/gfxbank.log b/src/test/ref/gfxbank.log index 5622f86f0..b9252ca2f 100644 --- a/src/test/ref/gfxbank.log +++ b/src/test/ref/gfxbank.log @@ -211,9 +211,10 @@ Initial phi equivalence classes Complete equivalence classes INITIAL ASM +Target platform is c64basic // File Comments // Test minimization of constants - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -280,7 +281,7 @@ Uplifting [] best 96 combination ASSEMBLER BEFORE OPTIMIZATION // File Comments // Test minimization of constants - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -390,7 +391,7 @@ Score: 18 // File Comments // Test minimization of constants - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/global-pc.log b/src/test/ref/global-pc.log index 50950576c..70eb2304c 100644 --- a/src/test/ref/global-pc.log +++ b/src/test/ref/global-pc.log @@ -107,9 +107,10 @@ Complete equivalence classes Allocated zp ZP_BYTE:2 [ main::col#0 ] INITIAL ASM +Target platform is c64basic // File Comments // Test setting the program PC through a #pc directive - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $1000 "Program" @@ -161,7 +162,7 @@ Uplifting [] best 127 combination ASSEMBLER BEFORE OPTIMIZATION // File Comments // Test setting the program PC through a #pc directive - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $1000 "Program" @@ -235,7 +236,7 @@ Score: 112 // File Comments // Test setting the program PC through a #pc directive - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $1000 "Program" diff --git a/src/test/ref/halfscii.log b/src/test/ref/halfscii.log index 8a3c996b7..c29f5f231 100644 --- a/src/test/ref/halfscii.log +++ b/src/test/ref/halfscii.log @@ -870,8 +870,9 @@ Allocated zp ZP_BYTE:36 [ main::bits#3 ] Allocated zp ZP_BYTE:37 [ main::bits_gen#7 ] INITIAL ASM +Target platform is c64basic // File Comments - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -1409,7 +1410,7 @@ Allocated (was zp ZP_BYTE:33) zp ZP_BYTE:11 [ main::$30 ] ASSEMBLER BEFORE OPTIMIZATION // File Comments - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -1881,7 +1882,7 @@ FINAL ASSEMBLER Score: 3108 // File Comments - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/helloworld0.log b/src/test/ref/helloworld0.log index 51523ba48..621ae4d68 100644 --- a/src/test/ref/helloworld0.log +++ b/src/test/ref/helloworld0.log @@ -125,9 +125,10 @@ Complete equivalence classes Allocated zp ZP_BYTE:2 [ main::i#2 main::i#1 ] INITIAL ASM +Target platform is c64basic // File Comments // Tests minimal hello world - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -199,7 +200,7 @@ Uplifting [] best 288 combination ASSEMBLER BEFORE OPTIMIZATION // File Comments // Tests minimal hello world - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -299,7 +300,7 @@ Score: 186 // File Comments // Tests minimal hello world - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/helloworld2-inline.log b/src/test/ref/helloworld2-inline.log index ebe02a2bf..03f3cdd24 100644 --- a/src/test/ref/helloworld2-inline.log +++ b/src/test/ref/helloworld2-inline.log @@ -299,8 +299,9 @@ Allocated zp ZP_BYTE:4 [ main::print22_i#2 main::print22_i#1 ] Allocated zp ZP_BYTE:5 [ main::print22_j#2 main::print22_j#1 ] INITIAL ASM +Target platform is c64basic // File Comments - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -441,7 +442,7 @@ Uplifting [] best 744 combination ASSEMBLER BEFORE OPTIMIZATION // File Comments - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -617,7 +618,7 @@ FINAL ASSEMBLER Score: 576 // File Comments - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/helloworld2.log b/src/test/ref/helloworld2.log index 5e16e84f3..050a09008 100644 --- a/src/test/ref/helloworld2.log +++ b/src/test/ref/helloworld2.log @@ -236,8 +236,9 @@ Allocated zp ZP_BYTE:4 [ print2::i#2 print2::i#1 ] Allocated zp ZP_BYTE:5 [ print2::j#2 print2::j#1 ] INITIAL ASM +Target platform is c64basic // File Comments - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -360,7 +361,7 @@ Uplifting [] best 447 combination ASSEMBLER BEFORE OPTIMIZATION // File Comments - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -517,7 +518,7 @@ FINAL ASSEMBLER Score: 339 // File Comments - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/hex2dec-ptrptr.log b/src/test/ref/hex2dec-ptrptr.log index d46df439b..ddb8675e1 100644 --- a/src/test/ref/hex2dec-ptrptr.log +++ b/src/test/ref/hex2dec-ptrptr.log @@ -769,9 +769,10 @@ Allocated zp ZP_BYTE:16 [ utoa16w::$8 ] Allocated zp ZP_BYTE:17 [ utoa16w::$12 ] INITIAL ASM +Target platform is c64basic // File Comments // Testing binary to hex conversion using pointer to pointer - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -1177,7 +1178,7 @@ Allocated (was zp ZP_WORD:8) zp ZP_WORD:6 [ cls::sc#2 cls::sc#1 ] ASSEMBLER BEFORE OPTIMIZATION // File Comments // Testing binary to hex conversion using pointer to pointer - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -1628,7 +1629,7 @@ Score: 741 // File Comments // Testing binary to hex conversion using pointer to pointer - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/hex2dec.log b/src/test/ref/hex2dec.log index 62400253f..0fe7c4f15 100644 --- a/src/test/ref/hex2dec.log +++ b/src/test/ref/hex2dec.log @@ -1435,9 +1435,10 @@ Allocated zp ZP_BYTE:36 [ utoa16w::$8 ] Allocated zp ZP_BYTE:37 [ utoa16w::$12 ] INITIAL ASM +Target platform is c64basic // File Comments // Testing hex to decimal conversion - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -2201,7 +2202,7 @@ Allocated (was zp ZP_BYTE:21) zp ZP_BYTE:15 [ main::time_start#0 ] ASSEMBLER BEFORE OPTIMIZATION // File Comments // Testing hex to decimal conversion - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -2994,7 +2995,7 @@ Score: 22008 // File Comments // Testing hex to decimal conversion - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/ifmin.log b/src/test/ref/ifmin.log index 4cebfc483..7de50676d 100644 --- a/src/test/ref/ifmin.log +++ b/src/test/ref/ifmin.log @@ -149,9 +149,10 @@ Complete equivalence classes Allocated zp ZP_BYTE:2 [ main::i#2 main::i#1 ] INITIAL ASM +Target platform is c64basic // File Comments // Minimal if() test - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -228,7 +229,7 @@ Uplifting [] best 338 combination ASSEMBLER BEFORE OPTIMIZATION // File Comments // Minimal if() test - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -338,7 +339,7 @@ Score: 176 // File Comments // Minimal if() test - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/immzero.log b/src/test/ref/immzero.log index c3a8a6751..12c011131 100644 --- a/src/test/ref/immzero.log +++ b/src/test/ref/immzero.log @@ -136,9 +136,10 @@ Allocated zp ZP_WORD:2 [ main::w#2 main::w#1 ] Allocated zp ZP_BYTE:4 [ main::j#2 main::j#1 ] INITIAL ASM +Target platform is c64basic // File Comments // Tests that immediate zero values are reused - even when assigning to words - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -220,7 +221,7 @@ Uplifting [] best 468 combination ASSEMBLER BEFORE OPTIMIZATION // File Comments // Tests that immediate zero values are reused - even when assigning to words - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -333,7 +334,7 @@ Score: 346 // File Comments // Tests that immediate zero values are reused - even when assigning to words - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/importing.log b/src/test/ref/importing.log index 9043f583e..bbeafc9e8 100644 --- a/src/test/ref/importing.log +++ b/src/test/ref/importing.log @@ -97,8 +97,9 @@ Initial phi equivalence classes Complete equivalence classes INITIAL ASM +Target platform is c64basic // File Comments - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -149,7 +150,7 @@ Uplifting [] best 33 combination ASSEMBLER BEFORE OPTIMIZATION // File Comments - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -224,7 +225,7 @@ FINAL ASSEMBLER Score: 18 // File Comments - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/incd020.log b/src/test/ref/incd020.log index 4123a30ed..6f4860428 100644 --- a/src/test/ref/incd020.log +++ b/src/test/ref/incd020.log @@ -86,10 +86,11 @@ Initial phi equivalence classes Complete equivalence classes INITIAL ASM +Target platform is c64basic // File Comments // Incrementing / decrementing pointer content should result in code modifying the memory location - eg. inc $d020. // Currently it does not but instead leads to just reading the value a few times. - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -137,7 +138,7 @@ ASSEMBLER BEFORE OPTIMIZATION // File Comments // Incrementing / decrementing pointer content should result in code modifying the memory location - eg. inc $d020. // Currently it does not but instead leads to just reading the value a few times. - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -207,7 +208,7 @@ Score: 150 // File Comments // Incrementing / decrementing pointer content should result in code modifying the memory location - eg. inc $d020. // Currently it does not but instead leads to just reading the value a few times. - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/incrementinarray.log b/src/test/ref/incrementinarray.log index 7f27373e8..47096b0a0 100644 --- a/src/test/ref/incrementinarray.log +++ b/src/test/ref/incrementinarray.log @@ -685,8 +685,9 @@ Allocated zp ZP_WORD:7 [ print_char_cursor#12 print_char_cursor#25 print_char_cu Allocated zp ZP_WORD:9 [ memset::dst#2 memset::dst#1 ] INITIAL ASM +Target platform is c64basic // File Comments - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -970,7 +971,7 @@ Allocated (was zp ZP_WORD:9) zp ZP_WORD:8 [ memset::dst#2 memset::dst#1 ] ASSEMBLER BEFORE OPTIMIZATION // File Comments - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -1327,7 +1328,7 @@ FINAL ASSEMBLER Score: 11134 // File Comments - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/infloop-error.log b/src/test/ref/infloop-error.log index 9fc3ce66e..29056fcc1 100644 --- a/src/test/ref/infloop-error.log +++ b/src/test/ref/infloop-error.log @@ -278,9 +278,10 @@ Allocated zp ZP_BYTE:3 [ main::min#2 main::min#3 main::min#9 ] Allocated zp ZP_BYTE:4 [ main::max#2 main::max#3 main::max#9 ] INITIAL ASM +Target platform is c64basic // File Comments // Results in infinite compile loop as the compiler keeps trying to remove the same (empty) alias - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -393,7 +394,7 @@ Uplifting [] best 652 combination ASSEMBLER BEFORE OPTIMIZATION // File Comments // Results in infinite compile loop as the compiler keeps trying to remove the same (empty) alias - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -552,7 +553,7 @@ Score: 460 // File Comments // Results in infinite compile loop as the compiler keeps trying to remove the same (empty) alias - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/init-volatiles.log b/src/test/ref/init-volatiles.log index e1fe2f19b..36e09f0f8 100644 --- a/src/test/ref/init-volatiles.log +++ b/src/test/ref/init-volatiles.log @@ -140,9 +140,10 @@ Complete equivalence classes Allocated zp ZP_BYTE:2 [ x#5 x#0 x#1 x#2 ] INITIAL ASM +Target platform is c64basic // File Comments // Illustrates a problem where volatiles with initializers are initialized outside the main()-routine - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -214,7 +215,7 @@ Uplifting [] best 216 combination zp ZP_BYTE:2 [ x#5 x#0 x#1 x#2 ] ASSEMBLER BEFORE OPTIMIZATION // File Comments // Illustrates a problem where volatiles with initializers are initialized outside the main()-routine - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -312,7 +313,7 @@ Score: 153 // File Comments // Illustrates a problem where volatiles with initializers are initialized outside the main()-routine - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" diff --git a/src/test/ref/inline-asm-clobber-none.log b/src/test/ref/inline-asm-clobber-none.log index aa8a9b57d..be8ce7da5 100644 --- a/src/test/ref/inline-asm-clobber-none.log +++ b/src/test/ref/inline-asm-clobber-none.log @@ -211,9 +211,10 @@ Allocated zp ZP_BYTE:3 [ main::j#4 main::j#1 ] Allocated zp ZP_BYTE:4 [ main::k#2 main::k#1 ] INITIAL ASM +Target platform is c64basic // File Comments // Tests that inline ASM JSR clobbers all registers - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -334,7 +335,7 @@ Uplifting [] best 54463 combination ASSEMBLER BEFORE OPTIMIZATION // File Comments // Tests that inline ASM JSR clobbers all registers - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -502,7 +503,7 @@ Score: 44461 // File Comments // Tests that inline ASM JSR clobbers all registers - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/inline-asm-clobber.log b/src/test/ref/inline-asm-clobber.log index 71af24da9..c5c856c7d 100644 --- a/src/test/ref/inline-asm-clobber.log +++ b/src/test/ref/inline-asm-clobber.log @@ -262,9 +262,10 @@ Allocated zp ZP_BYTE:4 [ main::k#4 main::k#1 ] Allocated zp ZP_BYTE:5 [ main::l#2 main::l#1 ] INITIAL ASM +Target platform is c64basic // File Comments // Tests that inline ASM clobbering is taken into account when assigning registers - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -418,7 +419,7 @@ Allocated (was zp ZP_BYTE:5) zp ZP_BYTE:2 [ main::l#2 main::l#1 ] ASSEMBLER BEFORE OPTIMIZATION // File Comments // Tests that inline ASM clobbering is taken into account when assigning registers - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -616,7 +617,7 @@ Score: 4676 // File Comments // Tests that inline ASM clobbering is taken into account when assigning registers - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/inline-asm-jsr-clobber.log b/src/test/ref/inline-asm-jsr-clobber.log index b1d22f84a..aaea20bde 100644 --- a/src/test/ref/inline-asm-jsr-clobber.log +++ b/src/test/ref/inline-asm-jsr-clobber.log @@ -109,9 +109,10 @@ Complete equivalence classes Allocated zp ZP_BYTE:2 [ main::i#2 main::i#1 ] INITIAL ASM +Target platform is c64basic // File Comments // Tests that inline ASM JSR clobbers all registers - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -185,7 +186,7 @@ Uplifting [main] best 343 combination zp ZP_BYTE:2 [ main::i#2 main::i#1 ] ASSEMBLER BEFORE OPTIMIZATION // File Comments // Tests that inline ASM JSR clobbers all registers - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -281,7 +282,7 @@ Score: 241 // File Comments // Tests that inline ASM JSR clobbers all registers - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/inline-asm-label.log b/src/test/ref/inline-asm-label.log index 3d8c0c7ea..813eae4ce 100644 --- a/src/test/ref/inline-asm-label.log +++ b/src/test/ref/inline-asm-label.log @@ -80,9 +80,10 @@ Initial phi equivalence classes Complete equivalence classes INITIAL ASM +Target platform is c64basic // File Comments // Illustrates how inline assembler use internal labels and external references - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -134,7 +135,7 @@ Uplifting [] best 39 combination ASSEMBLER BEFORE OPTIMIZATION // File Comments // Illustrates how inline assembler use internal labels and external references - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -209,7 +210,7 @@ Score: 24 // File Comments // Illustrates how inline assembler use internal labels and external references - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/inline-asm-optimized.log b/src/test/ref/inline-asm-optimized.log index 3ab76a872..49c015244 100644 --- a/src/test/ref/inline-asm-optimized.log +++ b/src/test/ref/inline-asm-optimized.log @@ -93,9 +93,10 @@ Initial phi equivalence classes Complete equivalence classes INITIAL ASM +Target platform is c64basic // File Comments // Tests that inline assembler is optimized - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -155,7 +156,7 @@ Uplifting [] best 51 combination ASSEMBLER BEFORE OPTIMIZATION // File Comments // Tests that inline assembler is optimized - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -238,7 +239,7 @@ Score: 28 // File Comments // Tests that inline assembler is optimized - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/inline-asm-ref-scoped.log b/src/test/ref/inline-asm-ref-scoped.log index 8f5483752..deb18b9fb 100644 --- a/src/test/ref/inline-asm-ref-scoped.log +++ b/src/test/ref/inline-asm-ref-scoped.log @@ -87,9 +87,10 @@ Initial phi equivalence classes Complete equivalence classes INITIAL ASM +Target platform is c64basic // File Comments // Tests that references to labels in other scopes is possible from inline ASM - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -151,7 +152,7 @@ Uplifting [] best 48 combination ASSEMBLER BEFORE OPTIMIZATION // File Comments // Tests that references to labels in other scopes is possible from inline ASM - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -233,7 +234,7 @@ Score: 30 // File Comments // Tests that references to labels in other scopes is possible from inline ASM - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/inline-asm-refout-const.log b/src/test/ref/inline-asm-refout-const.log index a0a91590f..bac320d8f 100644 --- a/src/test/ref/inline-asm-refout-const.log +++ b/src/test/ref/inline-asm-refout-const.log @@ -80,9 +80,10 @@ Initial phi equivalence classes Complete equivalence classes INITIAL ASM +Target platform is c64basic // File Comments // Illustrates how inline assembler can reference data from the outside program without the data being optimized away as unused - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -134,7 +135,7 @@ Uplifting [] best 39 combination ASSEMBLER BEFORE OPTIMIZATION // File Comments // Illustrates how inline assembler can reference data from the outside program without the data being optimized away as unused - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -209,7 +210,7 @@ Score: 24 // File Comments // Illustrates how inline assembler can reference data from the outside program without the data being optimized away as unused - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/inline-asm-refout.log b/src/test/ref/inline-asm-refout.log index 04eb70704..f33c078cc 100644 --- a/src/test/ref/inline-asm-refout.log +++ b/src/test/ref/inline-asm-refout.log @@ -100,9 +100,10 @@ Initial phi equivalence classes Complete equivalence classes INITIAL ASM +Target platform is c64basic // File Comments // Illustrates how inline assembler can reference data from the outside program - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -158,7 +159,7 @@ Uplifting [] best 47 combination ASSEMBLER BEFORE OPTIMIZATION // File Comments // Illustrates how inline assembler can reference data from the outside program - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -236,7 +237,7 @@ Score: 32 // File Comments // Illustrates how inline assembler can reference data from the outside program - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/inline-asm.log b/src/test/ref/inline-asm.log index 80bd1adaf..5238ed429 100644 --- a/src/test/ref/inline-asm.log +++ b/src/test/ref/inline-asm.log @@ -62,8 +62,9 @@ Initial phi equivalence classes Complete equivalence classes INITIAL ASM +Target platform is c64basic // File Comments - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -114,7 +115,7 @@ Uplifting [] best 49 combination ASSEMBLER BEFORE OPTIMIZATION // File Comments - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -184,7 +185,7 @@ FINAL ASSEMBLER Score: 34 // File Comments - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/inline-assignment.log b/src/test/ref/inline-assignment.log index 624d88dc6..36df5d026 100644 --- a/src/test/ref/inline-assignment.log +++ b/src/test/ref/inline-assignment.log @@ -142,8 +142,9 @@ Complete equivalence classes Allocated zp ZP_BYTE:2 [ main::a#1 main::i#1 ] INITIAL ASM +Target platform is c64basic // File Comments - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -215,7 +216,7 @@ Uplifting [] best 333 combination ASSEMBLER BEFORE OPTIMIZATION // File Comments - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -315,7 +316,7 @@ FINAL ASSEMBLER Score: 231 // File Comments - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/inline-function-if.log b/src/test/ref/inline-function-if.log index 263c740f8..5276d4e1b 100644 --- a/src/test/ref/inline-function-if.log +++ b/src/test/ref/inline-function-if.log @@ -268,9 +268,10 @@ Initial phi equivalence classes Complete equivalence classes INITIAL ASM +Target platform is c64basic // File Comments // Test inlining a slightly complex print function (containing an if) - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -341,7 +342,7 @@ Uplifting [] best 99 combination ASSEMBLER BEFORE OPTIMIZATION // File Comments // Test inlining a slightly complex print function (containing an if) - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -460,7 +461,7 @@ Score: 18 // File Comments // Test inlining a slightly complex print function (containing an if) - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/inline-function-level2.log b/src/test/ref/inline-function-level2.log index 88f4598eb..1be2c2af4 100644 --- a/src/test/ref/inline-function-level2.log +++ b/src/test/ref/inline-function-level2.log @@ -613,9 +613,10 @@ Allocated zp ZP_BYTE:14 [ main::plot1_xpos#0 ] Allocated zp ZP_BYTE:15 [ main::plot2_xpos#0 ] INITIAL ASM +Target platform is c64basic // File Comments // Inline functions in two levels - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -870,7 +871,7 @@ Allocated (was zp ZP_WORD:11) zp ZP_WORD:10 [ cur_line#10 cur_line#11 ] ASSEMBLER BEFORE OPTIMIZATION // File Comments // Inline functions in two levels - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -1199,7 +1200,7 @@ Score: 2036 // File Comments // Inline functions in two levels - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/inline-function-min.log b/src/test/ref/inline-function-min.log index 1e5c264e7..5994f8e3a 100644 --- a/src/test/ref/inline-function-min.log +++ b/src/test/ref/inline-function-min.log @@ -290,9 +290,10 @@ Initial phi equivalence classes Complete equivalence classes INITIAL ASM +Target platform is c64basic // File Comments // Test minimal inline function - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -381,7 +382,7 @@ Uplifting [] best 138 combination ASSEMBLER BEFORE OPTIMIZATION // File Comments // Test minimal inline function - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -532,7 +533,7 @@ Score: 24 // File Comments // Test minimal inline function - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/inline-function-print.log b/src/test/ref/inline-function-print.log index 2cb0676a5..953544d1a 100644 --- a/src/test/ref/inline-function-print.log +++ b/src/test/ref/inline-function-print.log @@ -297,9 +297,10 @@ Allocated zp ZP_BYTE:4 [ main::print2_i#2 main::print2_i#1 ] Allocated zp ZP_BYTE:5 [ main::print2_j#2 main::print2_j#1 ] INITIAL ASM +Target platform is c64basic // File Comments // TEst inlining a slightly complex print function (containing a loop) - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -441,7 +442,7 @@ Uplifting [] best 744 combination ASSEMBLER BEFORE OPTIMIZATION // File Comments // TEst inlining a slightly complex print function (containing a loop) - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -618,7 +619,7 @@ Score: 576 // File Comments // TEst inlining a slightly complex print function (containing a loop) - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/inline-function.log b/src/test/ref/inline-function.log index 06ceec868..135316fe2 100644 --- a/src/test/ref/inline-function.log +++ b/src/test/ref/inline-function.log @@ -419,10 +419,11 @@ Initial phi equivalence classes Complete equivalence classes INITIAL ASM +Target platform is c64basic // File Comments // Test inline function // Splits screen so upper half is lower case and lower half lower case - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -518,7 +519,7 @@ ASSEMBLER BEFORE OPTIMIZATION // File Comments // Test inline function // Splits screen so upper half is lower case and lower half lower case - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -675,7 +676,7 @@ Score: 1972 // File Comments // Test inline function // Splits screen so upper half is lower case and lower half lower case - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/inline-kasm-clobber.log b/src/test/ref/inline-kasm-clobber.log index 945eed313..a70049037 100644 --- a/src/test/ref/inline-kasm-clobber.log +++ b/src/test/ref/inline-kasm-clobber.log @@ -226,9 +226,10 @@ Allocated zp ZP_BYTE:3 [ main::l#4 main::l#1 ] Allocated zp ZP_BYTE:4 [ main::m#2 main::m#1 ] INITIAL ASM +Target platform is c64basic // File Comments // Tests that inline kickasm supports the clobbering directive - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -361,7 +362,7 @@ Uplifting [main] best 276433 combination zp ZP_BYTE:2 [ main::k#6 main::k#1 ] ASSEMBLER BEFORE OPTIMIZATION // File Comments // Tests that inline kickasm supports the clobbering directive - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -532,7 +533,7 @@ Score: 266411 // File Comments // Tests that inline kickasm supports the clobbering directive - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/inline-kasm-data.log b/src/test/ref/inline-kasm-data.log index 9ced188ba..9006e935e 100644 --- a/src/test/ref/inline-kasm-data.log +++ b/src/test/ref/inline-kasm-data.log @@ -183,9 +183,10 @@ Allocated zp ZP_WORD:5 [ main::cols#2 main::cols#1 ] Allocated zp ZP_BYTE:7 [ main::sin#0 ] INITIAL ASM +Target platform is c64basic // File Comments // Example of inline kickasm data - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -311,7 +312,7 @@ Allocated (was zp ZP_WORD:5) zp ZP_WORD:4 [ main::cols#2 main::cols#1 ] ASSEMBLER BEFORE OPTIMIZATION // File Comments // Example of inline kickasm data - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -458,7 +459,7 @@ Score: 3406 // File Comments // Example of inline kickasm data - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/inline-kasm-loop.log b/src/test/ref/inline-kasm-loop.log index 8a64d4f70..4ceffd8e1 100644 --- a/src/test/ref/inline-kasm-loop.log +++ b/src/test/ref/inline-kasm-loop.log @@ -99,9 +99,10 @@ Initial phi equivalence classes Complete equivalence classes INITIAL ASM +Target platform is c64basic // File Comments // Example of inline kickasm in a function - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -153,7 +154,7 @@ Uplifting [] best 283 combination ASSEMBLER BEFORE OPTIMIZATION // File Comments // Example of inline kickasm in a function - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -226,7 +227,7 @@ Score: 268 // File Comments // Example of inline kickasm in a function - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/inline-kasm-refout.log b/src/test/ref/inline-kasm-refout.log index 5417790e6..bb795b16b 100644 --- a/src/test/ref/inline-kasm-refout.log +++ b/src/test/ref/inline-kasm-refout.log @@ -94,9 +94,10 @@ Initial phi equivalence classes Complete equivalence classes INITIAL ASM +Target platform is c64basic // File Comments // Illustrates how inline kickassembler can reference data from the outside program - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -148,7 +149,7 @@ Uplifting [] best 277 combination ASSEMBLER BEFORE OPTIMIZATION // File Comments // Illustrates how inline kickassembler can reference data from the outside program - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -224,7 +225,7 @@ Score: 262 // File Comments // Illustrates how inline kickassembler can reference data from the outside program - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/inline-kasm-resource.log b/src/test/ref/inline-kasm-resource.log index 31917fd27..d57da2fcf 100644 --- a/src/test/ref/inline-kasm-resource.log +++ b/src/test/ref/inline-kasm-resource.log @@ -165,9 +165,10 @@ Initial phi equivalence classes Complete equivalence classes INITIAL ASM +Target platform is c64basic // File Comments // Example of inline kickasm resource data - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -236,7 +237,7 @@ Uplifting [] best 2605 combination ASSEMBLER BEFORE OPTIMIZATION // File Comments // Example of inline kickasm resource data - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -333,7 +334,7 @@ Score: 2588 // File Comments // Example of inline kickasm resource data - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/inline-pointer-0.log b/src/test/ref/inline-pointer-0.log index af842d94e..f1aca32ca 100644 --- a/src/test/ref/inline-pointer-0.log +++ b/src/test/ref/inline-pointer-0.log @@ -100,9 +100,10 @@ Initial phi equivalence classes Complete equivalence classes INITIAL ASM +Target platform is c64basic // File Comments // Tests creating a literal pointer from two bytes - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -148,7 +149,7 @@ Uplifting [] best 27 combination ASSEMBLER BEFORE OPTIMIZATION // File Comments // Tests creating a literal pointer from two bytes - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -215,7 +216,7 @@ Score: 12 // File Comments // Tests creating a literal pointer from two bytes - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/inline-pointer-1.log b/src/test/ref/inline-pointer-1.log index 425d7c244..f39c063b2 100644 --- a/src/test/ref/inline-pointer-1.log +++ b/src/test/ref/inline-pointer-1.log @@ -181,9 +181,10 @@ Allocated zp ZP_BYTE:3 [ puta::pl#2 ] Allocated zp ZP_WORD:4 [ puta::screen#0 ] INITIAL ASM +Target platform is c64basic // File Comments // Tests creating a literal pointer from two bytes - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -279,7 +280,7 @@ Allocated (was zp ZP_WORD:4) zp ZP_WORD:2 [ puta::screen#0 ] ASSEMBLER BEFORE OPTIMIZATION // File Comments // Tests creating a literal pointer from two bytes - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -400,7 +401,7 @@ Score: 48 // File Comments // Tests creating a literal pointer from two bytes - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/inline-pointer-2.log b/src/test/ref/inline-pointer-2.log index af8a4bbdd..2a37830fe 100644 --- a/src/test/ref/inline-pointer-2.log +++ b/src/test/ref/inline-pointer-2.log @@ -119,9 +119,10 @@ Initial phi equivalence classes Complete equivalence classes INITIAL ASM +Target platform is c64basic // File Comments // Tests creating a literal pointer from two bytes - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -167,7 +168,7 @@ Uplifting [] best 27 combination ASSEMBLER BEFORE OPTIMIZATION // File Comments // Tests creating a literal pointer from two bytes - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -234,7 +235,7 @@ Score: 12 // File Comments // Tests creating a literal pointer from two bytes - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/inline-string-2.log b/src/test/ref/inline-string-2.log index f6e5543da..f65a752fd 100644 --- a/src/test/ref/inline-string-2.log +++ b/src/test/ref/inline-string-2.log @@ -346,9 +346,10 @@ Allocated zp ZP_WORD:5 [ print_msg::msg#3 ] Allocated zp ZP_WORD:7 [ print::msg#2 print::msg#0 print::msg#1 ] INITIAL ASM +Target platform is c64basic // File Comments // Inline Strings in assignments - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -521,7 +522,7 @@ Allocated (was zp ZP_WORD:5) zp ZP_WORD:4 [ print_msg::msg#3 print::msg#2 print: ASSEMBLER BEFORE OPTIMIZATION // File Comments // Inline Strings in assignments - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -741,7 +742,7 @@ Score: 612 // File Comments // Inline Strings in assignments - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/inline-string-3.log b/src/test/ref/inline-string-3.log index 18eb42855..54899268b 100644 --- a/src/test/ref/inline-string-3.log +++ b/src/test/ref/inline-string-3.log @@ -147,11 +147,12 @@ Complete equivalence classes Allocated zp ZP_WORD:2 [ main::ptr#0 ] INITIAL ASM +Target platform is c64basic // File Comments // Test assigning address of inline string to pointer // The result should be an labelled .text in the ASM // Erroneously tries to inline the string completely leading to a CompileError - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -218,7 +219,7 @@ ASSEMBLER BEFORE OPTIMIZATION // Test assigning address of inline string to pointer // The result should be an labelled .text in the ASM // Erroneously tries to inline the string completely leading to a CompileError - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -309,7 +310,7 @@ Score: 43 // Test assigning address of inline string to pointer // The result should be an labelled .text in the ASM // Erroneously tries to inline the string completely leading to a CompileError - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/inline-string.log b/src/test/ref/inline-string.log index 779343aa1..2abb7f177 100644 --- a/src/test/ref/inline-string.log +++ b/src/test/ref/inline-string.log @@ -258,9 +258,10 @@ Allocated zp ZP_WORD:2 [ screen#18 screen#12 screen#5 ] Allocated zp ZP_WORD:4 [ print::msg#4 print::msg#6 print::msg#3 ] INITIAL ASM +Target platform is c64basic // File Comments // Inline Strings in method calls are automatically converted to local constant variables byte[] st = "..."; - generating an ASM .text). - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -398,7 +399,7 @@ Uplifting [main] best 706 combination ASSEMBLER BEFORE OPTIMIZATION // File Comments // Inline Strings in method calls are automatically converted to local constant variables byte[] st = "..."; - generating an ASM .text). - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -589,7 +590,7 @@ Score: 605 // File Comments // Inline Strings in method calls are automatically converted to local constant variables byte[] st = "..."; - generating an ASM .text). - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/inline-word-0.log b/src/test/ref/inline-word-0.log index 76ae6d70e..9190fb900 100644 --- a/src/test/ref/inline-word-0.log +++ b/src/test/ref/inline-word-0.log @@ -119,9 +119,10 @@ Initial phi equivalence classes Complete equivalence classes INITIAL ASM +Target platform is c64basic // File Comments // Tests minimal inline word - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -170,7 +171,7 @@ Uplifting [] best 33 combination ASSEMBLER BEFORE OPTIMIZATION // File Comments // Tests minimal inline word - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -242,7 +243,7 @@ Score: 18 // File Comments // Tests minimal inline word - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/inline-word-1.log b/src/test/ref/inline-word-1.log index 24f92f963..1d78a2f9f 100644 --- a/src/test/ref/inline-word-1.log +++ b/src/test/ref/inline-word-1.log @@ -119,9 +119,10 @@ Initial phi equivalence classes Complete equivalence classes INITIAL ASM +Target platform is c64basic // File Comments // Tests minimal inline word - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -170,7 +171,7 @@ Uplifting [] best 33 combination ASSEMBLER BEFORE OPTIMIZATION // File Comments // Tests minimal inline word - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -242,7 +243,7 @@ Score: 18 // File Comments // Tests minimal inline word - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/inline-word-2.log b/src/test/ref/inline-word-2.log index a73606977..91a9e092d 100644 --- a/src/test/ref/inline-word-2.log +++ b/src/test/ref/inline-word-2.log @@ -119,9 +119,10 @@ Initial phi equivalence classes Complete equivalence classes INITIAL ASM +Target platform is c64basic // File Comments // Tests minimal inline word - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -170,7 +171,7 @@ Uplifting [] best 33 combination ASSEMBLER BEFORE OPTIMIZATION // File Comments // Tests minimal inline word - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -242,7 +243,7 @@ Score: 18 // File Comments // Tests minimal inline word - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/inline-word.log b/src/test/ref/inline-word.log index 7ae2f6f8b..76eec335a 100644 --- a/src/test/ref/inline-word.log +++ b/src/test/ref/inline-word.log @@ -235,8 +235,9 @@ Allocated zp ZP_BYTE:3 [ main::l#2 main::l#1 ] Allocated zp ZP_WORD:4 [ main::w#0 ] INITIAL ASM +Target platform is c64basic // File Comments - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -347,7 +348,7 @@ Allocated (was zp ZP_WORD:4) zp ZP_WORD:3 [ main::w#0 ] ASSEMBLER BEFORE OPTIMIZATION // File Comments - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -493,7 +494,7 @@ FINAL ASSEMBLER Score: 3381 // File Comments - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/inlinearrayproblem.log b/src/test/ref/inlinearrayproblem.log index 7a9c04c85..cba45dfd5 100644 --- a/src/test/ref/inlinearrayproblem.log +++ b/src/test/ref/inlinearrayproblem.log @@ -147,10 +147,11 @@ Complete equivalence classes Allocated zp ZP_BYTE:2 [ main::i#2 main::i#1 ] INITIAL ASM +Target platform is c64basic // File Comments // Arrays / strings allocated inline destroy functions (because they are allocated where the call enters. // The following places the text at the start of the main-function - and JSR's straight into the text - not the code. - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -231,7 +232,7 @@ ASSEMBLER BEFORE OPTIMIZATION // File Comments // Arrays / strings allocated inline destroy functions (because they are allocated where the call enters. // The following places the text at the start of the main-function - and JSR's straight into the text - not the code. - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -341,7 +342,7 @@ Score: 281 // File Comments // Arrays / strings allocated inline destroy functions (because they are allocated where the call enters. // The following places the text at the start of the main-function - and JSR's straight into the text - not the code. - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/inmem-const-array.log b/src/test/ref/inmem-const-array.log index ba85b9ad2..ff2080b59 100644 --- a/src/test/ref/inmem-const-array.log +++ b/src/test/ref/inmem-const-array.log @@ -241,8 +241,9 @@ Allocated zp ZP_BYTE:2 [ main::i#2 main::i#1 ] Allocated zp ZP_BYTE:3 [ main::j#3 main::j#4 main::j#1 ] INITIAL ASM +Target platform is c64basic // File Comments - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -354,7 +355,7 @@ Uplifting [] best 553 combination ASSEMBLER BEFORE OPTIMIZATION // File Comments - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -507,7 +508,7 @@ FINAL ASSEMBLER Score: 361 // File Comments - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/inmemarray.log b/src/test/ref/inmemarray.log index ff737029c..0695aee56 100644 --- a/src/test/ref/inmemarray.log +++ b/src/test/ref/inmemarray.log @@ -210,8 +210,9 @@ Allocated zp ZP_BYTE:2 [ main::j#3 main::j#4 main::j#1 ] Allocated zp ZP_BYTE:3 [ main::i#2 main::i#1 ] INITIAL ASM +Target platform is c64basic // File Comments - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -313,7 +314,7 @@ Uplifting [] best 483 combination ASSEMBLER BEFORE OPTIMIZATION // File Comments - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -451,7 +452,7 @@ FINAL ASSEMBLER Score: 291 // File Comments - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/inmemstring.log b/src/test/ref/inmemstring.log index afedb59e1..113063a5c 100644 --- a/src/test/ref/inmemstring.log +++ b/src/test/ref/inmemstring.log @@ -203,8 +203,9 @@ Allocated zp ZP_BYTE:2 [ main::i#3 main::i#4 main::i#1 ] Allocated zp ZP_WORD:3 [ main::cursor#2 main::cursor#1 ] INITIAL ASM +Target platform is c64basic // File Comments - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -319,7 +320,7 @@ Allocated (was zp ZP_WORD:3) zp ZP_WORD:2 [ main::cursor#2 main::cursor#1 ] ASSEMBLER BEFORE OPTIMIZATION // File Comments - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -472,7 +473,7 @@ FINAL ASSEMBLER Score: 636 // File Comments - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/inner-increment-problem.log b/src/test/ref/inner-increment-problem.log index 1f0489d3c..1b518de59 100644 --- a/src/test/ref/inner-increment-problem.log +++ b/src/test/ref/inner-increment-problem.log @@ -152,9 +152,10 @@ Allocated zp ZP_WORD:4 [ main::i#2 main::i#1 ] Allocated zp ZP_BYTE:6 [ main::$1 ] INITIAL ASM +Target platform is c64basic // File Comments // Inner increment is not being done properly (screen++) - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -254,7 +255,7 @@ Uplifting [] best 988 combination ASSEMBLER BEFORE OPTIMIZATION // File Comments // Inner increment is not being done properly (screen++) - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -390,7 +391,7 @@ Score: 866 // File Comments // Inner increment is not being done properly (screen++) - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/int-conversion.log b/src/test/ref/int-conversion.log index b15ed0772..0450ccdc8 100644 --- a/src/test/ref/int-conversion.log +++ b/src/test/ref/int-conversion.log @@ -1635,9 +1635,10 @@ Allocated zp ZP_BYTE:5 [ assertType::t2#42 ] Allocated zp ZP_BYTE:6 [ idx#105 idx#108 idx#26 idx#40 idx#47 idx#19 ] INITIAL ASM +Target platform is c64basic // File Comments // Tests different integer literal types - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -2492,7 +2493,7 @@ Allocated (was zp ZP_BYTE:5) zp ZP_BYTE:4 [ assertType::t2#42 ] ASSEMBLER BEFORE OPTIMIZATION // File Comments // Tests different integer literal types - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -3601,7 +3602,7 @@ Score: 1129 // File Comments // Tests different integer literal types - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/int-literals.log b/src/test/ref/int-literals.log index fe9bd87e2..028b9bbf1 100644 --- a/src/test/ref/int-literals.log +++ b/src/test/ref/int-literals.log @@ -759,9 +759,10 @@ Allocated zp ZP_BYTE:5 [ assertType::t2#15 ] Allocated zp ZP_BYTE:6 [ idx#41 idx#20 ] INITIAL ASM +Target platform is c64basic // File Comments // Tests different integer literal types - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -1166,7 +1167,7 @@ Allocated (was zp ZP_BYTE:5) zp ZP_BYTE:4 [ assertType::t2#15 ] ASSEMBLER BEFORE OPTIMIZATION // File Comments // Tests different integer literal types - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -1689,7 +1690,7 @@ Score: 754 // File Comments // Tests different integer literal types - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/interrupt-volatile-reuse-problem1.log b/src/test/ref/interrupt-volatile-reuse-problem1.log index 554015fbd..bb4f0ac81 100644 --- a/src/test/ref/interrupt-volatile-reuse-problem1.log +++ b/src/test/ref/interrupt-volatile-reuse-problem1.log @@ -172,9 +172,10 @@ Allocated zp ZP_BYTE:2 [ col1#0 col1#1 ] Allocated zp ZP_BYTE:3 [ col2#0 col2#1 ] INITIAL ASM +Target platform is c64basic // File Comments // Illustrates problem where volatiles reuse the same ZP addresses for multiple overlapping volatiles - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -262,7 +263,7 @@ Uplifting [] best 73 combination zp ZP_BYTE:3 [ col2#0 col2#1 ] ASSEMBLER BEFORE OPTIMIZATION // File Comments // Illustrates problem where volatiles reuse the same ZP addresses for multiple overlapping volatiles - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -370,7 +371,7 @@ Score: 67 // File Comments // Illustrates problem where volatiles reuse the same ZP addresses for multiple overlapping volatiles - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" diff --git a/src/test/ref/interrupt-volatile-reuse-problem2.log b/src/test/ref/interrupt-volatile-reuse-problem2.log index f593715bf..795a3fd51 100644 --- a/src/test/ref/interrupt-volatile-reuse-problem2.log +++ b/src/test/ref/interrupt-volatile-reuse-problem2.log @@ -328,9 +328,10 @@ Allocated zp ZP_BYTE:5 [ col1#0 col1#1 ] Allocated zp ZP_BYTE:6 [ main::$1 ] INITIAL ASM +Target platform is c64basic // File Comments // Illustrates problem where volatiles reuse ZP addresses of other variables - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -507,7 +508,7 @@ Allocated (was zp ZP_BYTE:5) zp ZP_BYTE:3 [ col1#0 col1#1 ] ASSEMBLER BEFORE OPTIMIZATION // File Comments // Illustrates problem where volatiles reuse ZP addresses of other variables - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -722,7 +723,7 @@ Score: 223704 // File Comments // Illustrates problem where volatiles reuse ZP addresses of other variables - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" diff --git a/src/test/ref/irq-hardware-clobber-jsr.log b/src/test/ref/irq-hardware-clobber-jsr.log index f462e212f..888bc71ae 100644 --- a/src/test/ref/irq-hardware-clobber-jsr.log +++ b/src/test/ref/irq-hardware-clobber-jsr.log @@ -292,9 +292,10 @@ Initial phi equivalence classes Complete equivalence classes INITIAL ASM +Target platform is c64basic // File Comments // A minimal working raster hardware IRQ with clobber-based register savings - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -457,7 +458,7 @@ Removing interrupt register storage ldy #00 in SEG25 [16] return - exit interru ASSEMBLER BEFORE OPTIMIZATION // File Comments // A minimal working raster hardware IRQ with clobber-based register savings - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -651,7 +652,7 @@ Score: 224 // File Comments // A minimal working raster hardware IRQ with clobber-based register savings - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/irq-hardware-clobber.log b/src/test/ref/irq-hardware-clobber.log index 0b2608949..47a7d55b2 100644 --- a/src/test/ref/irq-hardware-clobber.log +++ b/src/test/ref/irq-hardware-clobber.log @@ -262,9 +262,10 @@ Initial phi equivalence classes Complete equivalence classes INITIAL ASM +Target platform is c64basic // File Comments // A minimal working raster hardware IRQ with clobber-based register savings - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -409,7 +410,7 @@ Removing interrupt register storage ldy #00 in SEG27 [17] return - exit interru ASSEMBLER BEFORE OPTIMIZATION // File Comments // A minimal working raster hardware IRQ with clobber-based register savings - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -583,7 +584,7 @@ Score: 212 // File Comments // A minimal working raster hardware IRQ with clobber-based register savings - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/irq-hardware.log b/src/test/ref/irq-hardware.log index 1f7b89fd6..c0e28e364 100644 --- a/src/test/ref/irq-hardware.log +++ b/src/test/ref/irq-hardware.log @@ -262,9 +262,10 @@ Initial phi equivalence classes Complete equivalence classes INITIAL ASM +Target platform is c64basic // File Comments // A minimal working raster IRQ - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -402,7 +403,7 @@ Uplifting [] best 314 combination ASSEMBLER BEFORE OPTIMIZATION // File Comments // A minimal working raster IRQ - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -582,7 +583,7 @@ Score: 296 // File Comments // A minimal working raster IRQ - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/irq-idx-problem.log b/src/test/ref/irq-idx-problem.log index e7a29583b..33aeadd44 100644 --- a/src/test/ref/irq-idx-problem.log +++ b/src/test/ref/irq-idx-problem.log @@ -463,9 +463,10 @@ Allocated zp ZP_BYTE:3 [ table_driven_irq::idx#0 ] Allocated zp ZP_BYTE:4 [ table_driven_irq::val#0 ] INITIAL ASM +Target platform is c64basic // File Comments // Test interrupt routine using a variable between calls (irq_idx) - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -677,7 +678,7 @@ Uplifting [] best 762 combination zp ZP_BYTE:2 [ irq_idx#3 irq_idx#4 irq_idx#0 i ASSEMBLER BEFORE OPTIMIZATION // File Comments // Test interrupt routine using a variable between calls (irq_idx) - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -939,7 +940,7 @@ Score: 604 // File Comments // Test interrupt routine using a variable between calls (irq_idx) - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" diff --git a/src/test/ref/irq-kernel-minimal.log b/src/test/ref/irq-kernel-minimal.log index ab823f535..0e9db3c38 100644 --- a/src/test/ref/irq-kernel-minimal.log +++ b/src/test/ref/irq-kernel-minimal.log @@ -135,9 +135,10 @@ Initial phi equivalence classes Complete equivalence classes INITIAL ASM +Target platform is c64basic // File Comments // A minimal working IRQ - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -215,7 +216,7 @@ Uplifting [] best 55 combination ASSEMBLER BEFORE OPTIMIZATION // File Comments // A minimal working IRQ - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -320,7 +321,7 @@ Score: 37 // File Comments // A minimal working IRQ - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/irq-kernel.log b/src/test/ref/irq-kernel.log index 9eebbf347..3a3947ff6 100644 --- a/src/test/ref/irq-kernel.log +++ b/src/test/ref/irq-kernel.log @@ -200,9 +200,10 @@ Initial phi equivalence classes Complete equivalence classes INITIAL ASM +Target platform is c64basic // File Comments // A minimal working raster IRQ - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -310,7 +311,7 @@ Uplifting [] best 89 combination ASSEMBLER BEFORE OPTIMIZATION // File Comments // A minimal working raster IRQ - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -454,7 +455,7 @@ Score: 71 // File Comments // A minimal working raster IRQ - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/irq-local-var-overlap-problem.log b/src/test/ref/irq-local-var-overlap-problem.log index d0722eeca..28d33a6e1 100644 --- a/src/test/ref/irq-local-var-overlap-problem.log +++ b/src/test/ref/irq-local-var-overlap-problem.log @@ -898,9 +898,10 @@ Allocated zp ZP_BYTE:20 [ sub_irq::$0 ] Allocated zp ZP_BYTE:21 [ sub_irq::$1 ] INITIAL ASM +Target platform is c64basic // File Comments // Illustrates a problem where local variables inside an IRQ are assigned the same zeropage as a variable outside the IRQ - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -1430,7 +1431,7 @@ Allocated (was zp ZP_BYTE:11) zp ZP_BYTE:9 [ sub_irq::i#6 sub_irq::i#1 ] ASSEMBLER BEFORE OPTIMIZATION // File Comments // Illustrates a problem where local variables inside an IRQ are assigned the same zeropage as a variable outside the IRQ - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -2071,7 +2072,7 @@ Score: 314173644 // File Comments // Illustrates a problem where local variables inside an IRQ are assigned the same zeropage as a variable outside the IRQ - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/irq-raster.log b/src/test/ref/irq-raster.log index 88f1a9324..986baa319 100644 --- a/src/test/ref/irq-raster.log +++ b/src/test/ref/irq-raster.log @@ -200,9 +200,10 @@ Initial phi equivalence classes Complete equivalence classes INITIAL ASM +Target platform is c64basic // File Comments // A minimal working raster IRQ - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -310,7 +311,7 @@ Uplifting [] best 89 combination ASSEMBLER BEFORE OPTIMIZATION // File Comments // A minimal working raster IRQ - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -454,7 +455,7 @@ Score: 71 // File Comments // A minimal working raster IRQ - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/irq-volatile-bool-problem.log b/src/test/ref/irq-volatile-bool-problem.log index bbd509a4e..707c56293 100644 --- a/src/test/ref/irq-volatile-bool-problem.log +++ b/src/test/ref/irq-volatile-bool-problem.log @@ -315,10 +315,11 @@ Complete equivalence classes Allocated zp ZP_BOOL:2 [ framedone#10 framedone#1 framedone#11 framedone#0 framedone#3 ] INITIAL ASM +Target platform is c64basic // File Comments // Illustrates a problem where a volatile bool modified at the end of an IRQ is not stored properly // because it is assigned to the A register - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -466,7 +467,7 @@ ASSEMBLER BEFORE OPTIMIZATION // File Comments // Illustrates a problem where a volatile bool modified at the end of an IRQ is not stored properly // because it is assigned to the A register - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -667,7 +668,7 @@ Score: 1025 // File Comments // Illustrates a problem where a volatile bool modified at the end of an IRQ is not stored properly // because it is assigned to the A register - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" diff --git a/src/test/ref/iterarray.log b/src/test/ref/iterarray.log index a734ac6d4..c5f323760 100644 --- a/src/test/ref/iterarray.log +++ b/src/test/ref/iterarray.log @@ -150,8 +150,9 @@ Allocated zp ZP_BYTE:2 [ main::i#2 main::i#1 ] Allocated zp ZP_BYTE:3 [ main::$1 ] INITIAL ASM +Target platform is c64basic // File Comments - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -224,7 +225,7 @@ Uplifting [] best 303 combination ASSEMBLER BEFORE OPTIMIZATION // File Comments - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -325,7 +326,7 @@ FINAL ASSEMBLER Score: 201 // File Comments - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/keyboard-glitch.log b/src/test/ref/keyboard-glitch.log index 2915b68b8..e47dd327d 100644 --- a/src/test/ref/keyboard-glitch.log +++ b/src/test/ref/keyboard-glitch.log @@ -701,6 +701,7 @@ Allocated zp ZP_BYTE:16 [ keyboard_key_pressed::return#10 ] Allocated zp ZP_BYTE:17 [ pressed::$0 ] INITIAL ASM +Target platform is c64basic // File Comments // Exploring keyboard glitch that finds "C" press when pressing space // The glitch is caused by the "normal" C64 interrupt occuring just as the keyboard is read. @@ -709,7 +710,7 @@ INITIAL ASM // Press "C" to enter pressed state (increaded bgcol) - and "SPACE" to leave presssed state again. // Holding SPACE will sometimes trigger the pressed state when normal interrupts are enabled (green border) // but never when they are disabled (red border) - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -1060,7 +1061,7 @@ ASSEMBLER BEFORE OPTIMIZATION // Press "C" to enter pressed state (increaded bgcol) - and "SPACE" to leave presssed state again. // Holding SPACE will sometimes trigger the pressed state when normal interrupts are enabled (green border) // but never when they are disabled (red border) - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -1465,7 +1466,7 @@ Score: 3151 // Press "C" to enter pressed state (increaded bgcol) - and "SPACE" to leave presssed state again. // Holding SPACE will sometimes trigger the pressed state when normal interrupts are enabled (green border) // but never when they are disabled (red border) - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/line-anim.log b/src/test/ref/line-anim.log index c3338283c..1bbb7dcd5 100644 --- a/src/test/ref/line-anim.log +++ b/src/test/ref/line-anim.log @@ -2780,9 +2780,10 @@ Allocated zp ZP_BYTE:92 [ bitmap_init::$5 ] Allocated zp ZP_BYTE:93 [ bitmap_init::$6 ] INITIAL ASM +Target platform is c64basic // File Comments // Animated lines drawn on a single color bitmap - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -4148,7 +4149,7 @@ Allocated (was zp ZP_BYTE:90) zp ZP_BYTE:35 [ bitmap_init::$7 ] ASSEMBLER BEFORE OPTIMIZATION // File Comments // Animated lines drawn on a single color bitmap - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -5611,7 +5612,7 @@ Score: 21969 // File Comments // Animated lines drawn on a single color bitmap - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/linegen.log b/src/test/ref/linegen.log index 9c72e5b1f..fc0a67680 100644 --- a/src/test/ref/linegen.log +++ b/src/test/ref/linegen.log @@ -2352,10 +2352,11 @@ Allocated zp ZP_BYTE:58 [ divr16u::$2 ] Allocated zp ZP_WORD:59 [ rem16u#1 ] INITIAL ASM +Target platform is c64basic // File Comments // Linear table generator // Work in progress towards a sinus generator - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -3535,7 +3536,7 @@ ASSEMBLER BEFORE OPTIMIZATION // File Comments // Linear table generator // Work in progress towards a sinus generator - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -4918,7 +4919,7 @@ Score: 13523 // File Comments // Linear table generator // Work in progress towards a sinus generator - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/literal-char-minus-number.log b/src/test/ref/literal-char-minus-number.log index b179a55ff..ac8d4f0ee 100644 --- a/src/test/ref/literal-char-minus-number.log +++ b/src/test/ref/literal-char-minus-number.log @@ -80,9 +80,10 @@ Initial phi equivalence classes Complete equivalence classes INITIAL ASM +Target platform is c64basic // File Comments // Tests subtracting a number from a literal char - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -128,7 +129,7 @@ Uplifting [] best 27 combination ASSEMBLER BEFORE OPTIMIZATION // File Comments // Tests subtracting a number from a literal char - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -195,7 +196,7 @@ Score: 12 // File Comments // Tests subtracting a number from a literal char - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/literal-strings.log b/src/test/ref/literal-strings.log index e6a7b6a2a..c61837376 100644 --- a/src/test/ref/literal-strings.log +++ b/src/test/ref/literal-strings.log @@ -145,9 +145,10 @@ Complete equivalence classes Allocated zp ZP_BYTE:2 [ main::i#2 main::i#1 ] INITIAL ASM +Target platform is c64basic // File Comments // Tests literal strings with and without zero-termination - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -226,7 +227,7 @@ Uplifting [] best 383 combination ASSEMBLER BEFORE OPTIMIZATION // File Comments // Tests literal strings with and without zero-termination - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -332,7 +333,7 @@ Score: 281 // File Comments // Tests literal strings with and without zero-termination - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/literals.log b/src/test/ref/literals.log index 3c97af899..69c551595 100644 --- a/src/test/ref/literals.log +++ b/src/test/ref/literals.log @@ -187,8 +187,9 @@ Complete equivalence classes Allocated zp ZP_BYTE:2 [ main::i#2 main::i#1 ] INITIAL ASM +Target platform is c64basic // File Comments - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -276,7 +277,7 @@ Uplifting [] best 395 combination ASSEMBLER BEFORE OPTIMIZATION // File Comments - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -390,7 +391,7 @@ FINAL ASSEMBLER Score: 293 // File Comments - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/liverange-call-problem.log b/src/test/ref/liverange-call-problem.log index 5fb603033..09f18b1c7 100644 --- a/src/test/ref/liverange-call-problem.log +++ b/src/test/ref/liverange-call-problem.log @@ -300,10 +300,11 @@ Allocated zp ZP_WORD:2 [ w2#10 w2#11 ] Allocated zp ZP_WORD:4 [ w1#11 w1#12 ] INITIAL ASM +Target platform is c64basic // File Comments // Live ranges were not functioning properly, when multiple method calls were chained - each modifying different vars. // w1 and w2 ended up having the same zero-page register as their live range was not propagated properly - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -441,7 +442,7 @@ ASSEMBLER BEFORE OPTIMIZATION // File Comments // Live ranges were not functioning properly, when multiple method calls were chained - each modifying different vars. // w1 and w2 ended up having the same zero-page register as their live range was not propagated properly - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -633,7 +634,7 @@ Score: 110 // File Comments // Live ranges were not functioning properly, when multiple method calls were chained - each modifying different vars. // w1 and w2 ended up having the same zero-page register as their live range was not propagated properly - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/liverange-problem-0.log b/src/test/ref/liverange-problem-0.log index 15732c128..fd9420d1f 100644 --- a/src/test/ref/liverange-problem-0.log +++ b/src/test/ref/liverange-problem-0.log @@ -227,12 +227,13 @@ Allocated zp ZP_WORD:10 [ SCREEN_2#0 ] Allocated zp ZP_WORD:12 [ malloc::return#0 ] INITIAL ASM +Target platform is c64basic // File Comments // Error where the compiler is reusing the same ZP for two byte* variables. // SCREEN_1 and SCREEN_2 are both allocated to ZP: 4 // Problem is that outside main() scope statements have zero call-paths and then isStatementAllocationOverlapping() never checks liveranges // CallPath code must be rewritten to use @begin as the outermost call instead of main() - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -372,7 +373,7 @@ ASSEMBLER BEFORE OPTIMIZATION // SCREEN_1 and SCREEN_2 are both allocated to ZP: 4 // Problem is that outside main() scope statements have zero call-paths and then isStatementAllocationOverlapping() never checks liveranges // CallPath code must be rewritten to use @begin as the outermost call instead of main() - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -531,7 +532,7 @@ Score: 98 // SCREEN_1 and SCREEN_2 are both allocated to ZP: 4 // Problem is that outside main() scope statements have zero call-paths and then isStatementAllocationOverlapping() never checks liveranges // CallPath code must be rewritten to use @begin as the outermost call instead of main() - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" diff --git a/src/test/ref/liverange.log b/src/test/ref/liverange.log index 366b01195..44e7f7da5 100644 --- a/src/test/ref/liverange.log +++ b/src/test/ref/liverange.log @@ -272,8 +272,9 @@ Allocated zp ZP_BYTE:8 [ main::a#2 ] Allocated zp ZP_BYTE:9 [ inci::return#2 ] INITIAL ASM +Target platform is c64basic // File Comments - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -404,7 +405,7 @@ Allocated (was zp ZP_BYTE:5) zp ZP_BYTE:2 [ main::a#1 ] ASSEMBLER BEFORE OPTIMIZATION // File Comments - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -551,7 +552,7 @@ FINAL ASSEMBLER Score: 58 // File Comments - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/local-string.log b/src/test/ref/local-string.log index b74e3750d..9dbd50c3e 100644 --- a/src/test/ref/local-string.log +++ b/src/test/ref/local-string.log @@ -133,9 +133,10 @@ Complete equivalence classes Allocated zp ZP_BYTE:2 [ main::i#2 main::i#1 ] INITIAL ASM +Target platform is c64basic // File Comments // Local constant strings are placed at the start of the method. This means the generated ASM jumps / calls straignt into the constant string - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -212,7 +213,7 @@ Uplifting [] best 333 combination ASSEMBLER BEFORE OPTIMIZATION // File Comments // Local constant strings are placed at the start of the method. This means the generated ASM jumps / calls straignt into the constant string - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -313,7 +314,7 @@ Score: 261 // File Comments // Local constant strings are placed at the start of the method. This means the generated ASM jumps / calls straignt into the constant string - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/localscope-loops.log b/src/test/ref/localscope-loops.log index 292e2fedf..9d2af6834 100644 --- a/src/test/ref/localscope-loops.log +++ b/src/test/ref/localscope-loops.log @@ -174,9 +174,10 @@ Allocated zp ZP_BYTE:2 [ main::i#2 main::i#1 ] Allocated zp ZP_BYTE:3 [ main::i1#2 main::i1#1 ] INITIAL ASM +Target platform is c64basic // File Comments // Illustrates introducing local scopes inside loops etc - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -274,7 +275,7 @@ Uplifting [] best 478 combination ASSEMBLER BEFORE OPTIMIZATION // File Comments // Illustrates introducing local scopes inside loops etc - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -400,7 +401,7 @@ Score: 316 // File Comments // Illustrates introducing local scopes inside loops etc - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/localscope-simple.log b/src/test/ref/localscope-simple.log index 53cc9216c..41caefcb8 100644 --- a/src/test/ref/localscope-simple.log +++ b/src/test/ref/localscope-simple.log @@ -96,9 +96,10 @@ Initial phi equivalence classes Complete equivalence classes INITIAL ASM +Target platform is c64basic // File Comments // Tests anonymous scopes inside functions - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -150,7 +151,7 @@ Uplifting [] best 33 combination ASSEMBLER BEFORE OPTIMIZATION // File Comments // Tests anonymous scopes inside functions - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -226,7 +227,7 @@ Score: 18 // File Comments // Tests anonymous scopes inside functions - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/longbranch-interrupt-problem.log b/src/test/ref/longbranch-interrupt-problem.log index 7568921fc..604de08e6 100644 --- a/src/test/ref/longbranch-interrupt-problem.log +++ b/src/test/ref/longbranch-interrupt-problem.log @@ -240,9 +240,10 @@ Complete equivalence classes Allocated zp ZP_BYTE:2 [ col#10 col#12 col#0 col#1 col#3 ] INITIAL ASM +Target platform is c64basic // File Comments // Tests that long branch fixing works with interrupt exits (to $ea81) - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -350,7 +351,7 @@ Uplifting [] best 1521 combination zp ZP_BYTE:2 [ col#10 col#12 col#0 col#1 col# ASSEMBLER BEFORE OPTIMIZATION // File Comments // Tests that long branch fixing works with interrupt exits (to $ea81) - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -498,7 +499,7 @@ Score: 888 // File Comments // Tests that long branch fixing works with interrupt exits (to $ea81) - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" diff --git a/src/test/ref/longjump.log b/src/test/ref/longjump.log index ed1c6194c..2f013d9d3 100644 --- a/src/test/ref/longjump.log +++ b/src/test/ref/longjump.log @@ -120,9 +120,10 @@ Complete equivalence classes Allocated zp ZP_BYTE:2 [ main::i#2 main::i#1 ] INITIAL ASM +Target platform is c64basic // File Comments // Minimal example program generating a long jump - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -447,7 +448,7 @@ Uplifting [] best 5383 combination ASSEMBLER BEFORE OPTIMIZATION // File Comments // Minimal example program generating a long jump - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -802,7 +803,7 @@ Score: 5311 // File Comments // Minimal example program generating a long jump - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/longjump2.log b/src/test/ref/longjump2.log index 3a5309f13..233bac30f 100644 --- a/src/test/ref/longjump2.log +++ b/src/test/ref/longjump2.log @@ -222,9 +222,10 @@ Allocated zp ZP_BYTE:2 [ long2::i#2 long2::i#1 ] Allocated zp ZP_BYTE:3 [ long1::i#2 long1::i#1 ] INITIAL ASM +Target platform is c64basic // File Comments // Minimal example program generating two long jumps - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -864,7 +865,7 @@ Uplifting [] best 10778 combination ASSEMBLER BEFORE OPTIMIZATION // File Comments // Minimal example program generating two long jumps - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -1552,7 +1553,7 @@ Score: 10640 // File Comments // Minimal example program generating two long jumps - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/loop-break-continue.log b/src/test/ref/loop-break-continue.log index 4541c1770..374707d22 100644 --- a/src/test/ref/loop-break-continue.log +++ b/src/test/ref/loop-break-continue.log @@ -203,10 +203,11 @@ Allocated zp ZP_BYTE:2 [ main::i#2 main::i#1 ] Allocated zp ZP_WORD:3 [ main::screen#2 main::screen#5 main::screen#1 ] INITIAL ASM +Target platform is c64basic // File Comments // Illustrates both break & continue statements in a loop // Prints a message ending at '@' skipping all spaces - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -320,7 +321,7 @@ ASSEMBLER BEFORE OPTIMIZATION // File Comments // Illustrates both break & continue statements in a loop // Prints a message ending at '@' skipping all spaces - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -461,7 +462,7 @@ Score: 651 // File Comments // Illustrates both break & continue statements in a loop // Prints a message ending at '@' skipping all spaces - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/loop-break-nested.log b/src/test/ref/loop-break-nested.log index a0d38683d..84b2dd979 100644 --- a/src/test/ref/loop-break-nested.log +++ b/src/test/ref/loop-break-nested.log @@ -211,9 +211,10 @@ Allocated zp ZP_WORD:2 [ main::line#2 main::line#1 ] Allocated zp ZP_BYTE:4 [ main::i#2 main::i#1 ] INITIAL ASM +Target platform is c64basic // File Comments // Tests break statement in a simple loop - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -340,7 +341,7 @@ Uplifting [] best 4528 combination ASSEMBLER BEFORE OPTIMIZATION // File Comments // Tests break statement in a simple loop - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -494,7 +495,7 @@ Score: 3256 // File Comments // Tests break statement in a simple loop - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/loop-break.log b/src/test/ref/loop-break.log index 6691d1594..ae85de097 100644 --- a/src/test/ref/loop-break.log +++ b/src/test/ref/loop-break.log @@ -136,9 +136,10 @@ Complete equivalence classes Allocated zp ZP_BYTE:2 [ main::i#2 main::i#1 ] INITIAL ASM +Target platform is c64basic // File Comments // Tests break statement in a simple loop - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -219,7 +220,7 @@ Uplifting [] best 383 combination ASSEMBLER BEFORE OPTIMIZATION // File Comments // Tests break statement in a simple loop - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -325,7 +326,7 @@ Score: 251 // File Comments // Tests break statement in a simple loop - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/loop-continue.log b/src/test/ref/loop-continue.log index 0d82efecf..db54f86ea 100644 --- a/src/test/ref/loop-continue.log +++ b/src/test/ref/loop-continue.log @@ -144,9 +144,10 @@ Complete equivalence classes Allocated zp ZP_BYTE:2 [ main::i#2 main::i#1 ] INITIAL ASM +Target platform is c64basic // File Comments // Tests break statement in a simple loop - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -227,7 +228,7 @@ Uplifting [] best 413 combination ASSEMBLER BEFORE OPTIMIZATION // File Comments // Tests break statement in a simple loop - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -338,7 +339,7 @@ Score: 251 // File Comments // Tests break statement in a simple loop - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/loop-problem.log b/src/test/ref/loop-problem.log index 3662b1d3c..4865a8c6a 100644 --- a/src/test/ref/loop-problem.log +++ b/src/test/ref/loop-problem.log @@ -181,9 +181,10 @@ Complete equivalence classes Allocated zp ZP_BYTE:2 [ b::i#2 b::i#1 ] INITIAL ASM +Target platform is c64basic // File Comments // A simple loop results in NullPointerException during loop analysis - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -287,7 +288,7 @@ Uplifting [] best 328 combination ASSEMBLER BEFORE OPTIMIZATION // File Comments // A simple loop results in NullPointerException during loop analysis - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -431,7 +432,7 @@ Score: 187 // File Comments // A simple loop results in NullPointerException during loop analysis - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/loop-problem2.log b/src/test/ref/loop-problem2.log index 7a944da33..8f25ca3f6 100644 --- a/src/test/ref/loop-problem2.log +++ b/src/test/ref/loop-problem2.log @@ -242,8 +242,9 @@ Allocated zp ZP_WORD:2 [ print_cls::sc#2 print_cls::sc#1 ] Allocated zp ZP_BYTE:4 [ mode_ctrl::before#0 ] INITIAL ASM +Target platform is c64basic // File Comments - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -376,7 +377,7 @@ Uplifting [] best 932 combination ASSEMBLER BEFORE OPTIMIZATION // File Comments - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -553,7 +554,7 @@ FINAL ASSEMBLER Score: 764 // File Comments - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/loop-while-continue.log b/src/test/ref/loop-while-continue.log index b26da7884..33d615618 100644 --- a/src/test/ref/loop-while-continue.log +++ b/src/test/ref/loop-while-continue.log @@ -150,9 +150,10 @@ Complete equivalence classes Allocated zp ZP_BYTE:2 [ main::i#2 main::i#1 ] INITIAL ASM +Target platform is c64basic // File Comments // Tests break statement in a simple loop - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -234,7 +235,7 @@ Uplifting [] best 3068 combination ASSEMBLER BEFORE OPTIMIZATION // File Comments // Tests break statement in a simple loop - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -347,7 +348,7 @@ Score: 1856 // File Comments // Tests break statement in a simple loop - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/loop100.log b/src/test/ref/loop100.log index 7afe55a6f..6b52b4135 100644 --- a/src/test/ref/loop100.log +++ b/src/test/ref/loop100.log @@ -109,8 +109,9 @@ Complete equivalence classes Allocated zp ZP_BYTE:2 [ main::i#2 main::i#1 ] INITIAL ASM +Target platform is c64basic // File Comments - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -172,7 +173,7 @@ Uplifting [] best 193 combination ASSEMBLER BEFORE OPTIMIZATION // File Comments - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -262,7 +263,7 @@ FINAL ASSEMBLER Score: 91 // File Comments - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/loopmin.log b/src/test/ref/loopmin.log index cbeedffd2..0309bfad2 100644 --- a/src/test/ref/loopmin.log +++ b/src/test/ref/loopmin.log @@ -185,8 +185,9 @@ Allocated zp ZP_BYTE:2 [ main::i#2 main::i#1 ] Allocated zp ZP_BYTE:3 [ main::s#2 main::s#4 main::s#1 ] INITIAL ASM +Target platform is c64basic // File Comments - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -275,7 +276,7 @@ Uplifting [] best 398 combination ASSEMBLER BEFORE OPTIMIZATION // File Comments - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -398,7 +399,7 @@ FINAL ASSEMBLER Score: 236 // File Comments - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/loopnest.log b/src/test/ref/loopnest.log index e7fa56b99..fcf01dcdc 100644 --- a/src/test/ref/loopnest.log +++ b/src/test/ref/loopnest.log @@ -189,8 +189,9 @@ Allocated zp ZP_BYTE:2 [ main::i#2 main::i#1 ] Allocated zp ZP_BYTE:3 [ nest::j#2 nest::j#1 ] INITIAL ASM +Target platform is c64basic // File Comments - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -291,7 +292,7 @@ Uplifting [] best 2358 combination ASSEMBLER BEFORE OPTIMIZATION // File Comments - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -435,7 +436,7 @@ FINAL ASSEMBLER Score: 1353 // File Comments - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/loopnest2.log b/src/test/ref/loopnest2.log index 7808d3f21..9a64b48b8 100644 --- a/src/test/ref/loopnest2.log +++ b/src/test/ref/loopnest2.log @@ -409,8 +409,9 @@ Allocated zp ZP_BYTE:6 [ nest2::i#4 nest2::i#1 ] Allocated zp ZP_BYTE:7 [ nest2::j#2 nest2::j#1 ] INITIAL ASM +Target platform is c64basic // File Comments - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -619,7 +620,7 @@ Uplifting [main] best 23472243 combination zp ZP_BYTE:2 [ main::i#5 main::i#1 ] ASSEMBLER BEFORE OPTIMIZATION // File Comments - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -915,7 +916,7 @@ FINAL ASSEMBLER Score: 13472235 // File Comments - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/loopnest3.log b/src/test/ref/loopnest3.log index f9612be55..612d9ba2b 100644 --- a/src/test/ref/loopnest3.log +++ b/src/test/ref/loopnest3.log @@ -239,8 +239,9 @@ Allocated zp ZP_BYTE:4 [ b::i#0 ] Allocated zp ZP_BYTE:5 [ c::i#0 ] INITIAL ASM +Target platform is c64basic // File Comments - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -368,7 +369,7 @@ Uplifting [] best 2556 combination ASSEMBLER BEFORE OPTIMIZATION // File Comments - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -537,7 +538,7 @@ FINAL ASSEMBLER Score: 1521 // File Comments - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/loopsplit.log b/src/test/ref/loopsplit.log index 527686ebe..b045154f7 100644 --- a/src/test/ref/loopsplit.log +++ b/src/test/ref/loopsplit.log @@ -204,8 +204,9 @@ Allocated zp ZP_BYTE:2 [ main::i#2 main::i#1 ] Allocated zp ZP_BYTE:3 [ main::s#3 main::s#1 main::s#2 ] INITIAL ASM +Target platform is c64basic // File Comments - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -296,7 +297,7 @@ Uplifting [] best 365 combination ASSEMBLER BEFORE OPTIMIZATION // File Comments - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -429,7 +430,7 @@ FINAL ASSEMBLER Score: 260 // File Comments - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/malloc-0.log b/src/test/ref/malloc-0.log index 352680979..0ce147c5b 100644 --- a/src/test/ref/malloc-0.log +++ b/src/test/ref/malloc-0.log @@ -275,9 +275,10 @@ Complete equivalence classes Allocated zp ZP_BYTE:2 [ main::i#2 main::i#1 ] INITIAL ASM +Target platform is c64basic // File Comments // Experiments with malloc() - a byte array - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -373,7 +374,7 @@ Uplifting [] best 308 combination ASSEMBLER BEFORE OPTIMIZATION // File Comments // Experiments with malloc() - a byte array - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -513,7 +514,7 @@ Score: 185 // File Comments // Experiments with malloc() - a byte array - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" diff --git a/src/test/ref/malloc-1.log b/src/test/ref/malloc-1.log index e8fc5f9bc..4f23ac632 100644 --- a/src/test/ref/malloc-1.log +++ b/src/test/ref/malloc-1.log @@ -294,9 +294,10 @@ Allocated zp ZP_BYTE:2 [ main::i#2 main::i#1 ] Allocated zp ZP_WORD:3 [ main::w#2 main::w#1 ] INITIAL ASM +Target platform is c64basic // File Comments // Experiments with malloc() - a word array - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -419,7 +420,7 @@ Allocated (was zp ZP_WORD:3) zp ZP_WORD:2 [ main::w#2 main::w#1 ] ASSEMBLER BEFORE OPTIMIZATION // File Comments // Experiments with malloc() - a word array - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -584,7 +585,7 @@ Score: 590 // File Comments // Experiments with malloc() - a word array - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" diff --git a/src/test/ref/mem-alignment.log b/src/test/ref/mem-alignment.log index 8fba07d5f..6dd0bb3c8 100644 --- a/src/test/ref/mem-alignment.log +++ b/src/test/ref/mem-alignment.log @@ -192,9 +192,10 @@ Allocated zp ZP_BYTE:3 [ main::j#2 main::j#1 ] Allocated zp ZP_BYTE:4 [ main::i1#2 main::i1#1 ] INITIAL ASM +Target platform is c64basic // File Comments // Test that memory alignment of arrays work - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -302,7 +303,7 @@ Uplifting [] best 543 combination ASSEMBLER BEFORE OPTIMIZATION // File Comments // Test that memory alignment of arrays work - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -442,7 +443,7 @@ Score: 381 // File Comments // Test that memory alignment of arrays work - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/memcpy-0.log b/src/test/ref/memcpy-0.log index 6babf6e4e..194d5dc41 100644 --- a/src/test/ref/memcpy-0.log +++ b/src/test/ref/memcpy-0.log @@ -522,9 +522,10 @@ Allocated zp ZP_WORD:10 [ memcpy::dst#2 memcpy::dst#4 memcpy::dst#1 ] Allocated zp ZP_WORD:12 [ memcpy::src_end#0 ] INITIAL ASM +Target platform is c64basic // File Comments // Test memcpy - copy charset and screen using memcpy() from stdlib string - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -732,7 +733,7 @@ Coalescing zero page register with common assignment [ zp ZP_WORD:6 [ memcpy::nu ASSEMBLER BEFORE OPTIMIZATION // File Comments // Test memcpy - copy charset and screen using memcpy() from stdlib string - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -1010,7 +1011,7 @@ Score: 711 // File Comments // Test memcpy - copy charset and screen using memcpy() from stdlib string - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/memory-heap.log b/src/test/ref/memory-heap.log index cdf970202..ef6be4e0c 100644 --- a/src/test/ref/memory-heap.log +++ b/src/test/ref/memory-heap.log @@ -434,9 +434,10 @@ Allocated zp ZP_BYTE:9 [ main::$4 ] Allocated zp ZP_WORD:10 [ malloc::mem#0 ] INITIAL ASM +Target platform is c64basic // File Comments // Experiments with malloc() - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -643,7 +644,7 @@ Allocated (was zp ZP_WORD:7) zp ZP_WORD:6 [ main::buf2#0 malloc::mem#0 ] ASSEMBLER BEFORE OPTIMIZATION // File Comments // Experiments with malloc() - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -895,7 +896,7 @@ Score: 419 // File Comments // Experiments with malloc() - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/min-fmul-16.log b/src/test/ref/min-fmul-16.log index 7f9672a30..0a487dc89 100644 --- a/src/test/ref/min-fmul-16.log +++ b/src/test/ref/min-fmul-16.log @@ -1354,8 +1354,9 @@ Allocated zp ZP_BYTE:41 [ mulf_init::$10 ] Allocated zp ZP_BYTE:42 [ mulf_init::$11 ] INITIAL ASM +Target platform is c64basic // File Comments - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -2103,7 +2104,7 @@ Allocated (was zp ZP_DWORD:22) zp ZP_DWORD:18 [ mulf16u::return#0 main::r#0 mulf ASSEMBLER BEFORE OPTIMIZATION // File Comments - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -2917,7 +2918,7 @@ FINAL ASSEMBLER Score: 4311 // File Comments - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/mixed-array-0.log b/src/test/ref/mixed-array-0.log index 9c2d7d007..9be4c46c8 100644 --- a/src/test/ref/mixed-array-0.log +++ b/src/test/ref/mixed-array-0.log @@ -116,9 +116,10 @@ Initial phi equivalence classes Complete equivalence classes INITIAL ASM +Target platform is c64basic // File Comments // Test an array with mixed byte/number types - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -173,7 +174,7 @@ Uplifting [] best 45 combination ASSEMBLER BEFORE OPTIMIZATION // File Comments // Test an array with mixed byte/number types - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -249,7 +250,7 @@ Score: 30 // File Comments // Test an array with mixed byte/number types - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/mixed-array-1.log b/src/test/ref/mixed-array-1.log index 43bccdb2e..d8d22ae75 100644 --- a/src/test/ref/mixed-array-1.log +++ b/src/test/ref/mixed-array-1.log @@ -117,9 +117,10 @@ Initial phi equivalence classes Complete equivalence classes INITIAL ASM +Target platform is c64basic // File Comments // Test an array with mixed byte/number types - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -174,7 +175,7 @@ Uplifting [] best 45 combination ASSEMBLER BEFORE OPTIMIZATION // File Comments // Test an array with mixed byte/number types - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -250,7 +251,7 @@ Score: 30 // File Comments // Test an array with mixed byte/number types - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/modglobal.log b/src/test/ref/modglobal.log index 1b89d8698..b41b5d2fe 100644 --- a/src/test/ref/modglobal.log +++ b/src/test/ref/modglobal.log @@ -358,8 +358,9 @@ Allocated zp ZP_BYTE:9 [ cnt#12 ] Allocated zp ZP_BYTE:10 [ inccnt::return#2 ] INITIAL ASM +Target platform is c64basic // File Comments - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -499,7 +500,7 @@ Allocated (was zp ZP_BYTE:9) zp ZP_BYTE:2 [ cnt#12 ] ASSEMBLER BEFORE OPTIMIZATION // File Comments - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -663,7 +664,7 @@ FINAL ASSEMBLER Score: 64 // File Comments - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/modglobalmin.log b/src/test/ref/modglobalmin.log index fb779350e..f75841ff8 100644 --- a/src/test/ref/modglobalmin.log +++ b/src/test/ref/modglobalmin.log @@ -193,8 +193,9 @@ Allocated zp ZP_BYTE:3 [ cnt#11 ] Allocated zp ZP_BYTE:4 [ cnt#13 ] INITIAL ASM +Target platform is c64basic // File Comments - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -289,7 +290,7 @@ Uplifting [inccnt] best 64 combination ASSEMBLER BEFORE OPTIMIZATION // File Comments - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -410,7 +411,7 @@ FINAL ASSEMBLER Score: 40 // File Comments - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/mul8u-min.log b/src/test/ref/mul8u-min.log index a53d991e5..aef319d97 100644 --- a/src/test/ref/mul8u-min.log +++ b/src/test/ref/mul8u-min.log @@ -462,9 +462,10 @@ Allocated zp ZP_BYTE:15 [ main::$3 ] Allocated zp ZP_BYTE:16 [ mul8u::$1 ] INITIAL ASM +Target platform is c64basic // File Comments // Minimal test of mul8u - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -706,7 +707,7 @@ Allocated (was zp ZP_WORD:8) zp ZP_WORD:6 [ mul8u::mb#2 mul8u::mb#1 ] ASSEMBLER BEFORE OPTIMIZATION // File Comments // Minimal test of mul8u - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -991,7 +992,7 @@ Score: 70373 // File Comments // Minimal test of mul8u - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/multiplexer-irq/simple-multiplexer-irq.log b/src/test/ref/multiplexer-irq/simple-multiplexer-irq.log index 3e8a602dd..5c81d96b8 100644 --- a/src/test/ref/multiplexer-irq/simple-multiplexer-irq.log +++ b/src/test/ref/multiplexer-irq/simple-multiplexer-irq.log @@ -2400,9 +2400,10 @@ Allocated zp ZP_BYTE:32 [ plexShowSprite::$9 ] Allocated zp ZP_BYTE:33 [ plexShowSprite::$5 ] INITIAL ASM +Target platform is c64basic // File Comments // A simple usage of the flexible sprite multiplexer routine - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -3451,7 +3452,7 @@ Allocated (was zp ZP_BYTE:24) zp ZP_BYTE:14 [ plexShowSprite::plex_sprite_idx2#0 ASSEMBLER BEFORE OPTIMIZATION // File Comments // A simple usage of the flexible sprite multiplexer routine - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -4536,7 +4537,7 @@ Score: 46296 // File Comments // A simple usage of the flexible sprite multiplexer routine - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" diff --git a/src/test/ref/multiply-2s.log b/src/test/ref/multiply-2s.log index e33754cf3..2d4a819c9 100644 --- a/src/test/ref/multiply-2s.log +++ b/src/test/ref/multiply-2s.log @@ -248,9 +248,10 @@ Allocated zp ZP_BYTE:6 [ main::sb#0 ] Allocated zp ZP_BYTE:7 [ main::$12 ] INITIAL ASM +Target platform is c64basic // File Comments // Check that multiplication by factors of 2 is converted to shifts - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -386,7 +387,7 @@ Uplifting [main] best 743 combination reg byte a [ main::$12 ] ASSEMBLER BEFORE OPTIMIZATION // File Comments // Check that multiplication by factors of 2 is converted to shifts - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -521,7 +522,7 @@ Score: 641 // File Comments // Check that multiplication by factors of 2 is converted to shifts - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/multiply-ns.log b/src/test/ref/multiply-ns.log index 1b524677a..e9fa14493 100644 --- a/src/test/ref/multiply-ns.log +++ b/src/test/ref/multiply-ns.log @@ -542,9 +542,10 @@ Allocated zp ZP_BYTE:31 [ main::$67 ] Allocated zp ZP_BYTE:32 [ main::$29 ] INITIAL ASM +Target platform is c64basic // File Comments // Check that multiplication by constants is converted to shift/add - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -999,7 +1000,7 @@ Allocated (was zp ZP_BYTE:5) zp ZP_BYTE:3 [ main::$33 ] ASSEMBLER BEFORE OPTIMIZATION // File Comments // Check that multiplication by constants is converted to shift/add - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -1296,7 +1297,7 @@ Score: 2631 // File Comments // Check that multiplication by constants is converted to shift/add - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/nes-array.log b/src/test/ref/nes-array.log index 4c2ce8aee..a8ebbd608 100644 --- a/src/test/ref/nes-array.log +++ b/src/test/ref/nes-array.log @@ -286,10 +286,11 @@ Allocated zp ZP_BYTE:17 [ foo::$1 ] Allocated zp ZP_WORD:18 [ foo::return#0 ] INITIAL ASM +Target platform is c64basic // File Comments // Test a bit of array code from the NES forum // https://forums.nesdev.com/viewtopic.php?f=2&t=18735 - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -468,7 +469,7 @@ ASSEMBLER BEFORE OPTIMIZATION // File Comments // Test a bit of array code from the NES forum // https://forums.nesdev.com/viewtopic.php?f=2&t=18735 - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -653,7 +654,7 @@ Score: 141 // File Comments // Test a bit of array code from the NES forum // https://forums.nesdev.com/viewtopic.php?f=2&t=18735 - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/no-recursion-heavy.log b/src/test/ref/no-recursion-heavy.log index 5d36b48a0..68ac65619 100644 --- a/src/test/ref/no-recursion-heavy.log +++ b/src/test/ref/no-recursion-heavy.log @@ -2825,8 +2825,9 @@ Allocated zp ZP_BYTE:7 [ bd#116 bd#154 bd#114 bd#153 bd#113 bd#152 bd#112 bd#151 Allocated zp ZP_BYTE:8 [ bd#117 bd#235 bd#236 bd#237 bd#238 bd#239 bd#240 bd#241 bd#242 bd#243 ] INITIAL ASM +Target platform is c64basic // File Comments - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -3893,7 +3894,7 @@ Allocated (was zp ZP_BYTE:6) zp ZP_BYTE:5 [ bc#113 bc#172 bc#173 bc#174 bc#175 b ASSEMBLER BEFORE OPTIMIZATION // File Comments - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -5414,7 +5415,7 @@ FINAL ASSEMBLER Score: 913 // File Comments - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/noop-cast-elimination.log b/src/test/ref/noop-cast-elimination.log index 016279c30..838218442 100644 --- a/src/test/ref/noop-cast-elimination.log +++ b/src/test/ref/noop-cast-elimination.log @@ -160,9 +160,10 @@ Allocated zp ZP_WORD:3 [ main::sw#2 main::sw#1 ] Allocated zp ZP_BYTE:5 [ main::$2 ] INITIAL ASM +Target platform is c64basic // File Comments // Test elimination of noop-casts (signed byte to byte) - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -269,7 +270,7 @@ Allocated (was zp ZP_WORD:3) zp ZP_WORD:2 [ main::sw#2 main::sw#1 ] ASSEMBLER BEFORE OPTIMIZATION // File Comments // Test elimination of noop-casts (signed byte to byte) - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -400,7 +401,7 @@ Score: 756 // File Comments // Test elimination of noop-casts (signed byte to byte) - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/norom-charset.log b/src/test/ref/norom-charset.log index 179a3dd1a..55d9bef59 100644 --- a/src/test/ref/norom-charset.log +++ b/src/test/ref/norom-charset.log @@ -557,9 +557,10 @@ Allocated zp ZP_BYTE:13 [ gen_char3::$0 ] Allocated zp ZP_BYTE:14 [ gen_char3::$1 ] INITIAL ASM +Target platform is c64basic // File Comments // Generate a charset based on a 5x3 pattern stored in 2 bytes - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -809,7 +810,7 @@ Coalescing zero page register with common assignment [ zp ZP_WORD:3 [ main::char ASSEMBLER BEFORE OPTIMIZATION // File Comments // Generate a charset based on a 5x3 pattern stored in 2 bytes - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -1111,7 +1112,7 @@ Score: 45544 // File Comments // Generate a charset based on a 5x3 pattern stored in 2 bytes - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/number-conversion.log b/src/test/ref/number-conversion.log index d0decb415..d924c51b5 100644 --- a/src/test/ref/number-conversion.log +++ b/src/test/ref/number-conversion.log @@ -1392,10 +1392,11 @@ Allocated zp ZP_BYTE:3 [ assertType::t2#35 ] Allocated zp ZP_BYTE:4 [ idx#79 idx#40 ] INITIAL ASM +Target platform is c64basic // File Comments // Tests conversion of numbers to correct int types // See https://gitlab.com/camelot/kickc/issues/181 - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -2068,7 +2069,7 @@ ASSEMBLER BEFORE OPTIMIZATION // File Comments // Tests conversion of numbers to correct int types // See https://gitlab.com/camelot/kickc/issues/181 - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -2942,7 +2943,7 @@ Score: 506 // File Comments // Tests conversion of numbers to correct int types // See https://gitlab.com/camelot/kickc/issues/181 - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/number-inference-sum.log b/src/test/ref/number-inference-sum.log index 3070f858a..ec8afe272 100644 --- a/src/test/ref/number-inference-sum.log +++ b/src/test/ref/number-inference-sum.log @@ -175,10 +175,11 @@ Initial phi equivalence classes Complete equivalence classes INITIAL ASM +Target platform is c64basic // File Comments // Test inference of number types using a long sum // Currently fails - because the compiler does not handle byte+byte correctly (not truncating the result to 8 bits) - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -239,7 +240,7 @@ ASSEMBLER BEFORE OPTIMIZATION // File Comments // Test inference of number types using a long sum // Currently fails - because the compiler does not handle byte+byte correctly (not truncating the result to 8 bits) - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -333,7 +334,7 @@ Score: 24 // File Comments // Test inference of number types using a long sum // Currently fails - because the compiler does not handle byte+byte correctly (not truncating the result to 8 bits) - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/number-type.log b/src/test/ref/number-type.log index bf3ba2db7..fa1a5f5d8 100644 --- a/src/test/ref/number-type.log +++ b/src/test/ref/number-type.log @@ -528,9 +528,10 @@ Initial phi equivalence classes Complete equivalence classes INITIAL ASM +Target platform is c64basic // File Comments // Tests the number type used for constant expressions - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -706,7 +707,7 @@ Uplifting [] best 204 combination ASSEMBLER BEFORE OPTIMIZATION // File Comments // Tests the number type used for constant expressions - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -892,7 +893,7 @@ Score: 180 // File Comments // Tests the number type used for constant expressions - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/operator-lohi-problem-1.log b/src/test/ref/operator-lohi-problem-1.log index 0b77e9db5..afaa280ba 100644 --- a/src/test/ref/operator-lohi-problem-1.log +++ b/src/test/ref/operator-lohi-problem-1.log @@ -148,13 +148,14 @@ Initial phi equivalence classes Complete equivalence classes INITIAL ASM +Target platform is c64basic // File Comments // Illustrates problem with constant evaluation of lo/hi-operator // $20000 /$400 results in a byte value - confusing the lo/hi-evaluation // which currently relies on getting the type from the literal value. // A fix could be adding support for "declared" types for constant literal values // - enabling the lo/hi to know that their operand is a word (from the cast). - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -209,7 +210,7 @@ ASSEMBLER BEFORE OPTIMIZATION // which currently relies on getting the type from the literal value. // A fix could be adding support for "declared" types for constant literal values // - enabling the lo/hi to know that their operand is a word (from the cast). - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -286,7 +287,7 @@ Score: 18 // which currently relies on getting the type from the literal value. // A fix could be adding support for "declared" types for constant literal values // - enabling the lo/hi to know that their operand is a word (from the cast). - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/operator-lohi-problem.log b/src/test/ref/operator-lohi-problem.log index 123f8062c..44be38012 100644 --- a/src/test/ref/operator-lohi-problem.log +++ b/src/test/ref/operator-lohi-problem.log @@ -173,13 +173,14 @@ Initial phi equivalence classes Complete equivalence classes INITIAL ASM +Target platform is c64basic // File Comments // Illustrates problem with constant evaluation of lo/hi-operator // $20000 /$400 results in a byte value - confusing the lo/hi-evaluation // which currently relies on getting the type from the literal value. // A fix could be adding support for "declared" types for constant literal values // - enabling the lo/hi to know that their operand is a word (from the cast). - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -243,7 +244,7 @@ ASSEMBLER BEFORE OPTIMIZATION // which currently relies on getting the type from the literal value. // A fix could be adding support for "declared" types for constant literal values // - enabling the lo/hi to know that their operand is a word (from the cast). - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -332,7 +333,7 @@ Score: 28 // which currently relies on getting the type from the literal value. // A fix could be adding support for "declared" types for constant literal values // - enabling the lo/hi to know that their operand is a word (from the cast). - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/overlap-allocation-2.log b/src/test/ref/overlap-allocation-2.log index 742247414..b2267ba5b 100644 --- a/src/test/ref/overlap-allocation-2.log +++ b/src/test/ref/overlap-allocation-2.log @@ -279,9 +279,10 @@ Allocated zp ZP_BYTE:4 [ line::l#2 line::l#0 line::l#1 ] Allocated zp ZP_BYTE:5 [ plot::x#2 plot::x#0 plot::x#1 ] INITIAL ASM +Target platform is c64basic // File Comments // Two levels of functions to test that register allocation handles live ranges and call-ranges optimally to allocate the fewest possible ZP-variables - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -447,7 +448,7 @@ Uplifting [main] best 480 combination reg byte y [ main::j#2 main::j#1 ] ASSEMBLER BEFORE OPTIMIZATION // File Comments // Two levels of functions to test that register allocation handles live ranges and call-ranges optimally to allocate the fewest possible ZP-variables - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -658,7 +659,7 @@ Score: 303 // File Comments // Two levels of functions to test that register allocation handles live ranges and call-ranges optimally to allocate the fewest possible ZP-variables - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/overlap-allocation.log b/src/test/ref/overlap-allocation.log index a234a0548..a327b2dc3 100644 --- a/src/test/ref/overlap-allocation.log +++ b/src/test/ref/overlap-allocation.log @@ -276,10 +276,11 @@ Allocated zp ZP_BYTE:4 [ main::k#2 main::k#1 ] Allocated zp ZP_BYTE:5 [ plot::x#3 plot::x#0 plot::x#1 plot::x#2 ] INITIAL ASM +Target platform is c64basic // File Comments // Allocates ZP to j/k-variables even though all of i, j, k could be allocates to x and be more efficient. // Reason: Pass4RegisterUpliftCombinations.isAllocationOverlapping() believes i/j/k variables overlaps insode plot() - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -439,7 +440,7 @@ ASSEMBLER BEFORE OPTIMIZATION // File Comments // Allocates ZP to j/k-variables even though all of i, j, k could be allocates to x and be more efficient. // Reason: Pass4RegisterUpliftCombinations.isAllocationOverlapping() believes i/j/k variables overlaps insode plot() - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -647,7 +648,7 @@ Score: 292 // File Comments // Allocates ZP to j/k-variables even though all of i, j, k could be allocates to x and be more efficient. // Reason: Pass4RegisterUpliftCombinations.isAllocationOverlapping() believes i/j/k variables overlaps insode plot() - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/plasma-center.log b/src/test/ref/plasma-center.log index 767ceea56..ec9089767 100644 --- a/src/test/ref/plasma-center.log +++ b/src/test/ref/plasma-center.log @@ -5176,9 +5176,10 @@ Allocated zp ZP_BYTE:155 [ init_squares::$4 ] Allocated zp ZP_WORD:156 [ malloc::mem#0 ] INITIAL ASM +Target platform is c64basic // File Comments // Plasma based on the distance/angle to the screen center - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -7679,7 +7680,7 @@ Allocated (was zp ZP_WORD:147) zp ZP_WORD:77 [ bsearch16u::result#0 ] ASSEMBLER BEFORE OPTIMIZATION // File Comments // Plasma based on the distance/angle to the screen center - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -10189,7 +10190,7 @@ Score: 1206219 // File Comments // Plasma based on the distance/angle to the screen center - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" diff --git a/src/test/ref/platform-asm6502.asm b/src/test/ref/platform-asm6502.asm new file mode 100644 index 000000000..cb6a84b34 --- /dev/null +++ b/src/test/ref/platform-asm6502.asm @@ -0,0 +1,13 @@ +// Tests the target platform ASM6502 +.pc = $1000 "Program" +main: { + ldx #0 + b1: + txa + sta TABLE,x + inx + cpx #$a + bcc b1 + rts +} + TABLE: .fill $a, 0 diff --git a/src/test/ref/platform-asm6502.cfg b/src/test/ref/platform-asm6502.cfg new file mode 100644 index 000000000..3abd8f115 --- /dev/null +++ b/src/test/ref/platform-asm6502.cfg @@ -0,0 +1,21 @@ +@begin: scope:[] from + [0] phi() + to:@1 +@1: scope:[] from @begin + [1] phi() + [2] call main + to:@end +@end: scope:[] from @1 + [3] phi() +main: scope:[main] from @1 + [4] phi() + to:main::@1 +main::@1: scope:[main] from main main::@1 + [5] (byte) main::i#2 ← phi( main/(byte) 0 main::@1/(byte) main::i#1 ) + [6] *((const byte[$a]) TABLE#0 + (byte) main::i#2) ← (byte) main::i#2 + [7] (byte) main::i#1 ← ++ (byte) main::i#2 + [8] if((byte) main::i#1<(byte) $a) goto main::@1 + to:main::@return +main::@return: scope:[main] from main::@1 + [9] return + to:@return diff --git a/src/test/ref/platform-asm6502.log b/src/test/ref/platform-asm6502.log new file mode 100644 index 000000000..bff8e0ef4 --- /dev/null +++ b/src/test/ref/platform-asm6502.log @@ -0,0 +1,319 @@ +Culled Empty Block (label) main::@2 + +CONTROL FLOW GRAPH SSA +@begin: scope:[] from + (byte[$a]) TABLE#0 ← { fill( $a, 0) } + to:@1 +main: scope:[main] from @1 + (byte) main::i#0 ← (number) 0 + to:main::@1 +main::@1: scope:[main] from main main::@1 + (byte) main::i#2 ← phi( main/(byte) main::i#0 main::@1/(byte) main::i#1 ) + *((byte[$a]) TABLE#0 + (byte) main::i#2) ← (byte) main::i#2 + (byte) main::i#1 ← ++ (byte) main::i#2 + (bool~) main::$0 ← (byte) main::i#1 < (number) $a + if((bool~) main::$0) goto main::@1 + to:main::@return +main::@return: scope:[main] from main::@1 + return + to:@return +@1: scope:[] from @begin + call main + to:@2 +@2: scope:[] from @1 + to:@end +@end: scope:[] from @2 + +SYMBOL TABLE SSA +(label) @1 +(label) @2 +(label) @begin +(label) @end +(byte[$a]) TABLE +(byte[$a]) TABLE#0 +(void()) main() +(bool~) main::$0 +(label) main::@1 +(label) main::@return +(byte) main::i +(byte) main::i#0 +(byte) main::i#1 +(byte) main::i#2 + +Adding number conversion cast (unumber) 0 in (byte) main::i#0 ← (number) 0 +Adding number conversion cast (unumber) $a in (bool~) main::$0 ← (byte) main::i#1 < (number) $a +Successful SSA optimization PassNAddNumberTypeConversions +Inlining cast (byte) main::i#0 ← (unumber)(number) 0 +Successful SSA optimization Pass2InlineCast +Simplifying constant integer cast 0 +Simplifying constant integer cast $a +Successful SSA optimization PassNCastSimplification +Finalized unsigned number type (byte) 0 +Finalized unsigned number type (byte) $a +Successful SSA optimization PassNFinalizeNumberTypeConversions +Simple Condition (bool~) main::$0 [6] if((byte) main::i#1<(byte) $a) goto main::@1 +Successful SSA optimization Pass2ConditionalJumpSimplification +Constant right-side identified [0] (byte[$a]) TABLE#0 ← { fill( $a, 0) } +Successful SSA optimization Pass2ConstantRValueConsolidation +Constant (const byte[$a]) TABLE#0 = { fill( $a, 0) } +Constant (const byte) main::i#0 = 0 +Successful SSA optimization Pass2ConstantIdentification +Inlining constant with var siblings (const byte) main::i#0 +Constant inlined main::i#0 = (byte) 0 +Successful SSA optimization Pass2ConstantInlining +Added new block during phi lifting main::@3(between main::@1 and main::@1) +Adding NOP phi() at start of @begin +Adding NOP phi() at start of @1 +Adding NOP phi() at start of @2 +Adding NOP phi() at start of @end +Adding NOP phi() at start of main +CALL GRAPH +Calls in [] to main:2 + +Created 1 initial phi equivalence classes +Coalesced [11] main::i#3 ← main::i#1 +Coalesced down to 1 phi equivalence classes +Culled Empty Block (label) @2 +Culled Empty Block (label) main::@3 +Adding NOP phi() at start of @begin +Adding NOP phi() at start of @1 +Adding NOP phi() at start of @end +Adding NOP phi() at start of main + +FINAL CONTROL FLOW GRAPH +@begin: scope:[] from + [0] phi() + to:@1 +@1: scope:[] from @begin + [1] phi() + [2] call main + to:@end +@end: scope:[] from @1 + [3] phi() +main: scope:[main] from @1 + [4] phi() + to:main::@1 +main::@1: scope:[main] from main main::@1 + [5] (byte) main::i#2 ← phi( main/(byte) 0 main::@1/(byte) main::i#1 ) + [6] *((const byte[$a]) TABLE#0 + (byte) main::i#2) ← (byte) main::i#2 + [7] (byte) main::i#1 ← ++ (byte) main::i#2 + [8] if((byte) main::i#1<(byte) $a) goto main::@1 + to:main::@return +main::@return: scope:[main] from main::@1 + [9] return + to:@return + + +VARIABLE REGISTER WEIGHTS +(byte[$a]) TABLE +(void()) main() +(byte) main::i +(byte) main::i#1 16.5 +(byte) main::i#2 22.0 + +Initial phi equivalence classes +[ main::i#2 main::i#1 ] +Complete equivalence classes +[ main::i#2 main::i#1 ] +Allocated zp ZP_BYTE:2 [ main::i#2 main::i#1 ] + +INITIAL ASM +Target platform is asm6502 + // File Comments +// Tests the target platform ASM6502 + // Upstart +.pc = $1000 "Program" + // Global Constants & labels + // @begin +bbegin: + // [1] phi from @begin to @1 [phi:@begin->@1] +b1_from_bbegin: + jmp b1 + // @1 +b1: + // [2] call main + // [4] phi from @1 to main [phi:@1->main] +main_from_b1: + jsr main + // [3] phi from @1 to @end [phi:@1->@end] +bend_from_b1: + jmp bend + // @end +bend: + // main +main: { + .label i = 2 + // [5] phi from main to main::@1 [phi:main->main::@1] + b1_from_main: + // [5] phi (byte) main::i#2 = (byte) 0 [phi:main->main::@1#0] -- vbuz1=vbuc1 + lda #0 + sta i + jmp b1 + // [5] phi from main::@1 to main::@1 [phi:main::@1->main::@1] + b1_from_b1: + // [5] phi (byte) main::i#2 = (byte) main::i#1 [phi:main::@1->main::@1#0] -- register_copy + jmp b1 + // main::@1 + b1: + // [6] *((const byte[$a]) TABLE#0 + (byte) main::i#2) ← (byte) main::i#2 -- pbuc1_derefidx_vbuz1=vbuz1 + ldy i + tya + sta TABLE,y + // [7] (byte) main::i#1 ← ++ (byte) main::i#2 -- vbuz1=_inc_vbuz1 + inc i + // [8] if((byte) main::i#1<(byte) $a) goto main::@1 -- vbuz1_lt_vbuc1_then_la1 + lda i + cmp #$a + bcc b1_from_b1 + jmp breturn + // main::@return + breturn: + // [9] return + rts +} + // File Data + TABLE: .fill $a, 0 + +REGISTER UPLIFT POTENTIAL REGISTERS +Potential registers zp ZP_BYTE:2 [ main::i#2 main::i#1 ] : zp ZP_BYTE:2 , reg byte a , reg byte x , reg byte y , + +REGISTER UPLIFT SCOPES +Uplift Scope [main] 38.5: zp ZP_BYTE:2 [ main::i#2 main::i#1 ] +Uplift Scope [] + +Uplifting [main] best 263 combination reg byte x [ main::i#2 main::i#1 ] +Uplifting [] best 263 combination + +ASSEMBLER BEFORE OPTIMIZATION + // File Comments +// Tests the target platform ASM6502 + // Upstart +.pc = $1000 "Program" + // Global Constants & labels + // @begin +bbegin: + // [1] phi from @begin to @1 [phi:@begin->@1] +b1_from_bbegin: + jmp b1 + // @1 +b1: + // [2] call main + // [4] phi from @1 to main [phi:@1->main] +main_from_b1: + jsr main + // [3] phi from @1 to @end [phi:@1->@end] +bend_from_b1: + jmp bend + // @end +bend: + // main +main: { + // [5] phi from main to main::@1 [phi:main->main::@1] + b1_from_main: + // [5] phi (byte) main::i#2 = (byte) 0 [phi:main->main::@1#0] -- vbuxx=vbuc1 + ldx #0 + jmp b1 + // [5] phi from main::@1 to main::@1 [phi:main::@1->main::@1] + b1_from_b1: + // [5] phi (byte) main::i#2 = (byte) main::i#1 [phi:main::@1->main::@1#0] -- register_copy + jmp b1 + // main::@1 + b1: + // [6] *((const byte[$a]) TABLE#0 + (byte) main::i#2) ← (byte) main::i#2 -- pbuc1_derefidx_vbuxx=vbuxx + txa + sta TABLE,x + // [7] (byte) main::i#1 ← ++ (byte) main::i#2 -- vbuxx=_inc_vbuxx + inx + // [8] if((byte) main::i#1<(byte) $a) goto main::@1 -- vbuxx_lt_vbuc1_then_la1 + cpx #$a + bcc b1_from_b1 + jmp breturn + // main::@return + breturn: + // [9] return + rts +} + // File Data + TABLE: .fill $a, 0 + +ASSEMBLER OPTIMIZATIONS +Removing instruction jmp b1 +Removing instruction jmp bend +Removing instruction jmp b1 +Removing instruction jmp breturn +Succesful ASM optimization Pass5NextJumpElimination +Replacing label b1_from_b1 with b1 +Removing instruction b1_from_bbegin: +Removing instruction b1: +Removing instruction main_from_b1: +Removing instruction bend_from_b1: +Removing instruction b1_from_b1: +Succesful ASM optimization Pass5RedundantLabelElimination +Removing instruction bbegin: +Removing instruction bend: +Removing instruction b1_from_main: +Removing instruction breturn: +Succesful ASM optimization Pass5UnusedLabelElimination +Removing instruction jsr main +Succesful ASM optimization Pass5SkipBegin +Removing instruction jmp b1 +Succesful ASM optimization Pass5NextJumpElimination + +FINAL SYMBOL TABLE +(label) @1 +(label) @begin +(label) @end +(byte[$a]) TABLE +(const byte[$a]) TABLE#0 TABLE = { fill( $a, 0) } +(void()) main() +(label) main::@1 +(label) main::@return +(byte) main::i +(byte) main::i#1 reg byte x 16.5 +(byte) main::i#2 reg byte x 22.0 + +reg byte x [ main::i#2 main::i#1 ] + + +FINAL ASSEMBLER +Score: 161 + + // File Comments +// Tests the target platform ASM6502 + // Upstart +.pc = $1000 "Program" + // Global Constants & labels + // @begin + // [1] phi from @begin to @1 [phi:@begin->@1] + // @1 + // [2] call main + // [4] phi from @1 to main [phi:@1->main] + // [3] phi from @1 to @end [phi:@1->@end] + // @end + // main +main: { + // [5] phi from main to main::@1 [phi:main->main::@1] + // [5] phi (byte) main::i#2 = (byte) 0 [phi:main->main::@1#0] -- vbuxx=vbuc1 + ldx #0 + // [5] phi from main::@1 to main::@1 [phi:main::@1->main::@1] + // [5] phi (byte) main::i#2 = (byte) main::i#1 [phi:main::@1->main::@1#0] -- register_copy + // main::@1 + b1: + // TABLE[i] = i + // [6] *((const byte[$a]) TABLE#0 + (byte) main::i#2) ← (byte) main::i#2 -- pbuc1_derefidx_vbuxx=vbuxx + txa + sta TABLE,x + // for(char i=0;i<10;i++) + // [7] (byte) main::i#1 ← ++ (byte) main::i#2 -- vbuxx=_inc_vbuxx + inx + // [8] if((byte) main::i#1<(byte) $a) goto main::@1 -- vbuxx_lt_vbuc1_then_la1 + cpx #$a + bcc b1 + // main::@return + // } + // [9] return + rts +} + // File Data + TABLE: .fill $a, 0 + diff --git a/src/test/ref/platform-asm6502.sym b/src/test/ref/platform-asm6502.sym new file mode 100644 index 000000000..fb780ce61 --- /dev/null +++ b/src/test/ref/platform-asm6502.sym @@ -0,0 +1,13 @@ +(label) @1 +(label) @begin +(label) @end +(byte[$a]) TABLE +(const byte[$a]) TABLE#0 TABLE = { fill( $a, 0) } +(void()) main() +(label) main::@1 +(label) main::@return +(byte) main::i +(byte) main::i#1 reg byte x 16.5 +(byte) main::i#2 reg byte x 22.0 + +reg byte x [ main::i#2 main::i#1 ] diff --git a/src/test/ref/plus-0.log b/src/test/ref/plus-0.log index 66a9c529d..6ba28f210 100644 --- a/src/test/ref/plus-0.log +++ b/src/test/ref/plus-0.log @@ -345,9 +345,10 @@ Allocated zp ZP_WORD:6 [ fill::$5 ] Allocated zp ZP_WORD:8 [ fill::$7 ] INITIAL ASM +Target platform is c64basic // File Comments // Tests elimination of plus 0 - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -511,7 +512,7 @@ Allocated (was zp ZP_WORD:8) zp ZP_WORD:6 [ fill::$7 ] ASSEMBLER BEFORE OPTIMIZATION // File Comments // Tests elimination of plus 0 - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -712,7 +713,7 @@ Score: 733 // File Comments // Tests elimination of plus 0 - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/pointer-cast-2.log b/src/test/ref/pointer-cast-2.log index 46f5ca5ff..ee992f132 100644 --- a/src/test/ref/pointer-cast-2.log +++ b/src/test/ref/pointer-cast-2.log @@ -160,9 +160,10 @@ Allocated zp ZP_BYTE:2 [ main::ub#0 ] Allocated zp ZP_BYTE:3 [ main::sb#0 ] INITIAL ASM +Target platform is c64basic // File Comments // Tests casting pointer types to other pointer types - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -239,7 +240,7 @@ Uplifting [main] best 57 combination zp ZP_BYTE:3 [ main::sb#0 ] ASSEMBLER BEFORE OPTIMIZATION // File Comments // Tests casting pointer types to other pointer types - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -338,7 +339,7 @@ Score: 42 // File Comments // Tests casting pointer types to other pointer types - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/pointer-cast-3.log b/src/test/ref/pointer-cast-3.log index aa6e69e10..ff75af669 100644 --- a/src/test/ref/pointer-cast-3.log +++ b/src/test/ref/pointer-cast-3.log @@ -83,9 +83,10 @@ Initial phi equivalence classes Complete equivalence classes INITIAL ASM +Target platform is c64basic // File Comments // Tests casting pointer types to other pointer types - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -132,7 +133,7 @@ Uplifting [] best 27 combination ASSEMBLER BEFORE OPTIMIZATION // File Comments // Tests casting pointer types to other pointer types - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -202,7 +203,7 @@ Score: 12 // File Comments // Tests casting pointer types to other pointer types - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/pointer-cast-4.log b/src/test/ref/pointer-cast-4.log index a9d3b7aba..6f3282aba 100644 --- a/src/test/ref/pointer-cast-4.log +++ b/src/test/ref/pointer-cast-4.log @@ -152,9 +152,10 @@ Allocated zp ZP_WORD:3 [ main::$1 ] Allocated zp ZP_BYTE:5 [ main::$3 ] INITIAL ASM +Target platform is c64basic // File Comments // Tests casting pointer types to other pointer types does not produce any ASM code - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -246,7 +247,7 @@ Allocated (was zp ZP_WORD:3) zp ZP_WORD:2 [ main::$1 ] ASSEMBLER BEFORE OPTIMIZATION // File Comments // Tests casting pointer types to other pointer types does not produce any ASM code - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -362,7 +363,7 @@ Score: 411 // File Comments // Tests casting pointer types to other pointer types does not produce any ASM code - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/pointer-cast.log b/src/test/ref/pointer-cast.log index 71ecbd472..ba0421ccd 100644 --- a/src/test/ref/pointer-cast.log +++ b/src/test/ref/pointer-cast.log @@ -435,9 +435,10 @@ Initial phi equivalence classes Complete equivalence classes INITIAL ASM +Target platform is c64basic // File Comments // Tests casting pointer types to other pointer types - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -568,7 +569,7 @@ Uplifting [] best 165 combination ASSEMBLER BEFORE OPTIMIZATION // File Comments // Tests casting pointer types to other pointer types - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -721,7 +722,7 @@ Score: 150 // File Comments // Tests casting pointer types to other pointer types - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/pointer-plus-0.log b/src/test/ref/pointer-plus-0.log index 47825c75e..62f9229f1 100644 --- a/src/test/ref/pointer-plus-0.log +++ b/src/test/ref/pointer-plus-0.log @@ -229,9 +229,10 @@ Allocated zp ZP_WORD:8 [ first::return#1 ] Allocated zp ZP_WORD:10 [ main::$2 ] INITIAL ASM +Target platform is c64basic // File Comments // Tests pointer plus 0 elimination - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -359,7 +360,7 @@ Coalescing zero page register with common assignment [ zp ZP_WORD:2 [ first::ret ASSEMBLER BEFORE OPTIMIZATION // File Comments // Tests pointer plus 0 elimination - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -499,7 +500,7 @@ Score: 66 // File Comments // Tests pointer plus 0 elimination - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/pointer-pointer-1.log b/src/test/ref/pointer-pointer-1.log index cd41548a1..8b89ebd1b 100644 --- a/src/test/ref/pointer-pointer-1.log +++ b/src/test/ref/pointer-pointer-1.log @@ -109,9 +109,10 @@ Allocated zp ZP_BYTE:2 [ main::b#0 ] Allocated zp ZP_WORD:3 [ main::pb#0 ] INITIAL ASM +Target platform is c64basic // File Comments // Tests a simple pointer to a pointer - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -175,7 +176,7 @@ Uplifting [main] best 47 combination zp ZP_BYTE:2 [ main::b#0 ] ASSEMBLER BEFORE OPTIMIZATION // File Comments // Tests a simple pointer to a pointer - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -262,7 +263,7 @@ Score: 32 // File Comments // Tests a simple pointer to a pointer - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/pointer-pointer-2.log b/src/test/ref/pointer-pointer-2.log index 88a6ff799..b410dfd9c 100644 --- a/src/test/ref/pointer-pointer-2.log +++ b/src/test/ref/pointer-pointer-2.log @@ -377,9 +377,10 @@ Allocated zp ZP_BYTE:7 [ main::i#5 main::i#1 ] Allocated zp ZP_BYTE:8 [ nexttext::$0 ] INITIAL ASM +Target platform is c64basic // File Comments // Tests pointer to pointer in a more complex setup - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -559,7 +560,7 @@ Uplifting [] best 6616 combination zp ZP_BYTE:4 [ textid#11 textid#13 ] ASSEMBLER BEFORE OPTIMIZATION // File Comments // Tests pointer to pointer in a more complex setup - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -786,7 +787,7 @@ Score: 5709 // File Comments // Tests pointer to pointer in a more complex setup - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/pointer-pointer-3.log b/src/test/ref/pointer-pointer-3.log index 71896354f..c794ffd8c 100644 --- a/src/test/ref/pointer-pointer-3.log +++ b/src/test/ref/pointer-pointer-3.log @@ -197,9 +197,10 @@ Allocated zp ZP_WORD:2 [ setscreen::val#2 ] Allocated zp ZP_WORD:4 [ screen#0 ] INITIAL ASM +Target platform is c64basic // File Comments // Tests pointer to pointer in a more complex setup - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -305,7 +306,7 @@ Uplifting [main] best 112 combination ASSEMBLER BEFORE OPTIMIZATION // File Comments // Tests pointer to pointer in a more complex setup - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -444,7 +445,7 @@ Score: 100 // File Comments // Tests pointer to pointer in a more complex setup - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" diff --git a/src/test/ref/pointer-void-0.log b/src/test/ref/pointer-void-0.log index 684ae2d3e..ad66af7f4 100644 --- a/src/test/ref/pointer-void-0.log +++ b/src/test/ref/pointer-void-0.log @@ -116,9 +116,10 @@ Complete equivalence classes Allocated zp ZP_WORD:2 [ main::w#0 ] INITIAL ASM +Target platform is c64basic // File Comments // Test simple void pointer (conversion without casting) - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -175,7 +176,7 @@ Uplifting [] best 39 combination ASSEMBLER BEFORE OPTIMIZATION // File Comments // Test simple void pointer (conversion without casting) - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -260,7 +261,7 @@ Score: 24 // File Comments // Test simple void pointer (conversion without casting) - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/pointer-void-1.log b/src/test/ref/pointer-void-1.log index 974ba6c8a..640727d3e 100644 --- a/src/test/ref/pointer-void-1.log +++ b/src/test/ref/pointer-void-1.log @@ -301,9 +301,10 @@ Allocated zp ZP_WORD:9 [ main::w#0 ] Allocated zp ZP_BYTE:11 [ main::b#0 ] INITIAL ASM +Target platform is c64basic // File Comments // Test simple void pointer - void pointer function - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -450,7 +451,7 @@ Allocated (was zp ZP_BYTE:11) zp ZP_BYTE:10 [ main::b#0 ] ASSEMBLER BEFORE OPTIMIZATION // File Comments // Test simple void pointer - void pointer function - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -631,7 +632,7 @@ Score: 111 // File Comments // Test simple void pointer - void pointer function - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/pointer-void-2.log b/src/test/ref/pointer-void-2.log index bb5172af5..fbab2654b 100644 --- a/src/test/ref/pointer-void-2.log +++ b/src/test/ref/pointer-void-2.log @@ -282,9 +282,10 @@ Allocated zp ZP_WORD:9 [ main::w#0 ] Allocated zp ZP_BYTE:11 [ main::b#0 ] INITIAL ASM +Target platform is c64basic // File Comments // Test simple void pointer - void pointer function - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -428,7 +429,7 @@ Allocated (was zp ZP_BYTE:11) zp ZP_BYTE:10 [ main::b#0 ] ASSEMBLER BEFORE OPTIMIZATION // File Comments // Test simple void pointer - void pointer function - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -600,7 +601,7 @@ Score: 111 // File Comments // Test simple void pointer - void pointer function - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/pointer-void-3.log b/src/test/ref/pointer-void-3.log index 4f223f30a..9dab49046 100644 --- a/src/test/ref/pointer-void-3.log +++ b/src/test/ref/pointer-void-3.log @@ -250,9 +250,10 @@ Allocated zp ZP_WORD:10 [ main::buf2#0 ] Allocated zp ZP_WORD:12 [ malloc::return#2 ] INITIAL ASM +Target platform is c64basic // File Comments // Test void pointer - issues when assigning returns from malloc() - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -397,7 +398,7 @@ Allocated (was zp ZP_WORD:8) zp ZP_WORD:6 [ malloc::return#1 main::buf2#0 malloc ASSEMBLER BEFORE OPTIMIZATION // File Comments // Test void pointer - issues when assigning returns from malloc() - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -562,7 +563,7 @@ Score: 106 // File Comments // Test void pointer - issues when assigning returns from malloc() - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/print-problem.log b/src/test/ref/print-problem.log index 1ee35f0c5..5c71e70f9 100644 --- a/src/test/ref/print-problem.log +++ b/src/test/ref/print-problem.log @@ -254,8 +254,9 @@ Complete equivalence classes Allocated zp ZP_BYTE:2 [ line#12 line#13 ] INITIAL ASM +Target platform is c64basic // File Comments - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -351,7 +352,7 @@ Uplifting [ln] best 71 combination ASSEMBLER BEFORE OPTIMIZATION // File Comments - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -484,7 +485,7 @@ FINAL ASSEMBLER Score: 44 // File Comments - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/printmsg.log b/src/test/ref/printmsg.log index d492f53d5..493785849 100644 --- a/src/test/ref/printmsg.log +++ b/src/test/ref/printmsg.log @@ -488,8 +488,9 @@ Allocated zp ZP_WORD:4 [ print_str::str#4 print_str::str#6 print_str::str#0 ] Allocated zp ZP_WORD:6 [ print_char_cursor#13 print_char_cursor#29 print_char_cursor#31 print_char_cursor#32 print_char_cursor#1 ] INITIAL ASM +Target platform is c64basic // File Comments - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -710,7 +711,7 @@ Uplifting [main] best 1203 combination ASSEMBLER BEFORE OPTIMIZATION // File Comments - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -1011,7 +1012,7 @@ FINAL ASSEMBLER Score: 1033 // File Comments - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/problem-negative-word-const.log b/src/test/ref/problem-negative-word-const.log index e868d81be..a25cd586d 100644 --- a/src/test/ref/problem-negative-word-const.log +++ b/src/test/ref/problem-negative-word-const.log @@ -205,9 +205,10 @@ Allocated zp ZP_BYTE:5 [ main::$0 ] Allocated zp ZP_BYTE:6 [ main::$3 ] INITIAL ASM +Target platform is c64basic // File Comments // Problem with assigning negative word constant (vwuz1=vbuc1) - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -325,7 +326,7 @@ Allocated (was zp ZP_WORD:3) zp ZP_WORD:2 [ main::w#2 main::w#3 ] ASSEMBLER BEFORE OPTIMIZATION // File Comments // Problem with assigning negative word constant (vwuz1=vbuc1) - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -469,7 +470,7 @@ Score: 626 // File Comments // Problem with assigning negative word constant (vwuz1=vbuc1) - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/problem-pointer-inside-struct-sizeof-rewriting.log b/src/test/ref/problem-pointer-inside-struct-sizeof-rewriting.log index c8b5b127f..a32df8114 100644 --- a/src/test/ref/problem-pointer-inside-struct-sizeof-rewriting.log +++ b/src/test/ref/problem-pointer-inside-struct-sizeof-rewriting.log @@ -217,9 +217,10 @@ Allocated zp ZP_WORD:4 [ main::digit_value#0 ] Allocated zp ZP_BYTE:6 [ main::$2 ] INITIAL ASM +Target platform is c64basic // File Comments // Illustrates a problem with pointer sizeof()-rewriting for pointers inside structs - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -340,7 +341,7 @@ Allocated (was zp ZP_WORD:4) zp ZP_WORD:3 [ main::digit_value#0 ] ASSEMBLER BEFORE OPTIMIZATION // File Comments // Illustrates a problem with pointer sizeof()-rewriting for pointers inside structs - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -494,7 +495,7 @@ Score: 4731 // File Comments // Illustrates a problem with pointer sizeof()-rewriting for pointers inside structs - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/ptr-complex.log b/src/test/ref/ptr-complex.log index f0ad3c41d..9aea5f16b 100644 --- a/src/test/ref/ptr-complex.log +++ b/src/test/ref/ptr-complex.log @@ -277,9 +277,10 @@ Allocated zp ZP_BYTE:2 [ main::i#2 main::i#1 ] Allocated zp ZP_BYTE:3 [ main::j#2 main::j#1 ] INITIAL ASM +Target platform is c64basic // File Comments // Test some complex pointers - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -405,7 +406,7 @@ Uplifting [] best 595 combination ASSEMBLER BEFORE OPTIMIZATION // File Comments // Test some complex pointers - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -564,7 +565,7 @@ Score: 400 // File Comments // Test some complex pointers - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/ptrptr-optimize-0.log b/src/test/ref/ptrptr-optimize-0.log index 48b045577..4faaddc1e 100644 --- a/src/test/ref/ptrptr-optimize-0.log +++ b/src/test/ref/ptrptr-optimize-0.log @@ -91,9 +91,10 @@ Complete equivalence classes Allocated zp ZP_WORD:2 [ main::screen#0 ] INITIAL ASM +Target platform is c64basic // File Comments // Tests optimization of constant pointers to pointers - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -158,7 +159,7 @@ Uplifting [] best 65 combination ASSEMBLER BEFORE OPTIMIZATION // File Comments // Tests optimization of constant pointers to pointers - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -244,7 +245,7 @@ Score: 50 // File Comments // Tests optimization of constant pointers to pointers - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/ptrptr-optimize-1.log b/src/test/ref/ptrptr-optimize-1.log index 7f92886c3..ab0363fb1 100644 --- a/src/test/ref/ptrptr-optimize-1.log +++ b/src/test/ref/ptrptr-optimize-1.log @@ -161,9 +161,10 @@ Allocated zp ZP_BYTE:2 [ sub::ch#2 ] Allocated zp ZP_WORD:3 [ main::screen#0 ] INITIAL ASM +Target platform is c64basic // File Comments // Tests optimization of constant pointers to pointers - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -256,7 +257,7 @@ Allocated (was zp ZP_WORD:3) zp ZP_WORD:2 [ main::screen#0 ] ASSEMBLER BEFORE OPTIMIZATION // File Comments // Tests optimization of constant pointers to pointers - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -377,7 +378,7 @@ Score: 60 // File Comments // Tests optimization of constant pointers to pointers - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/ptrptr-optimize-2.log b/src/test/ref/ptrptr-optimize-2.log index e11e9f06c..629b3248e 100644 --- a/src/test/ref/ptrptr-optimize-2.log +++ b/src/test/ref/ptrptr-optimize-2.log @@ -161,10 +161,11 @@ Allocated zp ZP_BYTE:2 [ sub::ch#2 ] Allocated zp ZP_WORD:3 [ main::screen#0 ] INITIAL ASM +Target platform is c64basic // File Comments // Tests (non-)optimization of constant pointers to pointers // The two examples of &screen is not detected as identical leading to ASM that could be optimized more - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -257,7 +258,7 @@ ASSEMBLER BEFORE OPTIMIZATION // File Comments // Tests (non-)optimization of constant pointers to pointers // The two examples of &screen is not detected as identical leading to ASM that could be optimized more - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -376,7 +377,7 @@ Score: 60 // File Comments // Tests (non-)optimization of constant pointers to pointers // The two examples of &screen is not detected as identical leading to ASM that could be optimized more - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/ptrtest.log b/src/test/ref/ptrtest.log index 03f6ac7d1..78d829e6c 100644 --- a/src/test/ref/ptrtest.log +++ b/src/test/ref/ptrtest.log @@ -541,9 +541,10 @@ Allocated zp ZP_BYTE:10 [ rvalue::b#3 rvalue::b#1 rvalue::b#2 ] Allocated zp ZP_BYTE:11 [ lvalue::i#2 lvalue::i#1 ] INITIAL ASM +Target platform is c64basic // File Comments // Test all types of pointers - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -842,7 +843,7 @@ Allocated (was zp ZP_WORD:6) zp ZP_WORD:4 [ rvaluevar::screen#2 rvaluevar::scree ASSEMBLER BEFORE OPTIMIZATION // File Comments // Test all types of pointers - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -1208,7 +1209,7 @@ Score: 1318 // File Comments // Test all types of pointers - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/ptrtestmin.log b/src/test/ref/ptrtestmin.log index 249dbf649..32c3074f0 100644 --- a/src/test/ref/ptrtestmin.log +++ b/src/test/ref/ptrtestmin.log @@ -164,9 +164,10 @@ Allocated zp ZP_BYTE:2 [ main::i#2 main::i#1 ] Allocated zp ZP_BYTE:3 [ main::b#2 main::b#1 ] INITIAL ASM +Target platform is c64basic // File Comments // Test all types of pointers - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -249,7 +250,7 @@ Uplifting [] best 265 combination ASSEMBLER BEFORE OPTIMIZATION // File Comments // Test all types of pointers - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -361,7 +362,7 @@ Score: 190 // File Comments // Test all types of pointers - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/reserve-zp-global.log b/src/test/ref/reserve-zp-global.log index 9efe69426..8f53597e1 100644 --- a/src/test/ref/reserve-zp-global.log +++ b/src/test/ref/reserve-zp-global.log @@ -188,9 +188,10 @@ Allocated zp ZP_BYTE:8 [ main::$0 ] Allocated zp ZP_BYTE:9 [ sub1::return#1 ] INITIAL ASM +Target platform is c64basic // File Comments // Demonstrates global directive reserving addresses on zeropage - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -297,7 +298,7 @@ Uplifting [main] best 419 combination zp ZP_BYTE:4 [ main::i#2 main::i#0 main::i ASSEMBLER BEFORE OPTIMIZATION // File Comments // Demonstrates global directive reserving addresses on zeropage - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -428,7 +429,7 @@ Score: 314 // File Comments // Demonstrates global directive reserving addresses on zeropage - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/reserve-zp-procedure-1.log b/src/test/ref/reserve-zp-procedure-1.log index cabcce7f0..ae7bf6318 100644 --- a/src/test/ref/reserve-zp-procedure-1.log +++ b/src/test/ref/reserve-zp-procedure-1.log @@ -188,9 +188,10 @@ Allocated zp ZP_BYTE:8 [ main::$0 ] Allocated zp ZP_BYTE:9 [ sub1::return#1 ] INITIAL ASM +Target platform is c64basic // File Comments // Demonstrates a procedure reserving addresses on zeropage - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -297,7 +298,7 @@ Uplifting [main] best 419 combination zp ZP_BYTE:5 [ main::i#2 main::i#0 main::i ASSEMBLER BEFORE OPTIMIZATION // File Comments // Demonstrates a procedure reserving addresses on zeropage - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -428,7 +429,7 @@ Score: 314 // File Comments // Demonstrates a procedure reserving addresses on zeropage - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/reserve-zp-procedure-2.log b/src/test/ref/reserve-zp-procedure-2.log index dc3f77822..43c780d06 100644 --- a/src/test/ref/reserve-zp-procedure-2.log +++ b/src/test/ref/reserve-zp-procedure-2.log @@ -280,9 +280,10 @@ Allocated zp ZP_BYTE:16 [ sub2::return#1 ] Allocated zp ZP_BYTE:17 [ sub1::return#1 ] INITIAL ASM +Target platform is c64basic // File Comments // Demonstrates a procedure reserving addresses on zeropage - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -449,7 +450,7 @@ Uplifting [main] best 640 combination zp ZP_BYTE:8 [ main::i#2 main::i#0 main::i ASSEMBLER BEFORE OPTIMIZATION // File Comments // Demonstrates a procedure reserving addresses on zeropage - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -627,7 +628,7 @@ Score: 502 // File Comments // Demonstrates a procedure reserving addresses on zeropage - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/reserve-zp-procedure-3.log b/src/test/ref/reserve-zp-procedure-3.log index 1ee0a9196..361aec422 100644 --- a/src/test/ref/reserve-zp-procedure-3.log +++ b/src/test/ref/reserve-zp-procedure-3.log @@ -189,9 +189,10 @@ Allocated zp ZP_BYTE:8 [ main::$0 ] Allocated zp ZP_BYTE:9 [ sub1::return#1 ] INITIAL ASM +Target platform is c64basic // File Comments // Demonstrates a procedure reserving addresses on zeropage - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -298,7 +299,7 @@ Uplifting [main] best 419 combination zp ZP_BYTE:5 [ main::i#2 main::i#0 main::i ASSEMBLER BEFORE OPTIMIZATION // File Comments // Demonstrates a procedure reserving addresses on zeropage - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -429,7 +430,7 @@ Score: 314 // File Comments // Demonstrates a procedure reserving addresses on zeropage - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/robozzle64-label-problem.log b/src/test/ref/robozzle64-label-problem.log index cd2a0f27b..c702edce3 100644 --- a/src/test/ref/robozzle64-label-problem.log +++ b/src/test/ref/robozzle64-label-problem.log @@ -446,8 +446,9 @@ Allocated zp ZP_WORD:16 [ main::z2#0 ] Allocated zp ZP_BYTE:18 [ mul8u::$1 ] INITIAL ASM +Target platform is c64basic // File Comments - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -704,7 +705,7 @@ Allocated (was zp ZP_WORD:8) zp ZP_WORD:7 [ mul8u::mb#2 mul8u::mb#0 mul8u::mb#1 ASSEMBLER BEFORE OPTIMIZATION // File Comments - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -992,7 +993,7 @@ FINAL ASSEMBLER Score: 6994 // File Comments - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/roll-sprite-msb.log b/src/test/ref/roll-sprite-msb.log index 3023fe234..afd34c58c 100644 --- a/src/test/ref/roll-sprite-msb.log +++ b/src/test/ref/roll-sprite-msb.log @@ -332,9 +332,10 @@ Allocated zp ZP_BYTE:11 [ position_sprite::$5 ] Allocated zp ZP_BYTE:12 [ position_sprite::$6 ] INITIAL ASM +Target platform is c64basic // File Comments // Tests rolling sprite MSB by variable amount - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -551,7 +552,7 @@ Allocated (was zp ZP_BYTE:5) zp ZP_BYTE:4 [ position_sprite::spriteno#0 ] ASSEMBLER BEFORE OPTIMIZATION // File Comments // Tests rolling sprite MSB by variable amount - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -773,7 +774,7 @@ Score: 555 // File Comments // Tests rolling sprite MSB by variable amount - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/roll-variable.log b/src/test/ref/roll-variable.log index a54314f02..d1c3bd376 100644 --- a/src/test/ref/roll-variable.log +++ b/src/test/ref/roll-variable.log @@ -132,9 +132,10 @@ Allocated zp ZP_BYTE:2 [ main::b#2 main::b#1 ] Allocated zp ZP_BYTE:3 [ main::$0 ] INITIAL ASM +Target platform is c64basic // File Comments // Rolling constants by a variable amount - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -220,7 +221,7 @@ Uplifting [main] best 523 combination zp ZP_BYTE:2 [ main::b#2 main::b#1 ] ASSEMBLER BEFORE OPTIMIZATION // File Comments // Rolling constants by a variable amount - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -332,7 +333,7 @@ Score: 421 // File Comments // Rolling constants by a variable amount - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/runtime-unused-procedure.log b/src/test/ref/runtime-unused-procedure.log index 06c604c99..44714335f 100644 --- a/src/test/ref/runtime-unused-procedure.log +++ b/src/test/ref/runtime-unused-procedure.log @@ -155,9 +155,10 @@ Initial phi equivalence classes Complete equivalence classes INITIAL ASM +Target platform is c64basic // File Comments // Tests that a procedure that is never called, but requires static analysis is correctly eliminated - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -203,7 +204,7 @@ Uplifting [] best 27 combination ASSEMBLER BEFORE OPTIMIZATION // File Comments // Tests that a procedure that is never called, but requires static analysis is correctly eliminated - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -271,7 +272,7 @@ Score: 12 // File Comments // Tests that a procedure that is never called, but requires static analysis is correctly eliminated - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/sandbox-ternary-error.log b/src/test/ref/sandbox-ternary-error.log index 73c557fcf..cb1aa0817 100644 --- a/src/test/ref/sandbox-ternary-error.log +++ b/src/test/ref/sandbox-ternary-error.log @@ -221,9 +221,10 @@ Allocated zp ZP_BYTE:2 [ main::b#2 main::b#1 ] Allocated zp ZP_BYTE:3 [ main::$7 main::$5 ] INITIAL ASM +Target platform is c64basic // File Comments // Demonstrates error with nested ternary operator - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -335,7 +336,7 @@ Uplifting [] best 563 combination ASSEMBLER BEFORE OPTIMIZATION // File Comments // Demonstrates error with nested ternary operator - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -490,7 +491,7 @@ Score: 341 // File Comments // Demonstrates error with nested ternary operator - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/sandbox.log b/src/test/ref/sandbox.log index 5f16b3635..804bf5bc7 100644 --- a/src/test/ref/sandbox.log +++ b/src/test/ref/sandbox.log @@ -4222,8 +4222,9 @@ Allocated zp ZP_BYTE:113 [ divr16u::$1 ] Allocated zp ZP_BYTE:114 [ divr16u::$2 ] INITIAL ASM +Target platform is c64basic // File Comments - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -6185,7 +6186,7 @@ Allocated (was zp ZP_WORD:99) zp ZP_WORD:37 [ div10::$3 div10::val#2 ] ASSEMBLER BEFORE OPTIMIZATION // File Comments - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -8185,7 +8186,7 @@ FINAL ASSEMBLER Score: 354730 // File Comments - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/scan-desire-problem.log b/src/test/ref/scan-desire-problem.log index 3cf8ce098..0f0c5b2cc 100644 --- a/src/test/ref/scan-desire-problem.log +++ b/src/test/ref/scan-desire-problem.log @@ -1350,9 +1350,10 @@ Allocated zp ZP_BYTE:46 [ mul8u::$1 ] Allocated zp ZP_WORD:47 [ memset::end#0 ] INITIAL ASM +Target platform is c64basic // File Comments // Illustrates a problem with a missing fragment - pbuc1_derefidx_vwuz1=vbuz2 - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -2051,7 +2052,7 @@ Allocated (was zp ZP_WORD:47) zp ZP_WORD:27 [ memset::end#0 ] ASSEMBLER BEFORE OPTIMIZATION // File Comments // Illustrates a problem with a missing fragment - pbuc1_derefidx_vwuz1=vbuz2 - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -2818,7 +2819,7 @@ Score: 75438 // File Comments // Illustrates a problem with a missing fragment - pbuc1_derefidx_vwuz1=vbuz2 - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/screen-center-angle.log b/src/test/ref/screen-center-angle.log index 3d074e9a4..8c79a94f3 100644 --- a/src/test/ref/screen-center-angle.log +++ b/src/test/ref/screen-center-angle.log @@ -2715,10 +2715,11 @@ Allocated zp ZP_BYTE:90 [ init_font_hex::$2 ] Allocated zp ZP_BYTE:91 [ init_font_hex::idx#3 ] INITIAL ASM +Target platform is c64basic // File Comments // Calculate the angle to the center of the screen - and show it using font-hex // 4.65 million cycles - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -4113,7 +4114,7 @@ ASSEMBLER BEFORE OPTIMIZATION // File Comments // Calculate the angle to the center of the screen - and show it using font-hex // 4.65 million cycles - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -5578,7 +5579,7 @@ Score: 1044667 // File Comments // Calculate the angle to the center of the screen - and show it using font-hex // 4.65 million cycles - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/screen-center-distance.log b/src/test/ref/screen-center-distance.log index dd7f8547e..ca15cd93d 100644 --- a/src/test/ref/screen-center-distance.log +++ b/src/test/ref/screen-center-distance.log @@ -3201,9 +3201,10 @@ Allocated zp ZP_BYTE:104 [ init_font_hex::$2 ] Allocated zp ZP_BYTE:105 [ init_font_hex::idx#3 ] INITIAL ASM +Target platform is c64basic // File Comments // Calculate the distance to the center of the screen - and show it using font-hex - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -4713,7 +4714,7 @@ Allocated (was zp ZP_BYTE:102) zp ZP_BYTE:45 [ init_font_hex::$0 ] ASSEMBLER BEFORE OPTIMIZATION // File Comments // Calculate the distance to the center of the screen - and show it using font-hex - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -6227,7 +6228,7 @@ Score: 203337 // File Comments // Calculate the distance to the center of the screen - and show it using font-hex - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/screen-show-spiral-buckets.log b/src/test/ref/screen-show-spiral-buckets.log index a92aae5fa..0c80c5b3e 100644 --- a/src/test/ref/screen-show-spiral-buckets.log +++ b/src/test/ref/screen-show-spiral-buckets.log @@ -4430,10 +4430,11 @@ Allocated zp ZP_BYTE:172 [ init_squares::$3 ] Allocated zp ZP_BYTE:173 [ init_squares::$4 ] INITIAL ASM +Target platform is c64basic // File Comments // Fill screen using a spiral based on distance-to-center / angle-to-center // Utilizes a bucket sort for identifying the minimum angle/distance - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -7002,7 +7003,7 @@ ASSEMBLER BEFORE OPTIMIZATION // File Comments // Fill screen using a spiral based on distance-to-center / angle-to-center // Utilizes a bucket sort for identifying the minimum angle/distance - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -9484,7 +9485,7 @@ Score: 1116084 // File Comments // Fill screen using a spiral based on distance-to-center / angle-to-center // Utilizes a bucket sort for identifying the minimum angle/distance - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" diff --git a/src/test/ref/screen-show-spiral.log b/src/test/ref/screen-show-spiral.log index 500ae7032..5bd32e5e9 100644 --- a/src/test/ref/screen-show-spiral.log +++ b/src/test/ref/screen-show-spiral.log @@ -3481,9 +3481,10 @@ Allocated zp ZP_BYTE:125 [ init_squares::$4 ] Allocated zp ZP_WORD:126 [ malloc::mem#0 ] INITIAL ASM +Target platform is c64basic // File Comments // Fill screen using a spiral based on distance-to-center / angle-to-center - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -5421,7 +5422,7 @@ Allocated (was zp ZP_WORD:117) zp ZP_WORD:63 [ bsearch16u::result#0 ] ASSEMBLER BEFORE OPTIMIZATION // File Comments // Fill screen using a spiral based on distance-to-center / angle-to-center - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -7304,7 +7305,7 @@ Score: 1112146 // File Comments // Fill screen using a spiral based on distance-to-center / angle-to-center - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" diff --git a/src/test/ref/scroll-clobber.log b/src/test/ref/scroll-clobber.log index 1a631c1aa..fbe03d0a5 100644 --- a/src/test/ref/scroll-clobber.log +++ b/src/test/ref/scroll-clobber.log @@ -197,8 +197,9 @@ Allocated zp ZP_BYTE:3 [ main::c#2 main::c#0 main::c#1 ] Allocated zp ZP_WORD:4 [ main::nxt#4 main::nxt#3 main::nxt#1 ] INITIAL ASM +Target platform is c64basic // File Comments - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -307,7 +308,7 @@ Allocated (was zp ZP_WORD:4) zp ZP_WORD:2 [ main::nxt#4 main::nxt#3 main::nxt#1 ASSEMBLER BEFORE OPTIMIZATION // File Comments - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -452,7 +453,7 @@ FINAL ASSEMBLER Score: 645 // File Comments - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/scrollbig-clobber.log b/src/test/ref/scrollbig-clobber.log index 5230eac09..b282d3801 100644 --- a/src/test/ref/scrollbig-clobber.log +++ b/src/test/ref/scrollbig-clobber.log @@ -283,9 +283,10 @@ Allocated zp ZP_BYTE:6 [ next_char::return#0 ] Allocated zp ZP_BYTE:7 [ main::$0 ] INITIAL ASM +Target platform is c64basic // File Comments // Clobber problem in next_char return value - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -431,7 +432,7 @@ Allocated (was zp ZP_WORD:3) zp ZP_WORD:2 [ nxt#10 nxt#13 nxt#11 ] ASSEMBLER BEFORE OPTIMIZATION // File Comments // Clobber problem in next_char return value - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -618,7 +619,7 @@ Score: 366 // File Comments // Clobber problem in next_char return value - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/semi-struct-1.log b/src/test/ref/semi-struct-1.log index 0e2ed1e9e..ac9f2084a 100644 --- a/src/test/ref/semi-struct-1.log +++ b/src/test/ref/semi-struct-1.log @@ -1547,6 +1547,7 @@ Allocated zp ZP_WORD:21 [ init_points::getPoint1_return#0 ] Allocated zp ZP_BYTE:23 [ init_points::pos#1 ] INITIAL ASM +Target platform is c64basic // File Comments // Implementing a semi-struct without the struct keyword by using pointer math and inline functions // @@ -1555,7 +1556,7 @@ INITIAL ASM // byte ypos; // The y-position // }; // Point[NUM_POINTS] points; - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -2133,7 +2134,7 @@ ASSEMBLER BEFORE OPTIMIZATION // byte ypos; // The y-position // }; // Point[NUM_POINTS] points; - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -2854,7 +2855,7 @@ Score: 12233 // byte ypos; // The y-position // }; // Point[NUM_POINTS] points; - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/semi-struct-2.log b/src/test/ref/semi-struct-2.log index 5463b823d..a1407d80e 100644 --- a/src/test/ref/semi-struct-2.log +++ b/src/test/ref/semi-struct-2.log @@ -5245,6 +5245,7 @@ Allocated zp ZP_BYTE:65 [ initEntry::$25 ] Allocated zp ZP_BYTE:66 [ mul8u::$1 ] INITIAL ASM +Target platform is c64basic // File Comments // Implementing a semi-struct without the struct keyword by using pointer math and inline functions // @@ -5265,7 +5266,7 @@ INITIAL ASM // }; // typedef struct fileentry ENTRY; // ENTRY files[MAX_FILES]; - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -7406,7 +7407,7 @@ ASSEMBLER BEFORE OPTIMIZATION // }; // typedef struct fileentry ENTRY; // ENTRY files[MAX_FILES]; - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -10034,7 +10035,7 @@ Score: 4078 // }; // typedef struct fileentry ENTRY; // ENTRY files[MAX_FILES]; - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/sequence-locality-0.log b/src/test/ref/sequence-locality-0.log index 780ddbc82..eedd03f78 100644 --- a/src/test/ref/sequence-locality-0.log +++ b/src/test/ref/sequence-locality-0.log @@ -211,9 +211,10 @@ Allocated zp ZP_BYTE:3 [ main::idx#3 main::idx#6 main::idx#1 main::idx#2 ] Allocated zp ZP_BYTE:4 [ main::$1 ] INITIAL ASM +Target platform is c64basic // File Comments // Tests statement sequence locality of if(cond) { stmt1; } else { stmt2; } - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -318,7 +319,7 @@ Uplifting [] best 568 combination ASSEMBLER BEFORE OPTIMIZATION // File Comments // Tests statement sequence locality of if(cond) { stmt1; } else { stmt2; } - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -461,7 +462,7 @@ Score: 406 // File Comments // Tests statement sequence locality of if(cond) { stmt1; } else { stmt2; } - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/sequence-locality-1.log b/src/test/ref/sequence-locality-1.log index b4cfa90dc..2039b4c40 100644 --- a/src/test/ref/sequence-locality-1.log +++ b/src/test/ref/sequence-locality-1.log @@ -209,9 +209,10 @@ Allocated zp ZP_BYTE:3 [ main::idx#2 main::idx#1 ] Allocated zp ZP_BYTE:4 [ main::j#2 main::j#4 main::j#1 ] INITIAL ASM +Target platform is c64basic // File Comments // Tests statement sequence locality of if(cond) { stmt1; } else { stmt2; } - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -317,7 +318,7 @@ Uplifting [] best 478 combination ASSEMBLER BEFORE OPTIMIZATION // File Comments // Tests statement sequence locality of if(cond) { stmt1; } else { stmt2; } - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -457,7 +458,7 @@ Score: 316 // File Comments // Tests statement sequence locality of if(cond) { stmt1; } else { stmt2; } - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/sieve.log b/src/test/ref/sieve.log index 5c730fba0..111c1a67c 100644 --- a/src/test/ref/sieve.log +++ b/src/test/ref/sieve.log @@ -4192,8 +4192,9 @@ Allocated zp ZP_DWORD:134 [ clock::return#0 ] Allocated zp ZP_WORD:138 [ memset::end#0 ] INITIAL ASM +Target platform is c64basic // File Comments - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -6113,7 +6114,7 @@ Allocated (was zp ZP_WORD:120) zp ZP_WORD:52 [ div32u16u::quotient_hi#0 ] ASSEMBLER BEFORE OPTIMIZATION // File Comments - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -8136,7 +8137,7 @@ FINAL ASSEMBLER Score: 82987 // File Comments - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/signed-bytes.log b/src/test/ref/signed-bytes.log index 389125cce..1253a6e36 100644 --- a/src/test/ref/signed-bytes.log +++ b/src/test/ref/signed-bytes.log @@ -160,8 +160,9 @@ Allocated zp ZP_BYTE:2 [ main::i#2 main::i#1 ] Allocated zp ZP_BYTE:3 [ main::j#2 main::j#1 ] INITIAL ASM +Target platform is c64basic // File Comments - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -248,7 +249,7 @@ Uplifting [] best 388 combination ASSEMBLER BEFORE OPTIMIZATION // File Comments - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -358,7 +359,7 @@ FINAL ASSEMBLER Score: 316 // File Comments - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/signed-indexed-subtract.log b/src/test/ref/signed-indexed-subtract.log index 798ee4bae..296535441 100644 --- a/src/test/ref/signed-indexed-subtract.log +++ b/src/test/ref/signed-indexed-subtract.log @@ -1185,9 +1185,10 @@ Allocated zp ZP_BYTE:20 [ print_byte::$2 ] Allocated zp ZP_BYTE:21 [ sub::$0 ] INITIAL ASM +Target platform is c64basic // File Comments // Tests that signed indexed subtract works as intended - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -1726,7 +1727,7 @@ Allocated (was zp ZP_WORD:12) zp ZP_WORD:9 [ memset::dst#2 memset::dst#1 ] ASSEMBLER BEFORE OPTIMIZATION // File Comments // Tests that signed indexed subtract works as intended - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -2359,7 +2360,7 @@ Score: 5284 // File Comments // Tests that signed indexed subtract works as intended - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/signed-word-minus-byte-2.log b/src/test/ref/signed-word-minus-byte-2.log index 3b7c1d5f5..923350786 100644 --- a/src/test/ref/signed-word-minus-byte-2.log +++ b/src/test/ref/signed-word-minus-byte-2.log @@ -165,9 +165,10 @@ Allocated zp ZP_BYTE:4 [ main::i#2 main::i#1 ] Allocated zp ZP_BYTE:5 [ main::$2 ] INITIAL ASM +Target platform is c64basic // File Comments // Tests subtracting bytes from signed words - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -266,7 +267,7 @@ Uplifting [] best 693 combination ASSEMBLER BEFORE OPTIMIZATION // File Comments // Tests subtracting bytes from signed words - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -390,7 +391,7 @@ Score: 591 // File Comments // Tests subtracting bytes from signed words - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/signed-words.log b/src/test/ref/signed-words.log index f23de12dc..ae21138de 100644 --- a/src/test/ref/signed-words.log +++ b/src/test/ref/signed-words.log @@ -961,8 +961,9 @@ Allocated zp ZP_BYTE:24 [ anim::$10 ] Allocated zp ZP_BYTE:25 [ anim::$11 ] INITIAL ASM +Target platform is c64basic // File Comments - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -1421,7 +1422,7 @@ Allocated (was zp ZP_WORD:19) zp ZP_WORD:16 [ anim::$7 anim::sprite_y#0 ] ASSEMBLER BEFORE OPTIMIZATION // File Comments - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -1947,7 +1948,7 @@ FINAL ASSEMBLER Score: 6343 // File Comments - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/simple-loop.log b/src/test/ref/simple-loop.log index 23eab33cc..321d1d708 100644 --- a/src/test/ref/simple-loop.log +++ b/src/test/ref/simple-loop.log @@ -133,8 +133,9 @@ Complete equivalence classes Allocated zp ZP_BYTE:2 [ main::i#2 main::i#1 ] INITIAL ASM +Target platform is c64basic // File Comments - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -212,7 +213,7 @@ Uplifting [] best 343 combination ASSEMBLER BEFORE OPTIMIZATION // File Comments - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -312,7 +313,7 @@ FINAL ASSEMBLER Score: 241 // File Comments - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/sinus-basic.log b/src/test/ref/sinus-basic.log index 7d6d44965..7c55535ae 100644 --- a/src/test/ref/sinus-basic.log +++ b/src/test/ref/sinus-basic.log @@ -1214,8 +1214,9 @@ Allocated zp ZP_BYTE:25 [ prepareMEM::$0 ] Allocated zp ZP_BYTE:26 [ prepareMEM::$1 ] INITIAL ASM +Target platform is c64basic // File Comments - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -1914,7 +1915,7 @@ Allocated (was zp ZP_WORD:17) zp ZP_WORD:9 [ getFAC::return#2 print_word::w#0 ge ASSEMBLER BEFORE OPTIMIZATION // File Comments - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -2717,7 +2718,7 @@ FINAL ASSEMBLER Score: 4965 // File Comments - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/sinusgen16.log b/src/test/ref/sinusgen16.log index e5cba3be7..952368682 100644 --- a/src/test/ref/sinusgen16.log +++ b/src/test/ref/sinusgen16.log @@ -2744,9 +2744,10 @@ Allocated zp ZP_BYTE:131 [ divr16u::$2 ] Allocated zp ZP_WORD:132 [ rem16u#1 ] INITIAL ASM +Target platform is c64basic // File Comments // Generates a 16-bit signed sinus - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -4342,7 +4343,7 @@ Allocated (was zp ZP_WORD:120) zp ZP_WORD:55 [ div32u16u::quotient_hi#0 ] ASSEMBLER BEFORE OPTIMIZATION // File Comments // Generates a 16-bit signed sinus - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -5962,7 +5963,7 @@ Score: 22680 // File Comments // Generates a 16-bit signed sinus - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/sinusgen16b.log b/src/test/ref/sinusgen16b.log index d3392d209..c244ae3ae 100644 --- a/src/test/ref/sinusgen16b.log +++ b/src/test/ref/sinusgen16b.log @@ -3614,9 +3614,10 @@ Allocated zp ZP_WORD:186 [ sin16s::x5_128#0 ] Allocated zp ZP_WORD:188 [ sin16s::usinx#1 ] INITIAL ASM +Target platform is c64basic // File Comments // Generates a 16-bit signed sinus - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -5842,7 +5843,7 @@ Allocated (was zp ZP_WORD:162) zp ZP_WORD:70 [ sin16s::x1#0 ] ASSEMBLER BEFORE OPTIMIZATION // File Comments // Generates a 16-bit signed sinus - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -8016,7 +8017,7 @@ Score: 24955 // File Comments // Generates a 16-bit signed sinus - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/sinusgen8.log b/src/test/ref/sinusgen8.log index f9e59d8e5..586fd5032 100644 --- a/src/test/ref/sinusgen8.log +++ b/src/test/ref/sinusgen8.log @@ -2717,8 +2717,9 @@ Allocated zp ZP_BYTE:75 [ divr16u::$1 ] Allocated zp ZP_BYTE:76 [ divr16u::$2 ] INITIAL ASM +Target platform is c64basic // File Comments - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -4014,7 +4015,7 @@ Allocated (was zp ZP_BYTE:57) zp ZP_BYTE:31 [ sin8s::usinx#0 ] ASSEMBLER BEFORE OPTIMIZATION // File Comments - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -5439,7 +5440,7 @@ FINAL ASSEMBLER Score: 15808 // File Comments - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/sinusgen8b.log b/src/test/ref/sinusgen8b.log index 27d593b94..5ca019da5 100644 --- a/src/test/ref/sinusgen8b.log +++ b/src/test/ref/sinusgen8b.log @@ -3882,8 +3882,9 @@ Allocated zp ZP_WORD:188 [ divr16u::return#2 ] Allocated zp ZP_WORD:190 [ div16u::return#0 ] INITIAL ASM +Target platform is c64basic // File Comments - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -6196,7 +6197,7 @@ Allocated (was zp ZP_BYTE:174) zp ZP_BYTE:75 [ sin8s::usinx#0 ] ASSEMBLER BEFORE OPTIMIZATION // File Comments - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -8499,7 +8500,7 @@ FINAL ASSEMBLER Score: 31886 // File Comments - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/sinusgenscale8.log b/src/test/ref/sinusgenscale8.log index 4c36e010e..a4ba734de 100644 --- a/src/test/ref/sinusgenscale8.log +++ b/src/test/ref/sinusgenscale8.log @@ -3766,8 +3766,9 @@ Allocated zp ZP_BYTE:90 [ divr16u::$1 ] Allocated zp ZP_BYTE:91 [ divr16u::$2 ] INITIAL ASM +Target platform is c64basic // File Comments - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -5544,7 +5545,7 @@ Allocated (was zp ZP_BYTE:73) zp ZP_BYTE:36 [ sin8s::usinx#0 ] ASSEMBLER BEFORE OPTIMIZATION // File Comments - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -7560,7 +7561,7 @@ FINAL ASSEMBLER Score: 19684 // File Comments - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/sizeof-arrays.log b/src/test/ref/sizeof-arrays.log index c94f2a8e0..555d64dd2 100644 --- a/src/test/ref/sizeof-arrays.log +++ b/src/test/ref/sizeof-arrays.log @@ -353,9 +353,10 @@ Initial phi equivalence classes Complete equivalence classes INITIAL ASM +Target platform is c64basic // File Comments // Tests the sizeof() operator on arrays - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -424,7 +425,7 @@ Uplifting [] best 57 combination ASSEMBLER BEFORE OPTIMIZATION // File Comments // Tests the sizeof() operator on arrays - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -520,7 +521,7 @@ Score: 42 // File Comments // Tests the sizeof() operator on arrays - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/sizeof-expr.log b/src/test/ref/sizeof-expr.log index c4a7ef4fc..8f0c102e8 100644 --- a/src/test/ref/sizeof-expr.log +++ b/src/test/ref/sizeof-expr.log @@ -318,9 +318,10 @@ Allocated zp ZP_BYTE:2 [ main::b#0 ] Allocated zp ZP_WORD:3 [ main::w#0 ] INITIAL ASM +Target platform is c64basic // File Comments // Tests the sizeof() operator on values/expressions - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -415,7 +416,7 @@ Uplifting [main] best 84 combination zp ZP_BYTE:2 [ main::b#0 ] ASSEMBLER BEFORE OPTIMIZATION // File Comments // Tests the sizeof() operator on values/expressions - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -535,7 +536,7 @@ Score: 59 // File Comments // Tests the sizeof() operator on values/expressions - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/sizeof-struct.log b/src/test/ref/sizeof-struct.log index 2393bd4c1..dbdae7ad3 100644 --- a/src/test/ref/sizeof-struct.log +++ b/src/test/ref/sizeof-struct.log @@ -350,9 +350,10 @@ Initial phi equivalence classes Complete equivalence classes INITIAL ASM +Target platform is c64basic // File Comments // Tests the sizeof() operator on structs - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -436,7 +437,7 @@ Uplifting [] best 69 combination ASSEMBLER BEFORE OPTIMIZATION // File Comments // Tests the sizeof() operator on structs - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -543,7 +544,7 @@ Score: 54 // File Comments // Tests the sizeof() operator on structs - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/sizeof-types.log b/src/test/ref/sizeof-types.log index 99d5fb6ee..5e8eda89e 100644 --- a/src/test/ref/sizeof-types.log +++ b/src/test/ref/sizeof-types.log @@ -402,9 +402,10 @@ Initial phi equivalence classes Complete equivalence classes INITIAL ASM +Target platform is c64basic // File Comments // Tests the sizeof() operator on types - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -538,7 +539,7 @@ Uplifting [] best 147 combination ASSEMBLER BEFORE OPTIMIZATION // File Comments // Tests the sizeof() operator on types - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -687,7 +688,7 @@ Score: 124 // File Comments // Tests the sizeof() operator on types - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/statement-sequence-1.log b/src/test/ref/statement-sequence-1.log index 21ffddf23..3c4a3ce3d 100644 --- a/src/test/ref/statement-sequence-1.log +++ b/src/test/ref/statement-sequence-1.log @@ -218,9 +218,10 @@ Allocated zp ZP_BYTE:3 [ main::c#2 main::c#0 main::c#1 ] Allocated zp ZP_BYTE:4 [ main::$1 ] INITIAL ASM +Target platform is c64basic // File Comments // Tests statement sequence generation - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -323,7 +324,7 @@ Uplifting [] best 563 combination ASSEMBLER BEFORE OPTIMIZATION // File Comments // Tests statement sequence generation - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -465,7 +466,7 @@ Score: 371 // File Comments // Tests statement sequence generation - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/string-const-consolidation-noroot.log b/src/test/ref/string-const-consolidation-noroot.log index 149184ac1..80f405932 100644 --- a/src/test/ref/string-const-consolidation-noroot.log +++ b/src/test/ref/string-const-consolidation-noroot.log @@ -258,9 +258,10 @@ Allocated zp ZP_WORD:2 [ screen#18 screen#12 screen#5 ] Allocated zp ZP_WORD:4 [ print::string#4 print::string#3 ] INITIAL ASM +Target platform is c64basic // File Comments // Tests that identical strings are consolidated - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -388,7 +389,7 @@ Uplifting [main] best 776 combination ASSEMBLER BEFORE OPTIMIZATION // File Comments // Tests that identical strings are consolidated - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -565,7 +566,7 @@ Score: 675 // File Comments // Tests that identical strings are consolidated - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/string-const-consolidation.log b/src/test/ref/string-const-consolidation.log index f7cf4b8e5..6025d9de0 100644 --- a/src/test/ref/string-const-consolidation.log +++ b/src/test/ref/string-const-consolidation.log @@ -258,9 +258,10 @@ Allocated zp ZP_WORD:2 [ screen#18 screen#12 screen#5 ] Allocated zp ZP_WORD:4 [ print::string#4 print::string#3 ] INITIAL ASM +Target platform is c64basic // File Comments // Tests that identical strings are consolidated - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -388,7 +389,7 @@ Uplifting [main] best 776 combination ASSEMBLER BEFORE OPTIMIZATION // File Comments // Tests that identical strings are consolidated - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -565,7 +566,7 @@ Score: 675 // File Comments // Tests that identical strings are consolidated - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/string-encoding-literals.log b/src/test/ref/string-encoding-literals.log index 3d5b543f8..8fe769a38 100644 --- a/src/test/ref/string-encoding-literals.log +++ b/src/test/ref/string-encoding-literals.log @@ -227,9 +227,10 @@ Complete equivalence classes Allocated zp ZP_BYTE:2 [ main::i#2 main::i#1 ] INITIAL ASM +Target platform is c64basic // File Comments // Test string encoding via literals - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -349,7 +350,7 @@ Uplifting [] best 858 combination ASSEMBLER BEFORE OPTIMIZATION // File Comments // Test string encoding via literals - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -491,7 +492,7 @@ Score: 756 // File Comments // Test string encoding via literals - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/string-encoding-pragma.log b/src/test/ref/string-encoding-pragma.log index 5367fda2a..a478100d2 100644 --- a/src/test/ref/string-encoding-pragma.log +++ b/src/test/ref/string-encoding-pragma.log @@ -212,9 +212,10 @@ Complete equivalence classes Allocated zp ZP_BYTE:2 [ main::i#2 main::i#1 ] INITIAL ASM +Target platform is c64basic // File Comments // Test string encoding via literals - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -327,7 +328,7 @@ Uplifting [] best 763 combination ASSEMBLER BEFORE OPTIMIZATION // File Comments // Test string encoding via literals - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -463,7 +464,7 @@ Score: 661 // File Comments // Test string encoding via literals - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/strip.log b/src/test/ref/strip.log index 7e6cc12e1..f2bdf5fc9 100644 --- a/src/test/ref/strip.log +++ b/src/test/ref/strip.log @@ -408,9 +408,10 @@ Allocated zp ZP_WORD:9 [ strip::dest#2 strip::dest#0 strip::dest#4 strip::dest#1 Allocated zp ZP_WORD:11 [ strip::p#2 ] INITIAL ASM +Target platform is c64basic // File Comments // Tests of strip() function from https://news.ycombinator.com/item?id=12080871 - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -662,7 +663,7 @@ Allocated (was zp ZP_WORD:11) zp ZP_WORD:10 [ strip::p#2 ] ASSEMBLER BEFORE OPTIMIZATION // File Comments // Tests of strip() function from https://news.ycombinator.com/item?id=12080871 - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -979,7 +980,7 @@ Score: 1423 // File Comments // Tests of strip() function from https://news.ycombinator.com/item?id=12080871 - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/struct-0.log b/src/test/ref/struct-0.log index 6b8c72a17..e885d8017 100644 --- a/src/test/ref/struct-0.log +++ b/src/test/ref/struct-0.log @@ -156,9 +156,10 @@ Initial phi equivalence classes Complete equivalence classes INITIAL ASM +Target platform is c64basic // File Comments // Minimal struct - declaration, instantiation and usage - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -212,7 +213,7 @@ Uplifting [] best 33 combination ASSEMBLER BEFORE OPTIMIZATION // File Comments // Minimal struct - declaration, instantiation and usage - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -290,7 +291,7 @@ Score: 18 // File Comments // Minimal struct - declaration, instantiation and usage - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/struct-1.log b/src/test/ref/struct-1.log index b90b5a11e..fc20ee7f4 100644 --- a/src/test/ref/struct-1.log +++ b/src/test/ref/struct-1.log @@ -207,9 +207,10 @@ Initial phi equivalence classes Complete equivalence classes INITIAL ASM +Target platform is c64basic // File Comments // Minimal struct - two instances being used. - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -263,7 +264,7 @@ Uplifting [] best 33 combination ASSEMBLER BEFORE OPTIMIZATION // File Comments // Minimal struct - two instances being used. - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -343,7 +344,7 @@ Score: 18 // File Comments // Minimal struct - two instances being used. - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/struct-2.log b/src/test/ref/struct-2.log index 0fd5448f6..8614bc0d5 100644 --- a/src/test/ref/struct-2.log +++ b/src/test/ref/struct-2.log @@ -228,9 +228,10 @@ Initial phi equivalence classes Complete equivalence classes INITIAL ASM +Target platform is c64basic // File Comments // Minimal struct - two instances being copied (using assignment) - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -293,7 +294,7 @@ Uplifting [] best 45 combination ASSEMBLER BEFORE OPTIMIZATION // File Comments // Minimal struct - two instances being copied (using assignment) - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -381,7 +382,7 @@ Score: 30 // File Comments // Minimal struct - two instances being copied (using assignment) - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/struct-3.log b/src/test/ref/struct-3.log index 7fcb79f39..5e110393a 100644 --- a/src/test/ref/struct-3.log +++ b/src/test/ref/struct-3.log @@ -280,9 +280,10 @@ Allocated zp ZP_BYTE:3 [ idx#11 idx#12 ] Allocated zp ZP_BYTE:4 [ idx#4 ] INITIAL ASM +Target platform is c64basic // File Comments // Minimal struct - passing struct value parameter - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -389,7 +390,7 @@ Uplifting [main] best 67 combination ASSEMBLER BEFORE OPTIMIZATION // File Comments // Minimal struct - passing struct value parameter - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -521,7 +522,7 @@ Score: 46 // File Comments // Minimal struct - passing struct value parameter - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/struct-4.log b/src/test/ref/struct-4.log index a99c30bdb..dda74864c 100644 --- a/src/test/ref/struct-4.log +++ b/src/test/ref/struct-4.log @@ -139,9 +139,10 @@ Initial phi equivalence classes Complete equivalence classes INITIAL ASM +Target platform is c64basic // File Comments // Minimal struct - initializing using a value list - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -196,7 +197,7 @@ Uplifting [] best 33 combination ASSEMBLER BEFORE OPTIMIZATION // File Comments // Minimal struct - initializing using a value list - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -278,7 +279,7 @@ Score: 18 // File Comments // Minimal struct - initializing using a value list - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/struct-5.log b/src/test/ref/struct-5.log index e0d17cff5..837a269fb 100644 --- a/src/test/ref/struct-5.log +++ b/src/test/ref/struct-5.log @@ -243,9 +243,10 @@ Initial phi equivalence classes Complete equivalence classes INITIAL ASM +Target platform is c64basic // File Comments // Minimal struct - struct return value - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -318,7 +319,7 @@ Uplifting [] best 78 combination ASSEMBLER BEFORE OPTIMIZATION // File Comments // Minimal struct - struct return value - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -428,7 +429,7 @@ Score: 30 // File Comments // Minimal struct - struct return value - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/struct-6.log b/src/test/ref/struct-6.log index 49fabc311..3f7e01ab0 100644 --- a/src/test/ref/struct-6.log +++ b/src/test/ref/struct-6.log @@ -161,9 +161,10 @@ Initial phi equivalence classes Complete equivalence classes INITIAL ASM +Target platform is c64basic // File Comments // Minimal struct - nesting structs - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -224,7 +225,7 @@ Uplifting [] best 39 combination ASSEMBLER BEFORE OPTIMIZATION // File Comments // Minimal struct - nesting structs - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -312,7 +313,7 @@ Score: 24 // File Comments // Minimal struct - nesting structs - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/struct-7.log b/src/test/ref/struct-7.log index e8dc0ce1c..beb9ff6f4 100644 --- a/src/test/ref/struct-7.log +++ b/src/test/ref/struct-7.log @@ -223,9 +223,10 @@ Initial phi equivalence classes Complete equivalence classes INITIAL ASM +Target platform is c64basic // File Comments // Minimal struct - nesting structs 3 levels - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -303,7 +304,7 @@ Uplifting [] best 57 combination ASSEMBLER BEFORE OPTIMIZATION // File Comments // Minimal struct - nesting structs 3 levels - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -409,7 +410,7 @@ Score: 42 // File Comments // Minimal struct - nesting structs 3 levels - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/struct-8.log b/src/test/ref/struct-8.log index a0c03927a..aed11b2c3 100644 --- a/src/test/ref/struct-8.log +++ b/src/test/ref/struct-8.log @@ -173,9 +173,10 @@ Initial phi equivalence classes Complete equivalence classes INITIAL ASM +Target platform is c64basic // File Comments // Minimal struct - nested struct where a sub-struct is assigned out - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -236,7 +237,7 @@ Uplifting [] best 39 combination ASSEMBLER BEFORE OPTIMIZATION // File Comments // Minimal struct - nested struct where a sub-struct is assigned out - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -326,7 +327,7 @@ Score: 24 // File Comments // Minimal struct - nested struct where a sub-struct is assigned out - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/struct-9.log b/src/test/ref/struct-9.log index d983cc8a2..442405eca 100644 --- a/src/test/ref/struct-9.log +++ b/src/test/ref/struct-9.log @@ -177,9 +177,10 @@ Initial phi equivalence classes Complete equivalence classes INITIAL ASM +Target platform is c64basic // File Comments // Minimal struct - nesting structs - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -240,7 +241,7 @@ Uplifting [] best 39 combination ASSEMBLER BEFORE OPTIMIZATION // File Comments // Minimal struct - nesting structs - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -328,7 +329,7 @@ Score: 24 // File Comments // Minimal struct - nesting structs - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/struct-ptr-0.log b/src/test/ref/struct-ptr-0.log index 3c9e5b0cf..c16ef9660 100644 --- a/src/test/ref/struct-ptr-0.log +++ b/src/test/ref/struct-ptr-0.log @@ -268,9 +268,10 @@ Allocated zp ZP_BYTE:5 [ main::$0 ] Allocated zp ZP_BYTE:6 [ main::$7 ] INITIAL ASM +Target platform is c64basic // File Comments // Minimal struct - array of struct - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -412,7 +413,7 @@ Allocated (was zp ZP_BYTE:4) zp ZP_BYTE:2 [ main::$5 ] ASSEMBLER BEFORE OPTIMIZATION // File Comments // Minimal struct - array of struct - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -573,7 +574,7 @@ Score: 746 // File Comments // Minimal struct - array of struct - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/struct-ptr-1.log b/src/test/ref/struct-ptr-1.log index 8c4e404f6..6d6d2e318 100644 --- a/src/test/ref/struct-ptr-1.log +++ b/src/test/ref/struct-ptr-1.log @@ -321,9 +321,10 @@ Allocated zp ZP_BYTE:5 [ main::$8 ] Allocated zp ZP_BYTE:6 [ main::$17 ] INITIAL ASM +Target platform is c64basic // File Comments // Minimal struct - array of struct - near pointer math indexing - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -468,7 +469,7 @@ Uplifting [main] best 828 combination reg byte y [ main::$6 ] ASSEMBLER BEFORE OPTIMIZATION // File Comments // Minimal struct - array of struct - near pointer math indexing - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -629,7 +630,7 @@ Score: 666 // File Comments // Minimal struct - array of struct - near pointer math indexing - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/struct-ptr-10.log b/src/test/ref/struct-ptr-10.log index 81c799011..186c19f2f 100644 --- a/src/test/ref/struct-ptr-10.log +++ b/src/test/ref/struct-ptr-10.log @@ -298,9 +298,10 @@ Allocated zp ZP_WORD:19 [ main::$15 ] Allocated zp ZP_WORD:21 [ main::$16 ] INITIAL ASM +Target platform is c64basic // File Comments // Minimal struct - array with 256+ structs - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -545,7 +546,7 @@ Allocated (was zp ZP_WORD:19) zp ZP_WORD:16 [ main::$15 ] ASSEMBLER BEFORE OPTIMIZATION // File Comments // Minimal struct - array with 256+ structs - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -811,7 +812,7 @@ Score: 2566 // File Comments // Minimal struct - array with 256+ structs - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/struct-ptr-11.log b/src/test/ref/struct-ptr-11.log index 759fc3fdd..2b4a64304 100644 --- a/src/test/ref/struct-ptr-11.log +++ b/src/test/ref/struct-ptr-11.log @@ -306,9 +306,10 @@ Allocated zp ZP_BYTE:7 [ main::$19 ] Allocated zp ZP_BYTE:8 [ main::$7 ] INITIAL ASM +Target platform is c64basic // File Comments // Minimal struct - array of 3-byte structs (required *3) - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -490,7 +491,7 @@ Allocated (was zp ZP_BYTE:4) zp ZP_BYTE:2 [ main::$2 ] ASSEMBLER BEFORE OPTIMIZATION // File Comments // Minimal struct - array of 3-byte structs (required *3) - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -671,7 +672,7 @@ Score: 1071 // File Comments // Minimal struct - array of 3-byte structs (required *3) - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/struct-ptr-12-ref.log b/src/test/ref/struct-ptr-12-ref.log index 76690485e..a30f096a7 100644 --- a/src/test/ref/struct-ptr-12-ref.log +++ b/src/test/ref/struct-ptr-12-ref.log @@ -144,9 +144,10 @@ Allocated zp ZP_BYTE:4 [ main::$1 ] Allocated zp ZP_BYTE:5 [ main::$2 ] INITIAL ASM +Target platform is c64basic // File Comments // Reference file for Minimal struct - using address-of - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -213,7 +214,7 @@ Uplifting [] best 47 combination ASSEMBLER BEFORE OPTIMIZATION // File Comments // Reference file for Minimal struct - using address-of - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -301,7 +302,7 @@ Score: 32 // File Comments // Reference file for Minimal struct - using address-of - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/struct-ptr-12.log b/src/test/ref/struct-ptr-12.log index b89f6ab68..9369293f2 100644 --- a/src/test/ref/struct-ptr-12.log +++ b/src/test/ref/struct-ptr-12.log @@ -160,9 +160,10 @@ Allocated zp ZP_BYTE:2 [ main::p_x#0 ] Allocated zp ZP_BYTE:3 [ main::p_y#0 ] INITIAL ASM +Target platform is c64basic // File Comments // Minimal struct - using address-of - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -232,7 +233,7 @@ Uplifting [main] best 47 combination zp ZP_BYTE:3 [ main::p_y#0 ] ASSEMBLER BEFORE OPTIMIZATION // File Comments // Minimal struct - using address-of - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -324,7 +325,7 @@ Score: 32 // File Comments // Minimal struct - using address-of - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/struct-ptr-13.log b/src/test/ref/struct-ptr-13.log index 863eeb864..7825653bf 100644 --- a/src/test/ref/struct-ptr-13.log +++ b/src/test/ref/struct-ptr-13.log @@ -159,9 +159,10 @@ Initial phi equivalence classes Complete equivalence classes INITIAL ASM +Target platform is c64basic // File Comments // Minimal struct - modifying pointer to struct in memory using arrow operator - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -227,7 +228,7 @@ Uplifting [] best 61 combination ASSEMBLER BEFORE OPTIMIZATION // File Comments // Minimal struct - modifying pointer to struct in memory using arrow operator - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -314,7 +315,7 @@ Score: 46 // File Comments // Minimal struct - modifying pointer to struct in memory using arrow operator - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/struct-ptr-14.log b/src/test/ref/struct-ptr-14.log index 6e6b7da4a..76810aae1 100644 --- a/src/test/ref/struct-ptr-14.log +++ b/src/test/ref/struct-ptr-14.log @@ -224,9 +224,10 @@ Allocated zp ZP_BYTE:2 [ main::p_x#0 ] Allocated zp ZP_BYTE:3 [ main::p_y#0 ] INITIAL ASM +Target platform is c64basic // File Comments // Minimal struct - using address-of and passing it to a function - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -319,7 +320,7 @@ Uplifting [main] best 77 combination zp ZP_BYTE:3 [ main::p_y#0 ] ASSEMBLER BEFORE OPTIMIZATION // File Comments // Minimal struct - using address-of and passing it to a function - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -438,7 +439,7 @@ Score: 56 // File Comments // Minimal struct - using address-of and passing it to a function - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/struct-ptr-15.log b/src/test/ref/struct-ptr-15.log index 6d4801924..c28323a1b 100644 --- a/src/test/ref/struct-ptr-15.log +++ b/src/test/ref/struct-ptr-15.log @@ -428,9 +428,10 @@ Allocated zp ZP_BYTE:9 [ main::y#0 ] Allocated zp ZP_BYTE:10 [ main::idx#1 ] INITIAL ASM +Target platform is c64basic // File Comments // Minimal struct - using pointers to nested structs - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -620,7 +621,7 @@ Allocated (was zp ZP_WORD:7) zp ZP_WORD:6 [ main::$14 ] ASSEMBLER BEFORE OPTIMIZATION // File Comments // Minimal struct - using pointers to nested structs - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -811,7 +812,7 @@ Score: 1082 // File Comments // Minimal struct - using pointers to nested structs - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/struct-ptr-2.log b/src/test/ref/struct-ptr-2.log index c978817e4..b34f6d4cf 100644 --- a/src/test/ref/struct-ptr-2.log +++ b/src/test/ref/struct-ptr-2.log @@ -313,9 +313,10 @@ Allocated zp ZP_BYTE:8 [ main::$15 ] Allocated zp ZP_WORD:9 [ main::point_i1#0 ] INITIAL ASM +Target platform is c64basic // File Comments // Minimal struct - array of struct - far pointer math indexing - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -490,7 +491,7 @@ Allocated (was zp ZP_WORD:9) zp ZP_WORD:4 [ main::point_i1#0 ] ASSEMBLER BEFORE OPTIMIZATION // File Comments // Minimal struct - array of struct - far pointer math indexing - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -676,7 +677,7 @@ Score: 1046 // File Comments // Minimal struct - array of struct - far pointer math indexing - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/struct-ptr-3.log b/src/test/ref/struct-ptr-3.log index d2f3c9bd2..e2916dc09 100644 --- a/src/test/ref/struct-ptr-3.log +++ b/src/test/ref/struct-ptr-3.log @@ -178,9 +178,10 @@ Initial phi equivalence classes Complete equivalence classes INITIAL ASM +Target platform is c64basic // File Comments // Minimal struct - accessing pointer to struct in memory - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -242,7 +243,7 @@ Uplifting [] best 53 combination ASSEMBLER BEFORE OPTIMIZATION // File Comments // Minimal struct - accessing pointer to struct in memory - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -325,7 +326,7 @@ Score: 38 // File Comments // Minimal struct - accessing pointer to struct in memory - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/struct-ptr-4.log b/src/test/ref/struct-ptr-4.log index 1f2a9a0d8..80499ae33 100644 --- a/src/test/ref/struct-ptr-4.log +++ b/src/test/ref/struct-ptr-4.log @@ -300,9 +300,10 @@ Allocated zp ZP_BYTE:10 [ main::idx#1 ] Allocated zp ZP_BYTE:11 [ main::idx#2 ] INITIAL ASM +Target platform is c64basic // File Comments // Minimal struct - accessing pointer to struct in memory in a loop - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -507,7 +508,7 @@ Allocated (was zp ZP_BYTE:8) zp ZP_BYTE:6 [ main::i1#2 main::i1#1 ] ASSEMBLER BEFORE OPTIMIZATION // File Comments // Minimal struct - accessing pointer to struct in memory in a loop - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -720,7 +721,7 @@ Score: 1456 // File Comments // Minimal struct - accessing pointer to struct in memory in a loop - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/struct-ptr-5.log b/src/test/ref/struct-ptr-5.log index cceb51942..3fc965c9c 100644 --- a/src/test/ref/struct-ptr-5.log +++ b/src/test/ref/struct-ptr-5.log @@ -362,9 +362,10 @@ Allocated zp ZP_BYTE:9 [ main::$4 ] Allocated zp ZP_BYTE:10 [ main::idx#3 ] INITIAL ASM +Target platform is c64basic // File Comments // Minimal struct - simple linked list implemented using pointers - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -575,7 +576,7 @@ Uplifting [main] best 1277 combination reg byte x [ main::idx#2 ] ASSEMBLER BEFORE OPTIMIZATION // File Comments // Minimal struct - simple linked list implemented using pointers - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -771,7 +772,7 @@ Score: 1203 // File Comments // Minimal struct - simple linked list implemented using pointers - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/struct-ptr-6.log b/src/test/ref/struct-ptr-6.log index ed6013dde..163480d9e 100644 --- a/src/test/ref/struct-ptr-6.log +++ b/src/test/ref/struct-ptr-6.log @@ -178,9 +178,10 @@ Initial phi equivalence classes Complete equivalence classes INITIAL ASM +Target platform is c64basic // File Comments // Minimal struct - accessing pointer to struct in memory using arrow operator - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -242,7 +243,7 @@ Uplifting [] best 53 combination ASSEMBLER BEFORE OPTIMIZATION // File Comments // Minimal struct - accessing pointer to struct in memory using arrow operator - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -325,7 +326,7 @@ Score: 38 // File Comments // Minimal struct - accessing pointer to struct in memory using arrow operator - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/struct-ptr-7.log b/src/test/ref/struct-ptr-7.log index ba11603c3..4ee452325 100644 --- a/src/test/ref/struct-ptr-7.log +++ b/src/test/ref/struct-ptr-7.log @@ -299,9 +299,10 @@ Initial phi equivalence classes Complete equivalence classes INITIAL ASM +Target platform is c64basic // File Comments // Minimal struct - direct (constant) array access - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -380,7 +381,7 @@ Uplifting [] best 77 combination ASSEMBLER BEFORE OPTIMIZATION // File Comments // Minimal struct - direct (constant) array access - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -477,7 +478,7 @@ Score: 62 // File Comments // Minimal struct - direct (constant) array access - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/struct-ptr-8.log b/src/test/ref/struct-ptr-8.log index ec5843714..5adca8d9b 100644 --- a/src/test/ref/struct-ptr-8.log +++ b/src/test/ref/struct-ptr-8.log @@ -311,9 +311,10 @@ Allocated zp ZP_BYTE:9 [ main::idx#1 ] Allocated zp ZP_BYTE:10 [ main::idx#2 ] INITIAL ASM +Target platform is c64basic // File Comments // Minimal struct - variable array access - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -508,7 +509,7 @@ Uplifting [main] best 1238 combination reg byte y [ main::$7 ] ASSEMBLER BEFORE OPTIMIZATION // File Comments // Minimal struct - variable array access - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -696,7 +697,7 @@ Score: 1076 // File Comments // Minimal struct - variable array access - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/struct-ptr-9.log b/src/test/ref/struct-ptr-9.log index 601f090fb..138492fe7 100644 --- a/src/test/ref/struct-ptr-9.log +++ b/src/test/ref/struct-ptr-9.log @@ -253,9 +253,10 @@ Allocated zp ZP_BYTE:4 [ main::$2 ] Allocated zp ZP_BYTE:5 [ main::$3 ] INITIAL ASM +Target platform is c64basic // File Comments // Minimal struct - array access with struct value copying (and initializing) - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -387,7 +388,7 @@ Uplifting [] best 788 combination ASSEMBLER BEFORE OPTIMIZATION // File Comments // Minimal struct - array access with struct value copying (and initializing) - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -538,7 +539,7 @@ Score: 626 // File Comments // Minimal struct - array access with struct value copying (and initializing) - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/subexpr-optimize-0.log b/src/test/ref/subexpr-optimize-0.log index b00834f2c..c9bf3873a 100644 --- a/src/test/ref/subexpr-optimize-0.log +++ b/src/test/ref/subexpr-optimize-0.log @@ -167,10 +167,11 @@ Allocated zp ZP_BYTE:5 [ main::$1 ] Allocated zp ZP_WORD:6 [ main::screen#1 ] INITIAL ASM +Target platform is c64basic // File Comments // Tests optimization of identical sub-expressions // The two examples of i*2 is detected as identical leading to optimized ASM where *2 is only calculated once - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -294,7 +295,7 @@ ASSEMBLER BEFORE OPTIMIZATION // File Comments // Tests optimization of identical sub-expressions // The two examples of i*2 is detected as identical leading to optimized ASM where *2 is only calculated once - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -425,7 +426,7 @@ Score: 701 // File Comments // Tests optimization of identical sub-expressions // The two examples of i*2 is detected as identical leading to optimized ASM where *2 is only calculated once - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/subexpr-optimize-1.log b/src/test/ref/subexpr-optimize-1.log index d6bf5c558..113bcdc4a 100644 --- a/src/test/ref/subexpr-optimize-1.log +++ b/src/test/ref/subexpr-optimize-1.log @@ -211,9 +211,10 @@ Complete equivalence classes Allocated zp ZP_BYTE:2 [ main::i#2 main::i#1 ] INITIAL ASM +Target platform is c64basic // File Comments // A sub-expression that should not be optimized (+1 to a pointer) - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -302,7 +303,7 @@ Uplifting [] best 573 combination ASSEMBLER BEFORE OPTIMIZATION // File Comments // A sub-expression that should not be optimized (+1 to a pointer) - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -408,7 +409,7 @@ Score: 471 // File Comments // A sub-expression that should not be optimized (+1 to a pointer) - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/subexpr-optimize-2.log b/src/test/ref/subexpr-optimize-2.log index f3ca9ca33..efd8cd20e 100644 --- a/src/test/ref/subexpr-optimize-2.log +++ b/src/test/ref/subexpr-optimize-2.log @@ -193,9 +193,10 @@ Allocated zp ZP_BYTE:9 [ main::$2 ] Allocated zp ZP_BYTE:10 [ main::$3 ] INITIAL ASM +Target platform is c64basic // File Comments // Tests optimization of identical sub-expressions - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -335,7 +336,7 @@ Coalescing zero page register with common assignment [ zp ZP_WORD:3 [ main::scre ASSEMBLER BEFORE OPTIMIZATION // File Comments // Tests optimization of identical sub-expressions - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -477,7 +478,7 @@ Score: 871 // File Comments // Tests optimization of identical sub-expressions - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/subexpr-optimize-3.log b/src/test/ref/subexpr-optimize-3.log index 2e13a7c34..af0043d19 100644 --- a/src/test/ref/subexpr-optimize-3.log +++ b/src/test/ref/subexpr-optimize-3.log @@ -209,9 +209,10 @@ Allocated zp ZP_BYTE:10 [ main::$4 ] Allocated zp ZP_BYTE:11 [ main::$5 ] INITIAL ASM +Target platform is c64basic // File Comments // Tests optimization of identical sub-expressions - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -367,7 +368,7 @@ Allocated (was zp ZP_BYTE:5) zp ZP_BYTE:4 [ main::$3 ] ASSEMBLER BEFORE OPTIMIZATION // File Comments // Tests optimization of identical sub-expressions - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -515,7 +516,7 @@ Score: 891 // File Comments // Tests optimization of identical sub-expressions - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/subexpr-optimize-4.log b/src/test/ref/subexpr-optimize-4.log index 0d607e2b4..0e357217b 100644 --- a/src/test/ref/subexpr-optimize-4.log +++ b/src/test/ref/subexpr-optimize-4.log @@ -336,9 +336,10 @@ Allocated zp ZP_WORD:8 [ main::screen#1 ] Allocated zp ZP_BYTE:10 [ main::$6 ] INITIAL ASM +Target platform is c64basic // File Comments // Tests optimization of identical sub-expressions - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -534,7 +535,7 @@ Allocated (was zp ZP_WORD:3) zp ZP_WORD:2 [ main::screen#3 main::screen#2 main:: ASSEMBLER BEFORE OPTIMIZATION // File Comments // Tests optimization of identical sub-expressions - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -737,7 +738,7 @@ Score: 1071 // File Comments // Tests optimization of identical sub-expressions - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/summin.log b/src/test/ref/summin.log index 8fe17d087..e666a4856 100644 --- a/src/test/ref/summin.log +++ b/src/test/ref/summin.log @@ -297,8 +297,9 @@ Allocated zp ZP_BYTE:11 [ main::s4#0 ] Allocated zp ZP_BYTE:12 [ sum::return#3 ] INITIAL ASM +Target platform is c64basic // File Comments - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -472,7 +473,7 @@ Allocated (was zp ZP_BYTE:9) zp ZP_BYTE:3 [ main::s3#0 ] ASSEMBLER BEFORE OPTIMIZATION // File Comments - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -649,7 +650,7 @@ FINAL ASSEMBLER Score: 74 // File Comments - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/ternary-1.log b/src/test/ref/ternary-1.log index e40a8eed4..f9e3a9eb3 100644 --- a/src/test/ref/ternary-1.log +++ b/src/test/ref/ternary-1.log @@ -173,9 +173,10 @@ Allocated zp ZP_BYTE:2 [ main::i#2 main::i#1 ] Allocated zp ZP_BYTE:3 [ main::$3 ] INITIAL ASM +Target platform is c64basic // File Comments // Tests the ternary operator - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -268,7 +269,7 @@ Uplifting [] best 418 combination ASSEMBLER BEFORE OPTIMIZATION // File Comments // Tests the ternary operator - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -394,7 +395,7 @@ Score: 256 // File Comments // Tests the ternary operator - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/ternary-2.log b/src/test/ref/ternary-2.log index e9cd14395..9e755a036 100644 --- a/src/test/ref/ternary-2.log +++ b/src/test/ref/ternary-2.log @@ -156,9 +156,10 @@ Initial phi equivalence classes Complete equivalence classes INITIAL ASM +Target platform is c64basic // File Comments // Tests the ternary operator - when the condition is constant - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -216,7 +217,7 @@ Uplifting [] best 66 combination ASSEMBLER BEFORE OPTIMIZATION // File Comments // Tests the ternary operator - when the condition is constant - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -301,7 +302,7 @@ Score: 18 // File Comments // Tests the ternary operator - when the condition is constant - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/ternary-3.log b/src/test/ref/ternary-3.log index d8d7cda4c..90673c5e4 100644 --- a/src/test/ref/ternary-3.log +++ b/src/test/ref/ternary-3.log @@ -383,9 +383,10 @@ Allocated zp ZP_BYTE:12 [ m2::return#1 ] Allocated zp ZP_BOOL:13 [ cond::return#1 ] INITIAL ASM +Target platform is c64basic // File Comments // Tests the ternary operator - when the condition is constant - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -587,7 +588,7 @@ Uplifting [] best 695 combination ASSEMBLER BEFORE OPTIMIZATION // File Comments // Tests the ternary operator - when the condition is constant - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -823,7 +824,7 @@ Score: 434 // File Comments // Tests the ternary operator - when the condition is constant - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/ternary-inference.log b/src/test/ref/ternary-inference.log index 6f0c1d7cc..1853aeaac 100644 --- a/src/test/ref/ternary-inference.log +++ b/src/test/ref/ternary-inference.log @@ -194,9 +194,10 @@ Allocated zp ZP_BYTE:3 [ main::$3 ] Allocated zp ZP_BYTE:4 [ main::$4 ] INITIAL ASM +Target platform is c64basic // File Comments // Type inference into the ternary operator - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -299,7 +300,7 @@ Uplifting [] best 498 combination ASSEMBLER BEFORE OPTIMIZATION // File Comments // Type inference into the ternary operator - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -431,7 +432,7 @@ Score: 336 // File Comments // Type inference into the ternary operator - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/test-comments-block.log b/src/test/ref/test-comments-block.log index 004ae39bd..e759a65e2 100644 --- a/src/test/ref/test-comments-block.log +++ b/src/test/ref/test-comments-block.log @@ -240,11 +240,12 @@ Allocated zp ZP_BYTE:6 [ main::$0 ] Allocated zp ZP_BYTE:7 [ sum::return#1 ] INITIAL ASM +Target platform is c64basic // File Comments /* Tests that block comments are compiled correctly * Has a bunch of comments that will be moved into the generated ASM */ - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -372,7 +373,7 @@ ASSEMBLER BEFORE OPTIMIZATION /* Tests that block comments are compiled correctly * Has a bunch of comments that will be moved into the generated ASM */ - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -532,7 +533,7 @@ Score: 271 /* Tests that block comments are compiled correctly * Has a bunch of comments that will be moved into the generated ASM */ - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/test-comments-loop.log b/src/test/ref/test-comments-loop.log index 5c89bc4ac..02ab7d967 100644 --- a/src/test/ref/test-comments-loop.log +++ b/src/test/ref/test-comments-loop.log @@ -117,8 +117,9 @@ Complete equivalence classes Allocated zp ZP_BYTE:2 [ main::b#2 main::b#1 ] INITIAL ASM +Target platform is c64basic // File Comments - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -189,7 +190,7 @@ Uplifting [] best 263 combination ASSEMBLER BEFORE OPTIMIZATION // File Comments - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -286,7 +287,7 @@ FINAL ASSEMBLER Score: 161 // File Comments - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/test-comments-single.log b/src/test/ref/test-comments-single.log index c4791de99..1f35e370e 100644 --- a/src/test/ref/test-comments-single.log +++ b/src/test/ref/test-comments-single.log @@ -240,10 +240,11 @@ Allocated zp ZP_BYTE:6 [ main::$0 ] Allocated zp ZP_BYTE:7 [ sum::return#1 ] INITIAL ASM +Target platform is c64basic // File Comments // Tests that single-line comments are compiled correctly // Has a bunch of comments that will be moved into the generated ASM - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -369,7 +370,7 @@ ASSEMBLER BEFORE OPTIMIZATION // File Comments // Tests that single-line comments are compiled correctly // Has a bunch of comments that will be moved into the generated ASM - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -527,7 +528,7 @@ Score: 271 // File Comments // Tests that single-line comments are compiled correctly // Has a bunch of comments that will be moved into the generated ASM - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/test-comments-usage.log b/src/test/ref/test-comments-usage.log index da05a567e..0f80ec024 100644 --- a/src/test/ref/test-comments-usage.log +++ b/src/test/ref/test-comments-usage.log @@ -72,9 +72,10 @@ Initial phi equivalence classes Complete equivalence classes INITIAL ASM +Target platform is c64basic // File Comments // Tests that single-line comments are only included once in the output - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -121,7 +122,7 @@ Uplifting [] best 27 combination ASSEMBLER BEFORE OPTIMIZATION // File Comments // Tests that single-line comments are only included once in the output - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -189,7 +190,7 @@ Score: 12 // File Comments // Tests that single-line comments are only included once in the output - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/test-comparisons-sword.log b/src/test/ref/test-comparisons-sword.log index 6e582d474..4362e6d37 100644 --- a/src/test/ref/test-comparisons-sword.log +++ b/src/test/ref/test-comparisons-sword.log @@ -2368,9 +2368,10 @@ Allocated zp ZP_BYTE:34 [ print_byte::$0 ] Allocated zp ZP_BYTE:35 [ print_byte::$2 ] INITIAL ASM +Target platform is c64basic // File Comments // Test signed word comparisons - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -3450,7 +3451,7 @@ Allocated (was zp ZP_WORD:25) zp ZP_WORD:19 [ main::w2#0 compare::w2#0 ] ASSEMBLER BEFORE OPTIMIZATION // File Comments // Test signed word comparisons - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -4756,7 +4757,7 @@ Score: 966668 // File Comments // Test signed word comparisons - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/test-comparisons-word.log b/src/test/ref/test-comparisons-word.log index 8eb9797b0..459f16d17 100644 --- a/src/test/ref/test-comparisons-word.log +++ b/src/test/ref/test-comparisons-word.log @@ -2058,8 +2058,9 @@ Allocated zp ZP_BYTE:32 [ print_byte::$0 ] Allocated zp ZP_BYTE:33 [ print_byte::$2 ] INITIAL ASM +Target platform is c64basic // File Comments - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -3017,7 +3018,7 @@ Allocated (was zp ZP_WORD:25) zp ZP_WORD:19 [ main::w2#0 compare::w2#0 ] ASSEMBLER BEFORE OPTIMIZATION // File Comments - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -4167,7 +4168,7 @@ FINAL ASSEMBLER Score: 966589 // File Comments - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/test-comparisons.log b/src/test/ref/test-comparisons.log index c287891ef..7a88b2228 100644 --- a/src/test/ref/test-comparisons.log +++ b/src/test/ref/test-comparisons.log @@ -3383,8 +3383,9 @@ Allocated zp ZP_BYTE:40 [ print_byte::$0 ] Allocated zp ZP_BYTE:41 [ print_byte::$2 ] INITIAL ASM +Target platform is c64basic // File Comments - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -5085,7 +5086,7 @@ Allocated (was zp ZP_BYTE:39) zp ZP_BYTE:14 [ main::b#0 ] ASSEMBLER BEFORE OPTIMIZATION // File Comments - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -6932,7 +6933,7 @@ FINAL ASSEMBLER Score: 15733 // File Comments - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/test-division.log b/src/test/ref/test-division.log index 70fa68261..8a1e39242 100644 --- a/src/test/ref/test-division.log +++ b/src/test/ref/test-division.log @@ -5058,9 +5058,10 @@ Allocated zp ZP_BYTE:122 [ div8u::return#3 ] Allocated zp ZP_BYTE:123 [ test_8u::res#0 ] INITIAL ASM +Target platform is c64basic // File Comments // Test the binary division library - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -7448,7 +7449,7 @@ Allocated (was zp ZP_BYTE:123) zp ZP_BYTE:34 [ test_8u::res#0 ] ASSEMBLER BEFORE OPTIMIZATION // File Comments // Test the binary division library - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -9943,7 +9944,7 @@ Score: 33179 // File Comments // Test the binary division library - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/test-interrupt-notype.log b/src/test/ref/test-interrupt-notype.log index 0a3a3ec25..367093b3e 100644 --- a/src/test/ref/test-interrupt-notype.log +++ b/src/test/ref/test-interrupt-notype.log @@ -132,8 +132,9 @@ Initial phi equivalence classes Complete equivalence classes INITIAL ASM +Target platform is c64basic // File Comments - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -199,7 +200,7 @@ Uplifting [] best 133 combination ASSEMBLER BEFORE OPTIMIZATION // File Comments - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -290,7 +291,7 @@ FINAL ASSEMBLER Score: 115 // File Comments - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/test-interrupt-volatile-write.log b/src/test/ref/test-interrupt-volatile-write.log index ea56a62fd..139a896cc 100644 --- a/src/test/ref/test-interrupt-volatile-write.log +++ b/src/test/ref/test-interrupt-volatile-write.log @@ -252,10 +252,11 @@ Complete equivalence classes Allocated zp ZP_BYTE:2 [ col#14 col#0 col#1 col#12 col#3 col#4 ] INITIAL ASM +Target platform is c64basic // File Comments // Tests that volatile variables can be both read & written inside & outside interrupts // Currently fails because the modification is optimized away - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -373,7 +374,7 @@ ASSEMBLER BEFORE OPTIMIZATION // File Comments // Tests that volatile variables can be both read & written inside & outside interrupts // Currently fails because the modification is optimized away - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -533,7 +534,7 @@ Score: 895 // File Comments // Tests that volatile variables can be both read & written inside & outside interrupts // Currently fails because the modification is optimized away - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" diff --git a/src/test/ref/test-interrupt-volatile.log b/src/test/ref/test-interrupt-volatile.log index c7136b18a..b4b8e63a7 100644 --- a/src/test/ref/test-interrupt-volatile.log +++ b/src/test/ref/test-interrupt-volatile.log @@ -168,8 +168,9 @@ Complete equivalence classes Allocated zp ZP_BYTE:2 [ col#2 col#0 col#1 ] INITIAL ASM +Target platform is c64basic // File Comments - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -251,7 +252,7 @@ Uplifting [] best 186 combination zp ZP_BYTE:2 [ col#2 col#0 col#1 ] ASSEMBLER BEFORE OPTIMIZATION // File Comments - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -359,7 +360,7 @@ FINAL ASSEMBLER Score: 123 // File Comments - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" diff --git a/src/test/ref/test-interrupt.log b/src/test/ref/test-interrupt.log index 0a3a3ec25..367093b3e 100644 --- a/src/test/ref/test-interrupt.log +++ b/src/test/ref/test-interrupt.log @@ -132,8 +132,9 @@ Initial phi equivalence classes Complete equivalence classes INITIAL ASM +Target platform is c64basic // File Comments - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -199,7 +200,7 @@ Uplifting [] best 133 combination ASSEMBLER BEFORE OPTIMIZATION // File Comments - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -290,7 +291,7 @@ FINAL ASSEMBLER Score: 115 // File Comments - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/test-kasm-pc.log b/src/test/ref/test-kasm-pc.log index 5c6a0cc66..701bf3900 100644 --- a/src/test/ref/test-kasm-pc.log +++ b/src/test/ref/test-kasm-pc.log @@ -131,9 +131,10 @@ Complete equivalence classes Allocated zp ZP_BYTE:2 [ main::i#2 main::i#1 ] INITIAL ASM +Target platform is c64basic // File Comments // Test inline KickAssembler code with PC location specification - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -201,7 +202,7 @@ Uplifting [] best 2814 combination ASSEMBLER BEFORE OPTIMIZATION // File Comments // Test inline KickAssembler code with PC location specification - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -295,7 +296,7 @@ Score: 2715 // File Comments // Test inline KickAssembler code with PC location specification - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/test-kasm.log b/src/test/ref/test-kasm.log index 61366495c..c276eb8d8 100644 --- a/src/test/ref/test-kasm.log +++ b/src/test/ref/test-kasm.log @@ -85,9 +85,10 @@ Initial phi equivalence classes Complete equivalence classes INITIAL ASM +Target platform is c64basic // File Comments // Test inline KickAssembler code - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -133,7 +134,7 @@ Uplifting [] best 2915 combination ASSEMBLER BEFORE OPTIMIZATION // File Comments // Test inline KickAssembler code - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -198,7 +199,7 @@ Score: 2846 // File Comments // Test inline KickAssembler code - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/test-keyboard-space.log b/src/test/ref/test-keyboard-space.log index af6b54cc6..991b042a4 100644 --- a/src/test/ref/test-keyboard-space.log +++ b/src/test/ref/test-keyboard-space.log @@ -457,9 +457,10 @@ Allocated zp ZP_BYTE:6 [ keyboard_key_pressed::return#0 ] Allocated zp ZP_BYTE:7 [ keyboard_matrix_read::return#0 ] INITIAL ASM +Target platform is c64basic // File Comments // Test keyboard input - test the space bar - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -649,7 +650,7 @@ Uplifting [] best 1258 combination ASSEMBLER BEFORE OPTIMIZATION // File Comments // Test keyboard input - test the space bar - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -892,7 +893,7 @@ Score: 1141 // File Comments // Test keyboard input - test the space bar - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/test-keyboard.log b/src/test/ref/test-keyboard.log index 6daabf69e..0f34246be 100644 --- a/src/test/ref/test-keyboard.log +++ b/src/test/ref/test-keyboard.log @@ -1452,9 +1452,10 @@ Allocated zp ZP_BYTE:27 [ keyboard_matrix_read::return#0 ] Allocated zp ZP_BYTE:28 [ keyboard_get_keycode::return#0 ] INITIAL ASM +Target platform is c64basic // File Comments // Test keyboard input - in the keyboard matrix and mapping screen codes to key codes - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -2022,7 +2023,7 @@ Allocated (was zp ZP_BYTE:22) zp ZP_BYTE:8 [ keyboard_key_pressed::colidx#0 ] ASSEMBLER BEFORE OPTIMIZATION // File Comments // Test keyboard input - in the keyboard matrix and mapping screen codes to key codes - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -2760,7 +2761,7 @@ Score: 56821 // File Comments // Test keyboard input - in the keyboard matrix and mapping screen codes to key codes - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/test-lohiconst.log b/src/test/ref/test-lohiconst.log index cfa9a5716..ca355a7b8 100644 --- a/src/test/ref/test-lohiconst.log +++ b/src/test/ref/test-lohiconst.log @@ -153,9 +153,10 @@ Initial phi equivalence classes Complete equivalence classes INITIAL ASM +Target platform is c64basic // File Comments // PI in u[4.28] format - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -214,7 +215,7 @@ Uplifting [] best 45 combination ASSEMBLER BEFORE OPTIMIZATION // File Comments // PI in u[4.28] format - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -293,7 +294,7 @@ Score: 30 // File Comments // PI in u[4.28] format - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/test-lowhigh.log b/src/test/ref/test-lowhigh.log index 33c1249bd..ea3f25ceb 100644 --- a/src/test/ref/test-lowhigh.log +++ b/src/test/ref/test-lowhigh.log @@ -1317,8 +1317,9 @@ Allocated zp ZP_BYTE:44 [ print_byte::$0 ] Allocated zp ZP_BYTE:45 [ print_byte::$2 ] INITIAL ASM +Target platform is c64basic // File Comments - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -2013,7 +2014,7 @@ Allocated (was zp ZP_WORD:42) zp ZP_WORD:28 [ main::$27 ] ASSEMBLER BEFORE OPTIMIZATION // File Comments - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -2801,7 +2802,7 @@ FINAL ASSEMBLER Score: 7444 // File Comments - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/test-multiply-16bit.log b/src/test/ref/test-multiply-16bit.log index 7708083ae..d2fe78358 100644 --- a/src/test/ref/test-multiply-16bit.log +++ b/src/test/ref/test-multiply-16bit.log @@ -5163,9 +5163,10 @@ Allocated zp ZP_BYTE:228 [ mulf_init::$10 ] Allocated zp ZP_BYTE:229 [ mulf_init::$11 ] INITIAL ASM +Target platform is c64basic // File Comments // Test the fast multiplication library - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -8229,7 +8230,7 @@ Allocated (was zp ZP_WORD:174) zp ZP_WORD:64 [ mul16s::$13 mul16s::$17 ] ASSEMBLER BEFORE OPTIMIZATION // File Comments // Test the fast multiplication library - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -11357,7 +11358,7 @@ Score: 440270 // File Comments // Test the fast multiplication library - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/test-multiply-8bit.log b/src/test/ref/test-multiply-8bit.log index fae9f4792..9662b60fb 100644 --- a/src/test/ref/test-multiply-8bit.log +++ b/src/test/ref/test-multiply-8bit.log @@ -5341,9 +5341,10 @@ Allocated zp ZP_BYTE:134 [ mulf_init::$10 ] Allocated zp ZP_BYTE:135 [ mulf_init::$11 ] INITIAL ASM +Target platform is c64basic // File Comments // Test the fast multiplication library - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -8145,7 +8146,7 @@ Allocated (was zp ZP_BYTE:94) zp ZP_BYTE:36 [ mulf8s_prepared::b#0 ] ASSEMBLER BEFORE OPTIMIZATION // File Comments // Test the fast multiplication library - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -11235,7 +11236,7 @@ Score: 229409 // File Comments // Test the fast multiplication library - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/test-scroll-up.log b/src/test/ref/test-scroll-up.log index ae6891da6..9a58e0ef4 100644 --- a/src/test/ref/test-scroll-up.log +++ b/src/test/ref/test-scroll-up.log @@ -575,9 +575,10 @@ Allocated zp ZP_WORD:24 [ scrollup1::$5 ] Allocated zp ZP_WORD:26 [ scrollup1::$6 ] INITIAL ASM +Target platform is c64basic // File Comments // Tests different ways of scrolling up the screen - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -998,7 +999,7 @@ Allocated (was zp ZP_WORD:22) zp ZP_WORD:19 [ scrollup1::$2 scrollup1::$5 ] ASSEMBLER BEFORE OPTIMIZATION // File Comments // Tests different ways of scrolling up the screen - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -1490,7 +1491,7 @@ Score: 22547 // File Comments // Tests different ways of scrolling up the screen - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/test-signed-word-minus-byte.log b/src/test/ref/test-signed-word-minus-byte.log index bd1760292..d7a7586ba 100644 --- a/src/test/ref/test-signed-word-minus-byte.log +++ b/src/test/ref/test-signed-word-minus-byte.log @@ -1064,9 +1064,10 @@ Allocated zp ZP_BYTE:19 [ print_byte::$0 ] Allocated zp ZP_BYTE:20 [ print_byte::$2 ] INITIAL ASM +Target platform is c64basic // File Comments // Tests subtracting bytes from signed words - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -1556,7 +1557,7 @@ Allocated (was zp ZP_WORD:15) zp ZP_WORD:13 [ main::w2#0 ] ASSEMBLER BEFORE OPTIMIZATION // File Comments // Tests subtracting bytes from signed words - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -2135,7 +2136,7 @@ Score: 5528 // File Comments // Tests subtracting bytes from signed words - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/test-word-size-arrays.log b/src/test/ref/test-word-size-arrays.log index 6e337e3a6..f5d444494 100644 --- a/src/test/ref/test-word-size-arrays.log +++ b/src/test/ref/test-word-size-arrays.log @@ -279,8 +279,9 @@ Allocated zp ZP_WORD:14 [ main::$5 ] Allocated zp ZP_WORD:16 [ main::$9 ] INITIAL ASM +Target platform is c64basic // File Comments - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -499,7 +500,7 @@ Allocated (was zp ZP_WORD:14) zp ZP_WORD:8 [ main::$5 main::$9 ] ASSEMBLER BEFORE OPTIMIZATION // File Comments - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -743,7 +744,7 @@ FINAL ASSEMBLER Score: 10381 // File Comments - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/tetris-npe.log b/src/test/ref/tetris-npe.log index 7800f2ea7..f2493e372 100644 --- a/src/test/ref/tetris-npe.log +++ b/src/test/ref/tetris-npe.log @@ -251,9 +251,10 @@ Allocated zp ZP_BYTE:2 [ counter#3 counter#1 ] Allocated zp ZP_BYTE:3 [ ypos#2 ypos#1 ] INITIAL ASM +Target platform is c64basic // File Comments // NullPointerException using current_movedown_rate in the main loop - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -349,7 +350,7 @@ Uplifting [main] best 14052 combination ASSEMBLER BEFORE OPTIMIZATION // File Comments // NullPointerException using current_movedown_rate in the main loop - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -483,7 +484,7 @@ Score: 10110 // File Comments // NullPointerException using current_movedown_rate in the main loop - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/textbox.log b/src/test/ref/textbox.log index 522d1847c..9219fd60e 100644 --- a/src/test/ref/textbox.log +++ b/src/test/ref/textbox.log @@ -1904,9 +1904,10 @@ Allocated zp ZP_WORD:89 [ draw_window::$24 ] Allocated zp ZP_WORD:91 [ draw_window::$35 ] INITIAL ASM +Target platform is c64basic // File Comments /* Textbox routine with word wrap for KickC by Scan/Desire */ - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -3233,7 +3234,7 @@ Allocated (was zp ZP_WORD:89) zp ZP_WORD:36 [ draw_window::$24 draw_window::$35 ASSEMBLER BEFORE OPTIMIZATION // File Comments /* Textbox routine with word wrap for KickC by Scan/Desire */ - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -4424,7 +4425,7 @@ Score: 149329 // File Comments /* Textbox routine with word wrap for KickC by Scan/Desire */ - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/tod018-problem.log b/src/test/ref/tod018-problem.log index 02be9500d..5de92cd8c 100644 --- a/src/test/ref/tod018-problem.log +++ b/src/test/ref/tod018-problem.log @@ -116,9 +116,10 @@ Initial phi equivalence classes Complete equivalence classes INITIAL ASM +Target platform is c64basic // File Comments // Tests a problem with tod018 not calculating types correctly - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -166,7 +167,7 @@ Uplifting [] best 27 combination ASSEMBLER BEFORE OPTIMIZATION // File Comments // Tests a problem with tod018 not calculating types correctly - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -239,7 +240,7 @@ Score: 12 // File Comments // Tests a problem with tod018 not calculating types correctly - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/travis1.log b/src/test/ref/travis1.log index 641144282..4a4eec416 100644 --- a/src/test/ref/travis1.log +++ b/src/test/ref/travis1.log @@ -775,9 +775,10 @@ Allocated zp ZP_BOOL:13 [ main::$0 ] Allocated zp ZP_BOOL:14 [ game_ready::return#1 ] INITIAL ASM +Target platform is c64basic // File Comments // Adding a missing word-fragment for Travis Fisher - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -1108,7 +1109,7 @@ Allocated (was zp ZP_WORD:9) zp ZP_WORD:7 [ print_char_cursor#17 print_char_curs ASSEMBLER BEFORE OPTIMIZATION // File Comments // Adding a missing word-fragment for Travis Fisher - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -1509,7 +1510,7 @@ Score: 9940 // File Comments // Adding a missing word-fragment for Travis Fisher - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/true-inline-words.log b/src/test/ref/true-inline-words.log index 4cf21c759..2acc01378 100644 --- a/src/test/ref/true-inline-words.log +++ b/src/test/ref/true-inline-words.log @@ -226,8 +226,9 @@ Initial phi equivalence classes Complete equivalence classes INITIAL ASM +Target platform is c64basic // File Comments - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -301,7 +302,7 @@ Uplifting [] best 55 combination ASSEMBLER BEFORE OPTIMIZATION // File Comments - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -411,7 +412,7 @@ FINAL ASSEMBLER Score: 40 // File Comments - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/type-inference.log b/src/test/ref/type-inference.log index c8645de8e..47e8c18a5 100644 --- a/src/test/ref/type-inference.log +++ b/src/test/ref/type-inference.log @@ -144,9 +144,10 @@ Allocated zp ZP_BYTE:3 [ main::$0 ] Allocated zp ZP_BYTE:4 [ main::$2 ] INITIAL ASM +Target platform is c64basic // File Comments // Test inference of integer types in expressions - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -237,7 +238,7 @@ Uplifting [main] best 473 combination zp ZP_BYTE:2 [ main::b#2 main::b#1 ] ASSEMBLER BEFORE OPTIMIZATION // File Comments // Test inference of integer types in expressions - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -348,7 +349,7 @@ Score: 371 // File Comments // Test inference of integer types in expressions - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/type-mix.log b/src/test/ref/type-mix.log index 7cac24e75..5810dedc0 100644 --- a/src/test/ref/type-mix.log +++ b/src/test/ref/type-mix.log @@ -159,9 +159,10 @@ Allocated zp ZP_BYTE:4 [ main::i#2 main::i#1 ] Allocated zp ZP_BYTE:5 [ main::$1 ] INITIAL ASM +Target platform is c64basic // File Comments // Tests that mixing types can synthesize a fragment correctly - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -255,7 +256,7 @@ Uplifting [] best 553 combination ASSEMBLER BEFORE OPTIMIZATION // File Comments // Tests that mixing types can synthesize a fragment correctly - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -377,7 +378,7 @@ Score: 431 // File Comments // Tests that mixing types can synthesize a fragment correctly - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/type-signed.log b/src/test/ref/type-signed.log index 1cc710aba..4038df9c7 100644 --- a/src/test/ref/type-signed.log +++ b/src/test/ref/type-signed.log @@ -840,9 +840,10 @@ Allocated zp ZP_BYTE:17 [ print_byte::$0 ] Allocated zp ZP_BYTE:18 [ print_byte::$2 ] INITIAL ASM +Target platform is c64basic // File Comments // Tests the special "signed" / "unsigned" without a simple type name - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -1264,7 +1265,7 @@ Allocated (was zp ZP_WORD:13) zp ZP_WORD:11 [ print_char_cursor#33 print_char_cu ASSEMBLER BEFORE OPTIMIZATION // File Comments // Tests the special "signed" / "unsigned" without a simple type name - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -1755,7 +1756,7 @@ Score: 5183 // File Comments // Tests the special "signed" / "unsigned" without a simple type name - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/typedef-0.log b/src/test/ref/typedef-0.log index c46cb171f..bbdd91afe 100644 --- a/src/test/ref/typedef-0.log +++ b/src/test/ref/typedef-0.log @@ -79,8 +79,9 @@ Initial phi equivalence classes Complete equivalence classes INITIAL ASM +Target platform is c64basic // File Comments - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -126,7 +127,7 @@ Uplifting [] best 27 combination ASSEMBLER BEFORE OPTIMIZATION // File Comments - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -195,7 +196,7 @@ FINAL ASSEMBLER Score: 12 // File Comments - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/typedef-1.log b/src/test/ref/typedef-1.log index 7a23e2389..051a8a89a 100644 --- a/src/test/ref/typedef-1.log +++ b/src/test/ref/typedef-1.log @@ -129,8 +129,9 @@ Initial phi equivalence classes Complete equivalence classes INITIAL ASM +Target platform is c64basic // File Comments - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -184,7 +185,7 @@ Uplifting [] best 33 combination ASSEMBLER BEFORE OPTIMIZATION // File Comments - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -263,7 +264,7 @@ FINAL ASSEMBLER Score: 18 // File Comments - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/typeid-plus-byte-problem.log b/src/test/ref/typeid-plus-byte-problem.log index a619a37cf..88bf80a11 100644 --- a/src/test/ref/typeid-plus-byte-problem.log +++ b/src/test/ref/typeid-plus-byte-problem.log @@ -107,9 +107,10 @@ Initial phi equivalence classes Complete equivalence classes INITIAL ASM +Target platform is c64basic // File Comments // Test that byte+byte creates a byte - even when there is a value overflow - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -157,7 +158,7 @@ Uplifting [] best 27 combination ASSEMBLER BEFORE OPTIMIZATION // File Comments // Test that byte+byte creates a byte - even when there is a value overflow - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -230,7 +231,7 @@ Score: 12 // File Comments // Test that byte+byte creates a byte - even when there is a value overflow - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/typeid-plus-bytes.log b/src/test/ref/typeid-plus-bytes.log index 873c54d30..1adea5081 100644 --- a/src/test/ref/typeid-plus-bytes.log +++ b/src/test/ref/typeid-plus-bytes.log @@ -1158,9 +1158,10 @@ Allocated zp ZP_BYTE:14 [ testUnsignedVals::$5 ] Allocated zp ZP_BYTE:15 [ testUnsignedVals::$6 ] INITIAL ASM +Target platform is c64basic // File Comments // Test that plus creates the expected type for all legal combinations of bytes (signed/unsigned - constant/variable) - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -1546,7 +1547,7 @@ Uplifting [testSignedVals] best 418 combination zp ZP_BYTE:5 [ testSignedVals::s ASSEMBLER BEFORE OPTIMIZATION // File Comments // Test that plus creates the expected type for all legal combinations of bytes (signed/unsigned - constant/variable) - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -1935,7 +1936,7 @@ Score: 350 // File Comments // Test that plus creates the expected type for all legal combinations of bytes (signed/unsigned - constant/variable) - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/typeid-simple.log b/src/test/ref/typeid-simple.log index 5d58bbd3a..e1f45803c 100644 --- a/src/test/ref/typeid-simple.log +++ b/src/test/ref/typeid-simple.log @@ -454,9 +454,10 @@ Initial phi equivalence classes Complete equivalence classes INITIAL ASM +Target platform is c64basic // File Comments // Test typeid() of the different types - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -636,7 +637,7 @@ Uplifting [] best 195 combination ASSEMBLER BEFORE OPTIMIZATION // File Comments // Test typeid() of the different types - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -830,7 +831,7 @@ Score: 176 // File Comments // Test typeid() of the different types - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/typeinference-problem.log b/src/test/ref/typeinference-problem.log index 3b4f643a7..3e2986fbf 100644 --- a/src/test/ref/typeinference-problem.log +++ b/src/test/ref/typeinference-problem.log @@ -135,9 +135,10 @@ Allocated zp ZP_BYTE:2 [ main::i#2 main::i#1 ] Allocated zp ZP_BYTE:3 [ main::$0 ] INITIAL ASM +Target platform is c64basic // File Comments // java.lang.NullPointerException during Pass2TypeInference.java - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -218,7 +219,7 @@ Uplifting [] best 343 combination ASSEMBLER BEFORE OPTIMIZATION // File Comments // java.lang.NullPointerException during Pass2TypeInference.java - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -323,7 +324,7 @@ Score: 241 // File Comments // java.lang.NullPointerException during Pass2TypeInference.java - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/uninitialized.log b/src/test/ref/uninitialized.log index 2699a1c95..a0c47fd6b 100644 --- a/src/test/ref/uninitialized.log +++ b/src/test/ref/uninitialized.log @@ -164,9 +164,10 @@ Initial phi equivalence classes Complete equivalence classes INITIAL ASM +Target platform is c64basic // File Comments // Tests uninitialized values of variables. - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -229,7 +230,7 @@ Uplifting [] best 51 combination ASSEMBLER BEFORE OPTIMIZATION // File Comments // Tests uninitialized values of variables. - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -317,7 +318,7 @@ Score: 30 // File Comments // Tests uninitialized values of variables. - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/unroll-loop-modifyvar.log b/src/test/ref/unroll-loop-modifyvar.log index 551c8f2d6..a51912a24 100644 --- a/src/test/ref/unroll-loop-modifyvar.log +++ b/src/test/ref/unroll-loop-modifyvar.log @@ -398,9 +398,10 @@ Initial phi equivalence classes Complete equivalence classes INITIAL ASM +Target platform is c64basic // File Comments // An unrolled loop modifying a var used later - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -528,7 +529,7 @@ Uplifting [] best 156 combination ASSEMBLER BEFORE OPTIMIZATION // File Comments // An unrolled loop modifying a var used later - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -704,7 +705,7 @@ Score: 78 // File Comments // An unrolled loop modifying a var used later - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/unroll-screenfill-for-double.log b/src/test/ref/unroll-screenfill-for-double.log index 791e1aa1e..de8d07ac0 100644 --- a/src/test/ref/unroll-screenfill-for-double.log +++ b/src/test/ref/unroll-screenfill-for-double.log @@ -1331,9 +1331,10 @@ Initial phi equivalence classes Complete equivalence classes INITIAL ASM +Target platform is c64basic // File Comments // Fills the screen using two unrolled ranged for()-loops - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -2224,7 +2225,7 @@ Uplifting [] best 1137 combination ASSEMBLER BEFORE OPTIMIZATION // File Comments // Fills the screen using two unrolled ranged for()-loops - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -3493,7 +3494,7 @@ Score: 512 // File Comments // Fills the screen using two unrolled ranged for()-loops - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/unroll-screenfill-for.log b/src/test/ref/unroll-screenfill-for.log index 43eedd8a6..944e47e16 100644 --- a/src/test/ref/unroll-screenfill-for.log +++ b/src/test/ref/unroll-screenfill-for.log @@ -848,9 +848,10 @@ Complete equivalence classes Allocated zp ZP_BYTE:2 [ main::x#4 main::x#1 ] INITIAL ASM +Target platform is c64basic // File Comments // Fills the screen using an unrolled inner ranged for()-loop - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -1092,7 +1093,7 @@ Uplifting [] best 2723 combination ASSEMBLER BEFORE OPTIMIZATION // File Comments // Fills the screen using an unrolled inner ranged for()-loop - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -1419,7 +1420,7 @@ Score: 1841 // File Comments // Fills the screen using an unrolled inner ranged for()-loop - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/unroll-screenfill-while.log b/src/test/ref/unroll-screenfill-while.log index 69fa706e2..c08e01d4b 100644 --- a/src/test/ref/unroll-screenfill-while.log +++ b/src/test/ref/unroll-screenfill-while.log @@ -883,9 +883,10 @@ Complete equivalence classes Allocated zp ZP_BYTE:2 [ main::x#5 main::x#1 ] INITIAL ASM +Target platform is c64basic // File Comments // Fills the screen using an unrolled inner while()-loop - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -1127,7 +1128,7 @@ Uplifting [] best 2723 combination ASSEMBLER BEFORE OPTIMIZATION // File Comments // Fills the screen using an unrolled inner while()-loop - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -1454,7 +1455,7 @@ Score: 1841 // File Comments // Fills the screen using an unrolled inner while()-loop - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/unused-irq.log b/src/test/ref/unused-irq.log index b98a28d71..8a2cdf9a9 100644 --- a/src/test/ref/unused-irq.log +++ b/src/test/ref/unused-irq.log @@ -129,9 +129,10 @@ Initial phi equivalence classes Complete equivalence classes INITIAL ASM +Target platform is c64basic // File Comments // Unused interrupts pointing to each other but never used from main loop - should be optimized away - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -214,7 +215,7 @@ Uplifting [] best 63 combination ASSEMBLER BEFORE OPTIMIZATION // File Comments // Unused interrupts pointing to each other but never used from main loop - should be optimized away - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -322,7 +323,7 @@ Score: 42 // File Comments // Unused interrupts pointing to each other but never used from main loop - should be optimized away - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/unused-method.log b/src/test/ref/unused-method.log index af81f99fd..f91a174be 100644 --- a/src/test/ref/unused-method.log +++ b/src/test/ref/unused-method.log @@ -86,8 +86,9 @@ Initial phi equivalence classes Complete equivalence classes INITIAL ASM +Target platform is c64basic // File Comments - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -132,7 +133,7 @@ Uplifting [] best 27 combination ASSEMBLER BEFORE OPTIMIZATION // File Comments - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -198,7 +199,7 @@ FINAL ASSEMBLER Score: 12 // File Comments - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/unused-vars.log b/src/test/ref/unused-vars.log index c78f1b977..e8e0199dc 100644 --- a/src/test/ref/unused-vars.log +++ b/src/test/ref/unused-vars.log @@ -254,9 +254,10 @@ Complete equivalence classes Allocated zp ZP_BYTE:2 [ main::i#2 main::i#1 ] INITIAL ASM +Target platform is c64basic // File Comments // used vars - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -350,7 +351,7 @@ Uplifting [] best 375 combination ASSEMBLER BEFORE OPTIMIZATION // File Comments // used vars - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -476,7 +477,7 @@ Score: 243 // File Comments // used vars - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/unusedblockproblem.log b/src/test/ref/unusedblockproblem.log index 24ca3c304..b7af51665 100644 --- a/src/test/ref/unusedblockproblem.log +++ b/src/test/ref/unusedblockproblem.log @@ -123,9 +123,10 @@ Initial phi equivalence classes Complete equivalence classes INITIAL ASM +Target platform is c64basic // File Comments // Problem with eliminating unused blocks/vars after the infinite loop (symbol line#2 not removed from symbol table) - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -170,7 +171,7 @@ Uplifting [] best 132 combination ASSEMBLER BEFORE OPTIMIZATION // File Comments // Problem with eliminating unused blocks/vars after the infinite loop (symbol line#2 not removed from symbol table) - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -238,7 +239,7 @@ Score: 90 // File Comments // Problem with eliminating unused blocks/vars after the infinite loop (symbol line#2 not removed from symbol table) - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/useglobal.log b/src/test/ref/useglobal.log index d657a0b32..a9785418c 100644 --- a/src/test/ref/useglobal.log +++ b/src/test/ref/useglobal.log @@ -79,9 +79,10 @@ Initial phi equivalence classes Complete equivalence classes INITIAL ASM +Target platform is c64basic // File Comments // Tests procedures using global variables (should not fail) - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -127,7 +128,7 @@ Uplifting [] best 27 combination ASSEMBLER BEFORE OPTIMIZATION // File Comments // Tests procedures using global variables (should not fail) - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -194,7 +195,7 @@ Score: 12 // File Comments // Tests procedures using global variables (should not fail) - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/useuninitialized.log b/src/test/ref/useuninitialized.log index 0da65bdf1..7f6c456d0 100644 --- a/src/test/ref/useuninitialized.log +++ b/src/test/ref/useuninitialized.log @@ -154,9 +154,10 @@ Initial phi equivalence classes Complete equivalence classes INITIAL ASM +Target platform is c64basic // File Comments // Use an uninitialized variable - should use the default value (0)! - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -208,7 +209,7 @@ Uplifting [] best 33 combination ASSEMBLER BEFORE OPTIMIZATION // File Comments // Use an uninitialized variable - should use the default value (0)! - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -284,7 +285,7 @@ Score: 18 // File Comments // Use an uninitialized variable - should use the default value (0)! - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/var-forward-problem.log b/src/test/ref/var-forward-problem.log index a6e20ddec..f5303cd43 100644 --- a/src/test/ref/var-forward-problem.log +++ b/src/test/ref/var-forward-problem.log @@ -79,9 +79,10 @@ Initial phi equivalence classes Complete equivalence classes INITIAL ASM +Target platform is c64basic // File Comments // Illustrates the problem with variable forward references not working - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -128,7 +129,7 @@ Uplifting [] best 27 combination ASSEMBLER BEFORE OPTIMIZATION // File Comments // Illustrates the problem with variable forward references not working - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -198,7 +199,7 @@ Score: 12 // File Comments // Illustrates the problem with variable forward references not working - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/var-forward-problem2.log b/src/test/ref/var-forward-problem2.log index 3db04896f..1259e5ccb 100644 --- a/src/test/ref/var-forward-problem2.log +++ b/src/test/ref/var-forward-problem2.log @@ -114,9 +114,10 @@ Initial phi equivalence classes Complete equivalence classes INITIAL ASM +Target platform is c64basic // File Comments // Illustrates the problem with variable forward references not working - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -163,7 +164,7 @@ Uplifting [] best 27 combination ASSEMBLER BEFORE OPTIMIZATION // File Comments // Illustrates the problem with variable forward references not working - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -233,7 +234,7 @@ Score: 12 // File Comments // Illustrates the problem with variable forward references not working - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/var-init-problem.log b/src/test/ref/var-init-problem.log index 6d5dedcae..cb9691ef5 100644 --- a/src/test/ref/var-init-problem.log +++ b/src/test/ref/var-init-problem.log @@ -93,9 +93,10 @@ Initial phi equivalence classes Complete equivalence classes INITIAL ASM +Target platform is c64basic // File Comments // Variables without initialization causes problems when compiling - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -141,7 +142,7 @@ Uplifting [] best 27 combination ASSEMBLER BEFORE OPTIMIZATION // File Comments // Variables without initialization causes problems when compiling - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -208,7 +209,7 @@ Score: 12 // File Comments // Variables without initialization causes problems when compiling - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/var-register.log b/src/test/ref/var-register.log index e8b64c9a1..d78d9639d 100644 --- a/src/test/ref/var-register.log +++ b/src/test/ref/var-register.log @@ -284,8 +284,9 @@ Allocated zp ZP_BYTE:3 [ main::a#2 main::a#1 ] Allocated zp ZP_BYTE:4 [ print::val#0 ] INITIAL ASM +Target platform is c64basic // File Comments - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -431,7 +432,7 @@ Allocated (was zp ZP_BYTE:3) zp ZP_BYTE:2 [ main::a#2 main::a#1 ] ASSEMBLER BEFORE OPTIMIZATION // File Comments - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -629,7 +630,7 @@ FINAL ASSEMBLER Score: 31452 // File Comments - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/voronoi.log b/src/test/ref/voronoi.log index 3843aff97..40520d4da 100644 --- a/src/test/ref/voronoi.log +++ b/src/test/ref/voronoi.log @@ -1310,9 +1310,10 @@ Allocated zp ZP_BYTE:26 [ findcol::$8 ] Allocated zp ZP_BYTE:27 [ findcol::$10 ] INITIAL ASM +Target platform is c64basic // File Comments // The screen - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -1944,7 +1945,7 @@ Allocated (was zp ZP_BYTE:25) zp ZP_BYTE:10 [ findcol::yp#0 ] ASSEMBLER BEFORE OPTIMIZATION // File Comments // The screen - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -2637,7 +2638,7 @@ Score: 1504591 // File Comments // The screen - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/wfragment1.log b/src/test/ref/wfragment1.log index 5a62f9646..f33c6d672 100644 --- a/src/test/ref/wfragment1.log +++ b/src/test/ref/wfragment1.log @@ -258,9 +258,10 @@ Allocated zp ZP_BYTE:3 [ move_enemy::obj_slot#0 ] Allocated zp ZP_BYTE:4 [ move_enemy::$0 ] INITIAL ASM +Target platform is c64basic // File Comments // Adding a missing word-fragment for Travis Fisher - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -366,7 +367,7 @@ Uplifting [] best 319 combination ASSEMBLER BEFORE OPTIMIZATION // File Comments // Adding a missing word-fragment for Travis Fisher - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -505,7 +506,7 @@ Score: 184 // File Comments // Adding a missing word-fragment for Travis Fisher - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/word-array-0.log b/src/test/ref/word-array-0.log index ad3035fe2..208fccb3f 100644 --- a/src/test/ref/word-array-0.log +++ b/src/test/ref/word-array-0.log @@ -178,9 +178,10 @@ Allocated zp ZP_BYTE:8 [ main::$2 ] Allocated zp ZP_BYTE:9 [ main::$3 ] INITIAL ASM +Target platform is c64basic // File Comments // Tests a simple word array - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -278,7 +279,7 @@ Allocated (was zp ZP_WORD:6) zp ZP_WORD:4 [ main::w2#0 ] ASSEMBLER BEFORE OPTIMIZATION // File Comments // Tests a simple word array - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -389,7 +390,7 @@ Score: 62 // File Comments // Tests a simple word array - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/word-array-1.log b/src/test/ref/word-array-1.log index 517e9775e..5aba8ac8c 100644 --- a/src/test/ref/word-array-1.log +++ b/src/test/ref/word-array-1.log @@ -207,9 +207,10 @@ Allocated zp ZP_BYTE:9 [ main::$1 ] Allocated zp ZP_BYTE:10 [ main::idx#2 ] INITIAL ASM +Target platform is c64basic // File Comments // Tests a simple word array - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -350,7 +351,7 @@ Allocated (was zp ZP_WORD:5) zp ZP_WORD:3 [ main::w#0 ] ASSEMBLER BEFORE OPTIMIZATION // File Comments // Tests a simple word array - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -503,7 +504,7 @@ Score: 641 // File Comments // Tests a simple word array - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/word-array-2.log b/src/test/ref/word-array-2.log index 91f737aa8..5c2e7c1b3 100644 --- a/src/test/ref/word-array-2.log +++ b/src/test/ref/word-array-2.log @@ -224,9 +224,10 @@ Allocated zp ZP_WORD:11 [ main::$6 ] Allocated zp ZP_WORD:13 [ main::$9 ] INITIAL ASM +Target platform is c64basic // File Comments // Tests a word-array with 128+ elements - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -381,7 +382,7 @@ Allocated (was zp ZP_WORD:5) zp ZP_WORD:4 [ main::$2 main::$3 main::$4 ] ASSEMBLER BEFORE OPTIMIZATION // File Comments // Tests a word-array with 128+ elements - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -546,7 +547,7 @@ Score: 1092 // File Comments // Tests a word-array with 128+ elements - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/word-pointer-compound.log b/src/test/ref/word-pointer-compound.log index ced193f7a..40370c223 100644 --- a/src/test/ref/word-pointer-compound.log +++ b/src/test/ref/word-pointer-compound.log @@ -306,9 +306,10 @@ Allocated zp ZP_BYTE:8 [ main::$4 ] Allocated zp ZP_BYTE:9 [ main::$5 ] INITIAL ASM +Target platform is c64basic // File Comments // Test word pointer compound assignment - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -454,7 +455,7 @@ Uplifting [main] best 554 combination reg byte a [ main::$5 ] ASSEMBLER BEFORE OPTIMIZATION // File Comments // Test word pointer compound assignment - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -609,7 +610,7 @@ Score: 449 // File Comments // Test word pointer compound assignment - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/word-pointer-iteration-0.log b/src/test/ref/word-pointer-iteration-0.log index 7564430b6..ef1ed7b7c 100644 --- a/src/test/ref/word-pointer-iteration-0.log +++ b/src/test/ref/word-pointer-iteration-0.log @@ -191,9 +191,10 @@ Allocated zp ZP_BYTE:6 [ main::$4 ] Allocated zp ZP_BYTE:7 [ main::$5 ] INITIAL ASM +Target platform is c64basic // File Comments // Tests simple word pointer iteration - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -289,7 +290,7 @@ Uplifting [main] best 69 combination reg byte a [ main::$5 ] ASSEMBLER BEFORE OPTIMIZATION // File Comments // Tests simple word pointer iteration - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -392,7 +393,7 @@ Score: 54 // File Comments // Tests simple word pointer iteration - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/word-pointer-iteration.log b/src/test/ref/word-pointer-iteration.log index 8f4621303..f08e372be 100644 --- a/src/test/ref/word-pointer-iteration.log +++ b/src/test/ref/word-pointer-iteration.log @@ -214,9 +214,10 @@ Allocated zp ZP_BYTE:10 [ main::$1 ] Allocated zp ZP_BYTE:11 [ main::idx#2 ] INITIAL ASM +Target platform is c64basic // File Comments // Tests simple word pointer iteration - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -368,7 +369,7 @@ Allocated (was zp ZP_WORD:6) zp ZP_WORD:5 [ main::w#0 ] ASSEMBLER BEFORE OPTIMIZATION // File Comments // Tests simple word pointer iteration - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -537,7 +538,7 @@ Score: 946 // File Comments // Tests simple word pointer iteration - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/word-pointer-math-0.log b/src/test/ref/word-pointer-math-0.log index 191b7a17d..9cdf7d4e3 100644 --- a/src/test/ref/word-pointer-math-0.log +++ b/src/test/ref/word-pointer-math-0.log @@ -189,9 +189,10 @@ Allocated zp ZP_BYTE:8 [ main::$4 ] Allocated zp ZP_BYTE:9 [ main::$5 ] INITIAL ASM +Target platform is c64basic // File Comments // Tests simple word pointer math - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -289,7 +290,7 @@ Allocated (was zp ZP_WORD:6) zp ZP_WORD:4 [ main::w2#0 ] ASSEMBLER BEFORE OPTIMIZATION // File Comments // Tests simple word pointer math - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -400,7 +401,7 @@ Score: 62 // File Comments // Tests simple word pointer math - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/word-pointer-math-1.log b/src/test/ref/word-pointer-math-1.log index 581a48fbd..f4c70c269 100644 --- a/src/test/ref/word-pointer-math-1.log +++ b/src/test/ref/word-pointer-math-1.log @@ -110,9 +110,10 @@ Initial phi equivalence classes Complete equivalence classes INITIAL ASM +Target platform is c64basic // File Comments // Tests word pointer math - subtracting two word pointers - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -164,7 +165,7 @@ Uplifting [] best 33 combination ASSEMBLER BEFORE OPTIMIZATION // File Comments // Tests word pointer math - subtracting two word pointers - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -244,7 +245,7 @@ Score: 18 // File Comments // Tests word pointer math - subtracting two word pointers - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/word-pointer-math.log b/src/test/ref/word-pointer-math.log index b96a31f5a..6b18c38d7 100644 --- a/src/test/ref/word-pointer-math.log +++ b/src/test/ref/word-pointer-math.log @@ -213,9 +213,10 @@ Allocated zp ZP_BYTE:9 [ main::$2 ] Allocated zp ZP_BYTE:10 [ main::idx#2 ] INITIAL ASM +Target platform is c64basic // File Comments // Tests simple word pointer math - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -356,7 +357,7 @@ Allocated (was zp ZP_WORD:5) zp ZP_WORD:3 [ main::w#0 ] ASSEMBLER BEFORE OPTIMIZATION // File Comments // Tests simple word pointer math - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -508,7 +509,7 @@ Score: 671 // File Comments // Tests simple word pointer math - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/wordexpr.log b/src/test/ref/wordexpr.log index 06ffc2b79..1f9554032 100644 --- a/src/test/ref/wordexpr.log +++ b/src/test/ref/wordexpr.log @@ -140,9 +140,10 @@ Allocated zp ZP_WORD:2 [ main::b#2 main::b#1 ] Allocated zp ZP_BYTE:4 [ main::i#2 main::i#1 ] INITIAL ASM +Target platform is c64basic // File Comments // Expressions based on bytes but resulting in words are as words - eg. b = b + 40*8; - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -224,7 +225,7 @@ Uplifting [] best 473 combination ASSEMBLER BEFORE OPTIMIZATION // File Comments // Expressions based on bytes but resulting in words are as words - eg. b = b + 40*8; - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -337,7 +338,7 @@ Score: 351 // File Comments // Expressions based on bytes but resulting in words are as words - eg. b = b + 40*8; - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/zpparammin.log b/src/test/ref/zpparammin.log index 63a30fe2d..5f3e4682f 100644 --- a/src/test/ref/zpparammin.log +++ b/src/test/ref/zpparammin.log @@ -370,8 +370,9 @@ Allocated zp ZP_BYTE:15 [ sum::$0 ] Allocated zp ZP_BYTE:16 [ sum::return#1 ] INITIAL ASM +Target platform is c64basic // File Comments - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -582,7 +583,7 @@ Uplifting [sum] best 1013 combination reg byte a [ sum::$0 ] ASSEMBLER BEFORE OPTIMIZATION // File Comments - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -808,7 +809,7 @@ FINAL ASSEMBLER Score: 805 // File Comments - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" diff --git a/src/test/ref/zpptr.log b/src/test/ref/zpptr.log index ea689ada0..02ba37d57 100644 --- a/src/test/ref/zpptr.log +++ b/src/test/ref/zpptr.log @@ -255,8 +255,9 @@ Allocated zp ZP_WORD:7 [ main::w#0 ] Allocated zp ZP_WORD:9 [ main::zpptr2#1 ] INITIAL ASM +Target platform is c64basic // File Comments - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -417,7 +418,7 @@ Allocated (was zp ZP_WORD:7) zp ZP_WORD:6 [ main::w#0 ] ASSEMBLER BEFORE OPTIMIZATION // File Comments - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(bbegin) .pc = $80d "Program" @@ -616,7 +617,7 @@ FINAL ASSEMBLER Score: 68411 // File Comments - // Basic Upstart + // Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program"