From 3d3385198329b1931473a8e859a0b030c3e41bd6 Mon Sep 17 00:00:00 2001 From: jespergravgaard Date: Sun, 28 Jan 2018 17:21:57 +0100 Subject: [PATCH] Improved dword type inference. --- .../kickc/model/SymbolTypeInference.java | 41 +- .../kickc/model/SymbolTypeInline.java | 2 +- .../kickc/test/ref/bitmap-bresenham.log | 180 ++++---- .../dk/camelot64/kickc/test/ref/bresenham.log | 54 +-- .../camelot64/kickc/test/ref/bresenhamarr.log | 54 +-- .../dk/camelot64/kickc/test/ref/casting.log | 18 +- .../dk/camelot64/kickc/test/ref/constants.cfg | 14 +- .../dk/camelot64/kickc/test/ref/constants.log | 388 +++++++++--------- .../dk/camelot64/kickc/test/ref/constants.sym | 20 +- .../kickc/test/ref/sinus-sprites.log | 54 +-- .../kickc/test/ref/test-comparisons.log | 18 +- .../kickc/test/ref/test-multiply.cfg | 8 +- .../kickc/test/ref/test-multiply.log | 96 ++--- .../kickc/test/ref/test-multiply.sym | 4 +- .../dk/camelot64/kickc/test/ref/voronoi.cfg | 20 +- .../dk/camelot64/kickc/test/ref/voronoi.log | 236 +++++------ .../dk/camelot64/kickc/test/ref/voronoi.sym | 10 +- 17 files changed, 619 insertions(+), 598 deletions(-) diff --git a/src/main/java/dk/camelot64/kickc/model/SymbolTypeInference.java b/src/main/java/dk/camelot64/kickc/model/SymbolTypeInference.java index f2b766e50..d54da5811 100644 --- a/src/main/java/dk/camelot64/kickc/model/SymbolTypeInference.java +++ b/src/main/java/dk/camelot64/kickc/model/SymbolTypeInference.java @@ -128,12 +128,18 @@ public class SymbolTypeInference { if(type1 == null && type2 instanceof SymbolTypePointer) { return ((SymbolTypePointer) type2).getElementType(); } - if(SymbolType.WORD.equals(type1) || SymbolType.WORD.equals(type2)) { - return SymbolType.WORD; - } else if(SymbolType.isByte(type1) && SymbolType.isByte(type2)) { + if(SymbolType.isByte(type1) && SymbolType.isByte(type2)) { return SymbolType.BYTE; } else if(SymbolType.SBYTE.equals(type1) && SymbolType.SBYTE.equals(type2)) { return SymbolType.SBYTE; + } else if(SymbolType.isWord(type1) && SymbolType.isWord(type2)) { + return SymbolType.WORD; + } else if(SymbolType.isSWord(type1) && SymbolType.isSWord(type2)) { + return SymbolType.SWORD; + } else if(SymbolType.isDWord(type1) && SymbolType.isDWord(type2)) { + return SymbolType.DWORD; + } else if(SymbolType.isSDWord(type1) && SymbolType.isSDWord(type2)) { + return SymbolType.SDWORD; } throw new RuntimeException("Type inference case not handled " + type1 + " " + operator + " " + type2); case "*idx": @@ -148,12 +154,13 @@ public class SymbolTypeInference { case "&": case "|": case "^": - if(SymbolType.WORD.equals(type1) || SymbolType.WORD.equals(type2)) { - return SymbolType.WORD; - } else if(SymbolType.isByte(type1) && SymbolType.isByte(type2)) { + if(SymbolType.isByte(type1) && SymbolType.isByte(type2)) { return SymbolType.BYTE; + } else if(SymbolType.isWord(type1) && SymbolType.isWord(type2)) { + return SymbolType.WORD; + } else if(SymbolType.isDWord(type1) || SymbolType.isSDWord(type2)) { + return SymbolType.DWORD; } - throw new RuntimeException("Type inference case not handled " + type1 + " " + operator + " " + type2); case "<<": case ">>": @@ -165,6 +172,10 @@ public class SymbolTypeInference { return SymbolType.WORD; } else if(SymbolType.isSWord(type1)) { return SymbolType.SWORD; + } else if(SymbolType.isDWord(type1)) { + return SymbolType.DWORD; + } else if(SymbolType.isSDWord(type1)) { + return SymbolType.SDWORD; } throw new RuntimeException("Type inference case not handled " + type1 + " " + operator + " " + type2); default: @@ -201,9 +212,9 @@ public class SymbolTypeInference { return SymbolType.WORD; } else if(SymbolType.isSWord(type1) && (SymbolType.isSWord(type2) || SymbolType.isSByte(type2))) { return SymbolType.SWORD; - } else if(SymbolType.isDWord(type1) && (SymbolType.isDWord(type2) || SymbolType.isWord(type2))|| SymbolType.isByte(type2)) { + } else if(SymbolType.isDWord(type1) && (SymbolType.isDWord(type2) || SymbolType.isWord(type2)) || SymbolType.isByte(type2)) { return SymbolType.DWORD; - } else if(SymbolType.isSDWord(type1) && (SymbolType.isSDWord(type2) || SymbolType.isSWord(type2)|| SymbolType.isSByte(type2))) { + } else if(SymbolType.isSDWord(type1) && (SymbolType.isSDWord(type2) || SymbolType.isSWord(type2) || SymbolType.isSByte(type2))) { return SymbolType.SDWORD; } throw new RuntimeException("Type inference case not handled " + type1 + " " + "+" + " " + type2); @@ -218,6 +229,10 @@ public class SymbolTypeInference { return SymbolType.SWORD; } else if(SymbolType.isWord(type1) || SymbolType.isWord(type2)) { return SymbolType.WORD; + } else if(SymbolType.isSDWord(type1) || SymbolType.isSDWord(type2)) { + return SymbolType.SDWORD; + } else if(SymbolType.isDWord(type1) || SymbolType.isDWord(type2)) { + return SymbolType.DWORD; } throw new RuntimeException("Type inference case not handled " + type1 + " " + "+" + " " + type2); } @@ -241,6 +256,12 @@ public class SymbolTypeInference { if(SymbolType.isSWord(type1) && (SymbolType.isSWord(type2) || SymbolType.isSByte(type2))) { return SymbolType.SWORD; } + if(SymbolType.isDWord(type1) && (SymbolType.isDWord(type2) || SymbolType.isWord(type2) || SymbolType.isByte(type2))) { + return SymbolType.DWORD; + } + if(SymbolType.isSDWord(type1) && (SymbolType.isSDWord(type2) || SymbolType.isSWord(type2) || SymbolType.isSByte(type2))) { + return SymbolType.SDWORD; + } throw new RuntimeException("Type inference case not handled " + type1 + " - " + type2); } @@ -256,7 +277,7 @@ public class SymbolTypeInference { return true; } else if(type instanceof SymbolTypeInline) { SymbolTypeInline typeInline = (SymbolTypeInline) type; - return typeInline.isByte() || typeInline.isSByte() || typeInline.isWord() || typeInline.isSWord(); + return typeInline.isByte() || typeInline.isSByte() || typeInline.isWord() || typeInline.isSWord() || typeInline.isDWord() || typeInline.isSDWord(); } else { return false; } diff --git a/src/main/java/dk/camelot64/kickc/model/SymbolTypeInline.java b/src/main/java/dk/camelot64/kickc/model/SymbolTypeInline.java index 967a4ce48..f00b70b3c 100644 --- a/src/main/java/dk/camelot64/kickc/model/SymbolTypeInline.java +++ b/src/main/java/dk/camelot64/kickc/model/SymbolTypeInline.java @@ -10,7 +10,7 @@ import java.util.Collection; public class SymbolTypeInline implements SymbolType { /** All numeric types. */ - public static final SymbolTypeInline NUMERIC = new SymbolTypeInline(Arrays.asList(BYTE, SBYTE, WORD, SWORD)); + public static final SymbolTypeInline NUMERIC = new SymbolTypeInline(Arrays.asList(BYTE, SBYTE, WORD, SWORD, DWORD, SDWORD)); /** * All potential types for the inline constant. */ diff --git a/src/test/java/dk/camelot64/kickc/test/ref/bitmap-bresenham.log b/src/test/java/dk/camelot64/kickc/test/ref/bitmap-bresenham.log index c54c74613..1f3cae58c 100644 --- a/src/test/java/dk/camelot64/kickc/test/ref/bitmap-bresenham.log +++ b/src/test/java/dk/camelot64/kickc/test/ref/bitmap-bresenham.log @@ -251,13 +251,13 @@ proc (void()) line((byte) line::x0 , (byte) line::x1 , (byte) line::y0 , (byte) (boolean~) line::$0 ← (byte) line::x0 < (byte) line::x1 (boolean~) line::$1 ← ! (boolean~) line::$0 if((boolean~) line::$1) goto line::@1 - (byte/signed byte/word/signed word~) line::$2 ← (byte) line::x1 - (byte) line::x0 - (byte) line::xd ← (byte/signed byte/word/signed word~) line::$2 + (byte/signed byte/word/signed word/dword/signed dword~) line::$2 ← (byte) line::x1 - (byte) line::x0 + (byte) line::xd ← (byte/signed byte/word/signed word/dword/signed dword~) line::$2 (boolean~) line::$3 ← (byte) line::y0 < (byte) line::y1 (boolean~) line::$4 ← ! (boolean~) line::$3 if((boolean~) line::$4) goto line::@2 - (byte/signed byte/word/signed word~) line::$5 ← (byte) line::y1 - (byte) line::y0 - (byte) line::yd ← (byte/signed byte/word/signed word~) line::$5 + (byte/signed byte/word/signed word/dword/signed dword~) line::$5 ← (byte) line::y1 - (byte) line::y0 + (byte) line::yd ← (byte/signed byte/word/signed word/dword/signed dword~) line::$5 (boolean~) line::$6 ← (byte) line::yd < (byte) line::xd (boolean~) line::$7 ← ! (boolean~) line::$6 if((boolean~) line::$7) goto line::@3 @@ -268,8 +268,8 @@ line::@3: line::@4: goto line::@5 line::@2: - (byte/signed byte/word/signed word~) line::$10 ← (byte) line::y0 - (byte) line::y1 - (byte) line::yd ← (byte/signed byte/word/signed word~) line::$10 + (byte/signed byte/word/signed word/dword/signed dword~) line::$10 ← (byte) line::y0 - (byte) line::y1 + (byte) line::yd ← (byte/signed byte/word/signed word/dword/signed dword~) line::$10 (boolean~) line::$11 ← (byte) line::yd < (byte) line::xd (boolean~) line::$12 ← ! (boolean~) line::$11 if((boolean~) line::$12) goto line::@6 @@ -281,13 +281,13 @@ line::@7: line::@5: goto line::@8 line::@1: - (byte/signed byte/word/signed word~) line::$15 ← (byte) line::x0 - (byte) line::x1 - (byte) line::xd ← (byte/signed byte/word/signed word~) line::$15 + (byte/signed byte/word/signed word/dword/signed dword~) line::$15 ← (byte) line::x0 - (byte) line::x1 + (byte) line::xd ← (byte/signed byte/word/signed word/dword/signed dword~) line::$15 (boolean~) line::$16 ← (byte) line::y0 < (byte) line::y1 (boolean~) line::$17 ← ! (boolean~) line::$16 if((boolean~) line::$17) goto line::@9 - (byte/signed byte/word/signed word~) line::$18 ← (byte) line::y1 - (byte) line::y0 - (byte) line::yd ← (byte/signed byte/word/signed word~) line::$18 + (byte/signed byte/word/signed word/dword/signed dword~) line::$18 ← (byte) line::y1 - (byte) line::y0 + (byte) line::yd ← (byte/signed byte/word/signed word/dword/signed dword~) line::$18 (boolean~) line::$19 ← (byte) line::yd < (byte) line::xd (boolean~) line::$20 ← ! (boolean~) line::$19 if((boolean~) line::$20) goto line::@10 @@ -298,8 +298,8 @@ line::@10: line::@11: goto line::@12 line::@9: - (byte/signed byte/word/signed word~) line::$23 ← (byte) line::y0 - (byte) line::y1 - (byte) line::yd ← (byte/signed byte/word/signed word~) line::$23 + (byte/signed byte/word/signed word/dword/signed dword~) line::$23 ← (byte) line::y0 - (byte) line::y1 + (byte) line::yd ← (byte/signed byte/word/signed word/dword/signed dword~) line::$23 (boolean~) line::$24 ← (byte) line::yd < (byte) line::xd (boolean~) line::$25 ← ! (boolean~) line::$24 if((boolean~) line::$25) goto line::@13 @@ -325,8 +325,8 @@ line_xdyi::@1: (boolean~) line_xdyi::$4 ← ! (boolean~) line_xdyi::$3 if((boolean~) line_xdyi::$4) goto line_xdyi::@2 (byte) line_xdyi::y ← ++ (byte) line_xdyi::y - (byte/signed byte/word/signed word~) line_xdyi::$5 ← (byte) line_xdyi::e - (byte) line_xdyi::xd - (byte) line_xdyi::e ← (byte/signed byte/word/signed word~) line_xdyi::$5 + (byte/signed byte/word/signed word/dword/signed dword~) line_xdyi::$5 ← (byte) line_xdyi::e - (byte) line_xdyi::xd + (byte) line_xdyi::e ← (byte/signed byte/word/signed word/dword/signed dword~) line_xdyi::$5 line_xdyi::@2: (byte/word~) line_xdyi::$6 ← (byte) line_xdyi::x1 + (byte/signed byte/word/signed word/dword/signed dword) 1 (boolean~) line_xdyi::$7 ← (byte) line_xdyi::x != (byte/word~) line_xdyi::$6 @@ -346,8 +346,8 @@ line_xdyd::@1: (boolean~) line_xdyd::$4 ← ! (boolean~) line_xdyd::$3 if((boolean~) line_xdyd::$4) goto line_xdyd::@2 (byte) line_xdyd::y ← -- (byte) line_xdyd::y - (byte/signed byte/word/signed word~) line_xdyd::$5 ← (byte) line_xdyd::e - (byte) line_xdyd::xd - (byte) line_xdyd::e ← (byte/signed byte/word/signed word~) line_xdyd::$5 + (byte/signed byte/word/signed word/dword/signed dword~) line_xdyd::$5 ← (byte) line_xdyd::e - (byte) line_xdyd::xd + (byte) line_xdyd::e ← (byte/signed byte/word/signed word/dword/signed dword~) line_xdyd::$5 line_xdyd::@2: (byte/word~) line_xdyd::$6 ← (byte) line_xdyd::x1 + (byte/signed byte/word/signed word/dword/signed dword) 1 (boolean~) line_xdyd::$7 ← (byte) line_xdyd::x != (byte/word~) line_xdyd::$6 @@ -367,8 +367,8 @@ line_ydxi::@1: (boolean~) line_ydxi::$4 ← ! (boolean~) line_ydxi::$3 if((boolean~) line_ydxi::$4) goto line_ydxi::@2 (byte) line_ydxi::x ← ++ (byte) line_ydxi::x - (byte/signed byte/word/signed word~) line_ydxi::$5 ← (byte) line_ydxi::e - (byte) line_ydxi::yd - (byte) line_ydxi::e ← (byte/signed byte/word/signed word~) line_ydxi::$5 + (byte/signed byte/word/signed word/dword/signed dword~) line_ydxi::$5 ← (byte) line_ydxi::e - (byte) line_ydxi::yd + (byte) line_ydxi::e ← (byte/signed byte/word/signed word/dword/signed dword~) line_ydxi::$5 line_ydxi::@2: (byte/word~) line_ydxi::$6 ← (byte) line_ydxi::y1 + (byte/signed byte/word/signed word/dword/signed dword) 1 (boolean~) line_ydxi::$7 ← (byte) line_ydxi::y != (byte/word~) line_ydxi::$6 @@ -389,8 +389,8 @@ line_ydxd::@1: (boolean~) line_ydxd::$4 ← ! (boolean~) line_ydxd::$3 if((boolean~) line_ydxd::$4) goto line_ydxd::@2 (byte) line_ydxd::x ← -- (byte) line_ydxd::x - (byte/signed byte/word/signed word~) line_ydxd::$5 ← (byte) line_ydxd::e - (byte) line_ydxd::yd - (byte) line_ydxd::e ← (byte/signed byte/word/signed word~) line_ydxd::$5 + (byte/signed byte/word/signed word/dword/signed dword~) line_ydxd::$5 ← (byte) line_ydxd::e - (byte) line_ydxd::yd + (byte) line_ydxd::e ← (byte/signed byte/word/signed word/dword/signed dword~) line_ydxd::$5 line_ydxd::@2: (byte/word~) line_ydxd::$6 ← (byte) line_ydxd::y1 + (byte/signed byte/word/signed word/dword/signed dword) 1 (boolean~) line_ydxd::$7 ← (byte) line_ydxd::y != (byte/word~) line_ydxd::$6 @@ -526,28 +526,28 @@ SYMBOLS (void()) line((byte) line::x0 , (byte) line::x1 , (byte) line::y0 , (byte) line::y1) (boolean~) line::$0 (boolean~) line::$1 -(byte/signed byte/word/signed word~) line::$10 +(byte/signed byte/word/signed word/dword/signed dword~) line::$10 (boolean~) line::$11 (boolean~) line::$12 (void~) line::$13 (void~) line::$14 -(byte/signed byte/word/signed word~) line::$15 +(byte/signed byte/word/signed word/dword/signed dword~) line::$15 (boolean~) line::$16 (boolean~) line::$17 -(byte/signed byte/word/signed word~) line::$18 +(byte/signed byte/word/signed word/dword/signed dword~) line::$18 (boolean~) line::$19 -(byte/signed byte/word/signed word~) line::$2 +(byte/signed byte/word/signed word/dword/signed dword~) line::$2 (boolean~) line::$20 (void~) line::$21 (void~) line::$22 -(byte/signed byte/word/signed word~) line::$23 +(byte/signed byte/word/signed word/dword/signed dword~) line::$23 (boolean~) line::$24 (boolean~) line::$25 (void~) line::$26 (void~) line::$27 (boolean~) line::$3 (boolean~) line::$4 -(byte/signed byte/word/signed word~) line::$5 +(byte/signed byte/word/signed word/dword/signed dword~) line::$5 (boolean~) line::$6 (boolean~) line::$7 (void~) line::$8 @@ -579,7 +579,7 @@ SYMBOLS (byte/word~) line_xdyd::$2 (boolean~) line_xdyd::$3 (boolean~) line_xdyd::$4 -(byte/signed byte/word/signed word~) line_xdyd::$5 +(byte/signed byte/word/signed word/dword/signed dword~) line_xdyd::$5 (byte/word~) line_xdyd::$6 (boolean~) line_xdyd::$7 (label) line_xdyd::@1 @@ -597,7 +597,7 @@ SYMBOLS (byte/word~) line_xdyi::$2 (boolean~) line_xdyi::$3 (boolean~) line_xdyi::$4 -(byte/signed byte/word/signed word~) line_xdyi::$5 +(byte/signed byte/word/signed word/dword/signed dword~) line_xdyi::$5 (byte/word~) line_xdyi::$6 (boolean~) line_xdyi::$7 (label) line_xdyi::@1 @@ -615,7 +615,7 @@ SYMBOLS (byte/word~) line_ydxd::$2 (boolean~) line_ydxd::$3 (boolean~) line_ydxd::$4 -(byte/signed byte/word/signed word~) line_ydxd::$5 +(byte/signed byte/word/signed word/dword/signed dword~) line_ydxd::$5 (byte/word~) line_ydxd::$6 (boolean~) line_ydxd::$7 (label) line_ydxd::@1 @@ -633,7 +633,7 @@ SYMBOLS (byte/word~) line_ydxi::$2 (boolean~) line_ydxi::$3 (boolean~) line_ydxi::$4 -(byte/signed byte/word/signed word~) line_ydxi::$5 +(byte/signed byte/word/signed word/dword/signed dword~) line_ydxi::$5 (byte/word~) line_ydxi::$6 (boolean~) line_ydxi::$7 (label) line_ydxi::@1 @@ -776,29 +776,29 @@ line: scope:[line] from if((boolean~) line::$1) goto line::@1 to:line::@15 line::@1: scope:[line] from line line::@22 - (byte/signed byte/word/signed word~) line::$15 ← (byte) line::x0 - (byte) line::x1 - (byte) line::xd ← (byte/signed byte/word/signed word~) line::$15 + (byte/signed byte/word/signed word/dword/signed dword~) line::$15 ← (byte) line::x0 - (byte) line::x1 + (byte) line::xd ← (byte/signed byte/word/signed word/dword/signed dword~) line::$15 (boolean~) line::$16 ← (byte) line::y0 < (byte) line::y1 (boolean~) line::$17 ← ! (boolean~) line::$16 if((boolean~) line::$17) goto line::@9 to:line::@23 line::@15: scope:[line] from line - (byte/signed byte/word/signed word~) line::$2 ← (byte) line::x1 - (byte) line::x0 - (byte) line::xd ← (byte/signed byte/word/signed word~) line::$2 + (byte/signed byte/word/signed word/dword/signed dword~) line::$2 ← (byte) line::x1 - (byte) line::x0 + (byte) line::xd ← (byte/signed byte/word/signed word/dword/signed dword~) line::$2 (boolean~) line::$3 ← (byte) line::y0 < (byte) line::y1 (boolean~) line::$4 ← ! (boolean~) line::$3 if((boolean~) line::$4) goto line::@2 to:line::@16 line::@2: scope:[line] from line::@15 line::@19 - (byte/signed byte/word/signed word~) line::$10 ← (byte) line::y0 - (byte) line::y1 - (byte) line::yd ← (byte/signed byte/word/signed word~) line::$10 + (byte/signed byte/word/signed word/dword/signed dword~) line::$10 ← (byte) line::y0 - (byte) line::y1 + (byte) line::yd ← (byte/signed byte/word/signed word/dword/signed dword~) line::$10 (boolean~) line::$11 ← (byte) line::yd < (byte) line::xd (boolean~) line::$12 ← ! (boolean~) line::$11 if((boolean~) line::$12) goto line::@6 to:line::@20 line::@16: scope:[line] from line::@15 - (byte/signed byte/word/signed word~) line::$5 ← (byte) line::y1 - (byte) line::y0 - (byte) line::yd ← (byte/signed byte/word/signed word~) line::$5 + (byte/signed byte/word/signed word/dword/signed dword~) line::$5 ← (byte) line::y1 - (byte) line::y0 + (byte) line::yd ← (byte/signed byte/word/signed word/dword/signed dword~) line::$5 (boolean~) line::$6 ← (byte) line::yd < (byte) line::xd (boolean~) line::$7 ← ! (boolean~) line::$6 if((boolean~) line::$7) goto line::@3 @@ -832,15 +832,15 @@ line::@8: scope:[line] from line::@12 line::@5 line::@22: scope:[line] from to:line::@1 line::@9: scope:[line] from line::@1 line::@26 - (byte/signed byte/word/signed word~) line::$23 ← (byte) line::y0 - (byte) line::y1 - (byte) line::yd ← (byte/signed byte/word/signed word~) line::$23 + (byte/signed byte/word/signed word/dword/signed dword~) line::$23 ← (byte) line::y0 - (byte) line::y1 + (byte) line::yd ← (byte/signed byte/word/signed word/dword/signed dword~) line::$23 (boolean~) line::$24 ← (byte) line::yd < (byte) line::xd (boolean~) line::$25 ← ! (boolean~) line::$24 if((boolean~) line::$25) goto line::@13 to:line::@27 line::@23: scope:[line] from line::@1 - (byte/signed byte/word/signed word~) line::$18 ← (byte) line::y1 - (byte) line::y0 - (byte) line::yd ← (byte/signed byte/word/signed word~) line::$18 + (byte/signed byte/word/signed word/dword/signed dword~) line::$18 ← (byte) line::y1 - (byte) line::y0 + (byte) line::yd ← (byte/signed byte/word/signed word/dword/signed dword~) line::$18 (boolean~) line::$19 ← (byte) line::yd < (byte) line::xd (boolean~) line::$20 ← ! (boolean~) line::$19 if((boolean~) line::$20) goto line::@10 @@ -894,8 +894,8 @@ line_xdyi::@2: scope:[line_xdyi] from line_xdyi::@1 line_xdyi::@3 to:line_xdyi::@4 line_xdyi::@3: scope:[line_xdyi] from line_xdyi::@1 (byte) line_xdyi::y ← ++ (byte) line_xdyi::y - (byte/signed byte/word/signed word~) line_xdyi::$5 ← (byte) line_xdyi::e - (byte) line_xdyi::xd - (byte) line_xdyi::e ← (byte/signed byte/word/signed word~) line_xdyi::$5 + (byte/signed byte/word/signed word/dword/signed dword~) line_xdyi::$5 ← (byte) line_xdyi::e - (byte) line_xdyi::xd + (byte) line_xdyi::e ← (byte/signed byte/word/signed word/dword/signed dword~) line_xdyi::$5 to:line_xdyi::@2 line_xdyi::@4: scope:[line_xdyi] from line_xdyi::@2 to:line_xdyi::@return @@ -924,8 +924,8 @@ line_xdyd::@2: scope:[line_xdyd] from line_xdyd::@1 line_xdyd::@3 to:line_xdyd::@4 line_xdyd::@3: scope:[line_xdyd] from line_xdyd::@1 (byte) line_xdyd::y ← -- (byte) line_xdyd::y - (byte/signed byte/word/signed word~) line_xdyd::$5 ← (byte) line_xdyd::e - (byte) line_xdyd::xd - (byte) line_xdyd::e ← (byte/signed byte/word/signed word~) line_xdyd::$5 + (byte/signed byte/word/signed word/dword/signed dword~) line_xdyd::$5 ← (byte) line_xdyd::e - (byte) line_xdyd::xd + (byte) line_xdyd::e ← (byte/signed byte/word/signed word/dword/signed dword~) line_xdyd::$5 to:line_xdyd::@2 line_xdyd::@4: scope:[line_xdyd] from line_xdyd::@2 to:line_xdyd::@return @@ -954,8 +954,8 @@ line_ydxi::@2: scope:[line_ydxi] from line_ydxi::@1 line_ydxi::@3 to:line_ydxi::@4 line_ydxi::@3: scope:[line_ydxi] from line_ydxi::@1 (byte) line_ydxi::x ← ++ (byte) line_ydxi::x - (byte/signed byte/word/signed word~) line_ydxi::$5 ← (byte) line_ydxi::e - (byte) line_ydxi::yd - (byte) line_ydxi::e ← (byte/signed byte/word/signed word~) line_ydxi::$5 + (byte/signed byte/word/signed word/dword/signed dword~) line_ydxi::$5 ← (byte) line_ydxi::e - (byte) line_ydxi::yd + (byte) line_ydxi::e ← (byte/signed byte/word/signed word/dword/signed dword~) line_ydxi::$5 to:line_ydxi::@2 line_ydxi::@4: scope:[line_ydxi] from line_ydxi::@2 to:line_ydxi::@return @@ -985,8 +985,8 @@ line_ydxd::@2: scope:[line_ydxd] from line_ydxd::@1 line_ydxd::@3 to:line_ydxd::@4 line_ydxd::@3: scope:[line_ydxd] from line_ydxd::@1 (byte) line_ydxd::x ← -- (byte) line_ydxd::x - (byte/signed byte/word/signed word~) line_ydxd::$5 ← (byte) line_ydxd::e - (byte) line_ydxd::yd - (byte) line_ydxd::e ← (byte/signed byte/word/signed word~) line_ydxd::$5 + (byte/signed byte/word/signed word/dword/signed dword~) line_ydxd::$5 ← (byte) line_ydxd::e - (byte) line_ydxd::yd + (byte) line_ydxd::e ← (byte/signed byte/word/signed word/dword/signed dword~) line_ydxd::$5 to:line_ydxd::@2 line_ydxd::@4: scope:[line_ydxd] from line_ydxd::@2 to:line_ydxd::@return @@ -1262,8 +1262,8 @@ line::@1: scope:[line] from line (byte) line::y0#1 ← phi( line/(byte) line::y0#13 ) (byte) line::x1#2 ← phi( line/(byte) line::x1#1 ) (byte) line::x0#2 ← phi( line/(byte) line::x0#1 ) - (byte/signed byte/word/signed word~) line::$15 ← (byte) line::x0#2 - (byte) line::x1#2 - (byte) line::xd#0 ← (byte/signed byte/word/signed word~) line::$15 + (byte/signed byte/word/signed word/dword/signed dword~) line::$15 ← (byte) line::x0#2 - (byte) line::x1#2 + (byte) line::xd#0 ← (byte/signed byte/word/signed word/dword/signed dword~) line::$15 (boolean~) line::$16 ← (byte) line::y0#1 < (byte) line::y1#1 (boolean~) line::$17 ← ! (boolean~) line::$16 if((boolean~) line::$17) goto line::@9 @@ -1273,8 +1273,8 @@ line::@15: scope:[line] from line (byte) line::y0#2 ← phi( line/(byte) line::y0#13 ) (byte) line::x0#3 ← phi( line/(byte) line::x0#1 ) (byte) line::x1#3 ← phi( line/(byte) line::x1#1 ) - (byte/signed byte/word/signed word~) line::$2 ← (byte) line::x1#3 - (byte) line::x0#3 - (byte) line::xd#1 ← (byte/signed byte/word/signed word~) line::$2 + (byte/signed byte/word/signed word/dword/signed dword~) line::$2 ← (byte) line::x1#3 - (byte) line::x0#3 + (byte) line::xd#1 ← (byte/signed byte/word/signed word/dword/signed dword~) line::$2 (boolean~) line::$3 ← (byte) line::y0#2 < (byte) line::y1#2 (boolean~) line::$4 ← ! (boolean~) line::$3 if((boolean~) line::$4) goto line::@2 @@ -1285,8 +1285,8 @@ line::@2: scope:[line] from line::@15 (byte) line::xd#2 ← phi( line::@15/(byte) line::xd#1 ) (byte) line::y1#3 ← phi( line::@15/(byte) line::y1#2 ) (byte) line::y0#3 ← phi( line::@15/(byte) line::y0#2 ) - (byte/signed byte/word/signed word~) line::$10 ← (byte) line::y0#3 - (byte) line::y1#3 - (byte) line::yd#0 ← (byte/signed byte/word/signed word~) line::$10 + (byte/signed byte/word/signed word/dword/signed dword~) line::$10 ← (byte) line::y0#3 - (byte) line::y1#3 + (byte) line::yd#0 ← (byte/signed byte/word/signed word/dword/signed dword~) line::$10 (boolean~) line::$11 ← (byte) line::yd#0 < (byte) line::xd#2 (boolean~) line::$12 ← ! (boolean~) line::$11 if((boolean~) line::$12) goto line::@6 @@ -1297,8 +1297,8 @@ line::@16: scope:[line] from line::@15 (byte) line::xd#3 ← phi( line::@15/(byte) line::xd#1 ) (byte) line::y0#4 ← phi( line::@15/(byte) line::y0#2 ) (byte) line::y1#4 ← phi( line::@15/(byte) line::y1#2 ) - (byte/signed byte/word/signed word~) line::$5 ← (byte) line::y1#4 - (byte) line::y0#4 - (byte) line::yd#1 ← (byte/signed byte/word/signed word~) line::$5 + (byte/signed byte/word/signed word/dword/signed dword~) line::$5 ← (byte) line::y1#4 - (byte) line::y0#4 + (byte) line::yd#1 ← (byte/signed byte/word/signed word/dword/signed dword~) line::$5 (boolean~) line::$6 ← (byte) line::yd#1 < (byte) line::xd#3 (boolean~) line::$7 ← ! (boolean~) line::$6 if((boolean~) line::$7) goto line::@3 @@ -1369,8 +1369,8 @@ line::@9: scope:[line] from line::@1 (byte) line::xd#8 ← phi( line::@1/(byte) line::xd#0 ) (byte) line::y1#7 ← phi( line::@1/(byte) line::y1#1 ) (byte) line::y0#9 ← phi( line::@1/(byte) line::y0#1 ) - (byte/signed byte/word/signed word~) line::$23 ← (byte) line::y0#9 - (byte) line::y1#7 - (byte) line::yd#2 ← (byte/signed byte/word/signed word~) line::$23 + (byte/signed byte/word/signed word/dword/signed dword~) line::$23 ← (byte) line::y0#9 - (byte) line::y1#7 + (byte) line::yd#2 ← (byte/signed byte/word/signed word/dword/signed dword~) line::$23 (boolean~) line::$24 ← (byte) line::yd#2 < (byte) line::xd#8 (boolean~) line::$25 ← ! (boolean~) line::$24 if((boolean~) line::$25) goto line::@13 @@ -1381,8 +1381,8 @@ line::@23: scope:[line] from line::@1 (byte) line::xd#9 ← phi( line::@1/(byte) line::xd#0 ) (byte) line::y0#10 ← phi( line::@1/(byte) line::y0#1 ) (byte) line::y1#8 ← phi( line::@1/(byte) line::y1#1 ) - (byte/signed byte/word/signed word~) line::$18 ← (byte) line::y1#8 - (byte) line::y0#10 - (byte) line::yd#3 ← (byte/signed byte/word/signed word~) line::$18 + (byte/signed byte/word/signed word/dword/signed dword~) line::$18 ← (byte) line::y1#8 - (byte) line::y0#10 + (byte) line::yd#3 ← (byte/signed byte/word/signed word/dword/signed dword~) line::$18 (boolean~) line::$19 ← (byte) line::yd#3 < (byte) line::xd#9 (boolean~) line::$20 ← ! (boolean~) line::$19 if((boolean~) line::$20) goto line::@10 @@ -1503,8 +1503,8 @@ line_xdyi::@3: scope:[line_xdyi] from line_xdyi::@5 (byte) line_xdyi::e#4 ← phi( line_xdyi::@5/(byte) line_xdyi::e#1 ) (byte) line_xdyi::y#4 ← phi( line_xdyi::@5/(byte) line_xdyi::y#7 ) (byte) line_xdyi::y#2 ← ++ (byte) line_xdyi::y#4 - (byte/signed byte/word/signed word~) line_xdyi::$5 ← (byte) line_xdyi::e#4 - (byte) line_xdyi::xd#3 - (byte) line_xdyi::e#2 ← (byte/signed byte/word/signed word~) line_xdyi::$5 + (byte/signed byte/word/signed word/dword/signed dword~) line_xdyi::$5 ← (byte) line_xdyi::e#4 - (byte) line_xdyi::xd#3 + (byte) line_xdyi::e#2 ← (byte/signed byte/word/signed word/dword/signed dword~) line_xdyi::$5 to:line_xdyi::@2 line_xdyi::@return: scope:[line_xdyi] from line_xdyi::@2 return @@ -1562,8 +1562,8 @@ line_xdyd::@3: scope:[line_xdyd] from line_xdyd::@5 (byte) line_xdyd::e#4 ← phi( line_xdyd::@5/(byte) line_xdyd::e#1 ) (byte) line_xdyd::y#4 ← phi( line_xdyd::@5/(byte) line_xdyd::y#7 ) (byte) line_xdyd::y#2 ← -- (byte) line_xdyd::y#4 - (byte/signed byte/word/signed word~) line_xdyd::$5 ← (byte) line_xdyd::e#4 - (byte) line_xdyd::xd#3 - (byte) line_xdyd::e#2 ← (byte/signed byte/word/signed word~) line_xdyd::$5 + (byte/signed byte/word/signed word/dword/signed dword~) line_xdyd::$5 ← (byte) line_xdyd::e#4 - (byte) line_xdyd::xd#3 + (byte) line_xdyd::e#2 ← (byte/signed byte/word/signed word/dword/signed dword~) line_xdyd::$5 to:line_xdyd::@2 line_xdyd::@return: scope:[line_xdyd] from line_xdyd::@2 return @@ -1621,8 +1621,8 @@ line_ydxi::@3: scope:[line_ydxi] from line_ydxi::@5 (byte) line_ydxi::e#4 ← phi( line_ydxi::@5/(byte) line_ydxi::e#1 ) (byte) line_ydxi::x#4 ← phi( line_ydxi::@5/(byte) line_ydxi::x#7 ) (byte) line_ydxi::x#2 ← ++ (byte) line_ydxi::x#4 - (byte/signed byte/word/signed word~) line_ydxi::$5 ← (byte) line_ydxi::e#4 - (byte) line_ydxi::yd#3 - (byte) line_ydxi::e#2 ← (byte/signed byte/word/signed word~) line_ydxi::$5 + (byte/signed byte/word/signed word/dword/signed dword~) line_ydxi::$5 ← (byte) line_ydxi::e#4 - (byte) line_ydxi::yd#3 + (byte) line_ydxi::e#2 ← (byte/signed byte/word/signed word/dword/signed dword~) line_ydxi::$5 to:line_ydxi::@2 line_ydxi::@return: scope:[line_ydxi] from line_ydxi::@2 return @@ -1681,8 +1681,8 @@ line_ydxd::@3: scope:[line_ydxd] from line_ydxd::@5 (byte) line_ydxd::e#4 ← phi( line_ydxd::@5/(byte) line_ydxd::e#1 ) (byte) line_ydxd::x#4 ← phi( line_ydxd::@5/(byte) line_ydxd::x#7 ) (byte) line_ydxd::x#2 ← -- (byte) line_ydxd::x#4 - (byte/signed byte/word/signed word~) line_ydxd::$5 ← (byte) line_ydxd::e#4 - (byte) line_ydxd::yd#3 - (byte) line_ydxd::e#2 ← (byte/signed byte/word/signed word~) line_ydxd::$5 + (byte/signed byte/word/signed word/dword/signed dword~) line_ydxd::$5 ← (byte) line_ydxd::e#4 - (byte) line_ydxd::yd#3 + (byte) line_ydxd::e#2 ← (byte/signed byte/word/signed word/dword/signed dword~) line_ydxd::$5 to:line_ydxd::@2 line_ydxd::@return: scope:[line_ydxd] from line_ydxd::@2 return @@ -1921,22 +1921,22 @@ SYMBOL TABLE SSA (void()) line((byte) line::x0 , (byte) line::x1 , (byte) line::y0 , (byte) line::y1) (boolean~) line::$0 (boolean~) line::$1 -(byte/signed byte/word/signed word~) line::$10 +(byte/signed byte/word/signed word/dword/signed dword~) line::$10 (boolean~) line::$11 (boolean~) line::$12 -(byte/signed byte/word/signed word~) line::$15 +(byte/signed byte/word/signed word/dword/signed dword~) line::$15 (boolean~) line::$16 (boolean~) line::$17 -(byte/signed byte/word/signed word~) line::$18 +(byte/signed byte/word/signed word/dword/signed dword~) line::$18 (boolean~) line::$19 -(byte/signed byte/word/signed word~) line::$2 +(byte/signed byte/word/signed word/dword/signed dword~) line::$2 (boolean~) line::$20 -(byte/signed byte/word/signed word~) line::$23 +(byte/signed byte/word/signed word/dword/signed dword~) line::$23 (boolean~) line::$24 (boolean~) line::$25 (boolean~) line::$3 (boolean~) line::$4 -(byte/signed byte/word/signed word~) line::$5 +(byte/signed byte/word/signed word/dword/signed dword~) line::$5 (boolean~) line::$6 (boolean~) line::$7 (label) line::@1 @@ -2055,7 +2055,7 @@ SYMBOL TABLE SSA (byte/word~) line_xdyd::$2 (boolean~) line_xdyd::$3 (boolean~) line_xdyd::$4 -(byte/signed byte/word/signed word~) line_xdyd::$5 +(byte/signed byte/word/signed word/dword/signed dword~) line_xdyd::$5 (byte/word~) line_xdyd::$6 (boolean~) line_xdyd::$7 (label) line_xdyd::@1 @@ -2118,7 +2118,7 @@ SYMBOL TABLE SSA (byte/word~) line_xdyi::$2 (boolean~) line_xdyi::$3 (boolean~) line_xdyi::$4 -(byte/signed byte/word/signed word~) line_xdyi::$5 +(byte/signed byte/word/signed word/dword/signed dword~) line_xdyi::$5 (byte/word~) line_xdyi::$6 (boolean~) line_xdyi::$7 (label) line_xdyi::@1 @@ -2181,7 +2181,7 @@ SYMBOL TABLE SSA (byte/word~) line_ydxd::$2 (boolean~) line_ydxd::$3 (boolean~) line_ydxd::$4 -(byte/signed byte/word/signed word~) line_ydxd::$5 +(byte/signed byte/word/signed word/dword/signed dword~) line_ydxd::$5 (byte/word~) line_ydxd::$6 (boolean~) line_ydxd::$7 (label) line_ydxd::@1 @@ -2245,7 +2245,7 @@ SYMBOL TABLE SSA (byte/word~) line_ydxi::$2 (boolean~) line_ydxi::$3 (boolean~) line_ydxi::$4 -(byte/signed byte/word/signed word~) line_ydxi::$5 +(byte/signed byte/word/signed word/dword/signed dword~) line_ydxi::$5 (byte/word~) line_ydxi::$6 (boolean~) line_ydxi::$7 (label) line_ydxi::@1 @@ -2499,12 +2499,12 @@ Alias (byte) line::x0#1 = (byte) line::x0#2 (byte) line::x0#3 (byte) line::x0#11 Alias (byte) line::x1#1 = (byte) line::x1#2 (byte) line::x1#3 (byte) line::x1#11 (byte) line::x1#10 (byte) line::x1#4 (byte) line::x1#5 (byte) line::x1#6 (byte) line::x1#13 (byte) line::x1#12 (byte) line::x1#7 (byte) line::x1#8 (byte) line::x1#9 Alias (byte) line::y0#1 = (byte) line::y0#13 (byte) line::y0#2 (byte) line::y0#3 (byte) line::y0#4 (byte) line::y0#5 (byte) line::y0#6 (byte) line::y0#7 (byte) line::y0#8 (byte) line::y0#9 (byte) line::y0#10 (byte) line::y0#11 (byte) line::y0#12 Alias (byte) line::y1#1 = (byte) line::y1#13 (byte) line::y1#2 (byte) line::y1#3 (byte) line::y1#4 (byte) line::y1#5 (byte) line::y1#6 (byte) line::y1#7 (byte) line::y1#8 (byte) line::y1#9 (byte) line::y1#10 (byte) line::y1#11 (byte) line::y1#12 -Alias (byte) line::xd#0 = (byte/signed byte/word/signed word~) line::$15 (byte) line::xd#8 (byte) line::xd#9 (byte) line::xd#10 (byte) line::xd#11 (byte) line::xd#12 (byte) line::xd#13 -Alias (byte) line::xd#1 = (byte/signed byte/word/signed word~) line::$2 (byte) line::xd#2 (byte) line::xd#3 (byte) line::xd#4 (byte) line::xd#5 (byte) line::xd#6 (byte) line::xd#7 -Alias (byte) line::yd#0 = (byte/signed byte/word/signed word~) line::$10 (byte) line::yd#6 (byte) line::yd#7 -Alias (byte) line::yd#1 = (byte/signed byte/word/signed word~) line::$5 (byte) line::yd#4 (byte) line::yd#5 -Alias (byte) line::yd#10 = (byte) line::yd#2 (byte/signed byte/word/signed word~) line::$23 (byte) line::yd#11 -Alias (byte) line::yd#3 = (byte/signed byte/word/signed word~) line::$18 (byte) line::yd#8 (byte) line::yd#9 +Alias (byte) line::xd#0 = (byte/signed byte/word/signed word/dword/signed dword~) line::$15 (byte) line::xd#8 (byte) line::xd#9 (byte) line::xd#10 (byte) line::xd#11 (byte) line::xd#12 (byte) line::xd#13 +Alias (byte) line::xd#1 = (byte/signed byte/word/signed word/dword/signed dword~) line::$2 (byte) line::xd#2 (byte) line::xd#3 (byte) line::xd#4 (byte) line::xd#5 (byte) line::xd#6 (byte) line::xd#7 +Alias (byte) line::yd#0 = (byte/signed byte/word/signed word/dword/signed dword~) line::$10 (byte) line::yd#6 (byte) line::yd#7 +Alias (byte) line::yd#1 = (byte/signed byte/word/signed word/dword/signed dword~) line::$5 (byte) line::yd#4 (byte) line::yd#5 +Alias (byte) line::yd#10 = (byte) line::yd#2 (byte/signed byte/word/signed word/dword/signed dword~) line::$23 (byte) line::yd#11 +Alias (byte) line::yd#3 = (byte/signed byte/word/signed word/dword/signed dword~) line::$18 (byte) line::yd#8 (byte) line::yd#9 Alias (byte) line_xdyi::e#0 = (byte~) line_xdyi::$0 Alias (byte) line_xdyi::x#3 = (byte) line_xdyi::x#4 Alias (byte) line_xdyi::e#3 = (byte) line_xdyi::e#5 @@ -2514,7 +2514,7 @@ Alias (byte) line_xdyi::x1#3 = (byte) line_xdyi::x1#4 (byte) line_xdyi::x1#5 Alias (byte) line_xdyi::y#3 = (byte) line_xdyi::y#7 (byte) line_xdyi::y#4 Alias (byte) line_xdyi::e#1 = (byte/word~) line_xdyi::$2 (byte) line_xdyi::e#4 Alias (byte) line_xdyi::x#2 = (byte) line_xdyi::x#7 -Alias (byte) line_xdyi::e#2 = (byte/signed byte/word/signed word~) line_xdyi::$5 +Alias (byte) line_xdyi::e#2 = (byte/signed byte/word/signed word/dword/signed dword~) line_xdyi::$5 Alias (byte) line_xdyd::e#0 = (byte~) line_xdyd::$0 Alias (byte) line_xdyd::x#3 = (byte) line_xdyd::x#4 Alias (byte) line_xdyd::e#3 = (byte) line_xdyd::e#5 @@ -2524,7 +2524,7 @@ Alias (byte) line_xdyd::x1#3 = (byte) line_xdyd::x1#4 (byte) line_xdyd::x1#5 Alias (byte) line_xdyd::y#3 = (byte) line_xdyd::y#7 (byte) line_xdyd::y#4 Alias (byte) line_xdyd::e#1 = (byte/word~) line_xdyd::$2 (byte) line_xdyd::e#4 Alias (byte) line_xdyd::x#2 = (byte) line_xdyd::x#7 -Alias (byte) line_xdyd::e#2 = (byte/signed byte/word/signed word~) line_xdyd::$5 +Alias (byte) line_xdyd::e#2 = (byte/signed byte/word/signed word/dword/signed dword~) line_xdyd::$5 Alias (byte) line_ydxi::e#0 = (byte~) line_ydxi::$0 Alias (byte) line_ydxi::y#3 = (byte) line_ydxi::y#4 Alias (byte) line_ydxi::e#3 = (byte) line_ydxi::e#5 @@ -2534,7 +2534,7 @@ Alias (byte) line_ydxi::y1#3 = (byte) line_ydxi::y1#4 (byte) line_ydxi::y1#5 Alias (byte) line_ydxi::x#3 = (byte) line_ydxi::x#7 (byte) line_ydxi::x#4 Alias (byte) line_ydxi::e#1 = (byte/word~) line_ydxi::$2 (byte) line_ydxi::e#4 Alias (byte) line_ydxi::y#2 = (byte) line_ydxi::y#7 -Alias (byte) line_ydxi::e#2 = (byte/signed byte/word/signed word~) line_ydxi::$5 +Alias (byte) line_ydxi::e#2 = (byte/signed byte/word/signed word/dword/signed dword~) line_ydxi::$5 Alias (byte) line_ydxd::e#0 = (byte~) line_ydxd::$0 Alias (byte) line_ydxd::y#2 = (byte) line_ydxd::y#5 (byte) line_ydxd::y#4 Alias (byte) line_ydxd::e#3 = (byte) line_ydxd::e#5 @@ -2544,7 +2544,7 @@ Alias (byte) line_ydxd::y1#3 = (byte) line_ydxd::y1#4 (byte) line_ydxd::y1#5 Alias (byte) line_ydxd::x#3 = (byte) line_ydxd::x#7 (byte) line_ydxd::x#4 Alias (byte) line_ydxd::e#1 = (byte/word~) line_ydxd::$2 (byte) line_ydxd::e#4 Alias (byte) line_ydxd::y#3 = (byte) line_ydxd::y#8 -Alias (byte) line_ydxd::e#2 = (byte/signed byte/word/signed word~) line_ydxd::$5 +Alias (byte) line_ydxd::e#2 = (byte/signed byte/word/signed word/dword/signed dword~) line_ydxd::$5 Alias (byte) init_plot_tables::bits#1 = (byte~) init_plot_tables::$2 Alias (byte) init_plot_tables::x#2 = (byte) init_plot_tables::x#4 Alias (byte*) init_plot_tables::yoffs#2 = (byte*) init_plot_tables::yoffs#3 diff --git a/src/test/java/dk/camelot64/kickc/test/ref/bresenham.log b/src/test/java/dk/camelot64/kickc/test/ref/bresenham.log index 3c4391ea5..d7c02ecaf 100644 --- a/src/test/java/dk/camelot64/kickc/test/ref/bresenham.log +++ b/src/test/java/dk/camelot64/kickc/test/ref/bresenham.log @@ -34,10 +34,10 @@ proc (void()) main() (byte) main::y0 ← (byte/signed byte/word/signed word/dword/signed dword) 4 (byte) main::x1 ← (byte/signed byte/word/signed word/dword/signed dword) 39 (byte) main::y1 ← (byte/signed byte/word/signed word/dword/signed dword) 24 - (byte/signed byte/word/signed word~) main::$0 ← (byte) main::x1 - (byte) main::x0 - (byte) main::xd ← (byte/signed byte/word/signed word~) main::$0 - (byte/signed byte/word/signed word~) main::$1 ← (byte) main::y1 - (byte) main::y0 - (byte) main::yd ← (byte/signed byte/word/signed word~) main::$1 + (byte/signed byte/word/signed word/dword/signed dword~) main::$0 ← (byte) main::x1 - (byte) main::x0 + (byte) main::xd ← (byte/signed byte/word/signed word/dword/signed dword~) main::$0 + (byte/signed byte/word/signed word/dword/signed dword~) main::$1 ← (byte) main::y1 - (byte) main::y0 + (byte) main::yd ← (byte/signed byte/word/signed word/dword/signed dword~) main::$1 (byte) main::x ← (byte) main::x0 (byte) main::y ← (byte) main::y0 (byte~) main::$2 ← (byte) main::yd / (byte/signed byte/word/signed word/dword/signed dword) 2 @@ -61,8 +61,8 @@ main::@1: (byte) main::y ← (byte/word~) main::$11 (byte*~) main::$12 ← (byte*) main::cursor + (byte/signed byte/word/signed word/dword/signed dword) 40 (byte*) main::cursor ← (byte*~) main::$12 - (byte/signed byte/word/signed word~) main::$13 ← (byte) main::e - (byte) main::xd - (byte) main::e ← (byte/signed byte/word/signed word~) main::$13 + (byte/signed byte/word/signed word/dword/signed dword~) main::$13 ← (byte) main::e - (byte) main::xd + (byte) main::e ← (byte/signed byte/word/signed word/dword/signed dword~) main::$13 main::@2: (byte/word~) main::$14 ← (byte) main::x1 + (byte/signed byte/word/signed word/dword/signed dword) 1 (boolean~) main::$15 ← (byte) main::x < (byte/word~) main::$14 @@ -76,12 +76,12 @@ SYMBOLS (byte[1000]) SCREEN (byte) STAR (void()) main() -(byte/signed byte/word/signed word~) main::$0 -(byte/signed byte/word/signed word~) main::$1 +(byte/signed byte/word/signed word/dword/signed dword~) main::$0 +(byte/signed byte/word/signed word/dword/signed dword~) main::$1 (boolean~) main::$10 (byte/word~) main::$11 (byte*~) main::$12 -(byte/signed byte/word/signed word~) main::$13 +(byte/signed byte/word/signed word/dword/signed dword~) main::$13 (byte/word~) main::$14 (boolean~) main::$15 (byte~) main::$2 @@ -117,10 +117,10 @@ main: scope:[main] from (byte) main::y0 ← (byte/signed byte/word/signed word/dword/signed dword) 4 (byte) main::x1 ← (byte/signed byte/word/signed word/dword/signed dword) 39 (byte) main::y1 ← (byte/signed byte/word/signed word/dword/signed dword) 24 - (byte/signed byte/word/signed word~) main::$0 ← (byte) main::x1 - (byte) main::x0 - (byte) main::xd ← (byte/signed byte/word/signed word~) main::$0 - (byte/signed byte/word/signed word~) main::$1 ← (byte) main::y1 - (byte) main::y0 - (byte) main::yd ← (byte/signed byte/word/signed word~) main::$1 + (byte/signed byte/word/signed word/dword/signed dword~) main::$0 ← (byte) main::x1 - (byte) main::x0 + (byte) main::xd ← (byte/signed byte/word/signed word/dword/signed dword~) main::$0 + (byte/signed byte/word/signed word/dword/signed dword~) main::$1 ← (byte) main::y1 - (byte) main::y0 + (byte) main::yd ← (byte/signed byte/word/signed word/dword/signed dword~) main::$1 (byte) main::x ← (byte) main::x0 (byte) main::y ← (byte) main::y0 (byte~) main::$2 ← (byte) main::yd / (byte/signed byte/word/signed word/dword/signed dword) 2 @@ -152,8 +152,8 @@ main::@3: scope:[main] from main::@1 (byte) main::y ← (byte/word~) main::$11 (byte*~) main::$12 ← (byte*) main::cursor + (byte/signed byte/word/signed word/dword/signed dword) 40 (byte*) main::cursor ← (byte*~) main::$12 - (byte/signed byte/word/signed word~) main::$13 ← (byte) main::e - (byte) main::xd - (byte) main::e ← (byte/signed byte/word/signed word~) main::$13 + (byte/signed byte/word/signed word/dword/signed dword~) main::$13 ← (byte) main::e - (byte) main::xd + (byte) main::e ← (byte/signed byte/word/signed word/dword/signed dword~) main::$13 to:main::@2 main::@4: scope:[main] from main::@2 to:main::@return @@ -183,10 +183,10 @@ main: scope:[main] from @1 (byte) main::y0#0 ← (byte/signed byte/word/signed word/dword/signed dword) 4 (byte) main::x1#0 ← (byte/signed byte/word/signed word/dword/signed dword) 39 (byte) main::y1#0 ← (byte/signed byte/word/signed word/dword/signed dword) 24 - (byte/signed byte/word/signed word~) main::$0 ← (byte) main::x1#0 - (byte) main::x0#0 - (byte) main::xd#0 ← (byte/signed byte/word/signed word~) main::$0 - (byte/signed byte/word/signed word~) main::$1 ← (byte) main::y1#0 - (byte) main::y0#0 - (byte) main::yd#0 ← (byte/signed byte/word/signed word~) main::$1 + (byte/signed byte/word/signed word/dword/signed dword~) main::$0 ← (byte) main::x1#0 - (byte) main::x0#0 + (byte) main::xd#0 ← (byte/signed byte/word/signed word/dword/signed dword~) main::$0 + (byte/signed byte/word/signed word/dword/signed dword~) main::$1 ← (byte) main::y1#0 - (byte) main::y0#0 + (byte) main::yd#0 ← (byte/signed byte/word/signed word/dword/signed dword~) main::$1 (byte) main::x#0 ← (byte) main::x0#0 (byte) main::y#0 ← (byte) main::y0#0 (byte~) main::$2 ← (byte) main::yd#0 / (byte/signed byte/word/signed word/dword/signed dword) 2 @@ -242,8 +242,8 @@ main::@3: scope:[main] from main::@1 (byte) main::y#1 ← (byte/word~) main::$11 (byte*~) main::$12 ← (byte*) main::cursor#4 + (byte/signed byte/word/signed word/dword/signed dword) 40 (byte*) main::cursor#2 ← (byte*~) main::$12 - (byte/signed byte/word/signed word~) main::$13 ← (byte) main::e#4 - (byte) main::xd#2 - (byte) main::e#2 ← (byte/signed byte/word/signed word~) main::$13 + (byte/signed byte/word/signed word/dword/signed dword~) main::$13 ← (byte) main::e#4 - (byte) main::xd#2 + (byte) main::e#2 ← (byte/signed byte/word/signed word/dword/signed dword~) main::$13 to:main::@2 main::@return: scope:[main] from main::@2 return @@ -271,12 +271,12 @@ SYMBOL TABLE SSA (byte) STAR#4 (byte) STAR#5 (void()) main() -(byte/signed byte/word/signed word~) main::$0 -(byte/signed byte/word/signed word~) main::$1 +(byte/signed byte/word/signed word/dword/signed dword~) main::$0 +(byte/signed byte/word/signed word/dword/signed dword~) main::$1 (boolean~) main::$10 (byte/word~) main::$11 (byte*~) main::$12 -(byte/signed byte/word/signed word~) main::$13 +(byte/signed byte/word/signed word/dword/signed dword~) main::$13 (byte/word~) main::$14 (boolean~) main::$15 (byte~) main::$2 @@ -345,8 +345,8 @@ Succesful SSA optimization Pass2CullEmptyBlocks Inversing boolean not (boolean~) main::$10 ← (byte) main::xd#1 > (byte) main::e#1 from (boolean~) main::$9 ← (byte) main::xd#1 <= (byte) main::e#1 Succesful SSA optimization Pass2UnaryNotSimplification Not aliassing across scopes: STAR#2 STAR#4 -Alias (byte) main::xd#0 = (byte/signed byte/word/signed word~) main::$0 -Alias (byte) main::yd#0 = (byte/signed byte/word/signed word~) main::$1 +Alias (byte) main::xd#0 = (byte/signed byte/word/signed word/dword/signed dword~) main::$0 +Alias (byte) main::yd#0 = (byte/signed byte/word/signed word/dword/signed dword~) main::$1 Alias (byte) main::x#0 = (byte) main::x0#0 Alias (byte) main::y#0 = (byte) main::y0#0 Alias (byte) main::e#0 = (byte~) main::$2 @@ -361,7 +361,7 @@ Alias (byte) STAR#1 = (byte) STAR#5 Alias (byte) main::yd#1 = (byte) main::yd#3 Alias (byte) main::y#1 = (byte/word~) main::$11 Alias (byte*) main::cursor#2 = (byte*~) main::$12 -Alias (byte) main::e#2 = (byte/signed byte/word/signed word~) main::$13 +Alias (byte) main::e#2 = (byte/signed byte/word/signed word/dword/signed dword~) main::$13 Alias (byte) STAR#0 = (byte) STAR#4 Succesful SSA optimization Pass2AliasElimination Not aliassing across scopes: STAR#2 STAR#0 diff --git a/src/test/java/dk/camelot64/kickc/test/ref/bresenhamarr.log b/src/test/java/dk/camelot64/kickc/test/ref/bresenhamarr.log index 1ed24b2ba..34a66a850 100644 --- a/src/test/java/dk/camelot64/kickc/test/ref/bresenhamarr.log +++ b/src/test/java/dk/camelot64/kickc/test/ref/bresenhamarr.log @@ -34,10 +34,10 @@ proc (void()) main() (byte) main::y0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 (byte) main::x1 ← (byte/signed byte/word/signed word/dword/signed dword) 39 (byte) main::y1 ← (byte/signed byte/word/signed word/dword/signed dword) 24 - (byte/signed byte/word/signed word~) main::$0 ← (byte) main::x1 - (byte) main::x0 - (byte) main::xd ← (byte/signed byte/word/signed word~) main::$0 - (byte/signed byte/word/signed word~) main::$1 ← (byte) main::y1 - (byte) main::y0 - (byte) main::yd ← (byte/signed byte/word/signed word~) main::$1 + (byte/signed byte/word/signed word/dword/signed dword~) main::$0 ← (byte) main::x1 - (byte) main::x0 + (byte) main::xd ← (byte/signed byte/word/signed word/dword/signed dword~) main::$0 + (byte/signed byte/word/signed word/dword/signed dword~) main::$1 ← (byte) main::y1 - (byte) main::y0 + (byte) main::yd ← (byte/signed byte/word/signed word/dword/signed dword~) main::$1 (byte) main::x ← (byte) main::x0 (byte) main::y ← (byte) main::y0 (byte~) main::$2 ← (byte) main::yd / (byte/signed byte/word/signed word/dword/signed dword) 2 @@ -60,8 +60,8 @@ main::@1: (byte) main::y ← (byte/word~) main::$10 (word~) main::$11 ← (word) main::idx + (byte/signed byte/word/signed word/dword/signed dword) 40 (word) main::idx ← (word~) main::$11 - (byte/signed byte/word/signed word~) main::$12 ← (byte) main::e - (byte) main::xd - (byte) main::e ← (byte/signed byte/word/signed word~) main::$12 + (byte/signed byte/word/signed word/dword/signed dword~) main::$12 ← (byte) main::e - (byte) main::xd + (byte) main::e ← (byte/signed byte/word/signed word/dword/signed dword~) main::$12 main::@2: (byte/word~) main::$13 ← (byte) main::x1 + (byte/signed byte/word/signed word/dword/signed dword) 1 (boolean~) main::$14 ← (byte) main::x < (byte/word~) main::$13 @@ -73,11 +73,11 @@ endproc // main() SYMBOLS (void()) main() -(byte/signed byte/word/signed word~) main::$0 -(byte/signed byte/word/signed word~) main::$1 +(byte/signed byte/word/signed word/dword/signed dword~) main::$0 +(byte/signed byte/word/signed word/dword/signed dword~) main::$1 (byte/word~) main::$10 (word~) main::$11 -(byte/signed byte/word/signed word~) main::$12 +(byte/signed byte/word/signed word/dword/signed dword~) main::$12 (byte/word~) main::$13 (boolean~) main::$14 (byte~) main::$2 @@ -115,10 +115,10 @@ main: scope:[main] from (byte) main::y0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 (byte) main::x1 ← (byte/signed byte/word/signed word/dword/signed dword) 39 (byte) main::y1 ← (byte/signed byte/word/signed word/dword/signed dword) 24 - (byte/signed byte/word/signed word~) main::$0 ← (byte) main::x1 - (byte) main::x0 - (byte) main::xd ← (byte/signed byte/word/signed word~) main::$0 - (byte/signed byte/word/signed word~) main::$1 ← (byte) main::y1 - (byte) main::y0 - (byte) main::yd ← (byte/signed byte/word/signed word~) main::$1 + (byte/signed byte/word/signed word/dword/signed dword~) main::$0 ← (byte) main::x1 - (byte) main::x0 + (byte) main::xd ← (byte/signed byte/word/signed word/dword/signed dword~) main::$0 + (byte/signed byte/word/signed word/dword/signed dword~) main::$1 ← (byte) main::y1 - (byte) main::y0 + (byte) main::yd ← (byte/signed byte/word/signed word/dword/signed dword~) main::$1 (byte) main::x ← (byte) main::x0 (byte) main::y ← (byte) main::y0 (byte~) main::$2 ← (byte) main::yd / (byte/signed byte/word/signed word/dword/signed dword) 2 @@ -149,8 +149,8 @@ main::@3: scope:[main] from main::@1 (byte) main::y ← (byte/word~) main::$10 (word~) main::$11 ← (word) main::idx + (byte/signed byte/word/signed word/dword/signed dword) 40 (word) main::idx ← (word~) main::$11 - (byte/signed byte/word/signed word~) main::$12 ← (byte) main::e - (byte) main::xd - (byte) main::e ← (byte/signed byte/word/signed word~) main::$12 + (byte/signed byte/word/signed word/dword/signed dword~) main::$12 ← (byte) main::e - (byte) main::xd + (byte) main::e ← (byte/signed byte/word/signed word/dword/signed dword~) main::$12 to:main::@2 main::@4: scope:[main] from main::@2 to:main::@return @@ -179,10 +179,10 @@ main: scope:[main] from @1 (byte) main::y0#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 (byte) main::x1#0 ← (byte/signed byte/word/signed word/dword/signed dword) 39 (byte) main::y1#0 ← (byte/signed byte/word/signed word/dword/signed dword) 24 - (byte/signed byte/word/signed word~) main::$0 ← (byte) main::x1#0 - (byte) main::x0#0 - (byte) main::xd#0 ← (byte/signed byte/word/signed word~) main::$0 - (byte/signed byte/word/signed word~) main::$1 ← (byte) main::y1#0 - (byte) main::y0#0 - (byte) main::yd#0 ← (byte/signed byte/word/signed word~) main::$1 + (byte/signed byte/word/signed word/dword/signed dword~) main::$0 ← (byte) main::x1#0 - (byte) main::x0#0 + (byte) main::xd#0 ← (byte/signed byte/word/signed word/dword/signed dword~) main::$0 + (byte/signed byte/word/signed word/dword/signed dword~) main::$1 ← (byte) main::y1#0 - (byte) main::y0#0 + (byte) main::yd#0 ← (byte/signed byte/word/signed word/dword/signed dword~) main::$1 (byte) main::x#0 ← (byte) main::x0#0 (byte) main::y#0 ← (byte) main::y0#0 (byte~) main::$2 ← (byte) main::yd#0 / (byte/signed byte/word/signed word/dword/signed dword) 2 @@ -237,8 +237,8 @@ main::@3: scope:[main] from main::@1 (byte) main::y#1 ← (byte/word~) main::$10 (word~) main::$11 ← (word) main::idx#4 + (byte/signed byte/word/signed word/dword/signed dword) 40 (word) main::idx#2 ← (word~) main::$11 - (byte/signed byte/word/signed word~) main::$12 ← (byte) main::e#4 - (byte) main::xd#2 - (byte) main::e#2 ← (byte/signed byte/word/signed word~) main::$12 + (byte/signed byte/word/signed word/dword/signed dword~) main::$12 ← (byte) main::e#4 - (byte) main::xd#2 + (byte) main::e#2 ← (byte/signed byte/word/signed word/dword/signed dword~) main::$12 to:main::@2 main::@return: scope:[main] from main::@2 return @@ -256,11 +256,11 @@ SYMBOL TABLE SSA (label) @begin (label) @end (void()) main() -(byte/signed byte/word/signed word~) main::$0 -(byte/signed byte/word/signed word~) main::$1 +(byte/signed byte/word/signed word/dword/signed dword~) main::$0 +(byte/signed byte/word/signed word/dword/signed dword~) main::$1 (byte/word~) main::$10 (word~) main::$11 -(byte/signed byte/word/signed word~) main::$12 +(byte/signed byte/word/signed word/dword/signed dword~) main::$12 (byte/word~) main::$13 (boolean~) main::$14 (byte~) main::$2 @@ -335,8 +335,8 @@ Culled Empty Block (label) @2 Succesful SSA optimization Pass2CullEmptyBlocks Inversing boolean not (boolean~) main::$9 ← (byte) main::xd#1 >= (byte) main::e#1 from (boolean~) main::$8 ← (byte) main::xd#1 < (byte) main::e#1 Succesful SSA optimization Pass2UnaryNotSimplification -Alias (byte) main::xd#0 = (byte/signed byte/word/signed word~) main::$0 -Alias (byte) main::yd#0 = (byte/signed byte/word/signed word~) main::$1 +Alias (byte) main::xd#0 = (byte/signed byte/word/signed word/dword/signed dword~) main::$0 +Alias (byte) main::yd#0 = (byte/signed byte/word/signed word/dword/signed dword~) main::$1 Alias (byte) main::x#0 = (byte) main::x0#0 Alias (byte) main::y#0 = (byte) main::y0#0 Alias (byte) main::e#0 = (byte~) main::$2 @@ -351,7 +351,7 @@ Alias (byte) main::STAR#1 = (byte) main::STAR#3 Alias (byte) main::yd#1 = (byte) main::yd#3 Alias (byte) main::y#1 = (byte/word~) main::$10 Alias (word) main::idx#2 = (word~) main::$11 -Alias (byte) main::e#2 = (byte/signed byte/word/signed word~) main::$12 +Alias (byte) main::e#2 = (byte/signed byte/word/signed word/dword/signed dword~) main::$12 Succesful SSA optimization Pass2AliasElimination Alias (byte) main::x1#1 = (byte) main::x1#2 Alias (byte) main::x#1 = (byte) main::x#3 diff --git a/src/test/java/dk/camelot64/kickc/test/ref/casting.log b/src/test/java/dk/camelot64/kickc/test/ref/casting.log index b0a243f21..9a2fef192 100644 --- a/src/test/java/dk/camelot64/kickc/test/ref/casting.log +++ b/src/test/java/dk/camelot64/kickc/test/ref/casting.log @@ -43,8 +43,8 @@ STATEMENTS proc (void()) main() (byte) main::b ← (byte/signed byte/word/signed word/dword/signed dword) 0 main::@1: - (byte/signed byte/word/signed word~) main::$0 ← (byte/word/signed word/dword/signed dword) 200 - (byte) main::b - (byte) main::b2 ← (byte/signed byte/word/signed word~) main::$0 + (byte/signed byte/word/signed word/dword/signed dword~) main::$0 ← (byte/word/signed word/dword/signed dword) 200 - (byte) main::b + (byte) main::b2 ← (byte/signed byte/word/signed word/dword/signed dword~) main::$0 *((byte*) SCREEN + (byte) main::b) ← (byte) main::b2 (signed byte~) main::$1 ← ((signed byte)) (byte) main::b (signed byte~) main::$2 ← - (signed byte~) main::$1 @@ -91,7 +91,7 @@ SYMBOLS (byte*) SCREEN3 (byte*) SCREEN4 (void()) main() -(byte/signed byte/word/signed word~) main::$0 +(byte/signed byte/word/signed word/dword/signed dword~) main::$0 (signed byte~) main::$1 (signed byte~) main::$2 (byte~) main::$3 @@ -134,8 +134,8 @@ main: scope:[main] from (byte) main::b ← (byte/signed byte/word/signed word/dword/signed dword) 0 to:main::@1 main::@1: scope:[main] from main main::@1 - (byte/signed byte/word/signed word~) main::$0 ← (byte/word/signed word/dword/signed dword) 200 - (byte) main::b - (byte) main::b2 ← (byte/signed byte/word/signed word~) main::$0 + (byte/signed byte/word/signed word/dword/signed dword~) main::$0 ← (byte/word/signed word/dword/signed dword) 200 - (byte) main::b + (byte) main::b2 ← (byte/signed byte/word/signed word/dword/signed dword~) main::$0 *((byte*) SCREEN + (byte) main::b) ← (byte) main::b2 (signed byte~) main::$1 ← ((signed byte)) (byte) main::b (signed byte~) main::$2 ← - (signed byte~) main::$1 @@ -220,8 +220,8 @@ main::@1: scope:[main] from main main::@1 (byte*) SCREEN2#1 ← phi( main/(byte*) SCREEN2#2 main::@1/(byte*) SCREEN2#1 ) (byte*) SCREEN#1 ← phi( main/(byte*) SCREEN#2 main::@1/(byte*) SCREEN#1 ) (byte) main::b#2 ← phi( main/(byte) main::b#0 main::@1/(byte) main::b#1 ) - (byte/signed byte/word/signed word~) main::$0 ← (byte/word/signed word/dword/signed dword) 200 - (byte) main::b#2 - (byte) main::b2#0 ← (byte/signed byte/word/signed word~) main::$0 + (byte/signed byte/word/signed word/dword/signed dword~) main::$0 ← (byte/word/signed word/dword/signed dword) 200 - (byte) main::b#2 + (byte) main::b2#0 ← (byte/signed byte/word/signed word/dword/signed dword~) main::$0 *((byte*) SCREEN#1 + (byte) main::b#2) ← (byte) main::b2#0 (signed byte~) main::$1 ← ((signed byte)) (byte) main::b#2 (signed byte~) main::$2 ← - (signed byte~) main::$1 @@ -317,7 +317,7 @@ SYMBOL TABLE SSA (byte*) SCREEN4#5 (byte*) SCREEN4#6 (void()) main() -(byte/signed byte/word/signed word~) main::$0 +(byte/signed byte/word/signed word/dword/signed dword~) main::$0 (signed byte~) main::$1 (signed byte~) main::$2 (byte~) main::$3 @@ -368,7 +368,7 @@ Not aliassing across scopes: SCREEN4#2 SCREEN4#3 Alias (byte*) SCREEN2#0 = (byte*~) $1 (byte*) SCREEN2#3 Alias (byte*) SCREEN3#0 = (byte*~) $3 (byte*) SCREEN3#6 Alias (byte*) SCREEN4#0 = (byte*~) $5 (byte*) SCREEN4#6 -Alias (byte) main::b2#0 = (byte/signed byte/word/signed word~) main::$0 +Alias (byte) main::b2#0 = (byte/signed byte/word/signed word/dword/signed dword~) main::$0 Alias (signed byte) main::sb#0 = (signed byte~) main::$2 Alias (byte*) SCREEN3#3 = (byte*) SCREEN3#4 Alias (byte*) SCREEN4#3 = (byte*) SCREEN4#4 diff --git a/src/test/java/dk/camelot64/kickc/test/ref/constants.cfg b/src/test/java/dk/camelot64/kickc/test/ref/constants.cfg index 592cf22ef..080552cfe 100644 --- a/src/test/java/dk/camelot64/kickc/test/ref/constants.cfg +++ b/src/test/java/dk/camelot64/kickc/test/ref/constants.cfg @@ -46,7 +46,7 @@ test_sbytes::@return: scope:[test_sbytes] from test_sbytes::@4 [21] return [ ] ( main:2::test_sbytes:9 [ ] ) to:@return assert_sbyte: scope:[assert_sbyte] from test_sbytes test_sbytes::@1 test_sbytes::@2 test_sbytes::@3 test_sbytes::@4 - [22] (signed byte) assert_sbyte::c#5 ← phi( test_sbytes/(byte/signed byte/word/signed word) 0 test_sbytes::@1/(byte/signed byte/word/signed word) 2 test_sbytes::@2/-(byte/signed byte/word/signed word) 2 test_sbytes::@3/(byte/signed byte/word/signed word) 2 test_sbytes::@4/(byte/signed byte/word/signed word) 2 ) [ assert_sbyte::msg#5 assert_sbyte::b#5 assert_sbyte::c#5 line_cursor#1 ] ( main:2::test_sbytes:9::assert_sbyte:12 [ assert_sbyte::msg#5 assert_sbyte::b#5 assert_sbyte::c#5 line_cursor#1 ] main:2::test_sbytes:9::assert_sbyte:14 [ assert_sbyte::msg#5 assert_sbyte::b#5 assert_sbyte::c#5 line_cursor#1 ] main:2::test_sbytes:9::assert_sbyte:16 [ assert_sbyte::msg#5 assert_sbyte::b#5 assert_sbyte::c#5 line_cursor#1 ] main:2::test_sbytes:9::assert_sbyte:18 [ assert_sbyte::msg#5 assert_sbyte::b#5 assert_sbyte::c#5 line_cursor#1 ] main:2::test_sbytes:9::assert_sbyte:20 [ assert_sbyte::msg#5 assert_sbyte::b#5 assert_sbyte::c#5 line_cursor#1 ] ) + [22] (signed byte) assert_sbyte::c#5 ← phi( test_sbytes/(byte/signed byte/word/signed word/dword/signed dword) 0 test_sbytes::@1/(byte/signed byte/word/signed word/dword/signed dword) 2 test_sbytes::@2/-(byte/signed byte/word/signed word/dword/signed dword) 2 test_sbytes::@3/(byte/signed byte/word/signed word/dword/signed dword) 2 test_sbytes::@4/(byte/signed byte/word/signed word/dword/signed dword) 2 ) [ assert_sbyte::msg#5 assert_sbyte::b#5 assert_sbyte::c#5 line_cursor#1 ] ( main:2::test_sbytes:9::assert_sbyte:12 [ assert_sbyte::msg#5 assert_sbyte::b#5 assert_sbyte::c#5 line_cursor#1 ] main:2::test_sbytes:9::assert_sbyte:14 [ assert_sbyte::msg#5 assert_sbyte::b#5 assert_sbyte::c#5 line_cursor#1 ] main:2::test_sbytes:9::assert_sbyte:16 [ assert_sbyte::msg#5 assert_sbyte::b#5 assert_sbyte::c#5 line_cursor#1 ] main:2::test_sbytes:9::assert_sbyte:18 [ assert_sbyte::msg#5 assert_sbyte::b#5 assert_sbyte::c#5 line_cursor#1 ] main:2::test_sbytes:9::assert_sbyte:20 [ assert_sbyte::msg#5 assert_sbyte::b#5 assert_sbyte::c#5 line_cursor#1 ] ) [22] (signed byte) assert_sbyte::b#5 ← phi( test_sbytes/(const signed byte) test_sbytes::bb#0 test_sbytes::@1/(const signed byte) test_sbytes::bc#0 test_sbytes::@2/(const signed byte) test_sbytes::bd#0 test_sbytes::@3/(const signed byte) test_sbytes::be#0 test_sbytes::@4/(const signed byte) test_sbytes::bf#0 ) [ assert_sbyte::msg#5 assert_sbyte::b#5 assert_sbyte::c#5 line_cursor#1 ] ( main:2::test_sbytes:9::assert_sbyte:12 [ assert_sbyte::msg#5 assert_sbyte::b#5 assert_sbyte::c#5 line_cursor#1 ] main:2::test_sbytes:9::assert_sbyte:14 [ assert_sbyte::msg#5 assert_sbyte::b#5 assert_sbyte::c#5 line_cursor#1 ] main:2::test_sbytes:9::assert_sbyte:16 [ assert_sbyte::msg#5 assert_sbyte::b#5 assert_sbyte::c#5 line_cursor#1 ] main:2::test_sbytes:9::assert_sbyte:18 [ assert_sbyte::msg#5 assert_sbyte::b#5 assert_sbyte::c#5 line_cursor#1 ] main:2::test_sbytes:9::assert_sbyte:20 [ assert_sbyte::msg#5 assert_sbyte::b#5 assert_sbyte::c#5 line_cursor#1 ] ) [22] (byte*) assert_sbyte::msg#5 ← phi( test_sbytes/(const string) test_sbytes::msg test_sbytes::@1/(const string) test_sbytes::msg1 test_sbytes::@2/(const string) test_sbytes::msg2 test_sbytes::@3/(const string) test_sbytes::msg3 test_sbytes::@4/(const string) test_sbytes::msg4 ) [ assert_sbyte::msg#5 assert_sbyte::b#5 assert_sbyte::c#5 line_cursor#1 ] ( main:2::test_sbytes:9::assert_sbyte:12 [ assert_sbyte::msg#5 assert_sbyte::b#5 assert_sbyte::c#5 line_cursor#1 ] main:2::test_sbytes:9::assert_sbyte:14 [ assert_sbyte::msg#5 assert_sbyte::b#5 assert_sbyte::c#5 line_cursor#1 ] main:2::test_sbytes:9::assert_sbyte:16 [ assert_sbyte::msg#5 assert_sbyte::b#5 assert_sbyte::c#5 line_cursor#1 ] main:2::test_sbytes:9::assert_sbyte:18 [ assert_sbyte::msg#5 assert_sbyte::b#5 assert_sbyte::c#5 line_cursor#1 ] main:2::test_sbytes:9::assert_sbyte:20 [ assert_sbyte::msg#5 assert_sbyte::b#5 assert_sbyte::c#5 line_cursor#1 ] ) [23] (byte*) print_str::str#5 ← (byte*) assert_sbyte::msg#5 [ assert_sbyte::b#5 assert_sbyte::c#5 print_str::str#5 line_cursor#1 ] ( main:2::test_sbytes:9::assert_sbyte:12 [ assert_sbyte::b#5 assert_sbyte::c#5 print_str::str#5 line_cursor#1 ] main:2::test_sbytes:9::assert_sbyte:14 [ assert_sbyte::b#5 assert_sbyte::c#5 print_str::str#5 line_cursor#1 ] main:2::test_sbytes:9::assert_sbyte:16 [ assert_sbyte::b#5 assert_sbyte::c#5 print_str::str#5 line_cursor#1 ] main:2::test_sbytes:9::assert_sbyte:18 [ assert_sbyte::b#5 assert_sbyte::c#5 print_str::str#5 line_cursor#1 ] main:2::test_sbytes:9::assert_sbyte:20 [ assert_sbyte::b#5 assert_sbyte::c#5 print_str::str#5 line_cursor#1 ] ) @@ -97,7 +97,7 @@ print_ln: scope:[print_ln] from assert_byte::@2 assert_sbyte::@2 to:print_ln::@1 print_ln::@1: scope:[print_ln] from print_ln print_ln::@1 [44] (byte*) line_cursor#21 ← phi( print_ln/(byte*) line_cursor#42 print_ln::@1/(byte*) line_cursor#1 ) [ char_cursor#2 line_cursor#21 ] ( main:2::test_sbytes:9::assert_sbyte:12::print_ln:32 [ char_cursor#2 line_cursor#21 ] main:2::test_sbytes:9::assert_sbyte:14::print_ln:32 [ char_cursor#2 line_cursor#21 ] main:2::test_sbytes:9::assert_sbyte:16::print_ln:32 [ char_cursor#2 line_cursor#21 ] main:2::test_sbytes:9::assert_sbyte:18::print_ln:32 [ char_cursor#2 line_cursor#21 ] main:2::test_sbytes:9::assert_sbyte:20::print_ln:32 [ char_cursor#2 line_cursor#21 ] main:2::test_bytes:7::assert_byte:49::print_ln:64 [ char_cursor#2 line_cursor#21 ] main:2::test_bytes:7::assert_byte:51::print_ln:64 [ char_cursor#2 line_cursor#21 ] main:2::test_bytes:7::assert_byte:53::print_ln:64 [ char_cursor#2 line_cursor#21 ] ) - [45] (byte*) line_cursor#1 ← (byte*) line_cursor#21 + (byte/signed byte/word/signed word) 40 [ line_cursor#1 char_cursor#2 ] ( main:2::test_sbytes:9::assert_sbyte:12::print_ln:32 [ line_cursor#1 char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:14::print_ln:32 [ line_cursor#1 char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:16::print_ln:32 [ line_cursor#1 char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:18::print_ln:32 [ line_cursor#1 char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:20::print_ln:32 [ line_cursor#1 char_cursor#2 ] main:2::test_bytes:7::assert_byte:49::print_ln:64 [ line_cursor#1 char_cursor#2 ] main:2::test_bytes:7::assert_byte:51::print_ln:64 [ line_cursor#1 char_cursor#2 ] main:2::test_bytes:7::assert_byte:53::print_ln:64 [ line_cursor#1 char_cursor#2 ] ) + [45] (byte*) line_cursor#1 ← (byte*) line_cursor#21 + (byte/signed byte/word/signed word/dword/signed dword) 40 [ line_cursor#1 char_cursor#2 ] ( main:2::test_sbytes:9::assert_sbyte:12::print_ln:32 [ line_cursor#1 char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:14::print_ln:32 [ line_cursor#1 char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:16::print_ln:32 [ line_cursor#1 char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:18::print_ln:32 [ line_cursor#1 char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:20::print_ln:32 [ line_cursor#1 char_cursor#2 ] main:2::test_bytes:7::assert_byte:49::print_ln:64 [ line_cursor#1 char_cursor#2 ] main:2::test_bytes:7::assert_byte:51::print_ln:64 [ line_cursor#1 char_cursor#2 ] main:2::test_bytes:7::assert_byte:53::print_ln:64 [ line_cursor#1 char_cursor#2 ] ) [46] if((byte*) line_cursor#1<(byte*) char_cursor#2) goto print_ln::@1 [ line_cursor#1 char_cursor#2 ] ( main:2::test_sbytes:9::assert_sbyte:12::print_ln:32 [ line_cursor#1 char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:14::print_ln:32 [ line_cursor#1 char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:16::print_ln:32 [ line_cursor#1 char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:18::print_ln:32 [ line_cursor#1 char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:20::print_ln:32 [ line_cursor#1 char_cursor#2 ] main:2::test_bytes:7::assert_byte:49::print_ln:64 [ line_cursor#1 char_cursor#2 ] main:2::test_bytes:7::assert_byte:51::print_ln:64 [ line_cursor#1 char_cursor#2 ] main:2::test_bytes:7::assert_byte:53::print_ln:64 [ line_cursor#1 char_cursor#2 ] ) to:print_ln::@return print_ln::@return: scope:[print_ln] from print_ln::@1 @@ -119,10 +119,10 @@ test_bytes::@return: scope:[test_bytes] from test_bytes::@2 [54] return [ line_cursor#1 ] ( main:2::test_bytes:7 [ line_cursor#1 ] ) to:@return assert_byte: scope:[assert_byte] from test_bytes test_bytes::@1 test_bytes::@2 - [55] (byte*) line_cursor#45 ← phi( test_bytes/((byte*))(word/signed word) 1024 test_bytes::@1/(byte*) line_cursor#1 test_bytes::@2/(byte*) line_cursor#1 ) [ char_cursor#65 line_cursor#45 assert_byte::msg#3 assert_byte::b#3 assert_byte::c#3 ] ( main:2::test_bytes:7::assert_byte:49 [ char_cursor#65 line_cursor#45 assert_byte::msg#3 assert_byte::b#3 assert_byte::c#3 ] main:2::test_bytes:7::assert_byte:51 [ char_cursor#65 line_cursor#45 assert_byte::msg#3 assert_byte::b#3 assert_byte::c#3 ] main:2::test_bytes:7::assert_byte:53 [ char_cursor#65 line_cursor#45 assert_byte::msg#3 assert_byte::b#3 assert_byte::c#3 ] ) - [55] (byte) assert_byte::c#3 ← phi( test_bytes/(byte/signed byte/word/signed word) 0 test_bytes::@1/(byte/signed byte/word/signed word) 2 test_bytes::@2/(byte/word/signed word) 254 ) [ char_cursor#65 line_cursor#45 assert_byte::msg#3 assert_byte::b#3 assert_byte::c#3 ] ( main:2::test_bytes:7::assert_byte:49 [ char_cursor#65 line_cursor#45 assert_byte::msg#3 assert_byte::b#3 assert_byte::c#3 ] main:2::test_bytes:7::assert_byte:51 [ char_cursor#65 line_cursor#45 assert_byte::msg#3 assert_byte::b#3 assert_byte::c#3 ] main:2::test_bytes:7::assert_byte:53 [ char_cursor#65 line_cursor#45 assert_byte::msg#3 assert_byte::b#3 assert_byte::c#3 ] ) + [55] (byte*) line_cursor#45 ← phi( test_bytes/((byte*))(word/signed word/dword/signed dword) 1024 test_bytes::@1/(byte*) line_cursor#1 test_bytes::@2/(byte*) line_cursor#1 ) [ char_cursor#65 line_cursor#45 assert_byte::msg#3 assert_byte::b#3 assert_byte::c#3 ] ( main:2::test_bytes:7::assert_byte:49 [ char_cursor#65 line_cursor#45 assert_byte::msg#3 assert_byte::b#3 assert_byte::c#3 ] main:2::test_bytes:7::assert_byte:51 [ char_cursor#65 line_cursor#45 assert_byte::msg#3 assert_byte::b#3 assert_byte::c#3 ] main:2::test_bytes:7::assert_byte:53 [ char_cursor#65 line_cursor#45 assert_byte::msg#3 assert_byte::b#3 assert_byte::c#3 ] ) + [55] (byte) assert_byte::c#3 ← phi( test_bytes/(byte/signed byte/word/signed word/dword/signed dword) 0 test_bytes::@1/(byte/signed byte/word/signed word/dword/signed dword) 2 test_bytes::@2/(byte/word/signed word/dword/signed dword) 254 ) [ char_cursor#65 line_cursor#45 assert_byte::msg#3 assert_byte::b#3 assert_byte::c#3 ] ( main:2::test_bytes:7::assert_byte:49 [ char_cursor#65 line_cursor#45 assert_byte::msg#3 assert_byte::b#3 assert_byte::c#3 ] main:2::test_bytes:7::assert_byte:51 [ char_cursor#65 line_cursor#45 assert_byte::msg#3 assert_byte::b#3 assert_byte::c#3 ] main:2::test_bytes:7::assert_byte:53 [ char_cursor#65 line_cursor#45 assert_byte::msg#3 assert_byte::b#3 assert_byte::c#3 ] ) [55] (byte) assert_byte::b#3 ← phi( test_bytes/(const byte) test_bytes::bb#0 test_bytes::@1/(const byte) test_bytes::bc#0 test_bytes::@2/(const byte) test_bytes::bd#0 ) [ char_cursor#65 line_cursor#45 assert_byte::msg#3 assert_byte::b#3 assert_byte::c#3 ] ( main:2::test_bytes:7::assert_byte:49 [ char_cursor#65 line_cursor#45 assert_byte::msg#3 assert_byte::b#3 assert_byte::c#3 ] main:2::test_bytes:7::assert_byte:51 [ char_cursor#65 line_cursor#45 assert_byte::msg#3 assert_byte::b#3 assert_byte::c#3 ] main:2::test_bytes:7::assert_byte:53 [ char_cursor#65 line_cursor#45 assert_byte::msg#3 assert_byte::b#3 assert_byte::c#3 ] ) - [55] (byte*) char_cursor#65 ← phi( test_bytes/((byte*))(word/signed word) 1024 test_bytes::@1/(byte*~) char_cursor#88 test_bytes::@2/(byte*~) char_cursor#89 ) [ char_cursor#65 line_cursor#45 assert_byte::msg#3 assert_byte::b#3 assert_byte::c#3 ] ( main:2::test_bytes:7::assert_byte:49 [ char_cursor#65 line_cursor#45 assert_byte::msg#3 assert_byte::b#3 assert_byte::c#3 ] main:2::test_bytes:7::assert_byte:51 [ char_cursor#65 line_cursor#45 assert_byte::msg#3 assert_byte::b#3 assert_byte::c#3 ] main:2::test_bytes:7::assert_byte:53 [ char_cursor#65 line_cursor#45 assert_byte::msg#3 assert_byte::b#3 assert_byte::c#3 ] ) + [55] (byte*) char_cursor#65 ← phi( test_bytes/((byte*))(word/signed word/dword/signed dword) 1024 test_bytes::@1/(byte*~) char_cursor#88 test_bytes::@2/(byte*~) char_cursor#89 ) [ char_cursor#65 line_cursor#45 assert_byte::msg#3 assert_byte::b#3 assert_byte::c#3 ] ( main:2::test_bytes:7::assert_byte:49 [ char_cursor#65 line_cursor#45 assert_byte::msg#3 assert_byte::b#3 assert_byte::c#3 ] main:2::test_bytes:7::assert_byte:51 [ char_cursor#65 line_cursor#45 assert_byte::msg#3 assert_byte::b#3 assert_byte::c#3 ] main:2::test_bytes:7::assert_byte:53 [ char_cursor#65 line_cursor#45 assert_byte::msg#3 assert_byte::b#3 assert_byte::c#3 ] ) [55] (byte*) assert_byte::msg#3 ← phi( test_bytes/(const string) test_bytes::msg test_bytes::@1/(const string) test_bytes::msg1 test_bytes::@2/(const string) test_bytes::msg2 ) [ char_cursor#65 line_cursor#45 assert_byte::msg#3 assert_byte::b#3 assert_byte::c#3 ] ( main:2::test_bytes:7::assert_byte:49 [ char_cursor#65 line_cursor#45 assert_byte::msg#3 assert_byte::b#3 assert_byte::c#3 ] main:2::test_bytes:7::assert_byte:51 [ char_cursor#65 line_cursor#45 assert_byte::msg#3 assert_byte::b#3 assert_byte::c#3 ] main:2::test_bytes:7::assert_byte:53 [ char_cursor#65 line_cursor#45 assert_byte::msg#3 assert_byte::b#3 assert_byte::c#3 ] ) [56] (byte*) print_str::str#1 ← (byte*) assert_byte::msg#3 [ print_str::str#1 char_cursor#65 line_cursor#45 assert_byte::b#3 assert_byte::c#3 ] ( main:2::test_bytes:7::assert_byte:49 [ print_str::str#1 char_cursor#65 line_cursor#45 assert_byte::b#3 assert_byte::c#3 ] main:2::test_bytes:7::assert_byte:51 [ print_str::str#1 char_cursor#65 line_cursor#45 assert_byte::b#3 assert_byte::c#3 ] main:2::test_bytes:7::assert_byte:53 [ print_str::str#1 char_cursor#65 line_cursor#45 assert_byte::b#3 assert_byte::c#3 ] ) [57] call print_str param-assignment [ char_cursor#2 line_cursor#45 assert_byte::b#3 assert_byte::c#3 ] ( main:2::test_bytes:7::assert_byte:49 [ char_cursor#2 line_cursor#45 assert_byte::b#3 assert_byte::c#3 ] main:2::test_bytes:7::assert_byte:51 [ char_cursor#2 line_cursor#45 assert_byte::b#3 assert_byte::c#3 ] main:2::test_bytes:7::assert_byte:53 [ char_cursor#2 line_cursor#45 assert_byte::b#3 assert_byte::c#3 ] ) @@ -153,10 +153,10 @@ print_cls: scope:[print_cls] from main [68] phi() [ ] ( main:2::print_cls:5 [ ] ) to:print_cls::@1 print_cls::@1: scope:[print_cls] from print_cls print_cls::@1 - [69] (byte*) print_cls::sc#2 ← phi( print_cls/((byte*))(word/signed word) 1024 print_cls::@1/(byte*) print_cls::sc#1 ) [ print_cls::sc#2 ] ( main:2::print_cls:5 [ print_cls::sc#2 ] ) + [69] (byte*) print_cls::sc#2 ← phi( print_cls/((byte*))(word/signed word/dword/signed dword) 1024 print_cls::@1/(byte*) print_cls::sc#1 ) [ print_cls::sc#2 ] ( main:2::print_cls:5 [ print_cls::sc#2 ] ) [70] *((byte*) print_cls::sc#2) ← (byte) ' ' [ print_cls::sc#2 ] ( main:2::print_cls:5 [ print_cls::sc#2 ] ) [71] (byte*) print_cls::sc#1 ← ++ (byte*) print_cls::sc#2 [ print_cls::sc#1 ] ( main:2::print_cls:5 [ print_cls::sc#1 ] ) - [72] if((byte*) print_cls::sc#1!=(word/signed word) 1024+(word/signed word) 1000) goto print_cls::@1 [ print_cls::sc#1 ] ( main:2::print_cls:5 [ print_cls::sc#1 ] ) + [72] if((byte*) print_cls::sc#1!=(word/signed word/dword/signed dword) 1024+(word/signed word/dword/signed dword) 1000) goto print_cls::@1 [ print_cls::sc#1 ] ( main:2::print_cls:5 [ print_cls::sc#1 ] ) to:print_cls::@return print_cls::@return: scope:[print_cls] from print_cls::@1 [73] return [ ] ( main:2::print_cls:5 [ ] ) diff --git a/src/test/java/dk/camelot64/kickc/test/ref/constants.log b/src/test/java/dk/camelot64/kickc/test/ref/constants.log index 0a2ad8777..26dd85d0d 100644 --- a/src/test/java/dk/camelot64/kickc/test/ref/constants.log +++ b/src/test/java/dk/camelot64/kickc/test/ref/constants.log @@ -132,7 +132,7 @@ Adding pre/post-modifier (byte*) char_cursor ← ++ (byte*) char_cursor Adding pre/post-modifier (byte*) print_cls::sc ← ++ (byte*) print_cls::sc STATEMENTS - (byte*) line_cursor ← (word/signed word) 1024 + (byte*) line_cursor ← (word/signed word/dword/signed dword) 1024 (byte*) char_cursor ← (byte*) line_cursor proc (void()) print_str((byte*) print_str::str) print_str::@1: @@ -150,7 +150,7 @@ print_str::@return: endproc // print_str() proc (void()) print_ln() print_ln::@1: - (byte*~) print_ln::$0 ← (byte*) line_cursor + (byte/signed byte/word/signed word) 40 + (byte*~) print_ln::$0 ← (byte*) line_cursor + (byte/signed byte/word/signed word/dword/signed dword) 40 (byte*) line_cursor ← (byte*~) print_ln::$0 (boolean~) print_ln::$1 ← (byte*) line_cursor < (byte*) char_cursor if((boolean~) print_ln::$1) goto print_ln::@1 @@ -159,7 +159,7 @@ print_ln::@return: return endproc // print_ln() proc (void()) print_sword((signed word) print_sword::w) - (boolean~) print_sword::$0 ← (signed word) print_sword::w < (byte/signed byte/word/signed word) 0 + (boolean~) print_sword::$0 ← (signed word) print_sword::w < (byte/signed byte/word/signed word/dword/signed dword) 0 (boolean~) print_sword::$1 ← ! (boolean~) print_sword::$0 if((boolean~) print_sword::$1) goto print_sword::@1 (void~) print_sword::$2 ← call print_char (byte) '-' @@ -172,7 +172,7 @@ print_sword::@return: return endproc // print_sword() proc (void()) print_sbyte((signed byte) print_sbyte::b) - (boolean~) print_sbyte::$0 ← (signed byte) print_sbyte::b < (byte/signed byte/word/signed word) 0 + (boolean~) print_sbyte::$0 ← (signed byte) print_sbyte::b < (byte/signed byte/word/signed word/dword/signed dword) 0 (boolean~) print_sbyte::$1 ← ! (boolean~) print_sbyte::$0 if((boolean~) print_sbyte::$1) goto print_sbyte::@1 (void~) print_sbyte::$2 ← call print_char (byte) '-' @@ -194,9 +194,9 @@ print_word::@return: endproc // print_word() proc (void()) print_byte((byte) print_byte::b) (byte[]) print_byte::hextab ← (string) "0123456789abcdef" - (byte~) print_byte::$0 ← (byte) print_byte::b >> (byte/signed byte/word/signed word) 4 + (byte~) print_byte::$0 ← (byte) print_byte::b >> (byte/signed byte/word/signed word/dword/signed dword) 4 (void~) print_byte::$1 ← call print_char *((byte[]) print_byte::hextab + (byte~) print_byte::$0) - (byte~) print_byte::$2 ← (byte) print_byte::b & (byte/signed byte/word/signed word) 15 + (byte~) print_byte::$2 ← (byte) print_byte::b & (byte/signed byte/word/signed word/dword/signed dword) 15 (void~) print_byte::$3 ← call print_char *((byte[]) print_byte::hextab + (byte~) print_byte::$2) print_byte::@return: return @@ -208,19 +208,19 @@ print_char::@return: return endproc // print_char() proc (void()) print_cls() - (byte*) print_cls::sc ← (word/signed word) 1024 + (byte*) print_cls::sc ← (word/signed word/dword/signed dword) 1024 print_cls::@1: *((byte*) print_cls::sc) ← (byte) ' ' (byte*) print_cls::sc ← ++ (byte*) print_cls::sc - (word/signed word~) print_cls::$0 ← (word/signed word) 1024 + (word/signed word) 1000 - (boolean~) print_cls::$1 ← (byte*) print_cls::sc != (word/signed word~) print_cls::$0 + (word/signed word/dword/signed dword~) print_cls::$0 ← (word/signed word/dword/signed dword) 1024 + (word/signed word/dword/signed dword) 1000 + (boolean~) print_cls::$1 ← (byte*) print_cls::sc != (word/signed word/dword/signed dword~) print_cls::$0 if((boolean~) print_cls::$1) goto print_cls::@1 print_cls::@return: return endproc // print_cls() - (byte*) BGCOL ← (word) 53281 - (byte) GREEN ← (byte/signed byte/word/signed word) 5 - (byte) RED ← (byte/signed byte/word/signed word) 2 + (byte*) BGCOL ← (word/dword/signed dword) 53281 + (byte) GREEN ← (byte/signed byte/word/signed word/dword/signed dword) 5 + (byte) RED ← (byte/signed byte/word/signed word/dword/signed dword) 2 proc (void()) main() (void~) main::$0 ← call print_cls *((byte*) BGCOL) ← (byte) GREEN @@ -230,15 +230,15 @@ main::@return: return endproc // main() proc (void()) test_bytes() - (byte) test_bytes::bb ← (byte/signed byte/word/signed word) 0 - (void~) test_bytes::$0 ← call assert_byte (string) "0=0@" (byte) test_bytes::bb (byte/signed byte/word/signed word) 0 - (byte/word~) test_bytes::$1 ← (byte) test_bytes::bb + (byte/signed byte/word/signed word) 2 + (byte) test_bytes::bb ← (byte/signed byte/word/signed word/dword/signed dword) 0 + (void~) test_bytes::$0 ← call assert_byte (string) "0=0@" (byte) test_bytes::bb (byte/signed byte/word/signed word/dword/signed dword) 0 + (byte/word~) test_bytes::$1 ← (byte) test_bytes::bb + (byte/signed byte/word/signed word/dword/signed dword) 2 (byte) test_bytes::bc ← (byte/word~) test_bytes::$1 - (void~) test_bytes::$2 ← call assert_byte (string) "0+2=2@" (byte) test_bytes::bc (byte/signed byte/word/signed word) 2 - (byte/signed byte/word/signed word~) test_bytes::$3 ← (byte) test_bytes::bc - (byte/signed byte/word/signed word) 4 - (byte~) test_bytes::$4 ← ((byte)) (byte/signed byte/word/signed word~) test_bytes::$3 + (void~) test_bytes::$2 ← call assert_byte (string) "0+2=2@" (byte) test_bytes::bc (byte/signed byte/word/signed word/dword/signed dword) 2 + (byte/signed byte/word/signed word/dword/signed dword~) test_bytes::$3 ← (byte) test_bytes::bc - (byte/signed byte/word/signed word/dword/signed dword) 4 + (byte~) test_bytes::$4 ← ((byte)) (byte/signed byte/word/signed word/dword/signed dword~) test_bytes::$3 (byte) test_bytes::bd ← (byte~) test_bytes::$4 - (void~) test_bytes::$5 ← call assert_byte (string) "0+2-4=254@" (byte) test_bytes::bd (byte/word/signed word) 254 + (void~) test_bytes::$5 ← call assert_byte (string) "0+2-4=254@" (byte) test_bytes::bd (byte/word/signed word/dword/signed dword) 254 test_bytes::@return: return endproc // test_bytes() @@ -259,23 +259,23 @@ assert_byte::@return: return endproc // assert_byte() proc (void()) test_sbytes() - (signed byte) test_sbytes::bb ← (byte/signed byte/word/signed word) 0 - (void~) test_sbytes::$0 ← call assert_sbyte (string) "0=0@" (signed byte) test_sbytes::bb (byte/signed byte/word/signed word) 0 - (byte/signed byte/word/signed word~) test_sbytes::$1 ← (signed byte) test_sbytes::bb + (byte/signed byte/word/signed word) 2 - (signed byte) test_sbytes::bc ← (byte/signed byte/word/signed word~) test_sbytes::$1 - (void~) test_sbytes::$2 ← call assert_sbyte (string) "0+2=2@" (signed byte) test_sbytes::bc (byte/signed byte/word/signed word) 2 - (byte/signed byte/word/signed word~) test_sbytes::$3 ← (signed byte) test_sbytes::bc - (byte/signed byte/word/signed word) 4 - (signed byte) test_sbytes::bd ← (byte/signed byte/word/signed word~) test_sbytes::$3 - (signed byte/signed word~) test_sbytes::$4 ← - (byte/signed byte/word/signed word) 2 - (void~) test_sbytes::$5 ← call assert_sbyte (string) "0+2-4=-2@" (signed byte) test_sbytes::bd (signed byte/signed word~) test_sbytes::$4 + (signed byte) test_sbytes::bb ← (byte/signed byte/word/signed word/dword/signed dword) 0 + (void~) test_sbytes::$0 ← call assert_sbyte (string) "0=0@" (signed byte) test_sbytes::bb (byte/signed byte/word/signed word/dword/signed dword) 0 + (byte/signed byte/word/signed word/dword/signed dword~) test_sbytes::$1 ← (signed byte) test_sbytes::bb + (byte/signed byte/word/signed word/dword/signed dword) 2 + (signed byte) test_sbytes::bc ← (byte/signed byte/word/signed word/dword/signed dword~) test_sbytes::$1 + (void~) test_sbytes::$2 ← call assert_sbyte (string) "0+2=2@" (signed byte) test_sbytes::bc (byte/signed byte/word/signed word/dword/signed dword) 2 + (byte/signed byte/word/signed word/dword/signed dword~) test_sbytes::$3 ← (signed byte) test_sbytes::bc - (byte/signed byte/word/signed word/dword/signed dword) 4 + (signed byte) test_sbytes::bd ← (byte/signed byte/word/signed word/dword/signed dword~) test_sbytes::$3 + (signed byte/signed word/signed dword~) test_sbytes::$4 ← - (byte/signed byte/word/signed word/dword/signed dword) 2 + (void~) test_sbytes::$5 ← call assert_sbyte (string) "0+2-4=-2@" (signed byte) test_sbytes::bd (signed byte/signed word/signed dword~) test_sbytes::$4 (signed byte~) test_sbytes::$6 ← - (signed byte) test_sbytes::bd (signed byte) test_sbytes::be ← (signed byte~) test_sbytes::$6 - (void~) test_sbytes::$7 ← call assert_sbyte (string) "-(0+2-4)=2@" (signed byte) test_sbytes::be (byte/signed byte/word/signed word) 2 - (signed byte/signed word~) test_sbytes::$8 ← - (byte/signed byte/word/signed word) 127 - (byte/signed byte/word/signed word~) test_sbytes::$9 ← (signed byte/signed word~) test_sbytes::$8 - (byte/signed byte/word/signed word) 127 - (signed byte~) test_sbytes::$10 ← ((signed byte)) (byte/signed byte/word/signed word~) test_sbytes::$9 + (void~) test_sbytes::$7 ← call assert_sbyte (string) "-(0+2-4)=2@" (signed byte) test_sbytes::be (byte/signed byte/word/signed word/dword/signed dword) 2 + (signed byte/signed word/signed dword~) test_sbytes::$8 ← - (byte/signed byte/word/signed word/dword/signed dword) 127 + (byte/signed byte/word/signed word/dword/signed dword~) test_sbytes::$9 ← (signed byte/signed word/signed dword~) test_sbytes::$8 - (byte/signed byte/word/signed word/dword/signed dword) 127 + (signed byte~) test_sbytes::$10 ← ((signed byte)) (byte/signed byte/word/signed word/dword/signed dword~) test_sbytes::$9 (signed byte) test_sbytes::bf ← (signed byte~) test_sbytes::$10 - (void~) test_sbytes::$11 ← call assert_sbyte (string) "-127-127=2@" (signed byte) test_sbytes::bf (byte/signed byte/word/signed word) 2 + (void~) test_sbytes::$11 ← call assert_sbyte (string) "-127-127=2@" (signed byte) test_sbytes::bf (byte/signed byte/word/signed word/dword/signed dword) 2 test_sbytes::@return: return endproc // test_sbytes() @@ -348,7 +348,7 @@ SYMBOLS (label) print_char::@return (byte) print_char::ch (void()) print_cls() -(word/signed word~) print_cls::$0 +(word/signed word/dword/signed dword~) print_cls::$0 (boolean~) print_cls::$1 (label) print_cls::@1 (label) print_cls::@return @@ -396,7 +396,7 @@ SYMBOLS (void~) test_bytes::$0 (byte/word~) test_bytes::$1 (void~) test_bytes::$2 -(byte/signed byte/word/signed word~) test_bytes::$3 +(byte/signed byte/word/signed word/dword/signed dword~) test_bytes::$3 (byte~) test_bytes::$4 (void~) test_bytes::$5 (label) test_bytes::@return @@ -405,17 +405,17 @@ SYMBOLS (byte) test_bytes::bd (void()) test_sbytes() (void~) test_sbytes::$0 -(byte/signed byte/word/signed word~) test_sbytes::$1 +(byte/signed byte/word/signed word/dword/signed dword~) test_sbytes::$1 (signed byte~) test_sbytes::$10 (void~) test_sbytes::$11 (void~) test_sbytes::$2 -(byte/signed byte/word/signed word~) test_sbytes::$3 -(signed byte/signed word~) test_sbytes::$4 +(byte/signed byte/word/signed word/dword/signed dword~) test_sbytes::$3 +(signed byte/signed word/signed dword~) test_sbytes::$4 (void~) test_sbytes::$5 (signed byte~) test_sbytes::$6 (void~) test_sbytes::$7 -(signed byte/signed word~) test_sbytes::$8 -(byte/signed byte/word/signed word~) test_sbytes::$9 +(signed byte/signed word/signed dword~) test_sbytes::$8 +(byte/signed byte/word/signed word/dword/signed dword~) test_sbytes::$9 (label) test_sbytes::@return (signed byte) test_sbytes::bb (signed byte) test_sbytes::bc @@ -423,12 +423,12 @@ SYMBOLS (signed byte) test_sbytes::be (signed byte) test_sbytes::bf -Promoting word/signed word to byte* in line_cursor ← ((byte*)) 1024 -Promoting word/signed word to byte* in print_cls::sc ← ((byte*)) 1024 -Promoting word to byte* in BGCOL ← ((byte*)) 53281 +Promoting word/signed word/dword/signed dword to byte* in line_cursor ← ((byte*)) 1024 +Promoting word/signed word/dword/signed dword to byte* in print_cls::sc ← ((byte*)) 1024 +Promoting word/dword/signed dword to byte* in BGCOL ← ((byte*)) 53281 INITIAL CONTROL FLOW GRAPH @begin: scope:[] from - (byte*) line_cursor ← ((byte*)) (word/signed word) 1024 + (byte*) line_cursor ← ((byte*)) (word/signed word/dword/signed dword) 1024 (byte*) char_cursor ← (byte*) line_cursor to:@1 print_str: scope:[print_str] from @@ -458,7 +458,7 @@ print_str::@return: scope:[print_str] from print_str::@3 print_ln: scope:[print_ln] from to:print_ln::@1 print_ln::@1: scope:[print_ln] from print_ln print_ln::@1 - (byte*~) print_ln::$0 ← (byte*) line_cursor + (byte/signed byte/word/signed word) 40 + (byte*~) print_ln::$0 ← (byte*) line_cursor + (byte/signed byte/word/signed word/dword/signed dword) 40 (byte*) line_cursor ← (byte*~) print_ln::$0 (boolean~) print_ln::$1 ← (byte*) line_cursor < (byte*) char_cursor if((boolean~) print_ln::$1) goto print_ln::@1 @@ -472,7 +472,7 @@ print_ln::@return: scope:[print_ln] from print_ln::@2 @2: scope:[] from @1 to:@3 print_sword: scope:[print_sword] from - (boolean~) print_sword::$0 ← (signed word) print_sword::w < (byte/signed byte/word/signed word) 0 + (boolean~) print_sword::$0 ← (signed word) print_sword::w < (byte/signed byte/word/signed word/dword/signed dword) 0 (boolean~) print_sword::$1 ← ! (boolean~) print_sword::$0 if((boolean~) print_sword::$1) goto print_sword::@1 to:print_sword::@2 @@ -491,7 +491,7 @@ print_sword::@return: scope:[print_sword] from print_sword::@1 @3: scope:[] from @2 to:@4 print_sbyte: scope:[print_sbyte] from - (boolean~) print_sbyte::$0 ← (signed byte) print_sbyte::b < (byte/signed byte/word/signed word) 0 + (boolean~) print_sbyte::$0 ← (signed byte) print_sbyte::b < (byte/signed byte/word/signed word/dword/signed dword) 0 (boolean~) print_sbyte::$1 ← ! (boolean~) print_sbyte::$0 if((boolean~) print_sbyte::$1) goto print_sbyte::@1 to:print_sbyte::@2 @@ -522,9 +522,9 @@ print_word::@return: scope:[print_word] from print_word to:@6 print_byte: scope:[print_byte] from (byte[]) print_byte::hextab ← (string) "0123456789abcdef" - (byte~) print_byte::$0 ← (byte) print_byte::b >> (byte/signed byte/word/signed word) 4 + (byte~) print_byte::$0 ← (byte) print_byte::b >> (byte/signed byte/word/signed word/dword/signed dword) 4 (void~) print_byte::$1 ← call print_char *((byte[]) print_byte::hextab + (byte~) print_byte::$0) - (byte~) print_byte::$2 ← (byte) print_byte::b & (byte/signed byte/word/signed word) 15 + (byte~) print_byte::$2 ← (byte) print_byte::b & (byte/signed byte/word/signed word/dword/signed dword) 15 (void~) print_byte::$3 ← call print_char *((byte[]) print_byte::hextab + (byte~) print_byte::$2) to:print_byte::@return print_byte::@return: scope:[print_byte] from print_byte @@ -542,13 +542,13 @@ print_char::@return: scope:[print_char] from print_char @7: scope:[] from @6 to:@8 print_cls: scope:[print_cls] from - (byte*) print_cls::sc ← ((byte*)) (word/signed word) 1024 + (byte*) print_cls::sc ← ((byte*)) (word/signed word/dword/signed dword) 1024 to:print_cls::@1 print_cls::@1: scope:[print_cls] from print_cls print_cls::@1 *((byte*) print_cls::sc) ← (byte) ' ' (byte*) print_cls::sc ← ++ (byte*) print_cls::sc - (word/signed word~) print_cls::$0 ← (word/signed word) 1024 + (word/signed word) 1000 - (boolean~) print_cls::$1 ← (byte*) print_cls::sc != (word/signed word~) print_cls::$0 + (word/signed word/dword/signed dword~) print_cls::$0 ← (word/signed word/dword/signed dword) 1024 + (word/signed word/dword/signed dword) 1000 + (boolean~) print_cls::$1 ← (byte*) print_cls::sc != (word/signed word/dword/signed dword~) print_cls::$0 if((boolean~) print_cls::$1) goto print_cls::@1 to:print_cls::@2 print_cls::@2: scope:[print_cls] from print_cls::@1 @@ -557,9 +557,9 @@ print_cls::@return: scope:[print_cls] from print_cls::@2 return to:@return @8: scope:[] from @7 - (byte*) BGCOL ← ((byte*)) (word) 53281 - (byte) GREEN ← (byte/signed byte/word/signed word) 5 - (byte) RED ← (byte/signed byte/word/signed word) 2 + (byte*) BGCOL ← ((byte*)) (word/dword/signed dword) 53281 + (byte) GREEN ← (byte/signed byte/word/signed word/dword/signed dword) 5 + (byte) RED ← (byte/signed byte/word/signed word/dword/signed dword) 2 to:@9 main: scope:[main] from (void~) main::$0 ← call print_cls @@ -573,15 +573,15 @@ main::@return: scope:[main] from main @9: scope:[] from @8 to:@10 test_bytes: scope:[test_bytes] from - (byte) test_bytes::bb ← (byte/signed byte/word/signed word) 0 - (void~) test_bytes::$0 ← call assert_byte (string) "0=0@" (byte) test_bytes::bb (byte/signed byte/word/signed word) 0 - (byte/word~) test_bytes::$1 ← (byte) test_bytes::bb + (byte/signed byte/word/signed word) 2 + (byte) test_bytes::bb ← (byte/signed byte/word/signed word/dword/signed dword) 0 + (void~) test_bytes::$0 ← call assert_byte (string) "0=0@" (byte) test_bytes::bb (byte/signed byte/word/signed word/dword/signed dword) 0 + (byte/word~) test_bytes::$1 ← (byte) test_bytes::bb + (byte/signed byte/word/signed word/dword/signed dword) 2 (byte) test_bytes::bc ← (byte/word~) test_bytes::$1 - (void~) test_bytes::$2 ← call assert_byte (string) "0+2=2@" (byte) test_bytes::bc (byte/signed byte/word/signed word) 2 - (byte/signed byte/word/signed word~) test_bytes::$3 ← (byte) test_bytes::bc - (byte/signed byte/word/signed word) 4 - (byte~) test_bytes::$4 ← ((byte)) (byte/signed byte/word/signed word~) test_bytes::$3 + (void~) test_bytes::$2 ← call assert_byte (string) "0+2=2@" (byte) test_bytes::bc (byte/signed byte/word/signed word/dword/signed dword) 2 + (byte/signed byte/word/signed word/dword/signed dword~) test_bytes::$3 ← (byte) test_bytes::bc - (byte/signed byte/word/signed word/dword/signed dword) 4 + (byte~) test_bytes::$4 ← ((byte)) (byte/signed byte/word/signed word/dword/signed dword~) test_bytes::$3 (byte) test_bytes::bd ← (byte~) test_bytes::$4 - (void~) test_bytes::$5 ← call assert_byte (string) "0+2-4=254@" (byte) test_bytes::bd (byte/word/signed word) 254 + (void~) test_bytes::$5 ← call assert_byte (string) "0+2-4=254@" (byte) test_bytes::bd (byte/word/signed word/dword/signed dword) 254 to:test_bytes::@return test_bytes::@return: scope:[test_bytes] from test_bytes return @@ -613,23 +613,23 @@ assert_byte::@return: scope:[assert_byte] from assert_byte::@2 @11: scope:[] from @10 to:@12 test_sbytes: scope:[test_sbytes] from - (signed byte) test_sbytes::bb ← (byte/signed byte/word/signed word) 0 - (void~) test_sbytes::$0 ← call assert_sbyte (string) "0=0@" (signed byte) test_sbytes::bb (byte/signed byte/word/signed word) 0 - (byte/signed byte/word/signed word~) test_sbytes::$1 ← (signed byte) test_sbytes::bb + (byte/signed byte/word/signed word) 2 - (signed byte) test_sbytes::bc ← (byte/signed byte/word/signed word~) test_sbytes::$1 - (void~) test_sbytes::$2 ← call assert_sbyte (string) "0+2=2@" (signed byte) test_sbytes::bc (byte/signed byte/word/signed word) 2 - (byte/signed byte/word/signed word~) test_sbytes::$3 ← (signed byte) test_sbytes::bc - (byte/signed byte/word/signed word) 4 - (signed byte) test_sbytes::bd ← (byte/signed byte/word/signed word~) test_sbytes::$3 - (signed byte/signed word~) test_sbytes::$4 ← - (byte/signed byte/word/signed word) 2 - (void~) test_sbytes::$5 ← call assert_sbyte (string) "0+2-4=-2@" (signed byte) test_sbytes::bd (signed byte/signed word~) test_sbytes::$4 + (signed byte) test_sbytes::bb ← (byte/signed byte/word/signed word/dword/signed dword) 0 + (void~) test_sbytes::$0 ← call assert_sbyte (string) "0=0@" (signed byte) test_sbytes::bb (byte/signed byte/word/signed word/dword/signed dword) 0 + (byte/signed byte/word/signed word/dword/signed dword~) test_sbytes::$1 ← (signed byte) test_sbytes::bb + (byte/signed byte/word/signed word/dword/signed dword) 2 + (signed byte) test_sbytes::bc ← (byte/signed byte/word/signed word/dword/signed dword~) test_sbytes::$1 + (void~) test_sbytes::$2 ← call assert_sbyte (string) "0+2=2@" (signed byte) test_sbytes::bc (byte/signed byte/word/signed word/dword/signed dword) 2 + (byte/signed byte/word/signed word/dword/signed dword~) test_sbytes::$3 ← (signed byte) test_sbytes::bc - (byte/signed byte/word/signed word/dword/signed dword) 4 + (signed byte) test_sbytes::bd ← (byte/signed byte/word/signed word/dword/signed dword~) test_sbytes::$3 + (signed byte/signed word/signed dword~) test_sbytes::$4 ← - (byte/signed byte/word/signed word/dword/signed dword) 2 + (void~) test_sbytes::$5 ← call assert_sbyte (string) "0+2-4=-2@" (signed byte) test_sbytes::bd (signed byte/signed word/signed dword~) test_sbytes::$4 (signed byte~) test_sbytes::$6 ← - (signed byte) test_sbytes::bd (signed byte) test_sbytes::be ← (signed byte~) test_sbytes::$6 - (void~) test_sbytes::$7 ← call assert_sbyte (string) "-(0+2-4)=2@" (signed byte) test_sbytes::be (byte/signed byte/word/signed word) 2 - (signed byte/signed word~) test_sbytes::$8 ← - (byte/signed byte/word/signed word) 127 - (byte/signed byte/word/signed word~) test_sbytes::$9 ← (signed byte/signed word~) test_sbytes::$8 - (byte/signed byte/word/signed word) 127 - (signed byte~) test_sbytes::$10 ← ((signed byte)) (byte/signed byte/word/signed word~) test_sbytes::$9 + (void~) test_sbytes::$7 ← call assert_sbyte (string) "-(0+2-4)=2@" (signed byte) test_sbytes::be (byte/signed byte/word/signed word/dword/signed dword) 2 + (signed byte/signed word/signed dword~) test_sbytes::$8 ← - (byte/signed byte/word/signed word/dword/signed dword) 127 + (byte/signed byte/word/signed word/dword/signed dword~) test_sbytes::$9 ← (signed byte/signed word/signed dword~) test_sbytes::$8 - (byte/signed byte/word/signed word/dword/signed dword) 127 + (signed byte~) test_sbytes::$10 ← ((signed byte)) (byte/signed byte/word/signed word/dword/signed dword~) test_sbytes::$9 (signed byte) test_sbytes::bf ← (signed byte~) test_sbytes::$10 - (void~) test_sbytes::$11 ← call assert_sbyte (string) "-127-127=2@" (signed byte) test_sbytes::bf (byte/signed byte/word/signed word) 2 + (void~) test_sbytes::$11 ← call assert_sbyte (string) "-127-127=2@" (signed byte) test_sbytes::bf (byte/signed byte/word/signed word/dword/signed dword) 2 to:test_sbytes::@return test_sbytes::@return: scope:[test_sbytes] from test_sbytes return @@ -746,7 +746,7 @@ Completing Phi functions... CONTROL FLOW GRAPH SSA WITH ASSIGNMENT CALL & RETURN @begin: scope:[] from - (byte*) line_cursor#0 ← ((byte*)) (word/signed word) 1024 + (byte*) line_cursor#0 ← ((byte*)) (word/signed word/dword/signed dword) 1024 (byte*) char_cursor#0 ← (byte*) line_cursor#0 to:@8 print_str: scope:[print_str] from assert_byte assert_byte::@1 assert_byte::@3 assert_byte::@5 assert_sbyte assert_sbyte::@1 assert_sbyte::@3 assert_sbyte::@5 @@ -778,7 +778,7 @@ print_ln: scope:[print_ln] from assert_byte::@2 assert_sbyte::@2 print_ln::@1: scope:[print_ln] from print_ln print_ln::@1 (byte*) char_cursor#33 ← phi( print_ln/(byte*) char_cursor#62 print_ln::@1/(byte*) char_cursor#33 ) (byte*) line_cursor#21 ← phi( print_ln/(byte*) line_cursor#42 print_ln::@1/(byte*) line_cursor#1 ) - (byte*~) print_ln::$0 ← (byte*) line_cursor#21 + (byte/signed byte/word/signed word) 40 + (byte*~) print_ln::$0 ← (byte*) line_cursor#21 + (byte/signed byte/word/signed word/dword/signed dword) 40 (byte*) line_cursor#1 ← (byte*~) print_ln::$0 (boolean~) print_ln::$1 ← (byte*) line_cursor#1 < (byte*) char_cursor#33 if((boolean~) print_ln::$1) goto print_ln::@1 @@ -795,14 +795,14 @@ print_ln::@return: scope:[print_ln] from print_ln::@2 return to:@return print_cls: scope:[print_cls] from main - (byte*) print_cls::sc#0 ← ((byte*)) (word/signed word) 1024 + (byte*) print_cls::sc#0 ← ((byte*)) (word/signed word/dword/signed dword) 1024 to:print_cls::@1 print_cls::@1: scope:[print_cls] from print_cls print_cls::@1 (byte*) print_cls::sc#2 ← phi( print_cls/(byte*) print_cls::sc#0 print_cls::@1/(byte*) print_cls::sc#1 ) *((byte*) print_cls::sc#2) ← (byte) ' ' (byte*) print_cls::sc#1 ← ++ (byte*) print_cls::sc#2 - (word/signed word~) print_cls::$0 ← (word/signed word) 1024 + (word/signed word) 1000 - (boolean~) print_cls::$1 ← (byte*) print_cls::sc#1 != (word/signed word~) print_cls::$0 + (word/signed word/dword/signed dword~) print_cls::$0 ← (word/signed word/dword/signed dword) 1024 + (word/signed word/dword/signed dword) 1000 + (boolean~) print_cls::$1 ← (byte*) print_cls::sc#1 != (word/signed word/dword/signed dword~) print_cls::$0 if((boolean~) print_cls::$1) goto print_cls::@1 to:print_cls::@return print_cls::@return: scope:[print_cls] from print_cls::@1 @@ -811,9 +811,9 @@ print_cls::@return: scope:[print_cls] from print_cls::@1 @8: scope:[] from @begin (byte*) line_cursor#54 ← phi( @begin/(byte*) line_cursor#0 ) (byte*) char_cursor#77 ← phi( @begin/(byte*) char_cursor#0 ) - (byte*) BGCOL#0 ← ((byte*)) (word) 53281 - (byte) GREEN#0 ← (byte/signed byte/word/signed word) 5 - (byte) RED#0 ← (byte/signed byte/word/signed word) 2 + (byte*) BGCOL#0 ← ((byte*)) (word/dword/signed dword) 53281 + (byte) GREEN#0 ← (byte/signed byte/word/signed word/dword/signed dword) 5 + (byte) RED#0 ← (byte/signed byte/word/signed word/dword/signed dword) 2 to:@13 main: scope:[main] from @13 (byte*) line_cursor#49 ← phi( @13/(byte*) line_cursor#48 ) @@ -849,10 +849,10 @@ main::@return: scope:[main] from main::@3 test_bytes: scope:[test_bytes] from main::@1 (byte*) line_cursor#44 ← phi( main::@1/(byte*) line_cursor#43 ) (byte*) char_cursor#64 ← phi( main::@1/(byte*) char_cursor#63 ) - (byte) test_bytes::bb#0 ← (byte/signed byte/word/signed word) 0 + (byte) test_bytes::bb#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 (byte*) assert_byte::msg#0 ← (const string) test_bytes::msg (byte) assert_byte::b#0 ← (byte) test_bytes::bb#0 - (byte) assert_byte::c#0 ← (byte/signed byte/word/signed word) 0 + (byte) assert_byte::c#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 call assert_byte param-assignment to:test_bytes::@1 test_bytes::@1: scope:[test_bytes] from test_bytes @@ -861,11 +861,11 @@ test_bytes::@1: scope:[test_bytes] from test_bytes (byte*) char_cursor#38 ← phi( test_bytes/(byte*) char_cursor#17 ) (byte*) char_cursor#8 ← (byte*) char_cursor#38 (byte*) line_cursor#6 ← (byte*) line_cursor#27 - (byte/word~) test_bytes::$1 ← (byte) test_bytes::bb#1 + (byte/signed byte/word/signed word) 2 + (byte/word~) test_bytes::$1 ← (byte) test_bytes::bb#1 + (byte/signed byte/word/signed word/dword/signed dword) 2 (byte) test_bytes::bc#0 ← (byte/word~) test_bytes::$1 (byte*) assert_byte::msg#1 ← (const string) test_bytes::msg1 (byte) assert_byte::b#1 ← (byte) test_bytes::bc#0 - (byte) assert_byte::c#1 ← (byte/signed byte/word/signed word) 2 + (byte) assert_byte::c#1 ← (byte/signed byte/word/signed word/dword/signed dword) 2 call assert_byte param-assignment to:test_bytes::@2 test_bytes::@2: scope:[test_bytes] from test_bytes::@1 @@ -874,12 +874,12 @@ test_bytes::@2: scope:[test_bytes] from test_bytes::@1 (byte*) char_cursor#39 ← phi( test_bytes::@1/(byte*) char_cursor#17 ) (byte*) char_cursor#9 ← (byte*) char_cursor#39 (byte*) line_cursor#7 ← (byte*) line_cursor#28 - (byte/signed byte/word/signed word~) test_bytes::$3 ← (byte) test_bytes::bc#1 - (byte/signed byte/word/signed word) 4 - (byte~) test_bytes::$4 ← ((byte)) (byte/signed byte/word/signed word~) test_bytes::$3 + (byte/signed byte/word/signed word/dword/signed dword~) test_bytes::$3 ← (byte) test_bytes::bc#1 - (byte/signed byte/word/signed word/dword/signed dword) 4 + (byte~) test_bytes::$4 ← ((byte)) (byte/signed byte/word/signed word/dword/signed dword~) test_bytes::$3 (byte) test_bytes::bd#0 ← (byte~) test_bytes::$4 (byte*) assert_byte::msg#2 ← (const string) test_bytes::msg2 (byte) assert_byte::b#2 ← (byte) test_bytes::bd#0 - (byte) assert_byte::c#2 ← (byte/word/signed word) 254 + (byte) assert_byte::c#2 ← (byte/word/signed word/dword/signed dword) 254 call assert_byte param-assignment to:test_bytes::@3 test_bytes::@3: scope:[test_bytes] from test_bytes::@2 @@ -967,10 +967,10 @@ assert_byte::@return: scope:[assert_byte] from assert_byte::@9 test_sbytes: scope:[test_sbytes] from main::@2 (byte*) line_cursor#46 ← phi( main::@2/(byte*) line_cursor#3 ) (byte*) char_cursor#69 ← phi( main::@2/(byte*) char_cursor#5 ) - (signed byte) test_sbytes::bb#0 ← (byte/signed byte/word/signed word) 0 + (signed byte) test_sbytes::bb#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 (byte*) assert_sbyte::msg#0 ← (const string) test_sbytes::msg (signed byte) assert_sbyte::b#0 ← (signed byte) test_sbytes::bb#0 - (signed byte) assert_sbyte::c#0 ← (byte/signed byte/word/signed word) 0 + (signed byte) assert_sbyte::c#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 call assert_sbyte param-assignment to:test_sbytes::@1 test_sbytes::@1: scope:[test_sbytes] from test_sbytes @@ -979,11 +979,11 @@ test_sbytes::@1: scope:[test_sbytes] from test_sbytes (byte*) char_cursor#48 ← phi( test_sbytes/(byte*) char_cursor#29 ) (byte*) char_cursor#18 ← (byte*) char_cursor#48 (byte*) line_cursor#12 ← (byte*) line_cursor#33 - (byte/signed byte/word/signed word~) test_sbytes::$1 ← (signed byte) test_sbytes::bb#1 + (byte/signed byte/word/signed word) 2 - (signed byte) test_sbytes::bc#0 ← (byte/signed byte/word/signed word~) test_sbytes::$1 + (byte/signed byte/word/signed word/dword/signed dword~) test_sbytes::$1 ← (signed byte) test_sbytes::bb#1 + (byte/signed byte/word/signed word/dword/signed dword) 2 + (signed byte) test_sbytes::bc#0 ← (byte/signed byte/word/signed word/dword/signed dword~) test_sbytes::$1 (byte*) assert_sbyte::msg#1 ← (const string) test_sbytes::msg1 (signed byte) assert_sbyte::b#1 ← (signed byte) test_sbytes::bc#0 - (signed byte) assert_sbyte::c#1 ← (byte/signed byte/word/signed word) 2 + (signed byte) assert_sbyte::c#1 ← (byte/signed byte/word/signed word/dword/signed dword) 2 call assert_sbyte param-assignment to:test_sbytes::@2 test_sbytes::@2: scope:[test_sbytes] from test_sbytes::@1 @@ -992,12 +992,12 @@ test_sbytes::@2: scope:[test_sbytes] from test_sbytes::@1 (byte*) char_cursor#49 ← phi( test_sbytes::@1/(byte*) char_cursor#29 ) (byte*) char_cursor#19 ← (byte*) char_cursor#49 (byte*) line_cursor#13 ← (byte*) line_cursor#34 - (byte/signed byte/word/signed word~) test_sbytes::$3 ← (signed byte) test_sbytes::bc#1 - (byte/signed byte/word/signed word) 4 - (signed byte) test_sbytes::bd#0 ← (byte/signed byte/word/signed word~) test_sbytes::$3 - (signed byte/signed word~) test_sbytes::$4 ← - (byte/signed byte/word/signed word) 2 + (byte/signed byte/word/signed word/dword/signed dword~) test_sbytes::$3 ← (signed byte) test_sbytes::bc#1 - (byte/signed byte/word/signed word/dword/signed dword) 4 + (signed byte) test_sbytes::bd#0 ← (byte/signed byte/word/signed word/dword/signed dword~) test_sbytes::$3 + (signed byte/signed word/signed dword~) test_sbytes::$4 ← - (byte/signed byte/word/signed word/dword/signed dword) 2 (byte*) assert_sbyte::msg#2 ← (const string) test_sbytes::msg2 (signed byte) assert_sbyte::b#2 ← (signed byte) test_sbytes::bd#0 - (signed byte) assert_sbyte::c#2 ← (signed byte/signed word~) test_sbytes::$4 + (signed byte) assert_sbyte::c#2 ← (signed byte/signed word/signed dword~) test_sbytes::$4 call assert_sbyte param-assignment to:test_sbytes::@3 test_sbytes::@3: scope:[test_sbytes] from test_sbytes::@2 @@ -1010,7 +1010,7 @@ test_sbytes::@3: scope:[test_sbytes] from test_sbytes::@2 (signed byte) test_sbytes::be#0 ← (signed byte~) test_sbytes::$6 (byte*) assert_sbyte::msg#3 ← (const string) test_sbytes::msg3 (signed byte) assert_sbyte::b#3 ← (signed byte) test_sbytes::be#0 - (signed byte) assert_sbyte::c#3 ← (byte/signed byte/word/signed word) 2 + (signed byte) assert_sbyte::c#3 ← (byte/signed byte/word/signed word/dword/signed dword) 2 call assert_sbyte param-assignment to:test_sbytes::@4 test_sbytes::@4: scope:[test_sbytes] from test_sbytes::@3 @@ -1018,13 +1018,13 @@ test_sbytes::@4: scope:[test_sbytes] from test_sbytes::@3 (byte*) char_cursor#51 ← phi( test_sbytes::@3/(byte*) char_cursor#29 ) (byte*) char_cursor#21 ← (byte*) char_cursor#51 (byte*) line_cursor#15 ← (byte*) line_cursor#36 - (signed byte/signed word~) test_sbytes::$8 ← - (byte/signed byte/word/signed word) 127 - (byte/signed byte/word/signed word~) test_sbytes::$9 ← (signed byte/signed word~) test_sbytes::$8 - (byte/signed byte/word/signed word) 127 - (signed byte~) test_sbytes::$10 ← ((signed byte)) (byte/signed byte/word/signed word~) test_sbytes::$9 + (signed byte/signed word/signed dword~) test_sbytes::$8 ← - (byte/signed byte/word/signed word/dword/signed dword) 127 + (byte/signed byte/word/signed word/dword/signed dword~) test_sbytes::$9 ← (signed byte/signed word/signed dword~) test_sbytes::$8 - (byte/signed byte/word/signed word/dword/signed dword) 127 + (signed byte~) test_sbytes::$10 ← ((signed byte)) (byte/signed byte/word/signed word/dword/signed dword~) test_sbytes::$9 (signed byte) test_sbytes::bf#0 ← (signed byte~) test_sbytes::$10 (byte*) assert_sbyte::msg#4 ← (const string) test_sbytes::msg4 (signed byte) assert_sbyte::b#4 ← (signed byte) test_sbytes::bf#0 - (signed byte) assert_sbyte::c#4 ← (byte/signed byte/word/signed word) 2 + (signed byte) assert_sbyte::c#4 ← (byte/signed byte/word/signed word/dword/signed dword) 2 call assert_sbyte param-assignment to:test_sbytes::@5 test_sbytes::@5: scope:[test_sbytes] from test_sbytes::@4 @@ -1359,7 +1359,7 @@ SYMBOL TABLE SSA (label) main::@3 (label) main::@return (void()) print_cls() -(word/signed word~) print_cls::$0 +(word/signed word/dword/signed dword~) print_cls::$0 (boolean~) print_cls::$1 (label) print_cls::@1 (label) print_cls::@return @@ -1393,7 +1393,7 @@ SYMBOL TABLE SSA (byte*) print_str::str#9 (void()) test_bytes() (byte/word~) test_bytes::$1 -(byte/signed byte/word/signed word~) test_bytes::$3 +(byte/signed byte/word/signed word/dword/signed dword~) test_bytes::$3 (byte~) test_bytes::$4 (label) test_bytes::@1 (label) test_bytes::@2 @@ -1411,13 +1411,13 @@ SYMBOL TABLE SSA (const string) test_bytes::msg1 = (string) "0+2=2@" (const string) test_bytes::msg2 = (string) "0+2-4=254@" (void()) test_sbytes() -(byte/signed byte/word/signed word~) test_sbytes::$1 +(byte/signed byte/word/signed word/dword/signed dword~) test_sbytes::$1 (signed byte~) test_sbytes::$10 -(byte/signed byte/word/signed word~) test_sbytes::$3 -(signed byte/signed word~) test_sbytes::$4 +(byte/signed byte/word/signed word/dword/signed dword~) test_sbytes::$3 +(signed byte/signed word/signed dword~) test_sbytes::$4 (signed byte~) test_sbytes::$6 -(signed byte/signed word~) test_sbytes::$8 -(byte/signed byte/word/signed word~) test_sbytes::$9 +(signed byte/signed word/signed dword~) test_sbytes::$8 +(byte/signed byte/word/signed word/dword/signed dword~) test_sbytes::$9 (label) test_sbytes::@1 (label) test_sbytes::@2 (label) test_sbytes::@3 @@ -1542,11 +1542,11 @@ Alias (byte*) char_cursor#16 = (byte*) char_cursor#46 (byte*) char_cursor#47 (by Alias (signed byte) test_sbytes::bb#0 = (signed byte) test_sbytes::bb#1 Alias (byte*) char_cursor#18 = (byte*) char_cursor#48 Alias (byte*) line_cursor#12 = (byte*) line_cursor#33 -Alias (signed byte) test_sbytes::bc#0 = (byte/signed byte/word/signed word~) test_sbytes::$1 (signed byte) test_sbytes::bc#1 +Alias (signed byte) test_sbytes::bc#0 = (byte/signed byte/word/signed word/dword/signed dword~) test_sbytes::$1 (signed byte) test_sbytes::bc#1 Alias (byte*) char_cursor#19 = (byte*) char_cursor#49 Alias (byte*) line_cursor#13 = (byte*) line_cursor#34 -Alias (signed byte) test_sbytes::bd#0 = (byte/signed byte/word/signed word~) test_sbytes::$3 (signed byte) test_sbytes::bd#1 -Alias (signed byte) assert_sbyte::c#2 = (signed byte/signed word~) test_sbytes::$4 +Alias (signed byte) test_sbytes::bd#0 = (byte/signed byte/word/signed word/dword/signed dword~) test_sbytes::$3 (signed byte) test_sbytes::bd#1 +Alias (signed byte) assert_sbyte::c#2 = (signed byte/signed word/signed dword~) test_sbytes::$4 Alias (byte*) char_cursor#20 = (byte*) char_cursor#50 Alias (byte*) line_cursor#14 = (byte*) line_cursor#35 Alias (signed byte) test_sbytes::be#0 = (signed byte~) test_sbytes::$6 @@ -1751,13 +1751,13 @@ Redundant Phi (byte*) char_cursor#62 (byte*) char_cursor#2 Succesful SSA optimization Pass2RedundantPhiElimination Simple Condition (boolean~) print_str::$0 if(*((byte*) print_str::str#10)!=(byte) '@') goto print_str::@2 Simple Condition (boolean~) print_ln::$1 if((byte*) line_cursor#1<(byte*) char_cursor#2) goto print_ln::@1 -Simple Condition (boolean~) print_cls::$1 if((byte*) print_cls::sc#1!=(word/signed word~) print_cls::$0) goto print_cls::@1 +Simple Condition (boolean~) print_cls::$1 if((byte*) print_cls::sc#1!=(word/signed word/dword/signed dword~) print_cls::$0) goto print_cls::@1 Simple Condition (boolean~) assert_byte::$3 if((byte) assert_byte::b#3==(byte) assert_byte::c#3) goto assert_byte::@1 Simple Condition (boolean~) assert_sbyte::$3 if((signed byte) assert_sbyte::b#5==(signed byte) assert_sbyte::c#5) goto assert_sbyte::@1 Succesful SSA optimization Pass2ConditionalJumpSimplification Constant (const byte*) char_cursor#0 = ((byte*))1024 Constant (const byte*) print_cls::sc#0 = ((byte*))1024 -Constant (const word/signed word) print_cls::$0 = 1024+1000 +Constant (const word/signed word/dword/signed dword) print_cls::$0 = 1024+1000 Constant (const byte*) BGCOL#0 = ((byte*))53281 Constant (const byte) GREEN#0 = 5 Constant (const byte) RED#0 = 2 @@ -1780,7 +1780,7 @@ Constant (const signed byte) assert_sbyte::c#2 = -2 Constant (const string) assert_sbyte::msg#2 = test_sbytes::msg2 Constant (const string) assert_sbyte::msg#3 = test_sbytes::msg3 Constant (const signed byte) assert_sbyte::c#3 = 2 -Constant (const signed byte/signed word) test_sbytes::$8 = -127 +Constant (const signed byte/signed word/signed dword) test_sbytes::$8 = -127 Constant (const string) assert_sbyte::msg#4 = test_sbytes::msg4 Constant (const signed byte) assert_sbyte::c#4 = 2 Constant (const string) print_str::str#6 = assert_sbyte::str @@ -1791,10 +1791,10 @@ Constant (const byte) assert_byte::b#0 = test_bytes::bb#0 Constant (const byte) test_bytes::bc#0 = test_bytes::bb#0+2 Constant (const signed byte) assert_sbyte::b#0 = test_sbytes::bb#0 Constant (const signed byte) test_sbytes::bc#0 = test_sbytes::bb#0+2 -Constant (const signed word) test_sbytes::$9 = test_sbytes::$8-127 +Constant (const signed word/signed dword) test_sbytes::$9 = test_sbytes::$8-127 Succesful SSA optimization Pass2ConstantIdentification Constant (const byte) assert_byte::b#1 = test_bytes::bc#0 -Constant (const signed byte/signed word) test_bytes::$3 = test_bytes::bc#0-4 +Constant (const signed byte/signed word/signed dword) test_bytes::$3 = test_bytes::bc#0-4 Constant (const signed byte) assert_sbyte::b#1 = test_sbytes::bc#0 Constant (const signed byte) test_sbytes::bd#0 = test_sbytes::bc#0-4 Constant (const signed byte) test_sbytes::bf#0 = ((signed byte))test_sbytes::$9 @@ -1911,26 +1911,26 @@ Inlining constant with var siblings (const byte*) char_cursor#0 Inlining constant with var siblings (const byte*) char_cursor#0 Inlining constant with var siblings (const byte*) char_cursor#0 Inlining constant with var siblings (const byte*) char_cursor#0 -Constant inlined print_cls::$0 = (word/signed word) 1024+(word/signed word) 1000 +Constant inlined print_cls::$0 = (word/signed word/dword/signed dword) 1024+(word/signed word/dword/signed dword) 1000 Constant inlined assert_sbyte::b#2 = (const signed byte) test_sbytes::bd#0 -Constant inlined assert_sbyte::c#1 = (byte/signed byte/word/signed word) 2 +Constant inlined assert_sbyte::c#1 = (byte/signed byte/word/signed word/dword/signed dword) 2 Constant inlined assert_sbyte::b#1 = (const signed byte) test_sbytes::bc#0 -Constant inlined assert_sbyte::c#0 = (byte/signed byte/word/signed word) 0 +Constant inlined assert_sbyte::c#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined assert_byte::b#0 = (const byte) test_bytes::bb#0 Constant inlined assert_sbyte::b#0 = (const signed byte) test_sbytes::bb#0 Constant inlined assert_byte::b#1 = (const byte) test_bytes::bc#0 -Constant inlined assert_byte::c#0 = (byte/signed byte/word/signed word) 0 +Constant inlined assert_byte::c#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined assert_byte::b#2 = (const byte) test_bytes::bd#0 -Constant inlined assert_byte::c#1 = (byte/signed byte/word/signed word) 2 -Constant inlined test_bytes::$3 = (const byte) test_bytes::bc#0-(byte/signed byte/word/signed word) 4 -Constant inlined assert_byte::c#2 = (byte/word/signed word) 254 -Constant inlined assert_sbyte::c#4 = (byte/signed byte/word/signed word) 2 +Constant inlined assert_byte::c#1 = (byte/signed byte/word/signed word/dword/signed dword) 2 +Constant inlined test_bytes::$3 = (const byte) test_bytes::bc#0-(byte/signed byte/word/signed word/dword/signed dword) 4 +Constant inlined assert_byte::c#2 = (byte/word/signed word/dword/signed dword) 254 +Constant inlined assert_sbyte::c#4 = (byte/signed byte/word/signed word/dword/signed dword) 2 Constant inlined assert_sbyte::b#4 = (const signed byte) test_sbytes::bf#0 -Constant inlined assert_sbyte::c#3 = (byte/signed byte/word/signed word) 2 +Constant inlined assert_sbyte::c#3 = (byte/signed byte/word/signed word/dword/signed dword) 2 Constant inlined assert_sbyte::b#3 = (const signed byte) test_sbytes::be#0 -Constant inlined assert_sbyte::c#2 = -(byte/signed byte/word/signed word) 2 -Constant inlined test_sbytes::$8 = -(byte/signed byte/word/signed word) 127 -Constant inlined test_sbytes::$9 = -(byte/signed byte/word/signed word) 127-(byte/signed byte/word/signed word) 127 +Constant inlined assert_sbyte::c#2 = -(byte/signed byte/word/signed word/dword/signed dword) 2 +Constant inlined test_sbytes::$8 = -(byte/signed byte/word/signed word/dword/signed dword) 127 +Constant inlined test_sbytes::$9 = -(byte/signed byte/word/signed word/dword/signed dword) 127-(byte/signed byte/word/signed word/dword/signed dword) 127 Constant inlined assert_byte::msg#0 = (const string) test_bytes::msg Constant inlined assert_byte::msg#1 = (const string) test_bytes::msg1 Constant inlined assert_byte::msg#2 = (const string) test_bytes::msg2 @@ -1938,12 +1938,12 @@ Constant inlined assert_sbyte::msg#0 = (const string) test_sbytes::msg Constant inlined assert_sbyte::msg#1 = (const string) test_sbytes::msg1 Constant inlined assert_sbyte::msg#2 = (const string) test_sbytes::msg2 Constant inlined assert_sbyte::msg#3 = (const string) test_sbytes::msg3 -Constant inlined print_cls::sc#0 = ((byte*))(word/signed word) 1024 +Constant inlined print_cls::sc#0 = ((byte*))(word/signed word/dword/signed dword) 1024 Constant inlined print_str::str#4 = (const string) assert_byte::str2 Constant inlined assert_sbyte::msg#4 = (const string) test_sbytes::msg4 Constant inlined print_str::str#3 = (const string) assert_byte::str1 Constant inlined print_str::str#2 = (const string) assert_byte::str -Constant inlined char_cursor#0 = ((byte*))(word/signed word) 1024 +Constant inlined char_cursor#0 = ((byte*))(word/signed word/dword/signed dword) 1024 Constant inlined print_str::str#8 = (const string) assert_sbyte::str2 Constant inlined print_str::str#7 = (const string) assert_sbyte::str1 Constant inlined print_str::str#6 = (const string) assert_sbyte::str @@ -2086,7 +2086,7 @@ test_sbytes::@return: scope:[test_sbytes] from test_sbytes::@4 [21] return [ ] ( main:2::test_sbytes:9 [ ] ) to:@return assert_sbyte: scope:[assert_sbyte] from test_sbytes test_sbytes::@1 test_sbytes::@2 test_sbytes::@3 test_sbytes::@4 - [22] (signed byte) assert_sbyte::c#5 ← phi( test_sbytes/(byte/signed byte/word/signed word) 0 test_sbytes::@1/(byte/signed byte/word/signed word) 2 test_sbytes::@2/-(byte/signed byte/word/signed word) 2 test_sbytes::@3/(byte/signed byte/word/signed word) 2 test_sbytes::@4/(byte/signed byte/word/signed word) 2 ) [ assert_sbyte::msg#5 assert_sbyte::b#5 assert_sbyte::c#5 line_cursor#1 ] ( main:2::test_sbytes:9::assert_sbyte:12 [ assert_sbyte::msg#5 assert_sbyte::b#5 assert_sbyte::c#5 line_cursor#1 ] main:2::test_sbytes:9::assert_sbyte:14 [ assert_sbyte::msg#5 assert_sbyte::b#5 assert_sbyte::c#5 line_cursor#1 ] main:2::test_sbytes:9::assert_sbyte:16 [ assert_sbyte::msg#5 assert_sbyte::b#5 assert_sbyte::c#5 line_cursor#1 ] main:2::test_sbytes:9::assert_sbyte:18 [ assert_sbyte::msg#5 assert_sbyte::b#5 assert_sbyte::c#5 line_cursor#1 ] main:2::test_sbytes:9::assert_sbyte:20 [ assert_sbyte::msg#5 assert_sbyte::b#5 assert_sbyte::c#5 line_cursor#1 ] ) + [22] (signed byte) assert_sbyte::c#5 ← phi( test_sbytes/(byte/signed byte/word/signed word/dword/signed dword) 0 test_sbytes::@1/(byte/signed byte/word/signed word/dword/signed dword) 2 test_sbytes::@2/-(byte/signed byte/word/signed word/dword/signed dword) 2 test_sbytes::@3/(byte/signed byte/word/signed word/dword/signed dword) 2 test_sbytes::@4/(byte/signed byte/word/signed word/dword/signed dword) 2 ) [ assert_sbyte::msg#5 assert_sbyte::b#5 assert_sbyte::c#5 line_cursor#1 ] ( main:2::test_sbytes:9::assert_sbyte:12 [ assert_sbyte::msg#5 assert_sbyte::b#5 assert_sbyte::c#5 line_cursor#1 ] main:2::test_sbytes:9::assert_sbyte:14 [ assert_sbyte::msg#5 assert_sbyte::b#5 assert_sbyte::c#5 line_cursor#1 ] main:2::test_sbytes:9::assert_sbyte:16 [ assert_sbyte::msg#5 assert_sbyte::b#5 assert_sbyte::c#5 line_cursor#1 ] main:2::test_sbytes:9::assert_sbyte:18 [ assert_sbyte::msg#5 assert_sbyte::b#5 assert_sbyte::c#5 line_cursor#1 ] main:2::test_sbytes:9::assert_sbyte:20 [ assert_sbyte::msg#5 assert_sbyte::b#5 assert_sbyte::c#5 line_cursor#1 ] ) [22] (signed byte) assert_sbyte::b#5 ← phi( test_sbytes/(const signed byte) test_sbytes::bb#0 test_sbytes::@1/(const signed byte) test_sbytes::bc#0 test_sbytes::@2/(const signed byte) test_sbytes::bd#0 test_sbytes::@3/(const signed byte) test_sbytes::be#0 test_sbytes::@4/(const signed byte) test_sbytes::bf#0 ) [ assert_sbyte::msg#5 assert_sbyte::b#5 assert_sbyte::c#5 line_cursor#1 ] ( main:2::test_sbytes:9::assert_sbyte:12 [ assert_sbyte::msg#5 assert_sbyte::b#5 assert_sbyte::c#5 line_cursor#1 ] main:2::test_sbytes:9::assert_sbyte:14 [ assert_sbyte::msg#5 assert_sbyte::b#5 assert_sbyte::c#5 line_cursor#1 ] main:2::test_sbytes:9::assert_sbyte:16 [ assert_sbyte::msg#5 assert_sbyte::b#5 assert_sbyte::c#5 line_cursor#1 ] main:2::test_sbytes:9::assert_sbyte:18 [ assert_sbyte::msg#5 assert_sbyte::b#5 assert_sbyte::c#5 line_cursor#1 ] main:2::test_sbytes:9::assert_sbyte:20 [ assert_sbyte::msg#5 assert_sbyte::b#5 assert_sbyte::c#5 line_cursor#1 ] ) [22] (byte*) assert_sbyte::msg#5 ← phi( test_sbytes/(const string) test_sbytes::msg test_sbytes::@1/(const string) test_sbytes::msg1 test_sbytes::@2/(const string) test_sbytes::msg2 test_sbytes::@3/(const string) test_sbytes::msg3 test_sbytes::@4/(const string) test_sbytes::msg4 ) [ assert_sbyte::msg#5 assert_sbyte::b#5 assert_sbyte::c#5 line_cursor#1 ] ( main:2::test_sbytes:9::assert_sbyte:12 [ assert_sbyte::msg#5 assert_sbyte::b#5 assert_sbyte::c#5 line_cursor#1 ] main:2::test_sbytes:9::assert_sbyte:14 [ assert_sbyte::msg#5 assert_sbyte::b#5 assert_sbyte::c#5 line_cursor#1 ] main:2::test_sbytes:9::assert_sbyte:16 [ assert_sbyte::msg#5 assert_sbyte::b#5 assert_sbyte::c#5 line_cursor#1 ] main:2::test_sbytes:9::assert_sbyte:18 [ assert_sbyte::msg#5 assert_sbyte::b#5 assert_sbyte::c#5 line_cursor#1 ] main:2::test_sbytes:9::assert_sbyte:20 [ assert_sbyte::msg#5 assert_sbyte::b#5 assert_sbyte::c#5 line_cursor#1 ] ) [23] (byte*) print_str::str#5 ← (byte*) assert_sbyte::msg#5 [ assert_sbyte::b#5 assert_sbyte::c#5 print_str::str#5 line_cursor#1 ] ( main:2::test_sbytes:9::assert_sbyte:12 [ assert_sbyte::b#5 assert_sbyte::c#5 print_str::str#5 line_cursor#1 ] main:2::test_sbytes:9::assert_sbyte:14 [ assert_sbyte::b#5 assert_sbyte::c#5 print_str::str#5 line_cursor#1 ] main:2::test_sbytes:9::assert_sbyte:16 [ assert_sbyte::b#5 assert_sbyte::c#5 print_str::str#5 line_cursor#1 ] main:2::test_sbytes:9::assert_sbyte:18 [ assert_sbyte::b#5 assert_sbyte::c#5 print_str::str#5 line_cursor#1 ] main:2::test_sbytes:9::assert_sbyte:20 [ assert_sbyte::b#5 assert_sbyte::c#5 print_str::str#5 line_cursor#1 ] ) @@ -2137,7 +2137,7 @@ print_ln: scope:[print_ln] from assert_byte::@2 assert_sbyte::@2 to:print_ln::@1 print_ln::@1: scope:[print_ln] from print_ln print_ln::@1 [44] (byte*) line_cursor#21 ← phi( print_ln/(byte*) line_cursor#42 print_ln::@1/(byte*) line_cursor#1 ) [ char_cursor#2 line_cursor#21 ] ( main:2::test_sbytes:9::assert_sbyte:12::print_ln:32 [ char_cursor#2 line_cursor#21 ] main:2::test_sbytes:9::assert_sbyte:14::print_ln:32 [ char_cursor#2 line_cursor#21 ] main:2::test_sbytes:9::assert_sbyte:16::print_ln:32 [ char_cursor#2 line_cursor#21 ] main:2::test_sbytes:9::assert_sbyte:18::print_ln:32 [ char_cursor#2 line_cursor#21 ] main:2::test_sbytes:9::assert_sbyte:20::print_ln:32 [ char_cursor#2 line_cursor#21 ] main:2::test_bytes:7::assert_byte:49::print_ln:64 [ char_cursor#2 line_cursor#21 ] main:2::test_bytes:7::assert_byte:51::print_ln:64 [ char_cursor#2 line_cursor#21 ] main:2::test_bytes:7::assert_byte:53::print_ln:64 [ char_cursor#2 line_cursor#21 ] ) - [45] (byte*) line_cursor#1 ← (byte*) line_cursor#21 + (byte/signed byte/word/signed word) 40 [ line_cursor#1 char_cursor#2 ] ( main:2::test_sbytes:9::assert_sbyte:12::print_ln:32 [ line_cursor#1 char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:14::print_ln:32 [ line_cursor#1 char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:16::print_ln:32 [ line_cursor#1 char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:18::print_ln:32 [ line_cursor#1 char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:20::print_ln:32 [ line_cursor#1 char_cursor#2 ] main:2::test_bytes:7::assert_byte:49::print_ln:64 [ line_cursor#1 char_cursor#2 ] main:2::test_bytes:7::assert_byte:51::print_ln:64 [ line_cursor#1 char_cursor#2 ] main:2::test_bytes:7::assert_byte:53::print_ln:64 [ line_cursor#1 char_cursor#2 ] ) + [45] (byte*) line_cursor#1 ← (byte*) line_cursor#21 + (byte/signed byte/word/signed word/dword/signed dword) 40 [ line_cursor#1 char_cursor#2 ] ( main:2::test_sbytes:9::assert_sbyte:12::print_ln:32 [ line_cursor#1 char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:14::print_ln:32 [ line_cursor#1 char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:16::print_ln:32 [ line_cursor#1 char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:18::print_ln:32 [ line_cursor#1 char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:20::print_ln:32 [ line_cursor#1 char_cursor#2 ] main:2::test_bytes:7::assert_byte:49::print_ln:64 [ line_cursor#1 char_cursor#2 ] main:2::test_bytes:7::assert_byte:51::print_ln:64 [ line_cursor#1 char_cursor#2 ] main:2::test_bytes:7::assert_byte:53::print_ln:64 [ line_cursor#1 char_cursor#2 ] ) [46] if((byte*) line_cursor#1<(byte*) char_cursor#2) goto print_ln::@1 [ line_cursor#1 char_cursor#2 ] ( main:2::test_sbytes:9::assert_sbyte:12::print_ln:32 [ line_cursor#1 char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:14::print_ln:32 [ line_cursor#1 char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:16::print_ln:32 [ line_cursor#1 char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:18::print_ln:32 [ line_cursor#1 char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:20::print_ln:32 [ line_cursor#1 char_cursor#2 ] main:2::test_bytes:7::assert_byte:49::print_ln:64 [ line_cursor#1 char_cursor#2 ] main:2::test_bytes:7::assert_byte:51::print_ln:64 [ line_cursor#1 char_cursor#2 ] main:2::test_bytes:7::assert_byte:53::print_ln:64 [ line_cursor#1 char_cursor#2 ] ) to:print_ln::@return print_ln::@return: scope:[print_ln] from print_ln::@1 @@ -2159,10 +2159,10 @@ test_bytes::@return: scope:[test_bytes] from test_bytes::@2 [54] return [ line_cursor#1 ] ( main:2::test_bytes:7 [ line_cursor#1 ] ) to:@return assert_byte: scope:[assert_byte] from test_bytes test_bytes::@1 test_bytes::@2 - [55] (byte*) line_cursor#45 ← phi( test_bytes/((byte*))(word/signed word) 1024 test_bytes::@1/(byte*) line_cursor#1 test_bytes::@2/(byte*) line_cursor#1 ) [ char_cursor#65 line_cursor#45 assert_byte::msg#3 assert_byte::b#3 assert_byte::c#3 ] ( main:2::test_bytes:7::assert_byte:49 [ char_cursor#65 line_cursor#45 assert_byte::msg#3 assert_byte::b#3 assert_byte::c#3 ] main:2::test_bytes:7::assert_byte:51 [ char_cursor#65 line_cursor#45 assert_byte::msg#3 assert_byte::b#3 assert_byte::c#3 ] main:2::test_bytes:7::assert_byte:53 [ char_cursor#65 line_cursor#45 assert_byte::msg#3 assert_byte::b#3 assert_byte::c#3 ] ) - [55] (byte) assert_byte::c#3 ← phi( test_bytes/(byte/signed byte/word/signed word) 0 test_bytes::@1/(byte/signed byte/word/signed word) 2 test_bytes::@2/(byte/word/signed word) 254 ) [ char_cursor#65 line_cursor#45 assert_byte::msg#3 assert_byte::b#3 assert_byte::c#3 ] ( main:2::test_bytes:7::assert_byte:49 [ char_cursor#65 line_cursor#45 assert_byte::msg#3 assert_byte::b#3 assert_byte::c#3 ] main:2::test_bytes:7::assert_byte:51 [ char_cursor#65 line_cursor#45 assert_byte::msg#3 assert_byte::b#3 assert_byte::c#3 ] main:2::test_bytes:7::assert_byte:53 [ char_cursor#65 line_cursor#45 assert_byte::msg#3 assert_byte::b#3 assert_byte::c#3 ] ) + [55] (byte*) line_cursor#45 ← phi( test_bytes/((byte*))(word/signed word/dword/signed dword) 1024 test_bytes::@1/(byte*) line_cursor#1 test_bytes::@2/(byte*) line_cursor#1 ) [ char_cursor#65 line_cursor#45 assert_byte::msg#3 assert_byte::b#3 assert_byte::c#3 ] ( main:2::test_bytes:7::assert_byte:49 [ char_cursor#65 line_cursor#45 assert_byte::msg#3 assert_byte::b#3 assert_byte::c#3 ] main:2::test_bytes:7::assert_byte:51 [ char_cursor#65 line_cursor#45 assert_byte::msg#3 assert_byte::b#3 assert_byte::c#3 ] main:2::test_bytes:7::assert_byte:53 [ char_cursor#65 line_cursor#45 assert_byte::msg#3 assert_byte::b#3 assert_byte::c#3 ] ) + [55] (byte) assert_byte::c#3 ← phi( test_bytes/(byte/signed byte/word/signed word/dword/signed dword) 0 test_bytes::@1/(byte/signed byte/word/signed word/dword/signed dword) 2 test_bytes::@2/(byte/word/signed word/dword/signed dword) 254 ) [ char_cursor#65 line_cursor#45 assert_byte::msg#3 assert_byte::b#3 assert_byte::c#3 ] ( main:2::test_bytes:7::assert_byte:49 [ char_cursor#65 line_cursor#45 assert_byte::msg#3 assert_byte::b#3 assert_byte::c#3 ] main:2::test_bytes:7::assert_byte:51 [ char_cursor#65 line_cursor#45 assert_byte::msg#3 assert_byte::b#3 assert_byte::c#3 ] main:2::test_bytes:7::assert_byte:53 [ char_cursor#65 line_cursor#45 assert_byte::msg#3 assert_byte::b#3 assert_byte::c#3 ] ) [55] (byte) assert_byte::b#3 ← phi( test_bytes/(const byte) test_bytes::bb#0 test_bytes::@1/(const byte) test_bytes::bc#0 test_bytes::@2/(const byte) test_bytes::bd#0 ) [ char_cursor#65 line_cursor#45 assert_byte::msg#3 assert_byte::b#3 assert_byte::c#3 ] ( main:2::test_bytes:7::assert_byte:49 [ char_cursor#65 line_cursor#45 assert_byte::msg#3 assert_byte::b#3 assert_byte::c#3 ] main:2::test_bytes:7::assert_byte:51 [ char_cursor#65 line_cursor#45 assert_byte::msg#3 assert_byte::b#3 assert_byte::c#3 ] main:2::test_bytes:7::assert_byte:53 [ char_cursor#65 line_cursor#45 assert_byte::msg#3 assert_byte::b#3 assert_byte::c#3 ] ) - [55] (byte*) char_cursor#65 ← phi( test_bytes/((byte*))(word/signed word) 1024 test_bytes::@1/(byte*~) char_cursor#88 test_bytes::@2/(byte*~) char_cursor#89 ) [ char_cursor#65 line_cursor#45 assert_byte::msg#3 assert_byte::b#3 assert_byte::c#3 ] ( main:2::test_bytes:7::assert_byte:49 [ char_cursor#65 line_cursor#45 assert_byte::msg#3 assert_byte::b#3 assert_byte::c#3 ] main:2::test_bytes:7::assert_byte:51 [ char_cursor#65 line_cursor#45 assert_byte::msg#3 assert_byte::b#3 assert_byte::c#3 ] main:2::test_bytes:7::assert_byte:53 [ char_cursor#65 line_cursor#45 assert_byte::msg#3 assert_byte::b#3 assert_byte::c#3 ] ) + [55] (byte*) char_cursor#65 ← phi( test_bytes/((byte*))(word/signed word/dword/signed dword) 1024 test_bytes::@1/(byte*~) char_cursor#88 test_bytes::@2/(byte*~) char_cursor#89 ) [ char_cursor#65 line_cursor#45 assert_byte::msg#3 assert_byte::b#3 assert_byte::c#3 ] ( main:2::test_bytes:7::assert_byte:49 [ char_cursor#65 line_cursor#45 assert_byte::msg#3 assert_byte::b#3 assert_byte::c#3 ] main:2::test_bytes:7::assert_byte:51 [ char_cursor#65 line_cursor#45 assert_byte::msg#3 assert_byte::b#3 assert_byte::c#3 ] main:2::test_bytes:7::assert_byte:53 [ char_cursor#65 line_cursor#45 assert_byte::msg#3 assert_byte::b#3 assert_byte::c#3 ] ) [55] (byte*) assert_byte::msg#3 ← phi( test_bytes/(const string) test_bytes::msg test_bytes::@1/(const string) test_bytes::msg1 test_bytes::@2/(const string) test_bytes::msg2 ) [ char_cursor#65 line_cursor#45 assert_byte::msg#3 assert_byte::b#3 assert_byte::c#3 ] ( main:2::test_bytes:7::assert_byte:49 [ char_cursor#65 line_cursor#45 assert_byte::msg#3 assert_byte::b#3 assert_byte::c#3 ] main:2::test_bytes:7::assert_byte:51 [ char_cursor#65 line_cursor#45 assert_byte::msg#3 assert_byte::b#3 assert_byte::c#3 ] main:2::test_bytes:7::assert_byte:53 [ char_cursor#65 line_cursor#45 assert_byte::msg#3 assert_byte::b#3 assert_byte::c#3 ] ) [56] (byte*) print_str::str#1 ← (byte*) assert_byte::msg#3 [ print_str::str#1 char_cursor#65 line_cursor#45 assert_byte::b#3 assert_byte::c#3 ] ( main:2::test_bytes:7::assert_byte:49 [ print_str::str#1 char_cursor#65 line_cursor#45 assert_byte::b#3 assert_byte::c#3 ] main:2::test_bytes:7::assert_byte:51 [ print_str::str#1 char_cursor#65 line_cursor#45 assert_byte::b#3 assert_byte::c#3 ] main:2::test_bytes:7::assert_byte:53 [ print_str::str#1 char_cursor#65 line_cursor#45 assert_byte::b#3 assert_byte::c#3 ] ) [57] call print_str param-assignment [ char_cursor#2 line_cursor#45 assert_byte::b#3 assert_byte::c#3 ] ( main:2::test_bytes:7::assert_byte:49 [ char_cursor#2 line_cursor#45 assert_byte::b#3 assert_byte::c#3 ] main:2::test_bytes:7::assert_byte:51 [ char_cursor#2 line_cursor#45 assert_byte::b#3 assert_byte::c#3 ] main:2::test_bytes:7::assert_byte:53 [ char_cursor#2 line_cursor#45 assert_byte::b#3 assert_byte::c#3 ] ) @@ -2193,10 +2193,10 @@ print_cls: scope:[print_cls] from main [68] phi() [ ] ( main:2::print_cls:5 [ ] ) to:print_cls::@1 print_cls::@1: scope:[print_cls] from print_cls print_cls::@1 - [69] (byte*) print_cls::sc#2 ← phi( print_cls/((byte*))(word/signed word) 1024 print_cls::@1/(byte*) print_cls::sc#1 ) [ print_cls::sc#2 ] ( main:2::print_cls:5 [ print_cls::sc#2 ] ) + [69] (byte*) print_cls::sc#2 ← phi( print_cls/((byte*))(word/signed word/dword/signed dword) 1024 print_cls::@1/(byte*) print_cls::sc#1 ) [ print_cls::sc#2 ] ( main:2::print_cls:5 [ print_cls::sc#2 ] ) [70] *((byte*) print_cls::sc#2) ← (byte) ' ' [ print_cls::sc#2 ] ( main:2::print_cls:5 [ print_cls::sc#2 ] ) [71] (byte*) print_cls::sc#1 ← ++ (byte*) print_cls::sc#2 [ print_cls::sc#1 ] ( main:2::print_cls:5 [ print_cls::sc#1 ] ) - [72] if((byte*) print_cls::sc#1!=(word/signed word) 1024+(word/signed word) 1000) goto print_cls::@1 [ print_cls::sc#1 ] ( main:2::print_cls:5 [ print_cls::sc#1 ] ) + [72] if((byte*) print_cls::sc#1!=(word/signed word/dword/signed dword) 1024+(word/signed word/dword/signed dword) 1000) goto print_cls::@1 [ print_cls::sc#1 ] ( main:2::print_cls:5 [ print_cls::sc#1 ] ) to:print_cls::@return print_cls::@return: scope:[print_cls] from print_cls::@1 [73] return [ ] ( main:2::print_cls:5 [ ] ) @@ -2430,7 +2430,7 @@ test_sbytes: { //SEG23 [12] call assert_sbyte param-assignment [ line_cursor#1 ] ( main:2::test_sbytes:9 [ line_cursor#1 ] ) //SEG24 [22] phi from test_sbytes to assert_sbyte [phi:test_sbytes->assert_sbyte] assert_sbyte_from_test_sbytes: - //SEG25 [22] phi (signed byte) assert_sbyte::c#5 = (byte/signed byte/word/signed word) 0 [phi:test_sbytes->assert_sbyte#0] -- vbsz1=vbuc1 + //SEG25 [22] phi (signed byte) assert_sbyte::c#5 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:test_sbytes->assert_sbyte#0] -- vbsz1=vbuc1 lda #0 sta assert_sbyte.c //SEG26 [22] phi (signed byte) assert_sbyte::b#5 = (const signed byte) test_sbytes::bb#0 [phi:test_sbytes->assert_sbyte#1] -- vbsz1=vbsc1 @@ -2450,7 +2450,7 @@ test_sbytes: { //SEG30 [14] call assert_sbyte param-assignment [ line_cursor#1 ] ( main:2::test_sbytes:9 [ line_cursor#1 ] ) //SEG31 [22] phi from test_sbytes::@1 to assert_sbyte [phi:test_sbytes::@1->assert_sbyte] assert_sbyte_from_b1: - //SEG32 [22] phi (signed byte) assert_sbyte::c#5 = (byte/signed byte/word/signed word) 2 [phi:test_sbytes::@1->assert_sbyte#0] -- vbsz1=vbuc1 + //SEG32 [22] phi (signed byte) assert_sbyte::c#5 = (byte/signed byte/word/signed word/dword/signed dword) 2 [phi:test_sbytes::@1->assert_sbyte#0] -- vbsz1=vbuc1 lda #2 sta assert_sbyte.c //SEG33 [22] phi (signed byte) assert_sbyte::b#5 = (const signed byte) test_sbytes::bc#0 [phi:test_sbytes::@1->assert_sbyte#1] -- vbsz1=vbsc1 @@ -2470,7 +2470,7 @@ test_sbytes: { //SEG37 [16] call assert_sbyte param-assignment [ line_cursor#1 ] ( main:2::test_sbytes:9 [ line_cursor#1 ] ) //SEG38 [22] phi from test_sbytes::@2 to assert_sbyte [phi:test_sbytes::@2->assert_sbyte] assert_sbyte_from_b2: - //SEG39 [22] phi (signed byte) assert_sbyte::c#5 = -(byte/signed byte/word/signed word) 2 [phi:test_sbytes::@2->assert_sbyte#0] -- vbsz1=vbsc1 + //SEG39 [22] phi (signed byte) assert_sbyte::c#5 = -(byte/signed byte/word/signed word/dword/signed dword) 2 [phi:test_sbytes::@2->assert_sbyte#0] -- vbsz1=vbsc1 lda #-2 sta assert_sbyte.c //SEG40 [22] phi (signed byte) assert_sbyte::b#5 = (const signed byte) test_sbytes::bd#0 [phi:test_sbytes::@2->assert_sbyte#1] -- vbsz1=vbsc1 @@ -2490,7 +2490,7 @@ test_sbytes: { //SEG44 [18] call assert_sbyte param-assignment [ line_cursor#1 ] ( main:2::test_sbytes:9 [ line_cursor#1 ] ) //SEG45 [22] phi from test_sbytes::@3 to assert_sbyte [phi:test_sbytes::@3->assert_sbyte] assert_sbyte_from_b3: - //SEG46 [22] phi (signed byte) assert_sbyte::c#5 = (byte/signed byte/word/signed word) 2 [phi:test_sbytes::@3->assert_sbyte#0] -- vbsz1=vbuc1 + //SEG46 [22] phi (signed byte) assert_sbyte::c#5 = (byte/signed byte/word/signed word/dword/signed dword) 2 [phi:test_sbytes::@3->assert_sbyte#0] -- vbsz1=vbuc1 lda #2 sta assert_sbyte.c //SEG47 [22] phi (signed byte) assert_sbyte::b#5 = (const signed byte) test_sbytes::be#0 [phi:test_sbytes::@3->assert_sbyte#1] -- vbsz1=vbsc1 @@ -2510,7 +2510,7 @@ test_sbytes: { //SEG51 [20] call assert_sbyte param-assignment [ ] ( main:2::test_sbytes:9 [ ] ) //SEG52 [22] phi from test_sbytes::@4 to assert_sbyte [phi:test_sbytes::@4->assert_sbyte] assert_sbyte_from_b4: - //SEG53 [22] phi (signed byte) assert_sbyte::c#5 = (byte/signed byte/word/signed word) 2 [phi:test_sbytes::@4->assert_sbyte#0] -- vbsz1=vbuc1 + //SEG53 [22] phi (signed byte) assert_sbyte::c#5 = (byte/signed byte/word/signed word/dword/signed dword) 2 [phi:test_sbytes::@4->assert_sbyte#0] -- vbsz1=vbuc1 lda #2 sta assert_sbyte.c //SEG54 [22] phi (signed byte) assert_sbyte::b#5 = (const signed byte) test_sbytes::bf#0 [phi:test_sbytes::@4->assert_sbyte#1] -- vbsz1=vbsc1 @@ -2677,7 +2677,7 @@ print_ln: { jmp b1 //SEG107 print_ln::@1 b1: - //SEG108 [45] (byte*) line_cursor#1 ← (byte*) line_cursor#21 + (byte/signed byte/word/signed word) 40 [ line_cursor#1 char_cursor#2 ] ( main:2::test_sbytes:9::assert_sbyte:12::print_ln:32 [ line_cursor#1 char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:14::print_ln:32 [ line_cursor#1 char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:16::print_ln:32 [ line_cursor#1 char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:18::print_ln:32 [ line_cursor#1 char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:20::print_ln:32 [ line_cursor#1 char_cursor#2 ] main:2::test_bytes:7::assert_byte:49::print_ln:64 [ line_cursor#1 char_cursor#2 ] main:2::test_bytes:7::assert_byte:51::print_ln:64 [ line_cursor#1 char_cursor#2 ] main:2::test_bytes:7::assert_byte:53::print_ln:64 [ line_cursor#1 char_cursor#2 ] ) -- pbuz1=pbuz1_plus_vbuc1 + //SEG108 [45] (byte*) line_cursor#1 ← (byte*) line_cursor#21 + (byte/signed byte/word/signed word/dword/signed dword) 40 [ line_cursor#1 char_cursor#2 ] ( main:2::test_sbytes:9::assert_sbyte:12::print_ln:32 [ line_cursor#1 char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:14::print_ln:32 [ line_cursor#1 char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:16::print_ln:32 [ line_cursor#1 char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:18::print_ln:32 [ line_cursor#1 char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:20::print_ln:32 [ line_cursor#1 char_cursor#2 ] main:2::test_bytes:7::assert_byte:49::print_ln:64 [ line_cursor#1 char_cursor#2 ] main:2::test_bytes:7::assert_byte:51::print_ln:64 [ line_cursor#1 char_cursor#2 ] main:2::test_bytes:7::assert_byte:53::print_ln:64 [ line_cursor#1 char_cursor#2 ] ) -- pbuz1=pbuz1_plus_vbuc1 lda line_cursor clc adc #$28 @@ -2708,18 +2708,18 @@ test_bytes: { //SEG113 [49] call assert_byte param-assignment [ line_cursor#1 ] ( main:2::test_bytes:7 [ line_cursor#1 ] ) //SEG114 [55] phi from test_bytes to assert_byte [phi:test_bytes->assert_byte] assert_byte_from_test_bytes: - //SEG115 [55] phi (byte*) line_cursor#45 = ((byte*))(word/signed word) 1024 [phi:test_bytes->assert_byte#0] -- pbuz1=pbuc1 + //SEG115 [55] phi (byte*) line_cursor#45 = ((byte*))(word/signed word/dword/signed dword) 1024 [phi:test_bytes->assert_byte#0] -- pbuz1=pbuc1 lda #<$400 sta line_cursor lda #>$400 sta line_cursor+1 - //SEG116 [55] phi (byte) assert_byte::c#3 = (byte/signed byte/word/signed word) 0 [phi:test_bytes->assert_byte#1] -- vbuz1=vbuc1 + //SEG116 [55] phi (byte) assert_byte::c#3 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:test_bytes->assert_byte#1] -- vbuz1=vbuc1 lda #0 sta assert_byte.c //SEG117 [55] phi (byte) assert_byte::b#3 = (const byte) test_bytes::bb#0 [phi:test_bytes->assert_byte#2] -- vbuz1=vbuc1 lda #bb sta assert_byte.b - //SEG118 [55] phi (byte*) char_cursor#65 = ((byte*))(word/signed word) 1024 [phi:test_bytes->assert_byte#3] -- pbuz1=pbuc1 + //SEG118 [55] phi (byte*) char_cursor#65 = ((byte*))(word/signed word/dword/signed dword) 1024 [phi:test_bytes->assert_byte#3] -- pbuz1=pbuc1 lda #<$400 sta char_cursor lda #>$400 @@ -2742,7 +2742,7 @@ test_bytes: { //SEG123 [55] phi from test_bytes::@1 to assert_byte [phi:test_bytes::@1->assert_byte] assert_byte_from_b1: //SEG124 [55] phi (byte*) line_cursor#45 = (byte*) line_cursor#1 [phi:test_bytes::@1->assert_byte#0] -- register_copy - //SEG125 [55] phi (byte) assert_byte::c#3 = (byte/signed byte/word/signed word) 2 [phi:test_bytes::@1->assert_byte#1] -- vbuz1=vbuc1 + //SEG125 [55] phi (byte) assert_byte::c#3 = (byte/signed byte/word/signed word/dword/signed dword) 2 [phi:test_bytes::@1->assert_byte#1] -- vbuz1=vbuc1 lda #2 sta assert_byte.c //SEG126 [55] phi (byte) assert_byte::b#3 = (const byte) test_bytes::bc#0 [phi:test_bytes::@1->assert_byte#2] -- vbuz1=vbuc1 @@ -2767,7 +2767,7 @@ test_bytes: { //SEG132 [55] phi from test_bytes::@2 to assert_byte [phi:test_bytes::@2->assert_byte] assert_byte_from_b2: //SEG133 [55] phi (byte*) line_cursor#45 = (byte*) line_cursor#1 [phi:test_bytes::@2->assert_byte#0] -- register_copy - //SEG134 [55] phi (byte) assert_byte::c#3 = (byte/word/signed word) 254 [phi:test_bytes::@2->assert_byte#1] -- vbuz1=vbuc1 + //SEG134 [55] phi (byte) assert_byte::c#3 = (byte/word/signed word/dword/signed dword) 254 [phi:test_bytes::@2->assert_byte#1] -- vbuz1=vbuc1 lda #$fe sta assert_byte.c //SEG135 [55] phi (byte) assert_byte::b#3 = (const byte) test_bytes::bd#0 [phi:test_bytes::@2->assert_byte#2] -- vbuz1=vbuc1 @@ -2884,7 +2884,7 @@ print_cls: { .label sc = $10 //SEG174 [69] phi from print_cls to print_cls::@1 [phi:print_cls->print_cls::@1] b1_from_print_cls: - //SEG175 [69] phi (byte*) print_cls::sc#2 = ((byte*))(word/signed word) 1024 [phi:print_cls->print_cls::@1#0] -- pbuz1=pbuc1 + //SEG175 [69] phi (byte*) print_cls::sc#2 = ((byte*))(word/signed word/dword/signed dword) 1024 [phi:print_cls->print_cls::@1#0] -- pbuz1=pbuc1 lda #<$400 sta sc lda #>$400 @@ -2905,7 +2905,7 @@ print_cls: { bne !+ inc sc+1 !: - //SEG181 [72] if((byte*) print_cls::sc#1!=(word/signed word) 1024+(word/signed word) 1000) goto print_cls::@1 [ print_cls::sc#1 ] ( main:2::print_cls:5 [ print_cls::sc#1 ] ) -- pbuz1_neq_vwuc1_then_la1 + //SEG181 [72] if((byte*) print_cls::sc#1!=(word/signed word/dword/signed dword) 1024+(word/signed word/dword/signed dword) 1000) goto print_cls::@1 [ print_cls::sc#1 ] ( main:2::print_cls:5 [ print_cls::sc#1 ] ) -- pbuz1_neq_vwuc1_then_la1 lda sc+1 cmp #>$400+$3e8 bne b1_from_b1 @@ -2934,28 +2934,28 @@ Removing always clobbered register reg byte y as potential for zp ZP_BYTE:14 [ a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:15 [ assert_byte::c#3 ] Removing always clobbered register reg byte y as potential for zp ZP_BYTE:15 [ assert_byte::c#3 ] Statement [40] *((byte*) char_cursor#2) ← *((byte*) print_str::str#10) [ char_cursor#2 print_str::str#10 ] ( main:2::test_sbytes:9::assert_sbyte:12::print_str:25 [ assert_sbyte::b#5 assert_sbyte::c#5 line_cursor#1 char_cursor#2 print_str::str#10 ] main:2::test_sbytes:9::assert_sbyte:14::print_str:25 [ assert_sbyte::b#5 assert_sbyte::c#5 line_cursor#1 char_cursor#2 print_str::str#10 ] main:2::test_sbytes:9::assert_sbyte:16::print_str:25 [ assert_sbyte::b#5 assert_sbyte::c#5 line_cursor#1 char_cursor#2 print_str::str#10 ] main:2::test_sbytes:9::assert_sbyte:18::print_str:25 [ assert_sbyte::b#5 assert_sbyte::c#5 line_cursor#1 char_cursor#2 print_str::str#10 ] main:2::test_sbytes:9::assert_sbyte:20::print_str:25 [ assert_sbyte::b#5 assert_sbyte::c#5 line_cursor#1 char_cursor#2 print_str::str#10 ] main:2::test_sbytes:9::assert_sbyte:12::print_str:27 [ assert_sbyte::b#5 assert_sbyte::c#5 line_cursor#1 char_cursor#2 print_str::str#10 ] main:2::test_sbytes:9::assert_sbyte:14::print_str:27 [ assert_sbyte::b#5 assert_sbyte::c#5 line_cursor#1 char_cursor#2 print_str::str#10 ] main:2::test_sbytes:9::assert_sbyte:16::print_str:27 [ assert_sbyte::b#5 assert_sbyte::c#5 line_cursor#1 char_cursor#2 print_str::str#10 ] main:2::test_sbytes:9::assert_sbyte:18::print_str:27 [ assert_sbyte::b#5 assert_sbyte::c#5 line_cursor#1 char_cursor#2 print_str::str#10 ] main:2::test_sbytes:9::assert_sbyte:20::print_str:27 [ assert_sbyte::b#5 assert_sbyte::c#5 line_cursor#1 char_cursor#2 print_str::str#10 ] main:2::test_sbytes:9::assert_sbyte:12::print_str:30 [ line_cursor#1 char_cursor#2 print_str::str#10 ] main:2::test_sbytes:9::assert_sbyte:14::print_str:30 [ line_cursor#1 char_cursor#2 print_str::str#10 ] main:2::test_sbytes:9::assert_sbyte:16::print_str:30 [ line_cursor#1 char_cursor#2 print_str::str#10 ] main:2::test_sbytes:9::assert_sbyte:18::print_str:30 [ line_cursor#1 char_cursor#2 print_str::str#10 ] main:2::test_sbytes:9::assert_sbyte:20::print_str:30 [ line_cursor#1 char_cursor#2 print_str::str#10 ] main:2::test_sbytes:9::assert_sbyte:12::print_str:35 [ line_cursor#1 char_cursor#2 print_str::str#10 ] main:2::test_sbytes:9::assert_sbyte:14::print_str:35 [ line_cursor#1 char_cursor#2 print_str::str#10 ] main:2::test_sbytes:9::assert_sbyte:16::print_str:35 [ line_cursor#1 char_cursor#2 print_str::str#10 ] main:2::test_sbytes:9::assert_sbyte:18::print_str:35 [ line_cursor#1 char_cursor#2 print_str::str#10 ] main:2::test_sbytes:9::assert_sbyte:20::print_str:35 [ line_cursor#1 char_cursor#2 print_str::str#10 ] main:2::test_bytes:7::assert_byte:49::print_str:57 [ line_cursor#45 assert_byte::b#3 assert_byte::c#3 char_cursor#2 print_str::str#10 ] main:2::test_bytes:7::assert_byte:51::print_str:57 [ line_cursor#45 assert_byte::b#3 assert_byte::c#3 char_cursor#2 print_str::str#10 ] main:2::test_bytes:7::assert_byte:53::print_str:57 [ line_cursor#45 assert_byte::b#3 assert_byte::c#3 char_cursor#2 print_str::str#10 ] main:2::test_bytes:7::assert_byte:49::print_str:59 [ line_cursor#45 assert_byte::b#3 assert_byte::c#3 char_cursor#2 print_str::str#10 ] main:2::test_bytes:7::assert_byte:51::print_str:59 [ line_cursor#45 assert_byte::b#3 assert_byte::c#3 char_cursor#2 print_str::str#10 ] main:2::test_bytes:7::assert_byte:53::print_str:59 [ line_cursor#45 assert_byte::b#3 assert_byte::c#3 char_cursor#2 print_str::str#10 ] main:2::test_bytes:7::assert_byte:49::print_str:62 [ line_cursor#45 char_cursor#2 print_str::str#10 ] main:2::test_bytes:7::assert_byte:51::print_str:62 [ line_cursor#45 char_cursor#2 print_str::str#10 ] main:2::test_bytes:7::assert_byte:53::print_str:62 [ line_cursor#45 char_cursor#2 print_str::str#10 ] main:2::test_bytes:7::assert_byte:49::print_str:67 [ line_cursor#45 char_cursor#2 print_str::str#10 ] main:2::test_bytes:7::assert_byte:51::print_str:67 [ line_cursor#45 char_cursor#2 print_str::str#10 ] main:2::test_bytes:7::assert_byte:53::print_str:67 [ line_cursor#45 char_cursor#2 print_str::str#10 ] ) always clobbers reg byte a reg byte y -Statement [45] (byte*) line_cursor#1 ← (byte*) line_cursor#21 + (byte/signed byte/word/signed word) 40 [ line_cursor#1 char_cursor#2 ] ( main:2::test_sbytes:9::assert_sbyte:12::print_ln:32 [ line_cursor#1 char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:14::print_ln:32 [ line_cursor#1 char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:16::print_ln:32 [ line_cursor#1 char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:18::print_ln:32 [ line_cursor#1 char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:20::print_ln:32 [ line_cursor#1 char_cursor#2 ] main:2::test_bytes:7::assert_byte:49::print_ln:64 [ line_cursor#1 char_cursor#2 ] main:2::test_bytes:7::assert_byte:51::print_ln:64 [ line_cursor#1 char_cursor#2 ] main:2::test_bytes:7::assert_byte:53::print_ln:64 [ line_cursor#1 char_cursor#2 ] ) always clobbers reg byte a +Statement [45] (byte*) line_cursor#1 ← (byte*) line_cursor#21 + (byte/signed byte/word/signed word/dword/signed dword) 40 [ line_cursor#1 char_cursor#2 ] ( main:2::test_sbytes:9::assert_sbyte:12::print_ln:32 [ line_cursor#1 char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:14::print_ln:32 [ line_cursor#1 char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:16::print_ln:32 [ line_cursor#1 char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:18::print_ln:32 [ line_cursor#1 char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:20::print_ln:32 [ line_cursor#1 char_cursor#2 ] main:2::test_bytes:7::assert_byte:49::print_ln:64 [ line_cursor#1 char_cursor#2 ] main:2::test_bytes:7::assert_byte:51::print_ln:64 [ line_cursor#1 char_cursor#2 ] main:2::test_bytes:7::assert_byte:53::print_ln:64 [ line_cursor#1 char_cursor#2 ] ) always clobbers reg byte a Statement [46] if((byte*) line_cursor#1<(byte*) char_cursor#2) goto print_ln::@1 [ line_cursor#1 char_cursor#2 ] ( main:2::test_sbytes:9::assert_sbyte:12::print_ln:32 [ line_cursor#1 char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:14::print_ln:32 [ line_cursor#1 char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:16::print_ln:32 [ line_cursor#1 char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:18::print_ln:32 [ line_cursor#1 char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:20::print_ln:32 [ line_cursor#1 char_cursor#2 ] main:2::test_bytes:7::assert_byte:49::print_ln:64 [ line_cursor#1 char_cursor#2 ] main:2::test_bytes:7::assert_byte:51::print_ln:64 [ line_cursor#1 char_cursor#2 ] main:2::test_bytes:7::assert_byte:53::print_ln:64 [ line_cursor#1 char_cursor#2 ] ) always clobbers reg byte a Statement [50] (byte*~) char_cursor#88 ← (byte*) line_cursor#1 [ line_cursor#1 char_cursor#88 ] ( main:2::test_bytes:7 [ line_cursor#1 char_cursor#88 ] ) always clobbers reg byte a Statement [52] (byte*~) char_cursor#89 ← (byte*) line_cursor#1 [ line_cursor#1 char_cursor#89 ] ( main:2::test_bytes:7 [ line_cursor#1 char_cursor#89 ] ) always clobbers reg byte a Statement [56] (byte*) print_str::str#1 ← (byte*) assert_byte::msg#3 [ print_str::str#1 char_cursor#65 line_cursor#45 assert_byte::b#3 assert_byte::c#3 ] ( main:2::test_bytes:7::assert_byte:49 [ print_str::str#1 char_cursor#65 line_cursor#45 assert_byte::b#3 assert_byte::c#3 ] main:2::test_bytes:7::assert_byte:51 [ print_str::str#1 char_cursor#65 line_cursor#45 assert_byte::b#3 assert_byte::c#3 ] main:2::test_bytes:7::assert_byte:53 [ print_str::str#1 char_cursor#65 line_cursor#45 assert_byte::b#3 assert_byte::c#3 ] ) always clobbers reg byte a Statement [61] *((const byte*) BGCOL#0) ← (const byte) RED#0 [ char_cursor#2 line_cursor#45 ] ( main:2::test_bytes:7::assert_byte:49 [ char_cursor#2 line_cursor#45 ] main:2::test_bytes:7::assert_byte:51 [ char_cursor#2 line_cursor#45 ] main:2::test_bytes:7::assert_byte:53 [ char_cursor#2 line_cursor#45 ] ) always clobbers reg byte a Statement [70] *((byte*) print_cls::sc#2) ← (byte) ' ' [ print_cls::sc#2 ] ( main:2::print_cls:5 [ print_cls::sc#2 ] ) always clobbers reg byte a reg byte y -Statement [72] if((byte*) print_cls::sc#1!=(word/signed word) 1024+(word/signed word) 1000) goto print_cls::@1 [ print_cls::sc#1 ] ( main:2::print_cls:5 [ print_cls::sc#1 ] ) always clobbers reg byte a +Statement [72] if((byte*) print_cls::sc#1!=(word/signed word/dword/signed dword) 1024+(word/signed word/dword/signed dword) 1000) goto print_cls::@1 [ print_cls::sc#1 ] ( main:2::print_cls:5 [ print_cls::sc#1 ] ) always clobbers reg byte a Statement [6] *((const byte*) BGCOL#0) ← (const byte) GREEN#0 [ ] ( main:2 [ ] ) always clobbers reg byte a Statement [23] (byte*) print_str::str#5 ← (byte*) assert_sbyte::msg#5 [ assert_sbyte::b#5 assert_sbyte::c#5 print_str::str#5 line_cursor#1 ] ( main:2::test_sbytes:9::assert_sbyte:12 [ assert_sbyte::b#5 assert_sbyte::c#5 print_str::str#5 line_cursor#1 ] main:2::test_sbytes:9::assert_sbyte:14 [ assert_sbyte::b#5 assert_sbyte::c#5 print_str::str#5 line_cursor#1 ] main:2::test_sbytes:9::assert_sbyte:16 [ assert_sbyte::b#5 assert_sbyte::c#5 print_str::str#5 line_cursor#1 ] main:2::test_sbytes:9::assert_sbyte:18 [ assert_sbyte::b#5 assert_sbyte::c#5 print_str::str#5 line_cursor#1 ] main:2::test_sbytes:9::assert_sbyte:20 [ assert_sbyte::b#5 assert_sbyte::c#5 print_str::str#5 line_cursor#1 ] ) always clobbers reg byte a Statement [24] (byte*~) char_cursor#82 ← (byte*) line_cursor#1 [ assert_sbyte::b#5 assert_sbyte::c#5 print_str::str#5 char_cursor#82 line_cursor#1 ] ( main:2::test_sbytes:9::assert_sbyte:12 [ assert_sbyte::b#5 assert_sbyte::c#5 print_str::str#5 char_cursor#82 line_cursor#1 ] main:2::test_sbytes:9::assert_sbyte:14 [ assert_sbyte::b#5 assert_sbyte::c#5 print_str::str#5 char_cursor#82 line_cursor#1 ] main:2::test_sbytes:9::assert_sbyte:16 [ assert_sbyte::b#5 assert_sbyte::c#5 print_str::str#5 char_cursor#82 line_cursor#1 ] main:2::test_sbytes:9::assert_sbyte:18 [ assert_sbyte::b#5 assert_sbyte::c#5 print_str::str#5 char_cursor#82 line_cursor#1 ] main:2::test_sbytes:9::assert_sbyte:20 [ assert_sbyte::b#5 assert_sbyte::c#5 print_str::str#5 char_cursor#82 line_cursor#1 ] ) always clobbers reg byte a Statement [29] *((const byte*) BGCOL#0) ← (const byte) RED#0 [ line_cursor#1 char_cursor#2 ] ( main:2::test_sbytes:9::assert_sbyte:12 [ line_cursor#1 char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:14 [ line_cursor#1 char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:16 [ line_cursor#1 char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:18 [ line_cursor#1 char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:20 [ line_cursor#1 char_cursor#2 ] ) always clobbers reg byte a Statement [38] if(*((byte*) print_str::str#10)!=(byte) '@') goto print_str::@2 [ char_cursor#2 print_str::str#10 ] ( main:2::test_sbytes:9::assert_sbyte:12::print_str:25 [ assert_sbyte::b#5 assert_sbyte::c#5 line_cursor#1 char_cursor#2 print_str::str#10 ] main:2::test_sbytes:9::assert_sbyte:14::print_str:25 [ assert_sbyte::b#5 assert_sbyte::c#5 line_cursor#1 char_cursor#2 print_str::str#10 ] main:2::test_sbytes:9::assert_sbyte:16::print_str:25 [ assert_sbyte::b#5 assert_sbyte::c#5 line_cursor#1 char_cursor#2 print_str::str#10 ] main:2::test_sbytes:9::assert_sbyte:18::print_str:25 [ assert_sbyte::b#5 assert_sbyte::c#5 line_cursor#1 char_cursor#2 print_str::str#10 ] main:2::test_sbytes:9::assert_sbyte:20::print_str:25 [ assert_sbyte::b#5 assert_sbyte::c#5 line_cursor#1 char_cursor#2 print_str::str#10 ] main:2::test_sbytes:9::assert_sbyte:12::print_str:27 [ assert_sbyte::b#5 assert_sbyte::c#5 line_cursor#1 char_cursor#2 print_str::str#10 ] main:2::test_sbytes:9::assert_sbyte:14::print_str:27 [ assert_sbyte::b#5 assert_sbyte::c#5 line_cursor#1 char_cursor#2 print_str::str#10 ] main:2::test_sbytes:9::assert_sbyte:16::print_str:27 [ assert_sbyte::b#5 assert_sbyte::c#5 line_cursor#1 char_cursor#2 print_str::str#10 ] main:2::test_sbytes:9::assert_sbyte:18::print_str:27 [ assert_sbyte::b#5 assert_sbyte::c#5 line_cursor#1 char_cursor#2 print_str::str#10 ] main:2::test_sbytes:9::assert_sbyte:20::print_str:27 [ assert_sbyte::b#5 assert_sbyte::c#5 line_cursor#1 char_cursor#2 print_str::str#10 ] main:2::test_sbytes:9::assert_sbyte:12::print_str:30 [ line_cursor#1 char_cursor#2 print_str::str#10 ] main:2::test_sbytes:9::assert_sbyte:14::print_str:30 [ line_cursor#1 char_cursor#2 print_str::str#10 ] main:2::test_sbytes:9::assert_sbyte:16::print_str:30 [ line_cursor#1 char_cursor#2 print_str::str#10 ] main:2::test_sbytes:9::assert_sbyte:18::print_str:30 [ line_cursor#1 char_cursor#2 print_str::str#10 ] main:2::test_sbytes:9::assert_sbyte:20::print_str:30 [ line_cursor#1 char_cursor#2 print_str::str#10 ] main:2::test_sbytes:9::assert_sbyte:12::print_str:35 [ line_cursor#1 char_cursor#2 print_str::str#10 ] main:2::test_sbytes:9::assert_sbyte:14::print_str:35 [ line_cursor#1 char_cursor#2 print_str::str#10 ] main:2::test_sbytes:9::assert_sbyte:16::print_str:35 [ line_cursor#1 char_cursor#2 print_str::str#10 ] main:2::test_sbytes:9::assert_sbyte:18::print_str:35 [ line_cursor#1 char_cursor#2 print_str::str#10 ] main:2::test_sbytes:9::assert_sbyte:20::print_str:35 [ line_cursor#1 char_cursor#2 print_str::str#10 ] main:2::test_bytes:7::assert_byte:49::print_str:57 [ line_cursor#45 assert_byte::b#3 assert_byte::c#3 char_cursor#2 print_str::str#10 ] main:2::test_bytes:7::assert_byte:51::print_str:57 [ line_cursor#45 assert_byte::b#3 assert_byte::c#3 char_cursor#2 print_str::str#10 ] main:2::test_bytes:7::assert_byte:53::print_str:57 [ line_cursor#45 assert_byte::b#3 assert_byte::c#3 char_cursor#2 print_str::str#10 ] main:2::test_bytes:7::assert_byte:49::print_str:59 [ line_cursor#45 assert_byte::b#3 assert_byte::c#3 char_cursor#2 print_str::str#10 ] main:2::test_bytes:7::assert_byte:51::print_str:59 [ line_cursor#45 assert_byte::b#3 assert_byte::c#3 char_cursor#2 print_str::str#10 ] main:2::test_bytes:7::assert_byte:53::print_str:59 [ line_cursor#45 assert_byte::b#3 assert_byte::c#3 char_cursor#2 print_str::str#10 ] main:2::test_bytes:7::assert_byte:49::print_str:62 [ line_cursor#45 char_cursor#2 print_str::str#10 ] main:2::test_bytes:7::assert_byte:51::print_str:62 [ line_cursor#45 char_cursor#2 print_str::str#10 ] main:2::test_bytes:7::assert_byte:53::print_str:62 [ line_cursor#45 char_cursor#2 print_str::str#10 ] main:2::test_bytes:7::assert_byte:49::print_str:67 [ line_cursor#45 char_cursor#2 print_str::str#10 ] main:2::test_bytes:7::assert_byte:51::print_str:67 [ line_cursor#45 char_cursor#2 print_str::str#10 ] main:2::test_bytes:7::assert_byte:53::print_str:67 [ line_cursor#45 char_cursor#2 print_str::str#10 ] ) always clobbers reg byte a reg byte y Statement [40] *((byte*) char_cursor#2) ← *((byte*) print_str::str#10) [ char_cursor#2 print_str::str#10 ] ( main:2::test_sbytes:9::assert_sbyte:12::print_str:25 [ assert_sbyte::b#5 assert_sbyte::c#5 line_cursor#1 char_cursor#2 print_str::str#10 ] main:2::test_sbytes:9::assert_sbyte:14::print_str:25 [ assert_sbyte::b#5 assert_sbyte::c#5 line_cursor#1 char_cursor#2 print_str::str#10 ] main:2::test_sbytes:9::assert_sbyte:16::print_str:25 [ assert_sbyte::b#5 assert_sbyte::c#5 line_cursor#1 char_cursor#2 print_str::str#10 ] main:2::test_sbytes:9::assert_sbyte:18::print_str:25 [ assert_sbyte::b#5 assert_sbyte::c#5 line_cursor#1 char_cursor#2 print_str::str#10 ] main:2::test_sbytes:9::assert_sbyte:20::print_str:25 [ assert_sbyte::b#5 assert_sbyte::c#5 line_cursor#1 char_cursor#2 print_str::str#10 ] main:2::test_sbytes:9::assert_sbyte:12::print_str:27 [ assert_sbyte::b#5 assert_sbyte::c#5 line_cursor#1 char_cursor#2 print_str::str#10 ] main:2::test_sbytes:9::assert_sbyte:14::print_str:27 [ assert_sbyte::b#5 assert_sbyte::c#5 line_cursor#1 char_cursor#2 print_str::str#10 ] main:2::test_sbytes:9::assert_sbyte:16::print_str:27 [ assert_sbyte::b#5 assert_sbyte::c#5 line_cursor#1 char_cursor#2 print_str::str#10 ] main:2::test_sbytes:9::assert_sbyte:18::print_str:27 [ assert_sbyte::b#5 assert_sbyte::c#5 line_cursor#1 char_cursor#2 print_str::str#10 ] main:2::test_sbytes:9::assert_sbyte:20::print_str:27 [ assert_sbyte::b#5 assert_sbyte::c#5 line_cursor#1 char_cursor#2 print_str::str#10 ] main:2::test_sbytes:9::assert_sbyte:12::print_str:30 [ line_cursor#1 char_cursor#2 print_str::str#10 ] main:2::test_sbytes:9::assert_sbyte:14::print_str:30 [ line_cursor#1 char_cursor#2 print_str::str#10 ] main:2::test_sbytes:9::assert_sbyte:16::print_str:30 [ line_cursor#1 char_cursor#2 print_str::str#10 ] main:2::test_sbytes:9::assert_sbyte:18::print_str:30 [ line_cursor#1 char_cursor#2 print_str::str#10 ] main:2::test_sbytes:9::assert_sbyte:20::print_str:30 [ line_cursor#1 char_cursor#2 print_str::str#10 ] main:2::test_sbytes:9::assert_sbyte:12::print_str:35 [ line_cursor#1 char_cursor#2 print_str::str#10 ] main:2::test_sbytes:9::assert_sbyte:14::print_str:35 [ line_cursor#1 char_cursor#2 print_str::str#10 ] main:2::test_sbytes:9::assert_sbyte:16::print_str:35 [ line_cursor#1 char_cursor#2 print_str::str#10 ] main:2::test_sbytes:9::assert_sbyte:18::print_str:35 [ line_cursor#1 char_cursor#2 print_str::str#10 ] main:2::test_sbytes:9::assert_sbyte:20::print_str:35 [ line_cursor#1 char_cursor#2 print_str::str#10 ] main:2::test_bytes:7::assert_byte:49::print_str:57 [ line_cursor#45 assert_byte::b#3 assert_byte::c#3 char_cursor#2 print_str::str#10 ] main:2::test_bytes:7::assert_byte:51::print_str:57 [ line_cursor#45 assert_byte::b#3 assert_byte::c#3 char_cursor#2 print_str::str#10 ] main:2::test_bytes:7::assert_byte:53::print_str:57 [ line_cursor#45 assert_byte::b#3 assert_byte::c#3 char_cursor#2 print_str::str#10 ] main:2::test_bytes:7::assert_byte:49::print_str:59 [ line_cursor#45 assert_byte::b#3 assert_byte::c#3 char_cursor#2 print_str::str#10 ] main:2::test_bytes:7::assert_byte:51::print_str:59 [ line_cursor#45 assert_byte::b#3 assert_byte::c#3 char_cursor#2 print_str::str#10 ] main:2::test_bytes:7::assert_byte:53::print_str:59 [ line_cursor#45 assert_byte::b#3 assert_byte::c#3 char_cursor#2 print_str::str#10 ] main:2::test_bytes:7::assert_byte:49::print_str:62 [ line_cursor#45 char_cursor#2 print_str::str#10 ] main:2::test_bytes:7::assert_byte:51::print_str:62 [ line_cursor#45 char_cursor#2 print_str::str#10 ] main:2::test_bytes:7::assert_byte:53::print_str:62 [ line_cursor#45 char_cursor#2 print_str::str#10 ] main:2::test_bytes:7::assert_byte:49::print_str:67 [ line_cursor#45 char_cursor#2 print_str::str#10 ] main:2::test_bytes:7::assert_byte:51::print_str:67 [ line_cursor#45 char_cursor#2 print_str::str#10 ] main:2::test_bytes:7::assert_byte:53::print_str:67 [ line_cursor#45 char_cursor#2 print_str::str#10 ] ) always clobbers reg byte a reg byte y -Statement [45] (byte*) line_cursor#1 ← (byte*) line_cursor#21 + (byte/signed byte/word/signed word) 40 [ line_cursor#1 char_cursor#2 ] ( main:2::test_sbytes:9::assert_sbyte:12::print_ln:32 [ line_cursor#1 char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:14::print_ln:32 [ line_cursor#1 char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:16::print_ln:32 [ line_cursor#1 char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:18::print_ln:32 [ line_cursor#1 char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:20::print_ln:32 [ line_cursor#1 char_cursor#2 ] main:2::test_bytes:7::assert_byte:49::print_ln:64 [ line_cursor#1 char_cursor#2 ] main:2::test_bytes:7::assert_byte:51::print_ln:64 [ line_cursor#1 char_cursor#2 ] main:2::test_bytes:7::assert_byte:53::print_ln:64 [ line_cursor#1 char_cursor#2 ] ) always clobbers reg byte a +Statement [45] (byte*) line_cursor#1 ← (byte*) line_cursor#21 + (byte/signed byte/word/signed word/dword/signed dword) 40 [ line_cursor#1 char_cursor#2 ] ( main:2::test_sbytes:9::assert_sbyte:12::print_ln:32 [ line_cursor#1 char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:14::print_ln:32 [ line_cursor#1 char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:16::print_ln:32 [ line_cursor#1 char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:18::print_ln:32 [ line_cursor#1 char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:20::print_ln:32 [ line_cursor#1 char_cursor#2 ] main:2::test_bytes:7::assert_byte:49::print_ln:64 [ line_cursor#1 char_cursor#2 ] main:2::test_bytes:7::assert_byte:51::print_ln:64 [ line_cursor#1 char_cursor#2 ] main:2::test_bytes:7::assert_byte:53::print_ln:64 [ line_cursor#1 char_cursor#2 ] ) always clobbers reg byte a Statement [46] if((byte*) line_cursor#1<(byte*) char_cursor#2) goto print_ln::@1 [ line_cursor#1 char_cursor#2 ] ( main:2::test_sbytes:9::assert_sbyte:12::print_ln:32 [ line_cursor#1 char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:14::print_ln:32 [ line_cursor#1 char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:16::print_ln:32 [ line_cursor#1 char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:18::print_ln:32 [ line_cursor#1 char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:20::print_ln:32 [ line_cursor#1 char_cursor#2 ] main:2::test_bytes:7::assert_byte:49::print_ln:64 [ line_cursor#1 char_cursor#2 ] main:2::test_bytes:7::assert_byte:51::print_ln:64 [ line_cursor#1 char_cursor#2 ] main:2::test_bytes:7::assert_byte:53::print_ln:64 [ line_cursor#1 char_cursor#2 ] ) always clobbers reg byte a Statement [50] (byte*~) char_cursor#88 ← (byte*) line_cursor#1 [ line_cursor#1 char_cursor#88 ] ( main:2::test_bytes:7 [ line_cursor#1 char_cursor#88 ] ) always clobbers reg byte a Statement [52] (byte*~) char_cursor#89 ← (byte*) line_cursor#1 [ line_cursor#1 char_cursor#89 ] ( main:2::test_bytes:7 [ line_cursor#1 char_cursor#89 ] ) always clobbers reg byte a Statement [56] (byte*) print_str::str#1 ← (byte*) assert_byte::msg#3 [ print_str::str#1 char_cursor#65 line_cursor#45 assert_byte::b#3 assert_byte::c#3 ] ( main:2::test_bytes:7::assert_byte:49 [ print_str::str#1 char_cursor#65 line_cursor#45 assert_byte::b#3 assert_byte::c#3 ] main:2::test_bytes:7::assert_byte:51 [ print_str::str#1 char_cursor#65 line_cursor#45 assert_byte::b#3 assert_byte::c#3 ] main:2::test_bytes:7::assert_byte:53 [ print_str::str#1 char_cursor#65 line_cursor#45 assert_byte::b#3 assert_byte::c#3 ] ) always clobbers reg byte a Statement [61] *((const byte*) BGCOL#0) ← (const byte) RED#0 [ char_cursor#2 line_cursor#45 ] ( main:2::test_bytes:7::assert_byte:49 [ char_cursor#2 line_cursor#45 ] main:2::test_bytes:7::assert_byte:51 [ char_cursor#2 line_cursor#45 ] main:2::test_bytes:7::assert_byte:53 [ char_cursor#2 line_cursor#45 ] ) always clobbers reg byte a Statement [70] *((byte*) print_cls::sc#2) ← (byte) ' ' [ print_cls::sc#2 ] ( main:2::print_cls:5 [ print_cls::sc#2 ] ) always clobbers reg byte a reg byte y -Statement [72] if((byte*) print_cls::sc#1!=(word/signed word) 1024+(word/signed word) 1000) goto print_cls::@1 [ print_cls::sc#1 ] ( main:2::print_cls:5 [ print_cls::sc#1 ] ) always clobbers reg byte a +Statement [72] if((byte*) print_cls::sc#1!=(word/signed word/dword/signed dword) 1024+(word/signed word/dword/signed dword) 1000) goto print_cls::@1 [ print_cls::sc#1 ] ( main:2::print_cls:5 [ print_cls::sc#1 ] ) always clobbers reg byte a Potential registers zp ZP_WORD:2 [ assert_sbyte::msg#5 ] : zp ZP_WORD:2 , Potential registers zp ZP_BYTE:4 [ assert_sbyte::b#5 ] : zp ZP_BYTE:4 , reg byte x , Potential registers zp ZP_BYTE:5 [ assert_sbyte::c#5 ] : zp ZP_BYTE:5 , reg byte x , @@ -3067,7 +3067,7 @@ test_sbytes: { //SEG23 [12] call assert_sbyte param-assignment [ line_cursor#1 ] ( main:2::test_sbytes:9 [ line_cursor#1 ] ) //SEG24 [22] phi from test_sbytes to assert_sbyte [phi:test_sbytes->assert_sbyte] assert_sbyte_from_test_sbytes: - //SEG25 [22] phi (signed byte) assert_sbyte::c#5 = (byte/signed byte/word/signed word) 0 [phi:test_sbytes->assert_sbyte#0] -- vbsz1=vbuc1 + //SEG25 [22] phi (signed byte) assert_sbyte::c#5 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:test_sbytes->assert_sbyte#0] -- vbsz1=vbuc1 lda #0 sta assert_sbyte.c //SEG26 [22] phi (signed byte) assert_sbyte::b#5 = (const signed byte) test_sbytes::bb#0 [phi:test_sbytes->assert_sbyte#1] -- vbsxx=vbsc1 @@ -3086,7 +3086,7 @@ test_sbytes: { //SEG30 [14] call assert_sbyte param-assignment [ line_cursor#1 ] ( main:2::test_sbytes:9 [ line_cursor#1 ] ) //SEG31 [22] phi from test_sbytes::@1 to assert_sbyte [phi:test_sbytes::@1->assert_sbyte] assert_sbyte_from_b1: - //SEG32 [22] phi (signed byte) assert_sbyte::c#5 = (byte/signed byte/word/signed word) 2 [phi:test_sbytes::@1->assert_sbyte#0] -- vbsz1=vbuc1 + //SEG32 [22] phi (signed byte) assert_sbyte::c#5 = (byte/signed byte/word/signed word/dword/signed dword) 2 [phi:test_sbytes::@1->assert_sbyte#0] -- vbsz1=vbuc1 lda #2 sta assert_sbyte.c //SEG33 [22] phi (signed byte) assert_sbyte::b#5 = (const signed byte) test_sbytes::bc#0 [phi:test_sbytes::@1->assert_sbyte#1] -- vbsxx=vbsc1 @@ -3105,7 +3105,7 @@ test_sbytes: { //SEG37 [16] call assert_sbyte param-assignment [ line_cursor#1 ] ( main:2::test_sbytes:9 [ line_cursor#1 ] ) //SEG38 [22] phi from test_sbytes::@2 to assert_sbyte [phi:test_sbytes::@2->assert_sbyte] assert_sbyte_from_b2: - //SEG39 [22] phi (signed byte) assert_sbyte::c#5 = -(byte/signed byte/word/signed word) 2 [phi:test_sbytes::@2->assert_sbyte#0] -- vbsz1=vbsc1 + //SEG39 [22] phi (signed byte) assert_sbyte::c#5 = -(byte/signed byte/word/signed word/dword/signed dword) 2 [phi:test_sbytes::@2->assert_sbyte#0] -- vbsz1=vbsc1 lda #-2 sta assert_sbyte.c //SEG40 [22] phi (signed byte) assert_sbyte::b#5 = (const signed byte) test_sbytes::bd#0 [phi:test_sbytes::@2->assert_sbyte#1] -- vbsxx=vbsc1 @@ -3124,7 +3124,7 @@ test_sbytes: { //SEG44 [18] call assert_sbyte param-assignment [ line_cursor#1 ] ( main:2::test_sbytes:9 [ line_cursor#1 ] ) //SEG45 [22] phi from test_sbytes::@3 to assert_sbyte [phi:test_sbytes::@3->assert_sbyte] assert_sbyte_from_b3: - //SEG46 [22] phi (signed byte) assert_sbyte::c#5 = (byte/signed byte/word/signed word) 2 [phi:test_sbytes::@3->assert_sbyte#0] -- vbsz1=vbuc1 + //SEG46 [22] phi (signed byte) assert_sbyte::c#5 = (byte/signed byte/word/signed word/dword/signed dword) 2 [phi:test_sbytes::@3->assert_sbyte#0] -- vbsz1=vbuc1 lda #2 sta assert_sbyte.c //SEG47 [22] phi (signed byte) assert_sbyte::b#5 = (const signed byte) test_sbytes::be#0 [phi:test_sbytes::@3->assert_sbyte#1] -- vbsxx=vbsc1 @@ -3143,7 +3143,7 @@ test_sbytes: { //SEG51 [20] call assert_sbyte param-assignment [ ] ( main:2::test_sbytes:9 [ ] ) //SEG52 [22] phi from test_sbytes::@4 to assert_sbyte [phi:test_sbytes::@4->assert_sbyte] assert_sbyte_from_b4: - //SEG53 [22] phi (signed byte) assert_sbyte::c#5 = (byte/signed byte/word/signed word) 2 [phi:test_sbytes::@4->assert_sbyte#0] -- vbsz1=vbuc1 + //SEG53 [22] phi (signed byte) assert_sbyte::c#5 = (byte/signed byte/word/signed word/dword/signed dword) 2 [phi:test_sbytes::@4->assert_sbyte#0] -- vbsz1=vbuc1 lda #2 sta assert_sbyte.c //SEG54 [22] phi (signed byte) assert_sbyte::b#5 = (const signed byte) test_sbytes::bf#0 [phi:test_sbytes::@4->assert_sbyte#1] -- vbsxx=vbsc1 @@ -3307,7 +3307,7 @@ print_ln: { jmp b1 //SEG107 print_ln::@1 b1: - //SEG108 [45] (byte*) line_cursor#1 ← (byte*) line_cursor#21 + (byte/signed byte/word/signed word) 40 [ line_cursor#1 char_cursor#2 ] ( main:2::test_sbytes:9::assert_sbyte:12::print_ln:32 [ line_cursor#1 char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:14::print_ln:32 [ line_cursor#1 char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:16::print_ln:32 [ line_cursor#1 char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:18::print_ln:32 [ line_cursor#1 char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:20::print_ln:32 [ line_cursor#1 char_cursor#2 ] main:2::test_bytes:7::assert_byte:49::print_ln:64 [ line_cursor#1 char_cursor#2 ] main:2::test_bytes:7::assert_byte:51::print_ln:64 [ line_cursor#1 char_cursor#2 ] main:2::test_bytes:7::assert_byte:53::print_ln:64 [ line_cursor#1 char_cursor#2 ] ) -- pbuz1=pbuz1_plus_vbuc1 + //SEG108 [45] (byte*) line_cursor#1 ← (byte*) line_cursor#21 + (byte/signed byte/word/signed word/dword/signed dword) 40 [ line_cursor#1 char_cursor#2 ] ( main:2::test_sbytes:9::assert_sbyte:12::print_ln:32 [ line_cursor#1 char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:14::print_ln:32 [ line_cursor#1 char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:16::print_ln:32 [ line_cursor#1 char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:18::print_ln:32 [ line_cursor#1 char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:20::print_ln:32 [ line_cursor#1 char_cursor#2 ] main:2::test_bytes:7::assert_byte:49::print_ln:64 [ line_cursor#1 char_cursor#2 ] main:2::test_bytes:7::assert_byte:51::print_ln:64 [ line_cursor#1 char_cursor#2 ] main:2::test_bytes:7::assert_byte:53::print_ln:64 [ line_cursor#1 char_cursor#2 ] ) -- pbuz1=pbuz1_plus_vbuc1 lda line_cursor clc adc #$28 @@ -3338,17 +3338,17 @@ test_bytes: { //SEG113 [49] call assert_byte param-assignment [ line_cursor#1 ] ( main:2::test_bytes:7 [ line_cursor#1 ] ) //SEG114 [55] phi from test_bytes to assert_byte [phi:test_bytes->assert_byte] assert_byte_from_test_bytes: - //SEG115 [55] phi (byte*) line_cursor#45 = ((byte*))(word/signed word) 1024 [phi:test_bytes->assert_byte#0] -- pbuz1=pbuc1 + //SEG115 [55] phi (byte*) line_cursor#45 = ((byte*))(word/signed word/dword/signed dword) 1024 [phi:test_bytes->assert_byte#0] -- pbuz1=pbuc1 lda #<$400 sta line_cursor lda #>$400 sta line_cursor+1 - //SEG116 [55] phi (byte) assert_byte::c#3 = (byte/signed byte/word/signed word) 0 [phi:test_bytes->assert_byte#1] -- vbuz1=vbuc1 + //SEG116 [55] phi (byte) assert_byte::c#3 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:test_bytes->assert_byte#1] -- vbuz1=vbuc1 lda #0 sta assert_byte.c //SEG117 [55] phi (byte) assert_byte::b#3 = (const byte) test_bytes::bb#0 [phi:test_bytes->assert_byte#2] -- vbuxx=vbuc1 ldx #bb - //SEG118 [55] phi (byte*) char_cursor#65 = ((byte*))(word/signed word) 1024 [phi:test_bytes->assert_byte#3] -- pbuz1=pbuc1 + //SEG118 [55] phi (byte*) char_cursor#65 = ((byte*))(word/signed word/dword/signed dword) 1024 [phi:test_bytes->assert_byte#3] -- pbuz1=pbuc1 lda #<$400 sta char_cursor lda #>$400 @@ -3371,7 +3371,7 @@ test_bytes: { //SEG123 [55] phi from test_bytes::@1 to assert_byte [phi:test_bytes::@1->assert_byte] assert_byte_from_b1: //SEG124 [55] phi (byte*) line_cursor#45 = (byte*) line_cursor#1 [phi:test_bytes::@1->assert_byte#0] -- register_copy - //SEG125 [55] phi (byte) assert_byte::c#3 = (byte/signed byte/word/signed word) 2 [phi:test_bytes::@1->assert_byte#1] -- vbuz1=vbuc1 + //SEG125 [55] phi (byte) assert_byte::c#3 = (byte/signed byte/word/signed word/dword/signed dword) 2 [phi:test_bytes::@1->assert_byte#1] -- vbuz1=vbuc1 lda #2 sta assert_byte.c //SEG126 [55] phi (byte) assert_byte::b#3 = (const byte) test_bytes::bc#0 [phi:test_bytes::@1->assert_byte#2] -- vbuxx=vbuc1 @@ -3395,7 +3395,7 @@ test_bytes: { //SEG132 [55] phi from test_bytes::@2 to assert_byte [phi:test_bytes::@2->assert_byte] assert_byte_from_b2: //SEG133 [55] phi (byte*) line_cursor#45 = (byte*) line_cursor#1 [phi:test_bytes::@2->assert_byte#0] -- register_copy - //SEG134 [55] phi (byte) assert_byte::c#3 = (byte/word/signed word) 254 [phi:test_bytes::@2->assert_byte#1] -- vbuz1=vbuc1 + //SEG134 [55] phi (byte) assert_byte::c#3 = (byte/word/signed word/dword/signed dword) 254 [phi:test_bytes::@2->assert_byte#1] -- vbuz1=vbuc1 lda #$fe sta assert_byte.c //SEG135 [55] phi (byte) assert_byte::b#3 = (const byte) test_bytes::bd#0 [phi:test_bytes::@2->assert_byte#2] -- vbuxx=vbuc1 @@ -3506,7 +3506,7 @@ print_cls: { .label sc = 2 //SEG174 [69] phi from print_cls to print_cls::@1 [phi:print_cls->print_cls::@1] b1_from_print_cls: - //SEG175 [69] phi (byte*) print_cls::sc#2 = ((byte*))(word/signed word) 1024 [phi:print_cls->print_cls::@1#0] -- pbuz1=pbuc1 + //SEG175 [69] phi (byte*) print_cls::sc#2 = ((byte*))(word/signed word/dword/signed dword) 1024 [phi:print_cls->print_cls::@1#0] -- pbuz1=pbuc1 lda #<$400 sta sc lda #>$400 @@ -3527,7 +3527,7 @@ print_cls: { bne !+ inc sc+1 !: - //SEG181 [72] if((byte*) print_cls::sc#1!=(word/signed word) 1024+(word/signed word) 1000) goto print_cls::@1 [ print_cls::sc#1 ] ( main:2::print_cls:5 [ print_cls::sc#1 ] ) -- pbuz1_neq_vwuc1_then_la1 + //SEG181 [72] if((byte*) print_cls::sc#1!=(word/signed word/dword/signed dword) 1024+(word/signed word/dword/signed dword) 1000) goto print_cls::@1 [ print_cls::sc#1 ] ( main:2::print_cls:5 [ print_cls::sc#1 ] ) -- pbuz1_neq_vwuc1_then_la1 lda sc+1 cmp #>$400+$3e8 bne b1_from_b1 @@ -3663,11 +3663,11 @@ FINAL SYMBOL TABLE (label) @begin (label) @end (byte*) BGCOL -(const byte*) BGCOL#0 BGCOL = ((byte*))(word) 53281 +(const byte*) BGCOL#0 BGCOL = ((byte*))(word/dword/signed dword) 53281 (byte) GREEN -(const byte) GREEN#0 GREEN = (byte/signed byte/word/signed word) 5 +(const byte) GREEN#0 GREEN = (byte/signed byte/word/signed word/dword/signed dword) 5 (byte) RED -(const byte) RED#0 RED = (byte/signed byte/word/signed word) 2 +(const byte) RED#0 RED = (byte/signed byte/word/signed word/dword/signed dword) 2 (void()) assert_byte((byte*) assert_byte::msg , (byte) assert_byte::b , (byte) assert_byte::c) (label) assert_byte::@1 (label) assert_byte::@2 @@ -3741,11 +3741,11 @@ FINAL SYMBOL TABLE (label) test_bytes::@2 (label) test_bytes::@return (byte) test_bytes::bb -(const byte) test_bytes::bb#0 bb = (byte/signed byte/word/signed word) 0 +(const byte) test_bytes::bb#0 bb = (byte/signed byte/word/signed word/dword/signed dword) 0 (byte) test_bytes::bc -(const byte) test_bytes::bc#0 bc = (const byte) test_bytes::bb#0+(byte/signed byte/word/signed word) 2 +(const byte) test_bytes::bc#0 bc = (const byte) test_bytes::bb#0+(byte/signed byte/word/signed word/dword/signed dword) 2 (byte) test_bytes::bd -(const byte) test_bytes::bd#0 bd = ((byte))(const byte) test_bytes::bc#0-(byte/signed byte/word/signed word) 4 +(const byte) test_bytes::bd#0 bd = ((byte))(const byte) test_bytes::bc#0-(byte/signed byte/word/signed word/dword/signed dword) 4 (const string) test_bytes::msg msg = (string) "0=0@" (const string) test_bytes::msg1 msg1 = (string) "0+2=2@" (const string) test_bytes::msg2 msg2 = (string) "0+2-4=254@" @@ -3756,15 +3756,15 @@ FINAL SYMBOL TABLE (label) test_sbytes::@4 (label) test_sbytes::@return (signed byte) test_sbytes::bb -(const signed byte) test_sbytes::bb#0 bb = (byte/signed byte/word/signed word) 0 +(const signed byte) test_sbytes::bb#0 bb = (byte/signed byte/word/signed word/dword/signed dword) 0 (signed byte) test_sbytes::bc -(const signed byte) test_sbytes::bc#0 bc = (const signed byte) test_sbytes::bb#0+(byte/signed byte/word/signed word) 2 +(const signed byte) test_sbytes::bc#0 bc = (const signed byte) test_sbytes::bb#0+(byte/signed byte/word/signed word/dword/signed dword) 2 (signed byte) test_sbytes::bd -(const signed byte) test_sbytes::bd#0 bd = (const signed byte) test_sbytes::bc#0-(byte/signed byte/word/signed word) 4 +(const signed byte) test_sbytes::bd#0 bd = (const signed byte) test_sbytes::bc#0-(byte/signed byte/word/signed word/dword/signed dword) 4 (signed byte) test_sbytes::be (const signed byte) test_sbytes::be#0 be = -(const signed byte) test_sbytes::bd#0 (signed byte) test_sbytes::bf -(const signed byte) test_sbytes::bf#0 bf = ((signed byte))-(byte/signed byte/word/signed word) 127-(byte/signed byte/word/signed word) 127 +(const signed byte) test_sbytes::bf#0 bf = ((signed byte))-(byte/signed byte/word/signed word/dword/signed dword) 127-(byte/signed byte/word/signed word/dword/signed dword) 127 (const string) test_sbytes::msg msg = (string) "0=0@" (const string) test_sbytes::msg1 msg1 = (string) "0+2=2@" (const string) test_sbytes::msg2 msg2 = (string) "0+2-4=-2@" @@ -3830,7 +3830,7 @@ test_sbytes: { .const be = -bd //SEG23 [12] call assert_sbyte param-assignment [ line_cursor#1 ] ( main:2::test_sbytes:9 [ line_cursor#1 ] ) //SEG24 [22] phi from test_sbytes to assert_sbyte [phi:test_sbytes->assert_sbyte] - //SEG25 [22] phi (signed byte) assert_sbyte::c#5 = (byte/signed byte/word/signed word) 0 [phi:test_sbytes->assert_sbyte#0] -- vbsz1=vbuc1 + //SEG25 [22] phi (signed byte) assert_sbyte::c#5 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:test_sbytes->assert_sbyte#0] -- vbsz1=vbuc1 lda #0 sta assert_sbyte.c //SEG26 [22] phi (signed byte) assert_sbyte::b#5 = (const signed byte) test_sbytes::bb#0 [phi:test_sbytes->assert_sbyte#1] -- vbsxx=vbsc1 @@ -3845,7 +3845,7 @@ test_sbytes: { //SEG29 test_sbytes::@1 //SEG30 [14] call assert_sbyte param-assignment [ line_cursor#1 ] ( main:2::test_sbytes:9 [ line_cursor#1 ] ) //SEG31 [22] phi from test_sbytes::@1 to assert_sbyte [phi:test_sbytes::@1->assert_sbyte] - //SEG32 [22] phi (signed byte) assert_sbyte::c#5 = (byte/signed byte/word/signed word) 2 [phi:test_sbytes::@1->assert_sbyte#0] -- vbsz1=vbuc1 + //SEG32 [22] phi (signed byte) assert_sbyte::c#5 = (byte/signed byte/word/signed word/dword/signed dword) 2 [phi:test_sbytes::@1->assert_sbyte#0] -- vbsz1=vbuc1 lda #2 sta assert_sbyte.c //SEG33 [22] phi (signed byte) assert_sbyte::b#5 = (const signed byte) test_sbytes::bc#0 [phi:test_sbytes::@1->assert_sbyte#1] -- vbsxx=vbsc1 @@ -3860,7 +3860,7 @@ test_sbytes: { //SEG36 test_sbytes::@2 //SEG37 [16] call assert_sbyte param-assignment [ line_cursor#1 ] ( main:2::test_sbytes:9 [ line_cursor#1 ] ) //SEG38 [22] phi from test_sbytes::@2 to assert_sbyte [phi:test_sbytes::@2->assert_sbyte] - //SEG39 [22] phi (signed byte) assert_sbyte::c#5 = -(byte/signed byte/word/signed word) 2 [phi:test_sbytes::@2->assert_sbyte#0] -- vbsz1=vbsc1 + //SEG39 [22] phi (signed byte) assert_sbyte::c#5 = -(byte/signed byte/word/signed word/dword/signed dword) 2 [phi:test_sbytes::@2->assert_sbyte#0] -- vbsz1=vbsc1 lda #-2 sta assert_sbyte.c //SEG40 [22] phi (signed byte) assert_sbyte::b#5 = (const signed byte) test_sbytes::bd#0 [phi:test_sbytes::@2->assert_sbyte#1] -- vbsxx=vbsc1 @@ -3875,7 +3875,7 @@ test_sbytes: { //SEG43 test_sbytes::@3 //SEG44 [18] call assert_sbyte param-assignment [ line_cursor#1 ] ( main:2::test_sbytes:9 [ line_cursor#1 ] ) //SEG45 [22] phi from test_sbytes::@3 to assert_sbyte [phi:test_sbytes::@3->assert_sbyte] - //SEG46 [22] phi (signed byte) assert_sbyte::c#5 = (byte/signed byte/word/signed word) 2 [phi:test_sbytes::@3->assert_sbyte#0] -- vbsz1=vbuc1 + //SEG46 [22] phi (signed byte) assert_sbyte::c#5 = (byte/signed byte/word/signed word/dword/signed dword) 2 [phi:test_sbytes::@3->assert_sbyte#0] -- vbsz1=vbuc1 lda #2 sta assert_sbyte.c //SEG47 [22] phi (signed byte) assert_sbyte::b#5 = (const signed byte) test_sbytes::be#0 [phi:test_sbytes::@3->assert_sbyte#1] -- vbsxx=vbsc1 @@ -3890,7 +3890,7 @@ test_sbytes: { //SEG50 test_sbytes::@4 //SEG51 [20] call assert_sbyte param-assignment [ ] ( main:2::test_sbytes:9 [ ] ) //SEG52 [22] phi from test_sbytes::@4 to assert_sbyte [phi:test_sbytes::@4->assert_sbyte] - //SEG53 [22] phi (signed byte) assert_sbyte::c#5 = (byte/signed byte/word/signed word) 2 [phi:test_sbytes::@4->assert_sbyte#0] -- vbsz1=vbuc1 + //SEG53 [22] phi (signed byte) assert_sbyte::c#5 = (byte/signed byte/word/signed word/dword/signed dword) 2 [phi:test_sbytes::@4->assert_sbyte#0] -- vbsz1=vbuc1 lda #2 sta assert_sbyte.c //SEG54 [22] phi (signed byte) assert_sbyte::b#5 = (const signed byte) test_sbytes::bf#0 [phi:test_sbytes::@4->assert_sbyte#1] -- vbsxx=vbsc1 @@ -4024,7 +4024,7 @@ print_ln: { //SEG106 [44] phi (byte*) line_cursor#21 = (byte*) line_cursor#42 [phi:print_ln/print_ln::@1->print_ln::@1#0] -- register_copy //SEG107 print_ln::@1 b1: - //SEG108 [45] (byte*) line_cursor#1 ← (byte*) line_cursor#21 + (byte/signed byte/word/signed word) 40 [ line_cursor#1 char_cursor#2 ] ( main:2::test_sbytes:9::assert_sbyte:12::print_ln:32 [ line_cursor#1 char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:14::print_ln:32 [ line_cursor#1 char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:16::print_ln:32 [ line_cursor#1 char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:18::print_ln:32 [ line_cursor#1 char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:20::print_ln:32 [ line_cursor#1 char_cursor#2 ] main:2::test_bytes:7::assert_byte:49::print_ln:64 [ line_cursor#1 char_cursor#2 ] main:2::test_bytes:7::assert_byte:51::print_ln:64 [ line_cursor#1 char_cursor#2 ] main:2::test_bytes:7::assert_byte:53::print_ln:64 [ line_cursor#1 char_cursor#2 ] ) -- pbuz1=pbuz1_plus_vbuc1 + //SEG108 [45] (byte*) line_cursor#1 ← (byte*) line_cursor#21 + (byte/signed byte/word/signed word/dword/signed dword) 40 [ line_cursor#1 char_cursor#2 ] ( main:2::test_sbytes:9::assert_sbyte:12::print_ln:32 [ line_cursor#1 char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:14::print_ln:32 [ line_cursor#1 char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:16::print_ln:32 [ line_cursor#1 char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:18::print_ln:32 [ line_cursor#1 char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:20::print_ln:32 [ line_cursor#1 char_cursor#2 ] main:2::test_bytes:7::assert_byte:49::print_ln:64 [ line_cursor#1 char_cursor#2 ] main:2::test_bytes:7::assert_byte:51::print_ln:64 [ line_cursor#1 char_cursor#2 ] main:2::test_bytes:7::assert_byte:53::print_ln:64 [ line_cursor#1 char_cursor#2 ] ) -- pbuz1=pbuz1_plus_vbuc1 lda line_cursor clc adc #$28 @@ -4052,17 +4052,17 @@ test_bytes: { .const bd = bc-4 //SEG113 [49] call assert_byte param-assignment [ line_cursor#1 ] ( main:2::test_bytes:7 [ line_cursor#1 ] ) //SEG114 [55] phi from test_bytes to assert_byte [phi:test_bytes->assert_byte] - //SEG115 [55] phi (byte*) line_cursor#45 = ((byte*))(word/signed word) 1024 [phi:test_bytes->assert_byte#0] -- pbuz1=pbuc1 + //SEG115 [55] phi (byte*) line_cursor#45 = ((byte*))(word/signed word/dword/signed dword) 1024 [phi:test_bytes->assert_byte#0] -- pbuz1=pbuc1 lda #<$400 sta line_cursor lda #>$400 sta line_cursor+1 - //SEG116 [55] phi (byte) assert_byte::c#3 = (byte/signed byte/word/signed word) 0 [phi:test_bytes->assert_byte#1] -- vbuz1=vbuc1 + //SEG116 [55] phi (byte) assert_byte::c#3 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:test_bytes->assert_byte#1] -- vbuz1=vbuc1 lda #0 sta assert_byte.c //SEG117 [55] phi (byte) assert_byte::b#3 = (const byte) test_bytes::bb#0 [phi:test_bytes->assert_byte#2] -- vbuxx=vbuc1 ldx #bb - //SEG118 [55] phi (byte*) char_cursor#65 = ((byte*))(word/signed word) 1024 [phi:test_bytes->assert_byte#3] -- pbuz1=pbuc1 + //SEG118 [55] phi (byte*) char_cursor#65 = ((byte*))(word/signed word/dword/signed dword) 1024 [phi:test_bytes->assert_byte#3] -- pbuz1=pbuc1 lda #<$400 sta char_cursor lda #>$400 @@ -4082,7 +4082,7 @@ test_bytes: { //SEG122 [51] call assert_byte param-assignment [ line_cursor#1 ] ( main:2::test_bytes:7 [ line_cursor#1 ] ) //SEG123 [55] phi from test_bytes::@1 to assert_byte [phi:test_bytes::@1->assert_byte] //SEG124 [55] phi (byte*) line_cursor#45 = (byte*) line_cursor#1 [phi:test_bytes::@1->assert_byte#0] -- register_copy - //SEG125 [55] phi (byte) assert_byte::c#3 = (byte/signed byte/word/signed word) 2 [phi:test_bytes::@1->assert_byte#1] -- vbuz1=vbuc1 + //SEG125 [55] phi (byte) assert_byte::c#3 = (byte/signed byte/word/signed word/dword/signed dword) 2 [phi:test_bytes::@1->assert_byte#1] -- vbuz1=vbuc1 lda #2 sta assert_byte.c //SEG126 [55] phi (byte) assert_byte::b#3 = (const byte) test_bytes::bc#0 [phi:test_bytes::@1->assert_byte#2] -- vbuxx=vbuc1 @@ -4103,7 +4103,7 @@ test_bytes: { //SEG131 [53] call assert_byte param-assignment [ line_cursor#1 ] ( main:2::test_bytes:7 [ line_cursor#1 ] ) //SEG132 [55] phi from test_bytes::@2 to assert_byte [phi:test_bytes::@2->assert_byte] //SEG133 [55] phi (byte*) line_cursor#45 = (byte*) line_cursor#1 [phi:test_bytes::@2->assert_byte#0] -- register_copy - //SEG134 [55] phi (byte) assert_byte::c#3 = (byte/word/signed word) 254 [phi:test_bytes::@2->assert_byte#1] -- vbuz1=vbuc1 + //SEG134 [55] phi (byte) assert_byte::c#3 = (byte/word/signed word/dword/signed dword) 254 [phi:test_bytes::@2->assert_byte#1] -- vbuz1=vbuc1 lda #$fe sta assert_byte.c //SEG135 [55] phi (byte) assert_byte::b#3 = (const byte) test_bytes::bd#0 [phi:test_bytes::@2->assert_byte#2] -- vbuxx=vbuc1 @@ -4192,7 +4192,7 @@ assert_byte: { print_cls: { .label sc = 2 //SEG174 [69] phi from print_cls to print_cls::@1 [phi:print_cls->print_cls::@1] - //SEG175 [69] phi (byte*) print_cls::sc#2 = ((byte*))(word/signed word) 1024 [phi:print_cls->print_cls::@1#0] -- pbuz1=pbuc1 + //SEG175 [69] phi (byte*) print_cls::sc#2 = ((byte*))(word/signed word/dword/signed dword) 1024 [phi:print_cls->print_cls::@1#0] -- pbuz1=pbuc1 lda #<$400 sta sc lda #>$400 @@ -4210,7 +4210,7 @@ print_cls: { bne !+ inc sc+1 !: - //SEG181 [72] if((byte*) print_cls::sc#1!=(word/signed word) 1024+(word/signed word) 1000) goto print_cls::@1 [ print_cls::sc#1 ] ( main:2::print_cls:5 [ print_cls::sc#1 ] ) -- pbuz1_neq_vwuc1_then_la1 + //SEG181 [72] if((byte*) print_cls::sc#1!=(word/signed word/dword/signed dword) 1024+(word/signed word/dword/signed dword) 1000) goto print_cls::@1 [ print_cls::sc#1 ] ( main:2::print_cls:5 [ print_cls::sc#1 ] ) -- pbuz1_neq_vwuc1_then_la1 lda sc+1 cmp #>$400+$3e8 bne b1 diff --git a/src/test/java/dk/camelot64/kickc/test/ref/constants.sym b/src/test/java/dk/camelot64/kickc/test/ref/constants.sym index 9f080281a..8c6ad8a01 100644 --- a/src/test/java/dk/camelot64/kickc/test/ref/constants.sym +++ b/src/test/java/dk/camelot64/kickc/test/ref/constants.sym @@ -2,11 +2,11 @@ (label) @begin (label) @end (byte*) BGCOL -(const byte*) BGCOL#0 BGCOL = ((byte*))(word) 53281 +(const byte*) BGCOL#0 BGCOL = ((byte*))(word/dword/signed dword) 53281 (byte) GREEN -(const byte) GREEN#0 GREEN = (byte/signed byte/word/signed word) 5 +(const byte) GREEN#0 GREEN = (byte/signed byte/word/signed word/dword/signed dword) 5 (byte) RED -(const byte) RED#0 RED = (byte/signed byte/word/signed word) 2 +(const byte) RED#0 RED = (byte/signed byte/word/signed word/dword/signed dword) 2 (void()) assert_byte((byte*) assert_byte::msg , (byte) assert_byte::b , (byte) assert_byte::c) (label) assert_byte::@1 (label) assert_byte::@2 @@ -80,11 +80,11 @@ (label) test_bytes::@2 (label) test_bytes::@return (byte) test_bytes::bb -(const byte) test_bytes::bb#0 bb = (byte/signed byte/word/signed word) 0 +(const byte) test_bytes::bb#0 bb = (byte/signed byte/word/signed word/dword/signed dword) 0 (byte) test_bytes::bc -(const byte) test_bytes::bc#0 bc = (const byte) test_bytes::bb#0+(byte/signed byte/word/signed word) 2 +(const byte) test_bytes::bc#0 bc = (const byte) test_bytes::bb#0+(byte/signed byte/word/signed word/dword/signed dword) 2 (byte) test_bytes::bd -(const byte) test_bytes::bd#0 bd = ((byte))(const byte) test_bytes::bc#0-(byte/signed byte/word/signed word) 4 +(const byte) test_bytes::bd#0 bd = ((byte))(const byte) test_bytes::bc#0-(byte/signed byte/word/signed word/dword/signed dword) 4 (const string) test_bytes::msg msg = (string) "0=0@" (const string) test_bytes::msg1 msg1 = (string) "0+2=2@" (const string) test_bytes::msg2 msg2 = (string) "0+2-4=254@" @@ -95,15 +95,15 @@ (label) test_sbytes::@4 (label) test_sbytes::@return (signed byte) test_sbytes::bb -(const signed byte) test_sbytes::bb#0 bb = (byte/signed byte/word/signed word) 0 +(const signed byte) test_sbytes::bb#0 bb = (byte/signed byte/word/signed word/dword/signed dword) 0 (signed byte) test_sbytes::bc -(const signed byte) test_sbytes::bc#0 bc = (const signed byte) test_sbytes::bb#0+(byte/signed byte/word/signed word) 2 +(const signed byte) test_sbytes::bc#0 bc = (const signed byte) test_sbytes::bb#0+(byte/signed byte/word/signed word/dword/signed dword) 2 (signed byte) test_sbytes::bd -(const signed byte) test_sbytes::bd#0 bd = (const signed byte) test_sbytes::bc#0-(byte/signed byte/word/signed word) 4 +(const signed byte) test_sbytes::bd#0 bd = (const signed byte) test_sbytes::bc#0-(byte/signed byte/word/signed word/dword/signed dword) 4 (signed byte) test_sbytes::be (const signed byte) test_sbytes::be#0 be = -(const signed byte) test_sbytes::bd#0 (signed byte) test_sbytes::bf -(const signed byte) test_sbytes::bf#0 bf = ((signed byte))-(byte/signed byte/word/signed word) 127-(byte/signed byte/word/signed word) 127 +(const signed byte) test_sbytes::bf#0 bf = ((signed byte))-(byte/signed byte/word/signed word/dword/signed dword) 127-(byte/signed byte/word/signed word/dword/signed dword) 127 (const string) test_sbytes::msg msg = (string) "0=0@" (const string) test_sbytes::msg1 msg1 = (string) "0+2=2@" (const string) test_sbytes::msg2 msg2 = (string) "0+2-4=-2@" diff --git a/src/test/java/dk/camelot64/kickc/test/ref/sinus-sprites.log b/src/test/java/dk/camelot64/kickc/test/ref/sinus-sprites.log index f55d74e31..2216fc2cb 100644 --- a/src/test/java/dk/camelot64/kickc/test/ref/sinus-sprites.log +++ b/src/test/java/dk/camelot64/kickc/test/ref/sinus-sprites.log @@ -990,19 +990,19 @@ anim::@1: (boolean~) anim::$7 ← (byte) anim::xidx >= (byte) sinlen_x (boolean~) anim::$8 ← ! (boolean~) anim::$7 if((boolean~) anim::$8) goto anim::@2 - (byte/signed byte/word/signed word~) anim::$9 ← (byte) anim::xidx - (byte) sinlen_x - (byte) anim::xidx ← (byte/signed byte/word/signed word~) anim::$9 + (byte/signed byte/word/signed word/dword/signed dword~) anim::$9 ← (byte) anim::xidx - (byte) sinlen_x + (byte) anim::xidx ← (byte/signed byte/word/signed word/dword/signed dword~) anim::$9 anim::@2: (byte/word~) anim::$10 ← (byte) anim::yidx + (byte/signed byte/word/signed word/dword/signed dword) 8 (byte) anim::yidx ← (byte/word~) anim::$10 (boolean~) anim::$11 ← (byte) anim::yidx >= (byte) sinlen_y (boolean~) anim::$12 ← ! (boolean~) anim::$11 if((boolean~) anim::$12) goto anim::@3 - (byte/signed byte/word/signed word~) anim::$13 ← (byte) anim::yidx - (byte) sinlen_y - (byte) anim::yidx ← (byte/signed byte/word/signed word~) anim::$13 + (byte/signed byte/word/signed word/dword/signed dword~) anim::$13 ← (byte) anim::yidx - (byte) sinlen_y + (byte) anim::yidx ← (byte/signed byte/word/signed word/dword/signed dword~) anim::$13 anim::@3: - (byte/signed byte/word/signed word~) anim::$14 ← (byte) anim::j2 - (byte/signed byte/word/signed word/dword/signed dword) 2 - (byte) anim::j2 ← (byte/signed byte/word/signed word~) anim::$14 + (byte/signed byte/word/signed word/dword/signed dword~) anim::$14 ← (byte) anim::j2 - (byte/signed byte/word/signed word/dword/signed dword) 2 + (byte) anim::j2 ← (byte/signed byte/word/signed word/dword/signed dword~) anim::$14 (byte) anim::j ← ++ (byte) anim::j (boolean~) anim::$15 ← (byte) anim::j != (byte/signed byte/word/signed word/dword/signed dword) 7 if((boolean~) anim::$15) goto anim::@1 @@ -1214,8 +1214,8 @@ SYMBOLS (byte/word~) anim::$10 (boolean~) anim::$11 (boolean~) anim::$12 -(byte/signed byte/word/signed word~) anim::$13 -(byte/signed byte/word/signed word~) anim::$14 +(byte/signed byte/word/signed word/dword/signed dword~) anim::$13 +(byte/signed byte/word/signed word/dword/signed dword~) anim::$14 (boolean~) anim::$15 (boolean~) anim::$16 (boolean~) anim::$17 @@ -1228,7 +1228,7 @@ SYMBOLS (byte/word~) anim::$6 (boolean~) anim::$7 (boolean~) anim::$8 -(byte/signed byte/word/signed word~) anim::$9 +(byte/signed byte/word/signed word/dword/signed dword~) anim::$9 (label) anim::@1 (label) anim::@2 (label) anim::@3 @@ -2077,19 +2077,19 @@ anim::@2: scope:[anim] from anim::@1 anim::@6 if((boolean~) anim::$12) goto anim::@3 to:anim::@7 anim::@6: scope:[anim] from anim::@1 - (byte/signed byte/word/signed word~) anim::$9 ← (byte) anim::xidx - (byte) sinlen_x - (byte) anim::xidx ← (byte/signed byte/word/signed word~) anim::$9 + (byte/signed byte/word/signed word/dword/signed dword~) anim::$9 ← (byte) anim::xidx - (byte) sinlen_x + (byte) anim::xidx ← (byte/signed byte/word/signed word/dword/signed dword~) anim::$9 to:anim::@2 anim::@3: scope:[anim] from anim::@2 anim::@7 - (byte/signed byte/word/signed word~) anim::$14 ← (byte) anim::j2 - (byte/signed byte/word/signed word/dword/signed dword) 2 - (byte) anim::j2 ← (byte/signed byte/word/signed word~) anim::$14 + (byte/signed byte/word/signed word/dword/signed dword~) anim::$14 ← (byte) anim::j2 - (byte/signed byte/word/signed word/dword/signed dword) 2 + (byte) anim::j2 ← (byte/signed byte/word/signed word/dword/signed dword~) anim::$14 (byte) anim::j ← ++ (byte) anim::j (boolean~) anim::$15 ← (byte) anim::j != (byte/signed byte/word/signed word/dword/signed dword) 7 if((boolean~) anim::$15) goto anim::@1 to:anim::@8 anim::@7: scope:[anim] from anim::@2 - (byte/signed byte/word/signed word~) anim::$13 ← (byte) anim::yidx - (byte) sinlen_y - (byte) anim::yidx ← (byte/signed byte/word/signed word~) anim::$13 + (byte/signed byte/word/signed word/dword/signed dword~) anim::$13 ← (byte) anim::yidx - (byte) sinlen_y + (byte) anim::yidx ← (byte/signed byte/word/signed word/dword/signed dword~) anim::$13 to:anim::@3 anim::@8: scope:[anim] from anim::@3 *((byte*) SPRITES_XMSB) ← (byte) anim::x_msb @@ -2851,8 +2851,8 @@ anim::@6: scope:[anim] from anim::@1 (byte) anim::j2#6 ← phi( anim::@1/(byte) anim::j2#2 ) (byte) anim::yidx#7 ← phi( anim::@1/(byte) anim::yidx#3 ) (byte) anim::xidx#4 ← phi( anim::@1/(byte) anim::xidx#1 ) - (byte/signed byte/word/signed word~) anim::$9 ← (byte) anim::xidx#4 - (byte) sinlen_x#0 - (byte) anim::xidx#2 ← (byte/signed byte/word/signed word~) anim::$9 + (byte/signed byte/word/signed word/dword/signed dword~) anim::$9 ← (byte) anim::xidx#4 - (byte) sinlen_x#0 + (byte) anim::xidx#2 ← (byte/signed byte/word/signed word/dword/signed dword~) anim::$9 to:anim::@2 anim::@3: scope:[anim] from anim::@2 anim::@7 (byte) sin_idx_y#19 ← phi( anim::@2/(byte) sin_idx_y#22 anim::@7/(byte) sin_idx_y#23 ) @@ -2862,8 +2862,8 @@ anim::@3: scope:[anim] from anim::@2 anim::@7 (byte) anim::xidx#5 ← phi( anim::@2/(byte) anim::xidx#6 anim::@7/(byte) anim::xidx#7 ) (byte) anim::j#2 ← phi( anim::@2/(byte) anim::j#3 anim::@7/(byte) anim::j#4 ) (byte) anim::j2#3 ← phi( anim::@2/(byte) anim::j2#4 anim::@7/(byte) anim::j2#5 ) - (byte/signed byte/word/signed word~) anim::$14 ← (byte) anim::j2#3 - (byte/signed byte/word/signed word/dword/signed dword) 2 - (byte) anim::j2#1 ← (byte/signed byte/word/signed word~) anim::$14 + (byte/signed byte/word/signed word/dword/signed dword~) anim::$14 ← (byte) anim::j2#3 - (byte/signed byte/word/signed word/dword/signed dword) 2 + (byte) anim::j2#1 ← (byte/signed byte/word/signed word/dword/signed dword~) anim::$14 (byte) anim::j#1 ← ++ (byte) anim::j#2 (boolean~) anim::$15 ← (byte) anim::j#1 != (byte/signed byte/word/signed word/dword/signed dword) 7 if((boolean~) anim::$15) goto anim::@1 @@ -2876,8 +2876,8 @@ anim::@7: scope:[anim] from anim::@2 (byte) anim::j#4 ← phi( anim::@2/(byte) anim::j#3 ) (byte) anim::j2#5 ← phi( anim::@2/(byte) anim::j2#4 ) (byte) anim::yidx#5 ← phi( anim::@2/(byte) anim::yidx#1 ) - (byte/signed byte/word/signed word~) anim::$13 ← (byte) anim::yidx#5 - (byte) sinlen_y#0 - (byte) anim::yidx#2 ← (byte/signed byte/word/signed word~) anim::$13 + (byte/signed byte/word/signed word/dword/signed dword~) anim::$13 ← (byte) anim::yidx#5 - (byte) sinlen_y#0 + (byte) anim::yidx#2 ← (byte/signed byte/word/signed word/dword/signed dword~) anim::$13 to:anim::@3 anim::@8: scope:[anim] from anim::@3 (byte) sin_idx_y#14 ← phi( anim::@3/(byte) sin_idx_y#19 ) @@ -3420,8 +3420,8 @@ SYMBOL TABLE SSA (byte/word~) anim::$10 (boolean~) anim::$11 (boolean~) anim::$12 -(byte/signed byte/word/signed word~) anim::$13 -(byte/signed byte/word/signed word~) anim::$14 +(byte/signed byte/word/signed word/dword/signed dword~) anim::$13 +(byte/signed byte/word/signed word/dword/signed dword~) anim::$14 (boolean~) anim::$15 (boolean~) anim::$16 (boolean~) anim::$17 @@ -3434,7 +3434,7 @@ SYMBOL TABLE SSA (byte/word~) anim::$6 (boolean~) anim::$7 (boolean~) anim::$8 -(byte/signed byte/word/signed word~) anim::$9 +(byte/signed byte/word/signed word/dword/signed dword~) anim::$9 (label) anim::@1 (label) anim::@10 (label) anim::@2 @@ -4242,15 +4242,15 @@ Alias (byte) anim::j2#2 = (byte) anim::j2#6 Alias (byte) anim::j#5 = (byte) anim::j#6 Alias (byte) sin_idx_x#24 = (byte) sin_idx_x#25 Alias (byte) sin_idx_y#25 = (byte) sin_idx_y#26 -Alias (byte) anim::xidx#2 = (byte/signed byte/word/signed word~) anim::$9 -Alias (byte) anim::j2#1 = (byte/signed byte/word/signed word~) anim::$14 +Alias (byte) anim::xidx#2 = (byte/signed byte/word/signed word/dword/signed dword~) anim::$9 +Alias (byte) anim::j2#1 = (byte/signed byte/word/signed word/dword/signed dword~) anim::$14 Alias (byte) anim::j2#4 = (byte) anim::j2#5 Alias (byte) anim::j#3 = (byte) anim::j#4 Alias (byte) anim::xidx#6 = (byte) anim::xidx#7 Alias (byte) anim::x_msb#5 = (byte) anim::x_msb#6 Alias (byte) sin_idx_x#18 = (byte) sin_idx_x#19 Alias (byte) sin_idx_y#22 = (byte) sin_idx_y#23 -Alias (byte) anim::yidx#2 = (byte/signed byte/word/signed word~) anim::$13 +Alias (byte) anim::yidx#2 = (byte/signed byte/word/signed word/dword/signed dword~) anim::$13 Alias (byte) anim::x_msb#3 = (byte) anim::x_msb#4 Alias (byte) sin_idx_x#10 = (byte) sin_idx_x#14 Alias (byte) sin_idx_y#14 = (byte) sin_idx_y#19 (byte) sin_idx_y#15 diff --git a/src/test/java/dk/camelot64/kickc/test/ref/test-comparisons.log b/src/test/java/dk/camelot64/kickc/test/ref/test-comparisons.log index aaafbf5e1..04e98acdd 100644 --- a/src/test/java/dk/camelot64/kickc/test/ref/test-comparisons.log +++ b/src/test/java/dk/camelot64/kickc/test/ref/test-comparisons.log @@ -214,8 +214,8 @@ proc (void()) main() (byte) main::a ← (byte/signed byte/word/signed word/dword/signed dword) 7 (byte) main::i ← (byte/signed byte/word/signed word/dword/signed dword) 0 main::@1: - (byte/signed byte/word/signed word~) main::$1 ← (byte/word/signed word/dword/signed dword) 206 - (byte) main::a - (byte) main::b ← (byte/signed byte/word/signed word~) main::$1 + (byte/signed byte/word/signed word/dword/signed dword~) main::$1 ← (byte/word/signed word/dword/signed dword) 206 - (byte) main::a + (byte) main::b ← (byte/signed byte/word/signed word/dword/signed dword~) main::$1 (byte[5]) main::cs ← { (byte/signed byte/word/signed word/dword/signed dword) 7, (byte/word/signed word/dword/signed dword) 199, (byte/signed byte/word/signed word/dword/signed dword) 55, (byte/word/signed word/dword/signed dword) 151, (byte/signed byte/word/signed word/dword/signed dword) 103 } (byte) main::r ← (byte) '-' (boolean~) main::$2 ← (byte) main::a < (byte) main::b @@ -389,7 +389,7 @@ SYMBOLS (byte*) line_cursor (void()) main() (void~) main::$0 -(byte/signed byte/word/signed word~) main::$1 +(byte/signed byte/word/signed word/dword/signed dword~) main::$1 (void~) main::$10 (boolean~) main::$11 (boolean~) main::$12 @@ -694,8 +694,8 @@ main: scope:[main] from (byte) main::i ← (byte/signed byte/word/signed word/dword/signed dword) 0 to:main::@1 main::@1: scope:[main] from main main::@21 - (byte/signed byte/word/signed word~) main::$1 ← (byte/word/signed word/dword/signed dword) 206 - (byte) main::a - (byte) main::b ← (byte/signed byte/word/signed word~) main::$1 + (byte/signed byte/word/signed word/dword/signed dword~) main::$1 ← (byte/word/signed word/dword/signed dword) 206 - (byte) main::a + (byte) main::b ← (byte/signed byte/word/signed word/dword/signed dword~) main::$1 (byte[5]) main::cs ← { (byte/signed byte/word/signed word/dword/signed dword) 7, (byte/word/signed word/dword/signed dword) 199, (byte/signed byte/word/signed word/dword/signed dword) 55, (byte/word/signed word/dword/signed dword) 151, (byte/signed byte/word/signed word/dword/signed dword) 103 } (byte) main::r ← (byte) '-' (boolean~) main::$2 ← (byte) main::a < (byte) main::b @@ -1149,8 +1149,8 @@ main::@1: scope:[main] from main::@45 main::@70 (byte) main::i#42 ← phi( main::@45/(byte) main::i#0 main::@70/(byte) main::i#1 ) (byte*) char_cursor#114 ← phi( main::@45/(byte*) char_cursor#135 main::@70/(byte*) char_cursor#34 ) (byte) main::a#2 ← phi( main::@45/(byte) main::a#0 main::@70/(byte) main::a#1 ) - (byte/signed byte/word/signed word~) main::$1 ← (byte/word/signed word/dword/signed dword) 206 - (byte) main::a#2 - (byte) main::b#0 ← (byte/signed byte/word/signed word~) main::$1 + (byte/signed byte/word/signed word/dword/signed dword~) main::$1 ← (byte/word/signed word/dword/signed dword) 206 - (byte) main::a#2 + (byte) main::b#0 ← (byte/signed byte/word/signed word/dword/signed dword~) main::$1 (byte[5]) main::cs#0 ← { (byte/signed byte/word/signed word/dword/signed dword) 7, (byte/word/signed word/dword/signed dword) 199, (byte/signed byte/word/signed word/dword/signed dword) 55, (byte/word/signed word/dword/signed dword) 151, (byte/signed byte/word/signed word/dword/signed dword) 103 } (byte) main::r#0 ← (byte) '-' (boolean~) main::$2 ← (byte) main::a#2 < (byte) main::b#0 @@ -2172,7 +2172,7 @@ SYMBOL TABLE SSA (byte*) line_cursor#85 (byte*) line_cursor#9 (void()) main() -(byte/signed byte/word/signed word~) main::$1 +(byte/signed byte/word/signed word/dword/signed dword~) main::$1 (boolean~) main::$11 (boolean~) main::$12 (boolean~) main::$15 @@ -2861,7 +2861,7 @@ Alias (byte*) char_cursor#49 = (byte*) char_cursor#6 (byte*) char_cursor#50 (byt Alias (byte*) char_cursor#52 = (byte*) char_cursor#8 (byte*) char_cursor#9 Alias (byte*) char_cursor#135 = (byte*) char_cursor#136 Alias (byte*) line_cursor#84 = (byte*) line_cursor#85 -Alias (byte) main::b#0 = (byte/signed byte/word/signed word~) main::$1 (byte) main::b#10 +Alias (byte) main::b#0 = (byte/signed byte/word/signed word/dword/signed dword~) main::$1 (byte) main::b#10 Alias (byte) main::a#3 = (byte) main::a#4 (byte) main::a#44 Alias (byte) main::i#24 = (byte) main::i#25 (byte) main::i#35 Alias (byte*) line_cursor#63 = (byte*) line_cursor#64 (byte*) line_cursor#73 diff --git a/src/test/java/dk/camelot64/kickc/test/ref/test-multiply.cfg b/src/test/java/dk/camelot64/kickc/test/ref/test-multiply.cfg index 16404fed8..31bf1d159 100644 --- a/src/test/java/dk/camelot64/kickc/test/ref/test-multiply.cfg +++ b/src/test/java/dk/camelot64/kickc/test/ref/test-multiply.cfg @@ -242,8 +242,8 @@ signed_multiply::@6: scope:[signed_multiply] from signed_multiply to:signed_multiply::@3 signed_multiply::@3: scope:[signed_multiply] from signed_multiply::@6 [119] (byte~) signed_multiply::$6 ← > (word) signed_multiply::m#0 [ signed_multiply::a#0 signed_multiply::b#0 signed_multiply::m#0 signed_multiply::$6 ] ( main:2::signed_multiply_results_compare:15::signed_multiply:27 [ signed_multiply_results_compare::a#6 signed_multiply_results_compare::b#2 signed_multiply_results_compare::ms#0 line_cursor#1 signed_multiply::a#0 signed_multiply::b#0 signed_multiply::m#0 signed_multiply::$6 ] ) - [120] (byte/signed byte/word/signed word~) signed_multiply::$16 ← (byte~) signed_multiply::$6 - (byte)(signed byte) signed_multiply::b#0 [ signed_multiply::a#0 signed_multiply::b#0 signed_multiply::m#0 signed_multiply::$16 ] ( main:2::signed_multiply_results_compare:15::signed_multiply:27 [ signed_multiply_results_compare::a#6 signed_multiply_results_compare::b#2 signed_multiply_results_compare::ms#0 line_cursor#1 signed_multiply::a#0 signed_multiply::b#0 signed_multiply::m#0 signed_multiply::$16 ] ) - [121] (word) signed_multiply::m#1 ← (word) signed_multiply::m#0 hi= (byte/signed byte/word/signed word~) signed_multiply::$16 [ signed_multiply::a#0 signed_multiply::b#0 signed_multiply::m#1 ] ( main:2::signed_multiply_results_compare:15::signed_multiply:27 [ signed_multiply_results_compare::a#6 signed_multiply_results_compare::b#2 signed_multiply_results_compare::ms#0 line_cursor#1 signed_multiply::a#0 signed_multiply::b#0 signed_multiply::m#1 ] ) + [120] (byte/signed byte/word/signed word/dword/signed dword~) signed_multiply::$16 ← (byte~) signed_multiply::$6 - (byte)(signed byte) signed_multiply::b#0 [ signed_multiply::a#0 signed_multiply::b#0 signed_multiply::m#0 signed_multiply::$16 ] ( main:2::signed_multiply_results_compare:15::signed_multiply:27 [ signed_multiply_results_compare::a#6 signed_multiply_results_compare::b#2 signed_multiply_results_compare::ms#0 line_cursor#1 signed_multiply::a#0 signed_multiply::b#0 signed_multiply::m#0 signed_multiply::$16 ] ) + [121] (word) signed_multiply::m#1 ← (word) signed_multiply::m#0 hi= (byte/signed byte/word/signed word/dword/signed dword~) signed_multiply::$16 [ signed_multiply::a#0 signed_multiply::b#0 signed_multiply::m#1 ] ( main:2::signed_multiply_results_compare:15::signed_multiply:27 [ signed_multiply_results_compare::a#6 signed_multiply_results_compare::b#2 signed_multiply_results_compare::ms#0 line_cursor#1 signed_multiply::a#0 signed_multiply::b#0 signed_multiply::m#1 ] ) to:signed_multiply::@1 signed_multiply::@1: scope:[signed_multiply] from signed_multiply::@3 signed_multiply::@6 [122] (word) signed_multiply::m#5 ← phi( signed_multiply::@3/(word) signed_multiply::m#1 signed_multiply::@6/(word) signed_multiply::m#0 ) [ signed_multiply::a#0 signed_multiply::b#0 signed_multiply::m#5 ] ( main:2::signed_multiply_results_compare:15::signed_multiply:27 [ signed_multiply_results_compare::a#6 signed_multiply_results_compare::b#2 signed_multiply_results_compare::ms#0 line_cursor#1 signed_multiply::a#0 signed_multiply::b#0 signed_multiply::m#5 ] ) @@ -251,8 +251,8 @@ signed_multiply::@1: scope:[signed_multiply] from signed_multiply::@3 signed_mu to:signed_multiply::@4 signed_multiply::@4: scope:[signed_multiply] from signed_multiply::@1 [124] (byte~) signed_multiply::$12 ← > (word) signed_multiply::m#5 [ signed_multiply::a#0 signed_multiply::m#5 signed_multiply::$12 ] ( main:2::signed_multiply_results_compare:15::signed_multiply:27 [ signed_multiply_results_compare::a#6 signed_multiply_results_compare::b#2 signed_multiply_results_compare::ms#0 line_cursor#1 signed_multiply::a#0 signed_multiply::m#5 signed_multiply::$12 ] ) - [125] (byte/signed byte/word/signed word~) signed_multiply::$17 ← (byte~) signed_multiply::$12 - (byte)(signed byte) signed_multiply::a#0 [ signed_multiply::m#5 signed_multiply::$17 ] ( main:2::signed_multiply_results_compare:15::signed_multiply:27 [ signed_multiply_results_compare::a#6 signed_multiply_results_compare::b#2 signed_multiply_results_compare::ms#0 line_cursor#1 signed_multiply::m#5 signed_multiply::$17 ] ) - [126] (word) signed_multiply::m#2 ← (word) signed_multiply::m#5 hi= (byte/signed byte/word/signed word~) signed_multiply::$17 [ signed_multiply::m#2 ] ( main:2::signed_multiply_results_compare:15::signed_multiply:27 [ signed_multiply_results_compare::a#6 signed_multiply_results_compare::b#2 signed_multiply_results_compare::ms#0 line_cursor#1 signed_multiply::m#2 ] ) + [125] (byte/signed byte/word/signed word/dword/signed dword~) signed_multiply::$17 ← (byte~) signed_multiply::$12 - (byte)(signed byte) signed_multiply::a#0 [ signed_multiply::m#5 signed_multiply::$17 ] ( main:2::signed_multiply_results_compare:15::signed_multiply:27 [ signed_multiply_results_compare::a#6 signed_multiply_results_compare::b#2 signed_multiply_results_compare::ms#0 line_cursor#1 signed_multiply::m#5 signed_multiply::$17 ] ) + [126] (word) signed_multiply::m#2 ← (word) signed_multiply::m#5 hi= (byte/signed byte/word/signed word/dword/signed dword~) signed_multiply::$17 [ signed_multiply::m#2 ] ( main:2::signed_multiply_results_compare:15::signed_multiply:27 [ signed_multiply_results_compare::a#6 signed_multiply_results_compare::b#2 signed_multiply_results_compare::ms#0 line_cursor#1 signed_multiply::m#2 ] ) to:signed_multiply::@2 signed_multiply::@2: scope:[signed_multiply] from signed_multiply::@1 signed_multiply::@4 [127] (word) signed_multiply::m#4 ← phi( signed_multiply::@1/(word) signed_multiply::m#5 signed_multiply::@4/(word) signed_multiply::m#2 ) [ signed_multiply::m#4 ] ( main:2::signed_multiply_results_compare:15::signed_multiply:27 [ signed_multiply_results_compare::a#6 signed_multiply_results_compare::b#2 signed_multiply_results_compare::ms#0 line_cursor#1 signed_multiply::m#4 ] ) diff --git a/src/test/java/dk/camelot64/kickc/test/ref/test-multiply.log b/src/test/java/dk/camelot64/kickc/test/ref/test-multiply.log index 7fe2a8abc..a41eec4ad 100644 --- a/src/test/java/dk/camelot64/kickc/test/ref/test-multiply.log +++ b/src/test/java/dk/camelot64/kickc/test/ref/test-multiply.log @@ -531,8 +531,8 @@ proc (signed word()) signed_multiply((signed byte) signed_multiply::a , (signed (byte~) signed_multiply::$5 ← > (word) signed_multiply::m (byte~) signed_multiply::$6 ← > (word) signed_multiply::m (byte~) signed_multiply::$7 ← ((byte)) (signed byte) signed_multiply::b - (byte/signed byte/word/signed word~) signed_multiply::$8 ← (byte~) signed_multiply::$6 - (byte~) signed_multiply::$7 - lval((byte~) signed_multiply::$5) ← (byte/signed byte/word/signed word~) signed_multiply::$8 + (byte/signed byte/word/signed word/dword/signed dword~) signed_multiply::$8 ← (byte~) signed_multiply::$6 - (byte~) signed_multiply::$7 + lval((byte~) signed_multiply::$5) ← (byte/signed byte/word/signed word/dword/signed dword~) signed_multiply::$8 signed_multiply::@1: (boolean~) signed_multiply::$9 ← (signed byte) signed_multiply::b < (byte/signed byte/word/signed word/dword/signed dword) 0 (boolean~) signed_multiply::$10 ← ! (boolean~) signed_multiply::$9 @@ -540,8 +540,8 @@ signed_multiply::@1: (byte~) signed_multiply::$11 ← > (word) signed_multiply::m (byte~) signed_multiply::$12 ← > (word) signed_multiply::m (byte~) signed_multiply::$13 ← ((byte)) (signed byte) signed_multiply::a - (byte/signed byte/word/signed word~) signed_multiply::$14 ← (byte~) signed_multiply::$12 - (byte~) signed_multiply::$13 - lval((byte~) signed_multiply::$11) ← (byte/signed byte/word/signed word~) signed_multiply::$14 + (byte/signed byte/word/signed word/dword/signed dword~) signed_multiply::$14 ← (byte~) signed_multiply::$12 - (byte~) signed_multiply::$13 + lval((byte~) signed_multiply::$11) ← (byte/signed byte/word/signed word/dword/signed dword~) signed_multiply::$14 signed_multiply::@2: (signed word~) signed_multiply::$15 ← ((signed word)) (word) signed_multiply::m (signed word) signed_multiply::return ← (signed word~) signed_multiply::$15 @@ -921,7 +921,7 @@ SYMBOLS (byte~) signed_multiply::$11 (byte~) signed_multiply::$12 (byte~) signed_multiply::$13 -(byte/signed byte/word/signed word~) signed_multiply::$14 +(byte/signed byte/word/signed word/dword/signed dword~) signed_multiply::$14 (signed word~) signed_multiply::$15 (word~) signed_multiply::$2 (boolean~) signed_multiply::$3 @@ -929,7 +929,7 @@ SYMBOLS (byte~) signed_multiply::$5 (byte~) signed_multiply::$6 (byte~) signed_multiply::$7 -(byte/signed byte/word/signed word~) signed_multiply::$8 +(byte/signed byte/word/signed word/dword/signed dword~) signed_multiply::$8 (boolean~) signed_multiply::$9 (label) signed_multiply::@1 (label) signed_multiply::@2 @@ -1261,9 +1261,9 @@ signed_multiply::@3: scope:[signed_multiply] from signed_multiply (byte~) signed_multiply::$5 ← > (word) signed_multiply::m (byte~) signed_multiply::$6 ← > (word) signed_multiply::m (byte~) signed_multiply::$7 ← ((byte)) (signed byte) signed_multiply::b - (byte/signed byte/word/signed word~) signed_multiply::$8 ← (byte~) signed_multiply::$6 - (byte~) signed_multiply::$7 - (byte/signed byte/word/signed word~) signed_multiply::$16 ← (byte/signed byte/word/signed word~) signed_multiply::$8 - (word) signed_multiply::m ← (word) signed_multiply::m hi= (byte/signed byte/word/signed word~) signed_multiply::$16 + (byte/signed byte/word/signed word/dword/signed dword~) signed_multiply::$8 ← (byte~) signed_multiply::$6 - (byte~) signed_multiply::$7 + (byte/signed byte/word/signed word/dword/signed dword~) signed_multiply::$16 ← (byte/signed byte/word/signed word/dword/signed dword~) signed_multiply::$8 + (word) signed_multiply::m ← (word) signed_multiply::m hi= (byte/signed byte/word/signed word/dword/signed dword~) signed_multiply::$16 to:signed_multiply::@1 signed_multiply::@2: scope:[signed_multiply] from signed_multiply::@1 signed_multiply::@4 (signed word~) signed_multiply::$15 ← ((signed word)) (word) signed_multiply::m @@ -1273,9 +1273,9 @@ signed_multiply::@4: scope:[signed_multiply] from signed_multiply::@1 (byte~) signed_multiply::$11 ← > (word) signed_multiply::m (byte~) signed_multiply::$12 ← > (word) signed_multiply::m (byte~) signed_multiply::$13 ← ((byte)) (signed byte) signed_multiply::a - (byte/signed byte/word/signed word~) signed_multiply::$14 ← (byte~) signed_multiply::$12 - (byte~) signed_multiply::$13 - (byte/signed byte/word/signed word~) signed_multiply::$17 ← (byte/signed byte/word/signed word~) signed_multiply::$14 - (word) signed_multiply::m ← (word) signed_multiply::m hi= (byte/signed byte/word/signed word~) signed_multiply::$17 + (byte/signed byte/word/signed word/dword/signed dword~) signed_multiply::$14 ← (byte~) signed_multiply::$12 - (byte~) signed_multiply::$13 + (byte/signed byte/word/signed word/dword/signed dword~) signed_multiply::$17 ← (byte/signed byte/word/signed word/dword/signed dword~) signed_multiply::$14 + (word) signed_multiply::m ← (word) signed_multiply::m hi= (byte/signed byte/word/signed word/dword/signed dword~) signed_multiply::$17 to:signed_multiply::@2 signed_multiply::@return: scope:[signed_multiply] from signed_multiply::@2 signed_multiply::@5 (signed word) signed_multiply::return ← (signed word) signed_multiply::return @@ -2027,9 +2027,9 @@ signed_multiply::@3: scope:[signed_multiply] from signed_multiply::@6 (word) signed_multiply::m#3 ← phi( signed_multiply::@6/(word) signed_multiply::m#0 ) (byte~) signed_multiply::$6 ← > (word) signed_multiply::m#3 (byte~) signed_multiply::$7 ← ((byte)) (signed byte) signed_multiply::b#3 - (byte/signed byte/word/signed word~) signed_multiply::$8 ← (byte~) signed_multiply::$6 - (byte~) signed_multiply::$7 - (byte/signed byte/word/signed word~) signed_multiply::$16 ← (byte/signed byte/word/signed word~) signed_multiply::$8 - (word) signed_multiply::m#1 ← (word) signed_multiply::m#3 hi= (byte/signed byte/word/signed word~) signed_multiply::$16 + (byte/signed byte/word/signed word/dword/signed dword~) signed_multiply::$8 ← (byte~) signed_multiply::$6 - (byte~) signed_multiply::$7 + (byte/signed byte/word/signed word/dword/signed dword~) signed_multiply::$16 ← (byte/signed byte/word/signed word/dword/signed dword~) signed_multiply::$8 + (word) signed_multiply::m#1 ← (word) signed_multiply::m#3 hi= (byte/signed byte/word/signed word/dword/signed dword~) signed_multiply::$16 to:signed_multiply::@1 signed_multiply::@2: scope:[signed_multiply] from signed_multiply::@1 signed_multiply::@4 (word) signed_multiply::m#4 ← phi( signed_multiply::@1/(word) signed_multiply::m#6 signed_multiply::@4/(word) signed_multiply::m#2 ) @@ -2041,9 +2041,9 @@ signed_multiply::@4: scope:[signed_multiply] from signed_multiply::@1 (word) signed_multiply::m#5 ← phi( signed_multiply::@1/(word) signed_multiply::m#6 ) (byte~) signed_multiply::$12 ← > (word) signed_multiply::m#5 (byte~) signed_multiply::$13 ← ((byte)) (signed byte) signed_multiply::a#3 - (byte/signed byte/word/signed word~) signed_multiply::$14 ← (byte~) signed_multiply::$12 - (byte~) signed_multiply::$13 - (byte/signed byte/word/signed word~) signed_multiply::$17 ← (byte/signed byte/word/signed word~) signed_multiply::$14 - (word) signed_multiply::m#2 ← (word) signed_multiply::m#5 hi= (byte/signed byte/word/signed word~) signed_multiply::$17 + (byte/signed byte/word/signed word/dword/signed dword~) signed_multiply::$14 ← (byte~) signed_multiply::$12 - (byte~) signed_multiply::$13 + (byte/signed byte/word/signed word/dword/signed dword~) signed_multiply::$17 ← (byte/signed byte/word/signed word/dword/signed dword~) signed_multiply::$14 + (word) signed_multiply::m#2 ← (word) signed_multiply::m#5 hi= (byte/signed byte/word/signed word/dword/signed dword~) signed_multiply::$17 to:signed_multiply::@2 signed_multiply::@return: scope:[signed_multiply] from signed_multiply::@2 (signed word) signed_multiply::return#3 ← phi( signed_multiply::@2/(signed word) signed_multiply::return#0 ) @@ -3440,16 +3440,16 @@ SYMBOL TABLE SSA (boolean~) signed_multiply::$10 (byte~) signed_multiply::$12 (byte~) signed_multiply::$13 -(byte/signed byte/word/signed word~) signed_multiply::$14 +(byte/signed byte/word/signed word/dword/signed dword~) signed_multiply::$14 (signed word~) signed_multiply::$15 -(byte/signed byte/word/signed word~) signed_multiply::$16 -(byte/signed byte/word/signed word~) signed_multiply::$17 +(byte/signed byte/word/signed word/dword/signed dword~) signed_multiply::$16 +(byte/signed byte/word/signed word/dword/signed dword~) signed_multiply::$17 (word~) signed_multiply::$2 (boolean~) signed_multiply::$3 (boolean~) signed_multiply::$4 (byte~) signed_multiply::$6 (byte~) signed_multiply::$7 -(byte/signed byte/word/signed word~) signed_multiply::$8 +(byte/signed byte/word/signed word/dword/signed dword~) signed_multiply::$8 (boolean~) signed_multiply::$9 (label) signed_multiply::@1 (label) signed_multiply::@2 @@ -3871,11 +3871,11 @@ Alias (word) multiply::return#2 = (word) multiply::return#5 Alias (signed byte) signed_multiply::a#1 = (signed byte) signed_multiply::a#2 (signed byte) signed_multiply::a#5 Alias (signed byte) signed_multiply::b#1 = (signed byte) signed_multiply::b#4 (signed byte) signed_multiply::b#3 Alias (word) signed_multiply::m#0 = (word~) signed_multiply::$2 (word) signed_multiply::m#3 -Alias (byte/signed byte/word/signed word~) signed_multiply::$16 = (byte/signed byte/word/signed word~) signed_multiply::$8 +Alias (byte/signed byte/word/signed word/dword/signed dword~) signed_multiply::$16 = (byte/signed byte/word/signed word/dword/signed dword~) signed_multiply::$8 Alias (signed word) signed_multiply::return#0 = (signed word~) signed_multiply::$15 (signed word) signed_multiply::return#3 (signed word) signed_multiply::return#1 Alias (word) signed_multiply::m#5 = (word) signed_multiply::m#6 Alias (signed byte) signed_multiply::a#3 = (signed byte) signed_multiply::a#4 -Alias (byte/signed byte/word/signed word~) signed_multiply::$17 = (byte/signed byte/word/signed word~) signed_multiply::$14 +Alias (byte/signed byte/word/signed word/dword/signed dword~) signed_multiply::$17 = (byte/signed byte/word/signed word/dword/signed dword~) signed_multiply::$14 Alias (byte*) char_cursor#125 = (byte*) char_cursor#146 (byte*) char_cursor#154 (byte*) char_cursor#138 Alias (byte*) line_cursor#41 = (byte*) line_cursor#61 (byte*) line_cursor#72 (byte*) line_cursor#51 Alias (byte*) BGCOL#1 = (byte*) BGCOL#22 (byte*) BGCOL#17 (byte*) BGCOL#14 (byte*) BGCOL#27 (byte*) BGCOL#28 @@ -5376,8 +5376,8 @@ signed_multiply::@6: scope:[signed_multiply] from signed_multiply to:signed_multiply::@3 signed_multiply::@3: scope:[signed_multiply] from signed_multiply::@6 [119] (byte~) signed_multiply::$6 ← > (word) signed_multiply::m#0 [ signed_multiply::a#0 signed_multiply::b#0 signed_multiply::m#0 signed_multiply::$6 ] ( main:2::signed_multiply_results_compare:15::signed_multiply:27 [ signed_multiply_results_compare::a#6 signed_multiply_results_compare::b#2 signed_multiply_results_compare::ms#0 line_cursor#1 signed_multiply::a#0 signed_multiply::b#0 signed_multiply::m#0 signed_multiply::$6 ] ) - [120] (byte/signed byte/word/signed word~) signed_multiply::$16 ← (byte~) signed_multiply::$6 - (byte)(signed byte) signed_multiply::b#0 [ signed_multiply::a#0 signed_multiply::b#0 signed_multiply::m#0 signed_multiply::$16 ] ( main:2::signed_multiply_results_compare:15::signed_multiply:27 [ signed_multiply_results_compare::a#6 signed_multiply_results_compare::b#2 signed_multiply_results_compare::ms#0 line_cursor#1 signed_multiply::a#0 signed_multiply::b#0 signed_multiply::m#0 signed_multiply::$16 ] ) - [121] (word) signed_multiply::m#1 ← (word) signed_multiply::m#0 hi= (byte/signed byte/word/signed word~) signed_multiply::$16 [ signed_multiply::a#0 signed_multiply::b#0 signed_multiply::m#1 ] ( main:2::signed_multiply_results_compare:15::signed_multiply:27 [ signed_multiply_results_compare::a#6 signed_multiply_results_compare::b#2 signed_multiply_results_compare::ms#0 line_cursor#1 signed_multiply::a#0 signed_multiply::b#0 signed_multiply::m#1 ] ) + [120] (byte/signed byte/word/signed word/dword/signed dword~) signed_multiply::$16 ← (byte~) signed_multiply::$6 - (byte)(signed byte) signed_multiply::b#0 [ signed_multiply::a#0 signed_multiply::b#0 signed_multiply::m#0 signed_multiply::$16 ] ( main:2::signed_multiply_results_compare:15::signed_multiply:27 [ signed_multiply_results_compare::a#6 signed_multiply_results_compare::b#2 signed_multiply_results_compare::ms#0 line_cursor#1 signed_multiply::a#0 signed_multiply::b#0 signed_multiply::m#0 signed_multiply::$16 ] ) + [121] (word) signed_multiply::m#1 ← (word) signed_multiply::m#0 hi= (byte/signed byte/word/signed word/dword/signed dword~) signed_multiply::$16 [ signed_multiply::a#0 signed_multiply::b#0 signed_multiply::m#1 ] ( main:2::signed_multiply_results_compare:15::signed_multiply:27 [ signed_multiply_results_compare::a#6 signed_multiply_results_compare::b#2 signed_multiply_results_compare::ms#0 line_cursor#1 signed_multiply::a#0 signed_multiply::b#0 signed_multiply::m#1 ] ) to:signed_multiply::@1 signed_multiply::@1: scope:[signed_multiply] from signed_multiply::@3 signed_multiply::@6 [122] (word) signed_multiply::m#5 ← phi( signed_multiply::@3/(word) signed_multiply::m#1 signed_multiply::@6/(word) signed_multiply::m#0 ) [ signed_multiply::a#0 signed_multiply::b#0 signed_multiply::m#5 ] ( main:2::signed_multiply_results_compare:15::signed_multiply:27 [ signed_multiply_results_compare::a#6 signed_multiply_results_compare::b#2 signed_multiply_results_compare::ms#0 line_cursor#1 signed_multiply::a#0 signed_multiply::b#0 signed_multiply::m#5 ] ) @@ -5385,8 +5385,8 @@ signed_multiply::@1: scope:[signed_multiply] from signed_multiply::@3 signed_mu to:signed_multiply::@4 signed_multiply::@4: scope:[signed_multiply] from signed_multiply::@1 [124] (byte~) signed_multiply::$12 ← > (word) signed_multiply::m#5 [ signed_multiply::a#0 signed_multiply::m#5 signed_multiply::$12 ] ( main:2::signed_multiply_results_compare:15::signed_multiply:27 [ signed_multiply_results_compare::a#6 signed_multiply_results_compare::b#2 signed_multiply_results_compare::ms#0 line_cursor#1 signed_multiply::a#0 signed_multiply::m#5 signed_multiply::$12 ] ) - [125] (byte/signed byte/word/signed word~) signed_multiply::$17 ← (byte~) signed_multiply::$12 - (byte)(signed byte) signed_multiply::a#0 [ signed_multiply::m#5 signed_multiply::$17 ] ( main:2::signed_multiply_results_compare:15::signed_multiply:27 [ signed_multiply_results_compare::a#6 signed_multiply_results_compare::b#2 signed_multiply_results_compare::ms#0 line_cursor#1 signed_multiply::m#5 signed_multiply::$17 ] ) - [126] (word) signed_multiply::m#2 ← (word) signed_multiply::m#5 hi= (byte/signed byte/word/signed word~) signed_multiply::$17 [ signed_multiply::m#2 ] ( main:2::signed_multiply_results_compare:15::signed_multiply:27 [ signed_multiply_results_compare::a#6 signed_multiply_results_compare::b#2 signed_multiply_results_compare::ms#0 line_cursor#1 signed_multiply::m#2 ] ) + [125] (byte/signed byte/word/signed word/dword/signed dword~) signed_multiply::$17 ← (byte~) signed_multiply::$12 - (byte)(signed byte) signed_multiply::a#0 [ signed_multiply::m#5 signed_multiply::$17 ] ( main:2::signed_multiply_results_compare:15::signed_multiply:27 [ signed_multiply_results_compare::a#6 signed_multiply_results_compare::b#2 signed_multiply_results_compare::ms#0 line_cursor#1 signed_multiply::m#5 signed_multiply::$17 ] ) + [126] (word) signed_multiply::m#2 ← (word) signed_multiply::m#5 hi= (byte/signed byte/word/signed word/dword/signed dword~) signed_multiply::$17 [ signed_multiply::m#2 ] ( main:2::signed_multiply_results_compare:15::signed_multiply:27 [ signed_multiply_results_compare::a#6 signed_multiply_results_compare::b#2 signed_multiply_results_compare::ms#0 line_cursor#1 signed_multiply::m#2 ] ) to:signed_multiply::@2 signed_multiply::@2: scope:[signed_multiply] from signed_multiply::@1 signed_multiply::@4 [127] (word) signed_multiply::m#4 ← phi( signed_multiply::@1/(word) signed_multiply::m#5 signed_multiply::@4/(word) signed_multiply::m#2 ) [ signed_multiply::m#4 ] ( main:2::signed_multiply_results_compare:15::signed_multiply:27 [ signed_multiply_results_compare::a#6 signed_multiply_results_compare::b#2 signed_multiply_results_compare::ms#0 line_cursor#1 signed_multiply::m#4 ] ) @@ -6030,8 +6030,8 @@ VARIABLE REGISTER WEIGHTS (word~) print_word::w#9 4.0 (signed word()) signed_multiply((signed byte) signed_multiply::a , (signed byte) signed_multiply::b) (byte~) signed_multiply::$12 4.0 -(byte/signed byte/word/signed word~) signed_multiply::$16 4.0 -(byte/signed byte/word/signed word~) signed_multiply::$17 4.0 +(byte/signed byte/word/signed word/dword/signed dword~) signed_multiply::$16 4.0 +(byte/signed byte/word/signed word/dword/signed dword~) signed_multiply::$17 4.0 (byte~) signed_multiply::$6 4.0 (signed byte) signed_multiply::a (signed byte) signed_multiply::a#0 7.357142857142858 @@ -6991,12 +6991,12 @@ signed_multiply: { //SEG245 [119] (byte~) signed_multiply::$6 ← > (word) signed_multiply::m#0 [ signed_multiply::a#0 signed_multiply::b#0 signed_multiply::m#0 signed_multiply::$6 ] ( main:2::signed_multiply_results_compare:15::signed_multiply:27 [ signed_multiply_results_compare::a#6 signed_multiply_results_compare::b#2 signed_multiply_results_compare::ms#0 line_cursor#1 signed_multiply::a#0 signed_multiply::b#0 signed_multiply::m#0 signed_multiply::$6 ] ) -- vbuz1=_hi_vwuz2 lda m+1 sta _6 - //SEG246 [120] (byte/signed byte/word/signed word~) signed_multiply::$16 ← (byte~) signed_multiply::$6 - (byte)(signed byte) signed_multiply::b#0 [ signed_multiply::a#0 signed_multiply::b#0 signed_multiply::m#0 signed_multiply::$16 ] ( main:2::signed_multiply_results_compare:15::signed_multiply:27 [ signed_multiply_results_compare::a#6 signed_multiply_results_compare::b#2 signed_multiply_results_compare::ms#0 line_cursor#1 signed_multiply::a#0 signed_multiply::b#0 signed_multiply::m#0 signed_multiply::$16 ] ) -- vbuz1=vbuz2_minus_vbuz3 + //SEG246 [120] (byte/signed byte/word/signed word/dword/signed dword~) signed_multiply::$16 ← (byte~) signed_multiply::$6 - (byte)(signed byte) signed_multiply::b#0 [ signed_multiply::a#0 signed_multiply::b#0 signed_multiply::m#0 signed_multiply::$16 ] ( main:2::signed_multiply_results_compare:15::signed_multiply:27 [ signed_multiply_results_compare::a#6 signed_multiply_results_compare::b#2 signed_multiply_results_compare::ms#0 line_cursor#1 signed_multiply::a#0 signed_multiply::b#0 signed_multiply::m#0 signed_multiply::$16 ] ) -- vbuz1=vbuz2_minus_vbuz3 lda _6 sec sbc b sta _16 - //SEG247 [121] (word) signed_multiply::m#1 ← (word) signed_multiply::m#0 hi= (byte/signed byte/word/signed word~) signed_multiply::$16 [ signed_multiply::a#0 signed_multiply::b#0 signed_multiply::m#1 ] ( main:2::signed_multiply_results_compare:15::signed_multiply:27 [ signed_multiply_results_compare::a#6 signed_multiply_results_compare::b#2 signed_multiply_results_compare::ms#0 line_cursor#1 signed_multiply::a#0 signed_multiply::b#0 signed_multiply::m#1 ] ) -- vwuz1=vwuz1_sethi_vbuz2 + //SEG247 [121] (word) signed_multiply::m#1 ← (word) signed_multiply::m#0 hi= (byte/signed byte/word/signed word/dword/signed dword~) signed_multiply::$16 [ signed_multiply::a#0 signed_multiply::b#0 signed_multiply::m#1 ] ( main:2::signed_multiply_results_compare:15::signed_multiply:27 [ signed_multiply_results_compare::a#6 signed_multiply_results_compare::b#2 signed_multiply_results_compare::ms#0 line_cursor#1 signed_multiply::a#0 signed_multiply::b#0 signed_multiply::m#1 ] ) -- vwuz1=vwuz1_sethi_vbuz2 lda _16 sta m+1 //SEG248 [122] phi from signed_multiply::@3 signed_multiply::@6 to signed_multiply::@1 [phi:signed_multiply::@3/signed_multiply::@6->signed_multiply::@1] @@ -7016,12 +7016,12 @@ signed_multiply: { //SEG253 [124] (byte~) signed_multiply::$12 ← > (word) signed_multiply::m#5 [ signed_multiply::a#0 signed_multiply::m#5 signed_multiply::$12 ] ( main:2::signed_multiply_results_compare:15::signed_multiply:27 [ signed_multiply_results_compare::a#6 signed_multiply_results_compare::b#2 signed_multiply_results_compare::ms#0 line_cursor#1 signed_multiply::a#0 signed_multiply::m#5 signed_multiply::$12 ] ) -- vbuz1=_hi_vwuz2 lda m+1 sta _12 - //SEG254 [125] (byte/signed byte/word/signed word~) signed_multiply::$17 ← (byte~) signed_multiply::$12 - (byte)(signed byte) signed_multiply::a#0 [ signed_multiply::m#5 signed_multiply::$17 ] ( main:2::signed_multiply_results_compare:15::signed_multiply:27 [ signed_multiply_results_compare::a#6 signed_multiply_results_compare::b#2 signed_multiply_results_compare::ms#0 line_cursor#1 signed_multiply::m#5 signed_multiply::$17 ] ) -- vbuz1=vbuz2_minus_vbuz3 + //SEG254 [125] (byte/signed byte/word/signed word/dword/signed dword~) signed_multiply::$17 ← (byte~) signed_multiply::$12 - (byte)(signed byte) signed_multiply::a#0 [ signed_multiply::m#5 signed_multiply::$17 ] ( main:2::signed_multiply_results_compare:15::signed_multiply:27 [ signed_multiply_results_compare::a#6 signed_multiply_results_compare::b#2 signed_multiply_results_compare::ms#0 line_cursor#1 signed_multiply::m#5 signed_multiply::$17 ] ) -- vbuz1=vbuz2_minus_vbuz3 lda _12 sec sbc a sta _17 - //SEG255 [126] (word) signed_multiply::m#2 ← (word) signed_multiply::m#5 hi= (byte/signed byte/word/signed word~) signed_multiply::$17 [ signed_multiply::m#2 ] ( main:2::signed_multiply_results_compare:15::signed_multiply:27 [ signed_multiply_results_compare::a#6 signed_multiply_results_compare::b#2 signed_multiply_results_compare::ms#0 line_cursor#1 signed_multiply::m#2 ] ) -- vwuz1=vwuz1_sethi_vbuz2 + //SEG255 [126] (word) signed_multiply::m#2 ← (word) signed_multiply::m#5 hi= (byte/signed byte/word/signed word/dword/signed dword~) signed_multiply::$17 [ signed_multiply::m#2 ] ( main:2::signed_multiply_results_compare:15::signed_multiply:27 [ signed_multiply_results_compare::a#6 signed_multiply_results_compare::b#2 signed_multiply_results_compare::ms#0 line_cursor#1 signed_multiply::m#2 ] ) -- vwuz1=vwuz1_sethi_vbuz2 lda _17 sta m+1 //SEG256 [127] phi from signed_multiply::@1 signed_multiply::@4 to signed_multiply::@2 [phi:signed_multiply::@1/signed_multiply::@4->signed_multiply::@2] @@ -8100,9 +8100,9 @@ Removing always clobbered register reg byte a as potential for zp ZP_BYTE:56 [ s Removing always clobbered register reg byte a as potential for zp ZP_BYTE:57 [ signed_multiply::b#0 ] Statement [117] (word) signed_multiply::m#0 ← (word) multiply::return#2 [ signed_multiply::a#0 signed_multiply::b#0 signed_multiply::m#0 ] ( main:2::signed_multiply_results_compare:15::signed_multiply:27 [ signed_multiply_results_compare::a#6 signed_multiply_results_compare::b#2 signed_multiply_results_compare::ms#0 line_cursor#1 signed_multiply::a#0 signed_multiply::b#0 signed_multiply::m#0 ] ) always clobbers reg byte a Statement [119] (byte~) signed_multiply::$6 ← > (word) signed_multiply::m#0 [ signed_multiply::a#0 signed_multiply::b#0 signed_multiply::m#0 signed_multiply::$6 ] ( main:2::signed_multiply_results_compare:15::signed_multiply:27 [ signed_multiply_results_compare::a#6 signed_multiply_results_compare::b#2 signed_multiply_results_compare::ms#0 line_cursor#1 signed_multiply::a#0 signed_multiply::b#0 signed_multiply::m#0 signed_multiply::$6 ] ) always clobbers reg byte a -Statement [120] (byte/signed byte/word/signed word~) signed_multiply::$16 ← (byte~) signed_multiply::$6 - (byte)(signed byte) signed_multiply::b#0 [ signed_multiply::a#0 signed_multiply::b#0 signed_multiply::m#0 signed_multiply::$16 ] ( main:2::signed_multiply_results_compare:15::signed_multiply:27 [ signed_multiply_results_compare::a#6 signed_multiply_results_compare::b#2 signed_multiply_results_compare::ms#0 line_cursor#1 signed_multiply::a#0 signed_multiply::b#0 signed_multiply::m#0 signed_multiply::$16 ] ) always clobbers reg byte a +Statement [120] (byte/signed byte/word/signed word/dword/signed dword~) signed_multiply::$16 ← (byte~) signed_multiply::$6 - (byte)(signed byte) signed_multiply::b#0 [ signed_multiply::a#0 signed_multiply::b#0 signed_multiply::m#0 signed_multiply::$16 ] ( main:2::signed_multiply_results_compare:15::signed_multiply:27 [ signed_multiply_results_compare::a#6 signed_multiply_results_compare::b#2 signed_multiply_results_compare::ms#0 line_cursor#1 signed_multiply::a#0 signed_multiply::b#0 signed_multiply::m#0 signed_multiply::$16 ] ) always clobbers reg byte a Statement [124] (byte~) signed_multiply::$12 ← > (word) signed_multiply::m#5 [ signed_multiply::a#0 signed_multiply::m#5 signed_multiply::$12 ] ( main:2::signed_multiply_results_compare:15::signed_multiply:27 [ signed_multiply_results_compare::a#6 signed_multiply_results_compare::b#2 signed_multiply_results_compare::ms#0 line_cursor#1 signed_multiply::a#0 signed_multiply::m#5 signed_multiply::$12 ] ) always clobbers reg byte a -Statement [125] (byte/signed byte/word/signed word~) signed_multiply::$17 ← (byte~) signed_multiply::$12 - (byte)(signed byte) signed_multiply::a#0 [ signed_multiply::m#5 signed_multiply::$17 ] ( main:2::signed_multiply_results_compare:15::signed_multiply:27 [ signed_multiply_results_compare::a#6 signed_multiply_results_compare::b#2 signed_multiply_results_compare::ms#0 line_cursor#1 signed_multiply::m#5 signed_multiply::$17 ] ) always clobbers reg byte a +Statement [125] (byte/signed byte/word/signed word/dword/signed dword~) signed_multiply::$17 ← (byte~) signed_multiply::$12 - (byte)(signed byte) signed_multiply::a#0 [ signed_multiply::m#5 signed_multiply::$17 ] ( main:2::signed_multiply_results_compare:15::signed_multiply:27 [ signed_multiply_results_compare::a#6 signed_multiply_results_compare::b#2 signed_multiply_results_compare::ms#0 line_cursor#1 signed_multiply::m#5 signed_multiply::$17 ] ) always clobbers reg byte a Statement asm { ldamemA stasm1+1 stasm3+1 eor#$ff stasm2+1 stasm4+1 ldxmemB sec sm1: ldamul_sqr1_lo,x sm2: sbcmul_sqr2_lo,x stamemA sm3: ldamul_sqr1_hi,x sm4: sbcmul_sqr2_hi,x stamemB } always clobbers reg byte a reg byte x Removing always clobbered register reg byte x as potential for zp ZP_BYTE:2 [ signed_multiply_results_compare::a#6 signed_multiply_results_compare::a#1 ] Removing always clobbered register reg byte x as potential for zp ZP_BYTE:3 [ signed_multiply_results_compare::b#2 signed_multiply_results_compare::b#1 ] @@ -8195,9 +8195,9 @@ Statement [108] (signed byte) print_sbyte::b#0 ← - (signed byte) print_sbyte:: Statement [116] (word) multiply::return#2 ← (word) multiply::return#0 [ signed_multiply::a#0 signed_multiply::b#0 multiply::return#2 ] ( main:2::signed_multiply_results_compare:15::signed_multiply:27 [ signed_multiply_results_compare::a#6 signed_multiply_results_compare::b#2 signed_multiply_results_compare::ms#0 line_cursor#1 signed_multiply::a#0 signed_multiply::b#0 multiply::return#2 ] ) always clobbers reg byte a Statement [117] (word) signed_multiply::m#0 ← (word) multiply::return#2 [ signed_multiply::a#0 signed_multiply::b#0 signed_multiply::m#0 ] ( main:2::signed_multiply_results_compare:15::signed_multiply:27 [ signed_multiply_results_compare::a#6 signed_multiply_results_compare::b#2 signed_multiply_results_compare::ms#0 line_cursor#1 signed_multiply::a#0 signed_multiply::b#0 signed_multiply::m#0 ] ) always clobbers reg byte a Statement [119] (byte~) signed_multiply::$6 ← > (word) signed_multiply::m#0 [ signed_multiply::a#0 signed_multiply::b#0 signed_multiply::m#0 signed_multiply::$6 ] ( main:2::signed_multiply_results_compare:15::signed_multiply:27 [ signed_multiply_results_compare::a#6 signed_multiply_results_compare::b#2 signed_multiply_results_compare::ms#0 line_cursor#1 signed_multiply::a#0 signed_multiply::b#0 signed_multiply::m#0 signed_multiply::$6 ] ) always clobbers reg byte a -Statement [120] (byte/signed byte/word/signed word~) signed_multiply::$16 ← (byte~) signed_multiply::$6 - (byte)(signed byte) signed_multiply::b#0 [ signed_multiply::a#0 signed_multiply::b#0 signed_multiply::m#0 signed_multiply::$16 ] ( main:2::signed_multiply_results_compare:15::signed_multiply:27 [ signed_multiply_results_compare::a#6 signed_multiply_results_compare::b#2 signed_multiply_results_compare::ms#0 line_cursor#1 signed_multiply::a#0 signed_multiply::b#0 signed_multiply::m#0 signed_multiply::$16 ] ) always clobbers reg byte a +Statement [120] (byte/signed byte/word/signed word/dword/signed dword~) signed_multiply::$16 ← (byte~) signed_multiply::$6 - (byte)(signed byte) signed_multiply::b#0 [ signed_multiply::a#0 signed_multiply::b#0 signed_multiply::m#0 signed_multiply::$16 ] ( main:2::signed_multiply_results_compare:15::signed_multiply:27 [ signed_multiply_results_compare::a#6 signed_multiply_results_compare::b#2 signed_multiply_results_compare::ms#0 line_cursor#1 signed_multiply::a#0 signed_multiply::b#0 signed_multiply::m#0 signed_multiply::$16 ] ) always clobbers reg byte a Statement [124] (byte~) signed_multiply::$12 ← > (word) signed_multiply::m#5 [ signed_multiply::a#0 signed_multiply::m#5 signed_multiply::$12 ] ( main:2::signed_multiply_results_compare:15::signed_multiply:27 [ signed_multiply_results_compare::a#6 signed_multiply_results_compare::b#2 signed_multiply_results_compare::ms#0 line_cursor#1 signed_multiply::a#0 signed_multiply::m#5 signed_multiply::$12 ] ) always clobbers reg byte a -Statement [125] (byte/signed byte/word/signed word~) signed_multiply::$17 ← (byte~) signed_multiply::$12 - (byte)(signed byte) signed_multiply::a#0 [ signed_multiply::m#5 signed_multiply::$17 ] ( main:2::signed_multiply_results_compare:15::signed_multiply:27 [ signed_multiply_results_compare::a#6 signed_multiply_results_compare::b#2 signed_multiply_results_compare::ms#0 line_cursor#1 signed_multiply::m#5 signed_multiply::$17 ] ) always clobbers reg byte a +Statement [125] (byte/signed byte/word/signed word/dword/signed dword~) signed_multiply::$17 ← (byte~) signed_multiply::$12 - (byte)(signed byte) signed_multiply::a#0 [ signed_multiply::m#5 signed_multiply::$17 ] ( main:2::signed_multiply_results_compare:15::signed_multiply:27 [ signed_multiply_results_compare::a#6 signed_multiply_results_compare::b#2 signed_multiply_results_compare::ms#0 line_cursor#1 signed_multiply::m#5 signed_multiply::$17 ] ) always clobbers reg byte a Statement asm { ldamemA stasm1+1 stasm3+1 eor#$ff stasm2+1 stasm4+1 ldxmemB sec sm1: ldamul_sqr1_lo,x sm2: sbcmul_sqr2_lo,x stamemA sm3: ldamul_sqr1_hi,x sm4: sbcmul_sqr2_hi,x stamemB } always clobbers reg byte a reg byte x Statement [133] (word) multiply::return#0 ← *((const byte*) multiply::memB#0) w= *((const byte*) multiply::memA#0) [ multiply::return#0 ] ( main:2::signed_multiply_results_compare:15::signed_multiply:27::multiply:115 [ signed_multiply_results_compare::a#6 signed_multiply_results_compare::b#2 signed_multiply_results_compare::ms#0 line_cursor#1 signed_multiply::a#0 signed_multiply::b#0 multiply::return#0 ] main:2::multiply_results_compare:13::multiply:157 [ line_cursor#27 char_cursor#27 multiply_results_compare::a#6 multiply_results_compare::b#2 multiply_results_compare::ms#0 multiply::return#0 ] ) always clobbers reg byte a Statement [137] (signed word) slow_signed_multiply::m#1 ← (signed word) slow_signed_multiply::m#3 - (signed byte) slow_signed_multiply::b#0 [ slow_signed_multiply::a#0 slow_signed_multiply::b#0 slow_signed_multiply::i#2 slow_signed_multiply::m#1 ] ( main:2::signed_multiply_results_compare:15::slow_signed_multiply:22 [ signed_multiply_results_compare::a#6 signed_multiply_results_compare::b#2 line_cursor#1 slow_signed_multiply::a#0 slow_signed_multiply::b#0 slow_signed_multiply::i#2 slow_signed_multiply::m#1 ] ) always clobbers reg byte a @@ -9054,10 +9054,10 @@ signed_multiply: { b3: //SEG245 [119] (byte~) signed_multiply::$6 ← > (word) signed_multiply::m#0 [ signed_multiply::a#0 signed_multiply::b#0 signed_multiply::m#0 signed_multiply::$6 ] ( main:2::signed_multiply_results_compare:15::signed_multiply:27 [ signed_multiply_results_compare::a#6 signed_multiply_results_compare::b#2 signed_multiply_results_compare::ms#0 line_cursor#1 signed_multiply::a#0 signed_multiply::b#0 signed_multiply::m#0 signed_multiply::$6 ] ) -- vbuaa=_hi_vwuz1 lda m+1 - //SEG246 [120] (byte/signed byte/word/signed word~) signed_multiply::$16 ← (byte~) signed_multiply::$6 - (byte)(signed byte) signed_multiply::b#0 [ signed_multiply::a#0 signed_multiply::b#0 signed_multiply::m#0 signed_multiply::$16 ] ( main:2::signed_multiply_results_compare:15::signed_multiply:27 [ signed_multiply_results_compare::a#6 signed_multiply_results_compare::b#2 signed_multiply_results_compare::ms#0 line_cursor#1 signed_multiply::a#0 signed_multiply::b#0 signed_multiply::m#0 signed_multiply::$16 ] ) -- vbuaa=vbuaa_minus_vbuz1 + //SEG246 [120] (byte/signed byte/word/signed word/dword/signed dword~) signed_multiply::$16 ← (byte~) signed_multiply::$6 - (byte)(signed byte) signed_multiply::b#0 [ signed_multiply::a#0 signed_multiply::b#0 signed_multiply::m#0 signed_multiply::$16 ] ( main:2::signed_multiply_results_compare:15::signed_multiply:27 [ signed_multiply_results_compare::a#6 signed_multiply_results_compare::b#2 signed_multiply_results_compare::ms#0 line_cursor#1 signed_multiply::a#0 signed_multiply::b#0 signed_multiply::m#0 signed_multiply::$16 ] ) -- vbuaa=vbuaa_minus_vbuz1 sec sbc b - //SEG247 [121] (word) signed_multiply::m#1 ← (word) signed_multiply::m#0 hi= (byte/signed byte/word/signed word~) signed_multiply::$16 [ signed_multiply::a#0 signed_multiply::b#0 signed_multiply::m#1 ] ( main:2::signed_multiply_results_compare:15::signed_multiply:27 [ signed_multiply_results_compare::a#6 signed_multiply_results_compare::b#2 signed_multiply_results_compare::ms#0 line_cursor#1 signed_multiply::a#0 signed_multiply::b#0 signed_multiply::m#1 ] ) -- vwuz1=vwuz1_sethi_vbuaa + //SEG247 [121] (word) signed_multiply::m#1 ← (word) signed_multiply::m#0 hi= (byte/signed byte/word/signed word/dword/signed dword~) signed_multiply::$16 [ signed_multiply::a#0 signed_multiply::b#0 signed_multiply::m#1 ] ( main:2::signed_multiply_results_compare:15::signed_multiply:27 [ signed_multiply_results_compare::a#6 signed_multiply_results_compare::b#2 signed_multiply_results_compare::ms#0 line_cursor#1 signed_multiply::a#0 signed_multiply::b#0 signed_multiply::m#1 ] ) -- vwuz1=vwuz1_sethi_vbuaa sta m+1 //SEG248 [122] phi from signed_multiply::@3 signed_multiply::@6 to signed_multiply::@1 [phi:signed_multiply::@3/signed_multiply::@6->signed_multiply::@1] b1_from_b3: @@ -9075,11 +9075,11 @@ signed_multiply: { b4: //SEG253 [124] (byte~) signed_multiply::$12 ← > (word) signed_multiply::m#5 [ signed_multiply::a#0 signed_multiply::m#5 signed_multiply::$12 ] ( main:2::signed_multiply_results_compare:15::signed_multiply:27 [ signed_multiply_results_compare::a#6 signed_multiply_results_compare::b#2 signed_multiply_results_compare::ms#0 line_cursor#1 signed_multiply::a#0 signed_multiply::m#5 signed_multiply::$12 ] ) -- vbuaa=_hi_vwuz1 lda m+1 - //SEG254 [125] (byte/signed byte/word/signed word~) signed_multiply::$17 ← (byte~) signed_multiply::$12 - (byte)(signed byte) signed_multiply::a#0 [ signed_multiply::m#5 signed_multiply::$17 ] ( main:2::signed_multiply_results_compare:15::signed_multiply:27 [ signed_multiply_results_compare::a#6 signed_multiply_results_compare::b#2 signed_multiply_results_compare::ms#0 line_cursor#1 signed_multiply::m#5 signed_multiply::$17 ] ) -- vbuaa=vbuaa_minus_vbuyy + //SEG254 [125] (byte/signed byte/word/signed word/dword/signed dword~) signed_multiply::$17 ← (byte~) signed_multiply::$12 - (byte)(signed byte) signed_multiply::a#0 [ signed_multiply::m#5 signed_multiply::$17 ] ( main:2::signed_multiply_results_compare:15::signed_multiply:27 [ signed_multiply_results_compare::a#6 signed_multiply_results_compare::b#2 signed_multiply_results_compare::ms#0 line_cursor#1 signed_multiply::m#5 signed_multiply::$17 ] ) -- vbuaa=vbuaa_minus_vbuyy sty $ff sec sbc $ff - //SEG255 [126] (word) signed_multiply::m#2 ← (word) signed_multiply::m#5 hi= (byte/signed byte/word/signed word~) signed_multiply::$17 [ signed_multiply::m#2 ] ( main:2::signed_multiply_results_compare:15::signed_multiply:27 [ signed_multiply_results_compare::a#6 signed_multiply_results_compare::b#2 signed_multiply_results_compare::ms#0 line_cursor#1 signed_multiply::m#2 ] ) -- vwuz1=vwuz1_sethi_vbuaa + //SEG255 [126] (word) signed_multiply::m#2 ← (word) signed_multiply::m#5 hi= (byte/signed byte/word/signed word/dword/signed dword~) signed_multiply::$17 [ signed_multiply::m#2 ] ( main:2::signed_multiply_results_compare:15::signed_multiply:27 [ signed_multiply_results_compare::a#6 signed_multiply_results_compare::b#2 signed_multiply_results_compare::ms#0 line_cursor#1 signed_multiply::m#2 ] ) -- vwuz1=vwuz1_sethi_vbuaa sta m+1 //SEG256 [127] phi from signed_multiply::@1 signed_multiply::@4 to signed_multiply::@2 [phi:signed_multiply::@1/signed_multiply::@4->signed_multiply::@2] b2_from_b1: @@ -10654,8 +10654,8 @@ FINAL SYMBOL TABLE (word~) print_word::w#9 w zp ZP_WORD:6 4.0 (signed word()) signed_multiply((signed byte) signed_multiply::a , (signed byte) signed_multiply::b) (byte~) signed_multiply::$12 reg byte a 4.0 -(byte/signed byte/word/signed word~) signed_multiply::$16 reg byte a 4.0 -(byte/signed byte/word/signed word~) signed_multiply::$17 reg byte a 4.0 +(byte/signed byte/word/signed word/dword/signed dword~) signed_multiply::$16 reg byte a 4.0 +(byte/signed byte/word/signed word/dword/signed dword~) signed_multiply::$17 reg byte a 4.0 (byte~) signed_multiply::$6 reg byte a 4.0 (label) signed_multiply::@1 (label) signed_multiply::@2 @@ -11303,10 +11303,10 @@ signed_multiply: { //SEG244 signed_multiply::@3 //SEG245 [119] (byte~) signed_multiply::$6 ← > (word) signed_multiply::m#0 [ signed_multiply::a#0 signed_multiply::b#0 signed_multiply::m#0 signed_multiply::$6 ] ( main:2::signed_multiply_results_compare:15::signed_multiply:27 [ signed_multiply_results_compare::a#6 signed_multiply_results_compare::b#2 signed_multiply_results_compare::ms#0 line_cursor#1 signed_multiply::a#0 signed_multiply::b#0 signed_multiply::m#0 signed_multiply::$6 ] ) -- vbuaa=_hi_vwuz1 lda m+1 - //SEG246 [120] (byte/signed byte/word/signed word~) signed_multiply::$16 ← (byte~) signed_multiply::$6 - (byte)(signed byte) signed_multiply::b#0 [ signed_multiply::a#0 signed_multiply::b#0 signed_multiply::m#0 signed_multiply::$16 ] ( main:2::signed_multiply_results_compare:15::signed_multiply:27 [ signed_multiply_results_compare::a#6 signed_multiply_results_compare::b#2 signed_multiply_results_compare::ms#0 line_cursor#1 signed_multiply::a#0 signed_multiply::b#0 signed_multiply::m#0 signed_multiply::$16 ] ) -- vbuaa=vbuaa_minus_vbuz1 + //SEG246 [120] (byte/signed byte/word/signed word/dword/signed dword~) signed_multiply::$16 ← (byte~) signed_multiply::$6 - (byte)(signed byte) signed_multiply::b#0 [ signed_multiply::a#0 signed_multiply::b#0 signed_multiply::m#0 signed_multiply::$16 ] ( main:2::signed_multiply_results_compare:15::signed_multiply:27 [ signed_multiply_results_compare::a#6 signed_multiply_results_compare::b#2 signed_multiply_results_compare::ms#0 line_cursor#1 signed_multiply::a#0 signed_multiply::b#0 signed_multiply::m#0 signed_multiply::$16 ] ) -- vbuaa=vbuaa_minus_vbuz1 sec sbc b - //SEG247 [121] (word) signed_multiply::m#1 ← (word) signed_multiply::m#0 hi= (byte/signed byte/word/signed word~) signed_multiply::$16 [ signed_multiply::a#0 signed_multiply::b#0 signed_multiply::m#1 ] ( main:2::signed_multiply_results_compare:15::signed_multiply:27 [ signed_multiply_results_compare::a#6 signed_multiply_results_compare::b#2 signed_multiply_results_compare::ms#0 line_cursor#1 signed_multiply::a#0 signed_multiply::b#0 signed_multiply::m#1 ] ) -- vwuz1=vwuz1_sethi_vbuaa + //SEG247 [121] (word) signed_multiply::m#1 ← (word) signed_multiply::m#0 hi= (byte/signed byte/word/signed word/dword/signed dword~) signed_multiply::$16 [ signed_multiply::a#0 signed_multiply::b#0 signed_multiply::m#1 ] ( main:2::signed_multiply_results_compare:15::signed_multiply:27 [ signed_multiply_results_compare::a#6 signed_multiply_results_compare::b#2 signed_multiply_results_compare::ms#0 line_cursor#1 signed_multiply::a#0 signed_multiply::b#0 signed_multiply::m#1 ] ) -- vwuz1=vwuz1_sethi_vbuaa sta m+1 //SEG248 [122] phi from signed_multiply::@3 signed_multiply::@6 to signed_multiply::@1 [phi:signed_multiply::@3/signed_multiply::@6->signed_multiply::@1] //SEG249 [122] phi (word) signed_multiply::m#5 = (word) signed_multiply::m#1 [phi:signed_multiply::@3/signed_multiply::@6->signed_multiply::@1#0] -- register_copy @@ -11319,11 +11319,11 @@ signed_multiply: { //SEG252 signed_multiply::@4 //SEG253 [124] (byte~) signed_multiply::$12 ← > (word) signed_multiply::m#5 [ signed_multiply::a#0 signed_multiply::m#5 signed_multiply::$12 ] ( main:2::signed_multiply_results_compare:15::signed_multiply:27 [ signed_multiply_results_compare::a#6 signed_multiply_results_compare::b#2 signed_multiply_results_compare::ms#0 line_cursor#1 signed_multiply::a#0 signed_multiply::m#5 signed_multiply::$12 ] ) -- vbuaa=_hi_vwuz1 lda m+1 - //SEG254 [125] (byte/signed byte/word/signed word~) signed_multiply::$17 ← (byte~) signed_multiply::$12 - (byte)(signed byte) signed_multiply::a#0 [ signed_multiply::m#5 signed_multiply::$17 ] ( main:2::signed_multiply_results_compare:15::signed_multiply:27 [ signed_multiply_results_compare::a#6 signed_multiply_results_compare::b#2 signed_multiply_results_compare::ms#0 line_cursor#1 signed_multiply::m#5 signed_multiply::$17 ] ) -- vbuaa=vbuaa_minus_vbuyy + //SEG254 [125] (byte/signed byte/word/signed word/dword/signed dword~) signed_multiply::$17 ← (byte~) signed_multiply::$12 - (byte)(signed byte) signed_multiply::a#0 [ signed_multiply::m#5 signed_multiply::$17 ] ( main:2::signed_multiply_results_compare:15::signed_multiply:27 [ signed_multiply_results_compare::a#6 signed_multiply_results_compare::b#2 signed_multiply_results_compare::ms#0 line_cursor#1 signed_multiply::m#5 signed_multiply::$17 ] ) -- vbuaa=vbuaa_minus_vbuyy sty $ff sec sbc $ff - //SEG255 [126] (word) signed_multiply::m#2 ← (word) signed_multiply::m#5 hi= (byte/signed byte/word/signed word~) signed_multiply::$17 [ signed_multiply::m#2 ] ( main:2::signed_multiply_results_compare:15::signed_multiply:27 [ signed_multiply_results_compare::a#6 signed_multiply_results_compare::b#2 signed_multiply_results_compare::ms#0 line_cursor#1 signed_multiply::m#2 ] ) -- vwuz1=vwuz1_sethi_vbuaa + //SEG255 [126] (word) signed_multiply::m#2 ← (word) signed_multiply::m#5 hi= (byte/signed byte/word/signed word/dword/signed dword~) signed_multiply::$17 [ signed_multiply::m#2 ] ( main:2::signed_multiply_results_compare:15::signed_multiply:27 [ signed_multiply_results_compare::a#6 signed_multiply_results_compare::b#2 signed_multiply_results_compare::ms#0 line_cursor#1 signed_multiply::m#2 ] ) -- vwuz1=vwuz1_sethi_vbuaa sta m+1 //SEG256 [127] phi from signed_multiply::@1 signed_multiply::@4 to signed_multiply::@2 [phi:signed_multiply::@1/signed_multiply::@4->signed_multiply::@2] //SEG257 [127] phi (word) signed_multiply::m#4 = (word) signed_multiply::m#5 [phi:signed_multiply::@1/signed_multiply::@4->signed_multiply::@2#0] -- register_copy diff --git a/src/test/java/dk/camelot64/kickc/test/ref/test-multiply.sym b/src/test/java/dk/camelot64/kickc/test/ref/test-multiply.sym index 616d0e551..f117221b9 100644 --- a/src/test/java/dk/camelot64/kickc/test/ref/test-multiply.sym +++ b/src/test/java/dk/camelot64/kickc/test/ref/test-multiply.sym @@ -244,8 +244,8 @@ (word~) print_word::w#9 w zp ZP_WORD:6 4.0 (signed word()) signed_multiply((signed byte) signed_multiply::a , (signed byte) signed_multiply::b) (byte~) signed_multiply::$12 reg byte a 4.0 -(byte/signed byte/word/signed word~) signed_multiply::$16 reg byte a 4.0 -(byte/signed byte/word/signed word~) signed_multiply::$17 reg byte a 4.0 +(byte/signed byte/word/signed word/dword/signed dword~) signed_multiply::$16 reg byte a 4.0 +(byte/signed byte/word/signed word/dword/signed dword~) signed_multiply::$17 reg byte a 4.0 (byte~) signed_multiply::$6 reg byte a 4.0 (label) signed_multiply::@1 (label) signed_multiply::@2 diff --git a/src/test/java/dk/camelot64/kickc/test/ref/voronoi.cfg b/src/test/java/dk/camelot64/kickc/test/ref/voronoi.cfg index 5a33a6788..db0f68105 100644 --- a/src/test/java/dk/camelot64/kickc/test/ref/voronoi.cfg +++ b/src/test/java/dk/camelot64/kickc/test/ref/voronoi.cfg @@ -42,8 +42,8 @@ animate::@8: scope:[animate] from animate::@1 [19] *((const byte[]) YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( main:2::animate:9 [ ] ) to:animate::@2 animate::@2: scope:[animate] from animate::@1 animate::@8 - [20] (byte/signed byte/word/signed word~) animate::$6 ← *((const byte[]) XPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 1) - (byte/signed byte/word/signed word/dword/signed dword) 1 [ animate::$6 ] ( main:2::animate:9 [ animate::$6 ] ) - [21] *((const byte[]) XPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte/signed byte/word/signed word~) animate::$6 [ ] ( main:2::animate:9 [ ] ) + [20] (byte/signed byte/word/signed word/dword/signed dword~) animate::$6 ← *((const byte[]) XPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 1) - (byte/signed byte/word/signed word/dword/signed dword) 1 [ animate::$6 ] ( main:2::animate:9 [ animate::$6 ] ) + [21] *((const byte[]) XPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte/signed byte/word/signed word/dword/signed dword~) animate::$6 [ ] ( main:2::animate:9 [ ] ) [22] if(*((const byte[]) XPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 1)!=(byte/word/signed word/dword/signed dword) 255) goto animate::@3 [ ] ( main:2::animate:9 [ ] ) to:animate::@9 animate::@9: scope:[animate] from animate::@2 @@ -58,8 +58,8 @@ animate::@10: scope:[animate] from animate::@3 [27] *((const byte[]) YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( main:2::animate:9 [ ] ) to:animate::@4 animate::@4: scope:[animate] from animate::@10 animate::@3 - [28] (byte/signed byte/word/signed word~) animate::$12 ← *((const byte[]) YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 3) - (byte/signed byte/word/signed word/dword/signed dword) 1 [ animate::$12 ] ( main:2::animate:9 [ animate::$12 ] ) - [29] *((const byte[]) YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte/signed byte/word/signed word~) animate::$12 [ ] ( main:2::animate:9 [ ] ) + [28] (byte/signed byte/word/signed word/dword/signed dword~) animate::$12 ← *((const byte[]) YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 3) - (byte/signed byte/word/signed word/dword/signed dword) 1 [ animate::$12 ] ( main:2::animate:9 [ animate::$12 ] ) + [29] *((const byte[]) YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte/signed byte/word/signed word/dword/signed dword~) animate::$12 [ ] ( main:2::animate:9 [ ] ) [30] if(*((const byte[]) YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 3)!=(byte/word/signed word/dword/signed dword) 255) goto animate::@return [ ] ( main:2::animate:9 [ ] ) to:animate::@11 animate::@11: scope:[animate] from animate::@4 @@ -69,8 +69,8 @@ animate::@11: scope:[animate] from animate::@4 [34] if(*((const byte[]) XPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 3)<(byte/signed byte/word/signed word/dword/signed dword) 40) goto animate::@return [ ] ( main:2::animate:9 [ ] ) to:animate::@12 animate::@12: scope:[animate] from animate::@11 - [35] (byte/signed byte/word/signed word~) animate::$18 ← *((const byte[]) XPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 3) - (byte/signed byte/word/signed word/dword/signed dword) 40 [ animate::$18 ] ( main:2::animate:9 [ animate::$18 ] ) - [36] *((const byte[]) XPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte/signed byte/word/signed word~) animate::$18 [ ] ( main:2::animate:9 [ ] ) + [35] (byte/signed byte/word/signed word/dword/signed dword~) animate::$18 ← *((const byte[]) XPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 3) - (byte/signed byte/word/signed word/dword/signed dword) 40 [ animate::$18 ] ( main:2::animate:9 [ animate::$18 ] ) + [36] *((const byte[]) XPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte/signed byte/word/signed word/dword/signed dword~) animate::$18 [ ] ( main:2::animate:9 [ ] ) to:animate::@return animate::@return: scope:[animate] from animate::@11 animate::@12 animate::@4 [37] return [ ] ( main:2::animate:9 [ ] ) @@ -132,8 +132,8 @@ findcol::@5: scope:[findcol] from findcol::@12 findcol::@4 [64] if((byte) findcol::y#0>=(byte) findcol::yp#0) goto findcol::@6 [ findcol::x#0 findcol::y#0 findcol::i#10 findcol::mindiff#10 findcol::mincol#10 findcol::yp#0 findcol::diff#4 ] ( main:2::render:7::findcol:43 [ render::y#4 render::colline#5 render::x#2 findcol::x#0 findcol::y#0 findcol::i#10 findcol::mindiff#10 findcol::mincol#10 findcol::yp#0 findcol::diff#4 ] ) to:findcol::@14 findcol::@14: scope:[findcol] from findcol::@5 - [65] (byte/signed byte/word/signed word~) findcol::$10 ← (byte) findcol::yp#0 - (byte) findcol::y#0 [ findcol::x#0 findcol::y#0 findcol::i#10 findcol::mindiff#10 findcol::mincol#10 findcol::diff#4 findcol::$10 ] ( main:2::render:7::findcol:43 [ render::y#4 render::colline#5 render::x#2 findcol::x#0 findcol::y#0 findcol::i#10 findcol::mindiff#10 findcol::mincol#10 findcol::diff#4 findcol::$10 ] ) - [66] (byte) findcol::diff#3 ← (byte) findcol::diff#4 + (byte/signed byte/word/signed word~) findcol::$10 [ findcol::x#0 findcol::y#0 findcol::i#10 findcol::mindiff#10 findcol::mincol#10 findcol::diff#3 ] ( main:2::render:7::findcol:43 [ render::y#4 render::colline#5 render::x#2 findcol::x#0 findcol::y#0 findcol::i#10 findcol::mindiff#10 findcol::mincol#10 findcol::diff#3 ] ) + [65] (byte/signed byte/word/signed word/dword/signed dword~) findcol::$10 ← (byte) findcol::yp#0 - (byte) findcol::y#0 [ findcol::x#0 findcol::y#0 findcol::i#10 findcol::mindiff#10 findcol::mincol#10 findcol::diff#4 findcol::$10 ] ( main:2::render:7::findcol:43 [ render::y#4 render::colline#5 render::x#2 findcol::x#0 findcol::y#0 findcol::i#10 findcol::mindiff#10 findcol::mincol#10 findcol::diff#4 findcol::$10 ] ) + [66] (byte) findcol::diff#3 ← (byte) findcol::diff#4 + (byte/signed byte/word/signed word/dword/signed dword~) findcol::$10 [ findcol::x#0 findcol::y#0 findcol::i#10 findcol::mindiff#10 findcol::mincol#10 findcol::diff#3 ] ( main:2::render:7::findcol:43 [ render::y#4 render::colline#5 render::x#2 findcol::x#0 findcol::y#0 findcol::i#10 findcol::mindiff#10 findcol::mincol#10 findcol::diff#3 ] ) to:findcol::@7 findcol::@7: scope:[findcol] from findcol::@14 findcol::@6 [67] (byte) findcol::diff#6 ← phi( findcol::@14/(byte) findcol::diff#3 findcol::@6/(byte) findcol::diff#2 ) [ findcol::x#0 findcol::y#0 findcol::i#10 findcol::mindiff#10 findcol::mincol#10 findcol::diff#6 ] ( main:2::render:7::findcol:43 [ render::y#4 render::colline#5 render::x#2 findcol::x#0 findcol::y#0 findcol::i#10 findcol::mindiff#10 findcol::mincol#10 findcol::diff#6 ] ) @@ -155,8 +155,8 @@ findcol::@21: scope:[findcol] from findcol::@7 [74] (byte~) findcol::mindiff#15 ← (byte) findcol::mindiff#10 [ findcol::x#0 findcol::y#0 findcol::i#10 findcol::mincol#10 findcol::mindiff#15 ] ( main:2::render:7::findcol:43 [ render::y#4 render::colline#5 render::x#2 findcol::x#0 findcol::y#0 findcol::i#10 findcol::mincol#10 findcol::mindiff#15 ] ) to:findcol::@8 findcol::@6: scope:[findcol] from findcol::@5 - [75] (byte/signed byte/word/signed word~) findcol::$12 ← (byte) findcol::y#0 - (byte) findcol::yp#0 [ findcol::x#0 findcol::y#0 findcol::i#10 findcol::mindiff#10 findcol::mincol#10 findcol::diff#4 findcol::$12 ] ( main:2::render:7::findcol:43 [ render::y#4 render::colline#5 render::x#2 findcol::x#0 findcol::y#0 findcol::i#10 findcol::mindiff#10 findcol::mincol#10 findcol::diff#4 findcol::$12 ] ) - [76] (byte) findcol::diff#2 ← (byte) findcol::diff#4 + (byte/signed byte/word/signed word~) findcol::$12 [ findcol::x#0 findcol::y#0 findcol::i#10 findcol::mindiff#10 findcol::mincol#10 findcol::diff#2 ] ( main:2::render:7::findcol:43 [ render::y#4 render::colline#5 render::x#2 findcol::x#0 findcol::y#0 findcol::i#10 findcol::mindiff#10 findcol::mincol#10 findcol::diff#2 ] ) + [75] (byte/signed byte/word/signed word/dword/signed dword~) findcol::$12 ← (byte) findcol::y#0 - (byte) findcol::yp#0 [ findcol::x#0 findcol::y#0 findcol::i#10 findcol::mindiff#10 findcol::mincol#10 findcol::diff#4 findcol::$12 ] ( main:2::render:7::findcol:43 [ render::y#4 render::colline#5 render::x#2 findcol::x#0 findcol::y#0 findcol::i#10 findcol::mindiff#10 findcol::mincol#10 findcol::diff#4 findcol::$12 ] ) + [76] (byte) findcol::diff#2 ← (byte) findcol::diff#4 + (byte/signed byte/word/signed word/dword/signed dword~) findcol::$12 [ findcol::x#0 findcol::y#0 findcol::i#10 findcol::mindiff#10 findcol::mincol#10 findcol::diff#2 ] ( main:2::render:7::findcol:43 [ render::y#4 render::colline#5 render::x#2 findcol::x#0 findcol::y#0 findcol::i#10 findcol::mindiff#10 findcol::mincol#10 findcol::diff#2 ] ) to:findcol::@7 findcol::@4: scope:[findcol] from findcol::@2 [77] (byte) findcol::diff#0 ← (byte) findcol::x#0 - (byte) findcol::xp#0 [ findcol::x#0 findcol::y#0 findcol::i#10 findcol::mindiff#10 findcol::mincol#10 findcol::yp#0 findcol::diff#0 ] ( main:2::render:7::findcol:43 [ render::y#4 render::colline#5 render::x#2 findcol::x#0 findcol::y#0 findcol::i#10 findcol::mindiff#10 findcol::mincol#10 findcol::yp#0 findcol::diff#0 ] ) diff --git a/src/test/java/dk/camelot64/kickc/test/ref/voronoi.log b/src/test/java/dk/camelot64/kickc/test/ref/voronoi.log index f2312c8c6..643870aa3 100644 --- a/src/test/java/dk/camelot64/kickc/test/ref/voronoi.log +++ b/src/test/java/dk/camelot64/kickc/test/ref/voronoi.log @@ -132,8 +132,8 @@ animate::@1: if((boolean~) animate::$5) goto animate::@2 *((byte[]) YPOS + (byte/signed byte/word/signed word/dword/signed dword) 0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 animate::@2: - (byte/signed byte/word/signed word~) animate::$6 ← *((byte[]) XPOS + (byte/signed byte/word/signed word/dword/signed dword) 1) - (byte/signed byte/word/signed word/dword/signed dword) 1 - *((byte[]) XPOS + (byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte/signed byte/word/signed word~) animate::$6 + (byte/signed byte/word/signed word/dword/signed dword~) animate::$6 ← *((byte[]) XPOS + (byte/signed byte/word/signed word/dword/signed dword) 1) - (byte/signed byte/word/signed word/dword/signed dword) 1 + *((byte[]) XPOS + (byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte/signed byte/word/signed word/dword/signed dword~) animate::$6 (boolean~) animate::$7 ← *((byte[]) XPOS + (byte/signed byte/word/signed word/dword/signed dword) 1) == (byte/word/signed word/dword/signed dword) 255 (boolean~) animate::$8 ← ! (boolean~) animate::$7 if((boolean~) animate::$8) goto animate::@3 @@ -146,8 +146,8 @@ animate::@3: if((boolean~) animate::$11) goto animate::@4 *((byte[]) YPOS + (byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte/signed byte/word/signed word/dword/signed dword) 0 animate::@4: - (byte/signed byte/word/signed word~) animate::$12 ← *((byte[]) YPOS + (byte/signed byte/word/signed word/dword/signed dword) 3) - (byte/signed byte/word/signed word/dword/signed dword) 1 - *((byte[]) YPOS + (byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte/signed byte/word/signed word~) animate::$12 + (byte/signed byte/word/signed word/dword/signed dword~) animate::$12 ← *((byte[]) YPOS + (byte/signed byte/word/signed word/dword/signed dword) 3) - (byte/signed byte/word/signed word/dword/signed dword) 1 + *((byte[]) YPOS + (byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte/signed byte/word/signed word/dword/signed dword~) animate::$12 (boolean~) animate::$13 ← *((byte[]) YPOS + (byte/signed byte/word/signed word/dword/signed dword) 3) == (byte/word/signed word/dword/signed dword) 255 (boolean~) animate::$14 ← ! (boolean~) animate::$13 if((boolean~) animate::$14) goto animate::@5 @@ -157,8 +157,8 @@ animate::@4: (boolean~) animate::$16 ← *((byte[]) XPOS + (byte/signed byte/word/signed word/dword/signed dword) 3) >= (byte/signed byte/word/signed word/dword/signed dword) 40 (boolean~) animate::$17 ← ! (boolean~) animate::$16 if((boolean~) animate::$17) goto animate::@6 - (byte/signed byte/word/signed word~) animate::$18 ← *((byte[]) XPOS + (byte/signed byte/word/signed word/dword/signed dword) 3) - (byte/signed byte/word/signed word/dword/signed dword) 40 - *((byte[]) XPOS + (byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte/signed byte/word/signed word~) animate::$18 + (byte/signed byte/word/signed word/dword/signed dword~) animate::$18 ← *((byte[]) XPOS + (byte/signed byte/word/signed word/dword/signed dword) 3) - (byte/signed byte/word/signed word/dword/signed dword) 40 + *((byte[]) XPOS + (byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte/signed byte/word/signed word/dword/signed dword~) animate::$18 animate::@6: animate::@5: animate::@return: @@ -215,23 +215,23 @@ findcol::@2: (boolean~) findcol::$4 ← (byte) findcol::x < (byte) findcol::xp (boolean~) findcol::$5 ← ! (boolean~) findcol::$4 if((boolean~) findcol::$5) goto findcol::@4 - (byte/signed byte/word/signed word~) findcol::$6 ← (byte) findcol::xp - (byte) findcol::x - (byte) findcol::diff ← (byte/signed byte/word/signed word~) findcol::$6 + (byte/signed byte/word/signed word/dword/signed dword~) findcol::$6 ← (byte) findcol::xp - (byte) findcol::x + (byte) findcol::diff ← (byte/signed byte/word/signed word/dword/signed dword~) findcol::$6 goto findcol::@5 findcol::@4: - (byte/signed byte/word/signed word~) findcol::$7 ← (byte) findcol::x - (byte) findcol::xp - (byte) findcol::diff ← (byte/signed byte/word/signed word~) findcol::$7 + (byte/signed byte/word/signed word/dword/signed dword~) findcol::$7 ← (byte) findcol::x - (byte) findcol::xp + (byte) findcol::diff ← (byte/signed byte/word/signed word/dword/signed dword~) findcol::$7 findcol::@5: (boolean~) findcol::$8 ← (byte) findcol::y < (byte) findcol::yp (boolean~) findcol::$9 ← ! (boolean~) findcol::$8 if((boolean~) findcol::$9) goto findcol::@6 - (byte/signed byte/word/signed word~) findcol::$10 ← (byte) findcol::yp - (byte) findcol::y - (byte/word~) findcol::$11 ← (byte) findcol::diff + (byte/signed byte/word/signed word~) findcol::$10 + (byte/signed byte/word/signed word/dword/signed dword~) findcol::$10 ← (byte) findcol::yp - (byte) findcol::y + (byte/word~) findcol::$11 ← (byte) findcol::diff + (byte/signed byte/word/signed word/dword/signed dword~) findcol::$10 (byte) findcol::diff ← (byte/word~) findcol::$11 goto findcol::@7 findcol::@6: - (byte/signed byte/word/signed word~) findcol::$12 ← (byte) findcol::y - (byte) findcol::yp - (byte/word~) findcol::$13 ← (byte) findcol::diff + (byte/signed byte/word/signed word~) findcol::$12 + (byte/signed byte/word/signed word/dword/signed dword~) findcol::$12 ← (byte) findcol::y - (byte) findcol::yp + (byte/word~) findcol::$13 ← (byte) findcol::diff + (byte/signed byte/word/signed word/dword/signed dword~) findcol::$12 (byte) findcol::diff ← (byte/word~) findcol::$13 findcol::@7: (boolean~) findcol::$14 ← (byte) findcol::diff < (byte) findcol::mindiff @@ -263,18 +263,18 @@ SYMBOLS (boolean~) animate::$1 (boolean~) animate::$10 (boolean~) animate::$11 -(byte/signed byte/word/signed word~) animate::$12 +(byte/signed byte/word/signed word/dword/signed dword~) animate::$12 (boolean~) animate::$13 (boolean~) animate::$14 (byte/word~) animate::$15 (boolean~) animate::$16 (boolean~) animate::$17 -(byte/signed byte/word/signed word~) animate::$18 +(byte/signed byte/word/signed word/dword/signed dword~) animate::$18 (boolean~) animate::$2 (byte/word~) animate::$3 (boolean~) animate::$4 (boolean~) animate::$5 -(byte/signed byte/word/signed word~) animate::$6 +(byte/signed byte/word/signed word/dword/signed dword~) animate::$6 (boolean~) animate::$7 (boolean~) animate::$8 (byte/word~) animate::$9 @@ -288,9 +288,9 @@ SYMBOLS (byte()) findcol((byte) findcol::x , (byte) findcol::y) (boolean~) findcol::$0 (boolean~) findcol::$1 -(byte/signed byte/word/signed word~) findcol::$10 +(byte/signed byte/word/signed word/dword/signed dword~) findcol::$10 (byte/word~) findcol::$11 -(byte/signed byte/word/signed word~) findcol::$12 +(byte/signed byte/word/signed word/dword/signed dword~) findcol::$12 (byte/word~) findcol::$13 (boolean~) findcol::$14 (boolean~) findcol::$15 @@ -299,8 +299,8 @@ SYMBOLS (boolean~) findcol::$3 (boolean~) findcol::$4 (boolean~) findcol::$5 -(byte/signed byte/word/signed word~) findcol::$6 -(byte/signed byte/word/signed word~) findcol::$7 +(byte/signed byte/word/signed word/dword/signed dword~) findcol::$6 +(byte/signed byte/word/signed word/dword/signed dword~) findcol::$7 (boolean~) findcol::$8 (boolean~) findcol::$9 (label) findcol::@1 @@ -392,8 +392,8 @@ animate::@7: scope:[animate] from animate *((byte[]) XPOS + (byte/signed byte/word/signed word/dword/signed dword) 0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 to:animate::@1 animate::@2: scope:[animate] from animate::@1 animate::@8 - (byte/signed byte/word/signed word~) animate::$6 ← *((byte[]) XPOS + (byte/signed byte/word/signed word/dword/signed dword) 1) - (byte/signed byte/word/signed word/dword/signed dword) 1 - *((byte[]) XPOS + (byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte/signed byte/word/signed word~) animate::$6 + (byte/signed byte/word/signed word/dword/signed dword~) animate::$6 ← *((byte[]) XPOS + (byte/signed byte/word/signed word/dword/signed dword) 1) - (byte/signed byte/word/signed word/dword/signed dword) 1 + *((byte[]) XPOS + (byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte/signed byte/word/signed word/dword/signed dword~) animate::$6 (boolean~) animate::$7 ← *((byte[]) XPOS + (byte/signed byte/word/signed word/dword/signed dword) 1) == (byte/word/signed word/dword/signed dword) 255 (boolean~) animate::$8 ← ! (boolean~) animate::$7 if((boolean~) animate::$8) goto animate::@3 @@ -412,8 +412,8 @@ animate::@9: scope:[animate] from animate::@2 *((byte[]) XPOS + (byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte/signed byte/word/signed word/dword/signed dword) 40 to:animate::@3 animate::@4: scope:[animate] from animate::@10 animate::@3 - (byte/signed byte/word/signed word~) animate::$12 ← *((byte[]) YPOS + (byte/signed byte/word/signed word/dword/signed dword) 3) - (byte/signed byte/word/signed word/dword/signed dword) 1 - *((byte[]) YPOS + (byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte/signed byte/word/signed word~) animate::$12 + (byte/signed byte/word/signed word/dword/signed dword~) animate::$12 ← *((byte[]) YPOS + (byte/signed byte/word/signed word/dword/signed dword) 3) - (byte/signed byte/word/signed word/dword/signed dword) 1 + *((byte[]) YPOS + (byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte/signed byte/word/signed word/dword/signed dword~) animate::$12 (boolean~) animate::$13 ← *((byte[]) YPOS + (byte/signed byte/word/signed word/dword/signed dword) 3) == (byte/word/signed word/dword/signed dword) 255 (boolean~) animate::$14 ← ! (boolean~) animate::$13 if((boolean~) animate::$14) goto animate::@5 @@ -434,8 +434,8 @@ animate::@11: scope:[animate] from animate::@4 animate::@6: scope:[animate] from animate::@11 animate::@12 to:animate::@5 animate::@12: scope:[animate] from animate::@11 - (byte/signed byte/word/signed word~) animate::$18 ← *((byte[]) XPOS + (byte/signed byte/word/signed word/dword/signed dword) 3) - (byte/signed byte/word/signed word/dword/signed dword) 40 - *((byte[]) XPOS + (byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte/signed byte/word/signed word~) animate::$18 + (byte/signed byte/word/signed word/dword/signed dword~) animate::$18 ← *((byte[]) XPOS + (byte/signed byte/word/signed word/dword/signed dword) 3) - (byte/signed byte/word/signed word/dword/signed dword) 40 + *((byte[]) XPOS + (byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte/signed byte/word/signed word/dword/signed dword~) animate::$18 to:animate::@6 animate::@return: scope:[animate] from animate::@5 return @@ -522,12 +522,12 @@ findcol::@return: scope:[findcol] from findcol::@10 findcol::@17 findcol::@18 findcol::@11: scope:[findcol] from to:findcol::@3 findcol::@4: scope:[findcol] from findcol::@13 findcol::@2 - (byte/signed byte/word/signed word~) findcol::$7 ← (byte) findcol::x - (byte) findcol::xp - (byte) findcol::diff ← (byte/signed byte/word/signed word~) findcol::$7 + (byte/signed byte/word/signed word/dword/signed dword~) findcol::$7 ← (byte) findcol::x - (byte) findcol::xp + (byte) findcol::diff ← (byte/signed byte/word/signed word/dword/signed dword~) findcol::$7 to:findcol::@5 findcol::@12: scope:[findcol] from findcol::@2 - (byte/signed byte/word/signed word~) findcol::$6 ← (byte) findcol::xp - (byte) findcol::x - (byte) findcol::diff ← (byte/signed byte/word/signed word~) findcol::$6 + (byte/signed byte/word/signed word/dword/signed dword~) findcol::$6 ← (byte) findcol::xp - (byte) findcol::x + (byte) findcol::diff ← (byte/signed byte/word/signed word/dword/signed dword~) findcol::$6 to:findcol::@5 findcol::@5: scope:[findcol] from findcol::@12 findcol::@4 (boolean~) findcol::$8 ← (byte) findcol::y < (byte) findcol::yp @@ -537,13 +537,13 @@ findcol::@5: scope:[findcol] from findcol::@12 findcol::@4 findcol::@13: scope:[findcol] from to:findcol::@4 findcol::@6: scope:[findcol] from findcol::@15 findcol::@5 - (byte/signed byte/word/signed word~) findcol::$12 ← (byte) findcol::y - (byte) findcol::yp - (byte/word~) findcol::$13 ← (byte) findcol::diff + (byte/signed byte/word/signed word~) findcol::$12 + (byte/signed byte/word/signed word/dword/signed dword~) findcol::$12 ← (byte) findcol::y - (byte) findcol::yp + (byte/word~) findcol::$13 ← (byte) findcol::diff + (byte/signed byte/word/signed word/dword/signed dword~) findcol::$12 (byte) findcol::diff ← (byte/word~) findcol::$13 to:findcol::@7 findcol::@14: scope:[findcol] from findcol::@5 - (byte/signed byte/word/signed word~) findcol::$10 ← (byte) findcol::yp - (byte) findcol::y - (byte/word~) findcol::$11 ← (byte) findcol::diff + (byte/signed byte/word/signed word~) findcol::$10 + (byte/signed byte/word/signed word/dword/signed dword~) findcol::$10 ← (byte) findcol::yp - (byte) findcol::y + (byte/word~) findcol::$11 ← (byte) findcol::diff + (byte/signed byte/word/signed word/dword/signed dword~) findcol::$10 (byte) findcol::diff ← (byte/word~) findcol::$11 to:findcol::@7 findcol::@7: scope:[findcol] from findcol::@14 findcol::@6 @@ -661,8 +661,8 @@ animate::@7: scope:[animate] from animate *((byte[]) XPOS#0 + (byte/signed byte/word/signed word/dword/signed dword) 0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 to:animate::@1 animate::@2: scope:[animate] from animate::@1 animate::@8 - (byte/signed byte/word/signed word~) animate::$6 ← *((byte[]) XPOS#0 + (byte/signed byte/word/signed word/dword/signed dword) 1) - (byte/signed byte/word/signed word/dword/signed dword) 1 - *((byte[]) XPOS#0 + (byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte/signed byte/word/signed word~) animate::$6 + (byte/signed byte/word/signed word/dword/signed dword~) animate::$6 ← *((byte[]) XPOS#0 + (byte/signed byte/word/signed word/dword/signed dword) 1) - (byte/signed byte/word/signed word/dword/signed dword) 1 + *((byte[]) XPOS#0 + (byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte/signed byte/word/signed word/dword/signed dword~) animate::$6 (boolean~) animate::$7 ← *((byte[]) XPOS#0 + (byte/signed byte/word/signed word/dword/signed dword) 1) == (byte/word/signed word/dword/signed dword) 255 (boolean~) animate::$8 ← ! (boolean~) animate::$7 if((boolean~) animate::$8) goto animate::@3 @@ -681,8 +681,8 @@ animate::@9: scope:[animate] from animate::@2 *((byte[]) XPOS#0 + (byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte/signed byte/word/signed word/dword/signed dword) 40 to:animate::@3 animate::@4: scope:[animate] from animate::@10 animate::@3 - (byte/signed byte/word/signed word~) animate::$12 ← *((byte[]) YPOS#0 + (byte/signed byte/word/signed word/dword/signed dword) 3) - (byte/signed byte/word/signed word/dword/signed dword) 1 - *((byte[]) YPOS#0 + (byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte/signed byte/word/signed word~) animate::$12 + (byte/signed byte/word/signed word/dword/signed dword~) animate::$12 ← *((byte[]) YPOS#0 + (byte/signed byte/word/signed word/dword/signed dword) 3) - (byte/signed byte/word/signed word/dword/signed dword) 1 + *((byte[]) YPOS#0 + (byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte/signed byte/word/signed word/dword/signed dword~) animate::$12 (boolean~) animate::$13 ← *((byte[]) YPOS#0 + (byte/signed byte/word/signed word/dword/signed dword) 3) == (byte/word/signed word/dword/signed dword) 255 (boolean~) animate::$14 ← ! (boolean~) animate::$13 if((boolean~) animate::$14) goto animate::@5 @@ -703,8 +703,8 @@ animate::@11: scope:[animate] from animate::@4 animate::@6: scope:[animate] from animate::@11 to:animate::@return animate::@12: scope:[animate] from animate::@11 - (byte/signed byte/word/signed word~) animate::$18 ← *((byte[]) XPOS#0 + (byte/signed byte/word/signed word/dword/signed dword) 3) - (byte/signed byte/word/signed word/dword/signed dword) 40 - *((byte[]) XPOS#0 + (byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte/signed byte/word/signed word~) animate::$18 + (byte/signed byte/word/signed word/dword/signed dword~) animate::$18 ← *((byte[]) XPOS#0 + (byte/signed byte/word/signed word/dword/signed dword) 3) - (byte/signed byte/word/signed word/dword/signed dword) 40 + *((byte[]) XPOS#0 + (byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte/signed byte/word/signed word/dword/signed dword~) animate::$18 to:animate::@return animate::@return: scope:[animate] from animate::@12 animate::@5 animate::@6 return @@ -849,8 +849,8 @@ findcol::@4: scope:[findcol] from findcol::@2 (byte) findcol::y#7 ← phi( findcol::@2/(byte) findcol::y#10 ) (byte) findcol::xp#2 ← phi( findcol::@2/(byte) findcol::xp#1 ) (byte) findcol::x#3 ← phi( findcol::@2/(byte) findcol::x#2 ) - (byte/signed byte/word/signed word~) findcol::$7 ← (byte) findcol::x#3 - (byte) findcol::xp#2 - (byte) findcol::diff#0 ← (byte/signed byte/word/signed word~) findcol::$7 + (byte/signed byte/word/signed word/dword/signed dword~) findcol::$7 ← (byte) findcol::x#3 - (byte) findcol::xp#2 + (byte) findcol::diff#0 ← (byte/signed byte/word/signed word/dword/signed dword~) findcol::$7 to:findcol::@5 findcol::@12: scope:[findcol] from findcol::@2 (byte) findcol::mincol#8 ← phi( findcol::@2/(byte) findcol::mincol#10 ) @@ -861,8 +861,8 @@ findcol::@12: scope:[findcol] from findcol::@2 (byte) findcol::y#6 ← phi( findcol::@2/(byte) findcol::y#10 ) (byte) findcol::x#4 ← phi( findcol::@2/(byte) findcol::x#2 ) (byte) findcol::xp#3 ← phi( findcol::@2/(byte) findcol::xp#1 ) - (byte/signed byte/word/signed word~) findcol::$6 ← (byte) findcol::xp#3 - (byte) findcol::x#4 - (byte) findcol::diff#1 ← (byte/signed byte/word/signed word~) findcol::$6 + (byte/signed byte/word/signed word/dword/signed dword~) findcol::$6 ← (byte) findcol::xp#3 - (byte) findcol::x#4 + (byte) findcol::diff#1 ← (byte/signed byte/word/signed word/dword/signed dword~) findcol::$6 to:findcol::@5 findcol::@5: scope:[findcol] from findcol::@12 findcol::@4 (byte) findcol::mincol#7 ← phi( findcol::@12/(byte) findcol::mincol#8 findcol::@4/(byte) findcol::mincol#9 ) @@ -886,8 +886,8 @@ findcol::@6: scope:[findcol] from findcol::@5 (byte) findcol::diff#4 ← phi( findcol::@5/(byte) findcol::diff#8 ) (byte) findcol::yp#3 ← phi( findcol::@5/(byte) findcol::yp#2 ) (byte) findcol::y#3 ← phi( findcol::@5/(byte) findcol::y#2 ) - (byte/signed byte/word/signed word~) findcol::$12 ← (byte) findcol::y#3 - (byte) findcol::yp#3 - (byte/word~) findcol::$13 ← (byte) findcol::diff#4 + (byte/signed byte/word/signed word~) findcol::$12 + (byte/signed byte/word/signed word/dword/signed dword~) findcol::$12 ← (byte) findcol::y#3 - (byte) findcol::yp#3 + (byte/word~) findcol::$13 ← (byte) findcol::diff#4 + (byte/signed byte/word/signed word/dword/signed dword~) findcol::$12 (byte) findcol::diff#2 ← (byte/word~) findcol::$13 to:findcol::@7 findcol::@14: scope:[findcol] from findcol::@5 @@ -899,8 +899,8 @@ findcol::@14: scope:[findcol] from findcol::@5 (byte) findcol::diff#5 ← phi( findcol::@5/(byte) findcol::diff#8 ) (byte) findcol::y#4 ← phi( findcol::@5/(byte) findcol::y#2 ) (byte) findcol::yp#4 ← phi( findcol::@5/(byte) findcol::yp#2 ) - (byte/signed byte/word/signed word~) findcol::$10 ← (byte) findcol::yp#4 - (byte) findcol::y#4 - (byte/word~) findcol::$11 ← (byte) findcol::diff#5 + (byte/signed byte/word/signed word~) findcol::$10 + (byte/signed byte/word/signed word/dword/signed dword~) findcol::$10 ← (byte) findcol::yp#4 - (byte) findcol::y#4 + (byte/word~) findcol::$11 ← (byte) findcol::diff#5 + (byte/signed byte/word/signed word/dword/signed dword~) findcol::$10 (byte) findcol::diff#3 ← (byte/word~) findcol::$11 to:findcol::@7 findcol::@7: scope:[findcol] from findcol::@14 findcol::@6 @@ -987,18 +987,18 @@ SYMBOL TABLE SSA (boolean~) animate::$1 (boolean~) animate::$10 (boolean~) animate::$11 -(byte/signed byte/word/signed word~) animate::$12 +(byte/signed byte/word/signed word/dword/signed dword~) animate::$12 (boolean~) animate::$13 (boolean~) animate::$14 (byte/word~) animate::$15 (boolean~) animate::$16 (boolean~) animate::$17 -(byte/signed byte/word/signed word~) animate::$18 +(byte/signed byte/word/signed word/dword/signed dword~) animate::$18 (boolean~) animate::$2 (byte/word~) animate::$3 (boolean~) animate::$4 (boolean~) animate::$5 -(byte/signed byte/word/signed word~) animate::$6 +(byte/signed byte/word/signed word/dword/signed dword~) animate::$6 (boolean~) animate::$7 (boolean~) animate::$8 (byte/word~) animate::$9 @@ -1018,9 +1018,9 @@ SYMBOL TABLE SSA (byte()) findcol((byte) findcol::x , (byte) findcol::y) (boolean~) findcol::$0 (boolean~) findcol::$1 -(byte/signed byte/word/signed word~) findcol::$10 +(byte/signed byte/word/signed word/dword/signed dword~) findcol::$10 (byte/word~) findcol::$11 -(byte/signed byte/word/signed word~) findcol::$12 +(byte/signed byte/word/signed word/dword/signed dword~) findcol::$12 (byte/word~) findcol::$13 (boolean~) findcol::$14 (boolean~) findcol::$15 @@ -1029,8 +1029,8 @@ SYMBOL TABLE SSA (boolean~) findcol::$3 (boolean~) findcol::$4 (boolean~) findcol::$5 -(byte/signed byte/word/signed word~) findcol::$6 -(byte/signed byte/word/signed word~) findcol::$7 +(byte/signed byte/word/signed word/dword/signed dword~) findcol::$6 +(byte/signed byte/word/signed word/dword/signed dword~) findcol::$7 (boolean~) findcol::$8 (boolean~) findcol::$9 (label) findcol::@1 @@ -1291,8 +1291,8 @@ Alias (byte) findcol::mindiff#6 = (byte) findcol::mindiff#7 (byte) findcol::mind Alias (byte) findcol::i#10 = (byte) findcol::i#11 (byte) findcol::i#9 Alias (byte) numpoints#7 = (byte) numpoints#8 (byte) numpoints#9 Alias (byte) findcol::mincol#10 = (byte) findcol::mincol#9 (byte) findcol::mincol#8 -Alias (byte) findcol::diff#0 = (byte/signed byte/word/signed word~) findcol::$7 -Alias (byte) findcol::diff#1 = (byte/signed byte/word/signed word~) findcol::$6 +Alias (byte) findcol::diff#0 = (byte/signed byte/word/signed word/dword/signed dword~) findcol::$7 +Alias (byte) findcol::diff#1 = (byte/signed byte/word/signed word/dword/signed dword~) findcol::$6 Alias (byte) findcol::y#2 = (byte) findcol::y#3 (byte) findcol::y#4 Alias (byte) findcol::yp#2 = (byte) findcol::yp#3 (byte) findcol::yp#4 Alias (byte) findcol::diff#4 = (byte) findcol::diff#8 (byte) findcol::diff#5 @@ -1626,8 +1626,8 @@ animate::@8: scope:[animate] from animate::@1 [19] *((const byte[]) YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( main:2::animate:9 [ ] ) to:animate::@2 animate::@2: scope:[animate] from animate::@1 animate::@8 - [20] (byte/signed byte/word/signed word~) animate::$6 ← *((const byte[]) XPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 1) - (byte/signed byte/word/signed word/dword/signed dword) 1 [ animate::$6 ] ( main:2::animate:9 [ animate::$6 ] ) - [21] *((const byte[]) XPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte/signed byte/word/signed word~) animate::$6 [ ] ( main:2::animate:9 [ ] ) + [20] (byte/signed byte/word/signed word/dword/signed dword~) animate::$6 ← *((const byte[]) XPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 1) - (byte/signed byte/word/signed word/dword/signed dword) 1 [ animate::$6 ] ( main:2::animate:9 [ animate::$6 ] ) + [21] *((const byte[]) XPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte/signed byte/word/signed word/dword/signed dword~) animate::$6 [ ] ( main:2::animate:9 [ ] ) [22] if(*((const byte[]) XPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 1)!=(byte/word/signed word/dword/signed dword) 255) goto animate::@3 [ ] ( main:2::animate:9 [ ] ) to:animate::@9 animate::@9: scope:[animate] from animate::@2 @@ -1642,8 +1642,8 @@ animate::@10: scope:[animate] from animate::@3 [27] *((const byte[]) YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( main:2::animate:9 [ ] ) to:animate::@4 animate::@4: scope:[animate] from animate::@10 animate::@3 - [28] (byte/signed byte/word/signed word~) animate::$12 ← *((const byte[]) YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 3) - (byte/signed byte/word/signed word/dword/signed dword) 1 [ animate::$12 ] ( main:2::animate:9 [ animate::$12 ] ) - [29] *((const byte[]) YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte/signed byte/word/signed word~) animate::$12 [ ] ( main:2::animate:9 [ ] ) + [28] (byte/signed byte/word/signed word/dword/signed dword~) animate::$12 ← *((const byte[]) YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 3) - (byte/signed byte/word/signed word/dword/signed dword) 1 [ animate::$12 ] ( main:2::animate:9 [ animate::$12 ] ) + [29] *((const byte[]) YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte/signed byte/word/signed word/dword/signed dword~) animate::$12 [ ] ( main:2::animate:9 [ ] ) [30] if(*((const byte[]) YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 3)!=(byte/word/signed word/dword/signed dword) 255) goto animate::@return [ ] ( main:2::animate:9 [ ] ) to:animate::@11 animate::@11: scope:[animate] from animate::@4 @@ -1653,8 +1653,8 @@ animate::@11: scope:[animate] from animate::@4 [34] if(*((const byte[]) XPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 3)<(byte/signed byte/word/signed word/dword/signed dword) 40) goto animate::@return [ ] ( main:2::animate:9 [ ] ) to:animate::@12 animate::@12: scope:[animate] from animate::@11 - [35] (byte/signed byte/word/signed word~) animate::$18 ← *((const byte[]) XPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 3) - (byte/signed byte/word/signed word/dword/signed dword) 40 [ animate::$18 ] ( main:2::animate:9 [ animate::$18 ] ) - [36] *((const byte[]) XPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte/signed byte/word/signed word~) animate::$18 [ ] ( main:2::animate:9 [ ] ) + [35] (byte/signed byte/word/signed word/dword/signed dword~) animate::$18 ← *((const byte[]) XPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 3) - (byte/signed byte/word/signed word/dword/signed dword) 40 [ animate::$18 ] ( main:2::animate:9 [ animate::$18 ] ) + [36] *((const byte[]) XPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte/signed byte/word/signed word/dword/signed dword~) animate::$18 [ ] ( main:2::animate:9 [ ] ) to:animate::@return animate::@return: scope:[animate] from animate::@11 animate::@12 animate::@4 [37] return [ ] ( main:2::animate:9 [ ] ) @@ -1716,8 +1716,8 @@ findcol::@5: scope:[findcol] from findcol::@12 findcol::@4 [64] if((byte) findcol::y#0>=(byte) findcol::yp#0) goto findcol::@6 [ findcol::x#0 findcol::y#0 findcol::i#10 findcol::mindiff#10 findcol::mincol#10 findcol::yp#0 findcol::diff#4 ] ( main:2::render:7::findcol:43 [ render::y#4 render::colline#5 render::x#2 findcol::x#0 findcol::y#0 findcol::i#10 findcol::mindiff#10 findcol::mincol#10 findcol::yp#0 findcol::diff#4 ] ) to:findcol::@14 findcol::@14: scope:[findcol] from findcol::@5 - [65] (byte/signed byte/word/signed word~) findcol::$10 ← (byte) findcol::yp#0 - (byte) findcol::y#0 [ findcol::x#0 findcol::y#0 findcol::i#10 findcol::mindiff#10 findcol::mincol#10 findcol::diff#4 findcol::$10 ] ( main:2::render:7::findcol:43 [ render::y#4 render::colline#5 render::x#2 findcol::x#0 findcol::y#0 findcol::i#10 findcol::mindiff#10 findcol::mincol#10 findcol::diff#4 findcol::$10 ] ) - [66] (byte) findcol::diff#3 ← (byte) findcol::diff#4 + (byte/signed byte/word/signed word~) findcol::$10 [ findcol::x#0 findcol::y#0 findcol::i#10 findcol::mindiff#10 findcol::mincol#10 findcol::diff#3 ] ( main:2::render:7::findcol:43 [ render::y#4 render::colline#5 render::x#2 findcol::x#0 findcol::y#0 findcol::i#10 findcol::mindiff#10 findcol::mincol#10 findcol::diff#3 ] ) + [65] (byte/signed byte/word/signed word/dword/signed dword~) findcol::$10 ← (byte) findcol::yp#0 - (byte) findcol::y#0 [ findcol::x#0 findcol::y#0 findcol::i#10 findcol::mindiff#10 findcol::mincol#10 findcol::diff#4 findcol::$10 ] ( main:2::render:7::findcol:43 [ render::y#4 render::colline#5 render::x#2 findcol::x#0 findcol::y#0 findcol::i#10 findcol::mindiff#10 findcol::mincol#10 findcol::diff#4 findcol::$10 ] ) + [66] (byte) findcol::diff#3 ← (byte) findcol::diff#4 + (byte/signed byte/word/signed word/dword/signed dword~) findcol::$10 [ findcol::x#0 findcol::y#0 findcol::i#10 findcol::mindiff#10 findcol::mincol#10 findcol::diff#3 ] ( main:2::render:7::findcol:43 [ render::y#4 render::colline#5 render::x#2 findcol::x#0 findcol::y#0 findcol::i#10 findcol::mindiff#10 findcol::mincol#10 findcol::diff#3 ] ) to:findcol::@7 findcol::@7: scope:[findcol] from findcol::@14 findcol::@6 [67] (byte) findcol::diff#6 ← phi( findcol::@14/(byte) findcol::diff#3 findcol::@6/(byte) findcol::diff#2 ) [ findcol::x#0 findcol::y#0 findcol::i#10 findcol::mindiff#10 findcol::mincol#10 findcol::diff#6 ] ( main:2::render:7::findcol:43 [ render::y#4 render::colline#5 render::x#2 findcol::x#0 findcol::y#0 findcol::i#10 findcol::mindiff#10 findcol::mincol#10 findcol::diff#6 ] ) @@ -1739,8 +1739,8 @@ findcol::@21: scope:[findcol] from findcol::@7 [74] (byte~) findcol::mindiff#15 ← (byte) findcol::mindiff#10 [ findcol::x#0 findcol::y#0 findcol::i#10 findcol::mincol#10 findcol::mindiff#15 ] ( main:2::render:7::findcol:43 [ render::y#4 render::colline#5 render::x#2 findcol::x#0 findcol::y#0 findcol::i#10 findcol::mincol#10 findcol::mindiff#15 ] ) to:findcol::@8 findcol::@6: scope:[findcol] from findcol::@5 - [75] (byte/signed byte/word/signed word~) findcol::$12 ← (byte) findcol::y#0 - (byte) findcol::yp#0 [ findcol::x#0 findcol::y#0 findcol::i#10 findcol::mindiff#10 findcol::mincol#10 findcol::diff#4 findcol::$12 ] ( main:2::render:7::findcol:43 [ render::y#4 render::colline#5 render::x#2 findcol::x#0 findcol::y#0 findcol::i#10 findcol::mindiff#10 findcol::mincol#10 findcol::diff#4 findcol::$12 ] ) - [76] (byte) findcol::diff#2 ← (byte) findcol::diff#4 + (byte/signed byte/word/signed word~) findcol::$12 [ findcol::x#0 findcol::y#0 findcol::i#10 findcol::mindiff#10 findcol::mincol#10 findcol::diff#2 ] ( main:2::render:7::findcol:43 [ render::y#4 render::colline#5 render::x#2 findcol::x#0 findcol::y#0 findcol::i#10 findcol::mindiff#10 findcol::mincol#10 findcol::diff#2 ] ) + [75] (byte/signed byte/word/signed word/dword/signed dword~) findcol::$12 ← (byte) findcol::y#0 - (byte) findcol::yp#0 [ findcol::x#0 findcol::y#0 findcol::i#10 findcol::mindiff#10 findcol::mincol#10 findcol::diff#4 findcol::$12 ] ( main:2::render:7::findcol:43 [ render::y#4 render::colline#5 render::x#2 findcol::x#0 findcol::y#0 findcol::i#10 findcol::mindiff#10 findcol::mincol#10 findcol::diff#4 findcol::$12 ] ) + [76] (byte) findcol::diff#2 ← (byte) findcol::diff#4 + (byte/signed byte/word/signed word/dword/signed dword~) findcol::$12 [ findcol::x#0 findcol::y#0 findcol::i#10 findcol::mindiff#10 findcol::mincol#10 findcol::diff#2 ] ( main:2::render:7::findcol:43 [ render::y#4 render::colline#5 render::x#2 findcol::x#0 findcol::y#0 findcol::i#10 findcol::mindiff#10 findcol::mincol#10 findcol::diff#2 ] ) to:findcol::@7 findcol::@4: scope:[findcol] from findcol::@2 [77] (byte) findcol::diff#0 ← (byte) findcol::x#0 - (byte) findcol::xp#0 [ findcol::x#0 findcol::y#0 findcol::i#10 findcol::mindiff#10 findcol::mincol#10 findcol::yp#0 findcol::diff#0 ] ( main:2::render:7::findcol:43 [ render::y#4 render::colline#5 render::x#2 findcol::x#0 findcol::y#0 findcol::i#10 findcol::mindiff#10 findcol::mincol#10 findcol::yp#0 findcol::diff#0 ] ) @@ -1849,15 +1849,15 @@ VARIABLE REGISTER WEIGHTS (byte[]) YPOS (void()) animate() (byte/word~) animate::$0 4.0 -(byte/signed byte/word/signed word~) animate::$12 4.0 +(byte/signed byte/word/signed word/dword/signed dword~) animate::$12 4.0 (byte/word~) animate::$15 4.0 -(byte/signed byte/word/signed word~) animate::$18 4.0 +(byte/signed byte/word/signed word/dword/signed dword~) animate::$18 4.0 (byte/word~) animate::$3 4.0 -(byte/signed byte/word/signed word~) animate::$6 4.0 +(byte/signed byte/word/signed word/dword/signed dword~) animate::$6 4.0 (byte/word~) animate::$9 4.0 (byte()) findcol((byte) findcol::x , (byte) findcol::y) -(byte/signed byte/word/signed word~) findcol::$10 20002.0 -(byte/signed byte/word/signed word~) findcol::$12 20002.0 +(byte/signed byte/word/signed word/dword/signed dword~) findcol::$10 20002.0 +(byte/signed byte/word/signed word/dword/signed dword~) findcol::$12 20002.0 (byte) findcol::diff (byte) findcol::diff#0 20002.0 (byte) findcol::diff#1 20002.0 @@ -2091,11 +2091,11 @@ animate: { jmp b2 //SEG35 animate::@2 b2: - //SEG36 [20] (byte/signed byte/word/signed word~) animate::$6 ← *((const byte[]) XPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 1) - (byte/signed byte/word/signed word/dword/signed dword) 1 [ animate::$6 ] ( main:2::animate:9 [ animate::$6 ] ) -- vbuz1=_deref_pbuc1_minus_1 + //SEG36 [20] (byte/signed byte/word/signed word/dword/signed dword~) animate::$6 ← *((const byte[]) XPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 1) - (byte/signed byte/word/signed word/dword/signed dword) 1 [ animate::$6 ] ( main:2::animate:9 [ animate::$6 ] ) -- vbuz1=_deref_pbuc1_minus_1 ldx XPOS+1 dex stx _6 - //SEG37 [21] *((const byte[]) XPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte/signed byte/word/signed word~) animate::$6 [ ] ( main:2::animate:9 [ ] ) -- _deref_pbuc1=vbuz1 + //SEG37 [21] *((const byte[]) XPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte/signed byte/word/signed word/dword/signed dword~) animate::$6 [ ] ( main:2::animate:9 [ ] ) -- _deref_pbuc1=vbuz1 lda _6 sta XPOS+1 //SEG38 [22] if(*((const byte[]) XPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 1)!=(byte/word/signed word/dword/signed dword) 255) goto animate::@3 [ ] ( main:2::animate:9 [ ] ) -- _deref_pbuc1_neq_vbuc2_then_la1 @@ -2131,11 +2131,11 @@ animate: { jmp b4 //SEG47 animate::@4 b4: - //SEG48 [28] (byte/signed byte/word/signed word~) animate::$12 ← *((const byte[]) YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 3) - (byte/signed byte/word/signed word/dword/signed dword) 1 [ animate::$12 ] ( main:2::animate:9 [ animate::$12 ] ) -- vbuz1=_deref_pbuc1_minus_1 + //SEG48 [28] (byte/signed byte/word/signed word/dword/signed dword~) animate::$12 ← *((const byte[]) YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 3) - (byte/signed byte/word/signed word/dword/signed dword) 1 [ animate::$12 ] ( main:2::animate:9 [ animate::$12 ] ) -- vbuz1=_deref_pbuc1_minus_1 ldx YPOS+3 dex stx _12 - //SEG49 [29] *((const byte[]) YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte/signed byte/word/signed word~) animate::$12 [ ] ( main:2::animate:9 [ ] ) -- _deref_pbuc1=vbuz1 + //SEG49 [29] *((const byte[]) YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte/signed byte/word/signed word/dword/signed dword~) animate::$12 [ ] ( main:2::animate:9 [ ] ) -- _deref_pbuc1=vbuz1 lda _12 sta YPOS+3 //SEG50 [30] if(*((const byte[]) YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 3)!=(byte/word/signed word/dword/signed dword) 255) goto animate::@return [ ] ( main:2::animate:9 [ ] ) -- _deref_pbuc1_neq_vbuc2_then_la1 @@ -2163,12 +2163,12 @@ animate: { jmp b12 //SEG56 animate::@12 b12: - //SEG57 [35] (byte/signed byte/word/signed word~) animate::$18 ← *((const byte[]) XPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 3) - (byte/signed byte/word/signed word/dword/signed dword) 40 [ animate::$18 ] ( main:2::animate:9 [ animate::$18 ] ) -- vbuz1=_deref_pbuc1_minus_vbuc2 + //SEG57 [35] (byte/signed byte/word/signed word/dword/signed dword~) animate::$18 ← *((const byte[]) XPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 3) - (byte/signed byte/word/signed word/dword/signed dword) 40 [ animate::$18 ] ( main:2::animate:9 [ animate::$18 ] ) -- vbuz1=_deref_pbuc1_minus_vbuc2 lda XPOS+3 sec sbc #$28 sta _18 - //SEG58 [36] *((const byte[]) XPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte/signed byte/word/signed word~) animate::$18 [ ] ( main:2::animate:9 [ ] ) -- _deref_pbuc1=vbuz1 + //SEG58 [36] *((const byte[]) XPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte/signed byte/word/signed word/dword/signed dword~) animate::$18 [ ] ( main:2::animate:9 [ ] ) -- _deref_pbuc1=vbuz1 lda _18 sta XPOS+3 jmp breturn @@ -2355,12 +2355,12 @@ findcol: { jmp b14 //SEG113 findcol::@14 b14: - //SEG114 [65] (byte/signed byte/word/signed word~) findcol::$10 ← (byte) findcol::yp#0 - (byte) findcol::y#0 [ findcol::x#0 findcol::y#0 findcol::i#10 findcol::mindiff#10 findcol::mincol#10 findcol::diff#4 findcol::$10 ] ( main:2::render:7::findcol:43 [ render::y#4 render::colline#5 render::x#2 findcol::x#0 findcol::y#0 findcol::i#10 findcol::mindiff#10 findcol::mincol#10 findcol::diff#4 findcol::$10 ] ) -- vbuz1=vbuz2_minus_vbuz3 + //SEG114 [65] (byte/signed byte/word/signed word/dword/signed dword~) findcol::$10 ← (byte) findcol::yp#0 - (byte) findcol::y#0 [ findcol::x#0 findcol::y#0 findcol::i#10 findcol::mindiff#10 findcol::mincol#10 findcol::diff#4 findcol::$10 ] ( main:2::render:7::findcol:43 [ render::y#4 render::colline#5 render::x#2 findcol::x#0 findcol::y#0 findcol::i#10 findcol::mindiff#10 findcol::mincol#10 findcol::diff#4 findcol::$10 ] ) -- vbuz1=vbuz2_minus_vbuz3 lda yp sec sbc y sta _10 - //SEG115 [66] (byte) findcol::diff#3 ← (byte) findcol::diff#4 + (byte/signed byte/word/signed word~) findcol::$10 [ findcol::x#0 findcol::y#0 findcol::i#10 findcol::mindiff#10 findcol::mincol#10 findcol::diff#3 ] ( main:2::render:7::findcol:43 [ render::y#4 render::colline#5 render::x#2 findcol::x#0 findcol::y#0 findcol::i#10 findcol::mindiff#10 findcol::mincol#10 findcol::diff#3 ] ) -- vbuz1=vbuz2_plus_vbuz3 + //SEG115 [66] (byte) findcol::diff#3 ← (byte) findcol::diff#4 + (byte/signed byte/word/signed word/dword/signed dword~) findcol::$10 [ findcol::x#0 findcol::y#0 findcol::i#10 findcol::mindiff#10 findcol::mincol#10 findcol::diff#3 ] ( main:2::render:7::findcol:43 [ render::y#4 render::colline#5 render::x#2 findcol::x#0 findcol::y#0 findcol::i#10 findcol::mindiff#10 findcol::mincol#10 findcol::diff#3 ] ) -- vbuz1=vbuz2_plus_vbuz3 lda diff clc adc _10 @@ -2420,12 +2420,12 @@ findcol: { jmp b8_from_b21 //SEG138 findcol::@6 b6: - //SEG139 [75] (byte/signed byte/word/signed word~) findcol::$12 ← (byte) findcol::y#0 - (byte) findcol::yp#0 [ findcol::x#0 findcol::y#0 findcol::i#10 findcol::mindiff#10 findcol::mincol#10 findcol::diff#4 findcol::$12 ] ( main:2::render:7::findcol:43 [ render::y#4 render::colline#5 render::x#2 findcol::x#0 findcol::y#0 findcol::i#10 findcol::mindiff#10 findcol::mincol#10 findcol::diff#4 findcol::$12 ] ) -- vbuz1=vbuz2_minus_vbuz3 + //SEG139 [75] (byte/signed byte/word/signed word/dword/signed dword~) findcol::$12 ← (byte) findcol::y#0 - (byte) findcol::yp#0 [ findcol::x#0 findcol::y#0 findcol::i#10 findcol::mindiff#10 findcol::mincol#10 findcol::diff#4 findcol::$12 ] ( main:2::render:7::findcol:43 [ render::y#4 render::colline#5 render::x#2 findcol::x#0 findcol::y#0 findcol::i#10 findcol::mindiff#10 findcol::mincol#10 findcol::diff#4 findcol::$12 ] ) -- vbuz1=vbuz2_minus_vbuz3 lda y sec sbc yp sta _12 - //SEG140 [76] (byte) findcol::diff#2 ← (byte) findcol::diff#4 + (byte/signed byte/word/signed word~) findcol::$12 [ findcol::x#0 findcol::y#0 findcol::i#10 findcol::mindiff#10 findcol::mincol#10 findcol::diff#2 ] ( main:2::render:7::findcol:43 [ render::y#4 render::colline#5 render::x#2 findcol::x#0 findcol::y#0 findcol::i#10 findcol::mindiff#10 findcol::mincol#10 findcol::diff#2 ] ) -- vbuz1=vbuz2_plus_vbuz3 + //SEG140 [76] (byte) findcol::diff#2 ← (byte) findcol::diff#4 + (byte/signed byte/word/signed word/dword/signed dword~) findcol::$12 [ findcol::x#0 findcol::y#0 findcol::i#10 findcol::mindiff#10 findcol::mincol#10 findcol::diff#2 ] ( main:2::render:7::findcol:43 [ render::y#4 render::colline#5 render::x#2 findcol::x#0 findcol::y#0 findcol::i#10 findcol::mindiff#10 findcol::mincol#10 findcol::diff#2 ] ) -- vbuz1=vbuz2_plus_vbuz3 lda diff clc adc _12 @@ -2498,7 +2498,7 @@ Statement [30] if(*((const byte[]) YPOS#0+(byte/signed byte/word/signed word/dwo Statement [31] *((const byte[]) YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte/signed byte/word/signed word/dword/signed dword) 25 [ ] ( main:2::animate:9 [ ] ) always clobbers reg byte a Statement [32] (byte/word~) animate::$15 ← *((const byte[]) XPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 3) + (byte/signed byte/word/signed word/dword/signed dword) 7 [ animate::$15 ] ( main:2::animate:9 [ animate::$15 ] ) always clobbers reg byte a Statement [34] if(*((const byte[]) XPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 3)<(byte/signed byte/word/signed word/dword/signed dword) 40) goto animate::@return [ ] ( main:2::animate:9 [ ] ) always clobbers reg byte a -Statement [35] (byte/signed byte/word/signed word~) animate::$18 ← *((const byte[]) XPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 3) - (byte/signed byte/word/signed word/dword/signed dword) 40 [ animate::$18 ] ( main:2::animate:9 [ animate::$18 ] ) always clobbers reg byte a +Statement [35] (byte/signed byte/word/signed word/dword/signed dword~) animate::$18 ← *((const byte[]) XPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 3) - (byte/signed byte/word/signed word/dword/signed dword) 40 [ animate::$18 ] ( main:2::animate:9 [ animate::$18 ] ) always clobbers reg byte a Statement [49] (byte*) render::colline#1 ← (byte*) render::colline#5 + (byte/signed byte/word/signed word/dword/signed dword) 40 [ render::y#4 render::colline#1 ] ( main:2::render:7 [ render::y#4 render::colline#1 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:2 [ render::y#4 render::y#1 ] Statement [62] (byte) findcol::diff#1 ← (byte) findcol::xp#0 - (byte) findcol::x#0 [ findcol::x#0 findcol::y#0 findcol::i#10 findcol::mindiff#10 findcol::mincol#10 findcol::yp#0 findcol::diff#1 ] ( main:2::render:7::findcol:43 [ render::y#4 render::colline#5 render::x#2 findcol::x#0 findcol::y#0 findcol::i#10 findcol::mindiff#10 findcol::mincol#10 findcol::yp#0 findcol::diff#1 ] ) always clobbers reg byte a @@ -2509,11 +2509,11 @@ Removing always clobbered register reg byte a as potential for zp ZP_BYTE:6 [ fi Removing always clobbered register reg byte a as potential for zp ZP_BYTE:7 [ findcol::mindiff#10 findcol::mindiff#13 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:8 [ findcol::return#2 findcol::mincol#10 findcol::mincol#2 findcol::mincol#1 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:25 [ findcol::yp#0 ] -Statement [65] (byte/signed byte/word/signed word~) findcol::$10 ← (byte) findcol::yp#0 - (byte) findcol::y#0 [ findcol::x#0 findcol::y#0 findcol::i#10 findcol::mindiff#10 findcol::mincol#10 findcol::diff#4 findcol::$10 ] ( main:2::render:7::findcol:43 [ render::y#4 render::colline#5 render::x#2 findcol::x#0 findcol::y#0 findcol::i#10 findcol::mindiff#10 findcol::mincol#10 findcol::diff#4 findcol::$10 ] ) always clobbers reg byte a +Statement [65] (byte/signed byte/word/signed word/dword/signed dword~) findcol::$10 ← (byte) findcol::yp#0 - (byte) findcol::y#0 [ findcol::x#0 findcol::y#0 findcol::i#10 findcol::mindiff#10 findcol::mincol#10 findcol::diff#4 findcol::$10 ] ( main:2::render:7::findcol:43 [ render::y#4 render::colline#5 render::x#2 findcol::x#0 findcol::y#0 findcol::i#10 findcol::mindiff#10 findcol::mincol#10 findcol::diff#4 findcol::$10 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:9 [ findcol::diff#4 findcol::diff#1 findcol::diff#0 ] -Statement [66] (byte) findcol::diff#3 ← (byte) findcol::diff#4 + (byte/signed byte/word/signed word~) findcol::$10 [ findcol::x#0 findcol::y#0 findcol::i#10 findcol::mindiff#10 findcol::mincol#10 findcol::diff#3 ] ( main:2::render:7::findcol:43 [ render::y#4 render::colline#5 render::x#2 findcol::x#0 findcol::y#0 findcol::i#10 findcol::mindiff#10 findcol::mincol#10 findcol::diff#3 ] ) always clobbers reg byte a -Statement [75] (byte/signed byte/word/signed word~) findcol::$12 ← (byte) findcol::y#0 - (byte) findcol::yp#0 [ findcol::x#0 findcol::y#0 findcol::i#10 findcol::mindiff#10 findcol::mincol#10 findcol::diff#4 findcol::$12 ] ( main:2::render:7::findcol:43 [ render::y#4 render::colline#5 render::x#2 findcol::x#0 findcol::y#0 findcol::i#10 findcol::mindiff#10 findcol::mincol#10 findcol::diff#4 findcol::$12 ] ) always clobbers reg byte a -Statement [76] (byte) findcol::diff#2 ← (byte) findcol::diff#4 + (byte/signed byte/word/signed word~) findcol::$12 [ findcol::x#0 findcol::y#0 findcol::i#10 findcol::mindiff#10 findcol::mincol#10 findcol::diff#2 ] ( main:2::render:7::findcol:43 [ render::y#4 render::colline#5 render::x#2 findcol::x#0 findcol::y#0 findcol::i#10 findcol::mindiff#10 findcol::mincol#10 findcol::diff#2 ] ) always clobbers reg byte a +Statement [66] (byte) findcol::diff#3 ← (byte) findcol::diff#4 + (byte/signed byte/word/signed word/dword/signed dword~) findcol::$10 [ findcol::x#0 findcol::y#0 findcol::i#10 findcol::mindiff#10 findcol::mincol#10 findcol::diff#3 ] ( main:2::render:7::findcol:43 [ render::y#4 render::colline#5 render::x#2 findcol::x#0 findcol::y#0 findcol::i#10 findcol::mindiff#10 findcol::mincol#10 findcol::diff#3 ] ) always clobbers reg byte a +Statement [75] (byte/signed byte/word/signed word/dword/signed dword~) findcol::$12 ← (byte) findcol::y#0 - (byte) findcol::yp#0 [ findcol::x#0 findcol::y#0 findcol::i#10 findcol::mindiff#10 findcol::mincol#10 findcol::diff#4 findcol::$12 ] ( main:2::render:7::findcol:43 [ render::y#4 render::colline#5 render::x#2 findcol::x#0 findcol::y#0 findcol::i#10 findcol::mindiff#10 findcol::mincol#10 findcol::diff#4 findcol::$12 ] ) always clobbers reg byte a +Statement [76] (byte) findcol::diff#2 ← (byte) findcol::diff#4 + (byte/signed byte/word/signed word/dword/signed dword~) findcol::$12 [ findcol::x#0 findcol::y#0 findcol::i#10 findcol::mindiff#10 findcol::mincol#10 findcol::diff#2 ] ( main:2::render:7::findcol:43 [ render::y#4 render::colline#5 render::x#2 findcol::x#0 findcol::y#0 findcol::i#10 findcol::mindiff#10 findcol::mincol#10 findcol::diff#2 ] ) always clobbers reg byte a Statement [77] (byte) findcol::diff#0 ← (byte) findcol::x#0 - (byte) findcol::xp#0 [ findcol::x#0 findcol::y#0 findcol::i#10 findcol::mindiff#10 findcol::mincol#10 findcol::yp#0 findcol::diff#0 ] ( main:2::render:7::findcol:43 [ render::y#4 render::colline#5 render::x#2 findcol::x#0 findcol::y#0 findcol::i#10 findcol::mindiff#10 findcol::mincol#10 findcol::yp#0 findcol::diff#0 ] ) always clobbers reg byte a Statement [80] *((byte*) initscreen::screen#2) ← (const byte) FILL#0 [ initscreen::screen#2 ] ( main:2::initscreen:5 [ initscreen::screen#2 ] ) always clobbers reg byte a reg byte y Statement [82] if((byte*) initscreen::screen#1<(const byte*) SCREEN#0+(word/signed word/dword/signed dword) 1000) goto initscreen::@1 [ initscreen::screen#1 ] ( main:2::initscreen:5 [ initscreen::screen#1 ] ) always clobbers reg byte a @@ -2529,13 +2529,13 @@ Statement [30] if(*((const byte[]) YPOS#0+(byte/signed byte/word/signed word/dwo Statement [31] *((const byte[]) YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte/signed byte/word/signed word/dword/signed dword) 25 [ ] ( main:2::animate:9 [ ] ) always clobbers reg byte a Statement [32] (byte/word~) animate::$15 ← *((const byte[]) XPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 3) + (byte/signed byte/word/signed word/dword/signed dword) 7 [ animate::$15 ] ( main:2::animate:9 [ animate::$15 ] ) always clobbers reg byte a Statement [34] if(*((const byte[]) XPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 3)<(byte/signed byte/word/signed word/dword/signed dword) 40) goto animate::@return [ ] ( main:2::animate:9 [ ] ) always clobbers reg byte a -Statement [35] (byte/signed byte/word/signed word~) animate::$18 ← *((const byte[]) XPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 3) - (byte/signed byte/word/signed word/dword/signed dword) 40 [ animate::$18 ] ( main:2::animate:9 [ animate::$18 ] ) always clobbers reg byte a +Statement [35] (byte/signed byte/word/signed word/dword/signed dword~) animate::$18 ← *((const byte[]) XPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 3) - (byte/signed byte/word/signed word/dword/signed dword) 40 [ animate::$18 ] ( main:2::animate:9 [ animate::$18 ] ) always clobbers reg byte a Statement [49] (byte*) render::colline#1 ← (byte*) render::colline#5 + (byte/signed byte/word/signed word/dword/signed dword) 40 [ render::y#4 render::colline#1 ] ( main:2::render:7 [ render::y#4 render::colline#1 ] ) always clobbers reg byte a Statement [62] (byte) findcol::diff#1 ← (byte) findcol::xp#0 - (byte) findcol::x#0 [ findcol::x#0 findcol::y#0 findcol::i#10 findcol::mindiff#10 findcol::mincol#10 findcol::yp#0 findcol::diff#1 ] ( main:2::render:7::findcol:43 [ render::y#4 render::colline#5 render::x#2 findcol::x#0 findcol::y#0 findcol::i#10 findcol::mindiff#10 findcol::mincol#10 findcol::yp#0 findcol::diff#1 ] ) always clobbers reg byte a -Statement [65] (byte/signed byte/word/signed word~) findcol::$10 ← (byte) findcol::yp#0 - (byte) findcol::y#0 [ findcol::x#0 findcol::y#0 findcol::i#10 findcol::mindiff#10 findcol::mincol#10 findcol::diff#4 findcol::$10 ] ( main:2::render:7::findcol:43 [ render::y#4 render::colline#5 render::x#2 findcol::x#0 findcol::y#0 findcol::i#10 findcol::mindiff#10 findcol::mincol#10 findcol::diff#4 findcol::$10 ] ) always clobbers reg byte a -Statement [66] (byte) findcol::diff#3 ← (byte) findcol::diff#4 + (byte/signed byte/word/signed word~) findcol::$10 [ findcol::x#0 findcol::y#0 findcol::i#10 findcol::mindiff#10 findcol::mincol#10 findcol::diff#3 ] ( main:2::render:7::findcol:43 [ render::y#4 render::colline#5 render::x#2 findcol::x#0 findcol::y#0 findcol::i#10 findcol::mindiff#10 findcol::mincol#10 findcol::diff#3 ] ) always clobbers reg byte a -Statement [75] (byte/signed byte/word/signed word~) findcol::$12 ← (byte) findcol::y#0 - (byte) findcol::yp#0 [ findcol::x#0 findcol::y#0 findcol::i#10 findcol::mindiff#10 findcol::mincol#10 findcol::diff#4 findcol::$12 ] ( main:2::render:7::findcol:43 [ render::y#4 render::colline#5 render::x#2 findcol::x#0 findcol::y#0 findcol::i#10 findcol::mindiff#10 findcol::mincol#10 findcol::diff#4 findcol::$12 ] ) always clobbers reg byte a -Statement [76] (byte) findcol::diff#2 ← (byte) findcol::diff#4 + (byte/signed byte/word/signed word~) findcol::$12 [ findcol::x#0 findcol::y#0 findcol::i#10 findcol::mindiff#10 findcol::mincol#10 findcol::diff#2 ] ( main:2::render:7::findcol:43 [ render::y#4 render::colline#5 render::x#2 findcol::x#0 findcol::y#0 findcol::i#10 findcol::mindiff#10 findcol::mincol#10 findcol::diff#2 ] ) always clobbers reg byte a +Statement [65] (byte/signed byte/word/signed word/dword/signed dword~) findcol::$10 ← (byte) findcol::yp#0 - (byte) findcol::y#0 [ findcol::x#0 findcol::y#0 findcol::i#10 findcol::mindiff#10 findcol::mincol#10 findcol::diff#4 findcol::$10 ] ( main:2::render:7::findcol:43 [ render::y#4 render::colline#5 render::x#2 findcol::x#0 findcol::y#0 findcol::i#10 findcol::mindiff#10 findcol::mincol#10 findcol::diff#4 findcol::$10 ] ) always clobbers reg byte a +Statement [66] (byte) findcol::diff#3 ← (byte) findcol::diff#4 + (byte/signed byte/word/signed word/dword/signed dword~) findcol::$10 [ findcol::x#0 findcol::y#0 findcol::i#10 findcol::mindiff#10 findcol::mincol#10 findcol::diff#3 ] ( main:2::render:7::findcol:43 [ render::y#4 render::colline#5 render::x#2 findcol::x#0 findcol::y#0 findcol::i#10 findcol::mindiff#10 findcol::mincol#10 findcol::diff#3 ] ) always clobbers reg byte a +Statement [75] (byte/signed byte/word/signed word/dword/signed dword~) findcol::$12 ← (byte) findcol::y#0 - (byte) findcol::yp#0 [ findcol::x#0 findcol::y#0 findcol::i#10 findcol::mindiff#10 findcol::mincol#10 findcol::diff#4 findcol::$12 ] ( main:2::render:7::findcol:43 [ render::y#4 render::colline#5 render::x#2 findcol::x#0 findcol::y#0 findcol::i#10 findcol::mindiff#10 findcol::mincol#10 findcol::diff#4 findcol::$12 ] ) always clobbers reg byte a +Statement [76] (byte) findcol::diff#2 ← (byte) findcol::diff#4 + (byte/signed byte/word/signed word/dword/signed dword~) findcol::$12 [ findcol::x#0 findcol::y#0 findcol::i#10 findcol::mindiff#10 findcol::mincol#10 findcol::diff#2 ] ( main:2::render:7::findcol:43 [ render::y#4 render::colline#5 render::x#2 findcol::x#0 findcol::y#0 findcol::i#10 findcol::mindiff#10 findcol::mincol#10 findcol::diff#2 ] ) always clobbers reg byte a Statement [77] (byte) findcol::diff#0 ← (byte) findcol::x#0 - (byte) findcol::xp#0 [ findcol::x#0 findcol::y#0 findcol::i#10 findcol::mindiff#10 findcol::mincol#10 findcol::yp#0 findcol::diff#0 ] ( main:2::render:7::findcol:43 [ render::y#4 render::colline#5 render::x#2 findcol::x#0 findcol::y#0 findcol::i#10 findcol::mindiff#10 findcol::mincol#10 findcol::yp#0 findcol::diff#0 ] ) always clobbers reg byte a Statement [80] *((byte*) initscreen::screen#2) ← (const byte) FILL#0 [ initscreen::screen#2 ] ( main:2::initscreen:5 [ initscreen::screen#2 ] ) always clobbers reg byte a reg byte y Statement [82] if((byte*) initscreen::screen#1<(const byte*) SCREEN#0+(word/signed word/dword/signed dword) 1000) goto initscreen::@1 [ initscreen::screen#1 ] ( main:2::initscreen:5 [ initscreen::screen#1 ] ) always clobbers reg byte a @@ -2706,10 +2706,10 @@ animate: { jmp b2 //SEG35 animate::@2 b2: - //SEG36 [20] (byte/signed byte/word/signed word~) animate::$6 ← *((const byte[]) XPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 1) - (byte/signed byte/word/signed word/dword/signed dword) 1 [ animate::$6 ] ( main:2::animate:9 [ animate::$6 ] ) -- vbuxx=_deref_pbuc1_minus_1 + //SEG36 [20] (byte/signed byte/word/signed word/dword/signed dword~) animate::$6 ← *((const byte[]) XPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 1) - (byte/signed byte/word/signed word/dword/signed dword) 1 [ animate::$6 ] ( main:2::animate:9 [ animate::$6 ] ) -- vbuxx=_deref_pbuc1_minus_1 ldx XPOS+1 dex - //SEG37 [21] *((const byte[]) XPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte/signed byte/word/signed word~) animate::$6 [ ] ( main:2::animate:9 [ ] ) -- _deref_pbuc1=vbuxx + //SEG37 [21] *((const byte[]) XPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte/signed byte/word/signed word/dword/signed dword~) animate::$6 [ ] ( main:2::animate:9 [ ] ) -- _deref_pbuc1=vbuxx stx XPOS+1 //SEG38 [22] if(*((const byte[]) XPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 1)!=(byte/word/signed word/dword/signed dword) 255) goto animate::@3 [ ] ( main:2::animate:9 [ ] ) -- _deref_pbuc1_neq_vbuc2_then_la1 lda XPOS+1 @@ -2742,10 +2742,10 @@ animate: { jmp b4 //SEG47 animate::@4 b4: - //SEG48 [28] (byte/signed byte/word/signed word~) animate::$12 ← *((const byte[]) YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 3) - (byte/signed byte/word/signed word/dword/signed dword) 1 [ animate::$12 ] ( main:2::animate:9 [ animate::$12 ] ) -- vbuxx=_deref_pbuc1_minus_1 + //SEG48 [28] (byte/signed byte/word/signed word/dword/signed dword~) animate::$12 ← *((const byte[]) YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 3) - (byte/signed byte/word/signed word/dword/signed dword) 1 [ animate::$12 ] ( main:2::animate:9 [ animate::$12 ] ) -- vbuxx=_deref_pbuc1_minus_1 ldx YPOS+3 dex - //SEG49 [29] *((const byte[]) YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte/signed byte/word/signed word~) animate::$12 [ ] ( main:2::animate:9 [ ] ) -- _deref_pbuc1=vbuxx + //SEG49 [29] *((const byte[]) YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte/signed byte/word/signed word/dword/signed dword~) animate::$12 [ ] ( main:2::animate:9 [ ] ) -- _deref_pbuc1=vbuxx stx YPOS+3 //SEG50 [30] if(*((const byte[]) YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 3)!=(byte/word/signed word/dword/signed dword) 255) goto animate::@return [ ] ( main:2::animate:9 [ ] ) -- _deref_pbuc1_neq_vbuc2_then_la1 lda YPOS+3 @@ -2770,11 +2770,11 @@ animate: { jmp b12 //SEG56 animate::@12 b12: - //SEG57 [35] (byte/signed byte/word/signed word~) animate::$18 ← *((const byte[]) XPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 3) - (byte/signed byte/word/signed word/dword/signed dword) 40 [ animate::$18 ] ( main:2::animate:9 [ animate::$18 ] ) -- vbuaa=_deref_pbuc1_minus_vbuc2 + //SEG57 [35] (byte/signed byte/word/signed word/dword/signed dword~) animate::$18 ← *((const byte[]) XPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 3) - (byte/signed byte/word/signed word/dword/signed dword) 40 [ animate::$18 ] ( main:2::animate:9 [ animate::$18 ] ) -- vbuaa=_deref_pbuc1_minus_vbuc2 lda XPOS+3 sec sbc #$28 - //SEG58 [36] *((const byte[]) XPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte/signed byte/word/signed word~) animate::$18 [ ] ( main:2::animate:9 [ ] ) -- _deref_pbuc1=vbuaa + //SEG58 [36] *((const byte[]) XPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte/signed byte/word/signed word/dword/signed dword~) animate::$18 [ ] ( main:2::animate:9 [ ] ) -- _deref_pbuc1=vbuaa sta XPOS+3 jmp breturn //SEG59 animate::@return @@ -2938,11 +2938,11 @@ findcol: { jmp b14 //SEG113 findcol::@14 b14: - //SEG114 [65] (byte/signed byte/word/signed word~) findcol::$10 ← (byte) findcol::yp#0 - (byte) findcol::y#0 [ findcol::x#0 findcol::y#0 findcol::i#10 findcol::mindiff#10 findcol::mincol#10 findcol::diff#4 findcol::$10 ] ( main:2::render:7::findcol:43 [ render::y#4 render::colline#5 render::x#2 findcol::x#0 findcol::y#0 findcol::i#10 findcol::mindiff#10 findcol::mincol#10 findcol::diff#4 findcol::$10 ] ) -- vbuaa=vbuz1_minus_vbuz2 + //SEG114 [65] (byte/signed byte/word/signed word/dword/signed dword~) findcol::$10 ← (byte) findcol::yp#0 - (byte) findcol::y#0 [ findcol::x#0 findcol::y#0 findcol::i#10 findcol::mindiff#10 findcol::mincol#10 findcol::diff#4 findcol::$10 ] ( main:2::render:7::findcol:43 [ render::y#4 render::colline#5 render::x#2 findcol::x#0 findcol::y#0 findcol::i#10 findcol::mindiff#10 findcol::mincol#10 findcol::diff#4 findcol::$10 ] ) -- vbuaa=vbuz1_minus_vbuz2 lda yp sec sbc y - //SEG115 [66] (byte) findcol::diff#3 ← (byte) findcol::diff#4 + (byte/signed byte/word/signed word~) findcol::$10 [ findcol::x#0 findcol::y#0 findcol::i#10 findcol::mindiff#10 findcol::mincol#10 findcol::diff#3 ] ( main:2::render:7::findcol:43 [ render::y#4 render::colline#5 render::x#2 findcol::x#0 findcol::y#0 findcol::i#10 findcol::mindiff#10 findcol::mincol#10 findcol::diff#3 ] ) -- vbuaa=vbuz1_plus_vbuaa + //SEG115 [66] (byte) findcol::diff#3 ← (byte) findcol::diff#4 + (byte/signed byte/word/signed word/dword/signed dword~) findcol::$10 [ findcol::x#0 findcol::y#0 findcol::i#10 findcol::mindiff#10 findcol::mincol#10 findcol::diff#3 ] ( main:2::render:7::findcol:43 [ render::y#4 render::colline#5 render::x#2 findcol::x#0 findcol::y#0 findcol::i#10 findcol::mindiff#10 findcol::mincol#10 findcol::diff#3 ] ) -- vbuaa=vbuz1_plus_vbuaa clc adc diff //SEG116 [67] phi from findcol::@14 findcol::@6 to findcol::@7 [phi:findcol::@14/findcol::@6->findcol::@7] @@ -2994,11 +2994,11 @@ findcol: { jmp b8_from_b21 //SEG138 findcol::@6 b6: - //SEG139 [75] (byte/signed byte/word/signed word~) findcol::$12 ← (byte) findcol::y#0 - (byte) findcol::yp#0 [ findcol::x#0 findcol::y#0 findcol::i#10 findcol::mindiff#10 findcol::mincol#10 findcol::diff#4 findcol::$12 ] ( main:2::render:7::findcol:43 [ render::y#4 render::colline#5 render::x#2 findcol::x#0 findcol::y#0 findcol::i#10 findcol::mindiff#10 findcol::mincol#10 findcol::diff#4 findcol::$12 ] ) -- vbuaa=vbuz1_minus_vbuz2 + //SEG139 [75] (byte/signed byte/word/signed word/dword/signed dword~) findcol::$12 ← (byte) findcol::y#0 - (byte) findcol::yp#0 [ findcol::x#0 findcol::y#0 findcol::i#10 findcol::mindiff#10 findcol::mincol#10 findcol::diff#4 findcol::$12 ] ( main:2::render:7::findcol:43 [ render::y#4 render::colline#5 render::x#2 findcol::x#0 findcol::y#0 findcol::i#10 findcol::mindiff#10 findcol::mincol#10 findcol::diff#4 findcol::$12 ] ) -- vbuaa=vbuz1_minus_vbuz2 lda y sec sbc yp - //SEG140 [76] (byte) findcol::diff#2 ← (byte) findcol::diff#4 + (byte/signed byte/word/signed word~) findcol::$12 [ findcol::x#0 findcol::y#0 findcol::i#10 findcol::mindiff#10 findcol::mincol#10 findcol::diff#2 ] ( main:2::render:7::findcol:43 [ render::y#4 render::colline#5 render::x#2 findcol::x#0 findcol::y#0 findcol::i#10 findcol::mindiff#10 findcol::mincol#10 findcol::diff#2 ] ) -- vbuaa=vbuz1_plus_vbuaa + //SEG140 [76] (byte) findcol::diff#2 ← (byte) findcol::diff#4 + (byte/signed byte/word/signed word/dword/signed dword~) findcol::$12 [ findcol::x#0 findcol::y#0 findcol::i#10 findcol::mindiff#10 findcol::mincol#10 findcol::diff#2 ] ( main:2::render:7::findcol:43 [ render::y#4 render::colline#5 render::x#2 findcol::x#0 findcol::y#0 findcol::i#10 findcol::mindiff#10 findcol::mincol#10 findcol::diff#2 ] ) -- vbuaa=vbuz1_plus_vbuaa clc adc diff jmp b7_from_b6 @@ -3180,11 +3180,11 @@ FINAL SYMBOL TABLE (const byte[]) YPOS#0 YPOS = { (byte/signed byte/word/signed word/dword/signed dword) 5, (byte/signed byte/word/signed word/dword/signed dword) 8, (byte/signed byte/word/signed word/dword/signed dword) 14, (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 17, (byte/signed byte/word/signed word/dword/signed dword) 22 } (void()) animate() (byte/word~) animate::$0 reg byte x 4.0 -(byte/signed byte/word/signed word~) animate::$12 reg byte x 4.0 +(byte/signed byte/word/signed word/dword/signed dword~) animate::$12 reg byte x 4.0 (byte/word~) animate::$15 reg byte a 4.0 -(byte/signed byte/word/signed word~) animate::$18 reg byte a 4.0 +(byte/signed byte/word/signed word/dword/signed dword~) animate::$18 reg byte a 4.0 (byte/word~) animate::$3 reg byte x 4.0 -(byte/signed byte/word/signed word~) animate::$6 reg byte x 4.0 +(byte/signed byte/word/signed word/dword/signed dword~) animate::$6 reg byte x 4.0 (byte/word~) animate::$9 reg byte x 4.0 (label) animate::@1 (label) animate::@10 @@ -3198,8 +3198,8 @@ FINAL SYMBOL TABLE (label) animate::@9 (label) animate::@return (byte()) findcol((byte) findcol::x , (byte) findcol::y) -(byte/signed byte/word/signed word~) findcol::$10 reg byte a 20002.0 -(byte/signed byte/word/signed word~) findcol::$12 reg byte a 20002.0 +(byte/signed byte/word/signed word/dword/signed dword~) findcol::$10 reg byte a 20002.0 +(byte/signed byte/word/signed word/dword/signed dword~) findcol::$12 reg byte a 20002.0 (label) findcol::@1 (label) findcol::@12 (label) findcol::@14 @@ -3370,10 +3370,10 @@ animate: { sta YPOS+0 //SEG35 animate::@2 b2: - //SEG36 [20] (byte/signed byte/word/signed word~) animate::$6 ← *((const byte[]) XPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 1) - (byte/signed byte/word/signed word/dword/signed dword) 1 [ animate::$6 ] ( main:2::animate:9 [ animate::$6 ] ) -- vbuxx=_deref_pbuc1_minus_1 + //SEG36 [20] (byte/signed byte/word/signed word/dword/signed dword~) animate::$6 ← *((const byte[]) XPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 1) - (byte/signed byte/word/signed word/dword/signed dword) 1 [ animate::$6 ] ( main:2::animate:9 [ animate::$6 ] ) -- vbuxx=_deref_pbuc1_minus_1 ldx XPOS+1 dex - //SEG37 [21] *((const byte[]) XPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte/signed byte/word/signed word~) animate::$6 [ ] ( main:2::animate:9 [ ] ) -- _deref_pbuc1=vbuxx + //SEG37 [21] *((const byte[]) XPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte/signed byte/word/signed word/dword/signed dword~) animate::$6 [ ] ( main:2::animate:9 [ ] ) -- _deref_pbuc1=vbuxx stx XPOS+1 //SEG38 [22] if(*((const byte[]) XPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 1)!=(byte/word/signed word/dword/signed dword) 255) goto animate::@3 [ ] ( main:2::animate:9 [ ] ) -- _deref_pbuc1_neq_vbuc2_then_la1 txa @@ -3400,10 +3400,10 @@ animate: { sta YPOS+2 //SEG47 animate::@4 b4: - //SEG48 [28] (byte/signed byte/word/signed word~) animate::$12 ← *((const byte[]) YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 3) - (byte/signed byte/word/signed word/dword/signed dword) 1 [ animate::$12 ] ( main:2::animate:9 [ animate::$12 ] ) -- vbuxx=_deref_pbuc1_minus_1 + //SEG48 [28] (byte/signed byte/word/signed word/dword/signed dword~) animate::$12 ← *((const byte[]) YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 3) - (byte/signed byte/word/signed word/dword/signed dword) 1 [ animate::$12 ] ( main:2::animate:9 [ animate::$12 ] ) -- vbuxx=_deref_pbuc1_minus_1 ldx YPOS+3 dex - //SEG49 [29] *((const byte[]) YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte/signed byte/word/signed word~) animate::$12 [ ] ( main:2::animate:9 [ ] ) -- _deref_pbuc1=vbuxx + //SEG49 [29] *((const byte[]) YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte/signed byte/word/signed word/dword/signed dword~) animate::$12 [ ] ( main:2::animate:9 [ ] ) -- _deref_pbuc1=vbuxx stx YPOS+3 //SEG50 [30] if(*((const byte[]) YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 3)!=(byte/word/signed word/dword/signed dword) 255) goto animate::@return [ ] ( main:2::animate:9 [ ] ) -- _deref_pbuc1_neq_vbuc2_then_la1 txa @@ -3423,10 +3423,10 @@ animate: { cmp #$28 bcc breturn //SEG56 animate::@12 - //SEG57 [35] (byte/signed byte/word/signed word~) animate::$18 ← *((const byte[]) XPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 3) - (byte/signed byte/word/signed word/dword/signed dword) 40 [ animate::$18 ] ( main:2::animate:9 [ animate::$18 ] ) -- vbuaa=_deref_pbuc1_minus_vbuc2 + //SEG57 [35] (byte/signed byte/word/signed word/dword/signed dword~) animate::$18 ← *((const byte[]) XPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 3) - (byte/signed byte/word/signed word/dword/signed dword) 40 [ animate::$18 ] ( main:2::animate:9 [ animate::$18 ] ) -- vbuaa=_deref_pbuc1_minus_vbuc2 sec sbc #$28 - //SEG58 [36] *((const byte[]) XPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte/signed byte/word/signed word~) animate::$18 [ ] ( main:2::animate:9 [ ] ) -- _deref_pbuc1=vbuaa + //SEG58 [36] *((const byte[]) XPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte/signed byte/word/signed word/dword/signed dword~) animate::$18 [ ] ( main:2::animate:9 [ ] ) -- _deref_pbuc1=vbuaa sta XPOS+3 //SEG59 animate::@return breturn: @@ -3561,11 +3561,11 @@ findcol: { cmp yp bcs b6 //SEG113 findcol::@14 - //SEG114 [65] (byte/signed byte/word/signed word~) findcol::$10 ← (byte) findcol::yp#0 - (byte) findcol::y#0 [ findcol::x#0 findcol::y#0 findcol::i#10 findcol::mindiff#10 findcol::mincol#10 findcol::diff#4 findcol::$10 ] ( main:2::render:7::findcol:43 [ render::y#4 render::colline#5 render::x#2 findcol::x#0 findcol::y#0 findcol::i#10 findcol::mindiff#10 findcol::mincol#10 findcol::diff#4 findcol::$10 ] ) -- vbuaa=vbuz1_minus_vbuz2 + //SEG114 [65] (byte/signed byte/word/signed word/dword/signed dword~) findcol::$10 ← (byte) findcol::yp#0 - (byte) findcol::y#0 [ findcol::x#0 findcol::y#0 findcol::i#10 findcol::mindiff#10 findcol::mincol#10 findcol::diff#4 findcol::$10 ] ( main:2::render:7::findcol:43 [ render::y#4 render::colline#5 render::x#2 findcol::x#0 findcol::y#0 findcol::i#10 findcol::mindiff#10 findcol::mincol#10 findcol::diff#4 findcol::$10 ] ) -- vbuaa=vbuz1_minus_vbuz2 lda yp sec sbc y - //SEG115 [66] (byte) findcol::diff#3 ← (byte) findcol::diff#4 + (byte/signed byte/word/signed word~) findcol::$10 [ findcol::x#0 findcol::y#0 findcol::i#10 findcol::mindiff#10 findcol::mincol#10 findcol::diff#3 ] ( main:2::render:7::findcol:43 [ render::y#4 render::colline#5 render::x#2 findcol::x#0 findcol::y#0 findcol::i#10 findcol::mindiff#10 findcol::mincol#10 findcol::diff#3 ] ) -- vbuaa=vbuz1_plus_vbuaa + //SEG115 [66] (byte) findcol::diff#3 ← (byte) findcol::diff#4 + (byte/signed byte/word/signed word/dword/signed dword~) findcol::$10 [ findcol::x#0 findcol::y#0 findcol::i#10 findcol::mindiff#10 findcol::mincol#10 findcol::diff#3 ] ( main:2::render:7::findcol:43 [ render::y#4 render::colline#5 render::x#2 findcol::x#0 findcol::y#0 findcol::i#10 findcol::mindiff#10 findcol::mincol#10 findcol::diff#3 ] ) -- vbuaa=vbuz1_plus_vbuaa clc adc diff //SEG116 [67] phi from findcol::@14 findcol::@6 to findcol::@7 [phi:findcol::@14/findcol::@6->findcol::@7] @@ -3607,11 +3607,11 @@ findcol: { jmp b8 //SEG138 findcol::@6 b6: - //SEG139 [75] (byte/signed byte/word/signed word~) findcol::$12 ← (byte) findcol::y#0 - (byte) findcol::yp#0 [ findcol::x#0 findcol::y#0 findcol::i#10 findcol::mindiff#10 findcol::mincol#10 findcol::diff#4 findcol::$12 ] ( main:2::render:7::findcol:43 [ render::y#4 render::colline#5 render::x#2 findcol::x#0 findcol::y#0 findcol::i#10 findcol::mindiff#10 findcol::mincol#10 findcol::diff#4 findcol::$12 ] ) -- vbuaa=vbuz1_minus_vbuz2 + //SEG139 [75] (byte/signed byte/word/signed word/dword/signed dword~) findcol::$12 ← (byte) findcol::y#0 - (byte) findcol::yp#0 [ findcol::x#0 findcol::y#0 findcol::i#10 findcol::mindiff#10 findcol::mincol#10 findcol::diff#4 findcol::$12 ] ( main:2::render:7::findcol:43 [ render::y#4 render::colline#5 render::x#2 findcol::x#0 findcol::y#0 findcol::i#10 findcol::mindiff#10 findcol::mincol#10 findcol::diff#4 findcol::$12 ] ) -- vbuaa=vbuz1_minus_vbuz2 lda y sec sbc yp - //SEG140 [76] (byte) findcol::diff#2 ← (byte) findcol::diff#4 + (byte/signed byte/word/signed word~) findcol::$12 [ findcol::x#0 findcol::y#0 findcol::i#10 findcol::mindiff#10 findcol::mincol#10 findcol::diff#2 ] ( main:2::render:7::findcol:43 [ render::y#4 render::colline#5 render::x#2 findcol::x#0 findcol::y#0 findcol::i#10 findcol::mindiff#10 findcol::mincol#10 findcol::diff#2 ] ) -- vbuaa=vbuz1_plus_vbuaa + //SEG140 [76] (byte) findcol::diff#2 ← (byte) findcol::diff#4 + (byte/signed byte/word/signed word/dword/signed dword~) findcol::$12 [ findcol::x#0 findcol::y#0 findcol::i#10 findcol::mindiff#10 findcol::mincol#10 findcol::diff#2 ] ( main:2::render:7::findcol:43 [ render::y#4 render::colline#5 render::x#2 findcol::x#0 findcol::y#0 findcol::i#10 findcol::mindiff#10 findcol::mincol#10 findcol::diff#2 ] ) -- vbuaa=vbuz1_plus_vbuaa clc adc diff jmp b7 diff --git a/src/test/java/dk/camelot64/kickc/test/ref/voronoi.sym b/src/test/java/dk/camelot64/kickc/test/ref/voronoi.sym index e504b11db..7e5d1b98c 100644 --- a/src/test/java/dk/camelot64/kickc/test/ref/voronoi.sym +++ b/src/test/java/dk/camelot64/kickc/test/ref/voronoi.sym @@ -15,11 +15,11 @@ (const byte[]) YPOS#0 YPOS = { (byte/signed byte/word/signed word/dword/signed dword) 5, (byte/signed byte/word/signed word/dword/signed dword) 8, (byte/signed byte/word/signed word/dword/signed dword) 14, (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 17, (byte/signed byte/word/signed word/dword/signed dword) 22 } (void()) animate() (byte/word~) animate::$0 reg byte x 4.0 -(byte/signed byte/word/signed word~) animate::$12 reg byte x 4.0 +(byte/signed byte/word/signed word/dword/signed dword~) animate::$12 reg byte x 4.0 (byte/word~) animate::$15 reg byte a 4.0 -(byte/signed byte/word/signed word~) animate::$18 reg byte a 4.0 +(byte/signed byte/word/signed word/dword/signed dword~) animate::$18 reg byte a 4.0 (byte/word~) animate::$3 reg byte x 4.0 -(byte/signed byte/word/signed word~) animate::$6 reg byte x 4.0 +(byte/signed byte/word/signed word/dword/signed dword~) animate::$6 reg byte x 4.0 (byte/word~) animate::$9 reg byte x 4.0 (label) animate::@1 (label) animate::@10 @@ -33,8 +33,8 @@ (label) animate::@9 (label) animate::@return (byte()) findcol((byte) findcol::x , (byte) findcol::y) -(byte/signed byte/word/signed word~) findcol::$10 reg byte a 20002.0 -(byte/signed byte/word/signed word~) findcol::$12 reg byte a 20002.0 +(byte/signed byte/word/signed word/dword/signed dword~) findcol::$10 reg byte a 20002.0 +(byte/signed byte/word/signed word/dword/signed dword~) findcol::$12 reg byte a 20002.0 (label) findcol::@1 (label) findcol::@12 (label) findcol::@14