mirror of
https://gitlab.com/camelot/kickc.git
synced 2024-12-26 03:32:23 +00:00
Merge remote-tracking branch 'origin/master'
This commit is contained in:
commit
46f66c5499
2
pom.xml
2
pom.xml
@ -79,7 +79,7 @@
|
|||||||
<dependency>
|
<dependency>
|
||||||
<groupId>cml.kickass</groupId>
|
<groupId>cml.kickass</groupId>
|
||||||
<artifactId>kickassembler</artifactId>
|
<artifactId>kickassembler</artifactId>
|
||||||
<version>5.24-65ce02.d</version>
|
<version>5.24-65ce02.e</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>dk.camelot64.kickass.xexplugin</groupId>
|
<groupId>dk.camelot64.kickass.xexplugin</groupId>
|
||||||
|
Binary file not shown.
@ -0,0 +1 @@
|
|||||||
|
d35f87fd307d0576de440c34320fae54
|
@ -0,0 +1 @@
|
|||||||
|
fea193965f72acd22809e8a308425124e36cefbd
|
@ -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.24-65ce02.e</version>
|
||||||
|
<description>POM was created from install:install-file</description>
|
||||||
|
</project>
|
@ -0,0 +1 @@
|
|||||||
|
18962fc0bd9f7febf7b4a537dbb68bda
|
@ -0,0 +1 @@
|
|||||||
|
f1bda5c5c9a57c2bffbc8d6c566af673c0ccc293
|
@ -3,7 +3,7 @@
|
|||||||
<groupId>cml.kickass</groupId>
|
<groupId>cml.kickass</groupId>
|
||||||
<artifactId>kickassembler</artifactId>
|
<artifactId>kickassembler</artifactId>
|
||||||
<versioning>
|
<versioning>
|
||||||
<release>5.24-65ce02.d</release>
|
<release>5.24-65ce02.e</release>
|
||||||
<versions>
|
<versions>
|
||||||
<version>4.19</version>
|
<version>4.19</version>
|
||||||
<version>5.7</version>
|
<version>5.7</version>
|
||||||
@ -31,7 +31,8 @@
|
|||||||
<version>5.24-65ce02.b</version>
|
<version>5.24-65ce02.b</version>
|
||||||
<version>5.24-65ce02.c</version>
|
<version>5.24-65ce02.c</version>
|
||||||
<version>5.24-65ce02.d</version>
|
<version>5.24-65ce02.d</version>
|
||||||
|
<version>5.24-65ce02.e</version>
|
||||||
</versions>
|
</versions>
|
||||||
<lastUpdated>20220213103243</lastUpdated>
|
<lastUpdated>20220213212400</lastUpdated>
|
||||||
</versioning>
|
</versioning>
|
||||||
</metadata>
|
</metadata>
|
||||||
|
@ -1 +1 @@
|
|||||||
566035322d1120a899902e225415aea4
|
12dc7c134f8dcf276f4031702b11b5d7
|
@ -1 +1 @@
|
|||||||
9d02e7968040c29f57b25cc02f1ae3c143e7b773
|
8cc20999d0045eea75ba3fff20b93c212b7cc52a
|
@ -65,7 +65,7 @@ public class Cpu45GS02 extends Cpu65xx {
|
|||||||
addOpcode( new int[] {0x42, 0x42, 0xA5},"ldq",CpuAddressingMode.ZP,8,"AXYZnz");
|
addOpcode( new int[] {0x42, 0x42, 0xA5},"ldq",CpuAddressingMode.ZP,8,"AXYZnz");
|
||||||
addOpcode( new int[] {0x42, 0x42, 0xAD},"ldq",CpuAddressingMode.ABS,9,"AXYZnz");
|
addOpcode( new int[] {0x42, 0x42, 0xAD},"ldq",CpuAddressingMode.ABS,9,"AXYZnz");
|
||||||
addOpcode( new int[] {0x42, 0x42, 0xB1},"ldq",CpuAddressingMode.IZY,10,"AXYZnz");
|
addOpcode( new int[] {0x42, 0x42, 0xB1},"ldq",CpuAddressingMode.IZY,10,"AXYZnz");
|
||||||
addOpcode( new int[] {0x42, 0x42, 0xB2},"ldq",CpuAddressingMode.INZ,10,"AXYZnz");
|
addOpcode( new int[] {0x42, 0x42, 0xB2},"ldq",CpuAddressingMode.IZZ,10,"AXYZnz");
|
||||||
addOpcode( new int[] {0x42, 0x42, 0xB5},"ldq",CpuAddressingMode.ZPX,9,"AXYZnz");
|
addOpcode( new int[] {0x42, 0x42, 0xB5},"ldq",CpuAddressingMode.ZPX,9,"AXYZnz");
|
||||||
addOpcode( new int[] {0x42, 0x42, 0xB9},"ldq",CpuAddressingMode.ABY,10,"AXYZnz");
|
addOpcode( new int[] {0x42, 0x42, 0xB9},"ldq",CpuAddressingMode.ABY,10,"AXYZnz");
|
||||||
addOpcode( new int[] {0x42, 0x42, 0xBD},"ldq",CpuAddressingMode.ABX,10,"AXYZnz");
|
addOpcode( new int[] {0x42, 0x42, 0xBD},"ldq",CpuAddressingMode.ABX,10,"AXYZnz");
|
||||||
@ -84,7 +84,7 @@ public class Cpu45GS02 extends Cpu65xx {
|
|||||||
addOpcode( new int[] {0x42, 0x42, 0xea, 0x52},"eorq",CpuAddressingMode.LIN,13,"AXYZnz");
|
addOpcode( new int[] {0x42, 0x42, 0xea, 0x52},"eorq",CpuAddressingMode.LIN,13,"AXYZnz");
|
||||||
addOpcode( new int[] {0x42, 0x42, 0xea, 0x72},"adcq",CpuAddressingMode.LIN,13,"AXYZcvnz");
|
addOpcode( new int[] {0x42, 0x42, 0xea, 0x72},"adcq",CpuAddressingMode.LIN,13,"AXYZcvnz");
|
||||||
addOpcode( new int[] {0x42, 0x42, 0xea, 0x92},"stq",CpuAddressingMode.LIN,13,"");
|
addOpcode( new int[] {0x42, 0x42, 0xea, 0x92},"stq",CpuAddressingMode.LIN,13,"");
|
||||||
addOpcode( new int[] {0x42, 0x42, 0xea, 0xB2},"ldq",CpuAddressingMode.LIN,13,"AXYZnz");
|
addOpcode( new int[] {0x42, 0x42, 0xea, 0xB2},"ldq",CpuAddressingMode.LIZ,13,"AXYZnz");
|
||||||
addOpcode( new int[] {0x42, 0x42, 0xea, 0xD2},"cpq",CpuAddressingMode.LIN,13,"cnz");
|
addOpcode( new int[] {0x42, 0x42, 0xea, 0xD2},"cpq",CpuAddressingMode.LIN,13,"cnz");
|
||||||
addOpcode( new int[] {0x42, 0x42, 0xea, 0xF2},"sbcq",CpuAddressingMode.LIN,13,"AXYZcvnz");
|
addOpcode( new int[] {0x42, 0x42, 0xea, 0xF2},"sbcq",CpuAddressingMode.LIN,13,"AXYZcvnz");
|
||||||
addOpcode( new int[] {0x42, 0x42, 0xED},"sbcq",CpuAddressingMode.ABS,9,"AXYZcvnz");
|
addOpcode( new int[] {0x42, 0x42, 0xED},"sbcq",CpuAddressingMode.ABS,9,"AXYZcvnz");
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
cp ./repo/cml/kickass/kickassembler/maven-metadata.xml ./repo/cml/kickass/kickassembler/maven-metadata-local.xml
|
cp ./repo/cml/kickass/kickassembler/maven-metadata.xml ./repo/cml/kickass/kickassembler/maven-metadata-local.xml
|
||||||
|
|
||||||
# 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.24-65ce02.d
|
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.24-65ce02.e
|
||||||
|
|
||||||
# Finalize by making the local metadata official
|
# Finalize by making the local metadata official
|
||||||
pushd ./repo/cml/kickass/kickassembler
|
pushd ./repo/cml/kickass/kickassembler
|
||||||
|
@ -46,10 +46,14 @@ void main() {
|
|||||||
// 65C02: ($1234,X)
|
// 65C02: ($1234,X)
|
||||||
jmp ($1234,x)
|
jmp ($1234,x)
|
||||||
lbl3:
|
lbl3:
|
||||||
|
// 45GS02: 32bit Indirect,Z
|
||||||
|
ldq ($12),z
|
||||||
// 45GS02: Indirect Long,Z
|
// 45GS02: Indirect Long,Z
|
||||||
lda (($12)),z
|
lda (($12)),z
|
||||||
// 45GS02: Indirect Long
|
// 45GS02: 32bit Indirect Long,Z
|
||||||
ldq (($12))
|
ldq (($12)),z
|
||||||
|
// 45GS02: 32bit Indirect Long
|
||||||
|
stq (($12))
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -32,8 +32,10 @@ main: {
|
|||||||
lbl2:
|
lbl2:
|
||||||
jmp ($1234,x)
|
jmp ($1234,x)
|
||||||
lbl3:
|
lbl3:
|
||||||
|
ldq ($12),z
|
||||||
lda (($12)),z
|
lda (($12)),z
|
||||||
ldq (($12))
|
ldq (($12)),z
|
||||||
|
stq (($12))
|
||||||
// }
|
// }
|
||||||
rts
|
rts
|
||||||
}
|
}
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
|
|
||||||
void main()
|
void main()
|
||||||
main: scope:[main] from
|
main: scope:[main] from
|
||||||
asm { inx lda#$12 phw#$1234 lda$12 lda$12,x ldx$12,y lda($12,x) lda($12),y ora($12),z lda($12,sp),y lda$1234 lda$1234,x lda$1234,y beqlbl1 lbeqfar bbr0$12,lbl2 lbl1: jmp($1234) lbl2: jmp($1234,x) lbl3: lda(($12)),z ldq(($12)) }
|
asm { inx lda#$12 phw#$1234 lda$12 lda$12,x ldx$12,y lda($12,x) lda($12),y ora($12),z lda($12,sp),y lda$1234 lda$1234,x lda$1234,y beqlbl1 lbeqfar bbr0$12,lbl2 lbl1: jmp($1234) lbl2: jmp($1234,x) lbl3: ldq($12),z lda(($12)),z ldq(($12)),z stq(($12)) }
|
||||||
to:main::@return
|
to:main::@return
|
||||||
main::@return: scope:[main] from main
|
main::@return: scope:[main] from main
|
||||||
[1] return
|
[1] return
|
||||||
|
@ -4,7 +4,7 @@ CONTROL FLOW GRAPH SSA
|
|||||||
|
|
||||||
void main()
|
void main()
|
||||||
main: scope:[main] from __start
|
main: scope:[main] from __start
|
||||||
asm { inx lda#$12 phw#$1234 lda$12 lda$12,x ldx$12,y lda($12,x) lda($12),y ora($12),z lda($12,sp),y lda$1234 lda$1234,x lda$1234,y beqlbl1 lbeqfar bbr0$12,lbl2 lbl1: jmp($1234) lbl2: jmp($1234,x) lbl3: lda(($12)),z ldq(($12)) }
|
asm { inx lda#$12 phw#$1234 lda$12 lda$12,x ldx$12,y lda($12,x) lda($12),y ora($12),z lda($12,sp),y lda$1234 lda$1234,x lda$1234,y beqlbl1 lbeqfar bbr0$12,lbl2 lbl1: jmp($1234) lbl2: jmp($1234,x) lbl3: ldq($12),z lda(($12)),z ldq(($12)),z stq(($12)) }
|
||||||
to:main::@return
|
to:main::@return
|
||||||
main::@return: scope:[main] from main
|
main::@return: scope:[main] from main
|
||||||
return
|
return
|
||||||
@ -41,7 +41,7 @@ FINAL CONTROL FLOW GRAPH
|
|||||||
|
|
||||||
void main()
|
void main()
|
||||||
main: scope:[main] from
|
main: scope:[main] from
|
||||||
asm { inx lda#$12 phw#$1234 lda$12 lda$12,x ldx$12,y lda($12,x) lda($12),y ora($12),z lda($12,sp),y lda$1234 lda$1234,x lda$1234,y beqlbl1 lbeqfar bbr0$12,lbl2 lbl1: jmp($1234) lbl2: jmp($1234,x) lbl3: lda(($12)),z ldq(($12)) }
|
asm { inx lda#$12 phw#$1234 lda$12 lda$12,x ldx$12,y lda($12,x) lda($12),y ora($12),z lda($12,sp),y lda$1234 lda$1234,x lda$1234,y beqlbl1 lbeqfar bbr0$12,lbl2 lbl1: jmp($1234) lbl2: jmp($1234,x) lbl3: ldq($12),z lda(($12)),z ldq(($12)),z stq(($12)) }
|
||||||
to:main::@return
|
to:main::@return
|
||||||
main::@return: scope:[main] from main
|
main::@return: scope:[main] from main
|
||||||
[1] return
|
[1] return
|
||||||
@ -54,14 +54,14 @@ void main()
|
|||||||
Initial phi equivalence classes
|
Initial phi equivalence classes
|
||||||
Complete equivalence classes
|
Complete equivalence classes
|
||||||
REGISTER UPLIFT POTENTIAL REGISTERS
|
REGISTER UPLIFT POTENTIAL REGISTERS
|
||||||
Statement asm { inx lda#$12 phw#$1234 lda$12 lda$12,x ldx$12,y lda($12,x) lda($12),y ora($12),z lda($12,sp),y lda$1234 lda$1234,x lda$1234,y beqlbl1 lbeqfar bbr0$12,lbl2 lbl1: jmp($1234) lbl2: jmp($1234,x) lbl3: lda(($12)),z ldq(($12)) } always clobbers reg byte a reg byte x reg byte y reg byte z
|
Statement asm { inx lda#$12 phw#$1234 lda$12 lda$12,x ldx$12,y lda($12,x) lda($12),y ora($12),z lda($12,sp),y lda$1234 lda$1234,x lda$1234,y beqlbl1 lbeqfar bbr0$12,lbl2 lbl1: jmp($1234) lbl2: jmp($1234,x) lbl3: ldq($12),z lda(($12)),z ldq(($12)),z stq(($12)) } always clobbers reg byte a reg byte x reg byte y reg byte z
|
||||||
|
|
||||||
REGISTER UPLIFT SCOPES
|
REGISTER UPLIFT SCOPES
|
||||||
Uplift Scope [main]
|
Uplift Scope [main]
|
||||||
Uplift Scope []
|
Uplift Scope []
|
||||||
|
|
||||||
Uplifting [main] best 106 combination
|
Uplifting [main] best 129 combination
|
||||||
Uplifting [] best 106 combination
|
Uplifting [] best 129 combination
|
||||||
|
|
||||||
ASSEMBLER BEFORE OPTIMIZATION
|
ASSEMBLER BEFORE OPTIMIZATION
|
||||||
// File Comments
|
// File Comments
|
||||||
@ -80,7 +80,7 @@ ASSEMBLER BEFORE OPTIMIZATION
|
|||||||
.segment Code
|
.segment Code
|
||||||
// main
|
// main
|
||||||
main: {
|
main: {
|
||||||
// asm { inx lda#$12 phw#$1234 lda$12 lda$12,x ldx$12,y lda($12,x) lda($12),y ora($12),z lda($12,sp),y lda$1234 lda$1234,x lda$1234,y beqlbl1 lbeqfar bbr0$12,lbl2 lbl1: jmp($1234) lbl2: jmp($1234,x) lbl3: lda(($12)),z ldq(($12)) }
|
// asm { inx lda#$12 phw#$1234 lda$12 lda$12,x ldx$12,y lda($12,x) lda($12),y ora($12),z lda($12,sp),y lda$1234 lda$1234,x lda$1234,y beqlbl1 lbeqfar bbr0$12,lbl2 lbl1: jmp($1234) lbl2: jmp($1234,x) lbl3: ldq($12),z lda(($12)),z ldq(($12)),z stq(($12)) }
|
||||||
inx
|
inx
|
||||||
lda #$12
|
lda #$12
|
||||||
phw #$1234
|
phw #$1234
|
||||||
@ -102,8 +102,10 @@ main: {
|
|||||||
lbl2:
|
lbl2:
|
||||||
jmp ($1234,x)
|
jmp ($1234,x)
|
||||||
lbl3:
|
lbl3:
|
||||||
|
ldq ($12),z
|
||||||
lda (($12)),z
|
lda (($12)),z
|
||||||
ldq (($12))
|
ldq (($12)),z
|
||||||
|
stq (($12))
|
||||||
jmp __breturn
|
jmp __breturn
|
||||||
// main::@return
|
// main::@return
|
||||||
__breturn:
|
__breturn:
|
||||||
@ -128,7 +130,7 @@ void main()
|
|||||||
|
|
||||||
|
|
||||||
FINAL ASSEMBLER
|
FINAL ASSEMBLER
|
||||||
Score: 103
|
Score: 126
|
||||||
|
|
||||||
// File Comments
|
// File Comments
|
||||||
// Tests the different ASM addressing modes
|
// Tests the different ASM addressing modes
|
||||||
@ -147,7 +149,7 @@ Score: 103
|
|||||||
// main
|
// main
|
||||||
main: {
|
main: {
|
||||||
// asm
|
// asm
|
||||||
// asm { inx lda#$12 phw#$1234 lda$12 lda$12,x ldx$12,y lda($12,x) lda($12),y ora($12),z lda($12,sp),y lda$1234 lda$1234,x lda$1234,y beqlbl1 lbeqfar bbr0$12,lbl2 lbl1: jmp($1234) lbl2: jmp($1234,x) lbl3: lda(($12)),z ldq(($12)) }
|
// asm { inx lda#$12 phw#$1234 lda$12 lda$12,x ldx$12,y lda($12,x) lda($12),y ora($12),z lda($12,sp),y lda$1234 lda$1234,x lda$1234,y beqlbl1 lbeqfar bbr0$12,lbl2 lbl1: jmp($1234) lbl2: jmp($1234,x) lbl3: ldq($12),z lda(($12)),z ldq(($12)),z stq(($12)) }
|
||||||
inx
|
inx
|
||||||
lda #$12
|
lda #$12
|
||||||
phw #$1234
|
phw #$1234
|
||||||
@ -169,8 +171,10 @@ main: {
|
|||||||
lbl2:
|
lbl2:
|
||||||
jmp ($1234,x)
|
jmp ($1234,x)
|
||||||
lbl3:
|
lbl3:
|
||||||
|
ldq ($12),z
|
||||||
lda (($12)),z
|
lda (($12)),z
|
||||||
ldq (($12))
|
ldq (($12)),z
|
||||||
|
stq (($12))
|
||||||
// main::@return
|
// main::@return
|
||||||
// }
|
// }
|
||||||
// [1] return
|
// [1] return
|
||||||
|
Loading…
Reference in New Issue
Block a user