From 3a14d2ef5b074ee6ea5e17c00fede33491474ea7 Mon Sep 17 00:00:00 2001 From: jespergravgaard Date: Sun, 30 Jul 2017 11:28:28 +0200 Subject: [PATCH] Cleaned up pointer handling in ASM fragments and binding --- .../dk/camelot64/kickc/asm/AsmFragment.java | 37 +---------------- .../asm/PointerDereferenceRegisterZpByte.java | 34 ---------------- .../kickc/asm/fragment/_star_cowo1=aby.asm | 1 + ...coptr1=coby2.asm => _star_cowo1=coby2.asm} | 2 +- .../kickc/asm/fragment/_star_cowo1=xby.asm | 1 + ...coptr1=zpby1.asm => _star_cowo1=zpby1.asm} | 2 +- ...by1=coby1.asm => _star_zpptrby1=coby1.asm} | 2 +- .../kickc/asm/fragment/_star_zpptrby1=xby.asm | 3 ++ ...by1=zpby1.asm => _star_zpptrby1=zpby1.asm} | 2 +- .../kickc/asm/fragment/coptr1=aby.asm | 1 - .../kickc/asm/fragment/coptr1=xby.asm | 1 - ..._aby=aby.asm => cowo1_staridx_aby=aby.asm} | 0 ...oby3.asm => cowo1_staridx_coby2=coby3.asm} | 0 ..._xby=aby.asm => cowo1_staridx_xby=aby.asm} | 0 ..._xby=xby.asm => cowo1_staridx_xby=xby.asm} | 0 ...=zpby1.asm => cowo1_staridx_xby=zpby1.asm} | 0 ..._yby=aby.asm => cowo1_staridx_yby=aby.asm} | 0 ...=zpby1.asm => cowo1_staridx_yby=zpby1.asm} | 0 ...y1=aby.asm => cowo1_staridx_zpby1=aby.asm} | 0 ...oby2.asm => cowo1_staridx_zpby1=coby2.asm} | 0 ...pby1.asm => cowo1_staridx_zpby1=zpby1.asm} | 0 ...pby2.asm => cowo1_staridx_zpby1=zpby2.asm} | 0 ...oby2.asm => cowo1_staridx_zpwo1=coby2.asm} | 0 .../kickc/asm/fragment/zpby1=zpiby1.asm | 3 -- .../kickc/asm/fragment/zpiby1=xby.asm | 3 -- ...y=aby.asm => zpptrby1_staridx_yby=aby.asm} | 0 ...aby.asm => zpptrby1_staridx_zpby1=aby.asm} | 0 ...2.asm => zpptrby1_staridx_zpby1=zpby2.asm} | 0 .../dk/camelot64/kickc/test/ref/bresenham.log | 8 ++-- .../dk/camelot64/kickc/test/ref/fibmem.log | 24 +++++------ .../camelot64/kickc/test/ref/flipper-rex2.log | 40 +++++++++---------- .../dk/camelot64/kickc/test/ref/loopnest.log | 8 ++-- .../dk/camelot64/kickc/test/ref/loopnest2.log | 8 ++-- .../dk/camelot64/kickc/test/ref/minus.log | 8 ++-- .../dk/camelot64/kickc/test/ref/ptrtest.log | 24 +++++------ 35 files changed, 71 insertions(+), 141 deletions(-) delete mode 100644 src/main/java/dk/camelot64/kickc/asm/PointerDereferenceRegisterZpByte.java create mode 100644 src/main/java/dk/camelot64/kickc/asm/fragment/_star_cowo1=aby.asm rename src/main/java/dk/camelot64/kickc/asm/fragment/{coptr1=coby2.asm => _star_cowo1=coby2.asm} (52%) create mode 100644 src/main/java/dk/camelot64/kickc/asm/fragment/_star_cowo1=xby.asm rename src/main/java/dk/camelot64/kickc/asm/fragment/{coptr1=zpby1.asm => _star_cowo1=zpby1.asm} (50%) rename src/main/java/dk/camelot64/kickc/asm/fragment/{zpiby1=coby1.asm => _star_zpptrby1=coby1.asm} (52%) create mode 100644 src/main/java/dk/camelot64/kickc/asm/fragment/_star_zpptrby1=xby.asm rename src/main/java/dk/camelot64/kickc/asm/fragment/{zpiby1=zpby1.asm => _star_zpptrby1=zpby1.asm} (51%) delete mode 100644 src/main/java/dk/camelot64/kickc/asm/fragment/coptr1=aby.asm delete mode 100644 src/main/java/dk/camelot64/kickc/asm/fragment/coptr1=xby.asm rename src/main/java/dk/camelot64/kickc/asm/fragment/{ptr_cowo1_aby=aby.asm => cowo1_staridx_aby=aby.asm} (100%) rename src/main/java/dk/camelot64/kickc/asm/fragment/{ptr_cowo1_coby2=coby3.asm => cowo1_staridx_coby2=coby3.asm} (100%) rename src/main/java/dk/camelot64/kickc/asm/fragment/{ptr_cowo1_xby=aby.asm => cowo1_staridx_xby=aby.asm} (100%) rename src/main/java/dk/camelot64/kickc/asm/fragment/{ptr_cowo1_xby=xby.asm => cowo1_staridx_xby=xby.asm} (100%) rename src/main/java/dk/camelot64/kickc/asm/fragment/{ptr_cowo1_xby=zpby1.asm => cowo1_staridx_xby=zpby1.asm} (100%) rename src/main/java/dk/camelot64/kickc/asm/fragment/{ptr_cowo1_yby=aby.asm => cowo1_staridx_yby=aby.asm} (100%) rename src/main/java/dk/camelot64/kickc/asm/fragment/{ptr_cowo1_yby=zpby1.asm => cowo1_staridx_yby=zpby1.asm} (100%) rename src/main/java/dk/camelot64/kickc/asm/fragment/{ptr_cowo1_zpby1=aby.asm => cowo1_staridx_zpby1=aby.asm} (100%) rename src/main/java/dk/camelot64/kickc/asm/fragment/{ptr_cowo1_zpby1=coby2.asm => cowo1_staridx_zpby1=coby2.asm} (100%) rename src/main/java/dk/camelot64/kickc/asm/fragment/{ptr_cowo1_zpby1=zpby1.asm => cowo1_staridx_zpby1=zpby1.asm} (100%) rename src/main/java/dk/camelot64/kickc/asm/fragment/{ptr_cowo1_zpby1=zpby2.asm => cowo1_staridx_zpby1=zpby2.asm} (100%) rename src/main/java/dk/camelot64/kickc/asm/fragment/{ptr_cowo1_zpwo1=coby2.asm => cowo1_staridx_zpwo1=coby2.asm} (100%) delete mode 100644 src/main/java/dk/camelot64/kickc/asm/fragment/zpby1=zpiby1.asm delete mode 100644 src/main/java/dk/camelot64/kickc/asm/fragment/zpiby1=xby.asm rename src/main/java/dk/camelot64/kickc/asm/fragment/{ptr_zpptrby1_yby=aby.asm => zpptrby1_staridx_yby=aby.asm} (100%) rename src/main/java/dk/camelot64/kickc/asm/fragment/{ptr_zpptrby1_zpby1=aby.asm => zpptrby1_staridx_zpby1=aby.asm} (100%) rename src/main/java/dk/camelot64/kickc/asm/fragment/{ptr_zpptrby1_zpby1=zpby2.asm => zpptrby1_staridx_zpby1=zpby2.asm} (100%) diff --git a/src/main/java/dk/camelot64/kickc/asm/AsmFragment.java b/src/main/java/dk/camelot64/kickc/asm/AsmFragment.java index 1c56b93d4..030f52329 100644 --- a/src/main/java/dk/camelot64/kickc/asm/AsmFragment.java +++ b/src/main/java/dk/camelot64/kickc/asm/AsmFragment.java @@ -223,21 +223,10 @@ public class AsmFragment { value = symbols.getRegister((Variable) value); } else if (value instanceof PointerDereferenceSimple) { PointerDereferenceSimple deref = (PointerDereferenceSimple) value; - RValue pointer = deref.getPointer(); - if(pointer instanceof VariableRef) { - VariableRef pointerRef = (VariableRef) pointer; - Variable pointerVar = symbols.getVariable(pointerRef); - RegisterAllocation.Register register = symbols.getRegister(pointerVar); - value = new PointerDereferenceRegisterZpByte((RegisterAllocation.RegisterZpPointerByte) register); - } + return "_star_" + bind(deref.getPointer()); } else if (value instanceof PointerDereferenceIndexed) { PointerDereferenceIndexed deref = (PointerDereferenceIndexed) value; - String compositeName = - "ptr_" - + bind(deref.getPointer()) - + "_" - + bind(deref.getIndex()); - return compositeName; + return bind(deref.getPointer()) + "_staridx_" + bind(deref.getIndex()); } // Find value if it is already bound @@ -277,24 +266,6 @@ public class AsmFragment { bindings.put(name, value); return name; } - } else if (value instanceof PointerDereferenceRegisterZpByte) { - RegisterAllocation.Register register = ((PointerDereferenceRegisterZpByte) value).getPointerRegister(); - if (RegisterAllocation.RegisterType.ZP_PTR_BYTE.equals(register.getType())) { - String name = "zpiby" + nextZpPtrIdx++; - bindings.put(name, value); - return name; - } - } else if (value instanceof PointerDereferenceSimple) { - PointerDereferenceSimple deref = (PointerDereferenceSimple) value; - RValue pointer = deref.getPointer(); - if(pointer instanceof Constant) { - Constant pointerConst = (Constant) pointer; - if (pointerConst instanceof ConstantInteger) { - String name = "coptr" + nextConstByteIdx++; - bindings.put(name, value); - return name; - } - } } else if (value instanceof ConstantInteger) { ConstantInteger intValue = (ConstantInteger) value; if (SymbolTypeBasic.BYTE.equals(intValue.getType())) { @@ -339,10 +310,6 @@ public class AsmFragment { } else { throw new RuntimeException("Register Type not implemented " + register); } - } else if (boundValue instanceof PointerDereferenceRegisterZpByte) { - PointerDereferenceRegisterZpByte deref = (PointerDereferenceRegisterZpByte) boundValue; - RegisterAllocation.RegisterZpPointerByte register = deref.getPointerRegister(); - bound = Integer.toString(register.getZp()); } else if (boundValue instanceof PointerDereferenceSimple) { PointerDereferenceSimple deref = (PointerDereferenceSimple) boundValue; RValue pointer = deref.getPointer(); diff --git a/src/main/java/dk/camelot64/kickc/asm/PointerDereferenceRegisterZpByte.java b/src/main/java/dk/camelot64/kickc/asm/PointerDereferenceRegisterZpByte.java deleted file mode 100644 index d40fb3ab9..000000000 --- a/src/main/java/dk/camelot64/kickc/asm/PointerDereferenceRegisterZpByte.java +++ /dev/null @@ -1,34 +0,0 @@ -package dk.camelot64.kickc.asm; - -import dk.camelot64.kickc.icl.PointerDereference; -import dk.camelot64.kickc.icl.ProgramScope; -import dk.camelot64.kickc.icl.RegisterAllocation; - -/** A dereferenced ZP pointer to a byte */ -public class PointerDereferenceRegisterZpByte implements PointerDereference { - - private RegisterAllocation.RegisterZpPointerByte pointer; - - public PointerDereferenceRegisterZpByte(RegisterAllocation.RegisterZpPointerByte pointer) { - this.pointer = pointer; - } - - public RegisterAllocation.RegisterZpPointerByte getPointer() { - return pointer; - } - - public RegisterAllocation.RegisterZpPointerByte getPointerRegister() { - return pointer; - } - - @Override - public String toString() { - return toString(null); - } - - @Override - public String toString(ProgramScope scope) { - return "*(" + pointer.toString(scope) + ')'; - } - -} diff --git a/src/main/java/dk/camelot64/kickc/asm/fragment/_star_cowo1=aby.asm b/src/main/java/dk/camelot64/kickc/asm/fragment/_star_cowo1=aby.asm new file mode 100644 index 000000000..edfa6f005 --- /dev/null +++ b/src/main/java/dk/camelot64/kickc/asm/fragment/_star_cowo1=aby.asm @@ -0,0 +1 @@ +sta {cowo1} \ No newline at end of file diff --git a/src/main/java/dk/camelot64/kickc/asm/fragment/coptr1=coby2.asm b/src/main/java/dk/camelot64/kickc/asm/fragment/_star_cowo1=coby2.asm similarity index 52% rename from src/main/java/dk/camelot64/kickc/asm/fragment/coptr1=coby2.asm rename to src/main/java/dk/camelot64/kickc/asm/fragment/_star_cowo1=coby2.asm index 5956ed8ab..54f02b9be 100644 --- a/src/main/java/dk/camelot64/kickc/asm/fragment/coptr1=coby2.asm +++ b/src/main/java/dk/camelot64/kickc/asm/fragment/_star_cowo1=coby2.asm @@ -1,2 +1,2 @@ lda #{coby2} -sta {coptr1} \ No newline at end of file +sta {cowo1} \ No newline at end of file diff --git a/src/main/java/dk/camelot64/kickc/asm/fragment/_star_cowo1=xby.asm b/src/main/java/dk/camelot64/kickc/asm/fragment/_star_cowo1=xby.asm new file mode 100644 index 000000000..3cf07809a --- /dev/null +++ b/src/main/java/dk/camelot64/kickc/asm/fragment/_star_cowo1=xby.asm @@ -0,0 +1 @@ +stx {cowo1} \ No newline at end of file diff --git a/src/main/java/dk/camelot64/kickc/asm/fragment/coptr1=zpby1.asm b/src/main/java/dk/camelot64/kickc/asm/fragment/_star_cowo1=zpby1.asm similarity index 50% rename from src/main/java/dk/camelot64/kickc/asm/fragment/coptr1=zpby1.asm rename to src/main/java/dk/camelot64/kickc/asm/fragment/_star_cowo1=zpby1.asm index 94df8a017..d9daf4c3d 100644 --- a/src/main/java/dk/camelot64/kickc/asm/fragment/coptr1=zpby1.asm +++ b/src/main/java/dk/camelot64/kickc/asm/fragment/_star_cowo1=zpby1.asm @@ -1,2 +1,2 @@ lda {zpby1} -sta {coptr1} \ No newline at end of file +sta {cowo1} \ No newline at end of file diff --git a/src/main/java/dk/camelot64/kickc/asm/fragment/zpiby1=coby1.asm b/src/main/java/dk/camelot64/kickc/asm/fragment/_star_zpptrby1=coby1.asm similarity index 52% rename from src/main/java/dk/camelot64/kickc/asm/fragment/zpiby1=coby1.asm rename to src/main/java/dk/camelot64/kickc/asm/fragment/_star_zpptrby1=coby1.asm index ff43e9fe8..746385d47 100644 --- a/src/main/java/dk/camelot64/kickc/asm/fragment/zpiby1=coby1.asm +++ b/src/main/java/dk/camelot64/kickc/asm/fragment/_star_zpptrby1=coby1.asm @@ -1,3 +1,3 @@ ldy #0 lda #{coby1} -sta ({zpiby1}),y \ No newline at end of file +sta ({zpptrby1}),y \ No newline at end of file diff --git a/src/main/java/dk/camelot64/kickc/asm/fragment/_star_zpptrby1=xby.asm b/src/main/java/dk/camelot64/kickc/asm/fragment/_star_zpptrby1=xby.asm new file mode 100644 index 000000000..0401fb0a0 --- /dev/null +++ b/src/main/java/dk/camelot64/kickc/asm/fragment/_star_zpptrby1=xby.asm @@ -0,0 +1,3 @@ +txa +ldy #0 +sta ({zpptrby1}),y \ No newline at end of file diff --git a/src/main/java/dk/camelot64/kickc/asm/fragment/zpiby1=zpby1.asm b/src/main/java/dk/camelot64/kickc/asm/fragment/_star_zpptrby1=zpby1.asm similarity index 51% rename from src/main/java/dk/camelot64/kickc/asm/fragment/zpiby1=zpby1.asm rename to src/main/java/dk/camelot64/kickc/asm/fragment/_star_zpptrby1=zpby1.asm index 7a4cba618..b8b17a8e1 100644 --- a/src/main/java/dk/camelot64/kickc/asm/fragment/zpiby1=zpby1.asm +++ b/src/main/java/dk/camelot64/kickc/asm/fragment/_star_zpptrby1=zpby1.asm @@ -1,3 +1,3 @@ ldy #0 lda {zpby1} -sta ({zpiby1}),y \ No newline at end of file +sta ({zpptrby1}),y \ No newline at end of file diff --git a/src/main/java/dk/camelot64/kickc/asm/fragment/coptr1=aby.asm b/src/main/java/dk/camelot64/kickc/asm/fragment/coptr1=aby.asm deleted file mode 100644 index 9a6a6b704..000000000 --- a/src/main/java/dk/camelot64/kickc/asm/fragment/coptr1=aby.asm +++ /dev/null @@ -1 +0,0 @@ -sta {coptr1} \ No newline at end of file diff --git a/src/main/java/dk/camelot64/kickc/asm/fragment/coptr1=xby.asm b/src/main/java/dk/camelot64/kickc/asm/fragment/coptr1=xby.asm deleted file mode 100644 index 966c61f81..000000000 --- a/src/main/java/dk/camelot64/kickc/asm/fragment/coptr1=xby.asm +++ /dev/null @@ -1 +0,0 @@ -stx {coptr1} \ No newline at end of file diff --git a/src/main/java/dk/camelot64/kickc/asm/fragment/ptr_cowo1_aby=aby.asm b/src/main/java/dk/camelot64/kickc/asm/fragment/cowo1_staridx_aby=aby.asm similarity index 100% rename from src/main/java/dk/camelot64/kickc/asm/fragment/ptr_cowo1_aby=aby.asm rename to src/main/java/dk/camelot64/kickc/asm/fragment/cowo1_staridx_aby=aby.asm diff --git a/src/main/java/dk/camelot64/kickc/asm/fragment/ptr_cowo1_coby2=coby3.asm b/src/main/java/dk/camelot64/kickc/asm/fragment/cowo1_staridx_coby2=coby3.asm similarity index 100% rename from src/main/java/dk/camelot64/kickc/asm/fragment/ptr_cowo1_coby2=coby3.asm rename to src/main/java/dk/camelot64/kickc/asm/fragment/cowo1_staridx_coby2=coby3.asm diff --git a/src/main/java/dk/camelot64/kickc/asm/fragment/ptr_cowo1_xby=aby.asm b/src/main/java/dk/camelot64/kickc/asm/fragment/cowo1_staridx_xby=aby.asm similarity index 100% rename from src/main/java/dk/camelot64/kickc/asm/fragment/ptr_cowo1_xby=aby.asm rename to src/main/java/dk/camelot64/kickc/asm/fragment/cowo1_staridx_xby=aby.asm diff --git a/src/main/java/dk/camelot64/kickc/asm/fragment/ptr_cowo1_xby=xby.asm b/src/main/java/dk/camelot64/kickc/asm/fragment/cowo1_staridx_xby=xby.asm similarity index 100% rename from src/main/java/dk/camelot64/kickc/asm/fragment/ptr_cowo1_xby=xby.asm rename to src/main/java/dk/camelot64/kickc/asm/fragment/cowo1_staridx_xby=xby.asm diff --git a/src/main/java/dk/camelot64/kickc/asm/fragment/ptr_cowo1_xby=zpby1.asm b/src/main/java/dk/camelot64/kickc/asm/fragment/cowo1_staridx_xby=zpby1.asm similarity index 100% rename from src/main/java/dk/camelot64/kickc/asm/fragment/ptr_cowo1_xby=zpby1.asm rename to src/main/java/dk/camelot64/kickc/asm/fragment/cowo1_staridx_xby=zpby1.asm diff --git a/src/main/java/dk/camelot64/kickc/asm/fragment/ptr_cowo1_yby=aby.asm b/src/main/java/dk/camelot64/kickc/asm/fragment/cowo1_staridx_yby=aby.asm similarity index 100% rename from src/main/java/dk/camelot64/kickc/asm/fragment/ptr_cowo1_yby=aby.asm rename to src/main/java/dk/camelot64/kickc/asm/fragment/cowo1_staridx_yby=aby.asm diff --git a/src/main/java/dk/camelot64/kickc/asm/fragment/ptr_cowo1_yby=zpby1.asm b/src/main/java/dk/camelot64/kickc/asm/fragment/cowo1_staridx_yby=zpby1.asm similarity index 100% rename from src/main/java/dk/camelot64/kickc/asm/fragment/ptr_cowo1_yby=zpby1.asm rename to src/main/java/dk/camelot64/kickc/asm/fragment/cowo1_staridx_yby=zpby1.asm diff --git a/src/main/java/dk/camelot64/kickc/asm/fragment/ptr_cowo1_zpby1=aby.asm b/src/main/java/dk/camelot64/kickc/asm/fragment/cowo1_staridx_zpby1=aby.asm similarity index 100% rename from src/main/java/dk/camelot64/kickc/asm/fragment/ptr_cowo1_zpby1=aby.asm rename to src/main/java/dk/camelot64/kickc/asm/fragment/cowo1_staridx_zpby1=aby.asm diff --git a/src/main/java/dk/camelot64/kickc/asm/fragment/ptr_cowo1_zpby1=coby2.asm b/src/main/java/dk/camelot64/kickc/asm/fragment/cowo1_staridx_zpby1=coby2.asm similarity index 100% rename from src/main/java/dk/camelot64/kickc/asm/fragment/ptr_cowo1_zpby1=coby2.asm rename to src/main/java/dk/camelot64/kickc/asm/fragment/cowo1_staridx_zpby1=coby2.asm diff --git a/src/main/java/dk/camelot64/kickc/asm/fragment/ptr_cowo1_zpby1=zpby1.asm b/src/main/java/dk/camelot64/kickc/asm/fragment/cowo1_staridx_zpby1=zpby1.asm similarity index 100% rename from src/main/java/dk/camelot64/kickc/asm/fragment/ptr_cowo1_zpby1=zpby1.asm rename to src/main/java/dk/camelot64/kickc/asm/fragment/cowo1_staridx_zpby1=zpby1.asm diff --git a/src/main/java/dk/camelot64/kickc/asm/fragment/ptr_cowo1_zpby1=zpby2.asm b/src/main/java/dk/camelot64/kickc/asm/fragment/cowo1_staridx_zpby1=zpby2.asm similarity index 100% rename from src/main/java/dk/camelot64/kickc/asm/fragment/ptr_cowo1_zpby1=zpby2.asm rename to src/main/java/dk/camelot64/kickc/asm/fragment/cowo1_staridx_zpby1=zpby2.asm diff --git a/src/main/java/dk/camelot64/kickc/asm/fragment/ptr_cowo1_zpwo1=coby2.asm b/src/main/java/dk/camelot64/kickc/asm/fragment/cowo1_staridx_zpwo1=coby2.asm similarity index 100% rename from src/main/java/dk/camelot64/kickc/asm/fragment/ptr_cowo1_zpwo1=coby2.asm rename to src/main/java/dk/camelot64/kickc/asm/fragment/cowo1_staridx_zpwo1=coby2.asm diff --git a/src/main/java/dk/camelot64/kickc/asm/fragment/zpby1=zpiby1.asm b/src/main/java/dk/camelot64/kickc/asm/fragment/zpby1=zpiby1.asm deleted file mode 100644 index a39f6b795..000000000 --- a/src/main/java/dk/camelot64/kickc/asm/fragment/zpby1=zpiby1.asm +++ /dev/null @@ -1,3 +0,0 @@ -ldy #0 -lda ({zpiby1}),y -sta {zpby1} \ No newline at end of file diff --git a/src/main/java/dk/camelot64/kickc/asm/fragment/zpiby1=xby.asm b/src/main/java/dk/camelot64/kickc/asm/fragment/zpiby1=xby.asm deleted file mode 100644 index ca9c4dc4e..000000000 --- a/src/main/java/dk/camelot64/kickc/asm/fragment/zpiby1=xby.asm +++ /dev/null @@ -1,3 +0,0 @@ -txa -ldy #0 -sta ({zpiby1}),y \ No newline at end of file diff --git a/src/main/java/dk/camelot64/kickc/asm/fragment/ptr_zpptrby1_yby=aby.asm b/src/main/java/dk/camelot64/kickc/asm/fragment/zpptrby1_staridx_yby=aby.asm similarity index 100% rename from src/main/java/dk/camelot64/kickc/asm/fragment/ptr_zpptrby1_yby=aby.asm rename to src/main/java/dk/camelot64/kickc/asm/fragment/zpptrby1_staridx_yby=aby.asm diff --git a/src/main/java/dk/camelot64/kickc/asm/fragment/ptr_zpptrby1_zpby1=aby.asm b/src/main/java/dk/camelot64/kickc/asm/fragment/zpptrby1_staridx_zpby1=aby.asm similarity index 100% rename from src/main/java/dk/camelot64/kickc/asm/fragment/ptr_zpptrby1_zpby1=aby.asm rename to src/main/java/dk/camelot64/kickc/asm/fragment/zpptrby1_staridx_zpby1=aby.asm diff --git a/src/main/java/dk/camelot64/kickc/asm/fragment/ptr_zpptrby1_zpby1=zpby2.asm b/src/main/java/dk/camelot64/kickc/asm/fragment/zpptrby1_staridx_zpby1=zpby2.asm similarity index 100% rename from src/main/java/dk/camelot64/kickc/asm/fragment/ptr_zpptrby1_zpby1=zpby2.asm rename to src/main/java/dk/camelot64/kickc/asm/fragment/zpptrby1_staridx_zpby1=zpby2.asm diff --git a/src/main/java/dk/camelot64/kickc/test/ref/bresenham.log b/src/main/java/dk/camelot64/kickc/test/ref/bresenham.log index ecd3b56b2..2b24b46fc 100644 --- a/src/main/java/dk/camelot64/kickc/test/ref/bresenham.log +++ b/src/main/java/dk/camelot64/kickc/test/ref/bresenham.log @@ -1155,7 +1155,7 @@ B1_from_B3: // (byte*) cursor#3 = (byte*) cursor#5 // register copy zp ptr byte:2 jmp B1 B1: - // [1] *((byte*) cursor#3) ← (byte) 81 [ cursor#3 x#2 e#3 y#2 ] // zpiby1=coby1 + // [1] *((byte*) cursor#3) ← (byte) 81 [ cursor#3 x#2 e#3 y#2 ] // _star_zpptrby1=coby1 ldy #0 lda #81 sta (2),y @@ -1237,7 +1237,7 @@ B1_from_B3: // (byte) x#2 = (byte) x#1 // register copy zp byte:4 // (byte*) cursor#3 = (byte*) cursor#5 // register copy zp ptr byte:2 B1: - // [1] *((byte*) cursor#3) ← (byte) 81 [ cursor#3 x#2 e#3 y#2 ] // zpiby1=coby1 + // [1] *((byte*) cursor#3) ← (byte) 81 [ cursor#3 x#2 e#3 y#2 ] // _star_zpptrby1=coby1 ldy #0 lda #81 sta (2),y @@ -1314,7 +1314,7 @@ B1_from_B3: // (byte) x#2 = (byte) x#1 // register copy zp byte:4 // (byte*) cursor#3 = (byte*) cursor#5 // register copy zp ptr byte:2 B1: - // [1] *((byte*) cursor#3) ← (byte) 81 [ cursor#3 x#2 e#3 y#2 ] // zpiby1=coby1 + // [1] *((byte*) cursor#3) ← (byte) 81 [ cursor#3 x#2 e#3 y#2 ] // _star_zpptrby1=coby1 ldy #0 lda #81 sta (2),y @@ -1426,7 +1426,7 @@ B1_from_B3: // (byte) x#2 = (byte) x#1 // register copy zp byte:4 // (byte*) cursor#3 = (byte*) cursor#5 // register copy zp ptr byte:2 B1: - // [1] *((byte*) cursor#3) ← (byte) 81 [ cursor#3 x#2 e#3 y#2 ] // zpiby1=coby1 + // [1] *((byte*) cursor#3) ← (byte) 81 [ cursor#3 x#2 e#3 y#2 ] // _star_zpptrby1=coby1 ldy #0 lda #81 sta (2),y diff --git a/src/main/java/dk/camelot64/kickc/test/ref/fibmem.log b/src/main/java/dk/camelot64/kickc/test/ref/fibmem.log index fe4f36483..0c78f6b82 100644 --- a/src/main/java/dk/camelot64/kickc/test/ref/fibmem.log +++ b/src/main/java/dk/camelot64/kickc/test/ref/fibmem.log @@ -462,10 +462,10 @@ zp byte:4 [ $3 ] INITIAL ASM BBEGIN: - // [0] *((word) 4352) ← (byte) 0 [ ] // coptr1=coby2 + // [0] *((word) 4352) ← (byte) 0 [ ] // _star_cowo1=coby2 lda #0 sta 4352 - // [1] *((word) 4353) ← (byte) 1 [ ] // coptr1=coby2 + // [1] *((word) 4353) ← (byte) 1 [ ] // _star_cowo1=coby2 lda #1 sta 4353 B1_from_BBEGIN: @@ -488,7 +488,7 @@ B1: clc adc 3 sta 3 - // [6] *((word) 4354 + (byte) i#2) ← (byte~) $4 [ i#2 ] // ptr_cowo1_zpby1=zpby2 + // [6] *((word) 4354 + (byte) i#2) ← (byte~) $4 [ i#2 ] // cowo1_staridx_zpby1=zpby2 lda 3 ldx 2 sta 4354,x @@ -506,10 +506,10 @@ Removing instruction jmp BEND Succesful ASM optimization Pass5NextJumpElimination ASSEMBLER BBEGIN: - // [0] *((word) 4352) ← (byte) 0 [ ] // coptr1=coby2 + // [0] *((word) 4352) ← (byte) 0 [ ] // _star_cowo1=coby2 lda #0 sta 4352 - // [1] *((word) 4353) ← (byte) 1 [ ] // coptr1=coby2 + // [1] *((word) 4353) ← (byte) 1 [ ] // _star_cowo1=coby2 lda #1 sta 4353 B1_from_BBEGIN: @@ -531,7 +531,7 @@ B1: clc adc 3 sta 3 - // [6] *((word) 4354 + (byte) i#2) ← (byte~) $4 [ i#2 ] // ptr_cowo1_zpby1=zpby2 + // [6] *((word) 4354 + (byte) i#2) ← (byte~) $4 [ i#2 ] // cowo1_staridx_zpby1=zpby2 lda 3 ldx 2 sta 4354,x @@ -547,10 +547,10 @@ Removing instruction jmp B1 Succesful ASM optimization Pass5NextJumpElimination ASSEMBLER BBEGIN: - // [0] *((word) 4352) ← (byte) 0 [ ] // coptr1=coby2 + // [0] *((word) 4352) ← (byte) 0 [ ] // _star_cowo1=coby2 lda #0 sta 4352 - // [1] *((word) 4353) ← (byte) 1 [ ] // coptr1=coby2 + // [1] *((word) 4353) ← (byte) 1 [ ] // _star_cowo1=coby2 lda #1 sta 4353 B1_from_BBEGIN: @@ -571,7 +571,7 @@ B1: clc adc 3 sta 3 - // [6] *((word) 4354 + (byte) i#2) ← (byte~) $4 [ i#2 ] // ptr_cowo1_zpby1=zpby2 + // [6] *((word) 4354 + (byte) i#2) ← (byte~) $4 [ i#2 ] // cowo1_staridx_zpby1=zpby2 lda 3 ldx 2 sta 4354,x @@ -601,10 +601,10 @@ zp byte:4 [ $3 ] FINAL CODE BBEGIN: - // [0] *((word) 4352) ← (byte) 0 [ ] // coptr1=coby2 + // [0] *((word) 4352) ← (byte) 0 [ ] // _star_cowo1=coby2 lda #0 sta 4352 - // [1] *((word) 4353) ← (byte) 1 [ ] // coptr1=coby2 + // [1] *((word) 4353) ← (byte) 1 [ ] // _star_cowo1=coby2 lda #1 sta 4353 B1_from_BBEGIN: @@ -625,7 +625,7 @@ B1: clc adc 3 sta 3 - // [6] *((word) 4354 + (byte) i#2) ← (byte~) $4 [ i#2 ] // ptr_cowo1_zpby1=zpby2 + // [6] *((word) 4354 + (byte) i#2) ← (byte~) $4 [ i#2 ] // cowo1_staridx_zpby1=zpby2 lda 3 ldx 2 sta 4354,x diff --git a/src/main/java/dk/camelot64/kickc/test/ref/flipper-rex2.log b/src/main/java/dk/camelot64/kickc/test/ref/flipper-rex2.log index 109d2cab0..5786e6134 100644 --- a/src/main/java/dk/camelot64/kickc/test/ref/flipper-rex2.log +++ b/src/main/java/dk/camelot64/kickc/test/ref/flipper-rex2.log @@ -4336,7 +4336,7 @@ plot__B2: ldx 6 lda 4096,x sta 16 - // [16] *((byte*) plot::line#2 + (byte) plot::x#2) ← (byte~) plot::$3 [ plot::i#2 plot::line#2 plot::x#2 plot::y#2 ] // ptr_zpptrby1_zpby1=zpby2 + // [16] *((byte*) plot::line#2 + (byte) plot::x#2) ← (byte~) plot::$3 [ plot::i#2 plot::line#2 plot::x#2 plot::y#2 ] // zpptrby1_staridx_zpby1=zpby2 lda 16 ldy 7 sta (3),y @@ -4401,7 +4401,7 @@ flip__B2: ldx 9 lda 4096,x sta 17 - // [27] *((word) 4352 + (byte) flip::dstIdx#3) ← (byte~) flip::$0 [ flip::srcIdx#2 flip::dstIdx#3 flip::c#2 flip::r#2 ] // ptr_cowo1_zpby1=zpby2 + // [27] *((word) 4352 + (byte) flip::dstIdx#3) ← (byte~) flip::$0 [ flip::srcIdx#2 flip::dstIdx#3 flip::c#2 flip::r#2 ] // cowo1_staridx_zpby1=zpby2 lda 17 ldx 10 sta 4352,x @@ -4439,7 +4439,7 @@ flip__B3: ldx 12 lda 4352,x sta 18 - // [37] *((word) 4096 + (byte) flip::i#2) ← (byte~) flip::$4 [ flip::i#2 ] // ptr_cowo1_zpby1=zpby2 + // [37] *((word) 4096 + (byte) flip::i#2) ← (byte~) flip::$4 [ flip::i#2 ] // cowo1_staridx_zpby1=zpby2 lda 18 ldx 12 sta 4096,x @@ -4461,7 +4461,7 @@ prepare__B1_from_B1: // (byte) prepare::i#2 = (byte) prepare::i#1 // register copy zp byte:13 jmp prepare__B1 prepare__B1: - // [42] *((word) 4096 + (byte) prepare::i#2) ← (byte) prepare::i#2 [ prepare::i#2 ] // ptr_cowo1_zpby1=zpby1 + // [42] *((word) 4096 + (byte) prepare::i#2) ← (byte) prepare::i#2 [ prepare::i#2 ] // cowo1_staridx_zpby1=zpby1 ldx 13 txa sta 4096,x @@ -4576,7 +4576,7 @@ plot__B2: ldx 6 lda 4096,x sta 16 - // [16] *((byte*) plot::line#2 + (byte) plot::x#2) ← (byte~) plot::$3 [ plot::i#2 plot::line#2 plot::x#2 plot::y#2 ] // ptr_zpptrby1_zpby1=zpby2 + // [16] *((byte*) plot::line#2 + (byte) plot::x#2) ← (byte~) plot::$3 [ plot::i#2 plot::line#2 plot::x#2 plot::y#2 ] // zpptrby1_staridx_zpby1=zpby2 lda 16 ldy 7 sta (3),y @@ -4637,7 +4637,7 @@ flip__B2: ldx 9 lda 4096,x sta 17 - // [27] *((word) 4352 + (byte) flip::dstIdx#3) ← (byte~) flip::$0 [ flip::srcIdx#2 flip::dstIdx#3 flip::c#2 flip::r#2 ] // ptr_cowo1_zpby1=zpby2 + // [27] *((word) 4352 + (byte) flip::dstIdx#3) ← (byte~) flip::$0 [ flip::srcIdx#2 flip::dstIdx#3 flip::c#2 flip::r#2 ] // cowo1_staridx_zpby1=zpby2 lda 17 ldx 10 sta 4352,x @@ -4673,7 +4673,7 @@ flip__B3: ldx 12 lda 4352,x sta 18 - // [37] *((word) 4096 + (byte) flip::i#2) ← (byte~) flip::$4 [ flip::i#2 ] // ptr_cowo1_zpby1=zpby2 + // [37] *((word) 4096 + (byte) flip::i#2) ← (byte~) flip::$4 [ flip::i#2 ] // cowo1_staridx_zpby1=zpby2 lda 18 ldx 12 sta 4096,x @@ -4693,7 +4693,7 @@ prepare__B1_from_prepare: prepare__B1_from_B1: // (byte) prepare::i#2 = (byte) prepare::i#1 // register copy zp byte:13 prepare__B1: - // [42] *((word) 4096 + (byte) prepare::i#2) ← (byte) prepare::i#2 [ prepare::i#2 ] // ptr_cowo1_zpby1=zpby1 + // [42] *((word) 4096 + (byte) prepare::i#2) ← (byte) prepare::i#2 [ prepare::i#2 ] // cowo1_staridx_zpby1=zpby1 ldx 13 txa sta 4096,x @@ -4792,7 +4792,7 @@ plot__B2: ldx 6 lda 4096,x sta 16 - // [16] *((byte*) plot::line#2 + (byte) plot::x#2) ← (byte~) plot::$3 [ plot::i#2 plot::line#2 plot::x#2 plot::y#2 ] // ptr_zpptrby1_zpby1=zpby2 + // [16] *((byte*) plot::line#2 + (byte) plot::x#2) ← (byte~) plot::$3 [ plot::i#2 plot::line#2 plot::x#2 plot::y#2 ] // zpptrby1_staridx_zpby1=zpby2 lda 16 ldy 7 sta (3),y @@ -4851,7 +4851,7 @@ flip__B2: ldx 9 lda 4096,x sta 17 - // [27] *((word) 4352 + (byte) flip::dstIdx#3) ← (byte~) flip::$0 [ flip::srcIdx#2 flip::dstIdx#3 flip::c#2 flip::r#2 ] // ptr_cowo1_zpby1=zpby2 + // [27] *((word) 4352 + (byte) flip::dstIdx#3) ← (byte~) flip::$0 [ flip::srcIdx#2 flip::dstIdx#3 flip::c#2 flip::r#2 ] // cowo1_staridx_zpby1=zpby2 lda 17 ldx 10 sta 4352,x @@ -4886,7 +4886,7 @@ flip__B3: ldx 12 lda 4352,x sta 18 - // [37] *((word) 4096 + (byte) flip::i#2) ← (byte~) flip::$4 [ flip::i#2 ] // ptr_cowo1_zpby1=zpby2 + // [37] *((word) 4096 + (byte) flip::i#2) ← (byte~) flip::$4 [ flip::i#2 ] // cowo1_staridx_zpby1=zpby2 lda 18 ldx 12 sta 4096,x @@ -4905,7 +4905,7 @@ prepare__B1_from_prepare: prepare__B1_from_B1: // (byte) prepare::i#2 = (byte) prepare::i#1 // register copy zp byte:13 prepare__B1: - // [42] *((word) 4096 + (byte) prepare::i#2) ← (byte) prepare::i#2 [ prepare::i#2 ] // ptr_cowo1_zpby1=zpby1 + // [42] *((word) 4096 + (byte) prepare::i#2) ← (byte) prepare::i#2 [ prepare::i#2 ] // cowo1_staridx_zpby1=zpby1 ldx 13 txa sta 4096,x @@ -4997,7 +4997,7 @@ plot__B2: ldx 6 lda 4096,x sta 16 - // [16] *((byte*) plot::line#2 + (byte) plot::x#2) ← (byte~) plot::$3 [ plot::i#2 plot::line#2 plot::x#2 plot::y#2 ] // ptr_zpptrby1_zpby1=zpby2 + // [16] *((byte*) plot::line#2 + (byte) plot::x#2) ← (byte~) plot::$3 [ plot::i#2 plot::line#2 plot::x#2 plot::y#2 ] // zpptrby1_staridx_zpby1=zpby2 lda 16 ldy 7 sta (3),y @@ -5056,7 +5056,7 @@ flip__B2: ldx 9 lda 4096,x sta 17 - // [27] *((word) 4352 + (byte) flip::dstIdx#3) ← (byte~) flip::$0 [ flip::srcIdx#2 flip::dstIdx#3 flip::c#2 flip::r#2 ] // ptr_cowo1_zpby1=zpby2 + // [27] *((word) 4352 + (byte) flip::dstIdx#3) ← (byte~) flip::$0 [ flip::srcIdx#2 flip::dstIdx#3 flip::c#2 flip::r#2 ] // cowo1_staridx_zpby1=zpby2 lda 17 ldx 10 sta 4352,x @@ -5091,7 +5091,7 @@ flip__B3: ldx 12 lda 4352,x sta 18 - // [37] *((word) 4096 + (byte) flip::i#2) ← (byte~) flip::$4 [ flip::i#2 ] // ptr_cowo1_zpby1=zpby2 + // [37] *((word) 4096 + (byte) flip::i#2) ← (byte~) flip::$4 [ flip::i#2 ] // cowo1_staridx_zpby1=zpby2 lda 18 ldx 12 sta 4096,x @@ -5110,7 +5110,7 @@ prepare__B1_from_prepare: prepare__B1_from_B1: // (byte) prepare::i#2 = (byte) prepare::i#1 // register copy zp byte:13 prepare__B1: - // [42] *((word) 4096 + (byte) prepare::i#2) ← (byte) prepare::i#2 [ prepare::i#2 ] // ptr_cowo1_zpby1=zpby1 + // [42] *((word) 4096 + (byte) prepare::i#2) ← (byte) prepare::i#2 [ prepare::i#2 ] // cowo1_staridx_zpby1=zpby1 ldx 13 txa sta 4096,x @@ -5279,7 +5279,7 @@ plot__B2: ldx 6 lda 4096,x sta 16 - // [16] *((byte*) plot::line#2 + (byte) plot::x#2) ← (byte~) plot::$3 [ plot::i#2 plot::line#2 plot::x#2 plot::y#2 ] // ptr_zpptrby1_zpby1=zpby2 + // [16] *((byte*) plot::line#2 + (byte) plot::x#2) ← (byte~) plot::$3 [ plot::i#2 plot::line#2 plot::x#2 plot::y#2 ] // zpptrby1_staridx_zpby1=zpby2 lda 16 ldy 7 sta (3),y @@ -5338,7 +5338,7 @@ flip__B2: ldx 9 lda 4096,x sta 17 - // [27] *((word) 4352 + (byte) flip::dstIdx#3) ← (byte~) flip::$0 [ flip::srcIdx#2 flip::dstIdx#3 flip::c#2 flip::r#2 ] // ptr_cowo1_zpby1=zpby2 + // [27] *((word) 4352 + (byte) flip::dstIdx#3) ← (byte~) flip::$0 [ flip::srcIdx#2 flip::dstIdx#3 flip::c#2 flip::r#2 ] // cowo1_staridx_zpby1=zpby2 lda 17 ldx 10 sta 4352,x @@ -5373,7 +5373,7 @@ flip__B3: ldx 12 lda 4352,x sta 18 - // [37] *((word) 4096 + (byte) flip::i#2) ← (byte~) flip::$4 [ flip::i#2 ] // ptr_cowo1_zpby1=zpby2 + // [37] *((word) 4096 + (byte) flip::i#2) ← (byte~) flip::$4 [ flip::i#2 ] // cowo1_staridx_zpby1=zpby2 lda 18 ldx 12 sta 4096,x @@ -5392,7 +5392,7 @@ prepare__B1_from_prepare: prepare__B1_from_B1: // (byte) prepare::i#2 = (byte) prepare::i#1 // register copy zp byte:13 prepare__B1: - // [42] *((word) 4096 + (byte) prepare::i#2) ← (byte) prepare::i#2 [ prepare::i#2 ] // ptr_cowo1_zpby1=zpby1 + // [42] *((word) 4096 + (byte) prepare::i#2) ← (byte) prepare::i#2 [ prepare::i#2 ] // cowo1_staridx_zpby1=zpby1 ldx 13 txa sta 4096,x diff --git a/src/main/java/dk/camelot64/kickc/test/ref/loopnest.log b/src/main/java/dk/camelot64/kickc/test/ref/loopnest.log index f0b6bc663..0a15a0511 100644 --- a/src/main/java/dk/camelot64/kickc/test/ref/loopnest.log +++ b/src/main/java/dk/camelot64/kickc/test/ref/loopnest.log @@ -788,7 +788,7 @@ nest__B1_from_B1: sta 3 jmp nest__B1 nest__B1: - // [7] *((word) 1024) ← (byte) nest::j#2 [ main::i#2 nest::j#2 ] // coptr1=zpby1 + // [7] *((word) 1024) ← (byte) nest::j#2 [ main::i#2 nest::j#2 ] // _star_cowo1=zpby1 lda 3 sta 1024 // [8] (byte) nest::j#1 ← -- (byte) nest::j#2 [ main::i#2 nest::j#1 ] // aby=_dec_zpby1 @@ -841,7 +841,7 @@ nest__B1_from_B1: // (byte) nest::j#2 = (byte) nest::j#1 // zpby1=aby sta 3 nest__B1: - // [7] *((word) 1024) ← (byte) nest::j#2 [ main::i#2 nest::j#2 ] // coptr1=zpby1 + // [7] *((word) 1024) ← (byte) nest::j#2 [ main::i#2 nest::j#2 ] // _star_cowo1=zpby1 lda 3 sta 1024 // [8] (byte) nest::j#1 ← -- (byte) nest::j#2 [ main::i#2 nest::j#1 ] // aby=_dec_zpby1 @@ -887,7 +887,7 @@ nest__B1_from_B1: // (byte) nest::j#2 = (byte) nest::j#1 // zpby1=aby sta 3 nest__B1: - // [7] *((word) 1024) ← (byte) nest::j#2 [ main::i#2 nest::j#2 ] // coptr1=zpby1 + // [7] *((word) 1024) ← (byte) nest::j#2 [ main::i#2 nest::j#2 ] // _star_cowo1=zpby1 lda 3 sta 1024 // [8] (byte) nest::j#1 ← -- (byte) nest::j#2 [ main::i#2 nest::j#1 ] // aby=_dec_zpby1 @@ -952,7 +952,7 @@ nest__B1_from_B1: // (byte) nest::j#2 = (byte) nest::j#1 // zpby1=aby sta 3 nest__B1: - // [7] *((word) 1024) ← (byte) nest::j#2 [ main::i#2 nest::j#2 ] // coptr1=zpby1 + // [7] *((word) 1024) ← (byte) nest::j#2 [ main::i#2 nest::j#2 ] // _star_cowo1=zpby1 lda 3 sta 1024 // [8] (byte) nest::j#1 ← -- (byte) nest::j#2 [ main::i#2 nest::j#1 ] // aby=_dec_zpby1 diff --git a/src/main/java/dk/camelot64/kickc/test/ref/loopnest2.log b/src/main/java/dk/camelot64/kickc/test/ref/loopnest2.log index 2179dd3ab..73f78a1c8 100644 --- a/src/main/java/dk/camelot64/kickc/test/ref/loopnest2.log +++ b/src/main/java/dk/camelot64/kickc/test/ref/loopnest2.log @@ -1986,7 +1986,7 @@ nest2__B2_from_B2: sta 7 jmp nest2__B2 nest2__B2: - // [19] *((word) 1024) ← (byte) nest2::j#2 [ main::j#2 main::i#2 nest1::j#2 nest1::i#2 nest2::j#2 nest2::i#2 ] // coptr1=zpby1 + // [19] *((word) 1024) ← (byte) nest2::j#2 [ main::j#2 main::i#2 nest1::j#2 nest1::i#2 nest2::j#2 nest2::i#2 ] // _star_cowo1=zpby1 lda 7 sta 1024 // [20] (byte) nest2::j#1 ← -- (byte) nest2::j#2 [ main::j#2 main::i#2 nest1::j#2 nest1::i#2 nest2::j#1 nest2::i#2 ] // aby=_dec_zpby1 @@ -2109,7 +2109,7 @@ nest2__B2_from_B2: // (byte) nest2::j#2 = (byte) nest2::j#1 // zpby1=aby sta 7 nest2__B2: - // [19] *((word) 1024) ← (byte) nest2::j#2 [ main::j#2 main::i#2 nest1::j#2 nest1::i#2 nest2::j#2 nest2::i#2 ] // coptr1=zpby1 + // [19] *((word) 1024) ← (byte) nest2::j#2 [ main::j#2 main::i#2 nest1::j#2 nest1::i#2 nest2::j#2 nest2::i#2 ] // _star_cowo1=zpby1 lda 7 sta 1024 // [20] (byte) nest2::j#1 ← -- (byte) nest2::j#2 [ main::j#2 main::i#2 nest1::j#2 nest1::i#2 nest2::j#1 nest2::i#2 ] // aby=_dec_zpby1 @@ -2215,7 +2215,7 @@ nest2__B2_from_B2: // (byte) nest2::j#2 = (byte) nest2::j#1 // zpby1=aby sta 7 nest2__B2: - // [19] *((word) 1024) ← (byte) nest2::j#2 [ main::j#2 main::i#2 nest1::j#2 nest1::i#2 nest2::j#2 nest2::i#2 ] // coptr1=zpby1 + // [19] *((word) 1024) ← (byte) nest2::j#2 [ main::j#2 main::i#2 nest1::j#2 nest1::i#2 nest2::j#2 nest2::i#2 ] // _star_cowo1=zpby1 lda 7 sta 1024 // [20] (byte) nest2::j#1 ← -- (byte) nest2::j#2 [ main::j#2 main::i#2 nest1::j#2 nest1::i#2 nest2::j#1 nest2::i#2 ] // aby=_dec_zpby1 @@ -2362,7 +2362,7 @@ nest2__B2_from_B2: // (byte) nest2::j#2 = (byte) nest2::j#1 // zpby1=aby sta 7 nest2__B2: - // [19] *((word) 1024) ← (byte) nest2::j#2 [ main::j#2 main::i#2 nest1::j#2 nest1::i#2 nest2::j#2 nest2::i#2 ] // coptr1=zpby1 + // [19] *((word) 1024) ← (byte) nest2::j#2 [ main::j#2 main::i#2 nest1::j#2 nest1::i#2 nest2::j#2 nest2::i#2 ] // _star_cowo1=zpby1 lda 7 sta 1024 // [20] (byte) nest2::j#1 ← -- (byte) nest2::j#2 [ main::j#2 main::i#2 nest1::j#2 nest1::i#2 nest2::j#1 nest2::i#2 ] // aby=_dec_zpby1 diff --git a/src/main/java/dk/camelot64/kickc/test/ref/minus.log b/src/main/java/dk/camelot64/kickc/test/ref/minus.log index 3061bb8a5..597fbc723 100644 --- a/src/main/java/dk/camelot64/kickc/test/ref/minus.log +++ b/src/main/java/dk/camelot64/kickc/test/ref/minus.log @@ -339,7 +339,7 @@ B1: lda 2 clc adc #4 - // [2] *((word) 4352 + (byte) i#2) ← (byte~) $1 [ i#2 ] // ptr_cowo1_zpby1=aby + // [2] *((word) 4352 + (byte) i#2) ← (byte~) $1 [ i#2 ] // cowo1_staridx_zpby1=aby ldx 2 sta 4352,x // [3] (byte) i#1 ← (byte) i#2 + (byte) 1 [ i#1 ] // zpby1=zpby1_plus_1 @@ -368,7 +368,7 @@ B1: lda 2 clc adc #4 - // [2] *((word) 4352 + (byte) i#2) ← (byte~) $1 [ i#2 ] // ptr_cowo1_zpby1=aby + // [2] *((word) 4352 + (byte) i#2) ← (byte~) $1 [ i#2 ] // cowo1_staridx_zpby1=aby ldx 2 sta 4352,x // [3] (byte) i#1 ← (byte) i#2 + (byte) 1 [ i#1 ] // zpby1=zpby1_plus_1 @@ -394,7 +394,7 @@ B1: lda 2 clc adc #4 - // [2] *((word) 4352 + (byte) i#2) ← (byte~) $1 [ i#2 ] // ptr_cowo1_zpby1=aby + // [2] *((word) 4352 + (byte) i#2) ← (byte~) $1 [ i#2 ] // cowo1_staridx_zpby1=aby ldx 2 sta 4352,x // [3] (byte) i#1 ← (byte) i#2 + (byte) 1 [ i#1 ] // zpby1=zpby1_plus_1 @@ -431,7 +431,7 @@ B1: lda 2 clc adc #4 - // [2] *((word) 4352 + (byte) i#2) ← (byte~) $1 [ i#2 ] // ptr_cowo1_zpby1=aby + // [2] *((word) 4352 + (byte) i#2) ← (byte~) $1 [ i#2 ] // cowo1_staridx_zpby1=aby ldx 2 sta 4352,x // [3] (byte) i#1 ← (byte) i#2 + (byte) 1 [ i#1 ] // zpby1=zpby1_plus_1 diff --git a/src/main/java/dk/camelot64/kickc/test/ref/ptrtest.log b/src/main/java/dk/camelot64/kickc/test/ref/ptrtest.log index 4ca4ada00..2188d759e 100644 --- a/src/main/java/dk/camelot64/kickc/test/ref/ptrtest.log +++ b/src/main/java/dk/camelot64/kickc/test/ref/ptrtest.log @@ -1990,7 +1990,7 @@ lvaluevar__B1: lvaluevar__Breturn: rts lvaluevar__B2: - // [9] *((byte*) lvaluevar::screen#2) ← (byte) 4 [ lvaluevar::i#2 lvaluevar::screen#2 ] // zpiby1=coby1 + // [9] *((byte*) lvaluevar::screen#2) ← (byte) 4 [ lvaluevar::i#2 lvaluevar::screen#2 ] // _star_zpptrby1=coby1 ldy #0 lda #4 sta (3),y @@ -2070,10 +2070,10 @@ rvalue__B1_from_B2: // (byte) rvalue::i#2 = (byte) rvalue::i#1 // register copy zp byte:8 jmp rvalue__B1 lvalue: - // [25] *((word) 1024) ← (byte) 1 [ ] // coptr1=coby2 + // [25] *((word) 1024) ← (byte) 1 [ ] // _star_cowo1=coby2 lda #1 sta 1024 - // [26] *((word) 1025) ← (byte) 2 [ ] // coptr1=coby2 + // [26] *((word) 1025) ← (byte) 2 [ ] // _star_cowo1=coby2 lda #2 sta 1025 lvalue__B1_from_lvalue: @@ -2090,7 +2090,7 @@ lvalue__B1: lvalue__Breturn: rts lvalue__B2: - // [30] *((word) 1024 + (byte) lvalue::i#2) ← (byte) 3 [ lvalue::i#2 ] // ptr_cowo1_zpby1=coby2 + // [30] *((word) 1024 + (byte) lvalue::i#2) ← (byte) 3 [ lvalue::i#2 ] // cowo1_staridx_zpby1=coby2 lda #3 ldx 9 sta 1024,x @@ -2146,7 +2146,7 @@ lvaluevar__B1: lvaluevar__Breturn: rts lvaluevar__B2: - // [9] *((byte*) lvaluevar::screen#2) ← (byte) 4 [ lvaluevar::i#2 lvaluevar::screen#2 ] // zpiby1=coby1 + // [9] *((byte*) lvaluevar::screen#2) ← (byte) 4 [ lvaluevar::i#2 lvaluevar::screen#2 ] // _star_zpptrby1=coby1 ldy #0 lda #4 sta (3),y @@ -2222,10 +2222,10 @@ rvalue__B1_from_B2: // (byte) rvalue::i#2 = (byte) rvalue::i#1 // register copy zp byte:8 jmp rvalue__B1 lvalue: - // [25] *((word) 1024) ← (byte) 1 [ ] // coptr1=coby2 + // [25] *((word) 1024) ← (byte) 1 [ ] // _star_cowo1=coby2 lda #1 sta 1024 - // [26] *((word) 1025) ← (byte) 2 [ ] // coptr1=coby2 + // [26] *((word) 1025) ← (byte) 2 [ ] // _star_cowo1=coby2 lda #2 sta 1025 lvalue__B1_from_lvalue: @@ -2240,7 +2240,7 @@ lvalue__B1: lvalue__Breturn: rts lvalue__B2: - // [30] *((word) 1024 + (byte) lvalue::i#2) ← (byte) 3 [ lvalue::i#2 ] // ptr_cowo1_zpby1=coby2 + // [30] *((word) 1024 + (byte) lvalue::i#2) ← (byte) 3 [ lvalue::i#2 ] // cowo1_staridx_zpby1=coby2 lda #3 ldx 9 sta 1024,x @@ -2337,7 +2337,7 @@ lvaluevar__B1: lvaluevar__Breturn: rts lvaluevar__B2: - // [9] *((byte*) lvaluevar::screen#2) ← (byte) 4 [ lvaluevar::i#2 lvaluevar::screen#2 ] // zpiby1=coby1 + // [9] *((byte*) lvaluevar::screen#2) ← (byte) 4 [ lvaluevar::i#2 lvaluevar::screen#2 ] // _star_zpptrby1=coby1 ldy #0 lda #4 sta (3),y @@ -2413,10 +2413,10 @@ rvalue__B1_from_B2: // (byte) rvalue::i#2 = (byte) rvalue::i#1 // register copy zp byte:8 jmp rvalue__B1 lvalue: - // [25] *((word) 1024) ← (byte) 1 [ ] // coptr1=coby2 + // [25] *((word) 1024) ← (byte) 1 [ ] // _star_cowo1=coby2 lda #1 sta 1024 - // [26] *((word) 1025) ← (byte) 2 [ ] // coptr1=coby2 + // [26] *((word) 1025) ← (byte) 2 [ ] // _star_cowo1=coby2 lda #2 sta 1025 lvalue__B1_from_lvalue: @@ -2431,7 +2431,7 @@ lvalue__B1: lvalue__Breturn: rts lvalue__B2: - // [30] *((word) 1024 + (byte) lvalue::i#2) ← (byte) 3 [ lvalue::i#2 ] // ptr_cowo1_zpby1=coby2 + // [30] *((word) 1024 + (byte) lvalue::i#2) ← (byte) 3 [ lvalue::i#2 ] // cowo1_staridx_zpby1=coby2 lda #3 ldx 9 sta 1024,x