mirror of
https://gitlab.com/camelot/kickc.git
synced 2025-02-27 01:29:37 +00:00
Now using kickassembler-5.16-65ce02 properly.
This commit is contained in:
parent
afae4975f1
commit
f62631812e
@ -1,13 +1,13 @@
|
|||||||
<component name="libraryTable">
|
<component name="libraryTable">
|
||||||
<library name="Maven: cml.kickass:kickassembler:5.16-65ce02.b">
|
<library name="Maven: cml.kickass:kickassembler:5.16-65ce02.c">
|
||||||
<CLASSES>
|
<CLASSES>
|
||||||
<root url="jar://$MAVEN_REPOSITORY$/cml/kickass/kickassembler/5.16-65ce02.b/kickassembler-5.16-65ce02.b.jar!/" />
|
<root url="jar://$MAVEN_REPOSITORY$/cml/kickass/kickassembler/5.16-65ce02.c/kickassembler-5.16-65ce02.c.jar!/" />
|
||||||
</CLASSES>
|
</CLASSES>
|
||||||
<JAVADOC>
|
<JAVADOC>
|
||||||
<root url="jar://$MAVEN_REPOSITORY$/cml/kickass/kickassembler/5.16-65ce02.b/kickassembler-5.16-65ce02.b-javadoc.jar!/" />
|
<root url="jar://$MAVEN_REPOSITORY$/cml/kickass/kickassembler/5.16-65ce02.c/kickassembler-5.16-65ce02.c-javadoc.jar!/" />
|
||||||
</JAVADOC>
|
</JAVADOC>
|
||||||
<SOURCES>
|
<SOURCES>
|
||||||
<root url="jar://$MAVEN_REPOSITORY$/cml/kickass/kickassembler/5.16-65ce02.b/kickassembler-5.16-65ce02.b-sources.jar!/" />
|
<root url="jar://$MAVEN_REPOSITORY$/cml/kickass/kickassembler/5.16-65ce02.c/kickassembler-5.16-65ce02.c-sources.jar!/" />
|
||||||
</SOURCES>
|
</SOURCES>
|
||||||
</library>
|
</library>
|
||||||
</component>
|
</component>
|
@ -18,7 +18,7 @@
|
|||||||
<orderEntry type="library" name="Maven: org.antlr:antlr4-runtime:4.8-1" level="project" />
|
<orderEntry type="library" name="Maven: org.antlr:antlr4-runtime:4.8-1" level="project" />
|
||||||
<orderEntry type="library" scope="TEST" name="Maven: junit:junit:4.12" level="project" />
|
<orderEntry type="library" scope="TEST" name="Maven: junit:junit:4.12" level="project" />
|
||||||
<orderEntry type="library" scope="TEST" name="Maven: org.hamcrest:hamcrest-core:1.3" level="project" />
|
<orderEntry type="library" scope="TEST" name="Maven: org.hamcrest:hamcrest-core:1.3" level="project" />
|
||||||
<orderEntry type="library" name="Maven: cml.kickass:kickassembler:5.16-65ce02.b" level="project" />
|
<orderEntry type="library" name="Maven: cml.kickass:kickassembler:5.16-65ce02.c" level="project" />
|
||||||
<orderEntry type="library" name="Maven: info.picocli:picocli:4.2.0" level="project" />
|
<orderEntry type="library" name="Maven: info.picocli:picocli:4.2.0" level="project" />
|
||||||
<orderEntry type="library" name="Maven: javax.json:javax.json-api:1.1.4" level="project" />
|
<orderEntry type="library" name="Maven: javax.json:javax.json-api:1.1.4" level="project" />
|
||||||
<orderEntry type="library" name="Maven: org.glassfish:javax.json:1.1.4" level="project" />
|
<orderEntry type="library" name="Maven: org.glassfish:javax.json:1.1.4" level="project" />
|
||||||
|
2
pom.xml
2
pom.xml
@ -44,7 +44,7 @@
|
|||||||
<dependency>
|
<dependency>
|
||||||
<groupId>cml.kickass</groupId>
|
<groupId>cml.kickass</groupId>
|
||||||
<artifactId>kickassembler</artifactId>
|
<artifactId>kickassembler</artifactId>
|
||||||
<version>5.16-65ce02.b</version>
|
<version>5.16-65ce02.c</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>info.picocli</groupId>
|
<groupId>info.picocli</groupId>
|
||||||
|
@ -0,0 +1,4 @@
|
|||||||
|
#NOTE: This is a Maven Resolver internal implementation file, its format can be changed without prior notice.
|
||||||
|
#Sun Jul 26 02:10:40 CEST 2020
|
||||||
|
kickassembler-5.16-65ce02.c.jar>=
|
||||||
|
kickassembler-5.16-65ce02.c.pom>=
|
Binary file not shown.
@ -0,0 +1 @@
|
|||||||
|
56d1571c918b28593d3152fbb40097fb
|
@ -0,0 +1 @@
|
|||||||
|
48cf3ed4276035cc8a4ba97330a5c3cfad80a34d
|
@ -0,0 +1,9 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
|
||||||
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||||
|
<modelVersion>4.0.0</modelVersion>
|
||||||
|
<groupId>cml.kickass</groupId>
|
||||||
|
<artifactId>kickassembler</artifactId>
|
||||||
|
<version>5.16-65ce02.c</version>
|
||||||
|
<description>POM was created from install:install-file</description>
|
||||||
|
</project>
|
@ -0,0 +1 @@
|
|||||||
|
bfe11cbb157b234ea12082890c8916b3
|
@ -0,0 +1 @@
|
|||||||
|
a6de8d19ac9d1cdbcdb13d22a5a6aaa08981c602
|
@ -3,7 +3,7 @@
|
|||||||
<groupId>cml.kickass</groupId>
|
<groupId>cml.kickass</groupId>
|
||||||
<artifactId>kickassembler</artifactId>
|
<artifactId>kickassembler</artifactId>
|
||||||
<versioning>
|
<versioning>
|
||||||
<release>5.16</release>
|
<release>5.16-65ce02.c</release>
|
||||||
<versions>
|
<versions>
|
||||||
<version>4.19</version>
|
<version>4.19</version>
|
||||||
<version>5.7</version>
|
<version>5.7</version>
|
||||||
@ -15,7 +15,8 @@
|
|||||||
<version>5.16</version>
|
<version>5.16</version>
|
||||||
<version>5.16-65ce02.a</version>
|
<version>5.16-65ce02.a</version>
|
||||||
<version>5.16-65ce02.b</version>
|
<version>5.16-65ce02.b</version>
|
||||||
|
<version>5.16-65ce02.c</version>
|
||||||
</versions>
|
</versions>
|
||||||
<lastUpdated>20200725235309</lastUpdated>
|
<lastUpdated>20200726001040</lastUpdated>
|
||||||
</versioning>
|
</versioning>
|
||||||
</metadata>
|
</metadata>
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
<groupId>cml.kickass</groupId>
|
<groupId>cml.kickass</groupId>
|
||||||
<artifactId>kickassembler</artifactId>
|
<artifactId>kickassembler</artifactId>
|
||||||
<versioning>
|
<versioning>
|
||||||
<release>5.16</release>
|
<release>5.16-65ce02.c</release>
|
||||||
<versions>
|
<versions>
|
||||||
<version>4.19</version>
|
<version>4.19</version>
|
||||||
<version>5.7</version>
|
<version>5.7</version>
|
||||||
@ -15,7 +15,8 @@
|
|||||||
<version>5.16</version>
|
<version>5.16</version>
|
||||||
<version>5.16-65ce02.a</version>
|
<version>5.16-65ce02.a</version>
|
||||||
<version>5.16-65ce02.b</version>
|
<version>5.16-65ce02.b</version>
|
||||||
|
<version>5.16-65ce02.c</version>
|
||||||
</versions>
|
</versions>
|
||||||
<lastUpdated>20200725235309</lastUpdated>
|
<lastUpdated>20200726001040</lastUpdated>
|
||||||
</versioning>
|
</versioning>
|
||||||
</metadata>
|
</metadata>
|
||||||
|
@ -1 +1 @@
|
|||||||
acbc3a966df601966f31fa7b39ca107b
|
adfabf6e204c3daac799ee85ec8f7319
|
@ -1 +1 @@
|
|||||||
5ad5d74f555a0e5d39b6f2139c8b0b8f812f1c01
|
c05e418489895864cd4f28522cb3ea9e8ba1abe9
|
@ -9,7 +9,7 @@ import dk.camelot64.kickc.model.*;
|
|||||||
import dk.camelot64.kickc.model.statements.StatementSource;
|
import dk.camelot64.kickc.model.statements.StatementSource;
|
||||||
import dk.camelot64.kickc.model.symbols.Procedure;
|
import dk.camelot64.kickc.model.symbols.Procedure;
|
||||||
import dk.camelot64.kickc.parser.CTargetPlatformParser;
|
import dk.camelot64.kickc.parser.CTargetPlatformParser;
|
||||||
import kickass.KickAssembler;
|
import kickass.KickAssembler65CE02;
|
||||||
import kickass.nonasm.c64.CharToPetsciiConverter;
|
import kickass.nonasm.c64.CharToPetsciiConverter;
|
||||||
import picocli.CommandLine;
|
import picocli.CommandLine;
|
||||||
|
|
||||||
@ -448,7 +448,7 @@ public class KickC implements Callable<Integer> {
|
|||||||
int kasmResult = -1;
|
int kasmResult = -1;
|
||||||
try {
|
try {
|
||||||
CharToPetsciiConverter.setCurrentEncoding("screencode_mixed");
|
CharToPetsciiConverter.setCurrentEncoding("screencode_mixed");
|
||||||
kasmResult = KickAssembler.main2(assembleCommand.toArray(new String[0]));
|
kasmResult = KickAssembler65CE02.main2(assembleCommand.toArray(new String[0]));
|
||||||
} catch(Throwable e) {
|
} catch(Throwable e) {
|
||||||
throw new CompileError("KickAssembling file failed! ", e);
|
throw new CompileError("KickAssembling file failed! ", e);
|
||||||
} finally {
|
} finally {
|
||||||
|
@ -1,15 +1,15 @@
|
|||||||
package dk.camelot64.kickc.passes;
|
package dk.camelot64.kickc.passes;
|
||||||
|
|
||||||
import dk.camelot64.kickc.asm.*;
|
import dk.camelot64.kickc.asm.*;
|
||||||
import dk.camelot64.kickc.asm.AsmFormat;
|
|
||||||
import dk.camelot64.kickc.model.CompileError;
|
import dk.camelot64.kickc.model.CompileError;
|
||||||
import dk.camelot64.kickc.model.InternalError;
|
|
||||||
import dk.camelot64.kickc.model.Program;
|
import dk.camelot64.kickc.model.Program;
|
||||||
import kickass.KickAssembler;
|
import kickass.KickAssembler65CE02;
|
||||||
import kickass.nonasm.c64.CharToPetsciiConverter;
|
import kickass.nonasm.c64.CharToPetsciiConverter;
|
||||||
|
|
||||||
import java.io.*;
|
import java.io.*;
|
||||||
import java.nio.file.*;
|
import java.nio.file.FileSystems;
|
||||||
|
import java.nio.file.Files;
|
||||||
|
import java.nio.file.Path;
|
||||||
import java.util.regex.Matcher;
|
import java.util.regex.Matcher;
|
||||||
import java.util.regex.Pattern;
|
import java.util.regex.Pattern;
|
||||||
|
|
||||||
@ -86,7 +86,7 @@ public class Pass5FixLongBranches extends Pass5AsmOptimization {
|
|||||||
int asmRes = -1;
|
int asmRes = -1;
|
||||||
try {
|
try {
|
||||||
CharToPetsciiConverter.setCurrentEncoding("screencode_mixed");
|
CharToPetsciiConverter.setCurrentEncoding("screencode_mixed");
|
||||||
asmRes = KickAssembler.main2(new String[]{asmFile.getAbsolutePath(), "-o", binaryFile.getAbsolutePath()});
|
asmRes = KickAssembler65CE02.main2(new String[]{asmFile.getAbsolutePath(), "-o", binaryFile.getAbsolutePath()});
|
||||||
} catch(Throwable e) {
|
} catch(Throwable e) {
|
||||||
if(e instanceof AssertionError && e.getMessage().contains("Invalid number of bytes in memblock!")) {
|
if(e instanceof AssertionError && e.getMessage().contains("Invalid number of bytes in memblock!")) {
|
||||||
throw new CompileError("Error! KickAssembler failed due to assertion. Please run java without -ea / -enableassertions.", e);
|
throw new CompileError("Error! KickAssembler failed due to assertion. Please run java without -ea / -enableassertions.", e);
|
||||||
|
@ -1,3 +1,3 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
# mvn install:install-file -Dmaven.repo.local=./repo/ -Dfile=/Applications/KickAssembler/KickAss.jar -DgroupId=cml.kickass -DartifactId=kickassembler -Dpackaging=jar -DgeneratePom=true -DcreateChecksum=true -Dversion=5.16
|
# mvn install:install-file -Dmaven.repo.local=./repo/ -Dfile=/Applications/KickAssembler/KickAss.jar -DgroupId=cml.kickass -DartifactId=kickassembler -Dpackaging=jar -DgeneratePom=true -DcreateChecksum=true -Dversion=5.16
|
||||||
mvn install:install-file -Dmaven.repo.local=./repo/ -Dfile=/Users/jespergravgaard/c64/kickassembler65ce02/out/KickAss65CE02.jar -DgroupId=cml.kickass -DartifactId=kickassembler -Dpackaging=jar -DgeneratePom=true -DcreateChecksum=true -Dversion=5.16-65ce02.b
|
mvn install:install-file -Dmaven.repo.local=./repo/ -Dfile=/Users/jespergravgaard/c64/kickassembler65ce02/out/KickAss65CE02.jar -DgroupId=cml.kickass -DartifactId=kickassembler -Dpackaging=jar -DgeneratePom=true -DcreateChecksum=true -Dversion=5.16-65ce02.c
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
package dk.camelot64.kickc.test;
|
package dk.camelot64.kickc.test;
|
||||||
|
|
||||||
import kickass.KickAssembler;
|
import kickass.KickAssembler65CE02;
|
||||||
import kickass.nonasm.c64.CharToPetsciiConverter;
|
import kickass.nonasm.c64.CharToPetsciiConverter;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
|
|
||||||
@ -27,7 +27,7 @@ public class TestKickAssRun {
|
|||||||
System.setOut(new PrintStream(kickAssOut));
|
System.setOut(new PrintStream(kickAssOut));
|
||||||
try {
|
try {
|
||||||
CharToPetsciiConverter.setCurrentEncoding("screencode_mixed");
|
CharToPetsciiConverter.setCurrentEncoding("screencode_mixed");
|
||||||
KickAssembler.main2(new String[]{asmPath.toAbsolutePath().toString(), "-o", asmPrgFile.getAbsolutePath()});
|
KickAssembler65CE02.main2(new String[]{asmPath.toAbsolutePath().toString(), "-o", asmPrgFile.getAbsolutePath()});
|
||||||
} catch (AssertionError e) {
|
} catch (AssertionError e) {
|
||||||
System.setOut(new PrintStream(new FileOutputStream(FileDescriptor.out)));
|
System.setOut(new PrintStream(new FileOutputStream(FileDescriptor.out)));
|
||||||
String output = kickAssOut.toString();
|
String output = kickAssOut.toString();
|
||||||
|
@ -8,7 +8,7 @@ import dk.camelot64.kickc.model.CompileError;
|
|||||||
import dk.camelot64.kickc.model.Program;
|
import dk.camelot64.kickc.model.Program;
|
||||||
import dk.camelot64.kickc.model.TargetPlatform;
|
import dk.camelot64.kickc.model.TargetPlatform;
|
||||||
import dk.camelot64.kickc.parser.CTargetPlatformParser;
|
import dk.camelot64.kickc.parser.CTargetPlatformParser;
|
||||||
import kickass.KickAssembler;
|
import kickass.KickAssembler65CE02;
|
||||||
import kickass.nonasm.c64.CharToPetsciiConverter;
|
import kickass.nonasm.c64.CharToPetsciiConverter;
|
||||||
import org.junit.AfterClass;
|
import org.junit.AfterClass;
|
||||||
import org.junit.BeforeClass;
|
import org.junit.BeforeClass;
|
||||||
@ -42,6 +42,11 @@ public class TestPrograms {
|
|||||||
public TestPrograms() {
|
public TestPrograms() {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testMega65C65ce02() throws IOException, URISyntaxException {
|
||||||
|
compileAndCompare("mega65-c65ce02.c");
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testCastingNegative() throws IOException, URISyntaxException {
|
public void testCastingNegative() throws IOException, URISyntaxException {
|
||||||
compileAndCompare("casting-negative.c");
|
compileAndCompare("casting-negative.c");
|
||||||
@ -4610,7 +4615,7 @@ public class TestPrograms {
|
|||||||
int asmRes = -1;
|
int asmRes = -1;
|
||||||
try {
|
try {
|
||||||
CharToPetsciiConverter.setCurrentEncoding("screencode_mixed");
|
CharToPetsciiConverter.setCurrentEncoding("screencode_mixed");
|
||||||
asmRes = KickAssembler.main2(new String[]{asmFile.getAbsolutePath(), "-log", asmLogFile.getAbsolutePath(), "-o", asmPrgFile.getAbsolutePath(), "-vicesymbols", "-showmem", "-bytedump"});
|
asmRes = KickAssembler65CE02.main2(new String[]{asmFile.getAbsolutePath(), "-log", asmLogFile.getAbsolutePath(), "-o", asmPrgFile.getAbsolutePath(), "-vicesymbols", "-showmem", "-bytedump"});
|
||||||
} catch(Throwable e) {
|
} catch(Throwable e) {
|
||||||
fail("KickAssembling file failed! " + e.getMessage());
|
fail("KickAssembling file failed! " + e.getMessage());
|
||||||
} finally {
|
} finally {
|
||||||
|
15
src/test/java/dk/camelot64/kickc/test/kickasstest.asm
Normal file
15
src/test/java/dk/camelot64/kickc/test/kickasstest.asm
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
// Minimal if() test
|
||||||
|
.pc = $801 "Basic"
|
||||||
|
:BasicUpstart(main)
|
||||||
|
.pc = $80d "Program"
|
||||||
|
.label SCREEN = $400
|
||||||
|
main: {
|
||||||
|
ldx #0
|
||||||
|
lda #'a'
|
||||||
|
b1:
|
||||||
|
sta SCREEN,x
|
||||||
|
inx
|
||||||
|
cpx #40
|
||||||
|
bcc b1
|
||||||
|
rts
|
||||||
|
}
|
10
src/test/kc/mega65-c65ce02.c
Normal file
10
src/test/kc/mega65-c65ce02.c
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
// Tests compiling inline C65CE02 Assembler
|
||||||
|
|
||||||
|
void main() {
|
||||||
|
kickasm {{
|
||||||
|
.cpu _45gs02
|
||||||
|
ldz #2
|
||||||
|
stz $0800
|
||||||
|
adcq ($2)
|
||||||
|
}}
|
||||||
|
}
|
14
src/test/ref/mega65-c65ce02.asm
Normal file
14
src/test/ref/mega65-c65ce02.asm
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
// Tests compiling inline C65CE02 Assembler
|
||||||
|
.pc = $801 "Basic"
|
||||||
|
:BasicUpstart(main)
|
||||||
|
.pc = $80d "Program"
|
||||||
|
main: {
|
||||||
|
// kickasm
|
||||||
|
.cpu _45gs02
|
||||||
|
ldz #2
|
||||||
|
stz $0800
|
||||||
|
adcq ($2)
|
||||||
|
|
||||||
|
// }
|
||||||
|
rts
|
||||||
|
}
|
12
src/test/ref/mega65-c65ce02.cfg
Normal file
12
src/test/ref/mega65-c65ce02.cfg
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
|
||||||
|
(void()) main()
|
||||||
|
main: scope:[main] from
|
||||||
|
kickasm() {{ .cpu _45gs02
|
||||||
|
ldz #2
|
||||||
|
stz $0800
|
||||||
|
adcq ($2)
|
||||||
|
}}
|
||||||
|
to:main::@return
|
||||||
|
main::@return: scope:[main] from main
|
||||||
|
[1] return
|
||||||
|
to:@return
|
159
src/test/ref/mega65-c65ce02.log
Normal file
159
src/test/ref/mega65-c65ce02.log
Normal file
@ -0,0 +1,159 @@
|
|||||||
|
|
||||||
|
CONTROL FLOW GRAPH SSA
|
||||||
|
|
||||||
|
(void()) main()
|
||||||
|
main: scope:[main] from __start
|
||||||
|
kickasm() {{ .cpu _45gs02
|
||||||
|
ldz #2
|
||||||
|
stz $0800
|
||||||
|
adcq ($2)
|
||||||
|
}}
|
||||||
|
to:main::@return
|
||||||
|
main::@return: scope:[main] from main
|
||||||
|
return
|
||||||
|
to:@return
|
||||||
|
|
||||||
|
(void()) __start()
|
||||||
|
__start: scope:[__start] from
|
||||||
|
call main
|
||||||
|
to:__start::@1
|
||||||
|
__start::@1: scope:[__start] from __start
|
||||||
|
to:__start::@return
|
||||||
|
__start::@return: scope:[__start] from __start::@1
|
||||||
|
return
|
||||||
|
to:@return
|
||||||
|
|
||||||
|
SYMBOL TABLE SSA
|
||||||
|
(void()) __start()
|
||||||
|
(label) __start::@1
|
||||||
|
(label) __start::@return
|
||||||
|
(void()) main()
|
||||||
|
(label) main::@return
|
||||||
|
|
||||||
|
Removing unused procedure __start
|
||||||
|
Removing unused procedure block __start
|
||||||
|
Removing unused procedure block __start::@1
|
||||||
|
Removing unused procedure block __start::@return
|
||||||
|
Successful SSA optimization PassNEliminateEmptyStart
|
||||||
|
CALL GRAPH
|
||||||
|
|
||||||
|
Created 0 initial phi equivalence classes
|
||||||
|
Coalesced down to 0 phi equivalence classes
|
||||||
|
|
||||||
|
FINAL CONTROL FLOW GRAPH
|
||||||
|
|
||||||
|
(void()) main()
|
||||||
|
main: scope:[main] from
|
||||||
|
kickasm() {{ .cpu _45gs02
|
||||||
|
ldz #2
|
||||||
|
stz $0800
|
||||||
|
adcq ($2)
|
||||||
|
}}
|
||||||
|
to:main::@return
|
||||||
|
main::@return: scope:[main] from main
|
||||||
|
[1] return
|
||||||
|
to:@return
|
||||||
|
|
||||||
|
|
||||||
|
VARIABLE REGISTER WEIGHTS
|
||||||
|
(void()) main()
|
||||||
|
|
||||||
|
Initial phi equivalence classes
|
||||||
|
Complete equivalence classes
|
||||||
|
|
||||||
|
INITIAL ASM
|
||||||
|
Target platform is c64basic / MOS6502X
|
||||||
|
// File Comments
|
||||||
|
// Tests compiling inline C65CE02 Assembler
|
||||||
|
// Upstart
|
||||||
|
.pc = $801 "Basic"
|
||||||
|
:BasicUpstart(main)
|
||||||
|
.pc = $80d "Program"
|
||||||
|
// Global Constants & labels
|
||||||
|
// main
|
||||||
|
main: {
|
||||||
|
// kickasm() {{ .cpu _45gs02 ldz #2 stz $0800 adcq ($2) }}
|
||||||
|
.cpu _45gs02
|
||||||
|
ldz #2
|
||||||
|
stz $0800
|
||||||
|
adcq ($2)
|
||||||
|
|
||||||
|
jmp __breturn
|
||||||
|
// main::@return
|
||||||
|
__breturn:
|
||||||
|
// [1] return
|
||||||
|
rts
|
||||||
|
}
|
||||||
|
// File Data
|
||||||
|
|
||||||
|
REGISTER UPLIFT POTENTIAL REGISTERS
|
||||||
|
|
||||||
|
REGISTER UPLIFT SCOPES
|
||||||
|
Uplift Scope [main]
|
||||||
|
Uplift Scope []
|
||||||
|
|
||||||
|
Uplifting [main] best 265 combination
|
||||||
|
Uplifting [] best 265 combination
|
||||||
|
|
||||||
|
ASSEMBLER BEFORE OPTIMIZATION
|
||||||
|
// File Comments
|
||||||
|
// Tests compiling inline C65CE02 Assembler
|
||||||
|
// Upstart
|
||||||
|
.pc = $801 "Basic"
|
||||||
|
:BasicUpstart(main)
|
||||||
|
.pc = $80d "Program"
|
||||||
|
// Global Constants & labels
|
||||||
|
// main
|
||||||
|
main: {
|
||||||
|
// kickasm() {{ .cpu _45gs02 ldz #2 stz $0800 adcq ($2) }}
|
||||||
|
.cpu _45gs02
|
||||||
|
ldz #2
|
||||||
|
stz $0800
|
||||||
|
adcq ($2)
|
||||||
|
|
||||||
|
jmp __breturn
|
||||||
|
// main::@return
|
||||||
|
__breturn:
|
||||||
|
// [1] return
|
||||||
|
rts
|
||||||
|
}
|
||||||
|
// File Data
|
||||||
|
|
||||||
|
ASSEMBLER OPTIMIZATIONS
|
||||||
|
Removing instruction jmp __breturn
|
||||||
|
Succesful ASM optimization Pass5NextJumpElimination
|
||||||
|
Removing instruction __breturn:
|
||||||
|
Succesful ASM optimization Pass5UnusedLabelElimination
|
||||||
|
|
||||||
|
FINAL SYMBOL TABLE
|
||||||
|
(void()) main()
|
||||||
|
(label) main::@return
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
FINAL ASSEMBLER
|
||||||
|
Score: 262
|
||||||
|
|
||||||
|
// File Comments
|
||||||
|
// Tests compiling inline C65CE02 Assembler
|
||||||
|
// Upstart
|
||||||
|
.pc = $801 "Basic"
|
||||||
|
:BasicUpstart(main)
|
||||||
|
.pc = $80d "Program"
|
||||||
|
// Global Constants & labels
|
||||||
|
// main
|
||||||
|
main: {
|
||||||
|
// kickasm
|
||||||
|
// kickasm() {{ .cpu _45gs02 ldz #2 stz $0800 adcq ($2) }}
|
||||||
|
.cpu _45gs02
|
||||||
|
ldz #2
|
||||||
|
stz $0800
|
||||||
|
adcq ($2)
|
||||||
|
|
||||||
|
// main::@return
|
||||||
|
// }
|
||||||
|
// [1] return
|
||||||
|
rts
|
||||||
|
}
|
||||||
|
// File Data
|
||||||
|
|
3
src/test/ref/mega65-c65ce02.sym
Normal file
3
src/test/ref/mega65-c65ce02.sym
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
(void()) main()
|
||||||
|
(label) main::@return
|
||||||
|
|
Loading…
x
Reference in New Issue
Block a user