mirror of
https://gitlab.com/camelot/kickc.git
synced 2024-08-02 09:29:35 +00:00
Updated stdlib & tests with 0-terminated strings.
This commit is contained in:
parent
6c59110896
commit
c78bebf2a8
@ -8,13 +8,13 @@ byte* print_char_cursor = print_line_cursor;
|
|||||||
// Print a number of zero-terminated strings, each followed by a newline.
|
// Print a number of zero-terminated strings, each followed by a newline.
|
||||||
// The sequence of lines is terminated by another zero.
|
// The sequence of lines is terminated by another zero.
|
||||||
void print_str_lines(byte* str) {
|
void print_str_lines(byte* str) {
|
||||||
while(*str!='@') {
|
while(*str) {
|
||||||
do {
|
do {
|
||||||
byte ch = *(str++);
|
byte ch = *(str++);
|
||||||
if(ch!='@') {
|
if(ch) {
|
||||||
*(print_char_cursor++) = ch;
|
*(print_char_cursor++) = ch;
|
||||||
}
|
}
|
||||||
} while (ch!='@');
|
} while (ch);
|
||||||
print_ln();
|
print_ln();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -27,14 +27,14 @@ void print_str_ln(byte* str) {
|
|||||||
|
|
||||||
// Print a zero-terminated string
|
// Print a zero-terminated string
|
||||||
void print_str(byte* str) {
|
void print_str(byte* str) {
|
||||||
while(*str!='@') {
|
while(*str) {
|
||||||
*(print_char_cursor++) = *(str++);
|
*(print_char_cursor++) = *(str++);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Print a string at a specific screen position
|
// Print a string at a specific screen position
|
||||||
void print_str_at(byte* str, byte* at) {
|
void print_str_at(byte* str, byte* at) {
|
||||||
while(*str!='@') {
|
while(*str) {
|
||||||
*(at++) = *(str++);
|
*(at++) = *(str++);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -61,7 +61,7 @@ void main() {
|
|||||||
|
|
||||||
// Print a string at a specific screen position
|
// Print a string at a specific screen position
|
||||||
void print_str_at(byte* str, byte* at) {
|
void print_str_at(byte* str, byte* at) {
|
||||||
while(*str!='@') {
|
while(*str) {
|
||||||
*(at++) = *(str++);
|
*(at++) = *(str++);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -23,7 +23,7 @@ void main() {
|
|||||||
}
|
}
|
||||||
// Render next char
|
// Render next char
|
||||||
byte c = *nxt;
|
byte c = *nxt;
|
||||||
if(c=='@') {
|
if(c==0) {
|
||||||
nxt = TEXT;
|
nxt = TEXT;
|
||||||
c = *nxt;
|
c = *nxt;
|
||||||
}
|
}
|
||||||
|
@ -61,7 +61,7 @@ byte* nxt = TEXT;
|
|||||||
// Find the next char of the scroll text
|
// Find the next char of the scroll text
|
||||||
byte next_char() {
|
byte next_char() {
|
||||||
byte c = *nxt;
|
byte c = *nxt;
|
||||||
if(c=='@') {
|
if(c==0) {
|
||||||
nxt = TEXT;
|
nxt = TEXT;
|
||||||
c = *nxt;
|
c = *nxt;
|
||||||
}
|
}
|
||||||
|
@ -25,6 +25,6 @@ void print(byte* msg) {
|
|||||||
byte i=0;
|
byte i=0;
|
||||||
do {
|
do {
|
||||||
SCREEN[idx++] = msg[i++];
|
SCREEN[idx++] = msg[i++];
|
||||||
} while(msg[i]!='@');
|
} while(msg[i]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -20,7 +20,7 @@ void hello() {
|
|||||||
byte i=0;
|
byte i=0;
|
||||||
do {
|
do {
|
||||||
SCREEN[idx++] = msg[i++];
|
SCREEN[idx++] = msg[i++];
|
||||||
} while(msg[i]!='@');
|
} while(msg[i]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -25,7 +25,7 @@ void hello() {
|
|||||||
byte i=0;
|
byte i=0;
|
||||||
do {
|
do {
|
||||||
SCREEN[idx++] = msg[i++];
|
SCREEN[idx++] = msg[i++];
|
||||||
} while(msg[i]!='@');
|
} while(msg[i]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -7,7 +7,7 @@ void main() {
|
|||||||
|
|
||||||
inline void print2(byte* at, byte* msg) {
|
inline void print2(byte* at, byte* msg) {
|
||||||
byte j=0;
|
byte j=0;
|
||||||
for(byte i=0; msg[i]!='@'; i++) {
|
for(byte i=0; msg[i]; i++) {
|
||||||
at[j] = msg[i];
|
at[j] = msg[i];
|
||||||
j += 2;
|
j += 2;
|
||||||
}
|
}
|
||||||
|
@ -7,7 +7,7 @@ void main() {
|
|||||||
|
|
||||||
void print2(byte* at, byte* msg) {
|
void print2(byte* at, byte* msg) {
|
||||||
byte j=0;
|
byte j=0;
|
||||||
for(byte i=0; msg[i]!='@'; i++) {
|
for(byte i=0; msg[i]; i++) {
|
||||||
at[j] = msg[i];
|
at[j] = msg[i];
|
||||||
j += 2;
|
j += 2;
|
||||||
}
|
}
|
||||||
|
@ -10,7 +10,7 @@ void main() {
|
|||||||
|
|
||||||
inline void print(byte* at, byte* msg) {
|
inline void print(byte* at, byte* msg) {
|
||||||
byte j=0;
|
byte j=0;
|
||||||
for(byte i=0; msg[i]!='@'; i++) {
|
for(byte i=0; msg[i]; i++) {
|
||||||
at[j] = msg[i];
|
at[j] = msg[i];
|
||||||
j += 2;
|
j += 2;
|
||||||
}
|
}
|
||||||
|
@ -17,7 +17,7 @@ void print_msg(byte idx) {
|
|||||||
|
|
||||||
byte* screen = $0400;
|
byte* screen = $0400;
|
||||||
void print(byte* msg) {
|
void print(byte* msg) {
|
||||||
while(*msg!='@') {
|
while(*msg) {
|
||||||
*(screen++) = *(msg++);
|
*(screen++) = *(msg++);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -10,7 +10,7 @@ void main() {
|
|||||||
|
|
||||||
byte* screen = $0400;
|
byte* screen = $0400;
|
||||||
void print(byte* msg) {
|
void print(byte* msg) {
|
||||||
while(*msg!='@') {
|
while(*msg) {
|
||||||
*(screen++) = *(msg++);
|
*(screen++) = *(msg++);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -3,7 +3,7 @@ void main() {
|
|||||||
byte* screen = $0400;
|
byte* screen = $0400;
|
||||||
byte[] msg = "message 2 ";
|
byte[] msg = "message 2 ";
|
||||||
byte i=0;
|
byte i=0;
|
||||||
while(msg[i]!='@') {
|
while(msg[i]) {
|
||||||
screen[i++] = msg[i];
|
screen[i++] = msg[i];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,10 +1,10 @@
|
|||||||
// Illustrates both break & continue statements in a loop
|
// Illustrates both break & continue statements in a loop
|
||||||
// Prints a message ending at '@' skipping all spaces
|
// Prints a message ending at NUL skipping all spaces
|
||||||
void main() {
|
void main() {
|
||||||
byte* screen = $400;
|
byte* screen = $400;
|
||||||
byte[] str = "hello brave new world";
|
byte[] str = "hello brave new world";
|
||||||
for( byte i: 0..255) {
|
for( byte i: 0..255) {
|
||||||
if(str[i]=='@') break;
|
if(str[i]==0) break;
|
||||||
if(str[i]==' ') continue;
|
if(str[i]==' ') continue;
|
||||||
*screen++ = str[i];
|
*screen++ = str[i];
|
||||||
}
|
}
|
||||||
|
@ -7,7 +7,7 @@ void main() {
|
|||||||
byte* text;
|
byte* text;
|
||||||
for(byte i: 0..20) {
|
for(byte i: 0..20) {
|
||||||
nexttext(&text);
|
nexttext(&text);
|
||||||
while(*text!='@') {
|
while(*text) {
|
||||||
*screen++ = *text++;
|
*screen++ = *text++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -7,7 +7,7 @@ void main() {
|
|||||||
byte i=0;
|
byte i=0;
|
||||||
do {
|
do {
|
||||||
byte c = *nxt;
|
byte c = *nxt;
|
||||||
if(c=='@') {
|
if(c==0) {
|
||||||
nxt = TEXT;
|
nxt = TEXT;
|
||||||
c = *nxt;
|
c = *nxt;
|
||||||
}
|
}
|
||||||
|
@ -14,7 +14,7 @@ byte* nxt = TEXT;
|
|||||||
// Find the next char of the text
|
// Find the next char of the text
|
||||||
byte next_char() {
|
byte next_char() {
|
||||||
byte c = *nxt;
|
byte c = *nxt;
|
||||||
if(c=='@') {
|
if(c==0) {
|
||||||
nxt = TEXT;
|
nxt = TEXT;
|
||||||
c = *nxt;
|
c = *nxt;
|
||||||
}
|
}
|
||||||
|
@ -11,7 +11,7 @@ void main() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void print(byte* string) {
|
void print(byte* string) {
|
||||||
while(*string!='@') {
|
while(*string) {
|
||||||
*screen++ = *string++;
|
*screen++ = *string++;
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -11,7 +11,7 @@ void main() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void print(byte* string) {
|
void print(byte* string) {
|
||||||
while(*string!='@') {
|
while(*string) {
|
||||||
*screen++ = *string++;
|
*screen++ = *string++;
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -6,6 +6,11 @@ Fixing pointer array-indexing *((dword*) ultoa::digit_values + (byte) ultoa::dig
|
|||||||
Warning! Adding boolean cast to non-boolean condition *((byte*) strcpy::src)
|
Warning! Adding boolean cast to non-boolean condition *((byte*) strcpy::src)
|
||||||
Warning! Adding boolean cast to non-boolean condition (number~) abs_u16::$1
|
Warning! Adding boolean cast to non-boolean condition (number~) abs_u16::$1
|
||||||
Warning! Adding boolean cast to non-boolean condition (number~) sgn_u16::$1
|
Warning! Adding boolean cast to non-boolean condition (number~) sgn_u16::$1
|
||||||
|
Warning! Adding boolean cast to non-boolean condition *((byte*) print_str_lines::str)
|
||||||
|
Warning! Adding boolean cast to non-boolean condition (byte) print_str_lines::ch
|
||||||
|
Warning! Adding boolean cast to non-boolean condition *((byte*) print_str::str)
|
||||||
|
Warning! Adding boolean cast to non-boolean condition *((byte*) print_str_at::str)
|
||||||
|
Warning! Adding boolean cast to non-boolean sub-expression (byte) print_str_lines::ch
|
||||||
Identified constant variable (byte*) HEAP_TOP
|
Identified constant variable (byte*) HEAP_TOP
|
||||||
Identified constant variable (byte*) BITMAP
|
Identified constant variable (byte*) BITMAP
|
||||||
Identified constant variable (byte*) SCREEN
|
Identified constant variable (byte*) SCREEN
|
||||||
|
@ -177,7 +177,7 @@ print_str: {
|
|||||||
b1:
|
b1:
|
||||||
ldy #0
|
ldy #0
|
||||||
lda (str),y
|
lda (str),y
|
||||||
cmp #'@'
|
cmp #0
|
||||||
bne b2
|
bne b2
|
||||||
rts
|
rts
|
||||||
b2:
|
b2:
|
||||||
|
@ -152,7 +152,7 @@ print_str: scope:[print_str] from testChar testInt testLong testShort
|
|||||||
print_str::@1: scope:[print_str] from print_str print_str::@2
|
print_str::@1: scope:[print_str] from print_str print_str::@2
|
||||||
[71] (byte*) print_char_cursor#136 ← phi( print_str/(byte*) print_char_cursor#156 print_str::@2/(byte*) print_char_cursor#1 )
|
[71] (byte*) print_char_cursor#136 ← phi( print_str/(byte*) print_char_cursor#156 print_str::@2/(byte*) print_char_cursor#1 )
|
||||||
[71] (byte*) print_str::str#5 ← phi( print_str/(byte*) print_str::str#7 print_str::@2/(byte*) print_str::str#0 )
|
[71] (byte*) print_str::str#5 ← phi( print_str/(byte*) print_str::str#7 print_str::@2/(byte*) print_str::str#0 )
|
||||||
[72] if(*((byte*) print_str::str#5)!=(byte) '@') goto print_str::@2
|
[72] if((byte) 0!=*((byte*) print_str::str#5)) goto print_str::@2
|
||||||
to:print_str::@return
|
to:print_str::@return
|
||||||
print_str::@return: scope:[print_str] from print_str::@1
|
print_str::@return: scope:[print_str] from print_str::@1
|
||||||
[73] return
|
[73] return
|
||||||
|
@ -4,6 +4,11 @@ Fixing pointer addition (word*~) bsearch16u::$1 ← (word*) bsearch16u::items -
|
|||||||
Fixing pointer array-indexing *((word*) utoa::digit_values + (byte) utoa::digit)
|
Fixing pointer array-indexing *((word*) utoa::digit_values + (byte) utoa::digit)
|
||||||
Fixing pointer array-indexing *((dword*) ultoa::digit_values + (byte) ultoa::digit)
|
Fixing pointer array-indexing *((dword*) ultoa::digit_values + (byte) ultoa::digit)
|
||||||
Warning! Adding boolean cast to non-boolean condition *((byte*) strcpy::src)
|
Warning! Adding boolean cast to non-boolean condition *((byte*) strcpy::src)
|
||||||
|
Warning! Adding boolean cast to non-boolean condition *((byte*) print_str_lines::str)
|
||||||
|
Warning! Adding boolean cast to non-boolean condition (byte) print_str_lines::ch
|
||||||
|
Warning! Adding boolean cast to non-boolean condition *((byte*) print_str::str)
|
||||||
|
Warning! Adding boolean cast to non-boolean condition *((byte*) print_str_at::str)
|
||||||
|
Warning! Adding boolean cast to non-boolean sub-expression (byte) print_str_lines::ch
|
||||||
Identified constant variable (byte*) HEAP_TOP
|
Identified constant variable (byte*) HEAP_TOP
|
||||||
Identified constant variable (byte) testChar::u
|
Identified constant variable (byte) testChar::u
|
||||||
Identified constant variable (byte) testChar::n
|
Identified constant variable (byte) testChar::n
|
||||||
@ -125,7 +130,7 @@ print_str: scope:[print_str] from testChar testInt testLong testShort
|
|||||||
print_str::@1: scope:[print_str] from print_str print_str::@2
|
print_str::@1: scope:[print_str] from print_str print_str::@2
|
||||||
(byte*) print_char_cursor#136 ← phi( print_str/(byte*) print_char_cursor#156 print_str::@2/(byte*) print_char_cursor#1 )
|
(byte*) print_char_cursor#136 ← phi( print_str/(byte*) print_char_cursor#156 print_str::@2/(byte*) print_char_cursor#1 )
|
||||||
(byte*) print_str::str#5 ← phi( print_str/(byte*) print_str::str#7 print_str::@2/(byte*) print_str::str#0 )
|
(byte*) print_str::str#5 ← phi( print_str/(byte*) print_str::str#7 print_str::@2/(byte*) print_str::str#0 )
|
||||||
(bool~) print_str::$0 ← *((byte*) print_str::str#5) != (byte) '@'
|
(bool~) print_str::$0 ← (number) 0 != *((byte*) print_str::str#5)
|
||||||
if((bool~) print_str::$0) goto print_str::@2
|
if((bool~) print_str::$0) goto print_str::@2
|
||||||
to:print_str::@return
|
to:print_str::@return
|
||||||
print_str::@2: scope:[print_str] from print_str::@1
|
print_str::@2: scope:[print_str] from print_str::@1
|
||||||
@ -1239,6 +1244,7 @@ SYMBOL TABLE SSA
|
|||||||
(word) testShort::u#0
|
(word) testShort::u#0
|
||||||
|
|
||||||
Adding number conversion cast (unumber) 0 in (bool~) memset::$0 ← (word) memset::num#1 > (number) 0
|
Adding number conversion cast (unumber) 0 in (bool~) memset::$0 ← (word) memset::num#1 > (number) 0
|
||||||
|
Adding number conversion cast (unumber) 0 in (bool~) print_str::$0 ← (number) 0 != *((byte*) print_str::str#5)
|
||||||
Adding number conversion cast (unumber) $28 in (byte*~) print_ln::$0 ← (byte*) print_line_cursor#20 + (number) $28
|
Adding number conversion cast (unumber) $28 in (byte*~) print_ln::$0 ← (byte*) print_line_cursor#20 + (number) $28
|
||||||
Adding number conversion cast (snumber) 0 in (bool~) print_sword::$0 ← (signed word) print_sword::w#5 < (number) 0
|
Adding number conversion cast (snumber) 0 in (bool~) print_sword::$0 ← (signed word) print_sword::w#5 < (number) 0
|
||||||
Adding number conversion cast (snumber) 0 in (bool~) print_sbyte::$0 ← (signed byte) print_sbyte::b#2 < (number) 0
|
Adding number conversion cast (snumber) 0 in (bool~) print_sbyte::$0 ← (signed byte) print_sbyte::b#2 < (number) 0
|
||||||
@ -1282,6 +1288,7 @@ Inlining cast (signed dword) testLong::s#0 ← (snumber)(number) -$222e0
|
|||||||
Successful SSA optimization Pass2InlineCast
|
Successful SSA optimization Pass2InlineCast
|
||||||
Simplifying constant integer cast 0
|
Simplifying constant integer cast 0
|
||||||
Simplifying constant pointer cast (byte*) 1024
|
Simplifying constant pointer cast (byte*) 1024
|
||||||
|
Simplifying constant integer cast 0
|
||||||
Simplifying constant integer cast $28
|
Simplifying constant integer cast $28
|
||||||
Simplifying constant integer cast 0
|
Simplifying constant integer cast 0
|
||||||
Simplifying constant integer cast 0
|
Simplifying constant integer cast 0
|
||||||
@ -1303,6 +1310,7 @@ Simplifying constant integer cast -$222e0
|
|||||||
Simplifying constant integer cast -$222e0
|
Simplifying constant integer cast -$222e0
|
||||||
Successful SSA optimization PassNCastSimplification
|
Successful SSA optimization PassNCastSimplification
|
||||||
Finalized unsigned number type (byte) 0
|
Finalized unsigned number type (byte) 0
|
||||||
|
Finalized unsigned number type (byte) 0
|
||||||
Finalized unsigned number type (byte) $28
|
Finalized unsigned number type (byte) $28
|
||||||
Finalized signed number type (signed byte) 0
|
Finalized signed number type (signed byte) 0
|
||||||
Finalized signed number type (signed byte) 0
|
Finalized signed number type (signed byte) 0
|
||||||
@ -1515,7 +1523,7 @@ Identical Phi Values (byte*) print_char_cursor#148 (byte*) print_char_cursor#26
|
|||||||
Successful SSA optimization Pass2IdenticalPhiElimination
|
Successful SSA optimization Pass2IdenticalPhiElimination
|
||||||
Simple Condition (bool~) memset::$1 [3] if((word) memset::num#0<=(byte) 0) goto memset::@1
|
Simple Condition (bool~) memset::$1 [3] if((word) memset::num#0<=(byte) 0) goto memset::@1
|
||||||
Simple Condition (bool~) memset::$4 [13] if((byte*) memset::dst#2!=(byte*) memset::end#0) goto memset::@5
|
Simple Condition (bool~) memset::$4 [13] if((byte*) memset::dst#2!=(byte*) memset::end#0) goto memset::@5
|
||||||
Simple Condition (bool~) print_str::$0 [26] if(*((byte*) print_str::str#5)!=(byte) '@') goto print_str::@2
|
Simple Condition (bool~) print_str::$0 [26] if((byte) 0!=*((byte*) print_str::str#5)) goto print_str::@2
|
||||||
Simple Condition (bool~) print_ln::$1 [39] if((byte*) print_line_cursor#1<(byte*) print_char_cursor#26) goto print_ln::@1
|
Simple Condition (bool~) print_ln::$1 [39] if((byte*) print_line_cursor#1<(byte*) print_char_cursor#26) goto print_ln::@1
|
||||||
Simple Condition (bool~) print_sword::$0 [48] if((signed word) print_sword::w#10<(signed byte) 0) goto print_sword::@1
|
Simple Condition (bool~) print_sword::$0 [48] if((signed word) print_sword::w#10<(signed byte) 0) goto print_sword::@1
|
||||||
Simple Condition (bool~) print_sbyte::$0 [72] if((signed byte) print_sbyte::b#1<(signed byte) 0) goto print_sbyte::@1
|
Simple Condition (bool~) print_sbyte::$0 [72] if((signed byte) print_sbyte::b#1<(signed byte) 0) goto print_sbyte::@1
|
||||||
@ -2015,7 +2023,7 @@ print_str: scope:[print_str] from testChar testInt testLong testShort
|
|||||||
print_str::@1: scope:[print_str] from print_str print_str::@2
|
print_str::@1: scope:[print_str] from print_str print_str::@2
|
||||||
[71] (byte*) print_char_cursor#136 ← phi( print_str/(byte*) print_char_cursor#156 print_str::@2/(byte*) print_char_cursor#1 )
|
[71] (byte*) print_char_cursor#136 ← phi( print_str/(byte*) print_char_cursor#156 print_str::@2/(byte*) print_char_cursor#1 )
|
||||||
[71] (byte*) print_str::str#5 ← phi( print_str/(byte*) print_str::str#7 print_str::@2/(byte*) print_str::str#0 )
|
[71] (byte*) print_str::str#5 ← phi( print_str/(byte*) print_str::str#7 print_str::@2/(byte*) print_str::str#0 )
|
||||||
[72] if(*((byte*) print_str::str#5)!=(byte) '@') goto print_str::@2
|
[72] if((byte) 0!=*((byte*) print_str::str#5)) goto print_str::@2
|
||||||
to:print_str::@return
|
to:print_str::@return
|
||||||
print_str::@return: scope:[print_str] from print_str::@1
|
print_str::@return: scope:[print_str] from print_str::@1
|
||||||
[73] return
|
[73] return
|
||||||
@ -2757,10 +2765,10 @@ print_str: {
|
|||||||
jmp b1
|
jmp b1
|
||||||
// print_str::@1
|
// print_str::@1
|
||||||
b1:
|
b1:
|
||||||
// [72] if(*((byte*) print_str::str#5)!=(byte) '@') goto print_str::@2 -- _deref_pbuz1_neq_vbuc1_then_la1
|
// [72] if((byte) 0!=*((byte*) print_str::str#5)) goto print_str::@2 -- vbuc1_neq__deref_pbuz1_then_la1
|
||||||
ldy #0
|
ldy #0
|
||||||
lda (str),y
|
lda (str),y
|
||||||
cmp #'@'
|
cmp #0
|
||||||
bne b2
|
bne b2
|
||||||
jmp breturn
|
jmp breturn
|
||||||
// print_str::@return
|
// print_str::@return
|
||||||
@ -3287,7 +3295,7 @@ Statement [59] (byte) print_byte::b#2 ← < (word) print_word::w#5 [ print_char_
|
|||||||
Statement [63] (byte~) print_byte::$0 ← (byte) print_byte::b#5 >> (byte) 4 [ print_char_cursor#149 print_byte::b#5 print_byte::$0 ] ( main:2::testLong:13::print_dword:18::print_word:52::print_byte:58 [ print_line_cursor#1 print_dword::dw#2 print_word::w#5 print_char_cursor#149 print_byte::b#5 print_byte::$0 ] main:2::testLong:13::print_sdword:22::print_dword:41::print_word:52::print_byte:58 [ print_line_cursor#1 print_dword::dw#2 print_word::w#5 print_char_cursor#149 print_byte::b#5 print_byte::$0 ] main:2::testLong:13::print_sdword:26::print_dword:41::print_word:52::print_byte:58 [ print_line_cursor#1 print_dword::dw#2 print_word::w#5 print_char_cursor#149 print_byte::b#5 print_byte::$0 ] main:2::testLong:13::print_dword:18::print_word:54::print_byte:58 [ print_line_cursor#1 print_word::w#5 print_char_cursor#149 print_byte::b#5 print_byte::$0 ] main:2::testLong:13::print_sdword:22::print_dword:41::print_word:54::print_byte:58 [ print_line_cursor#1 print_word::w#5 print_char_cursor#149 print_byte::b#5 print_byte::$0 ] main:2::testLong:13::print_sdword:26::print_dword:41::print_word:54::print_byte:58 [ print_line_cursor#1 print_word::w#5 print_char_cursor#149 print_byte::b#5 print_byte::$0 ] main:2::testInt:11::print_word:80::print_byte:58 [ print_line_cursor#1 print_word::w#5 print_char_cursor#149 print_byte::b#5 print_byte::$0 ] main:2::testInt:11::print_sword:84::print_word:98::print_byte:58 [ print_line_cursor#1 print_word::w#5 print_char_cursor#149 print_byte::b#5 print_byte::$0 ] main:2::testInt:11::print_sword:88::print_word:98::print_byte:58 [ print_line_cursor#1 print_word::w#5 print_char_cursor#149 print_byte::b#5 print_byte::$0 ] main:2::testShort:9::print_sword:110::print_word:98::print_byte:58 [ print_line_cursor#1 print_word::w#5 print_char_cursor#149 print_byte::b#5 print_byte::$0 ] main:2::testShort:9::print_sword:114::print_word:98::print_byte:58 [ print_line_cursor#1 print_word::w#5 print_char_cursor#149 print_byte::b#5 print_byte::$0 ] main:2::testShort:9::print_word:106::print_byte:58 [ print_line_cursor#1 print_word::w#5 print_char_cursor#149 print_byte::b#5 print_byte::$0 ] main:2::testLong:13::print_dword:18::print_word:52::print_byte:60 [ print_line_cursor#1 print_dword::dw#2 print_char_cursor#149 print_byte::b#5 print_byte::$0 ] main:2::testLong:13::print_sdword:22::print_dword:41::print_word:52::print_byte:60 [ print_line_cursor#1 print_dword::dw#2 print_char_cursor#149 print_byte::b#5 print_byte::$0 ] main:2::testLong:13::print_sdword:26::print_dword:41::print_word:52::print_byte:60 [ print_line_cursor#1 print_dword::dw#2 print_char_cursor#149 print_byte::b#5 print_byte::$0 ] main:2::testLong:13::print_dword:18::print_word:54::print_byte:60 [ print_line_cursor#1 print_char_cursor#149 print_byte::b#5 print_byte::$0 ] main:2::testLong:13::print_sdword:22::print_dword:41::print_word:54::print_byte:60 [ print_line_cursor#1 print_char_cursor#149 print_byte::b#5 print_byte::$0 ] main:2::testLong:13::print_sdword:26::print_dword:41::print_word:54::print_byte:60 [ print_line_cursor#1 print_char_cursor#149 print_byte::b#5 print_byte::$0 ] main:2::testInt:11::print_word:80::print_byte:60 [ print_line_cursor#1 print_char_cursor#149 print_byte::b#5 print_byte::$0 ] main:2::testInt:11::print_sword:84::print_word:98::print_byte:60 [ print_line_cursor#1 print_char_cursor#149 print_byte::b#5 print_byte::$0 ] main:2::testInt:11::print_sword:88::print_word:98::print_byte:60 [ print_line_cursor#1 print_char_cursor#149 print_byte::b#5 print_byte::$0 ] main:2::testShort:9::print_sword:110::print_word:98::print_byte:60 [ print_line_cursor#1 print_char_cursor#149 print_byte::b#5 print_byte::$0 ] main:2::testShort:9::print_sword:114::print_word:98::print_byte:60 [ print_line_cursor#1 print_char_cursor#149 print_byte::b#5 print_byte::$0 ] main:2::testShort:9::print_word:106::print_byte:60 [ print_line_cursor#1 print_char_cursor#149 print_byte::b#5 print_byte::$0 ] main:2::testChar:7::print_byte:121 [ print_char_cursor#149 print_byte::b#5 print_byte::$0 ] main:2::testChar:7::print_byte:125 [ print_char_cursor#149 print_byte::b#5 print_byte::$0 ] main:2::testChar:7::print_sbyte:129::print_byte:137 [ print_char_cursor#149 print_byte::b#5 print_byte::$0 ] ) always clobbers reg byte a
|
Statement [63] (byte~) print_byte::$0 ← (byte) print_byte::b#5 >> (byte) 4 [ print_char_cursor#149 print_byte::b#5 print_byte::$0 ] ( main:2::testLong:13::print_dword:18::print_word:52::print_byte:58 [ print_line_cursor#1 print_dword::dw#2 print_word::w#5 print_char_cursor#149 print_byte::b#5 print_byte::$0 ] main:2::testLong:13::print_sdword:22::print_dword:41::print_word:52::print_byte:58 [ print_line_cursor#1 print_dword::dw#2 print_word::w#5 print_char_cursor#149 print_byte::b#5 print_byte::$0 ] main:2::testLong:13::print_sdword:26::print_dword:41::print_word:52::print_byte:58 [ print_line_cursor#1 print_dword::dw#2 print_word::w#5 print_char_cursor#149 print_byte::b#5 print_byte::$0 ] main:2::testLong:13::print_dword:18::print_word:54::print_byte:58 [ print_line_cursor#1 print_word::w#5 print_char_cursor#149 print_byte::b#5 print_byte::$0 ] main:2::testLong:13::print_sdword:22::print_dword:41::print_word:54::print_byte:58 [ print_line_cursor#1 print_word::w#5 print_char_cursor#149 print_byte::b#5 print_byte::$0 ] main:2::testLong:13::print_sdword:26::print_dword:41::print_word:54::print_byte:58 [ print_line_cursor#1 print_word::w#5 print_char_cursor#149 print_byte::b#5 print_byte::$0 ] main:2::testInt:11::print_word:80::print_byte:58 [ print_line_cursor#1 print_word::w#5 print_char_cursor#149 print_byte::b#5 print_byte::$0 ] main:2::testInt:11::print_sword:84::print_word:98::print_byte:58 [ print_line_cursor#1 print_word::w#5 print_char_cursor#149 print_byte::b#5 print_byte::$0 ] main:2::testInt:11::print_sword:88::print_word:98::print_byte:58 [ print_line_cursor#1 print_word::w#5 print_char_cursor#149 print_byte::b#5 print_byte::$0 ] main:2::testShort:9::print_sword:110::print_word:98::print_byte:58 [ print_line_cursor#1 print_word::w#5 print_char_cursor#149 print_byte::b#5 print_byte::$0 ] main:2::testShort:9::print_sword:114::print_word:98::print_byte:58 [ print_line_cursor#1 print_word::w#5 print_char_cursor#149 print_byte::b#5 print_byte::$0 ] main:2::testShort:9::print_word:106::print_byte:58 [ print_line_cursor#1 print_word::w#5 print_char_cursor#149 print_byte::b#5 print_byte::$0 ] main:2::testLong:13::print_dword:18::print_word:52::print_byte:60 [ print_line_cursor#1 print_dword::dw#2 print_char_cursor#149 print_byte::b#5 print_byte::$0 ] main:2::testLong:13::print_sdword:22::print_dword:41::print_word:52::print_byte:60 [ print_line_cursor#1 print_dword::dw#2 print_char_cursor#149 print_byte::b#5 print_byte::$0 ] main:2::testLong:13::print_sdword:26::print_dword:41::print_word:52::print_byte:60 [ print_line_cursor#1 print_dword::dw#2 print_char_cursor#149 print_byte::b#5 print_byte::$0 ] main:2::testLong:13::print_dword:18::print_word:54::print_byte:60 [ print_line_cursor#1 print_char_cursor#149 print_byte::b#5 print_byte::$0 ] main:2::testLong:13::print_sdword:22::print_dword:41::print_word:54::print_byte:60 [ print_line_cursor#1 print_char_cursor#149 print_byte::b#5 print_byte::$0 ] main:2::testLong:13::print_sdword:26::print_dword:41::print_word:54::print_byte:60 [ print_line_cursor#1 print_char_cursor#149 print_byte::b#5 print_byte::$0 ] main:2::testInt:11::print_word:80::print_byte:60 [ print_line_cursor#1 print_char_cursor#149 print_byte::b#5 print_byte::$0 ] main:2::testInt:11::print_sword:84::print_word:98::print_byte:60 [ print_line_cursor#1 print_char_cursor#149 print_byte::b#5 print_byte::$0 ] main:2::testInt:11::print_sword:88::print_word:98::print_byte:60 [ print_line_cursor#1 print_char_cursor#149 print_byte::b#5 print_byte::$0 ] main:2::testShort:9::print_sword:110::print_word:98::print_byte:60 [ print_line_cursor#1 print_char_cursor#149 print_byte::b#5 print_byte::$0 ] main:2::testShort:9::print_sword:114::print_word:98::print_byte:60 [ print_line_cursor#1 print_char_cursor#149 print_byte::b#5 print_byte::$0 ] main:2::testShort:9::print_word:106::print_byte:60 [ print_line_cursor#1 print_char_cursor#149 print_byte::b#5 print_byte::$0 ] main:2::testChar:7::print_byte:121 [ print_char_cursor#149 print_byte::b#5 print_byte::$0 ] main:2::testChar:7::print_byte:125 [ print_char_cursor#149 print_byte::b#5 print_byte::$0 ] main:2::testChar:7::print_sbyte:129::print_byte:137 [ print_char_cursor#149 print_byte::b#5 print_byte::$0 ] ) always clobbers reg byte a
|
||||||
Removing always clobbered register reg byte a as potential for zp ZP_BYTE:17 [ print_byte::b#5 print_byte::b#1 print_byte::b#2 ]
|
Removing always clobbered register reg byte a as potential for zp ZP_BYTE:17 [ print_byte::b#5 print_byte::b#1 print_byte::b#2 ]
|
||||||
Statement [66] (byte~) print_byte::$2 ← (byte) print_byte::b#5 & (byte) $f [ print_char_cursor#26 print_byte::$2 ] ( main:2::testLong:13::print_dword:18::print_word:52::print_byte:58 [ print_line_cursor#1 print_dword::dw#2 print_word::w#5 print_char_cursor#26 print_byte::$2 ] main:2::testLong:13::print_sdword:22::print_dword:41::print_word:52::print_byte:58 [ print_line_cursor#1 print_dword::dw#2 print_word::w#5 print_char_cursor#26 print_byte::$2 ] main:2::testLong:13::print_sdword:26::print_dword:41::print_word:52::print_byte:58 [ print_line_cursor#1 print_dword::dw#2 print_word::w#5 print_char_cursor#26 print_byte::$2 ] main:2::testLong:13::print_dword:18::print_word:54::print_byte:58 [ print_line_cursor#1 print_word::w#5 print_char_cursor#26 print_byte::$2 ] main:2::testLong:13::print_sdword:22::print_dword:41::print_word:54::print_byte:58 [ print_line_cursor#1 print_word::w#5 print_char_cursor#26 print_byte::$2 ] main:2::testLong:13::print_sdword:26::print_dword:41::print_word:54::print_byte:58 [ print_line_cursor#1 print_word::w#5 print_char_cursor#26 print_byte::$2 ] main:2::testInt:11::print_word:80::print_byte:58 [ print_line_cursor#1 print_word::w#5 print_char_cursor#26 print_byte::$2 ] main:2::testInt:11::print_sword:84::print_word:98::print_byte:58 [ print_line_cursor#1 print_word::w#5 print_char_cursor#26 print_byte::$2 ] main:2::testInt:11::print_sword:88::print_word:98::print_byte:58 [ print_line_cursor#1 print_word::w#5 print_char_cursor#26 print_byte::$2 ] main:2::testShort:9::print_sword:110::print_word:98::print_byte:58 [ print_line_cursor#1 print_word::w#5 print_char_cursor#26 print_byte::$2 ] main:2::testShort:9::print_sword:114::print_word:98::print_byte:58 [ print_line_cursor#1 print_word::w#5 print_char_cursor#26 print_byte::$2 ] main:2::testShort:9::print_word:106::print_byte:58 [ print_line_cursor#1 print_word::w#5 print_char_cursor#26 print_byte::$2 ] main:2::testLong:13::print_dword:18::print_word:52::print_byte:60 [ print_line_cursor#1 print_dword::dw#2 print_char_cursor#26 print_byte::$2 ] main:2::testLong:13::print_sdword:22::print_dword:41::print_word:52::print_byte:60 [ print_line_cursor#1 print_dword::dw#2 print_char_cursor#26 print_byte::$2 ] main:2::testLong:13::print_sdword:26::print_dword:41::print_word:52::print_byte:60 [ print_line_cursor#1 print_dword::dw#2 print_char_cursor#26 print_byte::$2 ] main:2::testLong:13::print_dword:18::print_word:54::print_byte:60 [ print_line_cursor#1 print_char_cursor#26 print_byte::$2 ] main:2::testLong:13::print_sdword:22::print_dword:41::print_word:54::print_byte:60 [ print_line_cursor#1 print_char_cursor#26 print_byte::$2 ] main:2::testLong:13::print_sdword:26::print_dword:41::print_word:54::print_byte:60 [ print_line_cursor#1 print_char_cursor#26 print_byte::$2 ] main:2::testInt:11::print_word:80::print_byte:60 [ print_line_cursor#1 print_char_cursor#26 print_byte::$2 ] main:2::testInt:11::print_sword:84::print_word:98::print_byte:60 [ print_line_cursor#1 print_char_cursor#26 print_byte::$2 ] main:2::testInt:11::print_sword:88::print_word:98::print_byte:60 [ print_line_cursor#1 print_char_cursor#26 print_byte::$2 ] main:2::testShort:9::print_sword:110::print_word:98::print_byte:60 [ print_line_cursor#1 print_char_cursor#26 print_byte::$2 ] main:2::testShort:9::print_sword:114::print_word:98::print_byte:60 [ print_line_cursor#1 print_char_cursor#26 print_byte::$2 ] main:2::testShort:9::print_word:106::print_byte:60 [ print_line_cursor#1 print_char_cursor#26 print_byte::$2 ] main:2::testChar:7::print_byte:121 [ print_char_cursor#26 print_byte::$2 ] main:2::testChar:7::print_byte:125 [ print_char_cursor#26 print_byte::$2 ] main:2::testChar:7::print_sbyte:129::print_byte:137 [ print_char_cursor#26 print_byte::$2 ] ) always clobbers reg byte a
|
Statement [66] (byte~) print_byte::$2 ← (byte) print_byte::b#5 & (byte) $f [ print_char_cursor#26 print_byte::$2 ] ( main:2::testLong:13::print_dword:18::print_word:52::print_byte:58 [ print_line_cursor#1 print_dword::dw#2 print_word::w#5 print_char_cursor#26 print_byte::$2 ] main:2::testLong:13::print_sdword:22::print_dword:41::print_word:52::print_byte:58 [ print_line_cursor#1 print_dword::dw#2 print_word::w#5 print_char_cursor#26 print_byte::$2 ] main:2::testLong:13::print_sdword:26::print_dword:41::print_word:52::print_byte:58 [ print_line_cursor#1 print_dword::dw#2 print_word::w#5 print_char_cursor#26 print_byte::$2 ] main:2::testLong:13::print_dword:18::print_word:54::print_byte:58 [ print_line_cursor#1 print_word::w#5 print_char_cursor#26 print_byte::$2 ] main:2::testLong:13::print_sdword:22::print_dword:41::print_word:54::print_byte:58 [ print_line_cursor#1 print_word::w#5 print_char_cursor#26 print_byte::$2 ] main:2::testLong:13::print_sdword:26::print_dword:41::print_word:54::print_byte:58 [ print_line_cursor#1 print_word::w#5 print_char_cursor#26 print_byte::$2 ] main:2::testInt:11::print_word:80::print_byte:58 [ print_line_cursor#1 print_word::w#5 print_char_cursor#26 print_byte::$2 ] main:2::testInt:11::print_sword:84::print_word:98::print_byte:58 [ print_line_cursor#1 print_word::w#5 print_char_cursor#26 print_byte::$2 ] main:2::testInt:11::print_sword:88::print_word:98::print_byte:58 [ print_line_cursor#1 print_word::w#5 print_char_cursor#26 print_byte::$2 ] main:2::testShort:9::print_sword:110::print_word:98::print_byte:58 [ print_line_cursor#1 print_word::w#5 print_char_cursor#26 print_byte::$2 ] main:2::testShort:9::print_sword:114::print_word:98::print_byte:58 [ print_line_cursor#1 print_word::w#5 print_char_cursor#26 print_byte::$2 ] main:2::testShort:9::print_word:106::print_byte:58 [ print_line_cursor#1 print_word::w#5 print_char_cursor#26 print_byte::$2 ] main:2::testLong:13::print_dword:18::print_word:52::print_byte:60 [ print_line_cursor#1 print_dword::dw#2 print_char_cursor#26 print_byte::$2 ] main:2::testLong:13::print_sdword:22::print_dword:41::print_word:52::print_byte:60 [ print_line_cursor#1 print_dword::dw#2 print_char_cursor#26 print_byte::$2 ] main:2::testLong:13::print_sdword:26::print_dword:41::print_word:52::print_byte:60 [ print_line_cursor#1 print_dword::dw#2 print_char_cursor#26 print_byte::$2 ] main:2::testLong:13::print_dword:18::print_word:54::print_byte:60 [ print_line_cursor#1 print_char_cursor#26 print_byte::$2 ] main:2::testLong:13::print_sdword:22::print_dword:41::print_word:54::print_byte:60 [ print_line_cursor#1 print_char_cursor#26 print_byte::$2 ] main:2::testLong:13::print_sdword:26::print_dword:41::print_word:54::print_byte:60 [ print_line_cursor#1 print_char_cursor#26 print_byte::$2 ] main:2::testInt:11::print_word:80::print_byte:60 [ print_line_cursor#1 print_char_cursor#26 print_byte::$2 ] main:2::testInt:11::print_sword:84::print_word:98::print_byte:60 [ print_line_cursor#1 print_char_cursor#26 print_byte::$2 ] main:2::testInt:11::print_sword:88::print_word:98::print_byte:60 [ print_line_cursor#1 print_char_cursor#26 print_byte::$2 ] main:2::testShort:9::print_sword:110::print_word:98::print_byte:60 [ print_line_cursor#1 print_char_cursor#26 print_byte::$2 ] main:2::testShort:9::print_sword:114::print_word:98::print_byte:60 [ print_line_cursor#1 print_char_cursor#26 print_byte::$2 ] main:2::testShort:9::print_word:106::print_byte:60 [ print_line_cursor#1 print_char_cursor#26 print_byte::$2 ] main:2::testChar:7::print_byte:121 [ print_char_cursor#26 print_byte::$2 ] main:2::testChar:7::print_byte:125 [ print_char_cursor#26 print_byte::$2 ] main:2::testChar:7::print_sbyte:129::print_byte:137 [ print_char_cursor#26 print_byte::$2 ] ) always clobbers reg byte a
|
||||||
Statement [72] if(*((byte*) print_str::str#5)!=(byte) '@') goto print_str::@2 [ print_char_cursor#136 print_str::str#5 ] ( main:2::testLong:13::print_str:16 [ print_line_cursor#1 print_char_cursor#136 print_str::str#5 ] main:2::testInt:11::print_str:78 [ print_line_cursor#1 print_char_cursor#136 print_str::str#5 ] main:2::testShort:9::print_str:104 [ print_line_cursor#1 print_char_cursor#136 print_str::str#5 ] main:2::testChar:7::print_str:119 [ print_char_cursor#136 print_str::str#5 ] ) always clobbers reg byte a reg byte y
|
Statement [72] if((byte) 0!=*((byte*) print_str::str#5)) goto print_str::@2 [ print_char_cursor#136 print_str::str#5 ] ( main:2::testLong:13::print_str:16 [ print_line_cursor#1 print_char_cursor#136 print_str::str#5 ] main:2::testInt:11::print_str:78 [ print_line_cursor#1 print_char_cursor#136 print_str::str#5 ] main:2::testShort:9::print_str:104 [ print_line_cursor#1 print_char_cursor#136 print_str::str#5 ] main:2::testChar:7::print_str:119 [ print_char_cursor#136 print_str::str#5 ] ) always clobbers reg byte a reg byte y
|
||||||
Statement [74] *((byte*) print_char_cursor#136) ← *((byte*) print_str::str#5) [ print_char_cursor#136 print_str::str#5 ] ( main:2::testLong:13::print_str:16 [ print_line_cursor#1 print_char_cursor#136 print_str::str#5 ] main:2::testInt:11::print_str:78 [ print_line_cursor#1 print_char_cursor#136 print_str::str#5 ] main:2::testShort:9::print_str:104 [ print_line_cursor#1 print_char_cursor#136 print_str::str#5 ] main:2::testChar:7::print_str:119 [ print_char_cursor#136 print_str::str#5 ] ) always clobbers reg byte a reg byte y
|
Statement [74] *((byte*) print_char_cursor#136) ← *((byte*) print_str::str#5) [ print_char_cursor#136 print_str::str#5 ] ( main:2::testLong:13::print_str:16 [ print_line_cursor#1 print_char_cursor#136 print_str::str#5 ] main:2::testInt:11::print_str:78 [ print_line_cursor#1 print_char_cursor#136 print_str::str#5 ] main:2::testShort:9::print_str:104 [ print_line_cursor#1 print_char_cursor#136 print_str::str#5 ] main:2::testChar:7::print_str:119 [ print_char_cursor#136 print_str::str#5 ] ) always clobbers reg byte a reg byte y
|
||||||
Statement [77] (byte*~) print_char_cursor#161 ← (byte*) print_line_cursor#1 [ print_line_cursor#1 print_char_cursor#161 ] ( main:2::testInt:11 [ print_line_cursor#1 print_char_cursor#161 ] ) always clobbers reg byte a
|
Statement [77] (byte*~) print_char_cursor#161 ← (byte*) print_line_cursor#1 [ print_line_cursor#1 print_char_cursor#161 ] ( main:2::testInt:11 [ print_line_cursor#1 print_char_cursor#161 ] ) always clobbers reg byte a
|
||||||
Statement [93] if((signed word) print_sword::w#10<(signed byte) 0) goto print_sword::@1 [ print_char_cursor#26 print_sword::w#10 ] ( main:2::testInt:11::print_sword:84 [ print_line_cursor#1 print_char_cursor#26 print_sword::w#10 ] main:2::testInt:11::print_sword:88 [ print_line_cursor#1 print_char_cursor#26 print_sword::w#10 ] main:2::testShort:9::print_sword:110 [ print_line_cursor#1 print_char_cursor#26 print_sword::w#10 ] main:2::testShort:9::print_sword:114 [ print_line_cursor#1 print_char_cursor#26 print_sword::w#10 ] ) always clobbers reg byte a
|
Statement [93] if((signed word) print_sword::w#10<(signed byte) 0) goto print_sword::@1 [ print_char_cursor#26 print_sword::w#10 ] ( main:2::testInt:11::print_sword:84 [ print_line_cursor#1 print_char_cursor#26 print_sword::w#10 ] main:2::testInt:11::print_sword:88 [ print_line_cursor#1 print_char_cursor#26 print_sword::w#10 ] main:2::testShort:9::print_sword:110 [ print_line_cursor#1 print_char_cursor#26 print_sword::w#10 ] main:2::testShort:9::print_sword:114 [ print_line_cursor#1 print_char_cursor#26 print_sword::w#10 ] ) always clobbers reg byte a
|
||||||
@ -3309,7 +3317,7 @@ Statement [57] (byte) print_byte::b#1 ← > (word) print_word::w#5 [ print_word:
|
|||||||
Statement [59] (byte) print_byte::b#2 ← < (word) print_word::w#5 [ print_char_cursor#26 print_byte::b#2 ] ( main:2::testLong:13::print_dword:18::print_word:52 [ print_line_cursor#1 print_dword::dw#2 print_char_cursor#26 print_byte::b#2 ] main:2::testLong:13::print_sdword:22::print_dword:41::print_word:52 [ print_line_cursor#1 print_dword::dw#2 print_char_cursor#26 print_byte::b#2 ] main:2::testLong:13::print_sdword:26::print_dword:41::print_word:52 [ print_line_cursor#1 print_dword::dw#2 print_char_cursor#26 print_byte::b#2 ] main:2::testLong:13::print_dword:18::print_word:54 [ print_line_cursor#1 print_char_cursor#26 print_byte::b#2 ] main:2::testLong:13::print_sdword:22::print_dword:41::print_word:54 [ print_line_cursor#1 print_char_cursor#26 print_byte::b#2 ] main:2::testLong:13::print_sdword:26::print_dword:41::print_word:54 [ print_line_cursor#1 print_char_cursor#26 print_byte::b#2 ] main:2::testInt:11::print_word:80 [ print_line_cursor#1 print_char_cursor#26 print_byte::b#2 ] main:2::testInt:11::print_sword:84::print_word:98 [ print_line_cursor#1 print_char_cursor#26 print_byte::b#2 ] main:2::testInt:11::print_sword:88::print_word:98 [ print_line_cursor#1 print_char_cursor#26 print_byte::b#2 ] main:2::testShort:9::print_sword:110::print_word:98 [ print_line_cursor#1 print_char_cursor#26 print_byte::b#2 ] main:2::testShort:9::print_sword:114::print_word:98 [ print_line_cursor#1 print_char_cursor#26 print_byte::b#2 ] main:2::testShort:9::print_word:106 [ print_line_cursor#1 print_char_cursor#26 print_byte::b#2 ] ) always clobbers reg byte a
|
Statement [59] (byte) print_byte::b#2 ← < (word) print_word::w#5 [ print_char_cursor#26 print_byte::b#2 ] ( main:2::testLong:13::print_dword:18::print_word:52 [ print_line_cursor#1 print_dword::dw#2 print_char_cursor#26 print_byte::b#2 ] main:2::testLong:13::print_sdword:22::print_dword:41::print_word:52 [ print_line_cursor#1 print_dword::dw#2 print_char_cursor#26 print_byte::b#2 ] main:2::testLong:13::print_sdword:26::print_dword:41::print_word:52 [ print_line_cursor#1 print_dword::dw#2 print_char_cursor#26 print_byte::b#2 ] main:2::testLong:13::print_dword:18::print_word:54 [ print_line_cursor#1 print_char_cursor#26 print_byte::b#2 ] main:2::testLong:13::print_sdword:22::print_dword:41::print_word:54 [ print_line_cursor#1 print_char_cursor#26 print_byte::b#2 ] main:2::testLong:13::print_sdword:26::print_dword:41::print_word:54 [ print_line_cursor#1 print_char_cursor#26 print_byte::b#2 ] main:2::testInt:11::print_word:80 [ print_line_cursor#1 print_char_cursor#26 print_byte::b#2 ] main:2::testInt:11::print_sword:84::print_word:98 [ print_line_cursor#1 print_char_cursor#26 print_byte::b#2 ] main:2::testInt:11::print_sword:88::print_word:98 [ print_line_cursor#1 print_char_cursor#26 print_byte::b#2 ] main:2::testShort:9::print_sword:110::print_word:98 [ print_line_cursor#1 print_char_cursor#26 print_byte::b#2 ] main:2::testShort:9::print_sword:114::print_word:98 [ print_line_cursor#1 print_char_cursor#26 print_byte::b#2 ] main:2::testShort:9::print_word:106 [ print_line_cursor#1 print_char_cursor#26 print_byte::b#2 ] ) always clobbers reg byte a
|
||||||
Statement [63] (byte~) print_byte::$0 ← (byte) print_byte::b#5 >> (byte) 4 [ print_char_cursor#149 print_byte::b#5 print_byte::$0 ] ( main:2::testLong:13::print_dword:18::print_word:52::print_byte:58 [ print_line_cursor#1 print_dword::dw#2 print_word::w#5 print_char_cursor#149 print_byte::b#5 print_byte::$0 ] main:2::testLong:13::print_sdword:22::print_dword:41::print_word:52::print_byte:58 [ print_line_cursor#1 print_dword::dw#2 print_word::w#5 print_char_cursor#149 print_byte::b#5 print_byte::$0 ] main:2::testLong:13::print_sdword:26::print_dword:41::print_word:52::print_byte:58 [ print_line_cursor#1 print_dword::dw#2 print_word::w#5 print_char_cursor#149 print_byte::b#5 print_byte::$0 ] main:2::testLong:13::print_dword:18::print_word:54::print_byte:58 [ print_line_cursor#1 print_word::w#5 print_char_cursor#149 print_byte::b#5 print_byte::$0 ] main:2::testLong:13::print_sdword:22::print_dword:41::print_word:54::print_byte:58 [ print_line_cursor#1 print_word::w#5 print_char_cursor#149 print_byte::b#5 print_byte::$0 ] main:2::testLong:13::print_sdword:26::print_dword:41::print_word:54::print_byte:58 [ print_line_cursor#1 print_word::w#5 print_char_cursor#149 print_byte::b#5 print_byte::$0 ] main:2::testInt:11::print_word:80::print_byte:58 [ print_line_cursor#1 print_word::w#5 print_char_cursor#149 print_byte::b#5 print_byte::$0 ] main:2::testInt:11::print_sword:84::print_word:98::print_byte:58 [ print_line_cursor#1 print_word::w#5 print_char_cursor#149 print_byte::b#5 print_byte::$0 ] main:2::testInt:11::print_sword:88::print_word:98::print_byte:58 [ print_line_cursor#1 print_word::w#5 print_char_cursor#149 print_byte::b#5 print_byte::$0 ] main:2::testShort:9::print_sword:110::print_word:98::print_byte:58 [ print_line_cursor#1 print_word::w#5 print_char_cursor#149 print_byte::b#5 print_byte::$0 ] main:2::testShort:9::print_sword:114::print_word:98::print_byte:58 [ print_line_cursor#1 print_word::w#5 print_char_cursor#149 print_byte::b#5 print_byte::$0 ] main:2::testShort:9::print_word:106::print_byte:58 [ print_line_cursor#1 print_word::w#5 print_char_cursor#149 print_byte::b#5 print_byte::$0 ] main:2::testLong:13::print_dword:18::print_word:52::print_byte:60 [ print_line_cursor#1 print_dword::dw#2 print_char_cursor#149 print_byte::b#5 print_byte::$0 ] main:2::testLong:13::print_sdword:22::print_dword:41::print_word:52::print_byte:60 [ print_line_cursor#1 print_dword::dw#2 print_char_cursor#149 print_byte::b#5 print_byte::$0 ] main:2::testLong:13::print_sdword:26::print_dword:41::print_word:52::print_byte:60 [ print_line_cursor#1 print_dword::dw#2 print_char_cursor#149 print_byte::b#5 print_byte::$0 ] main:2::testLong:13::print_dword:18::print_word:54::print_byte:60 [ print_line_cursor#1 print_char_cursor#149 print_byte::b#5 print_byte::$0 ] main:2::testLong:13::print_sdword:22::print_dword:41::print_word:54::print_byte:60 [ print_line_cursor#1 print_char_cursor#149 print_byte::b#5 print_byte::$0 ] main:2::testLong:13::print_sdword:26::print_dword:41::print_word:54::print_byte:60 [ print_line_cursor#1 print_char_cursor#149 print_byte::b#5 print_byte::$0 ] main:2::testInt:11::print_word:80::print_byte:60 [ print_line_cursor#1 print_char_cursor#149 print_byte::b#5 print_byte::$0 ] main:2::testInt:11::print_sword:84::print_word:98::print_byte:60 [ print_line_cursor#1 print_char_cursor#149 print_byte::b#5 print_byte::$0 ] main:2::testInt:11::print_sword:88::print_word:98::print_byte:60 [ print_line_cursor#1 print_char_cursor#149 print_byte::b#5 print_byte::$0 ] main:2::testShort:9::print_sword:110::print_word:98::print_byte:60 [ print_line_cursor#1 print_char_cursor#149 print_byte::b#5 print_byte::$0 ] main:2::testShort:9::print_sword:114::print_word:98::print_byte:60 [ print_line_cursor#1 print_char_cursor#149 print_byte::b#5 print_byte::$0 ] main:2::testShort:9::print_word:106::print_byte:60 [ print_line_cursor#1 print_char_cursor#149 print_byte::b#5 print_byte::$0 ] main:2::testChar:7::print_byte:121 [ print_char_cursor#149 print_byte::b#5 print_byte::$0 ] main:2::testChar:7::print_byte:125 [ print_char_cursor#149 print_byte::b#5 print_byte::$0 ] main:2::testChar:7::print_sbyte:129::print_byte:137 [ print_char_cursor#149 print_byte::b#5 print_byte::$0 ] ) always clobbers reg byte a
|
Statement [63] (byte~) print_byte::$0 ← (byte) print_byte::b#5 >> (byte) 4 [ print_char_cursor#149 print_byte::b#5 print_byte::$0 ] ( main:2::testLong:13::print_dword:18::print_word:52::print_byte:58 [ print_line_cursor#1 print_dword::dw#2 print_word::w#5 print_char_cursor#149 print_byte::b#5 print_byte::$0 ] main:2::testLong:13::print_sdword:22::print_dword:41::print_word:52::print_byte:58 [ print_line_cursor#1 print_dword::dw#2 print_word::w#5 print_char_cursor#149 print_byte::b#5 print_byte::$0 ] main:2::testLong:13::print_sdword:26::print_dword:41::print_word:52::print_byte:58 [ print_line_cursor#1 print_dword::dw#2 print_word::w#5 print_char_cursor#149 print_byte::b#5 print_byte::$0 ] main:2::testLong:13::print_dword:18::print_word:54::print_byte:58 [ print_line_cursor#1 print_word::w#5 print_char_cursor#149 print_byte::b#5 print_byte::$0 ] main:2::testLong:13::print_sdword:22::print_dword:41::print_word:54::print_byte:58 [ print_line_cursor#1 print_word::w#5 print_char_cursor#149 print_byte::b#5 print_byte::$0 ] main:2::testLong:13::print_sdword:26::print_dword:41::print_word:54::print_byte:58 [ print_line_cursor#1 print_word::w#5 print_char_cursor#149 print_byte::b#5 print_byte::$0 ] main:2::testInt:11::print_word:80::print_byte:58 [ print_line_cursor#1 print_word::w#5 print_char_cursor#149 print_byte::b#5 print_byte::$0 ] main:2::testInt:11::print_sword:84::print_word:98::print_byte:58 [ print_line_cursor#1 print_word::w#5 print_char_cursor#149 print_byte::b#5 print_byte::$0 ] main:2::testInt:11::print_sword:88::print_word:98::print_byte:58 [ print_line_cursor#1 print_word::w#5 print_char_cursor#149 print_byte::b#5 print_byte::$0 ] main:2::testShort:9::print_sword:110::print_word:98::print_byte:58 [ print_line_cursor#1 print_word::w#5 print_char_cursor#149 print_byte::b#5 print_byte::$0 ] main:2::testShort:9::print_sword:114::print_word:98::print_byte:58 [ print_line_cursor#1 print_word::w#5 print_char_cursor#149 print_byte::b#5 print_byte::$0 ] main:2::testShort:9::print_word:106::print_byte:58 [ print_line_cursor#1 print_word::w#5 print_char_cursor#149 print_byte::b#5 print_byte::$0 ] main:2::testLong:13::print_dword:18::print_word:52::print_byte:60 [ print_line_cursor#1 print_dword::dw#2 print_char_cursor#149 print_byte::b#5 print_byte::$0 ] main:2::testLong:13::print_sdword:22::print_dword:41::print_word:52::print_byte:60 [ print_line_cursor#1 print_dword::dw#2 print_char_cursor#149 print_byte::b#5 print_byte::$0 ] main:2::testLong:13::print_sdword:26::print_dword:41::print_word:52::print_byte:60 [ print_line_cursor#1 print_dword::dw#2 print_char_cursor#149 print_byte::b#5 print_byte::$0 ] main:2::testLong:13::print_dword:18::print_word:54::print_byte:60 [ print_line_cursor#1 print_char_cursor#149 print_byte::b#5 print_byte::$0 ] main:2::testLong:13::print_sdword:22::print_dword:41::print_word:54::print_byte:60 [ print_line_cursor#1 print_char_cursor#149 print_byte::b#5 print_byte::$0 ] main:2::testLong:13::print_sdword:26::print_dword:41::print_word:54::print_byte:60 [ print_line_cursor#1 print_char_cursor#149 print_byte::b#5 print_byte::$0 ] main:2::testInt:11::print_word:80::print_byte:60 [ print_line_cursor#1 print_char_cursor#149 print_byte::b#5 print_byte::$0 ] main:2::testInt:11::print_sword:84::print_word:98::print_byte:60 [ print_line_cursor#1 print_char_cursor#149 print_byte::b#5 print_byte::$0 ] main:2::testInt:11::print_sword:88::print_word:98::print_byte:60 [ print_line_cursor#1 print_char_cursor#149 print_byte::b#5 print_byte::$0 ] main:2::testShort:9::print_sword:110::print_word:98::print_byte:60 [ print_line_cursor#1 print_char_cursor#149 print_byte::b#5 print_byte::$0 ] main:2::testShort:9::print_sword:114::print_word:98::print_byte:60 [ print_line_cursor#1 print_char_cursor#149 print_byte::b#5 print_byte::$0 ] main:2::testShort:9::print_word:106::print_byte:60 [ print_line_cursor#1 print_char_cursor#149 print_byte::b#5 print_byte::$0 ] main:2::testChar:7::print_byte:121 [ print_char_cursor#149 print_byte::b#5 print_byte::$0 ] main:2::testChar:7::print_byte:125 [ print_char_cursor#149 print_byte::b#5 print_byte::$0 ] main:2::testChar:7::print_sbyte:129::print_byte:137 [ print_char_cursor#149 print_byte::b#5 print_byte::$0 ] ) always clobbers reg byte a
|
||||||
Statement [66] (byte~) print_byte::$2 ← (byte) print_byte::b#5 & (byte) $f [ print_char_cursor#26 print_byte::$2 ] ( main:2::testLong:13::print_dword:18::print_word:52::print_byte:58 [ print_line_cursor#1 print_dword::dw#2 print_word::w#5 print_char_cursor#26 print_byte::$2 ] main:2::testLong:13::print_sdword:22::print_dword:41::print_word:52::print_byte:58 [ print_line_cursor#1 print_dword::dw#2 print_word::w#5 print_char_cursor#26 print_byte::$2 ] main:2::testLong:13::print_sdword:26::print_dword:41::print_word:52::print_byte:58 [ print_line_cursor#1 print_dword::dw#2 print_word::w#5 print_char_cursor#26 print_byte::$2 ] main:2::testLong:13::print_dword:18::print_word:54::print_byte:58 [ print_line_cursor#1 print_word::w#5 print_char_cursor#26 print_byte::$2 ] main:2::testLong:13::print_sdword:22::print_dword:41::print_word:54::print_byte:58 [ print_line_cursor#1 print_word::w#5 print_char_cursor#26 print_byte::$2 ] main:2::testLong:13::print_sdword:26::print_dword:41::print_word:54::print_byte:58 [ print_line_cursor#1 print_word::w#5 print_char_cursor#26 print_byte::$2 ] main:2::testInt:11::print_word:80::print_byte:58 [ print_line_cursor#1 print_word::w#5 print_char_cursor#26 print_byte::$2 ] main:2::testInt:11::print_sword:84::print_word:98::print_byte:58 [ print_line_cursor#1 print_word::w#5 print_char_cursor#26 print_byte::$2 ] main:2::testInt:11::print_sword:88::print_word:98::print_byte:58 [ print_line_cursor#1 print_word::w#5 print_char_cursor#26 print_byte::$2 ] main:2::testShort:9::print_sword:110::print_word:98::print_byte:58 [ print_line_cursor#1 print_word::w#5 print_char_cursor#26 print_byte::$2 ] main:2::testShort:9::print_sword:114::print_word:98::print_byte:58 [ print_line_cursor#1 print_word::w#5 print_char_cursor#26 print_byte::$2 ] main:2::testShort:9::print_word:106::print_byte:58 [ print_line_cursor#1 print_word::w#5 print_char_cursor#26 print_byte::$2 ] main:2::testLong:13::print_dword:18::print_word:52::print_byte:60 [ print_line_cursor#1 print_dword::dw#2 print_char_cursor#26 print_byte::$2 ] main:2::testLong:13::print_sdword:22::print_dword:41::print_word:52::print_byte:60 [ print_line_cursor#1 print_dword::dw#2 print_char_cursor#26 print_byte::$2 ] main:2::testLong:13::print_sdword:26::print_dword:41::print_word:52::print_byte:60 [ print_line_cursor#1 print_dword::dw#2 print_char_cursor#26 print_byte::$2 ] main:2::testLong:13::print_dword:18::print_word:54::print_byte:60 [ print_line_cursor#1 print_char_cursor#26 print_byte::$2 ] main:2::testLong:13::print_sdword:22::print_dword:41::print_word:54::print_byte:60 [ print_line_cursor#1 print_char_cursor#26 print_byte::$2 ] main:2::testLong:13::print_sdword:26::print_dword:41::print_word:54::print_byte:60 [ print_line_cursor#1 print_char_cursor#26 print_byte::$2 ] main:2::testInt:11::print_word:80::print_byte:60 [ print_line_cursor#1 print_char_cursor#26 print_byte::$2 ] main:2::testInt:11::print_sword:84::print_word:98::print_byte:60 [ print_line_cursor#1 print_char_cursor#26 print_byte::$2 ] main:2::testInt:11::print_sword:88::print_word:98::print_byte:60 [ print_line_cursor#1 print_char_cursor#26 print_byte::$2 ] main:2::testShort:9::print_sword:110::print_word:98::print_byte:60 [ print_line_cursor#1 print_char_cursor#26 print_byte::$2 ] main:2::testShort:9::print_sword:114::print_word:98::print_byte:60 [ print_line_cursor#1 print_char_cursor#26 print_byte::$2 ] main:2::testShort:9::print_word:106::print_byte:60 [ print_line_cursor#1 print_char_cursor#26 print_byte::$2 ] main:2::testChar:7::print_byte:121 [ print_char_cursor#26 print_byte::$2 ] main:2::testChar:7::print_byte:125 [ print_char_cursor#26 print_byte::$2 ] main:2::testChar:7::print_sbyte:129::print_byte:137 [ print_char_cursor#26 print_byte::$2 ] ) always clobbers reg byte a
|
Statement [66] (byte~) print_byte::$2 ← (byte) print_byte::b#5 & (byte) $f [ print_char_cursor#26 print_byte::$2 ] ( main:2::testLong:13::print_dword:18::print_word:52::print_byte:58 [ print_line_cursor#1 print_dword::dw#2 print_word::w#5 print_char_cursor#26 print_byte::$2 ] main:2::testLong:13::print_sdword:22::print_dword:41::print_word:52::print_byte:58 [ print_line_cursor#1 print_dword::dw#2 print_word::w#5 print_char_cursor#26 print_byte::$2 ] main:2::testLong:13::print_sdword:26::print_dword:41::print_word:52::print_byte:58 [ print_line_cursor#1 print_dword::dw#2 print_word::w#5 print_char_cursor#26 print_byte::$2 ] main:2::testLong:13::print_dword:18::print_word:54::print_byte:58 [ print_line_cursor#1 print_word::w#5 print_char_cursor#26 print_byte::$2 ] main:2::testLong:13::print_sdword:22::print_dword:41::print_word:54::print_byte:58 [ print_line_cursor#1 print_word::w#5 print_char_cursor#26 print_byte::$2 ] main:2::testLong:13::print_sdword:26::print_dword:41::print_word:54::print_byte:58 [ print_line_cursor#1 print_word::w#5 print_char_cursor#26 print_byte::$2 ] main:2::testInt:11::print_word:80::print_byte:58 [ print_line_cursor#1 print_word::w#5 print_char_cursor#26 print_byte::$2 ] main:2::testInt:11::print_sword:84::print_word:98::print_byte:58 [ print_line_cursor#1 print_word::w#5 print_char_cursor#26 print_byte::$2 ] main:2::testInt:11::print_sword:88::print_word:98::print_byte:58 [ print_line_cursor#1 print_word::w#5 print_char_cursor#26 print_byte::$2 ] main:2::testShort:9::print_sword:110::print_word:98::print_byte:58 [ print_line_cursor#1 print_word::w#5 print_char_cursor#26 print_byte::$2 ] main:2::testShort:9::print_sword:114::print_word:98::print_byte:58 [ print_line_cursor#1 print_word::w#5 print_char_cursor#26 print_byte::$2 ] main:2::testShort:9::print_word:106::print_byte:58 [ print_line_cursor#1 print_word::w#5 print_char_cursor#26 print_byte::$2 ] main:2::testLong:13::print_dword:18::print_word:52::print_byte:60 [ print_line_cursor#1 print_dword::dw#2 print_char_cursor#26 print_byte::$2 ] main:2::testLong:13::print_sdword:22::print_dword:41::print_word:52::print_byte:60 [ print_line_cursor#1 print_dword::dw#2 print_char_cursor#26 print_byte::$2 ] main:2::testLong:13::print_sdword:26::print_dword:41::print_word:52::print_byte:60 [ print_line_cursor#1 print_dword::dw#2 print_char_cursor#26 print_byte::$2 ] main:2::testLong:13::print_dword:18::print_word:54::print_byte:60 [ print_line_cursor#1 print_char_cursor#26 print_byte::$2 ] main:2::testLong:13::print_sdword:22::print_dword:41::print_word:54::print_byte:60 [ print_line_cursor#1 print_char_cursor#26 print_byte::$2 ] main:2::testLong:13::print_sdword:26::print_dword:41::print_word:54::print_byte:60 [ print_line_cursor#1 print_char_cursor#26 print_byte::$2 ] main:2::testInt:11::print_word:80::print_byte:60 [ print_line_cursor#1 print_char_cursor#26 print_byte::$2 ] main:2::testInt:11::print_sword:84::print_word:98::print_byte:60 [ print_line_cursor#1 print_char_cursor#26 print_byte::$2 ] main:2::testInt:11::print_sword:88::print_word:98::print_byte:60 [ print_line_cursor#1 print_char_cursor#26 print_byte::$2 ] main:2::testShort:9::print_sword:110::print_word:98::print_byte:60 [ print_line_cursor#1 print_char_cursor#26 print_byte::$2 ] main:2::testShort:9::print_sword:114::print_word:98::print_byte:60 [ print_line_cursor#1 print_char_cursor#26 print_byte::$2 ] main:2::testShort:9::print_word:106::print_byte:60 [ print_line_cursor#1 print_char_cursor#26 print_byte::$2 ] main:2::testChar:7::print_byte:121 [ print_char_cursor#26 print_byte::$2 ] main:2::testChar:7::print_byte:125 [ print_char_cursor#26 print_byte::$2 ] main:2::testChar:7::print_sbyte:129::print_byte:137 [ print_char_cursor#26 print_byte::$2 ] ) always clobbers reg byte a
|
||||||
Statement [72] if(*((byte*) print_str::str#5)!=(byte) '@') goto print_str::@2 [ print_char_cursor#136 print_str::str#5 ] ( main:2::testLong:13::print_str:16 [ print_line_cursor#1 print_char_cursor#136 print_str::str#5 ] main:2::testInt:11::print_str:78 [ print_line_cursor#1 print_char_cursor#136 print_str::str#5 ] main:2::testShort:9::print_str:104 [ print_line_cursor#1 print_char_cursor#136 print_str::str#5 ] main:2::testChar:7::print_str:119 [ print_char_cursor#136 print_str::str#5 ] ) always clobbers reg byte a reg byte y
|
Statement [72] if((byte) 0!=*((byte*) print_str::str#5)) goto print_str::@2 [ print_char_cursor#136 print_str::str#5 ] ( main:2::testLong:13::print_str:16 [ print_line_cursor#1 print_char_cursor#136 print_str::str#5 ] main:2::testInt:11::print_str:78 [ print_line_cursor#1 print_char_cursor#136 print_str::str#5 ] main:2::testShort:9::print_str:104 [ print_line_cursor#1 print_char_cursor#136 print_str::str#5 ] main:2::testChar:7::print_str:119 [ print_char_cursor#136 print_str::str#5 ] ) always clobbers reg byte a reg byte y
|
||||||
Statement [74] *((byte*) print_char_cursor#136) ← *((byte*) print_str::str#5) [ print_char_cursor#136 print_str::str#5 ] ( main:2::testLong:13::print_str:16 [ print_line_cursor#1 print_char_cursor#136 print_str::str#5 ] main:2::testInt:11::print_str:78 [ print_line_cursor#1 print_char_cursor#136 print_str::str#5 ] main:2::testShort:9::print_str:104 [ print_line_cursor#1 print_char_cursor#136 print_str::str#5 ] main:2::testChar:7::print_str:119 [ print_char_cursor#136 print_str::str#5 ] ) always clobbers reg byte a reg byte y
|
Statement [74] *((byte*) print_char_cursor#136) ← *((byte*) print_str::str#5) [ print_char_cursor#136 print_str::str#5 ] ( main:2::testLong:13::print_str:16 [ print_line_cursor#1 print_char_cursor#136 print_str::str#5 ] main:2::testInt:11::print_str:78 [ print_line_cursor#1 print_char_cursor#136 print_str::str#5 ] main:2::testShort:9::print_str:104 [ print_line_cursor#1 print_char_cursor#136 print_str::str#5 ] main:2::testChar:7::print_str:119 [ print_char_cursor#136 print_str::str#5 ] ) always clobbers reg byte a reg byte y
|
||||||
Statement [77] (byte*~) print_char_cursor#161 ← (byte*) print_line_cursor#1 [ print_line_cursor#1 print_char_cursor#161 ] ( main:2::testInt:11 [ print_line_cursor#1 print_char_cursor#161 ] ) always clobbers reg byte a
|
Statement [77] (byte*~) print_char_cursor#161 ← (byte*) print_line_cursor#1 [ print_line_cursor#1 print_char_cursor#161 ] ( main:2::testInt:11 [ print_line_cursor#1 print_char_cursor#161 ] ) always clobbers reg byte a
|
||||||
Statement [93] if((signed word) print_sword::w#10<(signed byte) 0) goto print_sword::@1 [ print_char_cursor#26 print_sword::w#10 ] ( main:2::testInt:11::print_sword:84 [ print_line_cursor#1 print_char_cursor#26 print_sword::w#10 ] main:2::testInt:11::print_sword:88 [ print_line_cursor#1 print_char_cursor#26 print_sword::w#10 ] main:2::testShort:9::print_sword:110 [ print_line_cursor#1 print_char_cursor#26 print_sword::w#10 ] main:2::testShort:9::print_sword:114 [ print_line_cursor#1 print_char_cursor#26 print_sword::w#10 ] ) always clobbers reg byte a
|
Statement [93] if((signed word) print_sword::w#10<(signed byte) 0) goto print_sword::@1 [ print_char_cursor#26 print_sword::w#10 ] ( main:2::testInt:11::print_sword:84 [ print_line_cursor#1 print_char_cursor#26 print_sword::w#10 ] main:2::testInt:11::print_sword:88 [ print_line_cursor#1 print_char_cursor#26 print_sword::w#10 ] main:2::testShort:9::print_sword:110 [ print_line_cursor#1 print_char_cursor#26 print_sword::w#10 ] main:2::testShort:9::print_sword:114 [ print_line_cursor#1 print_char_cursor#26 print_sword::w#10 ] ) always clobbers reg byte a
|
||||||
@ -3808,10 +3816,10 @@ print_str: {
|
|||||||
jmp b1
|
jmp b1
|
||||||
// print_str::@1
|
// print_str::@1
|
||||||
b1:
|
b1:
|
||||||
// [72] if(*((byte*) print_str::str#5)!=(byte) '@') goto print_str::@2 -- _deref_pbuz1_neq_vbuc1_then_la1
|
// [72] if((byte) 0!=*((byte*) print_str::str#5)) goto print_str::@2 -- vbuc1_neq__deref_pbuz1_then_la1
|
||||||
ldy #0
|
ldy #0
|
||||||
lda (str),y
|
lda (str),y
|
||||||
cmp #'@'
|
cmp #0
|
||||||
bne b2
|
bne b2
|
||||||
jmp breturn
|
jmp breturn
|
||||||
// print_str::@return
|
// print_str::@return
|
||||||
@ -5102,11 +5110,11 @@ print_str: {
|
|||||||
// [71] phi (byte*) print_str::str#5 = (byte*) print_str::str#7 [phi:print_str/print_str::@2->print_str::@1#1] -- register_copy
|
// [71] phi (byte*) print_str::str#5 = (byte*) print_str::str#7 [phi:print_str/print_str::@2->print_str::@1#1] -- register_copy
|
||||||
// print_str::@1
|
// print_str::@1
|
||||||
b1:
|
b1:
|
||||||
// while(*str!='@')
|
// while(*str)
|
||||||
// [72] if(*((byte*) print_str::str#5)!=(byte) '@') goto print_str::@2 -- _deref_pbuz1_neq_vbuc1_then_la1
|
// [72] if((byte) 0!=*((byte*) print_str::str#5)) goto print_str::@2 -- vbuc1_neq__deref_pbuz1_then_la1
|
||||||
ldy #0
|
ldy #0
|
||||||
lda (str),y
|
lda (str),y
|
||||||
cmp #'@'
|
cmp #0
|
||||||
bne b2
|
bne b2
|
||||||
// print_str::@return
|
// print_str::@return
|
||||||
// }
|
// }
|
||||||
|
@ -1123,7 +1123,7 @@ print_str_at: {
|
|||||||
b1:
|
b1:
|
||||||
ldy #0
|
ldy #0
|
||||||
lda (str),y
|
lda (str),y
|
||||||
cmp #'@'
|
cmp #0
|
||||||
bne b2
|
bne b2
|
||||||
rts
|
rts
|
||||||
b2:
|
b2:
|
||||||
@ -1417,7 +1417,7 @@ print_str_lines: {
|
|||||||
b1:
|
b1:
|
||||||
ldy #0
|
ldy #0
|
||||||
lda (str),y
|
lda (str),y
|
||||||
cmp #'@'
|
cmp #0
|
||||||
bne b2
|
bne b2
|
||||||
rts
|
rts
|
||||||
b2:
|
b2:
|
||||||
@ -1427,7 +1427,7 @@ print_str_lines: {
|
|||||||
bne !+
|
bne !+
|
||||||
inc str+1
|
inc str+1
|
||||||
!:
|
!:
|
||||||
cmp #'@'
|
cmp #0
|
||||||
beq b3
|
beq b3
|
||||||
ldy #0
|
ldy #0
|
||||||
sta (print_char_cursor),y
|
sta (print_char_cursor),y
|
||||||
@ -1436,7 +1436,7 @@ print_str_lines: {
|
|||||||
inc print_char_cursor+1
|
inc print_char_cursor+1
|
||||||
!:
|
!:
|
||||||
b3:
|
b3:
|
||||||
cmp #'@'
|
cmp #0
|
||||||
bne b2
|
bne b2
|
||||||
jsr print_ln
|
jsr print_ln
|
||||||
lda print_line_cursor
|
lda print_line_cursor
|
||||||
|
@ -613,7 +613,7 @@ print_str_at: scope:[print_str_at] from render_preset_name::@2
|
|||||||
print_str_at::@1: scope:[print_str_at] from print_str_at print_str_at::@2
|
print_str_at::@1: scope:[print_str_at] from print_str_at print_str_at::@2
|
||||||
[322] (byte*) print_str_at::at#2 ← phi( print_str_at/(const byte*) FORM_SCREEN#0+(byte)(number) $28*(number) 2+(byte) $a print_str_at::@2/(byte*) print_str_at::at#0 )
|
[322] (byte*) print_str_at::at#2 ← phi( print_str_at/(const byte*) FORM_SCREEN#0+(byte)(number) $28*(number) 2+(byte) $a print_str_at::@2/(byte*) print_str_at::at#0 )
|
||||||
[322] (byte*) print_str_at::str#2 ← phi( print_str_at/(byte*) print_str_at::str#1 print_str_at::@2/(byte*) print_str_at::str#0 )
|
[322] (byte*) print_str_at::str#2 ← phi( print_str_at/(byte*) print_str_at::str#1 print_str_at::@2/(byte*) print_str_at::str#0 )
|
||||||
[323] if(*((byte*) print_str_at::str#2)!=(byte) '@') goto print_str_at::@2
|
[323] if((byte) 0!=*((byte*) print_str_at::str#2)) goto print_str_at::@2
|
||||||
to:print_str_at::@return
|
to:print_str_at::@return
|
||||||
print_str_at::@return: scope:[print_str_at] from print_str_at::@1
|
print_str_at::@return: scope:[print_str_at] from print_str_at::@1
|
||||||
[324] return
|
[324] return
|
||||||
@ -820,7 +820,7 @@ print_str_lines::@1: scope:[print_str_lines] from print_str_lines print_str_lin
|
|||||||
[414] (byte*) print_line_cursor#2 ← phi( print_str_lines/(byte*) print_set_screen::screen#2 print_str_lines::@6/(byte*) print_line_cursor#22 )
|
[414] (byte*) print_line_cursor#2 ← phi( print_str_lines/(byte*) print_set_screen::screen#2 print_str_lines::@6/(byte*) print_line_cursor#22 )
|
||||||
[414] (byte*) print_char_cursor#22 ← phi( print_str_lines/(byte*~) print_char_cursor#73 print_str_lines::@6/(byte*~) print_char_cursor#74 )
|
[414] (byte*) print_char_cursor#22 ← phi( print_str_lines/(byte*~) print_char_cursor#73 print_str_lines::@6/(byte*~) print_char_cursor#74 )
|
||||||
[414] (byte*) print_str_lines::str#3 ← phi( print_str_lines/(byte*) print_str_lines::str#5 print_str_lines::@6/(byte*) print_str_lines::str#0 )
|
[414] (byte*) print_str_lines::str#3 ← phi( print_str_lines/(byte*) print_str_lines::str#5 print_str_lines::@6/(byte*) print_str_lines::str#0 )
|
||||||
[415] if(*((byte*) print_str_lines::str#3)!=(byte) '@') goto print_str_lines::@2
|
[415] if((byte) 0!=*((byte*) print_str_lines::str#3)) goto print_str_lines::@2
|
||||||
to:print_str_lines::@return
|
to:print_str_lines::@return
|
||||||
print_str_lines::@return: scope:[print_str_lines] from print_str_lines::@1
|
print_str_lines::@return: scope:[print_str_lines] from print_str_lines::@1
|
||||||
[416] return
|
[416] return
|
||||||
@ -830,7 +830,7 @@ print_str_lines::@2: scope:[print_str_lines] from print_str_lines::@1 print_str
|
|||||||
[417] (byte*) print_str_lines::str#4 ← phi( print_str_lines::@1/(byte*) print_str_lines::str#3 print_str_lines::@3/(byte*) print_str_lines::str#0 )
|
[417] (byte*) print_str_lines::str#4 ← phi( print_str_lines::@1/(byte*) print_str_lines::str#3 print_str_lines::@3/(byte*) print_str_lines::str#0 )
|
||||||
[418] (byte) print_str_lines::ch#0 ← *((byte*) print_str_lines::str#4)
|
[418] (byte) print_str_lines::ch#0 ← *((byte*) print_str_lines::str#4)
|
||||||
[419] (byte*) print_str_lines::str#0 ← ++ (byte*) print_str_lines::str#4
|
[419] (byte*) print_str_lines::str#0 ← ++ (byte*) print_str_lines::str#4
|
||||||
[420] if((byte) print_str_lines::ch#0==(byte) '@') goto print_str_lines::@3
|
[420] if((byte) 0==(byte) print_str_lines::ch#0) goto print_str_lines::@3
|
||||||
to:print_str_lines::@4
|
to:print_str_lines::@4
|
||||||
print_str_lines::@4: scope:[print_str_lines] from print_str_lines::@2
|
print_str_lines::@4: scope:[print_str_lines] from print_str_lines::@2
|
||||||
[421] *((byte*) print_char_cursor#20) ← (byte) print_str_lines::ch#0
|
[421] *((byte*) print_char_cursor#20) ← (byte) print_str_lines::ch#0
|
||||||
@ -838,7 +838,7 @@ print_str_lines::@4: scope:[print_str_lines] from print_str_lines::@2
|
|||||||
to:print_str_lines::@3
|
to:print_str_lines::@3
|
||||||
print_str_lines::@3: scope:[print_str_lines] from print_str_lines::@2 print_str_lines::@4
|
print_str_lines::@3: scope:[print_str_lines] from print_str_lines::@2 print_str_lines::@4
|
||||||
[423] (byte*) print_char_cursor#38 ← phi( print_str_lines::@2/(byte*) print_char_cursor#20 print_str_lines::@4/(byte*) print_char_cursor#1 )
|
[423] (byte*) print_char_cursor#38 ← phi( print_str_lines::@2/(byte*) print_char_cursor#20 print_str_lines::@4/(byte*) print_char_cursor#1 )
|
||||||
[424] if((byte) print_str_lines::ch#0!=(byte) '@') goto print_str_lines::@2
|
[424] if((byte) 0!=(byte) print_str_lines::ch#0) goto print_str_lines::@2
|
||||||
to:print_str_lines::@5
|
to:print_str_lines::@5
|
||||||
print_str_lines::@5: scope:[print_str_lines] from print_str_lines::@3
|
print_str_lines::@5: scope:[print_str_lines] from print_str_lines::@3
|
||||||
[425] phi()
|
[425] phi()
|
||||||
|
@ -4,6 +4,11 @@ Fixing pointer addition (word*~) bsearch16u::$1 ← (word*) bsearch16u::items -
|
|||||||
Fixing pointer array-indexing *((word*) utoa::digit_values + (byte) utoa::digit)
|
Fixing pointer array-indexing *((word*) utoa::digit_values + (byte) utoa::digit)
|
||||||
Fixing pointer array-indexing *((dword*) ultoa::digit_values + (byte) ultoa::digit)
|
Fixing pointer array-indexing *((dword*) ultoa::digit_values + (byte) ultoa::digit)
|
||||||
Warning! Adding boolean cast to non-boolean condition *((byte*) strcpy::src)
|
Warning! Adding boolean cast to non-boolean condition *((byte*) strcpy::src)
|
||||||
|
Warning! Adding boolean cast to non-boolean condition *((byte*) print_str_lines::str)
|
||||||
|
Warning! Adding boolean cast to non-boolean condition (byte) print_str_lines::ch
|
||||||
|
Warning! Adding boolean cast to non-boolean condition *((byte*) print_str::str)
|
||||||
|
Warning! Adding boolean cast to non-boolean condition *((byte*) print_str_at::str)
|
||||||
|
Warning! Adding boolean cast to non-boolean sub-expression (byte) print_str_lines::ch
|
||||||
Identified constant variable (byte*) dtvSetCpuBankSegment1::cpuBank
|
Identified constant variable (byte*) dtvSetCpuBankSegment1::cpuBank
|
||||||
Identified constant variable (byte*) DTV_BLITTER_ALU
|
Identified constant variable (byte*) DTV_BLITTER_ALU
|
||||||
Identified constant variable (byte*) HEAP_TOP
|
Identified constant variable (byte*) HEAP_TOP
|
||||||
@ -422,8 +427,8 @@ print_str_lines::@1: scope:[print_str_lines] from print_str_lines print_str_lin
|
|||||||
(byte*) print_line_cursor#37 ← phi( print_str_lines/(byte*) print_line_cursor#45 print_str_lines::@11/(byte*) print_line_cursor#1 )
|
(byte*) print_line_cursor#37 ← phi( print_str_lines/(byte*) print_line_cursor#45 print_str_lines::@11/(byte*) print_line_cursor#1 )
|
||||||
(byte*) print_char_cursor#39 ← phi( print_str_lines/(byte*) print_char_cursor#47 print_str_lines::@11/(byte*) print_char_cursor#2 )
|
(byte*) print_char_cursor#39 ← phi( print_str_lines/(byte*) print_char_cursor#47 print_str_lines::@11/(byte*) print_char_cursor#2 )
|
||||||
(byte*) print_str_lines::str#3 ← phi( print_str_lines/(byte*) print_str_lines::str#5 print_str_lines::@11/(byte*) print_str_lines::str#6 )
|
(byte*) print_str_lines::str#3 ← phi( print_str_lines/(byte*) print_str_lines::str#5 print_str_lines::@11/(byte*) print_str_lines::str#6 )
|
||||||
(bool~) print_str_lines::$0 ← *((byte*) print_str_lines::str#3) != (byte) '@'
|
(bool~) print_str_lines::$2 ← (number) 0 != *((byte*) print_str_lines::str#3)
|
||||||
if((bool~) print_str_lines::$0) goto print_str_lines::@4
|
if((bool~) print_str_lines::$2) goto print_str_lines::@4
|
||||||
to:print_str_lines::@return
|
to:print_str_lines::@return
|
||||||
print_str_lines::@4: scope:[print_str_lines] from print_str_lines::@1 print_str_lines::@5
|
print_str_lines::@4: scope:[print_str_lines] from print_str_lines::@1 print_str_lines::@5
|
||||||
(byte*) print_line_cursor#54 ← phi( print_str_lines::@1/(byte*) print_line_cursor#37 print_str_lines::@5/(byte*) print_line_cursor#46 )
|
(byte*) print_line_cursor#54 ← phi( print_str_lines::@1/(byte*) print_line_cursor#37 print_str_lines::@5/(byte*) print_line_cursor#46 )
|
||||||
@ -431,16 +436,16 @@ print_str_lines::@4: scope:[print_str_lines] from print_str_lines::@1 print_str
|
|||||||
(byte*) print_str_lines::str#4 ← phi( print_str_lines::@1/(byte*) print_str_lines::str#3 print_str_lines::@5/(byte*) print_str_lines::str#7 )
|
(byte*) print_str_lines::str#4 ← phi( print_str_lines::@1/(byte*) print_str_lines::str#3 print_str_lines::@5/(byte*) print_str_lines::str#7 )
|
||||||
(byte) print_str_lines::ch#0 ← *((byte*) print_str_lines::str#4)
|
(byte) print_str_lines::ch#0 ← *((byte*) print_str_lines::str#4)
|
||||||
(byte*) print_str_lines::str#0 ← ++ (byte*) print_str_lines::str#4
|
(byte*) print_str_lines::str#0 ← ++ (byte*) print_str_lines::str#4
|
||||||
(bool~) print_str_lines::$1 ← (byte) print_str_lines::ch#0 != (byte) '@'
|
(bool~) print_str_lines::$4 ← (number) 0 != (byte) print_str_lines::ch#0
|
||||||
(bool~) print_str_lines::$2 ← ! (bool~) print_str_lines::$1
|
(bool~) print_str_lines::$0 ← ! (bool~) print_str_lines::$4
|
||||||
if((bool~) print_str_lines::$2) goto print_str_lines::@5
|
if((bool~) print_str_lines::$0) goto print_str_lines::@5
|
||||||
to:print_str_lines::@6
|
to:print_str_lines::@6
|
||||||
print_str_lines::@5: scope:[print_str_lines] from print_str_lines::@4 print_str_lines::@6
|
print_str_lines::@5: scope:[print_str_lines] from print_str_lines::@4 print_str_lines::@6
|
||||||
(byte*) print_line_cursor#46 ← phi( print_str_lines::@4/(byte*) print_line_cursor#54 print_str_lines::@6/(byte*) print_line_cursor#55 )
|
(byte*) print_line_cursor#46 ← phi( print_str_lines::@4/(byte*) print_line_cursor#54 print_str_lines::@6/(byte*) print_line_cursor#55 )
|
||||||
(byte*) print_char_cursor#48 ← phi( print_str_lines::@4/(byte*) print_char_cursor#37 print_str_lines::@6/(byte*) print_char_cursor#1 )
|
(byte*) print_char_cursor#48 ← phi( print_str_lines::@4/(byte*) print_char_cursor#37 print_str_lines::@6/(byte*) print_char_cursor#1 )
|
||||||
(byte*) print_str_lines::str#7 ← phi( print_str_lines::@4/(byte*) print_str_lines::str#0 print_str_lines::@6/(byte*) print_str_lines::str#8 )
|
(byte*) print_str_lines::str#7 ← phi( print_str_lines::@4/(byte*) print_str_lines::str#0 print_str_lines::@6/(byte*) print_str_lines::str#8 )
|
||||||
(byte) print_str_lines::ch#1 ← phi( print_str_lines::@4/(byte) print_str_lines::ch#0 print_str_lines::@6/(byte) print_str_lines::ch#2 )
|
(byte) print_str_lines::ch#1 ← phi( print_str_lines::@4/(byte) print_str_lines::ch#0 print_str_lines::@6/(byte) print_str_lines::ch#2 )
|
||||||
(bool~) print_str_lines::$3 ← (byte) print_str_lines::ch#1 != (byte) '@'
|
(bool~) print_str_lines::$3 ← (number) 0 != (byte) print_str_lines::ch#1
|
||||||
if((bool~) print_str_lines::$3) goto print_str_lines::@4
|
if((bool~) print_str_lines::$3) goto print_str_lines::@4
|
||||||
to:print_str_lines::@7
|
to:print_str_lines::@7
|
||||||
print_str_lines::@6: scope:[print_str_lines] from print_str_lines::@4
|
print_str_lines::@6: scope:[print_str_lines] from print_str_lines::@4
|
||||||
@ -478,7 +483,7 @@ print_str_at: scope:[print_str_at] from render_preset_name::@22
|
|||||||
print_str_at::@1: scope:[print_str_at] from print_str_at print_str_at::@2
|
print_str_at::@1: scope:[print_str_at] from print_str_at print_str_at::@2
|
||||||
(byte*) print_str_at::at#3 ← phi( print_str_at/(byte*) print_str_at::at#4 print_str_at::@2/(byte*) print_str_at::at#0 )
|
(byte*) print_str_at::at#3 ← phi( print_str_at/(byte*) print_str_at::at#4 print_str_at::@2/(byte*) print_str_at::at#0 )
|
||||||
(byte*) print_str_at::str#2 ← phi( print_str_at/(byte*) print_str_at::str#4 print_str_at::@2/(byte*) print_str_at::str#0 )
|
(byte*) print_str_at::str#2 ← phi( print_str_at/(byte*) print_str_at::str#4 print_str_at::@2/(byte*) print_str_at::str#0 )
|
||||||
(bool~) print_str_at::$0 ← *((byte*) print_str_at::str#2) != (byte) '@'
|
(bool~) print_str_at::$0 ← (number) 0 != *((byte*) print_str_at::str#2)
|
||||||
if((bool~) print_str_at::$0) goto print_str_at::@2
|
if((bool~) print_str_at::$0) goto print_str_at::@2
|
||||||
to:print_str_at::@return
|
to:print_str_at::@return
|
||||||
print_str_at::@2: scope:[print_str_at] from print_str_at::@1
|
print_str_at::@2: scope:[print_str_at] from print_str_at::@1
|
||||||
@ -6711,9 +6716,9 @@ SYMBOL TABLE SSA
|
|||||||
(byte*) print_str_at::str#4
|
(byte*) print_str_at::str#4
|
||||||
(void()) print_str_lines((byte*) print_str_lines::str)
|
(void()) print_str_lines((byte*) print_str_lines::str)
|
||||||
(bool~) print_str_lines::$0
|
(bool~) print_str_lines::$0
|
||||||
(bool~) print_str_lines::$1
|
|
||||||
(bool~) print_str_lines::$2
|
(bool~) print_str_lines::$2
|
||||||
(bool~) print_str_lines::$3
|
(bool~) print_str_lines::$3
|
||||||
|
(bool~) print_str_lines::$4
|
||||||
(label) print_str_lines::@1
|
(label) print_str_lines::@1
|
||||||
(label) print_str_lines::@11
|
(label) print_str_lines::@11
|
||||||
(label) print_str_lines::@4
|
(label) print_str_lines::@4
|
||||||
@ -6840,6 +6845,10 @@ Adding number conversion cast (unumber) $10 in (byte) DTV_COLORRAM_OFF#0 ← (nu
|
|||||||
Adding number conversion cast (unumber) $40 in (byte) DTV_CHUNKY#0 ← (number) $40
|
Adding number conversion cast (unumber) $40 in (byte) DTV_CHUNKY#0 ← (number) $40
|
||||||
Adding number conversion cast (unumber) $1d800 in (dword) DTV_COLOR_BANK_DEFAULT#0 ← (number) $1d800
|
Adding number conversion cast (unumber) $1d800 in (dword) DTV_COLOR_BANK_DEFAULT#0 ← (number) $1d800
|
||||||
Adding number conversion cast (unumber) 0 in (bool~) memset::$0 ← (word) memset::num#1 > (number) 0
|
Adding number conversion cast (unumber) 0 in (bool~) memset::$0 ← (word) memset::num#1 > (number) 0
|
||||||
|
Adding number conversion cast (unumber) 0 in (bool~) print_str_lines::$2 ← (number) 0 != *((byte*) print_str_lines::str#3)
|
||||||
|
Adding number conversion cast (unumber) 0 in (bool~) print_str_lines::$4 ← (number) 0 != (byte) print_str_lines::ch#0
|
||||||
|
Adding number conversion cast (unumber) 0 in (bool~) print_str_lines::$3 ← (number) 0 != (byte) print_str_lines::ch#1
|
||||||
|
Adding number conversion cast (unumber) 0 in (bool~) print_str_at::$0 ← (number) 0 != *((byte*) print_str_at::str#2)
|
||||||
Adding number conversion cast (unumber) $28 in (byte*~) print_ln::$0 ← (byte*) print_line_cursor#21 + (number) $28
|
Adding number conversion cast (unumber) $28 in (byte*~) print_ln::$0 ← (byte*) print_line_cursor#21 + (number) $28
|
||||||
Adding number conversion cast (unumber) $3e8 in (word) memset::num#0 ← (number) $3e8
|
Adding number conversion cast (unumber) $3e8 in (word) memset::num#0 ← (number) $3e8
|
||||||
Adding number conversion cast (unumber) 2 in (byte) KEY_CRSR_RIGHT#0 ← (number) 2
|
Adding number conversion cast (unumber) 2 in (byte) KEY_CRSR_RIGHT#0 ← (number) 2
|
||||||
@ -7480,6 +7489,10 @@ Simplifying constant pointer cast (byte*) 53309
|
|||||||
Simplifying constant pointer cast (byte*) 255
|
Simplifying constant pointer cast (byte*) 255
|
||||||
Simplifying constant integer cast 0
|
Simplifying constant integer cast 0
|
||||||
Simplifying constant pointer cast (byte*) 1024
|
Simplifying constant pointer cast (byte*) 1024
|
||||||
|
Simplifying constant integer cast 0
|
||||||
|
Simplifying constant integer cast 0
|
||||||
|
Simplifying constant integer cast 0
|
||||||
|
Simplifying constant integer cast 0
|
||||||
Simplifying constant integer cast $28
|
Simplifying constant integer cast $28
|
||||||
Simplifying constant integer cast $3e8
|
Simplifying constant integer cast $3e8
|
||||||
Simplifying constant integer cast 2
|
Simplifying constant integer cast 2
|
||||||
@ -8369,6 +8382,10 @@ Finalized unsigned number type (byte) $10
|
|||||||
Finalized unsigned number type (byte) $40
|
Finalized unsigned number type (byte) $40
|
||||||
Finalized unsigned number type (dword) $1d800
|
Finalized unsigned number type (dword) $1d800
|
||||||
Finalized unsigned number type (byte) 0
|
Finalized unsigned number type (byte) 0
|
||||||
|
Finalized unsigned number type (byte) 0
|
||||||
|
Finalized unsigned number type (byte) 0
|
||||||
|
Finalized unsigned number type (byte) 0
|
||||||
|
Finalized unsigned number type (byte) 0
|
||||||
Finalized unsigned number type (byte) $28
|
Finalized unsigned number type (byte) $28
|
||||||
Finalized unsigned number type (word) $3e8
|
Finalized unsigned number type (word) $3e8
|
||||||
Finalized unsigned number type (byte) 2
|
Finalized unsigned number type (byte) 2
|
||||||
@ -8732,7 +8749,7 @@ Adding pointer type conversion cast (byte*) bitmap_clear::$0 in (byte*~) bitmap_
|
|||||||
Adding pointer type conversion cast (byte*) form_field_ptr::$0 in (byte*~) form_field_ptr::$0 ← (word~) form_field_ptr::$2
|
Adding pointer type conversion cast (byte*) form_field_ptr::$0 in (byte*~) form_field_ptr::$0 ← (word~) form_field_ptr::$2
|
||||||
Successful SSA optimization PassNAddTypeConversionAssignment
|
Successful SSA optimization PassNAddTypeConversionAssignment
|
||||||
Inversing boolean not [63] (bool~) memset::$1 ← (word) memset::num#1 <= (byte) 0 from [62] (bool~) memset::$0 ← (word) memset::num#1 > (byte) 0
|
Inversing boolean not [63] (bool~) memset::$1 ← (word) memset::num#1 <= (byte) 0 from [62] (bool~) memset::$0 ← (word) memset::num#1 > (byte) 0
|
||||||
Inversing boolean not [92] (bool~) print_str_lines::$2 ← (byte) print_str_lines::ch#0 == (byte) '@' from [91] (bool~) print_str_lines::$1 ← (byte) print_str_lines::ch#0 != (byte) '@'
|
Inversing boolean not [92] (bool~) print_str_lines::$0 ← (byte) 0 == (byte) print_str_lines::ch#0 from [91] (bool~) print_str_lines::$4 ← (byte) 0 != (byte) print_str_lines::ch#0
|
||||||
Inversing boolean not [211] (bool~) keyboard_event_scan::$18 ← (byte~) keyboard_event_scan::$16 == (byte) 0 from [210] (bool~) keyboard_event_scan::$17 ← (byte~) keyboard_event_scan::$16 != (byte) 0
|
Inversing boolean not [211] (bool~) keyboard_event_scan::$18 ← (byte~) keyboard_event_scan::$16 == (byte) 0 from [210] (bool~) keyboard_event_scan::$17 ← (byte~) keyboard_event_scan::$16 != (byte) 0
|
||||||
Inversing boolean not [220] (bool~) keyboard_event_scan::$20 ← (byte) keyboard_events_size#18 == (byte) 8 from [219] (bool~) keyboard_event_scan::$19 ← (byte) keyboard_events_size#18 != (byte) 8
|
Inversing boolean not [220] (bool~) keyboard_event_scan::$20 ← (byte) keyboard_events_size#18 == (byte) 8 from [219] (bool~) keyboard_event_scan::$19 ← (byte) keyboard_events_size#18 != (byte) 8
|
||||||
Inversing boolean not [244] (bool~) keyboard_event_scan::$2 ← (byte~) keyboard_event_scan::$0 == (byte) 0 from [243] (bool~) keyboard_event_scan::$1 ← (byte~) keyboard_event_scan::$0 != (byte) 0
|
Inversing boolean not [244] (bool~) keyboard_event_scan::$2 ← (byte~) keyboard_event_scan::$0 == (byte) 0 from [243] (bool~) keyboard_event_scan::$1 ← (byte~) keyboard_event_scan::$0 != (byte) 0
|
||||||
@ -9414,10 +9431,10 @@ Identified duplicate assignment right side [1577] (dword~) form_mode::$15 ← (d
|
|||||||
Successful SSA optimization Pass2DuplicateRValueIdentification
|
Successful SSA optimization Pass2DuplicateRValueIdentification
|
||||||
Simple Condition (bool~) memset::$1 [64] if((word) memset::num#0<=(byte) 0) goto memset::@1
|
Simple Condition (bool~) memset::$1 [64] if((word) memset::num#0<=(byte) 0) goto memset::@1
|
||||||
Simple Condition (bool~) memset::$4 [74] if((byte*) memset::dst#2!=(byte*) memset::end#0) goto memset::@5
|
Simple Condition (bool~) memset::$4 [74] if((byte*) memset::dst#2!=(byte*) memset::end#0) goto memset::@5
|
||||||
Simple Condition (bool~) print_str_lines::$0 [87] if(*((byte*) print_str_lines::str#3)!=(byte) '@') goto print_str_lines::@4
|
Simple Condition (bool~) print_str_lines::$2 [87] if((byte) 0!=*((byte*) print_str_lines::str#3)) goto print_str_lines::@4
|
||||||
Simple Condition (bool~) print_str_lines::$2 [93] if((byte) print_str_lines::ch#0==(byte) '@') goto print_str_lines::@5
|
Simple Condition (bool~) print_str_lines::$0 [93] if((byte) 0==(byte) print_str_lines::ch#0) goto print_str_lines::@5
|
||||||
Simple Condition (bool~) print_str_lines::$3 [96] if((byte) print_str_lines::ch#0!=(byte) '@') goto print_str_lines::@4
|
Simple Condition (bool~) print_str_lines::$3 [96] if((byte) 0!=(byte) print_str_lines::ch#0) goto print_str_lines::@4
|
||||||
Simple Condition (bool~) print_str_at::$0 [112] if(*((byte*) print_str_at::str#2)!=(byte) '@') goto print_str_at::@2
|
Simple Condition (bool~) print_str_at::$0 [112] if((byte) 0!=*((byte*) print_str_at::str#2)) goto print_str_at::@2
|
||||||
Simple Condition (bool~) print_ln::$1 [123] if((byte*) print_line_cursor#22<(byte*) print_char_cursor#38) goto print_ln::@1
|
Simple Condition (bool~) print_ln::$1 [123] if((byte*) print_line_cursor#22<(byte*) print_char_cursor#38) goto print_ln::@1
|
||||||
Simple Condition (bool~) keyboard_event_scan::$13 [197] if((byte) keyboard_event_scan::row_scan#0!=*((byte[8]) keyboard_scan_values#0 + (byte) keyboard_event_scan::row#2)) goto keyboard_event_scan::@9
|
Simple Condition (bool~) keyboard_event_scan::$13 [197] if((byte) keyboard_event_scan::row_scan#0!=*((byte[8]) keyboard_scan_values#0 + (byte) keyboard_event_scan::row#2)) goto keyboard_event_scan::@9
|
||||||
Simple Condition (bool~) keyboard_event_scan::$25 [206] if((byte) keyboard_event_scan::row#1!=rangelast(0,7)) goto keyboard_event_scan::@8
|
Simple Condition (bool~) keyboard_event_scan::$25 [206] if((byte) keyboard_event_scan::row#1!=rangelast(0,7)) goto keyboard_event_scan::@8
|
||||||
@ -12444,7 +12461,7 @@ print_str_at: scope:[print_str_at] from render_preset_name::@2
|
|||||||
print_str_at::@1: scope:[print_str_at] from print_str_at print_str_at::@2
|
print_str_at::@1: scope:[print_str_at] from print_str_at print_str_at::@2
|
||||||
[322] (byte*) print_str_at::at#2 ← phi( print_str_at/(const byte*) FORM_SCREEN#0+(byte)(number) $28*(number) 2+(byte) $a print_str_at::@2/(byte*) print_str_at::at#0 )
|
[322] (byte*) print_str_at::at#2 ← phi( print_str_at/(const byte*) FORM_SCREEN#0+(byte)(number) $28*(number) 2+(byte) $a print_str_at::@2/(byte*) print_str_at::at#0 )
|
||||||
[322] (byte*) print_str_at::str#2 ← phi( print_str_at/(byte*) print_str_at::str#1 print_str_at::@2/(byte*) print_str_at::str#0 )
|
[322] (byte*) print_str_at::str#2 ← phi( print_str_at/(byte*) print_str_at::str#1 print_str_at::@2/(byte*) print_str_at::str#0 )
|
||||||
[323] if(*((byte*) print_str_at::str#2)!=(byte) '@') goto print_str_at::@2
|
[323] if((byte) 0!=*((byte*) print_str_at::str#2)) goto print_str_at::@2
|
||||||
to:print_str_at::@return
|
to:print_str_at::@return
|
||||||
print_str_at::@return: scope:[print_str_at] from print_str_at::@1
|
print_str_at::@return: scope:[print_str_at] from print_str_at::@1
|
||||||
[324] return
|
[324] return
|
||||||
@ -12651,7 +12668,7 @@ print_str_lines::@1: scope:[print_str_lines] from print_str_lines print_str_lin
|
|||||||
[414] (byte*) print_line_cursor#2 ← phi( print_str_lines/(byte*) print_set_screen::screen#2 print_str_lines::@6/(byte*) print_line_cursor#22 )
|
[414] (byte*) print_line_cursor#2 ← phi( print_str_lines/(byte*) print_set_screen::screen#2 print_str_lines::@6/(byte*) print_line_cursor#22 )
|
||||||
[414] (byte*) print_char_cursor#22 ← phi( print_str_lines/(byte*~) print_char_cursor#73 print_str_lines::@6/(byte*~) print_char_cursor#74 )
|
[414] (byte*) print_char_cursor#22 ← phi( print_str_lines/(byte*~) print_char_cursor#73 print_str_lines::@6/(byte*~) print_char_cursor#74 )
|
||||||
[414] (byte*) print_str_lines::str#3 ← phi( print_str_lines/(byte*) print_str_lines::str#5 print_str_lines::@6/(byte*) print_str_lines::str#0 )
|
[414] (byte*) print_str_lines::str#3 ← phi( print_str_lines/(byte*) print_str_lines::str#5 print_str_lines::@6/(byte*) print_str_lines::str#0 )
|
||||||
[415] if(*((byte*) print_str_lines::str#3)!=(byte) '@') goto print_str_lines::@2
|
[415] if((byte) 0!=*((byte*) print_str_lines::str#3)) goto print_str_lines::@2
|
||||||
to:print_str_lines::@return
|
to:print_str_lines::@return
|
||||||
print_str_lines::@return: scope:[print_str_lines] from print_str_lines::@1
|
print_str_lines::@return: scope:[print_str_lines] from print_str_lines::@1
|
||||||
[416] return
|
[416] return
|
||||||
@ -12661,7 +12678,7 @@ print_str_lines::@2: scope:[print_str_lines] from print_str_lines::@1 print_str
|
|||||||
[417] (byte*) print_str_lines::str#4 ← phi( print_str_lines::@1/(byte*) print_str_lines::str#3 print_str_lines::@3/(byte*) print_str_lines::str#0 )
|
[417] (byte*) print_str_lines::str#4 ← phi( print_str_lines::@1/(byte*) print_str_lines::str#3 print_str_lines::@3/(byte*) print_str_lines::str#0 )
|
||||||
[418] (byte) print_str_lines::ch#0 ← *((byte*) print_str_lines::str#4)
|
[418] (byte) print_str_lines::ch#0 ← *((byte*) print_str_lines::str#4)
|
||||||
[419] (byte*) print_str_lines::str#0 ← ++ (byte*) print_str_lines::str#4
|
[419] (byte*) print_str_lines::str#0 ← ++ (byte*) print_str_lines::str#4
|
||||||
[420] if((byte) print_str_lines::ch#0==(byte) '@') goto print_str_lines::@3
|
[420] if((byte) 0==(byte) print_str_lines::ch#0) goto print_str_lines::@3
|
||||||
to:print_str_lines::@4
|
to:print_str_lines::@4
|
||||||
print_str_lines::@4: scope:[print_str_lines] from print_str_lines::@2
|
print_str_lines::@4: scope:[print_str_lines] from print_str_lines::@2
|
||||||
[421] *((byte*) print_char_cursor#20) ← (byte) print_str_lines::ch#0
|
[421] *((byte*) print_char_cursor#20) ← (byte) print_str_lines::ch#0
|
||||||
@ -12669,7 +12686,7 @@ print_str_lines::@4: scope:[print_str_lines] from print_str_lines::@2
|
|||||||
to:print_str_lines::@3
|
to:print_str_lines::@3
|
||||||
print_str_lines::@3: scope:[print_str_lines] from print_str_lines::@2 print_str_lines::@4
|
print_str_lines::@3: scope:[print_str_lines] from print_str_lines::@2 print_str_lines::@4
|
||||||
[423] (byte*) print_char_cursor#38 ← phi( print_str_lines::@2/(byte*) print_char_cursor#20 print_str_lines::@4/(byte*) print_char_cursor#1 )
|
[423] (byte*) print_char_cursor#38 ← phi( print_str_lines::@2/(byte*) print_char_cursor#20 print_str_lines::@4/(byte*) print_char_cursor#1 )
|
||||||
[424] if((byte) print_str_lines::ch#0!=(byte) '@') goto print_str_lines::@2
|
[424] if((byte) 0!=(byte) print_str_lines::ch#0) goto print_str_lines::@2
|
||||||
to:print_str_lines::@5
|
to:print_str_lines::@5
|
||||||
print_str_lines::@5: scope:[print_str_lines] from print_str_lines::@3
|
print_str_lines::@5: scope:[print_str_lines] from print_str_lines::@3
|
||||||
[425] phi()
|
[425] phi()
|
||||||
@ -17592,10 +17609,10 @@ print_str_at: {
|
|||||||
jmp b1
|
jmp b1
|
||||||
// print_str_at::@1
|
// print_str_at::@1
|
||||||
b1:
|
b1:
|
||||||
// [323] if(*((byte*) print_str_at::str#2)!=(byte) '@') goto print_str_at::@2 -- _deref_pbuz1_neq_vbuc1_then_la1
|
// [323] if((byte) 0!=*((byte*) print_str_at::str#2)) goto print_str_at::@2 -- vbuc1_neq__deref_pbuz1_then_la1
|
||||||
ldy #0
|
ldy #0
|
||||||
lda (str),y
|
lda (str),y
|
||||||
cmp #'@'
|
cmp #0
|
||||||
bne b2
|
bne b2
|
||||||
jmp breturn
|
jmp breturn
|
||||||
// print_str_at::@return
|
// print_str_at::@return
|
||||||
@ -18278,10 +18295,10 @@ print_str_lines: {
|
|||||||
jmp b1
|
jmp b1
|
||||||
// print_str_lines::@1
|
// print_str_lines::@1
|
||||||
b1:
|
b1:
|
||||||
// [415] if(*((byte*) print_str_lines::str#3)!=(byte) '@') goto print_str_lines::@2 -- _deref_pbuz1_neq_vbuc1_then_la1
|
// [415] if((byte) 0!=*((byte*) print_str_lines::str#3)) goto print_str_lines::@2 -- vbuc1_neq__deref_pbuz1_then_la1
|
||||||
ldy #0
|
ldy #0
|
||||||
lda (str),y
|
lda (str),y
|
||||||
cmp #'@'
|
cmp #0
|
||||||
bne b2_from_b1
|
bne b2_from_b1
|
||||||
jmp breturn
|
jmp breturn
|
||||||
// print_str_lines::@return
|
// print_str_lines::@return
|
||||||
@ -18305,8 +18322,8 @@ print_str_lines: {
|
|||||||
bne !+
|
bne !+
|
||||||
inc str+1
|
inc str+1
|
||||||
!:
|
!:
|
||||||
// [420] if((byte) print_str_lines::ch#0==(byte) '@') goto print_str_lines::@3 -- vbuz1_eq_vbuc1_then_la1
|
// [420] if((byte) 0==(byte) print_str_lines::ch#0) goto print_str_lines::@3 -- vbuc1_eq_vbuz1_then_la1
|
||||||
lda #'@'
|
lda #0
|
||||||
cmp ch
|
cmp ch
|
||||||
beq b3_from_b2
|
beq b3_from_b2
|
||||||
jmp b4
|
jmp b4
|
||||||
@ -18328,8 +18345,8 @@ print_str_lines: {
|
|||||||
jmp b3
|
jmp b3
|
||||||
// print_str_lines::@3
|
// print_str_lines::@3
|
||||||
b3:
|
b3:
|
||||||
// [424] if((byte) print_str_lines::ch#0!=(byte) '@') goto print_str_lines::@2 -- vbuz1_neq_vbuc1_then_la1
|
// [424] if((byte) 0!=(byte) print_str_lines::ch#0) goto print_str_lines::@2 -- vbuc1_neq_vbuz1_then_la1
|
||||||
lda #'@'
|
lda #0
|
||||||
cmp ch
|
cmp ch
|
||||||
bne b2_from_b3
|
bne b2_from_b3
|
||||||
// [425] phi from print_str_lines::@3 to print_str_lines::@5 [phi:print_str_lines::@3->print_str_lines::@5]
|
// [425] phi from print_str_lines::@3 to print_str_lines::@5 [phi:print_str_lines::@3->print_str_lines::@5]
|
||||||
@ -21192,7 +21209,7 @@ Statement [286] *((const byte*) BGCOL#0) ← (byte) 0 [ form_cursor_count#1 keyb
|
|||||||
Statement [287] *((const byte*) BORDERCOL#0) ← (byte) 0 [ form_cursor_count#1 keyboard_events_size#27 form_field_idx#1 ] ( main:2::form_mode:13 [ form_cursor_count#1 keyboard_events_size#27 form_field_idx#1 ] ) always clobbers reg byte a
|
Statement [287] *((const byte*) BORDERCOL#0) ← (byte) 0 [ form_cursor_count#1 keyboard_events_size#27 form_field_idx#1 ] ( main:2::form_mode:13 [ form_cursor_count#1 keyboard_events_size#27 form_field_idx#1 ] ) always clobbers reg byte a
|
||||||
Statement [290] if(*((const byte*) RASTER#0)!=(byte) $ff) goto form_mode::@4 [ keyboard_events_size#47 form_cursor_count#21 form_field_idx#28 form_mode::preset_current#6 ] ( main:2::form_mode:13 [ keyboard_events_size#47 form_cursor_count#21 form_field_idx#28 form_mode::preset_current#6 ] ) always clobbers reg byte a
|
Statement [290] if(*((const byte*) RASTER#0)!=(byte) $ff) goto form_mode::@4 [ keyboard_events_size#47 form_cursor_count#21 form_field_idx#28 form_mode::preset_current#6 ] ( main:2::form_mode:13 [ keyboard_events_size#47 form_cursor_count#21 form_field_idx#28 form_mode::preset_current#6 ] ) always clobbers reg byte a
|
||||||
Statement [318] (byte*) print_str_at::str#1 ← (byte*) render_preset_name::name#13 [ print_str_at::str#1 ] ( main:2::form_mode:13::render_preset_name:269 [ form_cursor_count#1 keyboard_events_size#27 form_field_idx#1 print_str_at::str#1 ] main:2::form_mode:13::render_preset_name:303 [ form_cursor_count#16 keyboard_events_size#24 form_field_idx#18 form_mode::preset_current#1 print_str_at::str#1 ] ) always clobbers reg byte a
|
Statement [318] (byte*) print_str_at::str#1 ← (byte*) render_preset_name::name#13 [ print_str_at::str#1 ] ( main:2::form_mode:13::render_preset_name:269 [ form_cursor_count#1 keyboard_events_size#27 form_field_idx#1 print_str_at::str#1 ] main:2::form_mode:13::render_preset_name:303 [ form_cursor_count#16 keyboard_events_size#24 form_field_idx#18 form_mode::preset_current#1 print_str_at::str#1 ] ) always clobbers reg byte a
|
||||||
Statement [323] if(*((byte*) print_str_at::str#2)!=(byte) '@') goto print_str_at::@2 [ print_str_at::str#2 print_str_at::at#2 ] ( main:2::form_mode:13::render_preset_name:269::print_str_at:319 [ form_cursor_count#1 keyboard_events_size#27 form_field_idx#1 print_str_at::str#2 print_str_at::at#2 ] main:2::form_mode:13::render_preset_name:303::print_str_at:319 [ form_cursor_count#16 keyboard_events_size#24 form_field_idx#18 form_mode::preset_current#1 print_str_at::str#2 print_str_at::at#2 ] ) always clobbers reg byte a reg byte y
|
Statement [323] if((byte) 0!=*((byte*) print_str_at::str#2)) goto print_str_at::@2 [ print_str_at::str#2 print_str_at::at#2 ] ( main:2::form_mode:13::render_preset_name:269::print_str_at:319 [ form_cursor_count#1 keyboard_events_size#27 form_field_idx#1 print_str_at::str#2 print_str_at::at#2 ] main:2::form_mode:13::render_preset_name:303::print_str_at:319 [ form_cursor_count#16 keyboard_events_size#24 form_field_idx#18 form_mode::preset_current#1 print_str_at::str#2 print_str_at::at#2 ] ) always clobbers reg byte a reg byte y
|
||||||
Removing always clobbered register reg byte y as potential for zp ZP_BYTE:33 [ form_mode::preset_current#6 form_mode::preset_current#0 form_mode::preset_current#1 ]
|
Removing always clobbered register reg byte y as potential for zp ZP_BYTE:33 [ form_mode::preset_current#6 form_mode::preset_current#0 form_mode::preset_current#1 ]
|
||||||
Statement [325] *((byte*) print_str_at::at#2) ← *((byte*) print_str_at::str#2) [ print_str_at::str#2 print_str_at::at#2 ] ( main:2::form_mode:13::render_preset_name:269::print_str_at:319 [ form_cursor_count#1 keyboard_events_size#27 form_field_idx#1 print_str_at::str#2 print_str_at::at#2 ] main:2::form_mode:13::render_preset_name:303::print_str_at:319 [ form_cursor_count#16 keyboard_events_size#24 form_field_idx#18 form_mode::preset_current#1 print_str_at::str#2 print_str_at::at#2 ] ) always clobbers reg byte a reg byte y
|
Statement [325] *((byte*) print_str_at::at#2) ← *((byte*) print_str_at::str#2) [ print_str_at::str#2 print_str_at::at#2 ] ( main:2::form_mode:13::render_preset_name:269::print_str_at:319 [ form_cursor_count#1 keyboard_events_size#27 form_field_idx#1 print_str_at::str#2 print_str_at::at#2 ] main:2::form_mode:13::render_preset_name:303::print_str_at:319 [ form_cursor_count#16 keyboard_events_size#24 form_field_idx#18 form_mode::preset_current#1 print_str_at::str#2 print_str_at::at#2 ] ) always clobbers reg byte a reg byte y
|
||||||
Statement [332] *((byte*)(word) form_field_ptr::line#0 + (byte) form_field_ptr::x#0) ← *((const byte[]) print_hextab#0 + *((const byte[]) form_fields_val#0 + (byte) form_render_values::idx#5)) [ form_render_values::idx#5 ] ( main:2::form_mode:13::form_render_values:267 [ form_cursor_count#1 keyboard_events_size#27 form_field_idx#1 form_render_values::idx#5 ] main:2::form_mode:13::form_render_values:301 [ form_cursor_count#16 keyboard_events_size#24 form_field_idx#18 form_mode::preset_current#1 form_render_values::idx#5 ] ) always clobbers reg byte a
|
Statement [332] *((byte*)(word) form_field_ptr::line#0 + (byte) form_field_ptr::x#0) ← *((const byte[]) print_hextab#0 + *((const byte[]) form_fields_val#0 + (byte) form_render_values::idx#5)) [ form_render_values::idx#5 ] ( main:2::form_mode:13::form_render_values:267 [ form_cursor_count#1 keyboard_events_size#27 form_field_idx#1 form_render_values::idx#5 ] main:2::form_mode:13::form_render_values:301 [ form_cursor_count#16 keyboard_events_size#24 form_field_idx#18 form_mode::preset_current#1 form_render_values::idx#5 ] ) always clobbers reg byte a
|
||||||
@ -21217,7 +21234,7 @@ Statement [401] *((byte*)(word) form_field_ptr::line#0 + (byte) form_field_ptr::
|
|||||||
Statement [408] (byte*) form_set_screen::line#1 ← (byte*) form_set_screen::line#2 + (byte) $28 [ form_set_screen::y#2 form_set_screen::line#1 ] ( main:2::form_mode:13::form_set_screen:265 [ form_cursor_count#1 keyboard_events_size#27 form_field_idx#1 form_set_screen::y#2 form_set_screen::line#1 ] ) always clobbers reg byte a
|
Statement [408] (byte*) form_set_screen::line#1 ← (byte*) form_set_screen::line#2 + (byte) $28 [ form_set_screen::y#2 form_set_screen::line#1 ] ( main:2::form_mode:13::form_set_screen:265 [ form_cursor_count#1 keyboard_events_size#27 form_field_idx#1 form_set_screen::y#2 form_set_screen::line#1 ] ) always clobbers reg byte a
|
||||||
Removing always clobbered register reg byte a as potential for zp ZP_BYTE:49 [ form_set_screen::y#2 form_set_screen::y#1 ]
|
Removing always clobbered register reg byte a as potential for zp ZP_BYTE:49 [ form_set_screen::y#2 form_set_screen::y#1 ]
|
||||||
Statement [413] (byte*~) print_char_cursor#73 ← (byte*) print_set_screen::screen#2 [ print_str_lines::str#5 print_char_cursor#73 print_set_screen::screen#2 ] ( main:2::form_mode:13::print_str_lines:257 [ form_cursor_count#1 keyboard_events_size#27 form_field_idx#1 print_str_lines::str#5 print_char_cursor#73 print_set_screen::screen#2 ] main:2::form_mode:13::print_str_lines:263 [ form_cursor_count#1 keyboard_events_size#27 form_field_idx#1 print_str_lines::str#5 print_char_cursor#73 print_set_screen::screen#2 ] ) always clobbers reg byte a
|
Statement [413] (byte*~) print_char_cursor#73 ← (byte*) print_set_screen::screen#2 [ print_str_lines::str#5 print_char_cursor#73 print_set_screen::screen#2 ] ( main:2::form_mode:13::print_str_lines:257 [ form_cursor_count#1 keyboard_events_size#27 form_field_idx#1 print_str_lines::str#5 print_char_cursor#73 print_set_screen::screen#2 ] main:2::form_mode:13::print_str_lines:263 [ form_cursor_count#1 keyboard_events_size#27 form_field_idx#1 print_str_lines::str#5 print_char_cursor#73 print_set_screen::screen#2 ] ) always clobbers reg byte a
|
||||||
Statement [415] if(*((byte*) print_str_lines::str#3)!=(byte) '@') goto print_str_lines::@2 [ print_str_lines::str#3 print_char_cursor#22 print_line_cursor#2 ] ( main:2::form_mode:13::print_str_lines:257 [ form_cursor_count#1 keyboard_events_size#27 form_field_idx#1 print_str_lines::str#3 print_char_cursor#22 print_line_cursor#2 ] main:2::form_mode:13::print_str_lines:263 [ form_cursor_count#1 keyboard_events_size#27 form_field_idx#1 print_str_lines::str#3 print_char_cursor#22 print_line_cursor#2 ] ) always clobbers reg byte a reg byte y
|
Statement [415] if((byte) 0!=*((byte*) print_str_lines::str#3)) goto print_str_lines::@2 [ print_str_lines::str#3 print_char_cursor#22 print_line_cursor#2 ] ( main:2::form_mode:13::print_str_lines:257 [ form_cursor_count#1 keyboard_events_size#27 form_field_idx#1 print_str_lines::str#3 print_char_cursor#22 print_line_cursor#2 ] main:2::form_mode:13::print_str_lines:263 [ form_cursor_count#1 keyboard_events_size#27 form_field_idx#1 print_str_lines::str#3 print_char_cursor#22 print_line_cursor#2 ] ) always clobbers reg byte a reg byte y
|
||||||
Statement [418] (byte) print_str_lines::ch#0 ← *((byte*) print_str_lines::str#4) [ print_line_cursor#2 print_str_lines::str#4 print_char_cursor#20 print_str_lines::ch#0 ] ( main:2::form_mode:13::print_str_lines:257 [ form_cursor_count#1 keyboard_events_size#27 form_field_idx#1 print_line_cursor#2 print_str_lines::str#4 print_char_cursor#20 print_str_lines::ch#0 ] main:2::form_mode:13::print_str_lines:263 [ form_cursor_count#1 keyboard_events_size#27 form_field_idx#1 print_line_cursor#2 print_str_lines::str#4 print_char_cursor#20 print_str_lines::ch#0 ] ) always clobbers reg byte a reg byte y
|
Statement [418] (byte) print_str_lines::ch#0 ← *((byte*) print_str_lines::str#4) [ print_line_cursor#2 print_str_lines::str#4 print_char_cursor#20 print_str_lines::ch#0 ] ( main:2::form_mode:13::print_str_lines:257 [ form_cursor_count#1 keyboard_events_size#27 form_field_idx#1 print_line_cursor#2 print_str_lines::str#4 print_char_cursor#20 print_str_lines::ch#0 ] main:2::form_mode:13::print_str_lines:263 [ form_cursor_count#1 keyboard_events_size#27 form_field_idx#1 print_line_cursor#2 print_str_lines::str#4 print_char_cursor#20 print_str_lines::ch#0 ] ) always clobbers reg byte a reg byte y
|
||||||
Statement [421] *((byte*) print_char_cursor#20) ← (byte) print_str_lines::ch#0 [ print_line_cursor#2 print_str_lines::str#0 print_char_cursor#20 print_str_lines::ch#0 ] ( main:2::form_mode:13::print_str_lines:257 [ form_cursor_count#1 keyboard_events_size#27 form_field_idx#1 print_line_cursor#2 print_str_lines::str#0 print_char_cursor#20 print_str_lines::ch#0 ] main:2::form_mode:13::print_str_lines:263 [ form_cursor_count#1 keyboard_events_size#27 form_field_idx#1 print_line_cursor#2 print_str_lines::str#0 print_char_cursor#20 print_str_lines::ch#0 ] ) always clobbers reg byte y
|
Statement [421] *((byte*) print_char_cursor#20) ← (byte) print_str_lines::ch#0 [ print_line_cursor#2 print_str_lines::str#0 print_char_cursor#20 print_str_lines::ch#0 ] ( main:2::form_mode:13::print_str_lines:257 [ form_cursor_count#1 keyboard_events_size#27 form_field_idx#1 print_line_cursor#2 print_str_lines::str#0 print_char_cursor#20 print_str_lines::ch#0 ] main:2::form_mode:13::print_str_lines:263 [ form_cursor_count#1 keyboard_events_size#27 form_field_idx#1 print_line_cursor#2 print_str_lines::str#0 print_char_cursor#20 print_str_lines::ch#0 ] ) always clobbers reg byte y
|
||||||
Removing always clobbered register reg byte y as potential for zp ZP_BYTE:275 [ print_str_lines::ch#0 ]
|
Removing always clobbered register reg byte y as potential for zp ZP_BYTE:275 [ print_str_lines::ch#0 ]
|
||||||
@ -21529,7 +21546,7 @@ Statement [286] *((const byte*) BGCOL#0) ← (byte) 0 [ form_cursor_count#1 keyb
|
|||||||
Statement [287] *((const byte*) BORDERCOL#0) ← (byte) 0 [ form_cursor_count#1 keyboard_events_size#27 form_field_idx#1 ] ( main:2::form_mode:13 [ form_cursor_count#1 keyboard_events_size#27 form_field_idx#1 ] ) always clobbers reg byte a
|
Statement [287] *((const byte*) BORDERCOL#0) ← (byte) 0 [ form_cursor_count#1 keyboard_events_size#27 form_field_idx#1 ] ( main:2::form_mode:13 [ form_cursor_count#1 keyboard_events_size#27 form_field_idx#1 ] ) always clobbers reg byte a
|
||||||
Statement [290] if(*((const byte*) RASTER#0)!=(byte) $ff) goto form_mode::@4 [ keyboard_events_size#47 form_cursor_count#21 form_field_idx#28 form_mode::preset_current#6 ] ( main:2::form_mode:13 [ keyboard_events_size#47 form_cursor_count#21 form_field_idx#28 form_mode::preset_current#6 ] ) always clobbers reg byte a
|
Statement [290] if(*((const byte*) RASTER#0)!=(byte) $ff) goto form_mode::@4 [ keyboard_events_size#47 form_cursor_count#21 form_field_idx#28 form_mode::preset_current#6 ] ( main:2::form_mode:13 [ keyboard_events_size#47 form_cursor_count#21 form_field_idx#28 form_mode::preset_current#6 ] ) always clobbers reg byte a
|
||||||
Statement [318] (byte*) print_str_at::str#1 ← (byte*) render_preset_name::name#13 [ print_str_at::str#1 ] ( main:2::form_mode:13::render_preset_name:269 [ form_cursor_count#1 keyboard_events_size#27 form_field_idx#1 print_str_at::str#1 ] main:2::form_mode:13::render_preset_name:303 [ form_cursor_count#16 keyboard_events_size#24 form_field_idx#18 form_mode::preset_current#1 print_str_at::str#1 ] ) always clobbers reg byte a
|
Statement [318] (byte*) print_str_at::str#1 ← (byte*) render_preset_name::name#13 [ print_str_at::str#1 ] ( main:2::form_mode:13::render_preset_name:269 [ form_cursor_count#1 keyboard_events_size#27 form_field_idx#1 print_str_at::str#1 ] main:2::form_mode:13::render_preset_name:303 [ form_cursor_count#16 keyboard_events_size#24 form_field_idx#18 form_mode::preset_current#1 print_str_at::str#1 ] ) always clobbers reg byte a
|
||||||
Statement [323] if(*((byte*) print_str_at::str#2)!=(byte) '@') goto print_str_at::@2 [ print_str_at::str#2 print_str_at::at#2 ] ( main:2::form_mode:13::render_preset_name:269::print_str_at:319 [ form_cursor_count#1 keyboard_events_size#27 form_field_idx#1 print_str_at::str#2 print_str_at::at#2 ] main:2::form_mode:13::render_preset_name:303::print_str_at:319 [ form_cursor_count#16 keyboard_events_size#24 form_field_idx#18 form_mode::preset_current#1 print_str_at::str#2 print_str_at::at#2 ] ) always clobbers reg byte a reg byte y
|
Statement [323] if((byte) 0!=*((byte*) print_str_at::str#2)) goto print_str_at::@2 [ print_str_at::str#2 print_str_at::at#2 ] ( main:2::form_mode:13::render_preset_name:269::print_str_at:319 [ form_cursor_count#1 keyboard_events_size#27 form_field_idx#1 print_str_at::str#2 print_str_at::at#2 ] main:2::form_mode:13::render_preset_name:303::print_str_at:319 [ form_cursor_count#16 keyboard_events_size#24 form_field_idx#18 form_mode::preset_current#1 print_str_at::str#2 print_str_at::at#2 ] ) always clobbers reg byte a reg byte y
|
||||||
Statement [325] *((byte*) print_str_at::at#2) ← *((byte*) print_str_at::str#2) [ print_str_at::str#2 print_str_at::at#2 ] ( main:2::form_mode:13::render_preset_name:269::print_str_at:319 [ form_cursor_count#1 keyboard_events_size#27 form_field_idx#1 print_str_at::str#2 print_str_at::at#2 ] main:2::form_mode:13::render_preset_name:303::print_str_at:319 [ form_cursor_count#16 keyboard_events_size#24 form_field_idx#18 form_mode::preset_current#1 print_str_at::str#2 print_str_at::at#2 ] ) always clobbers reg byte a reg byte y
|
Statement [325] *((byte*) print_str_at::at#2) ← *((byte*) print_str_at::str#2) [ print_str_at::str#2 print_str_at::at#2 ] ( main:2::form_mode:13::render_preset_name:269::print_str_at:319 [ form_cursor_count#1 keyboard_events_size#27 form_field_idx#1 print_str_at::str#2 print_str_at::at#2 ] main:2::form_mode:13::render_preset_name:303::print_str_at:319 [ form_cursor_count#16 keyboard_events_size#24 form_field_idx#18 form_mode::preset_current#1 print_str_at::str#2 print_str_at::at#2 ] ) always clobbers reg byte a reg byte y
|
||||||
Statement [332] *((byte*)(word) form_field_ptr::line#0 + (byte) form_field_ptr::x#0) ← *((const byte[]) print_hextab#0 + *((const byte[]) form_fields_val#0 + (byte) form_render_values::idx#5)) [ form_render_values::idx#5 ] ( main:2::form_mode:13::form_render_values:267 [ form_cursor_count#1 keyboard_events_size#27 form_field_idx#1 form_render_values::idx#5 ] main:2::form_mode:13::form_render_values:301 [ form_cursor_count#16 keyboard_events_size#24 form_field_idx#18 form_mode::preset_current#1 form_render_values::idx#5 ] ) always clobbers reg byte a reg byte y
|
Statement [332] *((byte*)(word) form_field_ptr::line#0 + (byte) form_field_ptr::x#0) ← *((const byte[]) print_hextab#0 + *((const byte[]) form_fields_val#0 + (byte) form_render_values::idx#5)) [ form_render_values::idx#5 ] ( main:2::form_mode:13::form_render_values:267 [ form_cursor_count#1 keyboard_events_size#27 form_field_idx#1 form_render_values::idx#5 ] main:2::form_mode:13::form_render_values:301 [ form_cursor_count#16 keyboard_events_size#24 form_field_idx#18 form_mode::preset_current#1 form_render_values::idx#5 ] ) always clobbers reg byte a reg byte y
|
||||||
Removing always clobbered register reg byte y as potential for zp ZP_BYTE:41 [ form_render_values::idx#5 form_render_values::idx#1 ]
|
Removing always clobbered register reg byte y as potential for zp ZP_BYTE:41 [ form_render_values::idx#5 form_render_values::idx#1 ]
|
||||||
@ -21552,7 +21569,7 @@ Statement [400] (byte~) form_control::$14 ← *((byte*)(word) form_field_ptr::li
|
|||||||
Statement [401] *((byte*)(word) form_field_ptr::line#0 + (byte) form_field_ptr::x#0) ← (byte~) form_control::$14 [ keyboard_events_size#47 form_field_idx#28 form_field_ptr::line#0 form_field_ptr::x#0 form_cursor_count#15 ] ( main:2::form_mode:13::form_control:292 [ form_mode::preset_current#6 keyboard_events_size#47 form_field_idx#28 form_field_ptr::line#0 form_field_ptr::x#0 form_cursor_count#15 ] ) always clobbers reg byte y
|
Statement [401] *((byte*)(word) form_field_ptr::line#0 + (byte) form_field_ptr::x#0) ← (byte~) form_control::$14 [ keyboard_events_size#47 form_field_idx#28 form_field_ptr::line#0 form_field_ptr::x#0 form_cursor_count#15 ] ( main:2::form_mode:13::form_control:292 [ form_mode::preset_current#6 keyboard_events_size#47 form_field_idx#28 form_field_ptr::line#0 form_field_ptr::x#0 form_cursor_count#15 ] ) always clobbers reg byte y
|
||||||
Statement [408] (byte*) form_set_screen::line#1 ← (byte*) form_set_screen::line#2 + (byte) $28 [ form_set_screen::y#2 form_set_screen::line#1 ] ( main:2::form_mode:13::form_set_screen:265 [ form_cursor_count#1 keyboard_events_size#27 form_field_idx#1 form_set_screen::y#2 form_set_screen::line#1 ] ) always clobbers reg byte a
|
Statement [408] (byte*) form_set_screen::line#1 ← (byte*) form_set_screen::line#2 + (byte) $28 [ form_set_screen::y#2 form_set_screen::line#1 ] ( main:2::form_mode:13::form_set_screen:265 [ form_cursor_count#1 keyboard_events_size#27 form_field_idx#1 form_set_screen::y#2 form_set_screen::line#1 ] ) always clobbers reg byte a
|
||||||
Statement [413] (byte*~) print_char_cursor#73 ← (byte*) print_set_screen::screen#2 [ print_str_lines::str#5 print_char_cursor#73 print_set_screen::screen#2 ] ( main:2::form_mode:13::print_str_lines:257 [ form_cursor_count#1 keyboard_events_size#27 form_field_idx#1 print_str_lines::str#5 print_char_cursor#73 print_set_screen::screen#2 ] main:2::form_mode:13::print_str_lines:263 [ form_cursor_count#1 keyboard_events_size#27 form_field_idx#1 print_str_lines::str#5 print_char_cursor#73 print_set_screen::screen#2 ] ) always clobbers reg byte a
|
Statement [413] (byte*~) print_char_cursor#73 ← (byte*) print_set_screen::screen#2 [ print_str_lines::str#5 print_char_cursor#73 print_set_screen::screen#2 ] ( main:2::form_mode:13::print_str_lines:257 [ form_cursor_count#1 keyboard_events_size#27 form_field_idx#1 print_str_lines::str#5 print_char_cursor#73 print_set_screen::screen#2 ] main:2::form_mode:13::print_str_lines:263 [ form_cursor_count#1 keyboard_events_size#27 form_field_idx#1 print_str_lines::str#5 print_char_cursor#73 print_set_screen::screen#2 ] ) always clobbers reg byte a
|
||||||
Statement [415] if(*((byte*) print_str_lines::str#3)!=(byte) '@') goto print_str_lines::@2 [ print_str_lines::str#3 print_char_cursor#22 print_line_cursor#2 ] ( main:2::form_mode:13::print_str_lines:257 [ form_cursor_count#1 keyboard_events_size#27 form_field_idx#1 print_str_lines::str#3 print_char_cursor#22 print_line_cursor#2 ] main:2::form_mode:13::print_str_lines:263 [ form_cursor_count#1 keyboard_events_size#27 form_field_idx#1 print_str_lines::str#3 print_char_cursor#22 print_line_cursor#2 ] ) always clobbers reg byte a reg byte y
|
Statement [415] if((byte) 0!=*((byte*) print_str_lines::str#3)) goto print_str_lines::@2 [ print_str_lines::str#3 print_char_cursor#22 print_line_cursor#2 ] ( main:2::form_mode:13::print_str_lines:257 [ form_cursor_count#1 keyboard_events_size#27 form_field_idx#1 print_str_lines::str#3 print_char_cursor#22 print_line_cursor#2 ] main:2::form_mode:13::print_str_lines:263 [ form_cursor_count#1 keyboard_events_size#27 form_field_idx#1 print_str_lines::str#3 print_char_cursor#22 print_line_cursor#2 ] ) always clobbers reg byte a reg byte y
|
||||||
Statement [418] (byte) print_str_lines::ch#0 ← *((byte*) print_str_lines::str#4) [ print_line_cursor#2 print_str_lines::str#4 print_char_cursor#20 print_str_lines::ch#0 ] ( main:2::form_mode:13::print_str_lines:257 [ form_cursor_count#1 keyboard_events_size#27 form_field_idx#1 print_line_cursor#2 print_str_lines::str#4 print_char_cursor#20 print_str_lines::ch#0 ] main:2::form_mode:13::print_str_lines:263 [ form_cursor_count#1 keyboard_events_size#27 form_field_idx#1 print_line_cursor#2 print_str_lines::str#4 print_char_cursor#20 print_str_lines::ch#0 ] ) always clobbers reg byte a reg byte y
|
Statement [418] (byte) print_str_lines::ch#0 ← *((byte*) print_str_lines::str#4) [ print_line_cursor#2 print_str_lines::str#4 print_char_cursor#20 print_str_lines::ch#0 ] ( main:2::form_mode:13::print_str_lines:257 [ form_cursor_count#1 keyboard_events_size#27 form_field_idx#1 print_line_cursor#2 print_str_lines::str#4 print_char_cursor#20 print_str_lines::ch#0 ] main:2::form_mode:13::print_str_lines:263 [ form_cursor_count#1 keyboard_events_size#27 form_field_idx#1 print_line_cursor#2 print_str_lines::str#4 print_char_cursor#20 print_str_lines::ch#0 ] ) always clobbers reg byte a reg byte y
|
||||||
Statement [421] *((byte*) print_char_cursor#20) ← (byte) print_str_lines::ch#0 [ print_line_cursor#2 print_str_lines::str#0 print_char_cursor#20 print_str_lines::ch#0 ] ( main:2::form_mode:13::print_str_lines:257 [ form_cursor_count#1 keyboard_events_size#27 form_field_idx#1 print_line_cursor#2 print_str_lines::str#0 print_char_cursor#20 print_str_lines::ch#0 ] main:2::form_mode:13::print_str_lines:263 [ form_cursor_count#1 keyboard_events_size#27 form_field_idx#1 print_line_cursor#2 print_str_lines::str#0 print_char_cursor#20 print_str_lines::ch#0 ] ) always clobbers reg byte y
|
Statement [421] *((byte*) print_char_cursor#20) ← (byte) print_str_lines::ch#0 [ print_line_cursor#2 print_str_lines::str#0 print_char_cursor#20 print_str_lines::ch#0 ] ( main:2::form_mode:13::print_str_lines:257 [ form_cursor_count#1 keyboard_events_size#27 form_field_idx#1 print_line_cursor#2 print_str_lines::str#0 print_char_cursor#20 print_str_lines::ch#0 ] main:2::form_mode:13::print_str_lines:263 [ form_cursor_count#1 keyboard_events_size#27 form_field_idx#1 print_line_cursor#2 print_str_lines::str#0 print_char_cursor#20 print_str_lines::ch#0 ] ) always clobbers reg byte y
|
||||||
Statement [427] (byte*~) print_char_cursor#74 ← (byte*) print_line_cursor#22 [ print_str_lines::str#0 print_char_cursor#74 print_line_cursor#22 ] ( main:2::form_mode:13::print_str_lines:257 [ form_cursor_count#1 keyboard_events_size#27 form_field_idx#1 print_str_lines::str#0 print_char_cursor#74 print_line_cursor#22 ] main:2::form_mode:13::print_str_lines:263 [ form_cursor_count#1 keyboard_events_size#27 form_field_idx#1 print_str_lines::str#0 print_char_cursor#74 print_line_cursor#22 ] ) always clobbers reg byte a
|
Statement [427] (byte*~) print_char_cursor#74 ← (byte*) print_line_cursor#22 [ print_str_lines::str#0 print_char_cursor#74 print_line_cursor#22 ] ( main:2::form_mode:13::print_str_lines:257 [ form_cursor_count#1 keyboard_events_size#27 form_field_idx#1 print_str_lines::str#0 print_char_cursor#74 print_line_cursor#22 ] main:2::form_mode:13::print_str_lines:263 [ form_cursor_count#1 keyboard_events_size#27 form_field_idx#1 print_str_lines::str#0 print_char_cursor#74 print_line_cursor#22 ] ) always clobbers reg byte a
|
||||||
@ -21745,7 +21762,7 @@ Statement [286] *((const byte*) BGCOL#0) ← (byte) 0 [ form_cursor_count#1 keyb
|
|||||||
Statement [287] *((const byte*) BORDERCOL#0) ← (byte) 0 [ form_cursor_count#1 keyboard_events_size#27 form_field_idx#1 ] ( main:2::form_mode:13 [ form_cursor_count#1 keyboard_events_size#27 form_field_idx#1 ] ) always clobbers reg byte a
|
Statement [287] *((const byte*) BORDERCOL#0) ← (byte) 0 [ form_cursor_count#1 keyboard_events_size#27 form_field_idx#1 ] ( main:2::form_mode:13 [ form_cursor_count#1 keyboard_events_size#27 form_field_idx#1 ] ) always clobbers reg byte a
|
||||||
Statement [290] if(*((const byte*) RASTER#0)!=(byte) $ff) goto form_mode::@4 [ keyboard_events_size#47 form_cursor_count#21 form_field_idx#28 form_mode::preset_current#6 ] ( main:2::form_mode:13 [ keyboard_events_size#47 form_cursor_count#21 form_field_idx#28 form_mode::preset_current#6 ] ) always clobbers reg byte a
|
Statement [290] if(*((const byte*) RASTER#0)!=(byte) $ff) goto form_mode::@4 [ keyboard_events_size#47 form_cursor_count#21 form_field_idx#28 form_mode::preset_current#6 ] ( main:2::form_mode:13 [ keyboard_events_size#47 form_cursor_count#21 form_field_idx#28 form_mode::preset_current#6 ] ) always clobbers reg byte a
|
||||||
Statement [318] (byte*) print_str_at::str#1 ← (byte*) render_preset_name::name#13 [ print_str_at::str#1 ] ( main:2::form_mode:13::render_preset_name:269 [ form_cursor_count#1 keyboard_events_size#27 form_field_idx#1 print_str_at::str#1 ] main:2::form_mode:13::render_preset_name:303 [ form_cursor_count#16 keyboard_events_size#24 form_field_idx#18 form_mode::preset_current#1 print_str_at::str#1 ] ) always clobbers reg byte a
|
Statement [318] (byte*) print_str_at::str#1 ← (byte*) render_preset_name::name#13 [ print_str_at::str#1 ] ( main:2::form_mode:13::render_preset_name:269 [ form_cursor_count#1 keyboard_events_size#27 form_field_idx#1 print_str_at::str#1 ] main:2::form_mode:13::render_preset_name:303 [ form_cursor_count#16 keyboard_events_size#24 form_field_idx#18 form_mode::preset_current#1 print_str_at::str#1 ] ) always clobbers reg byte a
|
||||||
Statement [323] if(*((byte*) print_str_at::str#2)!=(byte) '@') goto print_str_at::@2 [ print_str_at::str#2 print_str_at::at#2 ] ( main:2::form_mode:13::render_preset_name:269::print_str_at:319 [ form_cursor_count#1 keyboard_events_size#27 form_field_idx#1 print_str_at::str#2 print_str_at::at#2 ] main:2::form_mode:13::render_preset_name:303::print_str_at:319 [ form_cursor_count#16 keyboard_events_size#24 form_field_idx#18 form_mode::preset_current#1 print_str_at::str#2 print_str_at::at#2 ] ) always clobbers reg byte a reg byte y
|
Statement [323] if((byte) 0!=*((byte*) print_str_at::str#2)) goto print_str_at::@2 [ print_str_at::str#2 print_str_at::at#2 ] ( main:2::form_mode:13::render_preset_name:269::print_str_at:319 [ form_cursor_count#1 keyboard_events_size#27 form_field_idx#1 print_str_at::str#2 print_str_at::at#2 ] main:2::form_mode:13::render_preset_name:303::print_str_at:319 [ form_cursor_count#16 keyboard_events_size#24 form_field_idx#18 form_mode::preset_current#1 print_str_at::str#2 print_str_at::at#2 ] ) always clobbers reg byte a reg byte y
|
||||||
Statement [325] *((byte*) print_str_at::at#2) ← *((byte*) print_str_at::str#2) [ print_str_at::str#2 print_str_at::at#2 ] ( main:2::form_mode:13::render_preset_name:269::print_str_at:319 [ form_cursor_count#1 keyboard_events_size#27 form_field_idx#1 print_str_at::str#2 print_str_at::at#2 ] main:2::form_mode:13::render_preset_name:303::print_str_at:319 [ form_cursor_count#16 keyboard_events_size#24 form_field_idx#18 form_mode::preset_current#1 print_str_at::str#2 print_str_at::at#2 ] ) always clobbers reg byte a reg byte y
|
Statement [325] *((byte*) print_str_at::at#2) ← *((byte*) print_str_at::str#2) [ print_str_at::str#2 print_str_at::at#2 ] ( main:2::form_mode:13::render_preset_name:269::print_str_at:319 [ form_cursor_count#1 keyboard_events_size#27 form_field_idx#1 print_str_at::str#2 print_str_at::at#2 ] main:2::form_mode:13::render_preset_name:303::print_str_at:319 [ form_cursor_count#16 keyboard_events_size#24 form_field_idx#18 form_mode::preset_current#1 print_str_at::str#2 print_str_at::at#2 ] ) always clobbers reg byte a reg byte y
|
||||||
Statement [332] *((byte*)(word) form_field_ptr::line#0 + (byte) form_field_ptr::x#0) ← *((const byte[]) print_hextab#0 + *((const byte[]) form_fields_val#0 + (byte) form_render_values::idx#5)) [ form_render_values::idx#5 ] ( main:2::form_mode:13::form_render_values:267 [ form_cursor_count#1 keyboard_events_size#27 form_field_idx#1 form_render_values::idx#5 ] main:2::form_mode:13::form_render_values:301 [ form_cursor_count#16 keyboard_events_size#24 form_field_idx#18 form_mode::preset_current#1 form_render_values::idx#5 ] ) always clobbers reg byte a reg byte y
|
Statement [332] *((byte*)(word) form_field_ptr::line#0 + (byte) form_field_ptr::x#0) ← *((const byte[]) print_hextab#0 + *((const byte[]) form_fields_val#0 + (byte) form_render_values::idx#5)) [ form_render_values::idx#5 ] ( main:2::form_mode:13::form_render_values:267 [ form_cursor_count#1 keyboard_events_size#27 form_field_idx#1 form_render_values::idx#5 ] main:2::form_mode:13::form_render_values:301 [ form_cursor_count#16 keyboard_events_size#24 form_field_idx#18 form_mode::preset_current#1 form_render_values::idx#5 ] ) always clobbers reg byte a reg byte y
|
||||||
Statement [338] (word) form_field_ptr::line#0 ← *((const byte[$19]) form_line_hi#0 + (byte) form_field_ptr::y#0) w= *((const byte[$19]) form_line_lo#0 + (byte) form_field_ptr::y#0) [ form_field_ptr::line#0 form_field_ptr::field_idx#2 ] ( main:2::form_mode:13::form_render_values:267::form_field_ptr:331 [ form_cursor_count#1 keyboard_events_size#27 form_field_idx#1 form_render_values::idx#5 form_field_ptr::line#0 form_field_ptr::field_idx#2 ] main:2::form_mode:13::form_render_values:301::form_field_ptr:331 [ form_cursor_count#16 keyboard_events_size#24 form_field_idx#18 form_mode::preset_current#1 form_render_values::idx#5 form_field_ptr::line#0 form_field_ptr::field_idx#2 ] main:2::form_mode:13::form_control:292::form_field_ptr:360 [ form_mode::preset_current#6 keyboard_events_size#47 form_cursor_count#21 form_field_idx#28 form_field_ptr::line#0 form_field_ptr::field_idx#2 ] ) always clobbers reg byte a
|
Statement [338] (word) form_field_ptr::line#0 ← *((const byte[$19]) form_line_hi#0 + (byte) form_field_ptr::y#0) w= *((const byte[$19]) form_line_lo#0 + (byte) form_field_ptr::y#0) [ form_field_ptr::line#0 form_field_ptr::field_idx#2 ] ( main:2::form_mode:13::form_render_values:267::form_field_ptr:331 [ form_cursor_count#1 keyboard_events_size#27 form_field_idx#1 form_render_values::idx#5 form_field_ptr::line#0 form_field_ptr::field_idx#2 ] main:2::form_mode:13::form_render_values:301::form_field_ptr:331 [ form_cursor_count#16 keyboard_events_size#24 form_field_idx#18 form_mode::preset_current#1 form_render_values::idx#5 form_field_ptr::line#0 form_field_ptr::field_idx#2 ] main:2::form_mode:13::form_control:292::form_field_ptr:360 [ form_mode::preset_current#6 keyboard_events_size#47 form_cursor_count#21 form_field_idx#28 form_field_ptr::line#0 form_field_ptr::field_idx#2 ] ) always clobbers reg byte a
|
||||||
@ -21766,7 +21783,7 @@ Statement [400] (byte~) form_control::$14 ← *((byte*)(word) form_field_ptr::li
|
|||||||
Statement [401] *((byte*)(word) form_field_ptr::line#0 + (byte) form_field_ptr::x#0) ← (byte~) form_control::$14 [ keyboard_events_size#47 form_field_idx#28 form_field_ptr::line#0 form_field_ptr::x#0 form_cursor_count#15 ] ( main:2::form_mode:13::form_control:292 [ form_mode::preset_current#6 keyboard_events_size#47 form_field_idx#28 form_field_ptr::line#0 form_field_ptr::x#0 form_cursor_count#15 ] ) always clobbers reg byte y
|
Statement [401] *((byte*)(word) form_field_ptr::line#0 + (byte) form_field_ptr::x#0) ← (byte~) form_control::$14 [ keyboard_events_size#47 form_field_idx#28 form_field_ptr::line#0 form_field_ptr::x#0 form_cursor_count#15 ] ( main:2::form_mode:13::form_control:292 [ form_mode::preset_current#6 keyboard_events_size#47 form_field_idx#28 form_field_ptr::line#0 form_field_ptr::x#0 form_cursor_count#15 ] ) always clobbers reg byte y
|
||||||
Statement [408] (byte*) form_set_screen::line#1 ← (byte*) form_set_screen::line#2 + (byte) $28 [ form_set_screen::y#2 form_set_screen::line#1 ] ( main:2::form_mode:13::form_set_screen:265 [ form_cursor_count#1 keyboard_events_size#27 form_field_idx#1 form_set_screen::y#2 form_set_screen::line#1 ] ) always clobbers reg byte a
|
Statement [408] (byte*) form_set_screen::line#1 ← (byte*) form_set_screen::line#2 + (byte) $28 [ form_set_screen::y#2 form_set_screen::line#1 ] ( main:2::form_mode:13::form_set_screen:265 [ form_cursor_count#1 keyboard_events_size#27 form_field_idx#1 form_set_screen::y#2 form_set_screen::line#1 ] ) always clobbers reg byte a
|
||||||
Statement [413] (byte*~) print_char_cursor#73 ← (byte*) print_set_screen::screen#2 [ print_str_lines::str#5 print_char_cursor#73 print_set_screen::screen#2 ] ( main:2::form_mode:13::print_str_lines:257 [ form_cursor_count#1 keyboard_events_size#27 form_field_idx#1 print_str_lines::str#5 print_char_cursor#73 print_set_screen::screen#2 ] main:2::form_mode:13::print_str_lines:263 [ form_cursor_count#1 keyboard_events_size#27 form_field_idx#1 print_str_lines::str#5 print_char_cursor#73 print_set_screen::screen#2 ] ) always clobbers reg byte a
|
Statement [413] (byte*~) print_char_cursor#73 ← (byte*) print_set_screen::screen#2 [ print_str_lines::str#5 print_char_cursor#73 print_set_screen::screen#2 ] ( main:2::form_mode:13::print_str_lines:257 [ form_cursor_count#1 keyboard_events_size#27 form_field_idx#1 print_str_lines::str#5 print_char_cursor#73 print_set_screen::screen#2 ] main:2::form_mode:13::print_str_lines:263 [ form_cursor_count#1 keyboard_events_size#27 form_field_idx#1 print_str_lines::str#5 print_char_cursor#73 print_set_screen::screen#2 ] ) always clobbers reg byte a
|
||||||
Statement [415] if(*((byte*) print_str_lines::str#3)!=(byte) '@') goto print_str_lines::@2 [ print_str_lines::str#3 print_char_cursor#22 print_line_cursor#2 ] ( main:2::form_mode:13::print_str_lines:257 [ form_cursor_count#1 keyboard_events_size#27 form_field_idx#1 print_str_lines::str#3 print_char_cursor#22 print_line_cursor#2 ] main:2::form_mode:13::print_str_lines:263 [ form_cursor_count#1 keyboard_events_size#27 form_field_idx#1 print_str_lines::str#3 print_char_cursor#22 print_line_cursor#2 ] ) always clobbers reg byte a reg byte y
|
Statement [415] if((byte) 0!=*((byte*) print_str_lines::str#3)) goto print_str_lines::@2 [ print_str_lines::str#3 print_char_cursor#22 print_line_cursor#2 ] ( main:2::form_mode:13::print_str_lines:257 [ form_cursor_count#1 keyboard_events_size#27 form_field_idx#1 print_str_lines::str#3 print_char_cursor#22 print_line_cursor#2 ] main:2::form_mode:13::print_str_lines:263 [ form_cursor_count#1 keyboard_events_size#27 form_field_idx#1 print_str_lines::str#3 print_char_cursor#22 print_line_cursor#2 ] ) always clobbers reg byte a reg byte y
|
||||||
Statement [418] (byte) print_str_lines::ch#0 ← *((byte*) print_str_lines::str#4) [ print_line_cursor#2 print_str_lines::str#4 print_char_cursor#20 print_str_lines::ch#0 ] ( main:2::form_mode:13::print_str_lines:257 [ form_cursor_count#1 keyboard_events_size#27 form_field_idx#1 print_line_cursor#2 print_str_lines::str#4 print_char_cursor#20 print_str_lines::ch#0 ] main:2::form_mode:13::print_str_lines:263 [ form_cursor_count#1 keyboard_events_size#27 form_field_idx#1 print_line_cursor#2 print_str_lines::str#4 print_char_cursor#20 print_str_lines::ch#0 ] ) always clobbers reg byte a reg byte y
|
Statement [418] (byte) print_str_lines::ch#0 ← *((byte*) print_str_lines::str#4) [ print_line_cursor#2 print_str_lines::str#4 print_char_cursor#20 print_str_lines::ch#0 ] ( main:2::form_mode:13::print_str_lines:257 [ form_cursor_count#1 keyboard_events_size#27 form_field_idx#1 print_line_cursor#2 print_str_lines::str#4 print_char_cursor#20 print_str_lines::ch#0 ] main:2::form_mode:13::print_str_lines:263 [ form_cursor_count#1 keyboard_events_size#27 form_field_idx#1 print_line_cursor#2 print_str_lines::str#4 print_char_cursor#20 print_str_lines::ch#0 ] ) always clobbers reg byte a reg byte y
|
||||||
Statement [421] *((byte*) print_char_cursor#20) ← (byte) print_str_lines::ch#0 [ print_line_cursor#2 print_str_lines::str#0 print_char_cursor#20 print_str_lines::ch#0 ] ( main:2::form_mode:13::print_str_lines:257 [ form_cursor_count#1 keyboard_events_size#27 form_field_idx#1 print_line_cursor#2 print_str_lines::str#0 print_char_cursor#20 print_str_lines::ch#0 ] main:2::form_mode:13::print_str_lines:263 [ form_cursor_count#1 keyboard_events_size#27 form_field_idx#1 print_line_cursor#2 print_str_lines::str#0 print_char_cursor#20 print_str_lines::ch#0 ] ) always clobbers reg byte y
|
Statement [421] *((byte*) print_char_cursor#20) ← (byte) print_str_lines::ch#0 [ print_line_cursor#2 print_str_lines::str#0 print_char_cursor#20 print_str_lines::ch#0 ] ( main:2::form_mode:13::print_str_lines:257 [ form_cursor_count#1 keyboard_events_size#27 form_field_idx#1 print_line_cursor#2 print_str_lines::str#0 print_char_cursor#20 print_str_lines::ch#0 ] main:2::form_mode:13::print_str_lines:263 [ form_cursor_count#1 keyboard_events_size#27 form_field_idx#1 print_line_cursor#2 print_str_lines::str#0 print_char_cursor#20 print_str_lines::ch#0 ] ) always clobbers reg byte y
|
||||||
Statement [427] (byte*~) print_char_cursor#74 ← (byte*) print_line_cursor#22 [ print_str_lines::str#0 print_char_cursor#74 print_line_cursor#22 ] ( main:2::form_mode:13::print_str_lines:257 [ form_cursor_count#1 keyboard_events_size#27 form_field_idx#1 print_str_lines::str#0 print_char_cursor#74 print_line_cursor#22 ] main:2::form_mode:13::print_str_lines:263 [ form_cursor_count#1 keyboard_events_size#27 form_field_idx#1 print_str_lines::str#0 print_char_cursor#74 print_line_cursor#22 ] ) always clobbers reg byte a
|
Statement [427] (byte*~) print_char_cursor#74 ← (byte*) print_line_cursor#22 [ print_str_lines::str#0 print_char_cursor#74 print_line_cursor#22 ] ( main:2::form_mode:13::print_str_lines:257 [ form_cursor_count#1 keyboard_events_size#27 form_field_idx#1 print_str_lines::str#0 print_char_cursor#74 print_line_cursor#22 ] main:2::form_mode:13::print_str_lines:263 [ form_cursor_count#1 keyboard_events_size#27 form_field_idx#1 print_str_lines::str#0 print_char_cursor#74 print_line_cursor#22 ] ) always clobbers reg byte a
|
||||||
@ -24718,10 +24735,10 @@ print_str_at: {
|
|||||||
jmp b1
|
jmp b1
|
||||||
// print_str_at::@1
|
// print_str_at::@1
|
||||||
b1:
|
b1:
|
||||||
// [323] if(*((byte*) print_str_at::str#2)!=(byte) '@') goto print_str_at::@2 -- _deref_pbuz1_neq_vbuc1_then_la1
|
// [323] if((byte) 0!=*((byte*) print_str_at::str#2)) goto print_str_at::@2 -- vbuc1_neq__deref_pbuz1_then_la1
|
||||||
ldy #0
|
ldy #0
|
||||||
lda (str),y
|
lda (str),y
|
||||||
cmp #'@'
|
cmp #0
|
||||||
bne b2
|
bne b2
|
||||||
jmp breturn
|
jmp breturn
|
||||||
// print_str_at::@return
|
// print_str_at::@return
|
||||||
@ -25336,10 +25353,10 @@ print_str_lines: {
|
|||||||
jmp b1
|
jmp b1
|
||||||
// print_str_lines::@1
|
// print_str_lines::@1
|
||||||
b1:
|
b1:
|
||||||
// [415] if(*((byte*) print_str_lines::str#3)!=(byte) '@') goto print_str_lines::@2 -- _deref_pbuz1_neq_vbuc1_then_la1
|
// [415] if((byte) 0!=*((byte*) print_str_lines::str#3)) goto print_str_lines::@2 -- vbuc1_neq__deref_pbuz1_then_la1
|
||||||
ldy #0
|
ldy #0
|
||||||
lda (str),y
|
lda (str),y
|
||||||
cmp #'@'
|
cmp #0
|
||||||
bne b2_from_b1
|
bne b2_from_b1
|
||||||
jmp breturn
|
jmp breturn
|
||||||
// print_str_lines::@return
|
// print_str_lines::@return
|
||||||
@ -25362,8 +25379,8 @@ print_str_lines: {
|
|||||||
bne !+
|
bne !+
|
||||||
inc str+1
|
inc str+1
|
||||||
!:
|
!:
|
||||||
// [420] if((byte) print_str_lines::ch#0==(byte) '@') goto print_str_lines::@3 -- vbuaa_eq_vbuc1_then_la1
|
// [420] if((byte) 0==(byte) print_str_lines::ch#0) goto print_str_lines::@3 -- vbuc1_eq_vbuaa_then_la1
|
||||||
cmp #'@'
|
cmp #0
|
||||||
beq b3_from_b2
|
beq b3_from_b2
|
||||||
jmp b4
|
jmp b4
|
||||||
// print_str_lines::@4
|
// print_str_lines::@4
|
||||||
@ -25383,8 +25400,8 @@ print_str_lines: {
|
|||||||
jmp b3
|
jmp b3
|
||||||
// print_str_lines::@3
|
// print_str_lines::@3
|
||||||
b3:
|
b3:
|
||||||
// [424] if((byte) print_str_lines::ch#0!=(byte) '@') goto print_str_lines::@2 -- vbuaa_neq_vbuc1_then_la1
|
// [424] if((byte) 0!=(byte) print_str_lines::ch#0) goto print_str_lines::@2 -- vbuc1_neq_vbuaa_then_la1
|
||||||
cmp #'@'
|
cmp #0
|
||||||
bne b2_from_b3
|
bne b2_from_b3
|
||||||
// [425] phi from print_str_lines::@3 to print_str_lines::@5 [phi:print_str_lines::@3->print_str_lines::@5]
|
// [425] phi from print_str_lines::@3 to print_str_lines::@5 [phi:print_str_lines::@3->print_str_lines::@5]
|
||||||
b5_from_b3:
|
b5_from_b3:
|
||||||
@ -32469,11 +32486,11 @@ print_str_at: {
|
|||||||
// [322] phi (byte*) print_str_at::str#2 = (byte*) print_str_at::str#1 [phi:print_str_at->print_str_at::@1#1] -- register_copy
|
// [322] phi (byte*) print_str_at::str#2 = (byte*) print_str_at::str#1 [phi:print_str_at->print_str_at::@1#1] -- register_copy
|
||||||
// print_str_at::@1
|
// print_str_at::@1
|
||||||
b1:
|
b1:
|
||||||
// while(*str!='@')
|
// while(*str)
|
||||||
// [323] if(*((byte*) print_str_at::str#2)!=(byte) '@') goto print_str_at::@2 -- _deref_pbuz1_neq_vbuc1_then_la1
|
// [323] if((byte) 0!=*((byte*) print_str_at::str#2)) goto print_str_at::@2 -- vbuc1_neq__deref_pbuz1_then_la1
|
||||||
ldy #0
|
ldy #0
|
||||||
lda (str),y
|
lda (str),y
|
||||||
cmp #'@'
|
cmp #0
|
||||||
bne b2
|
bne b2
|
||||||
// print_str_at::@return
|
// print_str_at::@return
|
||||||
// }
|
// }
|
||||||
@ -33029,11 +33046,11 @@ print_str_lines: {
|
|||||||
// [414] phi (byte*) print_str_lines::str#3 = (byte*) print_str_lines::str#5 [phi:print_str_lines/print_str_lines::@6->print_str_lines::@1#2] -- register_copy
|
// [414] phi (byte*) print_str_lines::str#3 = (byte*) print_str_lines::str#5 [phi:print_str_lines/print_str_lines::@6->print_str_lines::@1#2] -- register_copy
|
||||||
// print_str_lines::@1
|
// print_str_lines::@1
|
||||||
b1:
|
b1:
|
||||||
// while(*str!='@')
|
// while(*str)
|
||||||
// [415] if(*((byte*) print_str_lines::str#3)!=(byte) '@') goto print_str_lines::@2 -- _deref_pbuz1_neq_vbuc1_then_la1
|
// [415] if((byte) 0!=*((byte*) print_str_lines::str#3)) goto print_str_lines::@2 -- vbuc1_neq__deref_pbuz1_then_la1
|
||||||
ldy #0
|
ldy #0
|
||||||
lda (str),y
|
lda (str),y
|
||||||
cmp #'@'
|
cmp #0
|
||||||
bne b2
|
bne b2
|
||||||
// print_str_lines::@return
|
// print_str_lines::@return
|
||||||
// }
|
// }
|
||||||
@ -33053,9 +33070,9 @@ print_str_lines: {
|
|||||||
bne !+
|
bne !+
|
||||||
inc str+1
|
inc str+1
|
||||||
!:
|
!:
|
||||||
// if(ch!='@')
|
// if(ch)
|
||||||
// [420] if((byte) print_str_lines::ch#0==(byte) '@') goto print_str_lines::@3 -- vbuaa_eq_vbuc1_then_la1
|
// [420] if((byte) 0==(byte) print_str_lines::ch#0) goto print_str_lines::@3 -- vbuc1_eq_vbuaa_then_la1
|
||||||
cmp #'@'
|
cmp #0
|
||||||
beq b3
|
beq b3
|
||||||
// print_str_lines::@4
|
// print_str_lines::@4
|
||||||
// *(print_char_cursor++) = ch
|
// *(print_char_cursor++) = ch
|
||||||
@ -33072,9 +33089,9 @@ print_str_lines: {
|
|||||||
// [423] phi (byte*) print_char_cursor#38 = (byte*) print_char_cursor#20 [phi:print_str_lines::@2/print_str_lines::@4->print_str_lines::@3#0] -- register_copy
|
// [423] phi (byte*) print_char_cursor#38 = (byte*) print_char_cursor#20 [phi:print_str_lines::@2/print_str_lines::@4->print_str_lines::@3#0] -- register_copy
|
||||||
// print_str_lines::@3
|
// print_str_lines::@3
|
||||||
b3:
|
b3:
|
||||||
// while (ch!='@')
|
// while (ch)
|
||||||
// [424] if((byte) print_str_lines::ch#0!=(byte) '@') goto print_str_lines::@2 -- vbuaa_neq_vbuc1_then_la1
|
// [424] if((byte) 0!=(byte) print_str_lines::ch#0) goto print_str_lines::@2 -- vbuc1_neq_vbuaa_then_la1
|
||||||
cmp #'@'
|
cmp #0
|
||||||
bne b2
|
bne b2
|
||||||
// [425] phi from print_str_lines::@3 to print_str_lines::@5 [phi:print_str_lines::@3->print_str_lines::@5]
|
// [425] phi from print_str_lines::@3 to print_str_lines::@5 [phi:print_str_lines::@3->print_str_lines::@5]
|
||||||
// print_str_lines::@5
|
// print_str_lines::@5
|
||||||
|
@ -2242,7 +2242,7 @@ print_str_lines: {
|
|||||||
b1:
|
b1:
|
||||||
ldy #0
|
ldy #0
|
||||||
lda (str),y
|
lda (str),y
|
||||||
cmp #'@'
|
cmp #0
|
||||||
bne b2
|
bne b2
|
||||||
rts
|
rts
|
||||||
b2:
|
b2:
|
||||||
@ -2252,7 +2252,7 @@ print_str_lines: {
|
|||||||
bne !+
|
bne !+
|
||||||
inc str+1
|
inc str+1
|
||||||
!:
|
!:
|
||||||
cmp #'@'
|
cmp #0
|
||||||
beq b3
|
beq b3
|
||||||
ldy #0
|
ldy #0
|
||||||
sta (print_char_cursor),y
|
sta (print_char_cursor),y
|
||||||
@ -2261,7 +2261,7 @@ print_str_lines: {
|
|||||||
inc print_char_cursor+1
|
inc print_char_cursor+1
|
||||||
!:
|
!:
|
||||||
b3:
|
b3:
|
||||||
cmp #'@'
|
cmp #0
|
||||||
bne b2
|
bne b2
|
||||||
jsr print_ln
|
jsr print_ln
|
||||||
lda print_line_cursor
|
lda print_line_cursor
|
||||||
|
@ -1507,7 +1507,7 @@ print_str_lines::@1: scope:[print_str_lines] from print_str_lines print_str_lin
|
|||||||
[865] (byte*) print_line_cursor#17 ← phi( print_str_lines/(const byte*) menu::SCREEN#0 print_str_lines::@6/(byte*) print_line_cursor#19 )
|
[865] (byte*) print_line_cursor#17 ← phi( print_str_lines/(const byte*) menu::SCREEN#0 print_str_lines::@6/(byte*) print_line_cursor#19 )
|
||||||
[865] (byte*) print_char_cursor#19 ← phi( print_str_lines/(const byte*) menu::SCREEN#0 print_str_lines::@6/(byte*~) print_char_cursor#100 )
|
[865] (byte*) print_char_cursor#19 ← phi( print_str_lines/(const byte*) menu::SCREEN#0 print_str_lines::@6/(byte*~) print_char_cursor#100 )
|
||||||
[865] (byte*) print_str_lines::str#2 ← phi( print_str_lines/(const byte[]) MENU_TEXT#0 print_str_lines::@6/(byte*) print_str_lines::str#0 )
|
[865] (byte*) print_str_lines::str#2 ← phi( print_str_lines/(const byte[]) MENU_TEXT#0 print_str_lines::@6/(byte*) print_str_lines::str#0 )
|
||||||
[866] if(*((byte*) print_str_lines::str#2)!=(byte) '@') goto print_str_lines::@2
|
[866] if((byte) 0!=*((byte*) print_str_lines::str#2)) goto print_str_lines::@2
|
||||||
to:print_str_lines::@return
|
to:print_str_lines::@return
|
||||||
print_str_lines::@return: scope:[print_str_lines] from print_str_lines::@1
|
print_str_lines::@return: scope:[print_str_lines] from print_str_lines::@1
|
||||||
[867] return
|
[867] return
|
||||||
@ -1517,7 +1517,7 @@ print_str_lines::@2: scope:[print_str_lines] from print_str_lines::@1 print_str
|
|||||||
[868] (byte*) print_str_lines::str#3 ← phi( print_str_lines::@1/(byte*) print_str_lines::str#2 print_str_lines::@3/(byte*) print_str_lines::str#0 )
|
[868] (byte*) print_str_lines::str#3 ← phi( print_str_lines::@1/(byte*) print_str_lines::str#2 print_str_lines::@3/(byte*) print_str_lines::str#0 )
|
||||||
[869] (byte) print_str_lines::ch#0 ← *((byte*) print_str_lines::str#3)
|
[869] (byte) print_str_lines::ch#0 ← *((byte*) print_str_lines::str#3)
|
||||||
[870] (byte*) print_str_lines::str#0 ← ++ (byte*) print_str_lines::str#3
|
[870] (byte*) print_str_lines::str#0 ← ++ (byte*) print_str_lines::str#3
|
||||||
[871] if((byte) print_str_lines::ch#0==(byte) '@') goto print_str_lines::@3
|
[871] if((byte) 0==(byte) print_str_lines::ch#0) goto print_str_lines::@3
|
||||||
to:print_str_lines::@4
|
to:print_str_lines::@4
|
||||||
print_str_lines::@4: scope:[print_str_lines] from print_str_lines::@2
|
print_str_lines::@4: scope:[print_str_lines] from print_str_lines::@2
|
||||||
[872] *((byte*) print_char_cursor#17) ← (byte) print_str_lines::ch#0
|
[872] *((byte*) print_char_cursor#17) ← (byte) print_str_lines::ch#0
|
||||||
@ -1525,7 +1525,7 @@ print_str_lines::@4: scope:[print_str_lines] from print_str_lines::@2
|
|||||||
to:print_str_lines::@3
|
to:print_str_lines::@3
|
||||||
print_str_lines::@3: scope:[print_str_lines] from print_str_lines::@2 print_str_lines::@4
|
print_str_lines::@3: scope:[print_str_lines] from print_str_lines::@2 print_str_lines::@4
|
||||||
[874] (byte*) print_char_cursor#32 ← phi( print_str_lines::@2/(byte*) print_char_cursor#17 print_str_lines::@4/(byte*) print_char_cursor#1 )
|
[874] (byte*) print_char_cursor#32 ← phi( print_str_lines::@2/(byte*) print_char_cursor#17 print_str_lines::@4/(byte*) print_char_cursor#1 )
|
||||||
[875] if((byte) print_str_lines::ch#0!=(byte) '@') goto print_str_lines::@2
|
[875] if((byte) 0!=(byte) print_str_lines::ch#0) goto print_str_lines::@2
|
||||||
to:print_str_lines::@5
|
to:print_str_lines::@5
|
||||||
print_str_lines::@5: scope:[print_str_lines] from print_str_lines::@3
|
print_str_lines::@5: scope:[print_str_lines] from print_str_lines::@3
|
||||||
[876] phi()
|
[876] phi()
|
||||||
|
@ -4,6 +4,11 @@ Fixing pointer addition (word*~) bsearch16u::$1 ← (word*) bsearch16u::items -
|
|||||||
Fixing pointer array-indexing *((word*) utoa::digit_values + (byte) utoa::digit)
|
Fixing pointer array-indexing *((word*) utoa::digit_values + (byte) utoa::digit)
|
||||||
Fixing pointer array-indexing *((dword*) ultoa::digit_values + (byte) ultoa::digit)
|
Fixing pointer array-indexing *((dword*) ultoa::digit_values + (byte) ultoa::digit)
|
||||||
Warning! Adding boolean cast to non-boolean condition *((byte*) strcpy::src)
|
Warning! Adding boolean cast to non-boolean condition *((byte*) strcpy::src)
|
||||||
|
Warning! Adding boolean cast to non-boolean condition *((byte*) print_str_lines::str)
|
||||||
|
Warning! Adding boolean cast to non-boolean condition (byte) print_str_lines::ch
|
||||||
|
Warning! Adding boolean cast to non-boolean condition *((byte*) print_str::str)
|
||||||
|
Warning! Adding boolean cast to non-boolean condition *((byte*) print_str_at::str)
|
||||||
|
Warning! Adding boolean cast to non-boolean sub-expression (byte) print_str_lines::ch
|
||||||
Identified constant variable (byte*) dtvSetCpuBankSegment1::cpuBank
|
Identified constant variable (byte*) dtvSetCpuBankSegment1::cpuBank
|
||||||
Identified constant variable (byte*) DTV_BLITTER_ALU
|
Identified constant variable (byte*) DTV_BLITTER_ALU
|
||||||
Identified constant variable (byte*) HEAP_TOP
|
Identified constant variable (byte*) HEAP_TOP
|
||||||
@ -274,8 +279,8 @@ print_str_lines::@1: scope:[print_str_lines] from print_str_lines print_str_lin
|
|||||||
(byte*) print_line_cursor#31 ← phi( print_str_lines/(byte*) print_line_cursor#50 print_str_lines::@11/(byte*) print_line_cursor#1 )
|
(byte*) print_line_cursor#31 ← phi( print_str_lines/(byte*) print_line_cursor#50 print_str_lines::@11/(byte*) print_line_cursor#1 )
|
||||||
(byte*) print_char_cursor#33 ← phi( print_str_lines/(byte*) print_char_cursor#52 print_str_lines::@11/(byte*) print_char_cursor#2 )
|
(byte*) print_char_cursor#33 ← phi( print_str_lines/(byte*) print_char_cursor#52 print_str_lines::@11/(byte*) print_char_cursor#2 )
|
||||||
(byte*) print_str_lines::str#2 ← phi( print_str_lines/(byte*) print_str_lines::str#4 print_str_lines::@11/(byte*) print_str_lines::str#5 )
|
(byte*) print_str_lines::str#2 ← phi( print_str_lines/(byte*) print_str_lines::str#4 print_str_lines::@11/(byte*) print_str_lines::str#5 )
|
||||||
(bool~) print_str_lines::$0 ← *((byte*) print_str_lines::str#2) != (byte) '@'
|
(bool~) print_str_lines::$2 ← (number) 0 != *((byte*) print_str_lines::str#2)
|
||||||
if((bool~) print_str_lines::$0) goto print_str_lines::@4
|
if((bool~) print_str_lines::$2) goto print_str_lines::@4
|
||||||
to:print_str_lines::@return
|
to:print_str_lines::@return
|
||||||
print_str_lines::@4: scope:[print_str_lines] from print_str_lines::@1 print_str_lines::@5
|
print_str_lines::@4: scope:[print_str_lines] from print_str_lines::@1 print_str_lines::@5
|
||||||
(byte*) print_line_cursor#68 ← phi( print_str_lines::@1/(byte*) print_line_cursor#31 print_str_lines::@5/(byte*) print_line_cursor#51 )
|
(byte*) print_line_cursor#68 ← phi( print_str_lines::@1/(byte*) print_line_cursor#31 print_str_lines::@5/(byte*) print_line_cursor#51 )
|
||||||
@ -283,16 +288,16 @@ print_str_lines::@4: scope:[print_str_lines] from print_str_lines::@1 print_str
|
|||||||
(byte*) print_str_lines::str#3 ← phi( print_str_lines::@1/(byte*) print_str_lines::str#2 print_str_lines::@5/(byte*) print_str_lines::str#6 )
|
(byte*) print_str_lines::str#3 ← phi( print_str_lines::@1/(byte*) print_str_lines::str#2 print_str_lines::@5/(byte*) print_str_lines::str#6 )
|
||||||
(byte) print_str_lines::ch#0 ← *((byte*) print_str_lines::str#3)
|
(byte) print_str_lines::ch#0 ← *((byte*) print_str_lines::str#3)
|
||||||
(byte*) print_str_lines::str#0 ← ++ (byte*) print_str_lines::str#3
|
(byte*) print_str_lines::str#0 ← ++ (byte*) print_str_lines::str#3
|
||||||
(bool~) print_str_lines::$1 ← (byte) print_str_lines::ch#0 != (byte) '@'
|
(bool~) print_str_lines::$4 ← (number) 0 != (byte) print_str_lines::ch#0
|
||||||
(bool~) print_str_lines::$2 ← ! (bool~) print_str_lines::$1
|
(bool~) print_str_lines::$0 ← ! (bool~) print_str_lines::$4
|
||||||
if((bool~) print_str_lines::$2) goto print_str_lines::@5
|
if((bool~) print_str_lines::$0) goto print_str_lines::@5
|
||||||
to:print_str_lines::@6
|
to:print_str_lines::@6
|
||||||
print_str_lines::@5: scope:[print_str_lines] from print_str_lines::@4 print_str_lines::@6
|
print_str_lines::@5: scope:[print_str_lines] from print_str_lines::@4 print_str_lines::@6
|
||||||
(byte*) print_line_cursor#51 ← phi( print_str_lines::@4/(byte*) print_line_cursor#68 print_str_lines::@6/(byte*) print_line_cursor#69 )
|
(byte*) print_line_cursor#51 ← phi( print_str_lines::@4/(byte*) print_line_cursor#68 print_str_lines::@6/(byte*) print_line_cursor#69 )
|
||||||
(byte*) print_char_cursor#53 ← phi( print_str_lines::@4/(byte*) print_char_cursor#31 print_str_lines::@6/(byte*) print_char_cursor#1 )
|
(byte*) print_char_cursor#53 ← phi( print_str_lines::@4/(byte*) print_char_cursor#31 print_str_lines::@6/(byte*) print_char_cursor#1 )
|
||||||
(byte*) print_str_lines::str#6 ← phi( print_str_lines::@4/(byte*) print_str_lines::str#0 print_str_lines::@6/(byte*) print_str_lines::str#7 )
|
(byte*) print_str_lines::str#6 ← phi( print_str_lines::@4/(byte*) print_str_lines::str#0 print_str_lines::@6/(byte*) print_str_lines::str#7 )
|
||||||
(byte) print_str_lines::ch#1 ← phi( print_str_lines::@4/(byte) print_str_lines::ch#0 print_str_lines::@6/(byte) print_str_lines::ch#2 )
|
(byte) print_str_lines::ch#1 ← phi( print_str_lines::@4/(byte) print_str_lines::ch#0 print_str_lines::@6/(byte) print_str_lines::ch#2 )
|
||||||
(bool~) print_str_lines::$3 ← (byte) print_str_lines::ch#1 != (byte) '@'
|
(bool~) print_str_lines::$3 ← (number) 0 != (byte) print_str_lines::ch#1
|
||||||
if((bool~) print_str_lines::$3) goto print_str_lines::@4
|
if((bool~) print_str_lines::$3) goto print_str_lines::@4
|
||||||
to:print_str_lines::@7
|
to:print_str_lines::@7
|
||||||
print_str_lines::@6: scope:[print_str_lines] from print_str_lines::@4
|
print_str_lines::@6: scope:[print_str_lines] from print_str_lines::@4
|
||||||
@ -6074,9 +6079,9 @@ SYMBOL TABLE SSA
|
|||||||
(byte*) print_set_screen::screen#1
|
(byte*) print_set_screen::screen#1
|
||||||
(void()) print_str_lines((byte*) print_str_lines::str)
|
(void()) print_str_lines((byte*) print_str_lines::str)
|
||||||
(bool~) print_str_lines::$0
|
(bool~) print_str_lines::$0
|
||||||
(bool~) print_str_lines::$1
|
|
||||||
(bool~) print_str_lines::$2
|
(bool~) print_str_lines::$2
|
||||||
(bool~) print_str_lines::$3
|
(bool~) print_str_lines::$3
|
||||||
|
(bool~) print_str_lines::$4
|
||||||
(label) print_str_lines::@1
|
(label) print_str_lines::@1
|
||||||
(label) print_str_lines::@11
|
(label) print_str_lines::@11
|
||||||
(label) print_str_lines::@4
|
(label) print_str_lines::@4
|
||||||
@ -6125,6 +6130,9 @@ Adding number conversion cast (unumber) $10 in (byte) DTV_COLORRAM_OFF#0 ← (nu
|
|||||||
Adding number conversion cast (unumber) $40 in (byte) DTV_CHUNKY#0 ← (number) $40
|
Adding number conversion cast (unumber) $40 in (byte) DTV_CHUNKY#0 ← (number) $40
|
||||||
Adding number conversion cast (unumber) $1d800 in (dword) DTV_COLOR_BANK_DEFAULT#0 ← (number) $1d800
|
Adding number conversion cast (unumber) $1d800 in (dword) DTV_COLOR_BANK_DEFAULT#0 ← (number) $1d800
|
||||||
Adding number conversion cast (unumber) 0 in (bool~) memset::$0 ← (word) memset::num#1 > (number) 0
|
Adding number conversion cast (unumber) 0 in (bool~) memset::$0 ← (word) memset::num#1 > (number) 0
|
||||||
|
Adding number conversion cast (unumber) 0 in (bool~) print_str_lines::$2 ← (number) 0 != *((byte*) print_str_lines::str#2)
|
||||||
|
Adding number conversion cast (unumber) 0 in (bool~) print_str_lines::$4 ← (number) 0 != (byte) print_str_lines::ch#0
|
||||||
|
Adding number conversion cast (unumber) 0 in (bool~) print_str_lines::$3 ← (number) 0 != (byte) print_str_lines::ch#1
|
||||||
Adding number conversion cast (unumber) $28 in (byte*~) print_ln::$0 ← (byte*) print_line_cursor#18 + (number) $28
|
Adding number conversion cast (unumber) $28 in (byte*~) print_ln::$0 ← (byte*) print_line_cursor#18 + (number) $28
|
||||||
Adding number conversion cast (unumber) $3e8 in (word) memset::num#0 ← (number) $3e8
|
Adding number conversion cast (unumber) $3e8 in (word) memset::num#0 ← (number) $3e8
|
||||||
Adding number conversion cast (unumber) 8 in (byte) KEY_3#0 ← (number) 8
|
Adding number conversion cast (unumber) 8 in (byte) KEY_3#0 ← (number) 8
|
||||||
@ -6935,6 +6943,9 @@ Simplifying constant pointer cast (byte*) 53309
|
|||||||
Simplifying constant pointer cast (byte*) 255
|
Simplifying constant pointer cast (byte*) 255
|
||||||
Simplifying constant integer cast 0
|
Simplifying constant integer cast 0
|
||||||
Simplifying constant pointer cast (byte*) 1024
|
Simplifying constant pointer cast (byte*) 1024
|
||||||
|
Simplifying constant integer cast 0
|
||||||
|
Simplifying constant integer cast 0
|
||||||
|
Simplifying constant integer cast 0
|
||||||
Simplifying constant integer cast $28
|
Simplifying constant integer cast $28
|
||||||
Simplifying constant integer cast $3e8
|
Simplifying constant integer cast $3e8
|
||||||
Simplifying constant integer cast 8
|
Simplifying constant integer cast 8
|
||||||
@ -7336,6 +7347,9 @@ Finalized unsigned number type (byte) $10
|
|||||||
Finalized unsigned number type (byte) $40
|
Finalized unsigned number type (byte) $40
|
||||||
Finalized unsigned number type (dword) $1d800
|
Finalized unsigned number type (dword) $1d800
|
||||||
Finalized unsigned number type (byte) 0
|
Finalized unsigned number type (byte) 0
|
||||||
|
Finalized unsigned number type (byte) 0
|
||||||
|
Finalized unsigned number type (byte) 0
|
||||||
|
Finalized unsigned number type (byte) 0
|
||||||
Finalized unsigned number type (byte) $28
|
Finalized unsigned number type (byte) $28
|
||||||
Finalized unsigned number type (word) $3e8
|
Finalized unsigned number type (word) $3e8
|
||||||
Finalized unsigned number type (byte) 8
|
Finalized unsigned number type (byte) 8
|
||||||
@ -7779,7 +7793,7 @@ Inferred type updated to dword in (unumber~) mode_8bppchunkybmm::$16 ← (dword)
|
|||||||
Adding pointer type conversion cast (byte*) bitmap_clear::$0 in (byte*~) bitmap_clear::$0 ← (word~) bitmap_clear::$3
|
Adding pointer type conversion cast (byte*) bitmap_clear::$0 in (byte*~) bitmap_clear::$0 ← (word~) bitmap_clear::$3
|
||||||
Successful SSA optimization PassNAddTypeConversionAssignment
|
Successful SSA optimization PassNAddTypeConversionAssignment
|
||||||
Inversing boolean not [64] (bool~) memset::$1 ← (word) memset::num#1 <= (byte) 0 from [63] (bool~) memset::$0 ← (word) memset::num#1 > (byte) 0
|
Inversing boolean not [64] (bool~) memset::$1 ← (word) memset::num#1 <= (byte) 0 from [63] (bool~) memset::$0 ← (word) memset::num#1 > (byte) 0
|
||||||
Inversing boolean not [93] (bool~) print_str_lines::$2 ← (byte) print_str_lines::ch#0 == (byte) '@' from [92] (bool~) print_str_lines::$1 ← (byte) print_str_lines::ch#0 != (byte) '@'
|
Inversing boolean not [93] (bool~) print_str_lines::$0 ← (byte) 0 == (byte) print_str_lines::ch#0 from [92] (bool~) print_str_lines::$4 ← (byte) 0 != (byte) print_str_lines::ch#0
|
||||||
Inversing boolean not [206] (bool~) bitmap_init::$4 ← (byte) bitmap_init::bits#1 != (byte) 0 from [205] (bool~) bitmap_init::$3 ← (byte) bitmap_init::bits#1 == (byte) 0
|
Inversing boolean not [206] (bool~) bitmap_init::$4 ← (byte) bitmap_init::bits#1 != (byte) 0 from [205] (bool~) bitmap_init::$3 ← (byte) bitmap_init::bits#1 == (byte) 0
|
||||||
Inversing boolean not [225] (bool~) bitmap_init::$12 ← (byte~) bitmap_init::$10 != (byte) 7 from [224] (bool~) bitmap_init::$11 ← (byte~) bitmap_init::$10 == (byte) 7
|
Inversing boolean not [225] (bool~) bitmap_init::$12 ← (byte~) bitmap_init::$10 != (byte) 7 from [224] (bool~) bitmap_init::$11 ← (byte~) bitmap_init::$10 == (byte) 7
|
||||||
Inversing boolean not [366] (bool~) bitmap_line_xdyi::$4 ← (byte) bitmap_line_xdyi::xd#2 >= (byte) bitmap_line_xdyi::e#1 from [365] (bool~) bitmap_line_xdyi::$3 ← (byte) bitmap_line_xdyi::xd#2 < (byte) bitmap_line_xdyi::e#1
|
Inversing boolean not [366] (bool~) bitmap_line_xdyi::$4 ← (byte) bitmap_line_xdyi::xd#2 >= (byte) bitmap_line_xdyi::e#1 from [365] (bool~) bitmap_line_xdyi::$3 ← (byte) bitmap_line_xdyi::xd#2 < (byte) bitmap_line_xdyi::e#1
|
||||||
@ -8377,9 +8391,9 @@ Identified duplicate assignment right side [1792] (word~) mode_8bppchunkybmm::$1
|
|||||||
Successful SSA optimization Pass2DuplicateRValueIdentification
|
Successful SSA optimization Pass2DuplicateRValueIdentification
|
||||||
Simple Condition (bool~) memset::$1 [65] if((word) memset::num#0<=(byte) 0) goto memset::@1
|
Simple Condition (bool~) memset::$1 [65] if((word) memset::num#0<=(byte) 0) goto memset::@1
|
||||||
Simple Condition (bool~) memset::$4 [75] if((byte*) memset::dst#2!=(byte*) memset::end#0) goto memset::@5
|
Simple Condition (bool~) memset::$4 [75] if((byte*) memset::dst#2!=(byte*) memset::end#0) goto memset::@5
|
||||||
Simple Condition (bool~) print_str_lines::$0 [88] if(*((byte*) print_str_lines::str#2)!=(byte) '@') goto print_str_lines::@4
|
Simple Condition (bool~) print_str_lines::$2 [88] if((byte) 0!=*((byte*) print_str_lines::str#2)) goto print_str_lines::@4
|
||||||
Simple Condition (bool~) print_str_lines::$2 [94] if((byte) print_str_lines::ch#0==(byte) '@') goto print_str_lines::@5
|
Simple Condition (bool~) print_str_lines::$0 [94] if((byte) 0==(byte) print_str_lines::ch#0) goto print_str_lines::@5
|
||||||
Simple Condition (bool~) print_str_lines::$3 [97] if((byte) print_str_lines::ch#0!=(byte) '@') goto print_str_lines::@4
|
Simple Condition (bool~) print_str_lines::$3 [97] if((byte) 0!=(byte) print_str_lines::ch#0) goto print_str_lines::@4
|
||||||
Simple Condition (bool~) print_ln::$1 [115] if((byte*) print_line_cursor#19<(byte*) print_char_cursor#32) goto print_ln::@1
|
Simple Condition (bool~) print_ln::$1 [115] if((byte*) print_line_cursor#19<(byte*) print_char_cursor#32) goto print_ln::@1
|
||||||
Simple Condition (bool~) bitmap_init::$4 [207] if((byte) bitmap_init::bits#1!=(byte) 0) goto bitmap_init::@2
|
Simple Condition (bool~) bitmap_init::$4 [207] if((byte) bitmap_init::bits#1!=(byte) 0) goto bitmap_init::@2
|
||||||
Simple Condition (bool~) bitmap_init::$5 [211] if((byte) bitmap_init::x#1!=rangelast(0,$ff)) goto bitmap_init::@1
|
Simple Condition (bool~) bitmap_init::$5 [211] if((byte) bitmap_init::x#1!=rangelast(0,$ff)) goto bitmap_init::@1
|
||||||
@ -12472,7 +12486,7 @@ print_str_lines::@1: scope:[print_str_lines] from print_str_lines print_str_lin
|
|||||||
[865] (byte*) print_line_cursor#17 ← phi( print_str_lines/(const byte*) menu::SCREEN#0 print_str_lines::@6/(byte*) print_line_cursor#19 )
|
[865] (byte*) print_line_cursor#17 ← phi( print_str_lines/(const byte*) menu::SCREEN#0 print_str_lines::@6/(byte*) print_line_cursor#19 )
|
||||||
[865] (byte*) print_char_cursor#19 ← phi( print_str_lines/(const byte*) menu::SCREEN#0 print_str_lines::@6/(byte*~) print_char_cursor#100 )
|
[865] (byte*) print_char_cursor#19 ← phi( print_str_lines/(const byte*) menu::SCREEN#0 print_str_lines::@6/(byte*~) print_char_cursor#100 )
|
||||||
[865] (byte*) print_str_lines::str#2 ← phi( print_str_lines/(const byte[]) MENU_TEXT#0 print_str_lines::@6/(byte*) print_str_lines::str#0 )
|
[865] (byte*) print_str_lines::str#2 ← phi( print_str_lines/(const byte[]) MENU_TEXT#0 print_str_lines::@6/(byte*) print_str_lines::str#0 )
|
||||||
[866] if(*((byte*) print_str_lines::str#2)!=(byte) '@') goto print_str_lines::@2
|
[866] if((byte) 0!=*((byte*) print_str_lines::str#2)) goto print_str_lines::@2
|
||||||
to:print_str_lines::@return
|
to:print_str_lines::@return
|
||||||
print_str_lines::@return: scope:[print_str_lines] from print_str_lines::@1
|
print_str_lines::@return: scope:[print_str_lines] from print_str_lines::@1
|
||||||
[867] return
|
[867] return
|
||||||
@ -12482,7 +12496,7 @@ print_str_lines::@2: scope:[print_str_lines] from print_str_lines::@1 print_str
|
|||||||
[868] (byte*) print_str_lines::str#3 ← phi( print_str_lines::@1/(byte*) print_str_lines::str#2 print_str_lines::@3/(byte*) print_str_lines::str#0 )
|
[868] (byte*) print_str_lines::str#3 ← phi( print_str_lines::@1/(byte*) print_str_lines::str#2 print_str_lines::@3/(byte*) print_str_lines::str#0 )
|
||||||
[869] (byte) print_str_lines::ch#0 ← *((byte*) print_str_lines::str#3)
|
[869] (byte) print_str_lines::ch#0 ← *((byte*) print_str_lines::str#3)
|
||||||
[870] (byte*) print_str_lines::str#0 ← ++ (byte*) print_str_lines::str#3
|
[870] (byte*) print_str_lines::str#0 ← ++ (byte*) print_str_lines::str#3
|
||||||
[871] if((byte) print_str_lines::ch#0==(byte) '@') goto print_str_lines::@3
|
[871] if((byte) 0==(byte) print_str_lines::ch#0) goto print_str_lines::@3
|
||||||
to:print_str_lines::@4
|
to:print_str_lines::@4
|
||||||
print_str_lines::@4: scope:[print_str_lines] from print_str_lines::@2
|
print_str_lines::@4: scope:[print_str_lines] from print_str_lines::@2
|
||||||
[872] *((byte*) print_char_cursor#17) ← (byte) print_str_lines::ch#0
|
[872] *((byte*) print_char_cursor#17) ← (byte) print_str_lines::ch#0
|
||||||
@ -12490,7 +12504,7 @@ print_str_lines::@4: scope:[print_str_lines] from print_str_lines::@2
|
|||||||
to:print_str_lines::@3
|
to:print_str_lines::@3
|
||||||
print_str_lines::@3: scope:[print_str_lines] from print_str_lines::@2 print_str_lines::@4
|
print_str_lines::@3: scope:[print_str_lines] from print_str_lines::@2 print_str_lines::@4
|
||||||
[874] (byte*) print_char_cursor#32 ← phi( print_str_lines::@2/(byte*) print_char_cursor#17 print_str_lines::@4/(byte*) print_char_cursor#1 )
|
[874] (byte*) print_char_cursor#32 ← phi( print_str_lines::@2/(byte*) print_char_cursor#17 print_str_lines::@4/(byte*) print_char_cursor#1 )
|
||||||
[875] if((byte) print_str_lines::ch#0!=(byte) '@') goto print_str_lines::@2
|
[875] if((byte) 0!=(byte) print_str_lines::ch#0) goto print_str_lines::@2
|
||||||
to:print_str_lines::@5
|
to:print_str_lines::@5
|
||||||
print_str_lines::@5: scope:[print_str_lines] from print_str_lines::@3
|
print_str_lines::@5: scope:[print_str_lines] from print_str_lines::@3
|
||||||
[876] phi()
|
[876] phi()
|
||||||
@ -19298,10 +19312,10 @@ print_str_lines: {
|
|||||||
jmp b1
|
jmp b1
|
||||||
// print_str_lines::@1
|
// print_str_lines::@1
|
||||||
b1:
|
b1:
|
||||||
// [866] if(*((byte*) print_str_lines::str#2)!=(byte) '@') goto print_str_lines::@2 -- _deref_pbuz1_neq_vbuc1_then_la1
|
// [866] if((byte) 0!=*((byte*) print_str_lines::str#2)) goto print_str_lines::@2 -- vbuc1_neq__deref_pbuz1_then_la1
|
||||||
ldy #0
|
ldy #0
|
||||||
lda (str),y
|
lda (str),y
|
||||||
cmp #'@'
|
cmp #0
|
||||||
bne b2_from_b1
|
bne b2_from_b1
|
||||||
jmp breturn
|
jmp breturn
|
||||||
// print_str_lines::@return
|
// print_str_lines::@return
|
||||||
@ -19325,8 +19339,8 @@ print_str_lines: {
|
|||||||
bne !+
|
bne !+
|
||||||
inc str+1
|
inc str+1
|
||||||
!:
|
!:
|
||||||
// [871] if((byte) print_str_lines::ch#0==(byte) '@') goto print_str_lines::@3 -- vbuz1_eq_vbuc1_then_la1
|
// [871] if((byte) 0==(byte) print_str_lines::ch#0) goto print_str_lines::@3 -- vbuc1_eq_vbuz1_then_la1
|
||||||
lda #'@'
|
lda #0
|
||||||
cmp ch
|
cmp ch
|
||||||
beq b3_from_b2
|
beq b3_from_b2
|
||||||
jmp b4
|
jmp b4
|
||||||
@ -19348,8 +19362,8 @@ print_str_lines: {
|
|||||||
jmp b3
|
jmp b3
|
||||||
// print_str_lines::@3
|
// print_str_lines::@3
|
||||||
b3:
|
b3:
|
||||||
// [875] if((byte) print_str_lines::ch#0!=(byte) '@') goto print_str_lines::@2 -- vbuz1_neq_vbuc1_then_la1
|
// [875] if((byte) 0!=(byte) print_str_lines::ch#0) goto print_str_lines::@2 -- vbuc1_neq_vbuz1_then_la1
|
||||||
lda #'@'
|
lda #0
|
||||||
cmp ch
|
cmp ch
|
||||||
bne b2_from_b3
|
bne b2_from_b3
|
||||||
// [876] phi from print_str_lines::@3 to print_str_lines::@5 [phi:print_str_lines::@3->print_str_lines::@5]
|
// [876] phi from print_str_lines::@3 to print_str_lines::@5 [phi:print_str_lines::@3->print_str_lines::@5]
|
||||||
@ -19954,7 +19968,7 @@ Statement [852] (byte~) mode_stdchar::$28 ← (byte~) mode_stdchar::$27 << (byte
|
|||||||
Statement [853] (byte~) mode_stdchar::$29 ← (byte) mode_stdchar::cx#2 & (byte) $f [ mode_stdchar::cy#4 mode_stdchar::col#1 mode_stdchar::cx#2 mode_stdchar::ch#2 mode_stdchar::$28 mode_stdchar::$29 ] ( main:2::menu:9::mode_stdchar:40 [ mode_stdchar::cy#4 mode_stdchar::col#1 mode_stdchar::cx#2 mode_stdchar::ch#2 mode_stdchar::$28 mode_stdchar::$29 ] ) always clobbers reg byte a
|
Statement [853] (byte~) mode_stdchar::$29 ← (byte) mode_stdchar::cx#2 & (byte) $f [ mode_stdchar::cy#4 mode_stdchar::col#1 mode_stdchar::cx#2 mode_stdchar::ch#2 mode_stdchar::$28 mode_stdchar::$29 ] ( main:2::menu:9::mode_stdchar:40 [ mode_stdchar::cy#4 mode_stdchar::col#1 mode_stdchar::cx#2 mode_stdchar::ch#2 mode_stdchar::$28 mode_stdchar::$29 ] ) always clobbers reg byte a
|
||||||
Removing always clobbered register reg byte a as potential for zp ZP_BYTE:291 [ mode_stdchar::$28 ]
|
Removing always clobbered register reg byte a as potential for zp ZP_BYTE:291 [ mode_stdchar::$28 ]
|
||||||
Statement [855] *((byte*) mode_stdchar::ch#2) ← (byte~) mode_stdchar::$30 [ mode_stdchar::cy#4 mode_stdchar::col#1 mode_stdchar::cx#2 mode_stdchar::ch#2 ] ( main:2::menu:9::mode_stdchar:40 [ mode_stdchar::cy#4 mode_stdchar::col#1 mode_stdchar::cx#2 mode_stdchar::ch#2 ] ) always clobbers reg byte y
|
Statement [855] *((byte*) mode_stdchar::ch#2) ← (byte~) mode_stdchar::$30 [ mode_stdchar::cy#4 mode_stdchar::col#1 mode_stdchar::cx#2 mode_stdchar::ch#2 ] ( main:2::menu:9::mode_stdchar:40 [ mode_stdchar::cy#4 mode_stdchar::col#1 mode_stdchar::cx#2 mode_stdchar::ch#2 ] ) always clobbers reg byte y
|
||||||
Statement [866] if(*((byte*) print_str_lines::str#2)!=(byte) '@') goto print_str_lines::@2 [ print_str_lines::str#2 print_char_cursor#19 print_line_cursor#17 ] ( main:2::menu:9::print_str_lines:33 [ print_str_lines::str#2 print_char_cursor#19 print_line_cursor#17 ] ) always clobbers reg byte a reg byte y
|
Statement [866] if((byte) 0!=*((byte*) print_str_lines::str#2)) goto print_str_lines::@2 [ print_str_lines::str#2 print_char_cursor#19 print_line_cursor#17 ] ( main:2::menu:9::print_str_lines:33 [ print_str_lines::str#2 print_char_cursor#19 print_line_cursor#17 ] ) always clobbers reg byte a reg byte y
|
||||||
Statement [869] (byte) print_str_lines::ch#0 ← *((byte*) print_str_lines::str#3) [ print_line_cursor#17 print_str_lines::str#3 print_char_cursor#17 print_str_lines::ch#0 ] ( main:2::menu:9::print_str_lines:33 [ print_line_cursor#17 print_str_lines::str#3 print_char_cursor#17 print_str_lines::ch#0 ] ) always clobbers reg byte a reg byte y
|
Statement [869] (byte) print_str_lines::ch#0 ← *((byte*) print_str_lines::str#3) [ print_line_cursor#17 print_str_lines::str#3 print_char_cursor#17 print_str_lines::ch#0 ] ( main:2::menu:9::print_str_lines:33 [ print_line_cursor#17 print_str_lines::str#3 print_char_cursor#17 print_str_lines::ch#0 ] ) always clobbers reg byte a reg byte y
|
||||||
Statement [872] *((byte*) print_char_cursor#17) ← (byte) print_str_lines::ch#0 [ print_line_cursor#17 print_str_lines::str#0 print_char_cursor#17 print_str_lines::ch#0 ] ( main:2::menu:9::print_str_lines:33 [ print_line_cursor#17 print_str_lines::str#0 print_char_cursor#17 print_str_lines::ch#0 ] ) always clobbers reg byte y
|
Statement [872] *((byte*) print_char_cursor#17) ← (byte) print_str_lines::ch#0 [ print_line_cursor#17 print_str_lines::str#0 print_char_cursor#17 print_str_lines::ch#0 ] ( main:2::menu:9::print_str_lines:33 [ print_line_cursor#17 print_str_lines::str#0 print_char_cursor#17 print_str_lines::ch#0 ] ) always clobbers reg byte y
|
||||||
Removing always clobbered register reg byte y as potential for zp ZP_BYTE:294 [ print_str_lines::ch#0 ]
|
Removing always clobbered register reg byte y as potential for zp ZP_BYTE:294 [ print_str_lines::ch#0 ]
|
||||||
@ -20263,7 +20277,7 @@ Statement [851] (byte~) mode_stdchar::$27 ← (byte) mode_stdchar::cy#4 & (byte)
|
|||||||
Statement [852] (byte~) mode_stdchar::$28 ← (byte~) mode_stdchar::$27 << (byte) 4 [ mode_stdchar::cy#4 mode_stdchar::col#1 mode_stdchar::cx#2 mode_stdchar::ch#2 mode_stdchar::$28 ] ( main:2::menu:9::mode_stdchar:40 [ mode_stdchar::cy#4 mode_stdchar::col#1 mode_stdchar::cx#2 mode_stdchar::ch#2 mode_stdchar::$28 ] ) always clobbers reg byte a
|
Statement [852] (byte~) mode_stdchar::$28 ← (byte~) mode_stdchar::$27 << (byte) 4 [ mode_stdchar::cy#4 mode_stdchar::col#1 mode_stdchar::cx#2 mode_stdchar::ch#2 mode_stdchar::$28 ] ( main:2::menu:9::mode_stdchar:40 [ mode_stdchar::cy#4 mode_stdchar::col#1 mode_stdchar::cx#2 mode_stdchar::ch#2 mode_stdchar::$28 ] ) always clobbers reg byte a
|
||||||
Statement [853] (byte~) mode_stdchar::$29 ← (byte) mode_stdchar::cx#2 & (byte) $f [ mode_stdchar::cy#4 mode_stdchar::col#1 mode_stdchar::cx#2 mode_stdchar::ch#2 mode_stdchar::$28 mode_stdchar::$29 ] ( main:2::menu:9::mode_stdchar:40 [ mode_stdchar::cy#4 mode_stdchar::col#1 mode_stdchar::cx#2 mode_stdchar::ch#2 mode_stdchar::$28 mode_stdchar::$29 ] ) always clobbers reg byte a
|
Statement [853] (byte~) mode_stdchar::$29 ← (byte) mode_stdchar::cx#2 & (byte) $f [ mode_stdchar::cy#4 mode_stdchar::col#1 mode_stdchar::cx#2 mode_stdchar::ch#2 mode_stdchar::$28 mode_stdchar::$29 ] ( main:2::menu:9::mode_stdchar:40 [ mode_stdchar::cy#4 mode_stdchar::col#1 mode_stdchar::cx#2 mode_stdchar::ch#2 mode_stdchar::$28 mode_stdchar::$29 ] ) always clobbers reg byte a
|
||||||
Statement [855] *((byte*) mode_stdchar::ch#2) ← (byte~) mode_stdchar::$30 [ mode_stdchar::cy#4 mode_stdchar::col#1 mode_stdchar::cx#2 mode_stdchar::ch#2 ] ( main:2::menu:9::mode_stdchar:40 [ mode_stdchar::cy#4 mode_stdchar::col#1 mode_stdchar::cx#2 mode_stdchar::ch#2 ] ) always clobbers reg byte y
|
Statement [855] *((byte*) mode_stdchar::ch#2) ← (byte~) mode_stdchar::$30 [ mode_stdchar::cy#4 mode_stdchar::col#1 mode_stdchar::cx#2 mode_stdchar::ch#2 ] ( main:2::menu:9::mode_stdchar:40 [ mode_stdchar::cy#4 mode_stdchar::col#1 mode_stdchar::cx#2 mode_stdchar::ch#2 ] ) always clobbers reg byte y
|
||||||
Statement [866] if(*((byte*) print_str_lines::str#2)!=(byte) '@') goto print_str_lines::@2 [ print_str_lines::str#2 print_char_cursor#19 print_line_cursor#17 ] ( main:2::menu:9::print_str_lines:33 [ print_str_lines::str#2 print_char_cursor#19 print_line_cursor#17 ] ) always clobbers reg byte a reg byte y
|
Statement [866] if((byte) 0!=*((byte*) print_str_lines::str#2)) goto print_str_lines::@2 [ print_str_lines::str#2 print_char_cursor#19 print_line_cursor#17 ] ( main:2::menu:9::print_str_lines:33 [ print_str_lines::str#2 print_char_cursor#19 print_line_cursor#17 ] ) always clobbers reg byte a reg byte y
|
||||||
Statement [869] (byte) print_str_lines::ch#0 ← *((byte*) print_str_lines::str#3) [ print_line_cursor#17 print_str_lines::str#3 print_char_cursor#17 print_str_lines::ch#0 ] ( main:2::menu:9::print_str_lines:33 [ print_line_cursor#17 print_str_lines::str#3 print_char_cursor#17 print_str_lines::ch#0 ] ) always clobbers reg byte a reg byte y
|
Statement [869] (byte) print_str_lines::ch#0 ← *((byte*) print_str_lines::str#3) [ print_line_cursor#17 print_str_lines::str#3 print_char_cursor#17 print_str_lines::ch#0 ] ( main:2::menu:9::print_str_lines:33 [ print_line_cursor#17 print_str_lines::str#3 print_char_cursor#17 print_str_lines::ch#0 ] ) always clobbers reg byte a reg byte y
|
||||||
Statement [872] *((byte*) print_char_cursor#17) ← (byte) print_str_lines::ch#0 [ print_line_cursor#17 print_str_lines::str#0 print_char_cursor#17 print_str_lines::ch#0 ] ( main:2::menu:9::print_str_lines:33 [ print_line_cursor#17 print_str_lines::str#0 print_char_cursor#17 print_str_lines::ch#0 ] ) always clobbers reg byte y
|
Statement [872] *((byte*) print_char_cursor#17) ← (byte) print_str_lines::ch#0 [ print_line_cursor#17 print_str_lines::str#0 print_char_cursor#17 print_str_lines::ch#0 ] ( main:2::menu:9::print_str_lines:33 [ print_line_cursor#17 print_str_lines::str#0 print_char_cursor#17 print_str_lines::ch#0 ] ) always clobbers reg byte y
|
||||||
Statement [878] (byte*~) print_char_cursor#100 ← (byte*) print_line_cursor#19 [ print_str_lines::str#0 print_char_cursor#100 print_line_cursor#19 ] ( main:2::menu:9::print_str_lines:33 [ print_str_lines::str#0 print_char_cursor#100 print_line_cursor#19 ] ) always clobbers reg byte a
|
Statement [878] (byte*~) print_char_cursor#100 ← (byte*) print_line_cursor#19 [ print_str_lines::str#0 print_char_cursor#100 print_line_cursor#19 ] ( main:2::menu:9::print_str_lines:33 [ print_str_lines::str#0 print_char_cursor#100 print_line_cursor#19 ] ) always clobbers reg byte a
|
||||||
@ -25654,10 +25668,10 @@ print_str_lines: {
|
|||||||
jmp b1
|
jmp b1
|
||||||
// print_str_lines::@1
|
// print_str_lines::@1
|
||||||
b1:
|
b1:
|
||||||
// [866] if(*((byte*) print_str_lines::str#2)!=(byte) '@') goto print_str_lines::@2 -- _deref_pbuz1_neq_vbuc1_then_la1
|
// [866] if((byte) 0!=*((byte*) print_str_lines::str#2)) goto print_str_lines::@2 -- vbuc1_neq__deref_pbuz1_then_la1
|
||||||
ldy #0
|
ldy #0
|
||||||
lda (str),y
|
lda (str),y
|
||||||
cmp #'@'
|
cmp #0
|
||||||
bne b2_from_b1
|
bne b2_from_b1
|
||||||
jmp breturn
|
jmp breturn
|
||||||
// print_str_lines::@return
|
// print_str_lines::@return
|
||||||
@ -25680,8 +25694,8 @@ print_str_lines: {
|
|||||||
bne !+
|
bne !+
|
||||||
inc str+1
|
inc str+1
|
||||||
!:
|
!:
|
||||||
// [871] if((byte) print_str_lines::ch#0==(byte) '@') goto print_str_lines::@3 -- vbuaa_eq_vbuc1_then_la1
|
// [871] if((byte) 0==(byte) print_str_lines::ch#0) goto print_str_lines::@3 -- vbuc1_eq_vbuaa_then_la1
|
||||||
cmp #'@'
|
cmp #0
|
||||||
beq b3_from_b2
|
beq b3_from_b2
|
||||||
jmp b4
|
jmp b4
|
||||||
// print_str_lines::@4
|
// print_str_lines::@4
|
||||||
@ -25701,8 +25715,8 @@ print_str_lines: {
|
|||||||
jmp b3
|
jmp b3
|
||||||
// print_str_lines::@3
|
// print_str_lines::@3
|
||||||
b3:
|
b3:
|
||||||
// [875] if((byte) print_str_lines::ch#0!=(byte) '@') goto print_str_lines::@2 -- vbuaa_neq_vbuc1_then_la1
|
// [875] if((byte) 0!=(byte) print_str_lines::ch#0) goto print_str_lines::@2 -- vbuc1_neq_vbuaa_then_la1
|
||||||
cmp #'@'
|
cmp #0
|
||||||
bne b2_from_b3
|
bne b2_from_b3
|
||||||
// [876] phi from print_str_lines::@3 to print_str_lines::@5 [phi:print_str_lines::@3->print_str_lines::@5]
|
// [876] phi from print_str_lines::@3 to print_str_lines::@5 [phi:print_str_lines::@3->print_str_lines::@5]
|
||||||
b5_from_b3:
|
b5_from_b3:
|
||||||
@ -32576,11 +32590,11 @@ print_str_lines: {
|
|||||||
sta str+1
|
sta str+1
|
||||||
// print_str_lines::@1
|
// print_str_lines::@1
|
||||||
b1:
|
b1:
|
||||||
// while(*str!='@')
|
// while(*str)
|
||||||
// [866] if(*((byte*) print_str_lines::str#2)!=(byte) '@') goto print_str_lines::@2 -- _deref_pbuz1_neq_vbuc1_then_la1
|
// [866] if((byte) 0!=*((byte*) print_str_lines::str#2)) goto print_str_lines::@2 -- vbuc1_neq__deref_pbuz1_then_la1
|
||||||
ldy #0
|
ldy #0
|
||||||
lda (str),y
|
lda (str),y
|
||||||
cmp #'@'
|
cmp #0
|
||||||
bne b2
|
bne b2
|
||||||
// print_str_lines::@return
|
// print_str_lines::@return
|
||||||
// }
|
// }
|
||||||
@ -32600,9 +32614,9 @@ print_str_lines: {
|
|||||||
bne !+
|
bne !+
|
||||||
inc str+1
|
inc str+1
|
||||||
!:
|
!:
|
||||||
// if(ch!='@')
|
// if(ch)
|
||||||
// [871] if((byte) print_str_lines::ch#0==(byte) '@') goto print_str_lines::@3 -- vbuaa_eq_vbuc1_then_la1
|
// [871] if((byte) 0==(byte) print_str_lines::ch#0) goto print_str_lines::@3 -- vbuc1_eq_vbuaa_then_la1
|
||||||
cmp #'@'
|
cmp #0
|
||||||
beq b3
|
beq b3
|
||||||
// print_str_lines::@4
|
// print_str_lines::@4
|
||||||
// *(print_char_cursor++) = ch
|
// *(print_char_cursor++) = ch
|
||||||
@ -32619,9 +32633,9 @@ print_str_lines: {
|
|||||||
// [874] phi (byte*) print_char_cursor#32 = (byte*) print_char_cursor#17 [phi:print_str_lines::@2/print_str_lines::@4->print_str_lines::@3#0] -- register_copy
|
// [874] phi (byte*) print_char_cursor#32 = (byte*) print_char_cursor#17 [phi:print_str_lines::@2/print_str_lines::@4->print_str_lines::@3#0] -- register_copy
|
||||||
// print_str_lines::@3
|
// print_str_lines::@3
|
||||||
b3:
|
b3:
|
||||||
// while (ch!='@')
|
// while (ch)
|
||||||
// [875] if((byte) print_str_lines::ch#0!=(byte) '@') goto print_str_lines::@2 -- vbuaa_neq_vbuc1_then_la1
|
// [875] if((byte) 0!=(byte) print_str_lines::ch#0) goto print_str_lines::@2 -- vbuc1_neq_vbuaa_then_la1
|
||||||
cmp #'@'
|
cmp #0
|
||||||
bne b2
|
bne b2
|
||||||
// [876] phi from print_str_lines::@3 to print_str_lines::@5 [phi:print_str_lines::@3->print_str_lines::@5]
|
// [876] phi from print_str_lines::@3 to print_str_lines::@5 [phi:print_str_lines::@3->print_str_lines::@5]
|
||||||
// print_str_lines::@5
|
// print_str_lines::@5
|
||||||
|
@ -4,6 +4,11 @@ Fixing pointer addition (word*~) bsearch16u::$1 ← (word*) bsearch16u::items -
|
|||||||
Fixing pointer array-indexing *((word*) utoa::digit_values + (byte) utoa::digit)
|
Fixing pointer array-indexing *((word*) utoa::digit_values + (byte) utoa::digit)
|
||||||
Fixing pointer array-indexing *((dword*) ultoa::digit_values + (byte) ultoa::digit)
|
Fixing pointer array-indexing *((dword*) ultoa::digit_values + (byte) ultoa::digit)
|
||||||
Warning! Adding boolean cast to non-boolean condition *((byte*) strcpy::src)
|
Warning! Adding boolean cast to non-boolean condition *((byte*) strcpy::src)
|
||||||
|
Warning! Adding boolean cast to non-boolean condition *((byte*) print_str_lines::str)
|
||||||
|
Warning! Adding boolean cast to non-boolean condition (byte) print_str_lines::ch
|
||||||
|
Warning! Adding boolean cast to non-boolean condition *((byte*) print_str::str)
|
||||||
|
Warning! Adding boolean cast to non-boolean condition *((byte*) print_str_at::str)
|
||||||
|
Warning! Adding boolean cast to non-boolean sub-expression (byte) print_str_lines::ch
|
||||||
Identified constant variable (byte*) HEAP_TOP
|
Identified constant variable (byte*) HEAP_TOP
|
||||||
Inlined call (byte~) vicSelectGfxBank::$0 ← call toDd00 (byte*) vicSelectGfxBank::gfx
|
Inlined call (byte~) vicSelectGfxBank::$0 ← call toDd00 (byte*) vicSelectGfxBank::gfx
|
||||||
Culled Empty Block (label) @1
|
Culled Empty Block (label) @1
|
||||||
|
@ -4,6 +4,11 @@ Fixing pointer addition (word*~) bsearch16u::$1 ← (word*) bsearch16u::items -
|
|||||||
Fixing pointer array-indexing *((word*) utoa::digit_values + (byte) utoa::digit)
|
Fixing pointer array-indexing *((word*) utoa::digit_values + (byte) utoa::digit)
|
||||||
Fixing pointer array-indexing *((dword*) ultoa::digit_values + (byte) ultoa::digit)
|
Fixing pointer array-indexing *((dword*) ultoa::digit_values + (byte) ultoa::digit)
|
||||||
Warning! Adding boolean cast to non-boolean condition *((byte*) strcpy::src)
|
Warning! Adding boolean cast to non-boolean condition *((byte*) strcpy::src)
|
||||||
|
Warning! Adding boolean cast to non-boolean condition *((byte*) print_str_lines::str)
|
||||||
|
Warning! Adding boolean cast to non-boolean condition (byte) print_str_lines::ch
|
||||||
|
Warning! Adding boolean cast to non-boolean condition *((byte*) print_str::str)
|
||||||
|
Warning! Adding boolean cast to non-boolean condition *((byte*) print_str_at::str)
|
||||||
|
Warning! Adding boolean cast to non-boolean sub-expression (byte) print_str_lines::ch
|
||||||
Identified constant variable (byte*) HEAP_TOP
|
Identified constant variable (byte*) HEAP_TOP
|
||||||
Inlined call (byte~) vicSelectGfxBank::$0 ← call toDd00 (byte*) vicSelectGfxBank::gfx
|
Inlined call (byte~) vicSelectGfxBank::$0 ← call toDd00 (byte*) vicSelectGfxBank::gfx
|
||||||
Culled Empty Block (label) @1
|
Culled Empty Block (label) @1
|
||||||
|
@ -364,6 +364,11 @@ Rewriting struct pointer member access *((struct SplineVector16*) show_letter::$
|
|||||||
Warning! Adding boolean cast to non-boolean condition *((byte*) strcpy::src)
|
Warning! Adding boolean cast to non-boolean condition *((byte*) strcpy::src)
|
||||||
Warning! Adding boolean cast to non-boolean condition (number~) abs_u16::$1
|
Warning! Adding boolean cast to non-boolean condition (number~) abs_u16::$1
|
||||||
Warning! Adding boolean cast to non-boolean condition (number~) sgn_u16::$1
|
Warning! Adding boolean cast to non-boolean condition (number~) sgn_u16::$1
|
||||||
|
Warning! Adding boolean cast to non-boolean condition *((byte*) print_str_lines::str)
|
||||||
|
Warning! Adding boolean cast to non-boolean condition (byte) print_str_lines::ch
|
||||||
|
Warning! Adding boolean cast to non-boolean condition *((byte*) print_str::str)
|
||||||
|
Warning! Adding boolean cast to non-boolean condition *((byte*) print_str_at::str)
|
||||||
|
Warning! Adding boolean cast to non-boolean sub-expression (byte) print_str_lines::ch
|
||||||
Identified constant variable (byte*) HEAP_TOP
|
Identified constant variable (byte*) HEAP_TOP
|
||||||
Inlined call (byte~) vicSelectGfxBank::$0 ← call toDd00 (byte*) vicSelectGfxBank::gfx
|
Inlined call (byte~) vicSelectGfxBank::$0 ← call toDd00 (byte*) vicSelectGfxBank::gfx
|
||||||
Inlined call call mulf8s_prepare (signed byte) mulf8s::a
|
Inlined call call mulf8s_prepare (signed byte) mulf8s::a
|
||||||
|
@ -110,7 +110,7 @@ print_str: {
|
|||||||
b1:
|
b1:
|
||||||
ldy #0
|
ldy #0
|
||||||
lda (str),y
|
lda (str),y
|
||||||
cmp #'@'
|
cmp #0
|
||||||
bne b2
|
bne b2
|
||||||
rts
|
rts
|
||||||
b2:
|
b2:
|
||||||
|
@ -82,7 +82,7 @@ print_str: scope:[print_str] from assert_byte assert_byte::@1 assert_byte::@3 a
|
|||||||
print_str::@1: scope:[print_str] from print_str print_str::@2
|
print_str::@1: scope:[print_str] from print_str print_str::@2
|
||||||
[37] (byte*) print_char_cursor#2 ← phi( print_str/(byte*) print_char_cursor#80 print_str::@2/(byte*) print_char_cursor#1 )
|
[37] (byte*) print_char_cursor#2 ← phi( print_str/(byte*) print_char_cursor#80 print_str::@2/(byte*) print_char_cursor#1 )
|
||||||
[37] (byte*) print_str::str#10 ← phi( print_str/(byte*) print_str::str#11 print_str::@2/(byte*) print_str::str#0 )
|
[37] (byte*) print_str::str#10 ← phi( print_str/(byte*) print_str::str#11 print_str::@2/(byte*) print_str::str#0 )
|
||||||
[38] if(*((byte*) print_str::str#10)!=(byte) '@') goto print_str::@2
|
[38] if((byte) 0!=*((byte*) print_str::str#10)) goto print_str::@2
|
||||||
to:print_str::@return
|
to:print_str::@return
|
||||||
print_str::@return: scope:[print_str] from print_str::@1
|
print_str::@return: scope:[print_str] from print_str::@1
|
||||||
[39] return
|
[39] return
|
||||||
|
@ -4,6 +4,11 @@ Fixing pointer addition (word*~) bsearch16u::$1 ← (word*) bsearch16u::items -
|
|||||||
Fixing pointer array-indexing *((word*) utoa::digit_values + (byte) utoa::digit)
|
Fixing pointer array-indexing *((word*) utoa::digit_values + (byte) utoa::digit)
|
||||||
Fixing pointer array-indexing *((dword*) ultoa::digit_values + (byte) ultoa::digit)
|
Fixing pointer array-indexing *((dword*) ultoa::digit_values + (byte) ultoa::digit)
|
||||||
Warning! Adding boolean cast to non-boolean condition *((byte*) strcpy::src)
|
Warning! Adding boolean cast to non-boolean condition *((byte*) strcpy::src)
|
||||||
|
Warning! Adding boolean cast to non-boolean condition *((byte*) print_str_lines::str)
|
||||||
|
Warning! Adding boolean cast to non-boolean condition (byte) print_str_lines::ch
|
||||||
|
Warning! Adding boolean cast to non-boolean condition *((byte*) print_str::str)
|
||||||
|
Warning! Adding boolean cast to non-boolean condition *((byte*) print_str_at::str)
|
||||||
|
Warning! Adding boolean cast to non-boolean sub-expression (byte) print_str_lines::ch
|
||||||
Identified constant variable (byte*) HEAP_TOP
|
Identified constant variable (byte*) HEAP_TOP
|
||||||
Identified constant variable (byte) test_bytes::bb
|
Identified constant variable (byte) test_bytes::bb
|
||||||
Identified constant variable (signed byte) test_sbytes::bb
|
Identified constant variable (signed byte) test_sbytes::bb
|
||||||
@ -114,7 +119,7 @@ print_str: scope:[print_str] from assert_byte assert_byte::@1 assert_byte::@3 a
|
|||||||
print_str::@1: scope:[print_str] from print_str print_str::@2
|
print_str::@1: scope:[print_str] from print_str print_str::@2
|
||||||
(byte*) print_char_cursor#66 ← phi( print_str/(byte*) print_char_cursor#80 print_str::@2/(byte*) print_char_cursor#1 )
|
(byte*) print_char_cursor#66 ← phi( print_str/(byte*) print_char_cursor#80 print_str::@2/(byte*) print_char_cursor#1 )
|
||||||
(byte*) print_str::str#9 ← phi( print_str/(byte*) print_str::str#11 print_str::@2/(byte*) print_str::str#0 )
|
(byte*) print_str::str#9 ← phi( print_str/(byte*) print_str::str#11 print_str::@2/(byte*) print_str::str#0 )
|
||||||
(bool~) print_str::$0 ← *((byte*) print_str::str#9) != (byte) '@'
|
(bool~) print_str::$0 ← (number) 0 != *((byte*) print_str::str#9)
|
||||||
if((bool~) print_str::$0) goto print_str::@2
|
if((bool~) print_str::$0) goto print_str::@2
|
||||||
to:print_str::@return
|
to:print_str::@return
|
||||||
print_str::@2: scope:[print_str] from print_str::@1
|
print_str::@2: scope:[print_str] from print_str::@1
|
||||||
@ -857,6 +862,7 @@ SYMBOL TABLE SSA
|
|||||||
(const string) test_sbytes::msg4 = (string) "-127-127=2"
|
(const string) test_sbytes::msg4 = (string) "-127-127=2"
|
||||||
|
|
||||||
Adding number conversion cast (unumber) 0 in (bool~) memset::$0 ← (word) memset::num#1 > (number) 0
|
Adding number conversion cast (unumber) 0 in (bool~) memset::$0 ← (word) memset::num#1 > (number) 0
|
||||||
|
Adding number conversion cast (unumber) 0 in (bool~) print_str::$0 ← (number) 0 != *((byte*) print_str::str#9)
|
||||||
Adding number conversion cast (unumber) $28 in (byte*~) print_ln::$0 ← (byte*) print_line_cursor#24 + (number) $28
|
Adding number conversion cast (unumber) $28 in (byte*~) print_ln::$0 ← (byte*) print_line_cursor#24 + (number) $28
|
||||||
Adding number conversion cast (unumber) $3e8 in (word) memset::num#0 ← (number) $3e8
|
Adding number conversion cast (unumber) $3e8 in (word) memset::num#0 ← (number) $3e8
|
||||||
Adding number conversion cast (unumber) 5 in (byte) GREEN#0 ← (number) 5
|
Adding number conversion cast (unumber) 5 in (byte) GREEN#0 ← (number) 5
|
||||||
@ -903,6 +909,7 @@ Inlining cast (signed byte) assert_sbyte::c#4 ← (snumber)(number) 2
|
|||||||
Successful SSA optimization Pass2InlineCast
|
Successful SSA optimization Pass2InlineCast
|
||||||
Simplifying constant integer cast 0
|
Simplifying constant integer cast 0
|
||||||
Simplifying constant pointer cast (byte*) 1024
|
Simplifying constant pointer cast (byte*) 1024
|
||||||
|
Simplifying constant integer cast 0
|
||||||
Simplifying constant integer cast $28
|
Simplifying constant integer cast $28
|
||||||
Simplifying constant integer cast $3e8
|
Simplifying constant integer cast $3e8
|
||||||
Simplifying constant pointer cast (byte*) 53281
|
Simplifying constant pointer cast (byte*) 53281
|
||||||
@ -924,6 +931,7 @@ Simplifying constant integer cast 2
|
|||||||
Simplifying constant integer cast 2
|
Simplifying constant integer cast 2
|
||||||
Successful SSA optimization PassNCastSimplification
|
Successful SSA optimization PassNCastSimplification
|
||||||
Finalized unsigned number type (byte) 0
|
Finalized unsigned number type (byte) 0
|
||||||
|
Finalized unsigned number type (byte) 0
|
||||||
Finalized unsigned number type (byte) $28
|
Finalized unsigned number type (byte) $28
|
||||||
Finalized unsigned number type (word) $3e8
|
Finalized unsigned number type (word) $3e8
|
||||||
Finalized unsigned number type (byte) 5
|
Finalized unsigned number type (byte) 5
|
||||||
@ -1077,7 +1085,7 @@ Identical Phi Values (byte*) print_char_cursor#67 (byte*) print_char_cursor#2
|
|||||||
Successful SSA optimization Pass2IdenticalPhiElimination
|
Successful SSA optimization Pass2IdenticalPhiElimination
|
||||||
Simple Condition (bool~) memset::$1 [3] if((word) memset::num#0<=(byte) 0) goto memset::@1
|
Simple Condition (bool~) memset::$1 [3] if((word) memset::num#0<=(byte) 0) goto memset::@1
|
||||||
Simple Condition (bool~) memset::$4 [13] if((byte*) memset::dst#2!=(byte*) memset::end#0) goto memset::@5
|
Simple Condition (bool~) memset::$4 [13] if((byte*) memset::dst#2!=(byte*) memset::end#0) goto memset::@5
|
||||||
Simple Condition (bool~) print_str::$0 [26] if(*((byte*) print_str::str#10)!=(byte) '@') goto print_str::@2
|
Simple Condition (bool~) print_str::$0 [26] if((byte) 0!=*((byte*) print_str::str#10)) goto print_str::@2
|
||||||
Simple Condition (bool~) print_ln::$1 [39] if((byte*) print_line_cursor#1<(byte*) print_char_cursor#2) goto print_ln::@1
|
Simple Condition (bool~) print_ln::$1 [39] if((byte*) print_line_cursor#1<(byte*) print_char_cursor#2) goto print_ln::@1
|
||||||
Simple Condition (bool~) assert_byte::$2 [124] if((byte) assert_byte::b#3!=(byte) assert_byte::c#3) goto assert_byte::@1
|
Simple Condition (bool~) assert_byte::$2 [124] if((byte) assert_byte::b#3!=(byte) assert_byte::c#3) goto assert_byte::@1
|
||||||
Simple Condition (bool~) assert_sbyte::$2 [204] if((signed byte) assert_sbyte::b#5!=(signed byte) assert_sbyte::c#5) goto assert_sbyte::@1
|
Simple Condition (bool~) assert_sbyte::$2 [204] if((signed byte) assert_sbyte::b#5!=(signed byte) assert_sbyte::c#5) goto assert_sbyte::@1
|
||||||
@ -1448,7 +1456,7 @@ print_str: scope:[print_str] from assert_byte assert_byte::@1 assert_byte::@3 a
|
|||||||
print_str::@1: scope:[print_str] from print_str print_str::@2
|
print_str::@1: scope:[print_str] from print_str print_str::@2
|
||||||
[37] (byte*) print_char_cursor#2 ← phi( print_str/(byte*) print_char_cursor#80 print_str::@2/(byte*) print_char_cursor#1 )
|
[37] (byte*) print_char_cursor#2 ← phi( print_str/(byte*) print_char_cursor#80 print_str::@2/(byte*) print_char_cursor#1 )
|
||||||
[37] (byte*) print_str::str#10 ← phi( print_str/(byte*) print_str::str#11 print_str::@2/(byte*) print_str::str#0 )
|
[37] (byte*) print_str::str#10 ← phi( print_str/(byte*) print_str::str#11 print_str::@2/(byte*) print_str::str#0 )
|
||||||
[38] if(*((byte*) print_str::str#10)!=(byte) '@') goto print_str::@2
|
[38] if((byte) 0!=*((byte*) print_str::str#10)) goto print_str::@2
|
||||||
to:print_str::@return
|
to:print_str::@return
|
||||||
print_str::@return: scope:[print_str] from print_str::@1
|
print_str::@return: scope:[print_str] from print_str::@1
|
||||||
[39] return
|
[39] return
|
||||||
@ -1913,10 +1921,10 @@ print_str: {
|
|||||||
jmp b1
|
jmp b1
|
||||||
// print_str::@1
|
// print_str::@1
|
||||||
b1:
|
b1:
|
||||||
// [38] if(*((byte*) print_str::str#10)!=(byte) '@') goto print_str::@2 -- _deref_pbuz1_neq_vbuc1_then_la1
|
// [38] if((byte) 0!=*((byte*) print_str::str#10)) goto print_str::@2 -- vbuc1_neq__deref_pbuz1_then_la1
|
||||||
ldy #0
|
ldy #0
|
||||||
lda (str),y
|
lda (str),y
|
||||||
cmp #'@'
|
cmp #0
|
||||||
bne b2
|
bne b2
|
||||||
jmp breturn
|
jmp breturn
|
||||||
// print_str::@return
|
// print_str::@return
|
||||||
@ -2230,7 +2238,7 @@ Removing always clobbered register reg byte a as potential for zp ZP_BYTE:4 [ as
|
|||||||
Removing always clobbered register reg byte a as potential for zp ZP_BYTE:5 [ assert_sbyte::c#5 ]
|
Removing always clobbered register reg byte a as potential for zp ZP_BYTE:5 [ assert_sbyte::c#5 ]
|
||||||
Statement [24] (byte*~) print_char_cursor#86 ← (byte*) print_line_cursor#1 [ assert_sbyte::b#5 assert_sbyte::c#5 print_str::str#5 print_char_cursor#86 print_line_cursor#1 ] ( main:2::test_sbytes:9::assert_sbyte:12 [ assert_sbyte::b#5 assert_sbyte::c#5 print_str::str#5 print_char_cursor#86 print_line_cursor#1 ] main:2::test_sbytes:9::assert_sbyte:14 [ assert_sbyte::b#5 assert_sbyte::c#5 print_str::str#5 print_char_cursor#86 print_line_cursor#1 ] main:2::test_sbytes:9::assert_sbyte:16 [ assert_sbyte::b#5 assert_sbyte::c#5 print_str::str#5 print_char_cursor#86 print_line_cursor#1 ] main:2::test_sbytes:9::assert_sbyte:18 [ assert_sbyte::b#5 assert_sbyte::c#5 print_str::str#5 print_char_cursor#86 print_line_cursor#1 ] main:2::test_sbytes:9::assert_sbyte:20 [ assert_sbyte::b#5 assert_sbyte::c#5 print_str::str#5 print_char_cursor#86 print_line_cursor#1 ] ) always clobbers reg byte a
|
Statement [24] (byte*~) print_char_cursor#86 ← (byte*) print_line_cursor#1 [ assert_sbyte::b#5 assert_sbyte::c#5 print_str::str#5 print_char_cursor#86 print_line_cursor#1 ] ( main:2::test_sbytes:9::assert_sbyte:12 [ assert_sbyte::b#5 assert_sbyte::c#5 print_str::str#5 print_char_cursor#86 print_line_cursor#1 ] main:2::test_sbytes:9::assert_sbyte:14 [ assert_sbyte::b#5 assert_sbyte::c#5 print_str::str#5 print_char_cursor#86 print_line_cursor#1 ] main:2::test_sbytes:9::assert_sbyte:16 [ assert_sbyte::b#5 assert_sbyte::c#5 print_str::str#5 print_char_cursor#86 print_line_cursor#1 ] main:2::test_sbytes:9::assert_sbyte:18 [ assert_sbyte::b#5 assert_sbyte::c#5 print_str::str#5 print_char_cursor#86 print_line_cursor#1 ] main:2::test_sbytes:9::assert_sbyte:20 [ assert_sbyte::b#5 assert_sbyte::c#5 print_str::str#5 print_char_cursor#86 print_line_cursor#1 ] ) always clobbers reg byte a
|
||||||
Statement [34] *((const byte*) BGCOL#0) ← (const byte) RED#0 [ print_line_cursor#1 print_char_cursor#2 ] ( main:2::test_sbytes:9::assert_sbyte:12 [ print_line_cursor#1 print_char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:14 [ print_line_cursor#1 print_char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:16 [ print_line_cursor#1 print_char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:18 [ print_line_cursor#1 print_char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:20 [ print_line_cursor#1 print_char_cursor#2 ] ) always clobbers reg byte a
|
Statement [34] *((const byte*) BGCOL#0) ← (const byte) RED#0 [ print_line_cursor#1 print_char_cursor#2 ] ( main:2::test_sbytes:9::assert_sbyte:12 [ print_line_cursor#1 print_char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:14 [ print_line_cursor#1 print_char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:16 [ print_line_cursor#1 print_char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:18 [ print_line_cursor#1 print_char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:20 [ print_line_cursor#1 print_char_cursor#2 ] ) always clobbers reg byte a
|
||||||
Statement [38] if(*((byte*) print_str::str#10)!=(byte) '@') goto print_str::@2 [ print_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 print_line_cursor#1 print_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 print_line_cursor#1 print_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 print_line_cursor#1 print_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 print_line_cursor#1 print_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 print_line_cursor#1 print_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 print_line_cursor#1 print_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 print_line_cursor#1 print_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 print_line_cursor#1 print_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 print_line_cursor#1 print_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 print_line_cursor#1 print_char_cursor#2 print_str::str#10 ] main:2::test_sbytes:9::assert_sbyte:12::print_str:30 [ print_line_cursor#1 print_char_cursor#2 print_str::str#10 ] main:2::test_sbytes:9::assert_sbyte:14::print_str:30 [ print_line_cursor#1 print_char_cursor#2 print_str::str#10 ] main:2::test_sbytes:9::assert_sbyte:16::print_str:30 [ print_line_cursor#1 print_char_cursor#2 print_str::str#10 ] main:2::test_sbytes:9::assert_sbyte:18::print_str:30 [ print_line_cursor#1 print_char_cursor#2 print_str::str#10 ] main:2::test_sbytes:9::assert_sbyte:20::print_str:30 [ print_line_cursor#1 print_char_cursor#2 print_str::str#10 ] main:2::test_sbytes:9::assert_sbyte:12::print_str:35 [ print_line_cursor#1 print_char_cursor#2 print_str::str#10 ] main:2::test_sbytes:9::assert_sbyte:14::print_str:35 [ print_line_cursor#1 print_char_cursor#2 print_str::str#10 ] main:2::test_sbytes:9::assert_sbyte:16::print_str:35 [ print_line_cursor#1 print_char_cursor#2 print_str::str#10 ] main:2::test_sbytes:9::assert_sbyte:18::print_str:35 [ print_line_cursor#1 print_char_cursor#2 print_str::str#10 ] main:2::test_sbytes:9::assert_sbyte:20::print_str:35 [ print_line_cursor#1 print_char_cursor#2 print_str::str#10 ] main:2::test_bytes:7::assert_byte:49::print_str:57 [ print_line_cursor#50 assert_byte::b#3 assert_byte::c#3 print_char_cursor#2 print_str::str#10 ] main:2::test_bytes:7::assert_byte:51::print_str:57 [ print_line_cursor#50 assert_byte::b#3 assert_byte::c#3 print_char_cursor#2 print_str::str#10 ] main:2::test_bytes:7::assert_byte:53::print_str:57 [ print_line_cursor#50 assert_byte::b#3 assert_byte::c#3 print_char_cursor#2 print_str::str#10 ] main:2::test_bytes:7::assert_byte:49::print_str:59 [ print_line_cursor#50 assert_byte::b#3 assert_byte::c#3 print_char_cursor#2 print_str::str#10 ] main:2::test_bytes:7::assert_byte:51::print_str:59 [ print_line_cursor#50 assert_byte::b#3 assert_byte::c#3 print_char_cursor#2 print_str::str#10 ] main:2::test_bytes:7::assert_byte:53::print_str:59 [ print_line_cursor#50 assert_byte::b#3 assert_byte::c#3 print_char_cursor#2 print_str::str#10 ] main:2::test_bytes:7::assert_byte:49::print_str:62 [ print_line_cursor#50 print_char_cursor#2 print_str::str#10 ] main:2::test_bytes:7::assert_byte:51::print_str:62 [ print_line_cursor#50 print_char_cursor#2 print_str::str#10 ] main:2::test_bytes:7::assert_byte:53::print_str:62 [ print_line_cursor#50 print_char_cursor#2 print_str::str#10 ] main:2::test_bytes:7::assert_byte:49::print_str:67 [ print_line_cursor#50 print_char_cursor#2 print_str::str#10 ] main:2::test_bytes:7::assert_byte:51::print_str:67 [ print_line_cursor#50 print_char_cursor#2 print_str::str#10 ] main:2::test_bytes:7::assert_byte:53::print_str:67 [ print_line_cursor#50 print_char_cursor#2 print_str::str#10 ] ) always clobbers reg byte a reg byte y
|
Statement [38] if((byte) 0!=*((byte*) print_str::str#10)) goto print_str::@2 [ print_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 print_line_cursor#1 print_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 print_line_cursor#1 print_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 print_line_cursor#1 print_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 print_line_cursor#1 print_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 print_line_cursor#1 print_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 print_line_cursor#1 print_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 print_line_cursor#1 print_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 print_line_cursor#1 print_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 print_line_cursor#1 print_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 print_line_cursor#1 print_char_cursor#2 print_str::str#10 ] main:2::test_sbytes:9::assert_sbyte:12::print_str:30 [ print_line_cursor#1 print_char_cursor#2 print_str::str#10 ] main:2::test_sbytes:9::assert_sbyte:14::print_str:30 [ print_line_cursor#1 print_char_cursor#2 print_str::str#10 ] main:2::test_sbytes:9::assert_sbyte:16::print_str:30 [ print_line_cursor#1 print_char_cursor#2 print_str::str#10 ] main:2::test_sbytes:9::assert_sbyte:18::print_str:30 [ print_line_cursor#1 print_char_cursor#2 print_str::str#10 ] main:2::test_sbytes:9::assert_sbyte:20::print_str:30 [ print_line_cursor#1 print_char_cursor#2 print_str::str#10 ] main:2::test_sbytes:9::assert_sbyte:12::print_str:35 [ print_line_cursor#1 print_char_cursor#2 print_str::str#10 ] main:2::test_sbytes:9::assert_sbyte:14::print_str:35 [ print_line_cursor#1 print_char_cursor#2 print_str::str#10 ] main:2::test_sbytes:9::assert_sbyte:16::print_str:35 [ print_line_cursor#1 print_char_cursor#2 print_str::str#10 ] main:2::test_sbytes:9::assert_sbyte:18::print_str:35 [ print_line_cursor#1 print_char_cursor#2 print_str::str#10 ] main:2::test_sbytes:9::assert_sbyte:20::print_str:35 [ print_line_cursor#1 print_char_cursor#2 print_str::str#10 ] main:2::test_bytes:7::assert_byte:49::print_str:57 [ print_line_cursor#50 assert_byte::b#3 assert_byte::c#3 print_char_cursor#2 print_str::str#10 ] main:2::test_bytes:7::assert_byte:51::print_str:57 [ print_line_cursor#50 assert_byte::b#3 assert_byte::c#3 print_char_cursor#2 print_str::str#10 ] main:2::test_bytes:7::assert_byte:53::print_str:57 [ print_line_cursor#50 assert_byte::b#3 assert_byte::c#3 print_char_cursor#2 print_str::str#10 ] main:2::test_bytes:7::assert_byte:49::print_str:59 [ print_line_cursor#50 assert_byte::b#3 assert_byte::c#3 print_char_cursor#2 print_str::str#10 ] main:2::test_bytes:7::assert_byte:51::print_str:59 [ print_line_cursor#50 assert_byte::b#3 assert_byte::c#3 print_char_cursor#2 print_str::str#10 ] main:2::test_bytes:7::assert_byte:53::print_str:59 [ print_line_cursor#50 assert_byte::b#3 assert_byte::c#3 print_char_cursor#2 print_str::str#10 ] main:2::test_bytes:7::assert_byte:49::print_str:62 [ print_line_cursor#50 print_char_cursor#2 print_str::str#10 ] main:2::test_bytes:7::assert_byte:51::print_str:62 [ print_line_cursor#50 print_char_cursor#2 print_str::str#10 ] main:2::test_bytes:7::assert_byte:53::print_str:62 [ print_line_cursor#50 print_char_cursor#2 print_str::str#10 ] main:2::test_bytes:7::assert_byte:49::print_str:67 [ print_line_cursor#50 print_char_cursor#2 print_str::str#10 ] main:2::test_bytes:7::assert_byte:51::print_str:67 [ print_line_cursor#50 print_char_cursor#2 print_str::str#10 ] main:2::test_bytes:7::assert_byte:53::print_str:67 [ print_line_cursor#50 print_char_cursor#2 print_str::str#10 ] ) always clobbers reg byte a reg byte y
|
||||||
Removing always clobbered register reg byte y as potential for zp ZP_BYTE:4 [ assert_sbyte::b#5 ]
|
Removing always clobbered register reg byte y as potential for zp ZP_BYTE:4 [ assert_sbyte::b#5 ]
|
||||||
Removing always clobbered register reg byte y as potential for zp ZP_BYTE:5 [ assert_sbyte::c#5 ]
|
Removing always clobbered register reg byte y as potential for zp ZP_BYTE:5 [ assert_sbyte::c#5 ]
|
||||||
Removing always clobbered register reg byte a as potential for zp ZP_BYTE:14 [ assert_byte::b#3 ]
|
Removing always clobbered register reg byte a as potential for zp ZP_BYTE:14 [ assert_byte::b#3 ]
|
||||||
@ -2250,7 +2258,7 @@ Statement [6] *((const byte*) BGCOL#0) ← (const byte) GREEN#0 [ ] ( main:2 [ ]
|
|||||||
Statement [23] (byte*) print_str::str#5 ← (byte*) assert_sbyte::msg#5 [ assert_sbyte::b#5 assert_sbyte::c#5 print_str::str#5 print_line_cursor#1 ] ( main:2::test_sbytes:9::assert_sbyte:12 [ assert_sbyte::b#5 assert_sbyte::c#5 print_str::str#5 print_line_cursor#1 ] main:2::test_sbytes:9::assert_sbyte:14 [ assert_sbyte::b#5 assert_sbyte::c#5 print_str::str#5 print_line_cursor#1 ] main:2::test_sbytes:9::assert_sbyte:16 [ assert_sbyte::b#5 assert_sbyte::c#5 print_str::str#5 print_line_cursor#1 ] main:2::test_sbytes:9::assert_sbyte:18 [ assert_sbyte::b#5 assert_sbyte::c#5 print_str::str#5 print_line_cursor#1 ] main:2::test_sbytes:9::assert_sbyte:20 [ assert_sbyte::b#5 assert_sbyte::c#5 print_str::str#5 print_line_cursor#1 ] ) 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 print_line_cursor#1 ] ( main:2::test_sbytes:9::assert_sbyte:12 [ assert_sbyte::b#5 assert_sbyte::c#5 print_str::str#5 print_line_cursor#1 ] main:2::test_sbytes:9::assert_sbyte:14 [ assert_sbyte::b#5 assert_sbyte::c#5 print_str::str#5 print_line_cursor#1 ] main:2::test_sbytes:9::assert_sbyte:16 [ assert_sbyte::b#5 assert_sbyte::c#5 print_str::str#5 print_line_cursor#1 ] main:2::test_sbytes:9::assert_sbyte:18 [ assert_sbyte::b#5 assert_sbyte::c#5 print_str::str#5 print_line_cursor#1 ] main:2::test_sbytes:9::assert_sbyte:20 [ assert_sbyte::b#5 assert_sbyte::c#5 print_str::str#5 print_line_cursor#1 ] ) always clobbers reg byte a
|
||||||
Statement [24] (byte*~) print_char_cursor#86 ← (byte*) print_line_cursor#1 [ assert_sbyte::b#5 assert_sbyte::c#5 print_str::str#5 print_char_cursor#86 print_line_cursor#1 ] ( main:2::test_sbytes:9::assert_sbyte:12 [ assert_sbyte::b#5 assert_sbyte::c#5 print_str::str#5 print_char_cursor#86 print_line_cursor#1 ] main:2::test_sbytes:9::assert_sbyte:14 [ assert_sbyte::b#5 assert_sbyte::c#5 print_str::str#5 print_char_cursor#86 print_line_cursor#1 ] main:2::test_sbytes:9::assert_sbyte:16 [ assert_sbyte::b#5 assert_sbyte::c#5 print_str::str#5 print_char_cursor#86 print_line_cursor#1 ] main:2::test_sbytes:9::assert_sbyte:18 [ assert_sbyte::b#5 assert_sbyte::c#5 print_str::str#5 print_char_cursor#86 print_line_cursor#1 ] main:2::test_sbytes:9::assert_sbyte:20 [ assert_sbyte::b#5 assert_sbyte::c#5 print_str::str#5 print_char_cursor#86 print_line_cursor#1 ] ) always clobbers reg byte a
|
Statement [24] (byte*~) print_char_cursor#86 ← (byte*) print_line_cursor#1 [ assert_sbyte::b#5 assert_sbyte::c#5 print_str::str#5 print_char_cursor#86 print_line_cursor#1 ] ( main:2::test_sbytes:9::assert_sbyte:12 [ assert_sbyte::b#5 assert_sbyte::c#5 print_str::str#5 print_char_cursor#86 print_line_cursor#1 ] main:2::test_sbytes:9::assert_sbyte:14 [ assert_sbyte::b#5 assert_sbyte::c#5 print_str::str#5 print_char_cursor#86 print_line_cursor#1 ] main:2::test_sbytes:9::assert_sbyte:16 [ assert_sbyte::b#5 assert_sbyte::c#5 print_str::str#5 print_char_cursor#86 print_line_cursor#1 ] main:2::test_sbytes:9::assert_sbyte:18 [ assert_sbyte::b#5 assert_sbyte::c#5 print_str::str#5 print_char_cursor#86 print_line_cursor#1 ] main:2::test_sbytes:9::assert_sbyte:20 [ assert_sbyte::b#5 assert_sbyte::c#5 print_str::str#5 print_char_cursor#86 print_line_cursor#1 ] ) always clobbers reg byte a
|
||||||
Statement [34] *((const byte*) BGCOL#0) ← (const byte) RED#0 [ print_line_cursor#1 print_char_cursor#2 ] ( main:2::test_sbytes:9::assert_sbyte:12 [ print_line_cursor#1 print_char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:14 [ print_line_cursor#1 print_char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:16 [ print_line_cursor#1 print_char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:18 [ print_line_cursor#1 print_char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:20 [ print_line_cursor#1 print_char_cursor#2 ] ) always clobbers reg byte a
|
Statement [34] *((const byte*) BGCOL#0) ← (const byte) RED#0 [ print_line_cursor#1 print_char_cursor#2 ] ( main:2::test_sbytes:9::assert_sbyte:12 [ print_line_cursor#1 print_char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:14 [ print_line_cursor#1 print_char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:16 [ print_line_cursor#1 print_char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:18 [ print_line_cursor#1 print_char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:20 [ print_line_cursor#1 print_char_cursor#2 ] ) always clobbers reg byte a
|
||||||
Statement [38] if(*((byte*) print_str::str#10)!=(byte) '@') goto print_str::@2 [ print_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 print_line_cursor#1 print_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 print_line_cursor#1 print_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 print_line_cursor#1 print_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 print_line_cursor#1 print_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 print_line_cursor#1 print_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 print_line_cursor#1 print_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 print_line_cursor#1 print_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 print_line_cursor#1 print_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 print_line_cursor#1 print_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 print_line_cursor#1 print_char_cursor#2 print_str::str#10 ] main:2::test_sbytes:9::assert_sbyte:12::print_str:30 [ print_line_cursor#1 print_char_cursor#2 print_str::str#10 ] main:2::test_sbytes:9::assert_sbyte:14::print_str:30 [ print_line_cursor#1 print_char_cursor#2 print_str::str#10 ] main:2::test_sbytes:9::assert_sbyte:16::print_str:30 [ print_line_cursor#1 print_char_cursor#2 print_str::str#10 ] main:2::test_sbytes:9::assert_sbyte:18::print_str:30 [ print_line_cursor#1 print_char_cursor#2 print_str::str#10 ] main:2::test_sbytes:9::assert_sbyte:20::print_str:30 [ print_line_cursor#1 print_char_cursor#2 print_str::str#10 ] main:2::test_sbytes:9::assert_sbyte:12::print_str:35 [ print_line_cursor#1 print_char_cursor#2 print_str::str#10 ] main:2::test_sbytes:9::assert_sbyte:14::print_str:35 [ print_line_cursor#1 print_char_cursor#2 print_str::str#10 ] main:2::test_sbytes:9::assert_sbyte:16::print_str:35 [ print_line_cursor#1 print_char_cursor#2 print_str::str#10 ] main:2::test_sbytes:9::assert_sbyte:18::print_str:35 [ print_line_cursor#1 print_char_cursor#2 print_str::str#10 ] main:2::test_sbytes:9::assert_sbyte:20::print_str:35 [ print_line_cursor#1 print_char_cursor#2 print_str::str#10 ] main:2::test_bytes:7::assert_byte:49::print_str:57 [ print_line_cursor#50 assert_byte::b#3 assert_byte::c#3 print_char_cursor#2 print_str::str#10 ] main:2::test_bytes:7::assert_byte:51::print_str:57 [ print_line_cursor#50 assert_byte::b#3 assert_byte::c#3 print_char_cursor#2 print_str::str#10 ] main:2::test_bytes:7::assert_byte:53::print_str:57 [ print_line_cursor#50 assert_byte::b#3 assert_byte::c#3 print_char_cursor#2 print_str::str#10 ] main:2::test_bytes:7::assert_byte:49::print_str:59 [ print_line_cursor#50 assert_byte::b#3 assert_byte::c#3 print_char_cursor#2 print_str::str#10 ] main:2::test_bytes:7::assert_byte:51::print_str:59 [ print_line_cursor#50 assert_byte::b#3 assert_byte::c#3 print_char_cursor#2 print_str::str#10 ] main:2::test_bytes:7::assert_byte:53::print_str:59 [ print_line_cursor#50 assert_byte::b#3 assert_byte::c#3 print_char_cursor#2 print_str::str#10 ] main:2::test_bytes:7::assert_byte:49::print_str:62 [ print_line_cursor#50 print_char_cursor#2 print_str::str#10 ] main:2::test_bytes:7::assert_byte:51::print_str:62 [ print_line_cursor#50 print_char_cursor#2 print_str::str#10 ] main:2::test_bytes:7::assert_byte:53::print_str:62 [ print_line_cursor#50 print_char_cursor#2 print_str::str#10 ] main:2::test_bytes:7::assert_byte:49::print_str:67 [ print_line_cursor#50 print_char_cursor#2 print_str::str#10 ] main:2::test_bytes:7::assert_byte:51::print_str:67 [ print_line_cursor#50 print_char_cursor#2 print_str::str#10 ] main:2::test_bytes:7::assert_byte:53::print_str:67 [ print_line_cursor#50 print_char_cursor#2 print_str::str#10 ] ) always clobbers reg byte a reg byte y
|
Statement [38] if((byte) 0!=*((byte*) print_str::str#10)) goto print_str::@2 [ print_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 print_line_cursor#1 print_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 print_line_cursor#1 print_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 print_line_cursor#1 print_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 print_line_cursor#1 print_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 print_line_cursor#1 print_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 print_line_cursor#1 print_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 print_line_cursor#1 print_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 print_line_cursor#1 print_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 print_line_cursor#1 print_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 print_line_cursor#1 print_char_cursor#2 print_str::str#10 ] main:2::test_sbytes:9::assert_sbyte:12::print_str:30 [ print_line_cursor#1 print_char_cursor#2 print_str::str#10 ] main:2::test_sbytes:9::assert_sbyte:14::print_str:30 [ print_line_cursor#1 print_char_cursor#2 print_str::str#10 ] main:2::test_sbytes:9::assert_sbyte:16::print_str:30 [ print_line_cursor#1 print_char_cursor#2 print_str::str#10 ] main:2::test_sbytes:9::assert_sbyte:18::print_str:30 [ print_line_cursor#1 print_char_cursor#2 print_str::str#10 ] main:2::test_sbytes:9::assert_sbyte:20::print_str:30 [ print_line_cursor#1 print_char_cursor#2 print_str::str#10 ] main:2::test_sbytes:9::assert_sbyte:12::print_str:35 [ print_line_cursor#1 print_char_cursor#2 print_str::str#10 ] main:2::test_sbytes:9::assert_sbyte:14::print_str:35 [ print_line_cursor#1 print_char_cursor#2 print_str::str#10 ] main:2::test_sbytes:9::assert_sbyte:16::print_str:35 [ print_line_cursor#1 print_char_cursor#2 print_str::str#10 ] main:2::test_sbytes:9::assert_sbyte:18::print_str:35 [ print_line_cursor#1 print_char_cursor#2 print_str::str#10 ] main:2::test_sbytes:9::assert_sbyte:20::print_str:35 [ print_line_cursor#1 print_char_cursor#2 print_str::str#10 ] main:2::test_bytes:7::assert_byte:49::print_str:57 [ print_line_cursor#50 assert_byte::b#3 assert_byte::c#3 print_char_cursor#2 print_str::str#10 ] main:2::test_bytes:7::assert_byte:51::print_str:57 [ print_line_cursor#50 assert_byte::b#3 assert_byte::c#3 print_char_cursor#2 print_str::str#10 ] main:2::test_bytes:7::assert_byte:53::print_str:57 [ print_line_cursor#50 assert_byte::b#3 assert_byte::c#3 print_char_cursor#2 print_str::str#10 ] main:2::test_bytes:7::assert_byte:49::print_str:59 [ print_line_cursor#50 assert_byte::b#3 assert_byte::c#3 print_char_cursor#2 print_str::str#10 ] main:2::test_bytes:7::assert_byte:51::print_str:59 [ print_line_cursor#50 assert_byte::b#3 assert_byte::c#3 print_char_cursor#2 print_str::str#10 ] main:2::test_bytes:7::assert_byte:53::print_str:59 [ print_line_cursor#50 assert_byte::b#3 assert_byte::c#3 print_char_cursor#2 print_str::str#10 ] main:2::test_bytes:7::assert_byte:49::print_str:62 [ print_line_cursor#50 print_char_cursor#2 print_str::str#10 ] main:2::test_bytes:7::assert_byte:51::print_str:62 [ print_line_cursor#50 print_char_cursor#2 print_str::str#10 ] main:2::test_bytes:7::assert_byte:53::print_str:62 [ print_line_cursor#50 print_char_cursor#2 print_str::str#10 ] main:2::test_bytes:7::assert_byte:49::print_str:67 [ print_line_cursor#50 print_char_cursor#2 print_str::str#10 ] main:2::test_bytes:7::assert_byte:51::print_str:67 [ print_line_cursor#50 print_char_cursor#2 print_str::str#10 ] main:2::test_bytes:7::assert_byte:53::print_str:67 [ print_line_cursor#50 print_char_cursor#2 print_str::str#10 ] ) always clobbers reg byte a reg byte y
|
||||||
Statement [40] *((byte*) print_char_cursor#2) ← *((byte*) print_str::str#10) [ print_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 print_line_cursor#1 print_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 print_line_cursor#1 print_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 print_line_cursor#1 print_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 print_line_cursor#1 print_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 print_line_cursor#1 print_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 print_line_cursor#1 print_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 print_line_cursor#1 print_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 print_line_cursor#1 print_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 print_line_cursor#1 print_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 print_line_cursor#1 print_char_cursor#2 print_str::str#10 ] main:2::test_sbytes:9::assert_sbyte:12::print_str:30 [ print_line_cursor#1 print_char_cursor#2 print_str::str#10 ] main:2::test_sbytes:9::assert_sbyte:14::print_str:30 [ print_line_cursor#1 print_char_cursor#2 print_str::str#10 ] main:2::test_sbytes:9::assert_sbyte:16::print_str:30 [ print_line_cursor#1 print_char_cursor#2 print_str::str#10 ] main:2::test_sbytes:9::assert_sbyte:18::print_str:30 [ print_line_cursor#1 print_char_cursor#2 print_str::str#10 ] main:2::test_sbytes:9::assert_sbyte:20::print_str:30 [ print_line_cursor#1 print_char_cursor#2 print_str::str#10 ] main:2::test_sbytes:9::assert_sbyte:12::print_str:35 [ print_line_cursor#1 print_char_cursor#2 print_str::str#10 ] main:2::test_sbytes:9::assert_sbyte:14::print_str:35 [ print_line_cursor#1 print_char_cursor#2 print_str::str#10 ] main:2::test_sbytes:9::assert_sbyte:16::print_str:35 [ print_line_cursor#1 print_char_cursor#2 print_str::str#10 ] main:2::test_sbytes:9::assert_sbyte:18::print_str:35 [ print_line_cursor#1 print_char_cursor#2 print_str::str#10 ] main:2::test_sbytes:9::assert_sbyte:20::print_str:35 [ print_line_cursor#1 print_char_cursor#2 print_str::str#10 ] main:2::test_bytes:7::assert_byte:49::print_str:57 [ print_line_cursor#50 assert_byte::b#3 assert_byte::c#3 print_char_cursor#2 print_str::str#10 ] main:2::test_bytes:7::assert_byte:51::print_str:57 [ print_line_cursor#50 assert_byte::b#3 assert_byte::c#3 print_char_cursor#2 print_str::str#10 ] main:2::test_bytes:7::assert_byte:53::print_str:57 [ print_line_cursor#50 assert_byte::b#3 assert_byte::c#3 print_char_cursor#2 print_str::str#10 ] main:2::test_bytes:7::assert_byte:49::print_str:59 [ print_line_cursor#50 assert_byte::b#3 assert_byte::c#3 print_char_cursor#2 print_str::str#10 ] main:2::test_bytes:7::assert_byte:51::print_str:59 [ print_line_cursor#50 assert_byte::b#3 assert_byte::c#3 print_char_cursor#2 print_str::str#10 ] main:2::test_bytes:7::assert_byte:53::print_str:59 [ print_line_cursor#50 assert_byte::b#3 assert_byte::c#3 print_char_cursor#2 print_str::str#10 ] main:2::test_bytes:7::assert_byte:49::print_str:62 [ print_line_cursor#50 print_char_cursor#2 print_str::str#10 ] main:2::test_bytes:7::assert_byte:51::print_str:62 [ print_line_cursor#50 print_char_cursor#2 print_str::str#10 ] main:2::test_bytes:7::assert_byte:53::print_str:62 [ print_line_cursor#50 print_char_cursor#2 print_str::str#10 ] main:2::test_bytes:7::assert_byte:49::print_str:67 [ print_line_cursor#50 print_char_cursor#2 print_str::str#10 ] main:2::test_bytes:7::assert_byte:51::print_str:67 [ print_line_cursor#50 print_char_cursor#2 print_str::str#10 ] main:2::test_bytes:7::assert_byte:53::print_str:67 [ print_line_cursor#50 print_char_cursor#2 print_str::str#10 ] ) always clobbers reg byte a reg byte y
|
Statement [40] *((byte*) print_char_cursor#2) ← *((byte*) print_str::str#10) [ print_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 print_line_cursor#1 print_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 print_line_cursor#1 print_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 print_line_cursor#1 print_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 print_line_cursor#1 print_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 print_line_cursor#1 print_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 print_line_cursor#1 print_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 print_line_cursor#1 print_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 print_line_cursor#1 print_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 print_line_cursor#1 print_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 print_line_cursor#1 print_char_cursor#2 print_str::str#10 ] main:2::test_sbytes:9::assert_sbyte:12::print_str:30 [ print_line_cursor#1 print_char_cursor#2 print_str::str#10 ] main:2::test_sbytes:9::assert_sbyte:14::print_str:30 [ print_line_cursor#1 print_char_cursor#2 print_str::str#10 ] main:2::test_sbytes:9::assert_sbyte:16::print_str:30 [ print_line_cursor#1 print_char_cursor#2 print_str::str#10 ] main:2::test_sbytes:9::assert_sbyte:18::print_str:30 [ print_line_cursor#1 print_char_cursor#2 print_str::str#10 ] main:2::test_sbytes:9::assert_sbyte:20::print_str:30 [ print_line_cursor#1 print_char_cursor#2 print_str::str#10 ] main:2::test_sbytes:9::assert_sbyte:12::print_str:35 [ print_line_cursor#1 print_char_cursor#2 print_str::str#10 ] main:2::test_sbytes:9::assert_sbyte:14::print_str:35 [ print_line_cursor#1 print_char_cursor#2 print_str::str#10 ] main:2::test_sbytes:9::assert_sbyte:16::print_str:35 [ print_line_cursor#1 print_char_cursor#2 print_str::str#10 ] main:2::test_sbytes:9::assert_sbyte:18::print_str:35 [ print_line_cursor#1 print_char_cursor#2 print_str::str#10 ] main:2::test_sbytes:9::assert_sbyte:20::print_str:35 [ print_line_cursor#1 print_char_cursor#2 print_str::str#10 ] main:2::test_bytes:7::assert_byte:49::print_str:57 [ print_line_cursor#50 assert_byte::b#3 assert_byte::c#3 print_char_cursor#2 print_str::str#10 ] main:2::test_bytes:7::assert_byte:51::print_str:57 [ print_line_cursor#50 assert_byte::b#3 assert_byte::c#3 print_char_cursor#2 print_str::str#10 ] main:2::test_bytes:7::assert_byte:53::print_str:57 [ print_line_cursor#50 assert_byte::b#3 assert_byte::c#3 print_char_cursor#2 print_str::str#10 ] main:2::test_bytes:7::assert_byte:49::print_str:59 [ print_line_cursor#50 assert_byte::b#3 assert_byte::c#3 print_char_cursor#2 print_str::str#10 ] main:2::test_bytes:7::assert_byte:51::print_str:59 [ print_line_cursor#50 assert_byte::b#3 assert_byte::c#3 print_char_cursor#2 print_str::str#10 ] main:2::test_bytes:7::assert_byte:53::print_str:59 [ print_line_cursor#50 assert_byte::b#3 assert_byte::c#3 print_char_cursor#2 print_str::str#10 ] main:2::test_bytes:7::assert_byte:49::print_str:62 [ print_line_cursor#50 print_char_cursor#2 print_str::str#10 ] main:2::test_bytes:7::assert_byte:51::print_str:62 [ print_line_cursor#50 print_char_cursor#2 print_str::str#10 ] main:2::test_bytes:7::assert_byte:53::print_str:62 [ print_line_cursor#50 print_char_cursor#2 print_str::str#10 ] main:2::test_bytes:7::assert_byte:49::print_str:67 [ print_line_cursor#50 print_char_cursor#2 print_str::str#10 ] main:2::test_bytes:7::assert_byte:51::print_str:67 [ print_line_cursor#50 print_char_cursor#2 print_str::str#10 ] main:2::test_bytes:7::assert_byte:53::print_str:67 [ print_line_cursor#50 print_char_cursor#2 print_str::str#10 ] ) always clobbers reg byte a reg byte y
|
||||||
Statement [45] (byte*) print_line_cursor#1 ← (byte*) print_line_cursor#24 + (byte) $28 [ print_line_cursor#1 print_char_cursor#2 ] ( main:2::test_sbytes:9::assert_sbyte:12::print_ln:32 [ print_line_cursor#1 print_char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:14::print_ln:32 [ print_line_cursor#1 print_char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:16::print_ln:32 [ print_line_cursor#1 print_char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:18::print_ln:32 [ print_line_cursor#1 print_char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:20::print_ln:32 [ print_line_cursor#1 print_char_cursor#2 ] main:2::test_bytes:7::assert_byte:49::print_ln:64 [ print_line_cursor#1 print_char_cursor#2 ] main:2::test_bytes:7::assert_byte:51::print_ln:64 [ print_line_cursor#1 print_char_cursor#2 ] main:2::test_bytes:7::assert_byte:53::print_ln:64 [ print_line_cursor#1 print_char_cursor#2 ] ) always clobbers reg byte a
|
Statement [45] (byte*) print_line_cursor#1 ← (byte*) print_line_cursor#24 + (byte) $28 [ print_line_cursor#1 print_char_cursor#2 ] ( main:2::test_sbytes:9::assert_sbyte:12::print_ln:32 [ print_line_cursor#1 print_char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:14::print_ln:32 [ print_line_cursor#1 print_char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:16::print_ln:32 [ print_line_cursor#1 print_char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:18::print_ln:32 [ print_line_cursor#1 print_char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:20::print_ln:32 [ print_line_cursor#1 print_char_cursor#2 ] main:2::test_bytes:7::assert_byte:49::print_ln:64 [ print_line_cursor#1 print_char_cursor#2 ] main:2::test_bytes:7::assert_byte:51::print_ln:64 [ print_line_cursor#1 print_char_cursor#2 ] main:2::test_bytes:7::assert_byte:53::print_ln:64 [ print_line_cursor#1 print_char_cursor#2 ] ) always clobbers reg byte a
|
||||||
Statement [46] if((byte*) print_line_cursor#1<(byte*) print_char_cursor#2) goto print_ln::@1 [ print_line_cursor#1 print_char_cursor#2 ] ( main:2::test_sbytes:9::assert_sbyte:12::print_ln:32 [ print_line_cursor#1 print_char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:14::print_ln:32 [ print_line_cursor#1 print_char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:16::print_ln:32 [ print_line_cursor#1 print_char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:18::print_ln:32 [ print_line_cursor#1 print_char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:20::print_ln:32 [ print_line_cursor#1 print_char_cursor#2 ] main:2::test_bytes:7::assert_byte:49::print_ln:64 [ print_line_cursor#1 print_char_cursor#2 ] main:2::test_bytes:7::assert_byte:51::print_ln:64 [ print_line_cursor#1 print_char_cursor#2 ] main:2::test_bytes:7::assert_byte:53::print_ln:64 [ print_line_cursor#1 print_char_cursor#2 ] ) always clobbers reg byte a
|
Statement [46] if((byte*) print_line_cursor#1<(byte*) print_char_cursor#2) goto print_ln::@1 [ print_line_cursor#1 print_char_cursor#2 ] ( main:2::test_sbytes:9::assert_sbyte:12::print_ln:32 [ print_line_cursor#1 print_char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:14::print_ln:32 [ print_line_cursor#1 print_char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:16::print_ln:32 [ print_line_cursor#1 print_char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:18::print_ln:32 [ print_line_cursor#1 print_char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:20::print_ln:32 [ print_line_cursor#1 print_char_cursor#2 ] main:2::test_bytes:7::assert_byte:49::print_ln:64 [ print_line_cursor#1 print_char_cursor#2 ] main:2::test_bytes:7::assert_byte:51::print_ln:64 [ print_line_cursor#1 print_char_cursor#2 ] main:2::test_bytes:7::assert_byte:53::print_ln:64 [ print_line_cursor#1 print_char_cursor#2 ] ) always clobbers reg byte a
|
||||||
@ -2576,10 +2584,10 @@ print_str: {
|
|||||||
jmp b1
|
jmp b1
|
||||||
// print_str::@1
|
// print_str::@1
|
||||||
b1:
|
b1:
|
||||||
// [38] if(*((byte*) print_str::str#10)!=(byte) '@') goto print_str::@2 -- _deref_pbuz1_neq_vbuc1_then_la1
|
// [38] if((byte) 0!=*((byte*) print_str::str#10)) goto print_str::@2 -- vbuc1_neq__deref_pbuz1_then_la1
|
||||||
ldy #0
|
ldy #0
|
||||||
lda (str),y
|
lda (str),y
|
||||||
cmp #'@'
|
cmp #0
|
||||||
bne b2
|
bne b2
|
||||||
jmp breturn
|
jmp breturn
|
||||||
// print_str::@return
|
// print_str::@return
|
||||||
@ -3363,11 +3371,11 @@ print_str: {
|
|||||||
// [37] phi (byte*) print_str::str#10 = (byte*) print_str::str#11 [phi:print_str/print_str::@2->print_str::@1#1] -- register_copy
|
// [37] phi (byte*) print_str::str#10 = (byte*) print_str::str#11 [phi:print_str/print_str::@2->print_str::@1#1] -- register_copy
|
||||||
// print_str::@1
|
// print_str::@1
|
||||||
b1:
|
b1:
|
||||||
// while(*str!='@')
|
// while(*str)
|
||||||
// [38] if(*((byte*) print_str::str#10)!=(byte) '@') goto print_str::@2 -- _deref_pbuz1_neq_vbuc1_then_la1
|
// [38] if((byte) 0!=*((byte*) print_str::str#10)) goto print_str::@2 -- vbuc1_neq__deref_pbuz1_then_la1
|
||||||
ldy #0
|
ldy #0
|
||||||
lda (str),y
|
lda (str),y
|
||||||
cmp #'@'
|
cmp #0
|
||||||
bne b2
|
bne b2
|
||||||
// print_str::@return
|
// print_str::@return
|
||||||
// }
|
// }
|
||||||
|
@ -8,7 +8,12 @@ Fixing pointer array-indexing *((word[CORDIC_ITERATIONS_16]) CORDIC_ATAN2_ANGLES
|
|||||||
Fixing pointer array-indexing *((word*) utoa::digit_values + (byte) utoa::digit)
|
Fixing pointer array-indexing *((word*) utoa::digit_values + (byte) utoa::digit)
|
||||||
Fixing pointer array-indexing *((dword*) ultoa::digit_values + (byte) ultoa::digit)
|
Fixing pointer array-indexing *((dword*) ultoa::digit_values + (byte) ultoa::digit)
|
||||||
Warning! Adding boolean cast to non-boolean condition *((byte*) strcpy::src)
|
Warning! Adding boolean cast to non-boolean condition *((byte*) strcpy::src)
|
||||||
|
Warning! Adding boolean cast to non-boolean condition *((byte*) print_str_lines::str)
|
||||||
|
Warning! Adding boolean cast to non-boolean condition (byte) print_str_lines::ch
|
||||||
|
Warning! Adding boolean cast to non-boolean condition *((byte*) print_str::str)
|
||||||
|
Warning! Adding boolean cast to non-boolean condition *((byte*) print_str_at::str)
|
||||||
Warning! Adding boolean cast to non-boolean sub-expression (byte) atan2_16::shift
|
Warning! Adding boolean cast to non-boolean sub-expression (byte) atan2_16::shift
|
||||||
|
Warning! Adding boolean cast to non-boolean sub-expression (byte) print_str_lines::ch
|
||||||
Identified constant variable (byte*) HEAP_TOP
|
Identified constant variable (byte*) HEAP_TOP
|
||||||
Inlined call (byte~) vicSelectGfxBank::$0 ← call toDd00 (byte*) vicSelectGfxBank::gfx
|
Inlined call (byte~) vicSelectGfxBank::$0 ← call toDd00 (byte*) vicSelectGfxBank::gfx
|
||||||
Inlined call (byte~) main::$1 ← call toD018 (byte*) SCREEN (byte*) CHARSET
|
Inlined call (byte~) main::$1 ← call toD018 (byte*) SCREEN (byte*) CHARSET
|
||||||
|
@ -4,6 +4,11 @@ Fixing pointer addition (word*~) bsearch16u::$1 ← (word*) bsearch16u::items -
|
|||||||
Fixing pointer array-indexing *((word*) utoa::digit_values + (byte) utoa::digit)
|
Fixing pointer array-indexing *((word*) utoa::digit_values + (byte) utoa::digit)
|
||||||
Fixing pointer array-indexing *((dword*) ultoa::digit_values + (byte) ultoa::digit)
|
Fixing pointer array-indexing *((dword*) ultoa::digit_values + (byte) ultoa::digit)
|
||||||
Warning! Adding boolean cast to non-boolean condition *((byte*) strcpy::src)
|
Warning! Adding boolean cast to non-boolean condition *((byte*) strcpy::src)
|
||||||
|
Warning! Adding boolean cast to non-boolean condition *((byte*) print_str_lines::str)
|
||||||
|
Warning! Adding boolean cast to non-boolean condition (byte) print_str_lines::ch
|
||||||
|
Warning! Adding boolean cast to non-boolean condition *((byte*) print_str::str)
|
||||||
|
Warning! Adding boolean cast to non-boolean condition *((byte*) print_str_at::str)
|
||||||
|
Warning! Adding boolean cast to non-boolean sub-expression (byte) print_str_lines::ch
|
||||||
Identified constant variable (byte*) HEAP_TOP
|
Identified constant variable (byte*) HEAP_TOP
|
||||||
Culled Empty Block (label) @1
|
Culled Empty Block (label) @1
|
||||||
Culled Empty Block (label) @2
|
Culled Empty Block (label) @2
|
||||||
|
@ -943,7 +943,7 @@ print_str_at: {
|
|||||||
b1:
|
b1:
|
||||||
ldy #0
|
ldy #0
|
||||||
lda (str),y
|
lda (str),y
|
||||||
cmp #'@'
|
cmp #0
|
||||||
bne b2
|
bne b2
|
||||||
rts
|
rts
|
||||||
b2:
|
b2:
|
||||||
|
@ -426,7 +426,7 @@ print_str_at: scope:[print_str_at] from debug_print_init::@10 debug_print_init:
|
|||||||
print_str_at::@1: scope:[print_str_at] from print_str_at print_str_at::@2
|
print_str_at::@1: scope:[print_str_at] from print_str_at print_str_at::@2
|
||||||
[244] (byte*) print_str_at::at#13 ← phi( print_str_at/(byte*) print_str_at::at#15 print_str_at::@2/(byte*) print_str_at::at#0 )
|
[244] (byte*) print_str_at::at#13 ← phi( print_str_at/(byte*) print_str_at::at#15 print_str_at::@2/(byte*) print_str_at::at#0 )
|
||||||
[244] (byte*) print_str_at::str#13 ← phi( print_str_at/(byte*) print_str_at::str#15 print_str_at::@2/(byte*) print_str_at::str#0 )
|
[244] (byte*) print_str_at::str#13 ← phi( print_str_at/(byte*) print_str_at::str#15 print_str_at::@2/(byte*) print_str_at::str#0 )
|
||||||
[245] if(*((byte*) print_str_at::str#13)!=(byte) '@') goto print_str_at::@2
|
[245] if((byte) 0!=*((byte*) print_str_at::str#13)) goto print_str_at::@2
|
||||||
to:print_str_at::@return
|
to:print_str_at::@return
|
||||||
print_str_at::@return: scope:[print_str_at] from print_str_at::@1
|
print_str_at::@return: scope:[print_str_at] from print_str_at::@1
|
||||||
[246] return
|
[246] return
|
||||||
|
@ -95,6 +95,11 @@ Fixing pointer addition (word*~) bsearch16u::$1 ← (word*) bsearch16u::items -
|
|||||||
Fixing pointer array-indexing *((word*) utoa::digit_values + (byte) utoa::digit)
|
Fixing pointer array-indexing *((word*) utoa::digit_values + (byte) utoa::digit)
|
||||||
Fixing pointer array-indexing *((dword*) ultoa::digit_values + (byte) ultoa::digit)
|
Fixing pointer array-indexing *((dword*) ultoa::digit_values + (byte) ultoa::digit)
|
||||||
Warning! Adding boolean cast to non-boolean condition *((byte*) strcpy::src)
|
Warning! Adding boolean cast to non-boolean condition *((byte*) strcpy::src)
|
||||||
|
Warning! Adding boolean cast to non-boolean condition *((byte*) print_str_lines::str)
|
||||||
|
Warning! Adding boolean cast to non-boolean condition (byte) print_str_lines::ch
|
||||||
|
Warning! Adding boolean cast to non-boolean condition *((byte*) print_str::str)
|
||||||
|
Warning! Adding boolean cast to non-boolean condition *((byte*) print_str_at::str)
|
||||||
|
Warning! Adding boolean cast to non-boolean sub-expression (byte) print_str_lines::ch
|
||||||
Identified constant variable (byte*) HEAP_TOP
|
Identified constant variable (byte*) HEAP_TOP
|
||||||
Identified constant variable (signed byte*) xr
|
Identified constant variable (signed byte*) xr
|
||||||
Identified constant variable (signed byte*) yr
|
Identified constant variable (signed byte*) yr
|
||||||
@ -275,7 +280,7 @@ print_str_at: scope:[print_str_at] from debug_print_init::@10 debug_print_init:
|
|||||||
print_str_at::@1: scope:[print_str_at] from print_str_at print_str_at::@2
|
print_str_at::@1: scope:[print_str_at] from print_str_at print_str_at::@2
|
||||||
(byte*) print_str_at::at#14 ← phi( print_str_at/(byte*) print_str_at::at#15 print_str_at::@2/(byte*) print_str_at::at#0 )
|
(byte*) print_str_at::at#14 ← phi( print_str_at/(byte*) print_str_at::at#15 print_str_at::@2/(byte*) print_str_at::at#0 )
|
||||||
(byte*) print_str_at::str#13 ← phi( print_str_at/(byte*) print_str_at::str#15 print_str_at::@2/(byte*) print_str_at::str#0 )
|
(byte*) print_str_at::str#13 ← phi( print_str_at/(byte*) print_str_at::str#15 print_str_at::@2/(byte*) print_str_at::str#0 )
|
||||||
(bool~) print_str_at::$0 ← *((byte*) print_str_at::str#13) != (byte) '@'
|
(bool~) print_str_at::$0 ← (number) 0 != *((byte*) print_str_at::str#13)
|
||||||
if((bool~) print_str_at::$0) goto print_str_at::@2
|
if((bool~) print_str_at::$0) goto print_str_at::@2
|
||||||
to:print_str_at::@return
|
to:print_str_at::@return
|
||||||
print_str_at::@2: scope:[print_str_at] from print_str_at::@1
|
print_str_at::@2: scope:[print_str_at] from print_str_at::@1
|
||||||
@ -2242,6 +2247,7 @@ Adding number conversion cast (unumber) 5 in (byte) GREEN#0 ← (number) 5
|
|||||||
Adding number conversion cast (unumber) $e in (byte) LIGHT_BLUE#0 ← (number) $e
|
Adding number conversion cast (unumber) $e in (byte) LIGHT_BLUE#0 ← (number) $e
|
||||||
Adding number conversion cast (unumber) $f in (byte) LIGHT_GREY#0 ← (number) $f
|
Adding number conversion cast (unumber) $f in (byte) LIGHT_GREY#0 ← (number) $f
|
||||||
Adding number conversion cast (unumber) 0 in (bool~) memset::$0 ← (word) memset::num#1 > (number) 0
|
Adding number conversion cast (unumber) 0 in (bool~) memset::$0 ← (word) memset::num#1 > (number) 0
|
||||||
|
Adding number conversion cast (unumber) 0 in (bool~) print_str_at::$0 ← (number) 0 != *((byte*) print_str_at::str#13)
|
||||||
Adding number conversion cast (snumber) 0 in (bool~) print_sbyte_at::$0 ← (signed byte) print_sbyte_at::b#22 < (number) 0
|
Adding number conversion cast (snumber) 0 in (bool~) print_sbyte_at::$0 ← (signed byte) print_sbyte_at::b#22 < (number) 0
|
||||||
Adding number conversion cast (unumber) 1 in (byte*~) print_sbyte_at::$2 ← (byte*) print_sbyte_at::at#23 + (number) 1
|
Adding number conversion cast (unumber) 1 in (byte*~) print_sbyte_at::$2 ← (byte*) print_sbyte_at::at#23 + (number) 1
|
||||||
Adding number conversion cast (unumber) 4 in (byte~) print_byte_at::$0 ← (byte) print_byte_at::b#1 >> (number) 4
|
Adding number conversion cast (unumber) 4 in (byte~) print_byte_at::$0 ← (byte) print_byte_at::b#1 >> (number) 4
|
||||||
@ -2455,6 +2461,7 @@ Simplifying constant integer cast $f
|
|||||||
Simplifying constant integer cast 0
|
Simplifying constant integer cast 0
|
||||||
Simplifying constant pointer cast (byte*) 1024
|
Simplifying constant pointer cast (byte*) 1024
|
||||||
Simplifying constant integer cast 0
|
Simplifying constant integer cast 0
|
||||||
|
Simplifying constant integer cast 0
|
||||||
Simplifying constant integer cast 1
|
Simplifying constant integer cast 1
|
||||||
Simplifying constant integer cast 4
|
Simplifying constant integer cast 4
|
||||||
Simplifying constant integer cast $f
|
Simplifying constant integer cast $f
|
||||||
@ -2579,6 +2586,7 @@ Finalized unsigned number type (byte) 5
|
|||||||
Finalized unsigned number type (byte) $e
|
Finalized unsigned number type (byte) $e
|
||||||
Finalized unsigned number type (byte) $f
|
Finalized unsigned number type (byte) $f
|
||||||
Finalized unsigned number type (byte) 0
|
Finalized unsigned number type (byte) 0
|
||||||
|
Finalized unsigned number type (byte) 0
|
||||||
Finalized signed number type (signed byte) 0
|
Finalized signed number type (signed byte) 0
|
||||||
Finalized unsigned number type (byte) 1
|
Finalized unsigned number type (byte) 1
|
||||||
Finalized unsigned number type (byte) 4
|
Finalized unsigned number type (byte) 4
|
||||||
@ -2901,7 +2909,7 @@ Identical Phi Values (byte*) debug_print_init::at_cols#2 (byte*) debug_print_ini
|
|||||||
Successful SSA optimization Pass2IdenticalPhiElimination
|
Successful SSA optimization Pass2IdenticalPhiElimination
|
||||||
Simple Condition (bool~) memset::$1 [12] if((word) memset::num#0<=(byte) 0) goto memset::@1
|
Simple Condition (bool~) memset::$1 [12] if((word) memset::num#0<=(byte) 0) goto memset::@1
|
||||||
Simple Condition (bool~) memset::$4 [22] if((byte*) memset::dst#2!=(byte*) memset::end#0) goto memset::@5
|
Simple Condition (bool~) memset::$4 [22] if((byte*) memset::dst#2!=(byte*) memset::end#0) goto memset::@5
|
||||||
Simple Condition (bool~) print_str_at::$0 [33] if(*((byte*) print_str_at::str#13)!=(byte) '@') goto print_str_at::@2
|
Simple Condition (bool~) print_str_at::$0 [33] if((byte) 0!=*((byte*) print_str_at::str#13)) goto print_str_at::@2
|
||||||
Simple Condition (bool~) print_sbyte_at::$0 [41] if((signed byte) print_sbyte_at::b#22<(signed byte) 0) goto print_sbyte_at::@1
|
Simple Condition (bool~) print_sbyte_at::$0 [41] if((signed byte) print_sbyte_at::b#22<(signed byte) 0) goto print_sbyte_at::@1
|
||||||
Simple Condition (bool~) anim::$0 [131] if(*((byte*) RASTER#0)!=(byte) $ff) goto anim::@4
|
Simple Condition (bool~) anim::$0 [131] if(*((byte*) RASTER#0)!=(byte) $ff) goto anim::@4
|
||||||
Simple Condition (bool~) anim::$1 [134] if(*((byte*) RASTER#0)!=(byte) $fe) goto anim::@10
|
Simple Condition (bool~) anim::$1 [134] if(*((byte*) RASTER#0)!=(byte) $fe) goto anim::@10
|
||||||
@ -4133,7 +4141,7 @@ print_str_at: scope:[print_str_at] from debug_print_init::@10 debug_print_init:
|
|||||||
print_str_at::@1: scope:[print_str_at] from print_str_at print_str_at::@2
|
print_str_at::@1: scope:[print_str_at] from print_str_at print_str_at::@2
|
||||||
[244] (byte*) print_str_at::at#13 ← phi( print_str_at/(byte*) print_str_at::at#15 print_str_at::@2/(byte*) print_str_at::at#0 )
|
[244] (byte*) print_str_at::at#13 ← phi( print_str_at/(byte*) print_str_at::at#15 print_str_at::@2/(byte*) print_str_at::at#0 )
|
||||||
[244] (byte*) print_str_at::str#13 ← phi( print_str_at/(byte*) print_str_at::str#15 print_str_at::@2/(byte*) print_str_at::str#0 )
|
[244] (byte*) print_str_at::str#13 ← phi( print_str_at/(byte*) print_str_at::str#15 print_str_at::@2/(byte*) print_str_at::str#0 )
|
||||||
[245] if(*((byte*) print_str_at::str#13)!=(byte) '@') goto print_str_at::@2
|
[245] if((byte) 0!=*((byte*) print_str_at::str#13)) goto print_str_at::@2
|
||||||
to:print_str_at::@return
|
to:print_str_at::@return
|
||||||
print_str_at::@return: scope:[print_str_at] from print_str_at::@1
|
print_str_at::@return: scope:[print_str_at] from print_str_at::@1
|
||||||
[246] return
|
[246] return
|
||||||
@ -6570,10 +6578,10 @@ print_str_at: {
|
|||||||
jmp b1
|
jmp b1
|
||||||
// print_str_at::@1
|
// print_str_at::@1
|
||||||
b1:
|
b1:
|
||||||
// [245] if(*((byte*) print_str_at::str#13)!=(byte) '@') goto print_str_at::@2 -- _deref_pbuz1_neq_vbuc1_then_la1
|
// [245] if((byte) 0!=*((byte*) print_str_at::str#13)) goto print_str_at::@2 -- vbuc1_neq__deref_pbuz1_then_la1
|
||||||
ldy #0
|
ldy #0
|
||||||
lda (str),y
|
lda (str),y
|
||||||
cmp #'@'
|
cmp #0
|
||||||
bne b2
|
bne b2
|
||||||
jmp breturn
|
jmp breturn
|
||||||
// print_str_at::@return
|
// print_str_at::@return
|
||||||
@ -6917,7 +6925,7 @@ Statement [236] *((byte*~) debug_print_init::$65 + (byte) debug_print_init::j#2)
|
|||||||
Statement [239] (byte) debug_print_init::c#1 ← (byte) debug_print_init::c#2 + (byte) 4 [ debug_print_init::i#2 debug_print_init::c#1 ] ( main:2::debug_print_init:8 [ debug_print_init::i#2 debug_print_init::c#1 ] ) always clobbers reg byte a reg byte x
|
Statement [239] (byte) debug_print_init::c#1 ← (byte) debug_print_init::c#2 + (byte) 4 [ debug_print_init::i#2 debug_print_init::c#1 ] ( main:2::debug_print_init:8 [ debug_print_init::i#2 debug_print_init::c#1 ] ) always clobbers reg byte a reg byte x
|
||||||
Removing always clobbered register reg byte x as potential for zp ZP_BYTE:14 [ debug_print_init::i#2 debug_print_init::i#1 ]
|
Removing always clobbered register reg byte x as potential for zp ZP_BYTE:14 [ debug_print_init::i#2 debug_print_init::i#1 ]
|
||||||
Statement [241] if((byte) debug_print_init::i#1!=(byte) 8) goto debug_print_init::@1 [ debug_print_init::c#1 debug_print_init::i#1 ] ( main:2::debug_print_init:8 [ debug_print_init::c#1 debug_print_init::i#1 ] ) always clobbers reg byte a
|
Statement [241] if((byte) debug_print_init::i#1!=(byte) 8) goto debug_print_init::@1 [ debug_print_init::c#1 debug_print_init::i#1 ] ( main:2::debug_print_init:8 [ debug_print_init::c#1 debug_print_init::i#1 ] ) always clobbers reg byte a
|
||||||
Statement [245] if(*((byte*) print_str_at::str#13)!=(byte) '@') goto print_str_at::@2 [ print_str_at::str#13 print_str_at::at#13 ] ( main:2::debug_print_init:8::print_str_at:184 [ print_str_at::str#13 print_str_at::at#13 ] main:2::debug_print_init:8::print_str_at:186 [ print_str_at::str#13 print_str_at::at#13 ] main:2::debug_print_init:8::print_str_at:188 [ print_str_at::str#13 print_str_at::at#13 ] main:2::debug_print_init:8::print_str_at:190 [ print_str_at::str#13 print_str_at::at#13 ] main:2::debug_print_init:8::print_str_at:192 [ print_str_at::str#13 print_str_at::at#13 ] main:2::debug_print_init:8::print_str_at:194 [ print_str_at::str#13 print_str_at::at#13 ] main:2::debug_print_init:8::print_str_at:196 [ print_str_at::str#13 print_str_at::at#13 ] main:2::debug_print_init:8::print_str_at:198 [ print_str_at::str#13 print_str_at::at#13 ] main:2::debug_print_init:8::print_str_at:200 [ print_str_at::str#13 print_str_at::at#13 ] main:2::debug_print_init:8::print_str_at:202 [ print_str_at::str#13 print_str_at::at#13 ] main:2::debug_print_init:8::print_str_at:204 [ print_str_at::str#13 print_str_at::at#13 ] main:2::debug_print_init:8::print_str_at:206 [ print_str_at::str#13 print_str_at::at#13 ] ) always clobbers reg byte a reg byte y
|
Statement [245] if((byte) 0!=*((byte*) print_str_at::str#13)) goto print_str_at::@2 [ print_str_at::str#13 print_str_at::at#13 ] ( main:2::debug_print_init:8::print_str_at:184 [ print_str_at::str#13 print_str_at::at#13 ] main:2::debug_print_init:8::print_str_at:186 [ print_str_at::str#13 print_str_at::at#13 ] main:2::debug_print_init:8::print_str_at:188 [ print_str_at::str#13 print_str_at::at#13 ] main:2::debug_print_init:8::print_str_at:190 [ print_str_at::str#13 print_str_at::at#13 ] main:2::debug_print_init:8::print_str_at:192 [ print_str_at::str#13 print_str_at::at#13 ] main:2::debug_print_init:8::print_str_at:194 [ print_str_at::str#13 print_str_at::at#13 ] main:2::debug_print_init:8::print_str_at:196 [ print_str_at::str#13 print_str_at::at#13 ] main:2::debug_print_init:8::print_str_at:198 [ print_str_at::str#13 print_str_at::at#13 ] main:2::debug_print_init:8::print_str_at:200 [ print_str_at::str#13 print_str_at::at#13 ] main:2::debug_print_init:8::print_str_at:202 [ print_str_at::str#13 print_str_at::at#13 ] main:2::debug_print_init:8::print_str_at:204 [ print_str_at::str#13 print_str_at::at#13 ] main:2::debug_print_init:8::print_str_at:206 [ print_str_at::str#13 print_str_at::at#13 ] ) always clobbers reg byte a reg byte y
|
||||||
Statement [247] *((byte*) print_str_at::at#13) ← *((byte*) print_str_at::str#13) [ print_str_at::str#13 print_str_at::at#13 ] ( main:2::debug_print_init:8::print_str_at:184 [ print_str_at::str#13 print_str_at::at#13 ] main:2::debug_print_init:8::print_str_at:186 [ print_str_at::str#13 print_str_at::at#13 ] main:2::debug_print_init:8::print_str_at:188 [ print_str_at::str#13 print_str_at::at#13 ] main:2::debug_print_init:8::print_str_at:190 [ print_str_at::str#13 print_str_at::at#13 ] main:2::debug_print_init:8::print_str_at:192 [ print_str_at::str#13 print_str_at::at#13 ] main:2::debug_print_init:8::print_str_at:194 [ print_str_at::str#13 print_str_at::at#13 ] main:2::debug_print_init:8::print_str_at:196 [ print_str_at::str#13 print_str_at::at#13 ] main:2::debug_print_init:8::print_str_at:198 [ print_str_at::str#13 print_str_at::at#13 ] main:2::debug_print_init:8::print_str_at:200 [ print_str_at::str#13 print_str_at::at#13 ] main:2::debug_print_init:8::print_str_at:202 [ print_str_at::str#13 print_str_at::at#13 ] main:2::debug_print_init:8::print_str_at:204 [ print_str_at::str#13 print_str_at::at#13 ] main:2::debug_print_init:8::print_str_at:206 [ print_str_at::str#13 print_str_at::at#13 ] ) always clobbers reg byte a reg byte y
|
Statement [247] *((byte*) print_str_at::at#13) ← *((byte*) print_str_at::str#13) [ print_str_at::str#13 print_str_at::at#13 ] ( main:2::debug_print_init:8::print_str_at:184 [ print_str_at::str#13 print_str_at::at#13 ] main:2::debug_print_init:8::print_str_at:186 [ print_str_at::str#13 print_str_at::at#13 ] main:2::debug_print_init:8::print_str_at:188 [ print_str_at::str#13 print_str_at::at#13 ] main:2::debug_print_init:8::print_str_at:190 [ print_str_at::str#13 print_str_at::at#13 ] main:2::debug_print_init:8::print_str_at:192 [ print_str_at::str#13 print_str_at::at#13 ] main:2::debug_print_init:8::print_str_at:194 [ print_str_at::str#13 print_str_at::at#13 ] main:2::debug_print_init:8::print_str_at:196 [ print_str_at::str#13 print_str_at::at#13 ] main:2::debug_print_init:8::print_str_at:198 [ print_str_at::str#13 print_str_at::at#13 ] main:2::debug_print_init:8::print_str_at:200 [ print_str_at::str#13 print_str_at::at#13 ] main:2::debug_print_init:8::print_str_at:202 [ print_str_at::str#13 print_str_at::at#13 ] main:2::debug_print_init:8::print_str_at:204 [ print_str_at::str#13 print_str_at::at#13 ] main:2::debug_print_init:8::print_str_at:206 [ print_str_at::str#13 print_str_at::at#13 ] ) always clobbers reg byte a reg byte y
|
||||||
Statement [255] *((byte*) memset::dst#4) ← (const byte) memset::c#0 [ memset::dst#4 ] ( main:2::debug_print_init:8::print_cls:182::memset:251 [ memset::dst#4 ] ) always clobbers reg byte a reg byte y
|
Statement [255] *((byte*) memset::dst#4) ← (const byte) memset::c#0 [ memset::dst#4 ] ( main:2::debug_print_init:8::print_cls:182::memset:251 [ memset::dst#4 ] ) always clobbers reg byte a reg byte y
|
||||||
Statement [257] if((byte*) memset::dst#1!=(const byte*) memset::end#0) goto memset::@2 [ memset::dst#1 ] ( main:2::debug_print_init:8::print_cls:182::memset:251 [ memset::dst#1 ] ) always clobbers reg byte a
|
Statement [257] if((byte*) memset::dst#1!=(const byte*) memset::end#0) goto memset::@2 [ memset::dst#1 ] ( main:2::debug_print_init:8::print_cls:182::memset:251 [ memset::dst#1 ] ) always clobbers reg byte a
|
||||||
@ -7026,7 +7034,7 @@ Statement [235] (byte*~) debug_print_init::$65 ← (const byte*) debug_print_ini
|
|||||||
Statement [236] *((byte*~) debug_print_init::$65 + (byte) debug_print_init::j#2) ← (byte) debug_print_init::col#0 [ debug_print_init::c#2 debug_print_init::i#2 debug_print_init::j#2 ] ( main:2::debug_print_init:8 [ debug_print_init::c#2 debug_print_init::i#2 debug_print_init::j#2 ] ) always clobbers reg byte a
|
Statement [236] *((byte*~) debug_print_init::$65 + (byte) debug_print_init::j#2) ← (byte) debug_print_init::col#0 [ debug_print_init::c#2 debug_print_init::i#2 debug_print_init::j#2 ] ( main:2::debug_print_init:8 [ debug_print_init::c#2 debug_print_init::i#2 debug_print_init::j#2 ] ) always clobbers reg byte a
|
||||||
Statement [239] (byte) debug_print_init::c#1 ← (byte) debug_print_init::c#2 + (byte) 4 [ debug_print_init::i#2 debug_print_init::c#1 ] ( main:2::debug_print_init:8 [ debug_print_init::i#2 debug_print_init::c#1 ] ) always clobbers reg byte a reg byte x
|
Statement [239] (byte) debug_print_init::c#1 ← (byte) debug_print_init::c#2 + (byte) 4 [ debug_print_init::i#2 debug_print_init::c#1 ] ( main:2::debug_print_init:8 [ debug_print_init::i#2 debug_print_init::c#1 ] ) always clobbers reg byte a reg byte x
|
||||||
Statement [241] if((byte) debug_print_init::i#1!=(byte) 8) goto debug_print_init::@1 [ debug_print_init::c#1 debug_print_init::i#1 ] ( main:2::debug_print_init:8 [ debug_print_init::c#1 debug_print_init::i#1 ] ) always clobbers reg byte a
|
Statement [241] if((byte) debug_print_init::i#1!=(byte) 8) goto debug_print_init::@1 [ debug_print_init::c#1 debug_print_init::i#1 ] ( main:2::debug_print_init:8 [ debug_print_init::c#1 debug_print_init::i#1 ] ) always clobbers reg byte a
|
||||||
Statement [245] if(*((byte*) print_str_at::str#13)!=(byte) '@') goto print_str_at::@2 [ print_str_at::str#13 print_str_at::at#13 ] ( main:2::debug_print_init:8::print_str_at:184 [ print_str_at::str#13 print_str_at::at#13 ] main:2::debug_print_init:8::print_str_at:186 [ print_str_at::str#13 print_str_at::at#13 ] main:2::debug_print_init:8::print_str_at:188 [ print_str_at::str#13 print_str_at::at#13 ] main:2::debug_print_init:8::print_str_at:190 [ print_str_at::str#13 print_str_at::at#13 ] main:2::debug_print_init:8::print_str_at:192 [ print_str_at::str#13 print_str_at::at#13 ] main:2::debug_print_init:8::print_str_at:194 [ print_str_at::str#13 print_str_at::at#13 ] main:2::debug_print_init:8::print_str_at:196 [ print_str_at::str#13 print_str_at::at#13 ] main:2::debug_print_init:8::print_str_at:198 [ print_str_at::str#13 print_str_at::at#13 ] main:2::debug_print_init:8::print_str_at:200 [ print_str_at::str#13 print_str_at::at#13 ] main:2::debug_print_init:8::print_str_at:202 [ print_str_at::str#13 print_str_at::at#13 ] main:2::debug_print_init:8::print_str_at:204 [ print_str_at::str#13 print_str_at::at#13 ] main:2::debug_print_init:8::print_str_at:206 [ print_str_at::str#13 print_str_at::at#13 ] ) always clobbers reg byte a reg byte y
|
Statement [245] if((byte) 0!=*((byte*) print_str_at::str#13)) goto print_str_at::@2 [ print_str_at::str#13 print_str_at::at#13 ] ( main:2::debug_print_init:8::print_str_at:184 [ print_str_at::str#13 print_str_at::at#13 ] main:2::debug_print_init:8::print_str_at:186 [ print_str_at::str#13 print_str_at::at#13 ] main:2::debug_print_init:8::print_str_at:188 [ print_str_at::str#13 print_str_at::at#13 ] main:2::debug_print_init:8::print_str_at:190 [ print_str_at::str#13 print_str_at::at#13 ] main:2::debug_print_init:8::print_str_at:192 [ print_str_at::str#13 print_str_at::at#13 ] main:2::debug_print_init:8::print_str_at:194 [ print_str_at::str#13 print_str_at::at#13 ] main:2::debug_print_init:8::print_str_at:196 [ print_str_at::str#13 print_str_at::at#13 ] main:2::debug_print_init:8::print_str_at:198 [ print_str_at::str#13 print_str_at::at#13 ] main:2::debug_print_init:8::print_str_at:200 [ print_str_at::str#13 print_str_at::at#13 ] main:2::debug_print_init:8::print_str_at:202 [ print_str_at::str#13 print_str_at::at#13 ] main:2::debug_print_init:8::print_str_at:204 [ print_str_at::str#13 print_str_at::at#13 ] main:2::debug_print_init:8::print_str_at:206 [ print_str_at::str#13 print_str_at::at#13 ] ) always clobbers reg byte a reg byte y
|
||||||
Statement [247] *((byte*) print_str_at::at#13) ← *((byte*) print_str_at::str#13) [ print_str_at::str#13 print_str_at::at#13 ] ( main:2::debug_print_init:8::print_str_at:184 [ print_str_at::str#13 print_str_at::at#13 ] main:2::debug_print_init:8::print_str_at:186 [ print_str_at::str#13 print_str_at::at#13 ] main:2::debug_print_init:8::print_str_at:188 [ print_str_at::str#13 print_str_at::at#13 ] main:2::debug_print_init:8::print_str_at:190 [ print_str_at::str#13 print_str_at::at#13 ] main:2::debug_print_init:8::print_str_at:192 [ print_str_at::str#13 print_str_at::at#13 ] main:2::debug_print_init:8::print_str_at:194 [ print_str_at::str#13 print_str_at::at#13 ] main:2::debug_print_init:8::print_str_at:196 [ print_str_at::str#13 print_str_at::at#13 ] main:2::debug_print_init:8::print_str_at:198 [ print_str_at::str#13 print_str_at::at#13 ] main:2::debug_print_init:8::print_str_at:200 [ print_str_at::str#13 print_str_at::at#13 ] main:2::debug_print_init:8::print_str_at:202 [ print_str_at::str#13 print_str_at::at#13 ] main:2::debug_print_init:8::print_str_at:204 [ print_str_at::str#13 print_str_at::at#13 ] main:2::debug_print_init:8::print_str_at:206 [ print_str_at::str#13 print_str_at::at#13 ] ) always clobbers reg byte a reg byte y
|
Statement [247] *((byte*) print_str_at::at#13) ← *((byte*) print_str_at::str#13) [ print_str_at::str#13 print_str_at::at#13 ] ( main:2::debug_print_init:8::print_str_at:184 [ print_str_at::str#13 print_str_at::at#13 ] main:2::debug_print_init:8::print_str_at:186 [ print_str_at::str#13 print_str_at::at#13 ] main:2::debug_print_init:8::print_str_at:188 [ print_str_at::str#13 print_str_at::at#13 ] main:2::debug_print_init:8::print_str_at:190 [ print_str_at::str#13 print_str_at::at#13 ] main:2::debug_print_init:8::print_str_at:192 [ print_str_at::str#13 print_str_at::at#13 ] main:2::debug_print_init:8::print_str_at:194 [ print_str_at::str#13 print_str_at::at#13 ] main:2::debug_print_init:8::print_str_at:196 [ print_str_at::str#13 print_str_at::at#13 ] main:2::debug_print_init:8::print_str_at:198 [ print_str_at::str#13 print_str_at::at#13 ] main:2::debug_print_init:8::print_str_at:200 [ print_str_at::str#13 print_str_at::at#13 ] main:2::debug_print_init:8::print_str_at:202 [ print_str_at::str#13 print_str_at::at#13 ] main:2::debug_print_init:8::print_str_at:204 [ print_str_at::str#13 print_str_at::at#13 ] main:2::debug_print_init:8::print_str_at:206 [ print_str_at::str#13 print_str_at::at#13 ] ) always clobbers reg byte a reg byte y
|
||||||
Statement [255] *((byte*) memset::dst#4) ← (const byte) memset::c#0 [ memset::dst#4 ] ( main:2::debug_print_init:8::print_cls:182::memset:251 [ memset::dst#4 ] ) always clobbers reg byte a reg byte y
|
Statement [255] *((byte*) memset::dst#4) ← (const byte) memset::c#0 [ memset::dst#4 ] ( main:2::debug_print_init:8::print_cls:182::memset:251 [ memset::dst#4 ] ) always clobbers reg byte a reg byte y
|
||||||
Statement [257] if((byte*) memset::dst#1!=(const byte*) memset::end#0) goto memset::@2 [ memset::dst#1 ] ( main:2::debug_print_init:8::print_cls:182::memset:251 [ memset::dst#1 ] ) always clobbers reg byte a
|
Statement [257] if((byte*) memset::dst#1!=(const byte*) memset::end#0) goto memset::@2 [ memset::dst#1 ] ( main:2::debug_print_init:8::print_cls:182::memset:251 [ memset::dst#1 ] ) always clobbers reg byte a
|
||||||
@ -7137,7 +7145,7 @@ Statement [235] (byte*~) debug_print_init::$65 ← (const byte*) debug_print_ini
|
|||||||
Statement [236] *((byte*~) debug_print_init::$65 + (byte) debug_print_init::j#2) ← (byte) debug_print_init::col#0 [ debug_print_init::c#2 debug_print_init::i#2 debug_print_init::j#2 ] ( main:2::debug_print_init:8 [ debug_print_init::c#2 debug_print_init::i#2 debug_print_init::j#2 ] ) always clobbers reg byte a
|
Statement [236] *((byte*~) debug_print_init::$65 + (byte) debug_print_init::j#2) ← (byte) debug_print_init::col#0 [ debug_print_init::c#2 debug_print_init::i#2 debug_print_init::j#2 ] ( main:2::debug_print_init:8 [ debug_print_init::c#2 debug_print_init::i#2 debug_print_init::j#2 ] ) always clobbers reg byte a
|
||||||
Statement [239] (byte) debug_print_init::c#1 ← (byte) debug_print_init::c#2 + (byte) 4 [ debug_print_init::i#2 debug_print_init::c#1 ] ( main:2::debug_print_init:8 [ debug_print_init::i#2 debug_print_init::c#1 ] ) always clobbers reg byte a reg byte x
|
Statement [239] (byte) debug_print_init::c#1 ← (byte) debug_print_init::c#2 + (byte) 4 [ debug_print_init::i#2 debug_print_init::c#1 ] ( main:2::debug_print_init:8 [ debug_print_init::i#2 debug_print_init::c#1 ] ) always clobbers reg byte a reg byte x
|
||||||
Statement [241] if((byte) debug_print_init::i#1!=(byte) 8) goto debug_print_init::@1 [ debug_print_init::c#1 debug_print_init::i#1 ] ( main:2::debug_print_init:8 [ debug_print_init::c#1 debug_print_init::i#1 ] ) always clobbers reg byte a
|
Statement [241] if((byte) debug_print_init::i#1!=(byte) 8) goto debug_print_init::@1 [ debug_print_init::c#1 debug_print_init::i#1 ] ( main:2::debug_print_init:8 [ debug_print_init::c#1 debug_print_init::i#1 ] ) always clobbers reg byte a
|
||||||
Statement [245] if(*((byte*) print_str_at::str#13)!=(byte) '@') goto print_str_at::@2 [ print_str_at::str#13 print_str_at::at#13 ] ( main:2::debug_print_init:8::print_str_at:184 [ print_str_at::str#13 print_str_at::at#13 ] main:2::debug_print_init:8::print_str_at:186 [ print_str_at::str#13 print_str_at::at#13 ] main:2::debug_print_init:8::print_str_at:188 [ print_str_at::str#13 print_str_at::at#13 ] main:2::debug_print_init:8::print_str_at:190 [ print_str_at::str#13 print_str_at::at#13 ] main:2::debug_print_init:8::print_str_at:192 [ print_str_at::str#13 print_str_at::at#13 ] main:2::debug_print_init:8::print_str_at:194 [ print_str_at::str#13 print_str_at::at#13 ] main:2::debug_print_init:8::print_str_at:196 [ print_str_at::str#13 print_str_at::at#13 ] main:2::debug_print_init:8::print_str_at:198 [ print_str_at::str#13 print_str_at::at#13 ] main:2::debug_print_init:8::print_str_at:200 [ print_str_at::str#13 print_str_at::at#13 ] main:2::debug_print_init:8::print_str_at:202 [ print_str_at::str#13 print_str_at::at#13 ] main:2::debug_print_init:8::print_str_at:204 [ print_str_at::str#13 print_str_at::at#13 ] main:2::debug_print_init:8::print_str_at:206 [ print_str_at::str#13 print_str_at::at#13 ] ) always clobbers reg byte a reg byte y
|
Statement [245] if((byte) 0!=*((byte*) print_str_at::str#13)) goto print_str_at::@2 [ print_str_at::str#13 print_str_at::at#13 ] ( main:2::debug_print_init:8::print_str_at:184 [ print_str_at::str#13 print_str_at::at#13 ] main:2::debug_print_init:8::print_str_at:186 [ print_str_at::str#13 print_str_at::at#13 ] main:2::debug_print_init:8::print_str_at:188 [ print_str_at::str#13 print_str_at::at#13 ] main:2::debug_print_init:8::print_str_at:190 [ print_str_at::str#13 print_str_at::at#13 ] main:2::debug_print_init:8::print_str_at:192 [ print_str_at::str#13 print_str_at::at#13 ] main:2::debug_print_init:8::print_str_at:194 [ print_str_at::str#13 print_str_at::at#13 ] main:2::debug_print_init:8::print_str_at:196 [ print_str_at::str#13 print_str_at::at#13 ] main:2::debug_print_init:8::print_str_at:198 [ print_str_at::str#13 print_str_at::at#13 ] main:2::debug_print_init:8::print_str_at:200 [ print_str_at::str#13 print_str_at::at#13 ] main:2::debug_print_init:8::print_str_at:202 [ print_str_at::str#13 print_str_at::at#13 ] main:2::debug_print_init:8::print_str_at:204 [ print_str_at::str#13 print_str_at::at#13 ] main:2::debug_print_init:8::print_str_at:206 [ print_str_at::str#13 print_str_at::at#13 ] ) always clobbers reg byte a reg byte y
|
||||||
Statement [247] *((byte*) print_str_at::at#13) ← *((byte*) print_str_at::str#13) [ print_str_at::str#13 print_str_at::at#13 ] ( main:2::debug_print_init:8::print_str_at:184 [ print_str_at::str#13 print_str_at::at#13 ] main:2::debug_print_init:8::print_str_at:186 [ print_str_at::str#13 print_str_at::at#13 ] main:2::debug_print_init:8::print_str_at:188 [ print_str_at::str#13 print_str_at::at#13 ] main:2::debug_print_init:8::print_str_at:190 [ print_str_at::str#13 print_str_at::at#13 ] main:2::debug_print_init:8::print_str_at:192 [ print_str_at::str#13 print_str_at::at#13 ] main:2::debug_print_init:8::print_str_at:194 [ print_str_at::str#13 print_str_at::at#13 ] main:2::debug_print_init:8::print_str_at:196 [ print_str_at::str#13 print_str_at::at#13 ] main:2::debug_print_init:8::print_str_at:198 [ print_str_at::str#13 print_str_at::at#13 ] main:2::debug_print_init:8::print_str_at:200 [ print_str_at::str#13 print_str_at::at#13 ] main:2::debug_print_init:8::print_str_at:202 [ print_str_at::str#13 print_str_at::at#13 ] main:2::debug_print_init:8::print_str_at:204 [ print_str_at::str#13 print_str_at::at#13 ] main:2::debug_print_init:8::print_str_at:206 [ print_str_at::str#13 print_str_at::at#13 ] ) always clobbers reg byte a reg byte y
|
Statement [247] *((byte*) print_str_at::at#13) ← *((byte*) print_str_at::str#13) [ print_str_at::str#13 print_str_at::at#13 ] ( main:2::debug_print_init:8::print_str_at:184 [ print_str_at::str#13 print_str_at::at#13 ] main:2::debug_print_init:8::print_str_at:186 [ print_str_at::str#13 print_str_at::at#13 ] main:2::debug_print_init:8::print_str_at:188 [ print_str_at::str#13 print_str_at::at#13 ] main:2::debug_print_init:8::print_str_at:190 [ print_str_at::str#13 print_str_at::at#13 ] main:2::debug_print_init:8::print_str_at:192 [ print_str_at::str#13 print_str_at::at#13 ] main:2::debug_print_init:8::print_str_at:194 [ print_str_at::str#13 print_str_at::at#13 ] main:2::debug_print_init:8::print_str_at:196 [ print_str_at::str#13 print_str_at::at#13 ] main:2::debug_print_init:8::print_str_at:198 [ print_str_at::str#13 print_str_at::at#13 ] main:2::debug_print_init:8::print_str_at:200 [ print_str_at::str#13 print_str_at::at#13 ] main:2::debug_print_init:8::print_str_at:202 [ print_str_at::str#13 print_str_at::at#13 ] main:2::debug_print_init:8::print_str_at:204 [ print_str_at::str#13 print_str_at::at#13 ] main:2::debug_print_init:8::print_str_at:206 [ print_str_at::str#13 print_str_at::at#13 ] ) always clobbers reg byte a reg byte y
|
||||||
Statement [255] *((byte*) memset::dst#4) ← (const byte) memset::c#0 [ memset::dst#4 ] ( main:2::debug_print_init:8::print_cls:182::memset:251 [ memset::dst#4 ] ) always clobbers reg byte a reg byte y
|
Statement [255] *((byte*) memset::dst#4) ← (const byte) memset::c#0 [ memset::dst#4 ] ( main:2::debug_print_init:8::print_cls:182::memset:251 [ memset::dst#4 ] ) always clobbers reg byte a reg byte y
|
||||||
Statement [257] if((byte*) memset::dst#1!=(const byte*) memset::end#0) goto memset::@2 [ memset::dst#1 ] ( main:2::debug_print_init:8::print_cls:182::memset:251 [ memset::dst#1 ] ) always clobbers reg byte a
|
Statement [257] if((byte*) memset::dst#1!=(const byte*) memset::end#0) goto memset::@2 [ memset::dst#1 ] ( main:2::debug_print_init:8::print_cls:182::memset:251 [ memset::dst#1 ] ) always clobbers reg byte a
|
||||||
@ -9034,10 +9042,10 @@ print_str_at: {
|
|||||||
jmp b1
|
jmp b1
|
||||||
// print_str_at::@1
|
// print_str_at::@1
|
||||||
b1:
|
b1:
|
||||||
// [245] if(*((byte*) print_str_at::str#13)!=(byte) '@') goto print_str_at::@2 -- _deref_pbuz1_neq_vbuc1_then_la1
|
// [245] if((byte) 0!=*((byte*) print_str_at::str#13)) goto print_str_at::@2 -- vbuc1_neq__deref_pbuz1_then_la1
|
||||||
ldy #0
|
ldy #0
|
||||||
lda (str),y
|
lda (str),y
|
||||||
cmp #'@'
|
cmp #0
|
||||||
bne b2
|
bne b2
|
||||||
jmp breturn
|
jmp breturn
|
||||||
// print_str_at::@return
|
// print_str_at::@return
|
||||||
@ -11689,11 +11697,11 @@ print_str_at: {
|
|||||||
// [244] phi (byte*) print_str_at::str#13 = (byte*) print_str_at::str#15 [phi:print_str_at/print_str_at::@2->print_str_at::@1#1] -- register_copy
|
// [244] phi (byte*) print_str_at::str#13 = (byte*) print_str_at::str#15 [phi:print_str_at/print_str_at::@2->print_str_at::@1#1] -- register_copy
|
||||||
// print_str_at::@1
|
// print_str_at::@1
|
||||||
b1:
|
b1:
|
||||||
// while(*str!='@')
|
// while(*str)
|
||||||
// [245] if(*((byte*) print_str_at::str#13)!=(byte) '@') goto print_str_at::@2 -- _deref_pbuz1_neq_vbuc1_then_la1
|
// [245] if((byte) 0!=*((byte*) print_str_at::str#13)) goto print_str_at::@2 -- vbuc1_neq__deref_pbuz1_then_la1
|
||||||
ldy #0
|
ldy #0
|
||||||
lda (str),y
|
lda (str),y
|
||||||
cmp #'@'
|
cmp #0
|
||||||
bne b2
|
bne b2
|
||||||
// print_str_at::@return
|
// print_str_at::@return
|
||||||
// }
|
// }
|
||||||
|
@ -120,7 +120,7 @@ print_str: {
|
|||||||
b1:
|
b1:
|
||||||
ldy #0
|
ldy #0
|
||||||
lda (str),y
|
lda (str),y
|
||||||
cmp #'@'
|
cmp #0
|
||||||
bne b2
|
bne b2
|
||||||
rts
|
rts
|
||||||
b2:
|
b2:
|
||||||
|
@ -96,7 +96,7 @@ print_str: scope:[print_str] from do_perspective do_perspective::@11 do_perspec
|
|||||||
print_str::@1: scope:[print_str] from print_str print_str::@2
|
print_str::@1: scope:[print_str] from print_str print_str::@2
|
||||||
[45] (byte*) print_char_cursor#2 ← phi( print_str/(byte*) print_char_cursor#74 print_str::@2/(byte*) print_char_cursor#1 )
|
[45] (byte*) print_char_cursor#2 ← phi( print_str/(byte*) print_char_cursor#74 print_str::@2/(byte*) print_char_cursor#1 )
|
||||||
[45] (byte*) print_str::str#7 ← phi( print_str/(byte*) print_str::str#9 print_str::@2/(byte*) print_str::str#0 )
|
[45] (byte*) print_str::str#7 ← phi( print_str/(byte*) print_str::str#9 print_str::@2/(byte*) print_str::str#0 )
|
||||||
[46] if(*((byte*) print_str::str#7)!=(byte) '@') goto print_str::@2
|
[46] if((byte) 0!=*((byte*) print_str::str#7)) goto print_str::@2
|
||||||
to:print_str::@return
|
to:print_str::@return
|
||||||
print_str::@return: scope:[print_str] from print_str::@1
|
print_str::@return: scope:[print_str] from print_str::@1
|
||||||
[47] return
|
[47] return
|
||||||
|
@ -7,6 +7,11 @@ Fixing pointer addition (word*~) bsearch16u::$1 ← (word*) bsearch16u::items -
|
|||||||
Fixing pointer array-indexing *((word*) utoa::digit_values + (byte) utoa::digit)
|
Fixing pointer array-indexing *((word*) utoa::digit_values + (byte) utoa::digit)
|
||||||
Fixing pointer array-indexing *((dword*) ultoa::digit_values + (byte) ultoa::digit)
|
Fixing pointer array-indexing *((dword*) ultoa::digit_values + (byte) ultoa::digit)
|
||||||
Warning! Adding boolean cast to non-boolean condition *((byte*) strcpy::src)
|
Warning! Adding boolean cast to non-boolean condition *((byte*) strcpy::src)
|
||||||
|
Warning! Adding boolean cast to non-boolean condition *((byte*) print_str_lines::str)
|
||||||
|
Warning! Adding boolean cast to non-boolean condition (byte) print_str_lines::ch
|
||||||
|
Warning! Adding boolean cast to non-boolean condition *((byte*) print_str::str)
|
||||||
|
Warning! Adding boolean cast to non-boolean condition *((byte*) print_str_at::str)
|
||||||
|
Warning! Adding boolean cast to non-boolean sub-expression (byte) print_str_lines::ch
|
||||||
Identified constant variable (byte*) HEAP_TOP
|
Identified constant variable (byte*) HEAP_TOP
|
||||||
Identified constant variable (signed byte*) xr
|
Identified constant variable (signed byte*) xr
|
||||||
Identified constant variable (signed byte*) yr
|
Identified constant variable (signed byte*) yr
|
||||||
@ -122,7 +127,7 @@ print_str: scope:[print_str] from do_perspective do_perspective::@11 do_perspec
|
|||||||
print_str::@1: scope:[print_str] from print_str print_str::@2
|
print_str::@1: scope:[print_str] from print_str print_str::@2
|
||||||
(byte*) print_char_cursor#64 ← phi( print_str/(byte*) print_char_cursor#74 print_str::@2/(byte*) print_char_cursor#1 )
|
(byte*) print_char_cursor#64 ← phi( print_str/(byte*) print_char_cursor#74 print_str::@2/(byte*) print_char_cursor#1 )
|
||||||
(byte*) print_str::str#7 ← phi( print_str/(byte*) print_str::str#9 print_str::@2/(byte*) print_str::str#0 )
|
(byte*) print_str::str#7 ← phi( print_str/(byte*) print_str::str#9 print_str::@2/(byte*) print_str::str#0 )
|
||||||
(bool~) print_str::$0 ← *((byte*) print_str::str#7) != (byte) '@'
|
(bool~) print_str::$0 ← (number) 0 != *((byte*) print_str::str#7)
|
||||||
if((bool~) print_str::$0) goto print_str::@2
|
if((bool~) print_str::$0) goto print_str::@2
|
||||||
to:print_str::@return
|
to:print_str::@return
|
||||||
print_str::@2: scope:[print_str] from print_str::@1
|
print_str::@2: scope:[print_str] from print_str::@1
|
||||||
@ -905,6 +910,7 @@ SYMBOL TABLE SSA
|
|||||||
(signed byte*) zr#0
|
(signed byte*) zr#0
|
||||||
|
|
||||||
Adding number conversion cast (unumber) 0 in (bool~) memset::$0 ← (word) memset::num#1 > (number) 0
|
Adding number conversion cast (unumber) 0 in (bool~) memset::$0 ← (word) memset::num#1 > (number) 0
|
||||||
|
Adding number conversion cast (unumber) 0 in (bool~) print_str::$0 ← (number) 0 != *((byte*) print_str::str#7)
|
||||||
Adding number conversion cast (unumber) $28 in (byte*~) print_ln::$0 ← (byte*) print_line_cursor#11 + (number) $28
|
Adding number conversion cast (unumber) $28 in (byte*~) print_ln::$0 ← (byte*) print_line_cursor#11 + (number) $28
|
||||||
Adding number conversion cast (snumber) 0 in (bool~) print_sbyte::$0 ← (signed byte) print_sbyte::b#4 < (number) 0
|
Adding number conversion cast (snumber) 0 in (bool~) print_sbyte::$0 ← (signed byte) print_sbyte::b#4 < (number) 0
|
||||||
Adding number conversion cast (unumber) 4 in (byte~) print_byte::$0 ← (byte) print_byte::b#3 >> (number) 4
|
Adding number conversion cast (unumber) 4 in (byte~) print_byte::$0 ← (byte) print_byte::b#3 >> (number) 4
|
||||||
@ -952,6 +958,7 @@ Inlining cast (signed word) mulf_init::add#0 ← (snumber)(number) 1
|
|||||||
Successful SSA optimization Pass2InlineCast
|
Successful SSA optimization Pass2InlineCast
|
||||||
Simplifying constant integer cast 0
|
Simplifying constant integer cast 0
|
||||||
Simplifying constant pointer cast (byte*) 1024
|
Simplifying constant pointer cast (byte*) 1024
|
||||||
|
Simplifying constant integer cast 0
|
||||||
Simplifying constant integer cast $28
|
Simplifying constant integer cast $28
|
||||||
Simplifying constant integer cast 0
|
Simplifying constant integer cast 0
|
||||||
Simplifying constant integer cast 4
|
Simplifying constant integer cast 4
|
||||||
@ -978,6 +985,7 @@ Simplifying constant integer cast 1
|
|||||||
Simplifying constant integer cast 2
|
Simplifying constant integer cast 2
|
||||||
Successful SSA optimization PassNCastSimplification
|
Successful SSA optimization PassNCastSimplification
|
||||||
Finalized unsigned number type (byte) 0
|
Finalized unsigned number type (byte) 0
|
||||||
|
Finalized unsigned number type (byte) 0
|
||||||
Finalized unsigned number type (byte) $28
|
Finalized unsigned number type (byte) $28
|
||||||
Finalized signed number type (signed byte) 0
|
Finalized signed number type (signed byte) 0
|
||||||
Finalized unsigned number type (byte) 4
|
Finalized unsigned number type (byte) 4
|
||||||
@ -1114,7 +1122,7 @@ Identified duplicate assignment right side [215] (byte~) mulf_init::$4 ← - (by
|
|||||||
Successful SSA optimization Pass2DuplicateRValueIdentification
|
Successful SSA optimization Pass2DuplicateRValueIdentification
|
||||||
Simple Condition (bool~) memset::$1 [3] if((word) memset::num#0<=(byte) 0) goto memset::@1
|
Simple Condition (bool~) memset::$1 [3] if((word) memset::num#0<=(byte) 0) goto memset::@1
|
||||||
Simple Condition (bool~) memset::$4 [13] if((byte*) memset::dst#2!=(byte*) memset::end#0) goto memset::@5
|
Simple Condition (bool~) memset::$4 [13] if((byte*) memset::dst#2!=(byte*) memset::end#0) goto memset::@5
|
||||||
Simple Condition (bool~) print_str::$0 [26] if(*((byte*) print_str::str#7)!=(byte) '@') goto print_str::@2
|
Simple Condition (bool~) print_str::$0 [26] if((byte) 0!=*((byte*) print_str::str#7)) goto print_str::@2
|
||||||
Simple Condition (bool~) print_ln::$1 [39] if((byte*) print_line_cursor#1<(byte*) print_char_cursor#2) goto print_ln::@1
|
Simple Condition (bool~) print_ln::$1 [39] if((byte*) print_line_cursor#1<(byte*) print_char_cursor#2) goto print_ln::@1
|
||||||
Simple Condition (bool~) print_sbyte::$0 [48] if((signed byte) print_sbyte::b#4<(signed byte) 0) goto print_sbyte::@1
|
Simple Condition (bool~) print_sbyte::$0 [48] if((signed byte) print_sbyte::b#4<(signed byte) 0) goto print_sbyte::@1
|
||||||
Simple Condition (bool~) mulf_init::$11 [231] if((byte) mulf_init::i#1!=rangelast(0,$80)) goto mulf_init::@1
|
Simple Condition (bool~) mulf_init::$11 [231] if((byte) mulf_init::i#1!=rangelast(0,$80)) goto mulf_init::@1
|
||||||
@ -1480,7 +1488,7 @@ print_str: scope:[print_str] from do_perspective do_perspective::@11 do_perspec
|
|||||||
print_str::@1: scope:[print_str] from print_str print_str::@2
|
print_str::@1: scope:[print_str] from print_str print_str::@2
|
||||||
[45] (byte*) print_char_cursor#2 ← phi( print_str/(byte*) print_char_cursor#74 print_str::@2/(byte*) print_char_cursor#1 )
|
[45] (byte*) print_char_cursor#2 ← phi( print_str/(byte*) print_char_cursor#74 print_str::@2/(byte*) print_char_cursor#1 )
|
||||||
[45] (byte*) print_str::str#7 ← phi( print_str/(byte*) print_str::str#9 print_str::@2/(byte*) print_str::str#0 )
|
[45] (byte*) print_str::str#7 ← phi( print_str/(byte*) print_str::str#9 print_str::@2/(byte*) print_str::str#0 )
|
||||||
[46] if(*((byte*) print_str::str#7)!=(byte) '@') goto print_str::@2
|
[46] if((byte) 0!=*((byte*) print_str::str#7)) goto print_str::@2
|
||||||
to:print_str::@return
|
to:print_str::@return
|
||||||
print_str::@return: scope:[print_str] from print_str::@1
|
print_str::@return: scope:[print_str] from print_str::@1
|
||||||
[47] return
|
[47] return
|
||||||
@ -2039,10 +2047,10 @@ print_str: {
|
|||||||
jmp b1
|
jmp b1
|
||||||
// print_str::@1
|
// print_str::@1
|
||||||
b1:
|
b1:
|
||||||
// [46] if(*((byte*) print_str::str#7)!=(byte) '@') goto print_str::@2 -- _deref_pbuz1_neq_vbuc1_then_la1
|
// [46] if((byte) 0!=*((byte*) print_str::str#7)) goto print_str::@2 -- vbuc1_neq__deref_pbuz1_then_la1
|
||||||
ldy #0
|
ldy #0
|
||||||
lda (str),y
|
lda (str),y
|
||||||
cmp #'@'
|
cmp #0
|
||||||
bne b2
|
bne b2
|
||||||
jmp breturn
|
jmp breturn
|
||||||
// print_str::@return
|
// print_str::@return
|
||||||
@ -2451,7 +2459,7 @@ Statement [6] *((const word*) psp1#0) ← (word)(const byte[$200]) mulf_sqr1#0 [
|
|||||||
Statement [7] *((const word*) psp2#0) ← (word)(const byte[$200]) mulf_sqr2#0 [ ] ( main:2 [ ] ) always clobbers reg byte a
|
Statement [7] *((const word*) psp2#0) ← (word)(const byte[$200]) mulf_sqr2#0 [ ] ( main:2 [ ] ) always clobbers reg byte a
|
||||||
Statement [41] (byte*) print_line_cursor#1 ← (byte*) print_line_cursor#11 + (byte) $28 [ print_line_cursor#1 print_char_cursor#2 ] ( main:2::do_perspective:10::print_ln:37 [ print_line_cursor#1 print_char_cursor#2 ] ) always clobbers reg byte a
|
Statement [41] (byte*) print_line_cursor#1 ← (byte*) print_line_cursor#11 + (byte) $28 [ print_line_cursor#1 print_char_cursor#2 ] ( main:2::do_perspective:10::print_ln:37 [ print_line_cursor#1 print_char_cursor#2 ] ) always clobbers reg byte a
|
||||||
Statement [42] if((byte*) print_line_cursor#1<(byte*) print_char_cursor#2) goto print_ln::@1 [ print_line_cursor#1 print_char_cursor#2 ] ( main:2::do_perspective:10::print_ln:37 [ print_line_cursor#1 print_char_cursor#2 ] ) always clobbers reg byte a
|
Statement [42] if((byte*) print_line_cursor#1<(byte*) print_char_cursor#2) goto print_ln::@1 [ print_line_cursor#1 print_char_cursor#2 ] ( main:2::do_perspective:10::print_ln:37 [ print_line_cursor#1 print_char_cursor#2 ] ) always clobbers reg byte a
|
||||||
Statement [46] if(*((byte*) print_str::str#7)!=(byte) '@') goto print_str::@2 [ print_char_cursor#2 print_str::str#7 ] ( main:2::do_perspective:10::print_str:13 [ print_char_cursor#2 print_str::str#7 ] main:2::do_perspective:10::print_str:17 [ print_char_cursor#2 print_str::str#7 ] main:2::do_perspective:10::print_str:21 [ print_char_cursor#2 print_str::str#7 ] main:2::do_perspective:10::print_str:25 [ print_char_cursor#2 print_str::str#7 ] main:2::do_perspective:10::print_str:31 [ print_char_cursor#2 print_str::str#7 ] main:2::do_perspective:10::print_str:35 [ print_char_cursor#2 print_str::str#7 ] ) always clobbers reg byte a reg byte y
|
Statement [46] if((byte) 0!=*((byte*) print_str::str#7)) goto print_str::@2 [ print_char_cursor#2 print_str::str#7 ] ( main:2::do_perspective:10::print_str:13 [ print_char_cursor#2 print_str::str#7 ] main:2::do_perspective:10::print_str:17 [ print_char_cursor#2 print_str::str#7 ] main:2::do_perspective:10::print_str:21 [ print_char_cursor#2 print_str::str#7 ] main:2::do_perspective:10::print_str:25 [ print_char_cursor#2 print_str::str#7 ] main:2::do_perspective:10::print_str:31 [ print_char_cursor#2 print_str::str#7 ] main:2::do_perspective:10::print_str:35 [ print_char_cursor#2 print_str::str#7 ] ) always clobbers reg byte a reg byte y
|
||||||
Statement [48] *((byte*) print_char_cursor#2) ← *((byte*) print_str::str#7) [ print_char_cursor#2 print_str::str#7 ] ( main:2::do_perspective:10::print_str:13 [ print_char_cursor#2 print_str::str#7 ] main:2::do_perspective:10::print_str:17 [ print_char_cursor#2 print_str::str#7 ] main:2::do_perspective:10::print_str:21 [ print_char_cursor#2 print_str::str#7 ] main:2::do_perspective:10::print_str:25 [ print_char_cursor#2 print_str::str#7 ] main:2::do_perspective:10::print_str:31 [ print_char_cursor#2 print_str::str#7 ] main:2::do_perspective:10::print_str:35 [ print_char_cursor#2 print_str::str#7 ] ) always clobbers reg byte a reg byte y
|
Statement [48] *((byte*) print_char_cursor#2) ← *((byte*) print_str::str#7) [ print_char_cursor#2 print_str::str#7 ] ( main:2::do_perspective:10::print_str:13 [ print_char_cursor#2 print_str::str#7 ] main:2::do_perspective:10::print_str:17 [ print_char_cursor#2 print_str::str#7 ] main:2::do_perspective:10::print_str:21 [ print_char_cursor#2 print_str::str#7 ] main:2::do_perspective:10::print_str:25 [ print_char_cursor#2 print_str::str#7 ] main:2::do_perspective:10::print_str:31 [ print_char_cursor#2 print_str::str#7 ] main:2::do_perspective:10::print_str:35 [ print_char_cursor#2 print_str::str#7 ] ) always clobbers reg byte a reg byte y
|
||||||
Statement [52] (byte~) print_byte::$0 ← (byte) print_byte::b#3 >> (byte) 4 [ print_byte::b#3 print_char_cursor#69 print_byte::$0 ] ( main:2::do_perspective:10::print_byte:29 [ print_byte::b#3 print_char_cursor#69 print_byte::$0 ] main:2::do_perspective:10::print_byte:33 [ print_byte::b#3 print_char_cursor#69 print_byte::$0 ] main:2::do_perspective:10::print_sbyte:15::print_byte:74 [ print_byte::b#3 print_char_cursor#69 print_byte::$0 ] main:2::do_perspective:10::print_sbyte:19::print_byte:74 [ print_byte::b#3 print_char_cursor#69 print_byte::$0 ] main:2::do_perspective:10::print_sbyte:23::print_byte:74 [ print_byte::b#3 print_char_cursor#69 print_byte::$0 ] ) always clobbers reg byte a
|
Statement [52] (byte~) print_byte::$0 ← (byte) print_byte::b#3 >> (byte) 4 [ print_byte::b#3 print_char_cursor#69 print_byte::$0 ] ( main:2::do_perspective:10::print_byte:29 [ print_byte::b#3 print_char_cursor#69 print_byte::$0 ] main:2::do_perspective:10::print_byte:33 [ print_byte::b#3 print_char_cursor#69 print_byte::$0 ] main:2::do_perspective:10::print_sbyte:15::print_byte:74 [ print_byte::b#3 print_char_cursor#69 print_byte::$0 ] main:2::do_perspective:10::print_sbyte:19::print_byte:74 [ print_byte::b#3 print_char_cursor#69 print_byte::$0 ] main:2::do_perspective:10::print_sbyte:23::print_byte:74 [ print_byte::b#3 print_char_cursor#69 print_byte::$0 ] ) always clobbers reg byte a
|
||||||
Removing always clobbered register reg byte a as potential for zp ZP_BYTE:6 [ print_byte::b#3 print_byte::b#5 print_byte::b#6 print_byte::b#0 ]
|
Removing always clobbered register reg byte a as potential for zp ZP_BYTE:6 [ print_byte::b#3 print_byte::b#5 print_byte::b#6 print_byte::b#0 ]
|
||||||
@ -2485,7 +2493,7 @@ Statement [6] *((const word*) psp1#0) ← (word)(const byte[$200]) mulf_sqr1#0 [
|
|||||||
Statement [7] *((const word*) psp2#0) ← (word)(const byte[$200]) mulf_sqr2#0 [ ] ( main:2 [ ] ) always clobbers reg byte a
|
Statement [7] *((const word*) psp2#0) ← (word)(const byte[$200]) mulf_sqr2#0 [ ] ( main:2 [ ] ) always clobbers reg byte a
|
||||||
Statement [41] (byte*) print_line_cursor#1 ← (byte*) print_line_cursor#11 + (byte) $28 [ print_line_cursor#1 print_char_cursor#2 ] ( main:2::do_perspective:10::print_ln:37 [ print_line_cursor#1 print_char_cursor#2 ] ) always clobbers reg byte a
|
Statement [41] (byte*) print_line_cursor#1 ← (byte*) print_line_cursor#11 + (byte) $28 [ print_line_cursor#1 print_char_cursor#2 ] ( main:2::do_perspective:10::print_ln:37 [ print_line_cursor#1 print_char_cursor#2 ] ) always clobbers reg byte a
|
||||||
Statement [42] if((byte*) print_line_cursor#1<(byte*) print_char_cursor#2) goto print_ln::@1 [ print_line_cursor#1 print_char_cursor#2 ] ( main:2::do_perspective:10::print_ln:37 [ print_line_cursor#1 print_char_cursor#2 ] ) always clobbers reg byte a
|
Statement [42] if((byte*) print_line_cursor#1<(byte*) print_char_cursor#2) goto print_ln::@1 [ print_line_cursor#1 print_char_cursor#2 ] ( main:2::do_perspective:10::print_ln:37 [ print_line_cursor#1 print_char_cursor#2 ] ) always clobbers reg byte a
|
||||||
Statement [46] if(*((byte*) print_str::str#7)!=(byte) '@') goto print_str::@2 [ print_char_cursor#2 print_str::str#7 ] ( main:2::do_perspective:10::print_str:13 [ print_char_cursor#2 print_str::str#7 ] main:2::do_perspective:10::print_str:17 [ print_char_cursor#2 print_str::str#7 ] main:2::do_perspective:10::print_str:21 [ print_char_cursor#2 print_str::str#7 ] main:2::do_perspective:10::print_str:25 [ print_char_cursor#2 print_str::str#7 ] main:2::do_perspective:10::print_str:31 [ print_char_cursor#2 print_str::str#7 ] main:2::do_perspective:10::print_str:35 [ print_char_cursor#2 print_str::str#7 ] ) always clobbers reg byte a reg byte y
|
Statement [46] if((byte) 0!=*((byte*) print_str::str#7)) goto print_str::@2 [ print_char_cursor#2 print_str::str#7 ] ( main:2::do_perspective:10::print_str:13 [ print_char_cursor#2 print_str::str#7 ] main:2::do_perspective:10::print_str:17 [ print_char_cursor#2 print_str::str#7 ] main:2::do_perspective:10::print_str:21 [ print_char_cursor#2 print_str::str#7 ] main:2::do_perspective:10::print_str:25 [ print_char_cursor#2 print_str::str#7 ] main:2::do_perspective:10::print_str:31 [ print_char_cursor#2 print_str::str#7 ] main:2::do_perspective:10::print_str:35 [ print_char_cursor#2 print_str::str#7 ] ) always clobbers reg byte a reg byte y
|
||||||
Statement [48] *((byte*) print_char_cursor#2) ← *((byte*) print_str::str#7) [ print_char_cursor#2 print_str::str#7 ] ( main:2::do_perspective:10::print_str:13 [ print_char_cursor#2 print_str::str#7 ] main:2::do_perspective:10::print_str:17 [ print_char_cursor#2 print_str::str#7 ] main:2::do_perspective:10::print_str:21 [ print_char_cursor#2 print_str::str#7 ] main:2::do_perspective:10::print_str:25 [ print_char_cursor#2 print_str::str#7 ] main:2::do_perspective:10::print_str:31 [ print_char_cursor#2 print_str::str#7 ] main:2::do_perspective:10::print_str:35 [ print_char_cursor#2 print_str::str#7 ] ) always clobbers reg byte a reg byte y
|
Statement [48] *((byte*) print_char_cursor#2) ← *((byte*) print_str::str#7) [ print_char_cursor#2 print_str::str#7 ] ( main:2::do_perspective:10::print_str:13 [ print_char_cursor#2 print_str::str#7 ] main:2::do_perspective:10::print_str:17 [ print_char_cursor#2 print_str::str#7 ] main:2::do_perspective:10::print_str:21 [ print_char_cursor#2 print_str::str#7 ] main:2::do_perspective:10::print_str:25 [ print_char_cursor#2 print_str::str#7 ] main:2::do_perspective:10::print_str:31 [ print_char_cursor#2 print_str::str#7 ] main:2::do_perspective:10::print_str:35 [ print_char_cursor#2 print_str::str#7 ] ) always clobbers reg byte a reg byte y
|
||||||
Statement [52] (byte~) print_byte::$0 ← (byte) print_byte::b#3 >> (byte) 4 [ print_byte::b#3 print_char_cursor#69 print_byte::$0 ] ( main:2::do_perspective:10::print_byte:29 [ print_byte::b#3 print_char_cursor#69 print_byte::$0 ] main:2::do_perspective:10::print_byte:33 [ print_byte::b#3 print_char_cursor#69 print_byte::$0 ] main:2::do_perspective:10::print_sbyte:15::print_byte:74 [ print_byte::b#3 print_char_cursor#69 print_byte::$0 ] main:2::do_perspective:10::print_sbyte:19::print_byte:74 [ print_byte::b#3 print_char_cursor#69 print_byte::$0 ] main:2::do_perspective:10::print_sbyte:23::print_byte:74 [ print_byte::b#3 print_char_cursor#69 print_byte::$0 ] ) always clobbers reg byte a
|
Statement [52] (byte~) print_byte::$0 ← (byte) print_byte::b#3 >> (byte) 4 [ print_byte::b#3 print_char_cursor#69 print_byte::$0 ] ( main:2::do_perspective:10::print_byte:29 [ print_byte::b#3 print_char_cursor#69 print_byte::$0 ] main:2::do_perspective:10::print_byte:33 [ print_byte::b#3 print_char_cursor#69 print_byte::$0 ] main:2::do_perspective:10::print_sbyte:15::print_byte:74 [ print_byte::b#3 print_char_cursor#69 print_byte::$0 ] main:2::do_perspective:10::print_sbyte:19::print_byte:74 [ print_byte::b#3 print_char_cursor#69 print_byte::$0 ] main:2::do_perspective:10::print_sbyte:23::print_byte:74 [ print_byte::b#3 print_char_cursor#69 print_byte::$0 ] ) always clobbers reg byte a
|
||||||
Statement [55] (byte~) print_byte::$2 ← (byte) print_byte::b#3 & (byte) $f [ print_char_cursor#12 print_byte::$2 ] ( main:2::do_perspective:10::print_byte:29 [ print_char_cursor#12 print_byte::$2 ] main:2::do_perspective:10::print_byte:33 [ print_char_cursor#12 print_byte::$2 ] main:2::do_perspective:10::print_sbyte:15::print_byte:74 [ print_char_cursor#12 print_byte::$2 ] main:2::do_perspective:10::print_sbyte:19::print_byte:74 [ print_char_cursor#12 print_byte::$2 ] main:2::do_perspective:10::print_sbyte:23::print_byte:74 [ print_char_cursor#12 print_byte::$2 ] ) always clobbers reg byte a
|
Statement [55] (byte~) print_byte::$2 ← (byte) print_byte::b#3 & (byte) $f [ print_char_cursor#12 print_byte::$2 ] ( main:2::do_perspective:10::print_byte:29 [ print_char_cursor#12 print_byte::$2 ] main:2::do_perspective:10::print_byte:33 [ print_char_cursor#12 print_byte::$2 ] main:2::do_perspective:10::print_sbyte:15::print_byte:74 [ print_char_cursor#12 print_byte::$2 ] main:2::do_perspective:10::print_sbyte:19::print_byte:74 [ print_char_cursor#12 print_byte::$2 ] main:2::do_perspective:10::print_sbyte:23::print_byte:74 [ print_char_cursor#12 print_byte::$2 ] ) always clobbers reg byte a
|
||||||
@ -2873,10 +2881,10 @@ print_str: {
|
|||||||
jmp b1
|
jmp b1
|
||||||
// print_str::@1
|
// print_str::@1
|
||||||
b1:
|
b1:
|
||||||
// [46] if(*((byte*) print_str::str#7)!=(byte) '@') goto print_str::@2 -- _deref_pbuz1_neq_vbuc1_then_la1
|
// [46] if((byte) 0!=*((byte*) print_str::str#7)) goto print_str::@2 -- vbuc1_neq__deref_pbuz1_then_la1
|
||||||
ldy #0
|
ldy #0
|
||||||
lda (str),y
|
lda (str),y
|
||||||
cmp #'@'
|
cmp #0
|
||||||
bne b2
|
bne b2
|
||||||
jmp breturn
|
jmp breturn
|
||||||
// print_str::@return
|
// print_str::@return
|
||||||
@ -3822,11 +3830,11 @@ print_str: {
|
|||||||
// [45] phi (byte*) print_str::str#7 = (byte*) print_str::str#9 [phi:print_str/print_str::@2->print_str::@1#1] -- register_copy
|
// [45] phi (byte*) print_str::str#7 = (byte*) print_str::str#9 [phi:print_str/print_str::@2->print_str::@1#1] -- register_copy
|
||||||
// print_str::@1
|
// print_str::@1
|
||||||
b1:
|
b1:
|
||||||
// while(*str!='@')
|
// while(*str)
|
||||||
// [46] if(*((byte*) print_str::str#7)!=(byte) '@') goto print_str::@2 -- _deref_pbuz1_neq_vbuc1_then_la1
|
// [46] if((byte) 0!=*((byte*) print_str::str#7)) goto print_str::@2 -- vbuc1_neq__deref_pbuz1_then_la1
|
||||||
ldy #0
|
ldy #0
|
||||||
lda (str),y
|
lda (str),y
|
||||||
cmp #'@'
|
cmp #0
|
||||||
bne b2
|
bne b2
|
||||||
// print_str::@return
|
// print_str::@return
|
||||||
// }
|
// }
|
||||||
|
@ -395,7 +395,7 @@ print_str_at: {
|
|||||||
b1:
|
b1:
|
||||||
ldy #0
|
ldy #0
|
||||||
lda (str),y
|
lda (str),y
|
||||||
cmp #'@'
|
cmp #0
|
||||||
bne b2
|
bne b2
|
||||||
rts
|
rts
|
||||||
b2:
|
b2:
|
||||||
|
@ -256,7 +256,7 @@ print_str_at: scope:[print_str_at] from main::@17 main::@18 main::@19 main::@3
|
|||||||
print_str_at::@1: scope:[print_str_at] from print_str_at print_str_at::@2
|
print_str_at::@1: scope:[print_str_at] from print_str_at print_str_at::@2
|
||||||
[128] (byte*) print_str_at::at#5 ← phi( print_str_at/(byte*) print_str_at::at#7 print_str_at::@2/(byte*) print_str_at::at#4 )
|
[128] (byte*) print_str_at::at#5 ← phi( print_str_at/(byte*) print_str_at::at#7 print_str_at::@2/(byte*) print_str_at::at#4 )
|
||||||
[128] (byte*) print_str_at::str#5 ← phi( print_str_at/(byte*) print_str_at::str#7 print_str_at::@2/(byte*) print_str_at::str#4 )
|
[128] (byte*) print_str_at::str#5 ← phi( print_str_at/(byte*) print_str_at::str#7 print_str_at::@2/(byte*) print_str_at::str#4 )
|
||||||
[129] if(*((byte*) print_str_at::str#5)!=(byte) '@') goto print_str_at::@2
|
[129] if((byte) 0!=*((byte*) print_str_at::str#5)) goto print_str_at::@2
|
||||||
to:print_str_at::@return
|
to:print_str_at::@return
|
||||||
print_str_at::@return: scope:[print_str_at] from print_str_at::@1
|
print_str_at::@return: scope:[print_str_at] from print_str_at::@1
|
||||||
[130] return
|
[130] return
|
||||||
|
@ -1,3 +1,4 @@
|
|||||||
|
Warning! Adding boolean cast to non-boolean condition *((byte*) print_str_at::str)
|
||||||
Identified constant variable (byte*) SCREEN
|
Identified constant variable (byte*) SCREEN
|
||||||
Inlined call (byte~) vicSelectGfxBank::$0 ← call toDd00 (byte*) vicSelectGfxBank::gfx
|
Inlined call (byte~) vicSelectGfxBank::$0 ← call toDd00 (byte*) vicSelectGfxBank::gfx
|
||||||
Culled Empty Block (label) @1
|
Culled Empty Block (label) @1
|
||||||
@ -431,7 +432,7 @@ print_str_at: scope:[print_str_at] from main::@29 main::@3 main::@30 main::@31
|
|||||||
print_str_at::@1: scope:[print_str_at] from print_str_at print_str_at::@2
|
print_str_at::@1: scope:[print_str_at] from print_str_at print_str_at::@2
|
||||||
(byte*) print_str_at::at#6 ← phi( print_str_at/(byte*) print_str_at::at#7 print_str_at::@2/(byte*) print_str_at::at#4 )
|
(byte*) print_str_at::at#6 ← phi( print_str_at/(byte*) print_str_at::at#7 print_str_at::@2/(byte*) print_str_at::at#4 )
|
||||||
(byte*) print_str_at::str#5 ← phi( print_str_at/(byte*) print_str_at::str#7 print_str_at::@2/(byte*) print_str_at::str#4 )
|
(byte*) print_str_at::str#5 ← phi( print_str_at/(byte*) print_str_at::str#7 print_str_at::@2/(byte*) print_str_at::str#4 )
|
||||||
(bool~) print_str_at::$0 ← *((byte*) print_str_at::str#5) != (byte) '@'
|
(bool~) print_str_at::$0 ← (number) 0 != *((byte*) print_str_at::str#5)
|
||||||
if((bool~) print_str_at::$0) goto print_str_at::@2
|
if((bool~) print_str_at::$0) goto print_str_at::@2
|
||||||
to:print_str_at::@return
|
to:print_str_at::@return
|
||||||
print_str_at::@2: scope:[print_str_at] from print_str_at::@1
|
print_str_at::@2: scope:[print_str_at] from print_str_at::@1
|
||||||
@ -1132,6 +1133,7 @@ Adding number conversion cast (unumber) 0 in (byte) main::shift#2 ← (number) 0
|
|||||||
Adding number conversion cast (unumber) 0 in (byte) main::pressed#0 ← (number) 0
|
Adding number conversion cast (unumber) 0 in (byte) main::pressed#0 ← (number) 0
|
||||||
Adding number conversion cast (unumber) $3f in (bool~) main::$30 ← (byte) main::key#0 != (number) $3f
|
Adding number conversion cast (unumber) $3f in (bool~) main::$30 ← (byte) main::key#0 != (number) $3f
|
||||||
Adding number conversion cast (unumber) 0 in (bool~) main::$33 ← (byte) main::pressed#2 != (number) 0
|
Adding number conversion cast (unumber) 0 in (bool~) main::$33 ← (byte) main::pressed#2 != (number) 0
|
||||||
|
Adding number conversion cast (unumber) 0 in (bool~) print_str_at::$0 ← (number) 0 != *((byte*) print_str_at::str#5)
|
||||||
Adding number conversion cast (unumber) 8 in (number~) plot_chargen::$1 ← (word~) plot_chargen::$0 * (number) 8
|
Adding number conversion cast (unumber) 8 in (number~) plot_chargen::$1 ← (word~) plot_chargen::$0 * (number) 8
|
||||||
Adding number conversion cast (unumber) plot_chargen::$1 in (number~) plot_chargen::$1 ← (word~) plot_chargen::$0 * (unumber)(number) 8
|
Adding number conversion cast (unumber) plot_chargen::$1 in (number~) plot_chargen::$1 ← (word~) plot_chargen::$0 * (unumber)(number) 8
|
||||||
Adding number conversion cast (unumber) 0 in (bool~) plot_chargen::$3 ← (byte) plot_chargen::shift#2 != (number) 0
|
Adding number conversion cast (unumber) 0 in (bool~) plot_chargen::$3 ← (byte) plot_chargen::shift#2 != (number) 0
|
||||||
@ -1353,6 +1355,7 @@ Simplifying constant integer cast 0
|
|||||||
Simplifying constant integer cast 0
|
Simplifying constant integer cast 0
|
||||||
Simplifying constant integer cast $3f
|
Simplifying constant integer cast $3f
|
||||||
Simplifying constant integer cast 0
|
Simplifying constant integer cast 0
|
||||||
|
Simplifying constant integer cast 0
|
||||||
Simplifying constant integer cast 8
|
Simplifying constant integer cast 8
|
||||||
Simplifying constant integer cast 0
|
Simplifying constant integer cast 0
|
||||||
Simplifying constant integer cast $32
|
Simplifying constant integer cast $32
|
||||||
@ -1455,6 +1458,7 @@ Finalized unsigned number type (byte) 0
|
|||||||
Finalized unsigned number type (byte) 0
|
Finalized unsigned number type (byte) 0
|
||||||
Finalized unsigned number type (byte) $3f
|
Finalized unsigned number type (byte) $3f
|
||||||
Finalized unsigned number type (byte) 0
|
Finalized unsigned number type (byte) 0
|
||||||
|
Finalized unsigned number type (byte) 0
|
||||||
Finalized unsigned number type (byte) 8
|
Finalized unsigned number type (byte) 8
|
||||||
Finalized unsigned number type (byte) 0
|
Finalized unsigned number type (byte) 0
|
||||||
Finalized unsigned number type (byte) $32
|
Finalized unsigned number type (byte) $32
|
||||||
@ -1579,7 +1583,7 @@ Simple Condition (bool~) main::$28 [200] if((byte~) main::$27!=(byte) 0) goto ma
|
|||||||
Simple Condition (bool~) main::$31 [218] if((byte) main::key#0==(byte) $3f) goto main::@17
|
Simple Condition (bool~) main::$31 [218] if((byte) main::key#0==(byte) $3f) goto main::@17
|
||||||
Simple Condition (bool~) main::$34 [222] if((byte) main::pressed#2==(byte) 0) goto main::@18
|
Simple Condition (bool~) main::$34 [222] if((byte) main::pressed#2==(byte) 0) goto main::@18
|
||||||
Simple Condition (bool~) main::$36 [233] if((byte) main::ch#1!=rangelast(0,$3f)) goto main::@16
|
Simple Condition (bool~) main::$36 [233] if((byte) main::ch#1!=rangelast(0,$3f)) goto main::@16
|
||||||
Simple Condition (bool~) print_str_at::$0 [246] if(*((byte*) print_str_at::str#5)!=(byte) '@') goto print_str_at::@2
|
Simple Condition (bool~) print_str_at::$0 [246] if((byte) 0!=*((byte*) print_str_at::str#5)) goto print_str_at::@2
|
||||||
Simple Condition (bool~) plot_chargen::$4 [260] if((byte) plot_chargen::shift#2==(byte) 0) goto plot_chargen::@1
|
Simple Condition (bool~) plot_chargen::$4 [260] if((byte) plot_chargen::shift#2==(byte) 0) goto plot_chargen::@1
|
||||||
Simple Condition (bool~) plot_chargen::$12 [285] if((byte~) plot_chargen::$10==(byte) 0) goto plot_chargen::@5
|
Simple Condition (bool~) plot_chargen::$12 [285] if((byte~) plot_chargen::$10==(byte) 0) goto plot_chargen::@5
|
||||||
Simple Condition (bool~) plot_chargen::$14 [293] if((byte) plot_chargen::x#1!=rangelast(0,7)) goto plot_chargen::@4
|
Simple Condition (bool~) plot_chargen::$14 [293] if((byte) plot_chargen::x#1!=rangelast(0,7)) goto plot_chargen::@4
|
||||||
@ -2220,7 +2224,7 @@ print_str_at: scope:[print_str_at] from main::@17 main::@18 main::@19 main::@3
|
|||||||
print_str_at::@1: scope:[print_str_at] from print_str_at print_str_at::@2
|
print_str_at::@1: scope:[print_str_at] from print_str_at print_str_at::@2
|
||||||
[128] (byte*) print_str_at::at#5 ← phi( print_str_at/(byte*) print_str_at::at#7 print_str_at::@2/(byte*) print_str_at::at#4 )
|
[128] (byte*) print_str_at::at#5 ← phi( print_str_at/(byte*) print_str_at::at#7 print_str_at::@2/(byte*) print_str_at::at#4 )
|
||||||
[128] (byte*) print_str_at::str#5 ← phi( print_str_at/(byte*) print_str_at::str#7 print_str_at::@2/(byte*) print_str_at::str#4 )
|
[128] (byte*) print_str_at::str#5 ← phi( print_str_at/(byte*) print_str_at::str#7 print_str_at::@2/(byte*) print_str_at::str#4 )
|
||||||
[129] if(*((byte*) print_str_at::str#5)!=(byte) '@') goto print_str_at::@2
|
[129] if((byte) 0!=*((byte*) print_str_at::str#5)) goto print_str_at::@2
|
||||||
to:print_str_at::@return
|
to:print_str_at::@return
|
||||||
print_str_at::@return: scope:[print_str_at] from print_str_at::@1
|
print_str_at::@return: scope:[print_str_at] from print_str_at::@1
|
||||||
[130] return
|
[130] return
|
||||||
@ -3512,10 +3516,10 @@ print_str_at: {
|
|||||||
jmp b1
|
jmp b1
|
||||||
// print_str_at::@1
|
// print_str_at::@1
|
||||||
b1:
|
b1:
|
||||||
// [129] if(*((byte*) print_str_at::str#5)!=(byte) '@') goto print_str_at::@2 -- _deref_pbuz1_neq_vbuc1_then_la1
|
// [129] if((byte) 0!=*((byte*) print_str_at::str#5)) goto print_str_at::@2 -- vbuc1_neq__deref_pbuz1_then_la1
|
||||||
ldy #0
|
ldy #0
|
||||||
lda (str),y
|
lda (str),y
|
||||||
cmp #'@'
|
cmp #0
|
||||||
bne b2
|
bne b2
|
||||||
jmp breturn
|
jmp breturn
|
||||||
// print_str_at::@return
|
// print_str_at::@return
|
||||||
@ -3585,7 +3589,7 @@ Statement [115] (byte) keyboard_key_pressed::rowidx#0 ← (byte) keyboard_key_pr
|
|||||||
Removing always clobbered register reg byte a as potential for zp ZP_BYTE:54 [ keyboard_key_pressed::colidx#0 ]
|
Removing always clobbered register reg byte a as potential for zp ZP_BYTE:54 [ keyboard_key_pressed::colidx#0 ]
|
||||||
Statement [122] *((const byte*) CIA1_PORT_A#0) ← *((const byte[8]) keyboard_matrix_row_bitmask#0 + (byte) keyboard_matrix_read::rowid#0) [ ] ( main:2::keyboard_key_pressed:23::keyboard_matrix_read:117 [ main::cur_pos#24 keyboard_key_pressed::colidx#0 ] main:2::keyboard_key_pressed:29::keyboard_matrix_read:117 [ main::cur_pos#22 keyboard_key_pressed::colidx#0 ] main:2::keyboard_key_pressed:35::keyboard_matrix_read:117 [ main::cur_pos#20 keyboard_key_pressed::colidx#0 ] main:2::keyboard_key_pressed:41::keyboard_matrix_read:117 [ main::cur_pos#18 keyboard_key_pressed::colidx#0 ] main:2::keyboard_key_pressed:47::keyboard_matrix_read:117 [ main::cur_pos#11 keyboard_key_pressed::colidx#0 ] main:2::keyboard_key_pressed:60::keyboard_matrix_read:117 [ main::cur_pos#11 main::shift#9 main::ch#2 keyboard_key_pressed::colidx#0 ] ) always clobbers reg byte a
|
Statement [122] *((const byte*) CIA1_PORT_A#0) ← *((const byte[8]) keyboard_matrix_row_bitmask#0 + (byte) keyboard_matrix_read::rowid#0) [ ] ( main:2::keyboard_key_pressed:23::keyboard_matrix_read:117 [ main::cur_pos#24 keyboard_key_pressed::colidx#0 ] main:2::keyboard_key_pressed:29::keyboard_matrix_read:117 [ main::cur_pos#22 keyboard_key_pressed::colidx#0 ] main:2::keyboard_key_pressed:35::keyboard_matrix_read:117 [ main::cur_pos#20 keyboard_key_pressed::colidx#0 ] main:2::keyboard_key_pressed:41::keyboard_matrix_read:117 [ main::cur_pos#18 keyboard_key_pressed::colidx#0 ] main:2::keyboard_key_pressed:47::keyboard_matrix_read:117 [ main::cur_pos#11 keyboard_key_pressed::colidx#0 ] main:2::keyboard_key_pressed:60::keyboard_matrix_read:117 [ main::cur_pos#11 main::shift#9 main::ch#2 keyboard_key_pressed::colidx#0 ] ) always clobbers reg byte a
|
||||||
Statement [123] (byte) keyboard_matrix_read::return#0 ← ~ *((const byte*) CIA1_PORT_B#0) [ keyboard_matrix_read::return#0 ] ( main:2::keyboard_key_pressed:23::keyboard_matrix_read:117 [ main::cur_pos#24 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::keyboard_key_pressed:29::keyboard_matrix_read:117 [ main::cur_pos#22 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::keyboard_key_pressed:35::keyboard_matrix_read:117 [ main::cur_pos#20 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::keyboard_key_pressed:41::keyboard_matrix_read:117 [ main::cur_pos#18 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::keyboard_key_pressed:47::keyboard_matrix_read:117 [ main::cur_pos#11 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::keyboard_key_pressed:60::keyboard_matrix_read:117 [ main::cur_pos#11 main::shift#9 main::ch#2 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] ) always clobbers reg byte a
|
Statement [123] (byte) keyboard_matrix_read::return#0 ← ~ *((const byte*) CIA1_PORT_B#0) [ keyboard_matrix_read::return#0 ] ( main:2::keyboard_key_pressed:23::keyboard_matrix_read:117 [ main::cur_pos#24 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::keyboard_key_pressed:29::keyboard_matrix_read:117 [ main::cur_pos#22 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::keyboard_key_pressed:35::keyboard_matrix_read:117 [ main::cur_pos#20 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::keyboard_key_pressed:41::keyboard_matrix_read:117 [ main::cur_pos#18 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::keyboard_key_pressed:47::keyboard_matrix_read:117 [ main::cur_pos#11 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::keyboard_key_pressed:60::keyboard_matrix_read:117 [ main::cur_pos#11 main::shift#9 main::ch#2 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] ) always clobbers reg byte a
|
||||||
Statement [129] if(*((byte*) print_str_at::str#5)!=(byte) '@') goto print_str_at::@2 [ print_str_at::str#5 print_str_at::at#5 ] ( main:2::print_str_at:10 [ print_str_at::str#5 print_str_at::at#5 ] main:2::print_str_at:12 [ print_str_at::str#5 print_str_at::at#5 ] main:2::print_str_at:14 [ print_str_at::str#5 print_str_at::at#5 ] main:2::print_str_at:16 [ print_str_at::str#5 print_str_at::at#5 ] ) always clobbers reg byte a reg byte y
|
Statement [129] if((byte) 0!=*((byte*) print_str_at::str#5)) goto print_str_at::@2 [ print_str_at::str#5 print_str_at::at#5 ] ( main:2::print_str_at:10 [ print_str_at::str#5 print_str_at::at#5 ] main:2::print_str_at:12 [ print_str_at::str#5 print_str_at::at#5 ] main:2::print_str_at:14 [ print_str_at::str#5 print_str_at::at#5 ] main:2::print_str_at:16 [ print_str_at::str#5 print_str_at::at#5 ] ) always clobbers reg byte a reg byte y
|
||||||
Statement [131] *((byte*) print_str_at::at#5) ← *((byte*) print_str_at::str#5) [ print_str_at::str#5 print_str_at::at#5 ] ( main:2::print_str_at:10 [ print_str_at::str#5 print_str_at::at#5 ] main:2::print_str_at:12 [ print_str_at::str#5 print_str_at::at#5 ] main:2::print_str_at:14 [ print_str_at::str#5 print_str_at::at#5 ] main:2::print_str_at:16 [ print_str_at::str#5 print_str_at::at#5 ] ) always clobbers reg byte a reg byte y
|
Statement [131] *((byte*) print_str_at::at#5) ← *((byte*) print_str_at::str#5) [ print_str_at::str#5 print_str_at::at#5 ] ( main:2::print_str_at:10 [ print_str_at::str#5 print_str_at::at#5 ] main:2::print_str_at:12 [ print_str_at::str#5 print_str_at::at#5 ] main:2::print_str_at:14 [ print_str_at::str#5 print_str_at::at#5 ] main:2::print_str_at:16 [ print_str_at::str#5 print_str_at::at#5 ] ) always clobbers reg byte a reg byte y
|
||||||
Statement [6] *((byte*) main::sc#4) ← (byte) ' ' [ main::sc#4 ] ( main:2 [ main::sc#4 ] ) always clobbers reg byte a reg byte y
|
Statement [6] *((byte*) main::sc#4) ← (byte) ' ' [ main::sc#4 ] ( main:2 [ main::sc#4 ] ) always clobbers reg byte a reg byte y
|
||||||
Statement [8] if((byte*) main::sc#1<(const byte*) SCREEN#0+(word) $3e8) goto main::@2 [ main::sc#1 ] ( main:2 [ main::sc#1 ] ) always clobbers reg byte a
|
Statement [8] if((byte*) main::sc#1<(const byte*) SCREEN#0+(word) $3e8) goto main::@2 [ main::sc#1 ] ( main:2 [ main::sc#1 ] ) always clobbers reg byte a
|
||||||
@ -3606,7 +3610,7 @@ Statement [109] (word) mul8u::res#1 ← (word) mul8u::res#2 + (word) mul8u::mb#2
|
|||||||
Statement [115] (byte) keyboard_key_pressed::rowidx#0 ← (byte) keyboard_key_pressed::key#6 >> (byte) 3 [ keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] ( main:2::keyboard_key_pressed:23 [ main::cur_pos#24 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::keyboard_key_pressed:29 [ main::cur_pos#22 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::keyboard_key_pressed:35 [ main::cur_pos#20 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::keyboard_key_pressed:41 [ main::cur_pos#18 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::keyboard_key_pressed:47 [ main::cur_pos#11 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::keyboard_key_pressed:60 [ main::cur_pos#11 main::shift#9 main::ch#2 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] ) always clobbers reg byte a
|
Statement [115] (byte) keyboard_key_pressed::rowidx#0 ← (byte) keyboard_key_pressed::key#6 >> (byte) 3 [ keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] ( main:2::keyboard_key_pressed:23 [ main::cur_pos#24 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::keyboard_key_pressed:29 [ main::cur_pos#22 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::keyboard_key_pressed:35 [ main::cur_pos#20 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::keyboard_key_pressed:41 [ main::cur_pos#18 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::keyboard_key_pressed:47 [ main::cur_pos#11 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::keyboard_key_pressed:60 [ main::cur_pos#11 main::shift#9 main::ch#2 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] ) always clobbers reg byte a
|
||||||
Statement [122] *((const byte*) CIA1_PORT_A#0) ← *((const byte[8]) keyboard_matrix_row_bitmask#0 + (byte) keyboard_matrix_read::rowid#0) [ ] ( main:2::keyboard_key_pressed:23::keyboard_matrix_read:117 [ main::cur_pos#24 keyboard_key_pressed::colidx#0 ] main:2::keyboard_key_pressed:29::keyboard_matrix_read:117 [ main::cur_pos#22 keyboard_key_pressed::colidx#0 ] main:2::keyboard_key_pressed:35::keyboard_matrix_read:117 [ main::cur_pos#20 keyboard_key_pressed::colidx#0 ] main:2::keyboard_key_pressed:41::keyboard_matrix_read:117 [ main::cur_pos#18 keyboard_key_pressed::colidx#0 ] main:2::keyboard_key_pressed:47::keyboard_matrix_read:117 [ main::cur_pos#11 keyboard_key_pressed::colidx#0 ] main:2::keyboard_key_pressed:60::keyboard_matrix_read:117 [ main::cur_pos#11 main::shift#9 main::ch#2 keyboard_key_pressed::colidx#0 ] ) always clobbers reg byte a
|
Statement [122] *((const byte*) CIA1_PORT_A#0) ← *((const byte[8]) keyboard_matrix_row_bitmask#0 + (byte) keyboard_matrix_read::rowid#0) [ ] ( main:2::keyboard_key_pressed:23::keyboard_matrix_read:117 [ main::cur_pos#24 keyboard_key_pressed::colidx#0 ] main:2::keyboard_key_pressed:29::keyboard_matrix_read:117 [ main::cur_pos#22 keyboard_key_pressed::colidx#0 ] main:2::keyboard_key_pressed:35::keyboard_matrix_read:117 [ main::cur_pos#20 keyboard_key_pressed::colidx#0 ] main:2::keyboard_key_pressed:41::keyboard_matrix_read:117 [ main::cur_pos#18 keyboard_key_pressed::colidx#0 ] main:2::keyboard_key_pressed:47::keyboard_matrix_read:117 [ main::cur_pos#11 keyboard_key_pressed::colidx#0 ] main:2::keyboard_key_pressed:60::keyboard_matrix_read:117 [ main::cur_pos#11 main::shift#9 main::ch#2 keyboard_key_pressed::colidx#0 ] ) always clobbers reg byte a
|
||||||
Statement [123] (byte) keyboard_matrix_read::return#0 ← ~ *((const byte*) CIA1_PORT_B#0) [ keyboard_matrix_read::return#0 ] ( main:2::keyboard_key_pressed:23::keyboard_matrix_read:117 [ main::cur_pos#24 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::keyboard_key_pressed:29::keyboard_matrix_read:117 [ main::cur_pos#22 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::keyboard_key_pressed:35::keyboard_matrix_read:117 [ main::cur_pos#20 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::keyboard_key_pressed:41::keyboard_matrix_read:117 [ main::cur_pos#18 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::keyboard_key_pressed:47::keyboard_matrix_read:117 [ main::cur_pos#11 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::keyboard_key_pressed:60::keyboard_matrix_read:117 [ main::cur_pos#11 main::shift#9 main::ch#2 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] ) always clobbers reg byte a
|
Statement [123] (byte) keyboard_matrix_read::return#0 ← ~ *((const byte*) CIA1_PORT_B#0) [ keyboard_matrix_read::return#0 ] ( main:2::keyboard_key_pressed:23::keyboard_matrix_read:117 [ main::cur_pos#24 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::keyboard_key_pressed:29::keyboard_matrix_read:117 [ main::cur_pos#22 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::keyboard_key_pressed:35::keyboard_matrix_read:117 [ main::cur_pos#20 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::keyboard_key_pressed:41::keyboard_matrix_read:117 [ main::cur_pos#18 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::keyboard_key_pressed:47::keyboard_matrix_read:117 [ main::cur_pos#11 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::keyboard_key_pressed:60::keyboard_matrix_read:117 [ main::cur_pos#11 main::shift#9 main::ch#2 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] ) always clobbers reg byte a
|
||||||
Statement [129] if(*((byte*) print_str_at::str#5)!=(byte) '@') goto print_str_at::@2 [ print_str_at::str#5 print_str_at::at#5 ] ( main:2::print_str_at:10 [ print_str_at::str#5 print_str_at::at#5 ] main:2::print_str_at:12 [ print_str_at::str#5 print_str_at::at#5 ] main:2::print_str_at:14 [ print_str_at::str#5 print_str_at::at#5 ] main:2::print_str_at:16 [ print_str_at::str#5 print_str_at::at#5 ] ) always clobbers reg byte a reg byte y
|
Statement [129] if((byte) 0!=*((byte*) print_str_at::str#5)) goto print_str_at::@2 [ print_str_at::str#5 print_str_at::at#5 ] ( main:2::print_str_at:10 [ print_str_at::str#5 print_str_at::at#5 ] main:2::print_str_at:12 [ print_str_at::str#5 print_str_at::at#5 ] main:2::print_str_at:14 [ print_str_at::str#5 print_str_at::at#5 ] main:2::print_str_at:16 [ print_str_at::str#5 print_str_at::at#5 ] ) always clobbers reg byte a reg byte y
|
||||||
Statement [131] *((byte*) print_str_at::at#5) ← *((byte*) print_str_at::str#5) [ print_str_at::str#5 print_str_at::at#5 ] ( main:2::print_str_at:10 [ print_str_at::str#5 print_str_at::at#5 ] main:2::print_str_at:12 [ print_str_at::str#5 print_str_at::at#5 ] main:2::print_str_at:14 [ print_str_at::str#5 print_str_at::at#5 ] main:2::print_str_at:16 [ print_str_at::str#5 print_str_at::at#5 ] ) always clobbers reg byte a reg byte y
|
Statement [131] *((byte*) print_str_at::at#5) ← *((byte*) print_str_at::str#5) [ print_str_at::str#5 print_str_at::at#5 ] ( main:2::print_str_at:10 [ print_str_at::str#5 print_str_at::at#5 ] main:2::print_str_at:12 [ print_str_at::str#5 print_str_at::at#5 ] main:2::print_str_at:14 [ print_str_at::str#5 print_str_at::at#5 ] main:2::print_str_at:16 [ print_str_at::str#5 print_str_at::at#5 ] ) always clobbers reg byte a reg byte y
|
||||||
Potential registers zp ZP_WORD:2 [ main::sc#4 main::sc#1 ] : zp ZP_WORD:2 ,
|
Potential registers zp ZP_WORD:2 [ main::sc#4 main::sc#1 ] : zp ZP_WORD:2 ,
|
||||||
Potential registers zp ZP_BYTE:4 [ main::i#2 main::i#1 ] : zp ZP_BYTE:4 , reg byte x ,
|
Potential registers zp ZP_BYTE:4 [ main::i#2 main::i#1 ] : zp ZP_BYTE:4 , reg byte x ,
|
||||||
@ -4567,10 +4571,10 @@ print_str_at: {
|
|||||||
jmp b1
|
jmp b1
|
||||||
// print_str_at::@1
|
// print_str_at::@1
|
||||||
b1:
|
b1:
|
||||||
// [129] if(*((byte*) print_str_at::str#5)!=(byte) '@') goto print_str_at::@2 -- _deref_pbuz1_neq_vbuc1_then_la1
|
// [129] if((byte) 0!=*((byte*) print_str_at::str#5)) goto print_str_at::@2 -- vbuc1_neq__deref_pbuz1_then_la1
|
||||||
ldy #0
|
ldy #0
|
||||||
lda (str),y
|
lda (str),y
|
||||||
cmp #'@'
|
cmp #0
|
||||||
bne b2
|
bne b2
|
||||||
jmp breturn
|
jmp breturn
|
||||||
// print_str_at::@return
|
// print_str_at::@return
|
||||||
@ -5888,11 +5892,11 @@ print_str_at: {
|
|||||||
// [128] phi (byte*) print_str_at::str#5 = (byte*) print_str_at::str#7 [phi:print_str_at/print_str_at::@2->print_str_at::@1#1] -- register_copy
|
// [128] phi (byte*) print_str_at::str#5 = (byte*) print_str_at::str#7 [phi:print_str_at/print_str_at::@2->print_str_at::@1#1] -- register_copy
|
||||||
// print_str_at::@1
|
// print_str_at::@1
|
||||||
b1:
|
b1:
|
||||||
// while(*str!='@')
|
// while(*str)
|
||||||
// [129] if(*((byte*) print_str_at::str#5)!=(byte) '@') goto print_str_at::@2 -- _deref_pbuz1_neq_vbuc1_then_la1
|
// [129] if((byte) 0!=*((byte*) print_str_at::str#5)) goto print_str_at::@2 -- vbuc1_neq__deref_pbuz1_then_la1
|
||||||
ldy #0
|
ldy #0
|
||||||
lda (str),y
|
lda (str),y
|
||||||
cmp #'@'
|
cmp #0
|
||||||
bne b2
|
bne b2
|
||||||
// print_str_at::@return
|
// print_str_at::@return
|
||||||
// }
|
// }
|
||||||
|
@ -6,6 +6,11 @@ Fixing pointer addition (word*~) bsearch16u::$1 ← (word*) bsearch16u::items -
|
|||||||
Fixing pointer array-indexing *((word*) utoa::digit_values + (byte) utoa::digit)
|
Fixing pointer array-indexing *((word*) utoa::digit_values + (byte) utoa::digit)
|
||||||
Fixing pointer array-indexing *((dword*) ultoa::digit_values + (byte) ultoa::digit)
|
Fixing pointer array-indexing *((dword*) ultoa::digit_values + (byte) ultoa::digit)
|
||||||
Warning! Adding boolean cast to non-boolean condition *((byte*) strcpy::src)
|
Warning! Adding boolean cast to non-boolean condition *((byte*) strcpy::src)
|
||||||
|
Warning! Adding boolean cast to non-boolean condition *((byte*) print_str_lines::str)
|
||||||
|
Warning! Adding boolean cast to non-boolean condition (byte) print_str_lines::ch
|
||||||
|
Warning! Adding boolean cast to non-boolean condition *((byte*) print_str::str)
|
||||||
|
Warning! Adding boolean cast to non-boolean condition *((byte*) print_str_at::str)
|
||||||
|
Warning! Adding boolean cast to non-boolean sub-expression (byte) print_str_lines::ch
|
||||||
Identified constant variable (byte*) HEAP_TOP
|
Identified constant variable (byte*) HEAP_TOP
|
||||||
Identified constant variable (byte) init_screen::WHITE
|
Identified constant variable (byte) init_screen::WHITE
|
||||||
Identified constant variable (signed byte*) ap
|
Identified constant variable (signed byte*) ap
|
||||||
|
@ -49,7 +49,7 @@ print_str: {
|
|||||||
b1:
|
b1:
|
||||||
ldy #0
|
ldy #0
|
||||||
lda (str),y
|
lda (str),y
|
||||||
cmp #'@'
|
cmp #0
|
||||||
bne b2
|
bne b2
|
||||||
rts
|
rts
|
||||||
b2:
|
b2:
|
||||||
|
@ -35,7 +35,7 @@ print_str: scope:[print_str] from main
|
|||||||
print_str::@1: scope:[print_str] from print_str print_str::@2
|
print_str::@1: scope:[print_str] from print_str print_str::@2
|
||||||
[15] (byte*) print_char_cursor#10 ← phi( print_str/(byte*) 1024 print_str::@2/(byte*) print_char_cursor#1 )
|
[15] (byte*) print_char_cursor#10 ← phi( print_str/(byte*) 1024 print_str::@2/(byte*) print_char_cursor#1 )
|
||||||
[15] (byte*) print_str::str#2 ← phi( print_str/(const string) main::str print_str::@2/(byte*) print_str::str#0 )
|
[15] (byte*) print_str::str#2 ← phi( print_str/(const string) main::str print_str::@2/(byte*) print_str::str#0 )
|
||||||
[16] if(*((byte*) print_str::str#2)!=(byte) '@') goto print_str::@2
|
[16] if((byte) 0!=*((byte*) print_str::str#2)) goto print_str::@2
|
||||||
to:print_str::@return
|
to:print_str::@return
|
||||||
print_str::@return: scope:[print_str] from print_str::@1
|
print_str::@return: scope:[print_str] from print_str::@1
|
||||||
[17] return
|
[17] return
|
||||||
|
@ -4,6 +4,11 @@ Fixing pointer addition (word*~) bsearch16u::$1 ← (word*) bsearch16u::items -
|
|||||||
Fixing pointer array-indexing *((word*) utoa::digit_values + (byte) utoa::digit)
|
Fixing pointer array-indexing *((word*) utoa::digit_values + (byte) utoa::digit)
|
||||||
Fixing pointer array-indexing *((dword*) ultoa::digit_values + (byte) ultoa::digit)
|
Fixing pointer array-indexing *((dword*) ultoa::digit_values + (byte) ultoa::digit)
|
||||||
Warning! Adding boolean cast to non-boolean condition *((byte*) strcpy::src)
|
Warning! Adding boolean cast to non-boolean condition *((byte*) strcpy::src)
|
||||||
|
Warning! Adding boolean cast to non-boolean condition *((byte*) print_str_lines::str)
|
||||||
|
Warning! Adding boolean cast to non-boolean condition (byte) print_str_lines::ch
|
||||||
|
Warning! Adding boolean cast to non-boolean condition *((byte*) print_str::str)
|
||||||
|
Warning! Adding boolean cast to non-boolean condition *((byte*) print_str_at::str)
|
||||||
|
Warning! Adding boolean cast to non-boolean sub-expression (byte) print_str_lines::ch
|
||||||
Identified constant variable (byte*) HEAP_TOP
|
Identified constant variable (byte*) HEAP_TOP
|
||||||
Culled Empty Block (label) @1
|
Culled Empty Block (label) @1
|
||||||
Culled Empty Block (label) @2
|
Culled Empty Block (label) @2
|
||||||
@ -60,7 +65,7 @@ print_str: scope:[print_str] from main
|
|||||||
print_str::@1: scope:[print_str] from print_str print_str::@2
|
print_str::@1: scope:[print_str] from print_str print_str::@2
|
||||||
(byte*) print_char_cursor#17 ← phi( print_str/(byte*) print_char_cursor#21 print_str::@2/(byte*) print_char_cursor#1 )
|
(byte*) print_char_cursor#17 ← phi( print_str/(byte*) print_char_cursor#21 print_str::@2/(byte*) print_char_cursor#1 )
|
||||||
(byte*) print_str::str#2 ← phi( print_str/(byte*) print_str::str#4 print_str::@2/(byte*) print_str::str#0 )
|
(byte*) print_str::str#2 ← phi( print_str/(byte*) print_str::str#4 print_str::@2/(byte*) print_str::str#0 )
|
||||||
(bool~) print_str::$0 ← *((byte*) print_str::str#2) != (byte) '@'
|
(bool~) print_str::$0 ← (number) 0 != *((byte*) print_str::str#2)
|
||||||
if((bool~) print_str::$0) goto print_str::@2
|
if((bool~) print_str::$0) goto print_str::@2
|
||||||
to:print_str::@return
|
to:print_str::@return
|
||||||
print_str::@2: scope:[print_str] from print_str::@1
|
print_str::@2: scope:[print_str] from print_str::@1
|
||||||
@ -211,13 +216,16 @@ SYMBOL TABLE SSA
|
|||||||
(byte*) print_str::str#3
|
(byte*) print_str::str#3
|
||||||
(byte*) print_str::str#4
|
(byte*) print_str::str#4
|
||||||
|
|
||||||
|
Adding number conversion cast (unumber) 0 in (bool~) print_str::$0 ← (number) 0 != *((byte*) print_str::str#2)
|
||||||
Adding number conversion cast (unumber) $28 in (byte*~) print_ln::$0 ← (byte*) print_line_cursor#6 + (number) $28
|
Adding number conversion cast (unumber) $28 in (byte*~) print_ln::$0 ← (byte*) print_line_cursor#6 + (number) $28
|
||||||
Successful SSA optimization PassNAddNumberTypeConversions
|
Successful SSA optimization PassNAddNumberTypeConversions
|
||||||
Inlining cast (byte*) print_screen#0 ← (byte*)(number) $400
|
Inlining cast (byte*) print_screen#0 ← (byte*)(number) $400
|
||||||
Successful SSA optimization Pass2InlineCast
|
Successful SSA optimization Pass2InlineCast
|
||||||
Simplifying constant pointer cast (byte*) 1024
|
Simplifying constant pointer cast (byte*) 1024
|
||||||
|
Simplifying constant integer cast 0
|
||||||
Simplifying constant integer cast $28
|
Simplifying constant integer cast $28
|
||||||
Successful SSA optimization PassNCastSimplification
|
Successful SSA optimization PassNCastSimplification
|
||||||
|
Finalized unsigned number type (byte) 0
|
||||||
Finalized unsigned number type (byte) $28
|
Finalized unsigned number type (byte) $28
|
||||||
Successful SSA optimization PassNFinalizeNumberTypeConversions
|
Successful SSA optimization PassNFinalizeNumberTypeConversions
|
||||||
Alias (byte*) print_char_cursor#0 = (byte*) print_line_cursor#0 (byte*) print_screen#0 (byte*) print_char_cursor#20 (byte*) print_line_cursor#14
|
Alias (byte*) print_char_cursor#0 = (byte*) print_line_cursor#0 (byte*) print_screen#0 (byte*) print_char_cursor#20 (byte*) print_line_cursor#14
|
||||||
@ -244,7 +252,7 @@ Identical Phi Values (byte*) print_char_cursor#14 (byte*) print_line_cursor#1
|
|||||||
Identical Phi Values (byte*) print_char_cursor#16 (byte*) print_char_cursor#14
|
Identical Phi Values (byte*) print_char_cursor#16 (byte*) print_char_cursor#14
|
||||||
Identical Phi Values (byte*) print_line_cursor#11 (byte*) print_line_cursor#10
|
Identical Phi Values (byte*) print_line_cursor#11 (byte*) print_line_cursor#10
|
||||||
Successful SSA optimization Pass2IdenticalPhiElimination
|
Successful SSA optimization Pass2IdenticalPhiElimination
|
||||||
Simple Condition (bool~) print_str::$0 [6] if(*((byte*) print_str::str#2)!=(byte) '@') goto print_str::@2
|
Simple Condition (bool~) print_str::$0 [6] if((byte) 0!=*((byte*) print_str::str#2)) goto print_str::@2
|
||||||
Simple Condition (bool~) print_ln::$1 [19] if((byte*) print_line_cursor#1<(byte*) print_char_cursor#10) goto print_ln::@1
|
Simple Condition (bool~) print_ln::$1 [19] if((byte*) print_line_cursor#1<(byte*) print_char_cursor#10) goto print_ln::@1
|
||||||
Successful SSA optimization Pass2ConditionalJumpSimplification
|
Successful SSA optimization Pass2ConditionalJumpSimplification
|
||||||
Constant (const byte*) print_char_cursor#0 = (byte*) 1024
|
Constant (const byte*) print_char_cursor#0 = (byte*) 1024
|
||||||
@ -328,7 +336,7 @@ print_str: scope:[print_str] from main
|
|||||||
print_str::@1: scope:[print_str] from print_str print_str::@2
|
print_str::@1: scope:[print_str] from print_str print_str::@2
|
||||||
[15] (byte*) print_char_cursor#10 ← phi( print_str/(byte*) 1024 print_str::@2/(byte*) print_char_cursor#1 )
|
[15] (byte*) print_char_cursor#10 ← phi( print_str/(byte*) 1024 print_str::@2/(byte*) print_char_cursor#1 )
|
||||||
[15] (byte*) print_str::str#2 ← phi( print_str/(const string) main::str print_str::@2/(byte*) print_str::str#0 )
|
[15] (byte*) print_str::str#2 ← phi( print_str/(const string) main::str print_str::@2/(byte*) print_str::str#0 )
|
||||||
[16] if(*((byte*) print_str::str#2)!=(byte) '@') goto print_str::@2
|
[16] if((byte) 0!=*((byte*) print_str::str#2)) goto print_str::@2
|
||||||
to:print_str::@return
|
to:print_str::@return
|
||||||
print_str::@return: scope:[print_str] from print_str::@1
|
print_str::@return: scope:[print_str] from print_str::@1
|
||||||
[17] return
|
[17] return
|
||||||
@ -476,10 +484,10 @@ print_str: {
|
|||||||
jmp b1
|
jmp b1
|
||||||
// print_str::@1
|
// print_str::@1
|
||||||
b1:
|
b1:
|
||||||
// [16] if(*((byte*) print_str::str#2)!=(byte) '@') goto print_str::@2 -- _deref_pbuz1_neq_vbuc1_then_la1
|
// [16] if((byte) 0!=*((byte*) print_str::str#2)) goto print_str::@2 -- vbuc1_neq__deref_pbuz1_then_la1
|
||||||
ldy #0
|
ldy #0
|
||||||
lda (str),y
|
lda (str),y
|
||||||
cmp #'@'
|
cmp #0
|
||||||
bne b2
|
bne b2
|
||||||
jmp breturn
|
jmp breturn
|
||||||
// print_str::@return
|
// print_str::@return
|
||||||
@ -514,7 +522,7 @@ print_str: {
|
|||||||
REGISTER UPLIFT POTENTIAL REGISTERS
|
REGISTER UPLIFT POTENTIAL REGISTERS
|
||||||
Statement [11] (byte*) print_line_cursor#1 ← (byte*) print_line_cursor#6 + (byte) $28 [ print_line_cursor#1 print_char_cursor#10 ] ( main:2::print_ln:7 [ print_line_cursor#1 print_char_cursor#10 ] ) always clobbers reg byte a
|
Statement [11] (byte*) print_line_cursor#1 ← (byte*) print_line_cursor#6 + (byte) $28 [ print_line_cursor#1 print_char_cursor#10 ] ( main:2::print_ln:7 [ print_line_cursor#1 print_char_cursor#10 ] ) always clobbers reg byte a
|
||||||
Statement [12] if((byte*) print_line_cursor#1<(byte*) print_char_cursor#10) goto print_ln::@1 [ print_line_cursor#1 print_char_cursor#10 ] ( main:2::print_ln:7 [ print_line_cursor#1 print_char_cursor#10 ] ) always clobbers reg byte a
|
Statement [12] if((byte*) print_line_cursor#1<(byte*) print_char_cursor#10) goto print_ln::@1 [ print_line_cursor#1 print_char_cursor#10 ] ( main:2::print_ln:7 [ print_line_cursor#1 print_char_cursor#10 ] ) always clobbers reg byte a
|
||||||
Statement [16] if(*((byte*) print_str::str#2)!=(byte) '@') goto print_str::@2 [ print_char_cursor#10 print_str::str#2 ] ( main:2::print_str:5 [ print_char_cursor#10 print_str::str#2 ] ) always clobbers reg byte a reg byte y
|
Statement [16] if((byte) 0!=*((byte*) print_str::str#2)) goto print_str::@2 [ print_char_cursor#10 print_str::str#2 ] ( main:2::print_str:5 [ print_char_cursor#10 print_str::str#2 ] ) always clobbers reg byte a reg byte y
|
||||||
Statement [18] *((byte*) print_char_cursor#10) ← *((byte*) print_str::str#2) [ print_char_cursor#10 print_str::str#2 ] ( main:2::print_str:5 [ print_char_cursor#10 print_str::str#2 ] ) always clobbers reg byte a reg byte y
|
Statement [18] *((byte*) print_char_cursor#10) ← *((byte*) print_str::str#2) [ print_char_cursor#10 print_str::str#2 ] ( main:2::print_str:5 [ print_char_cursor#10 print_str::str#2 ] ) always clobbers reg byte a reg byte y
|
||||||
Potential registers zp ZP_WORD:2 [ print_line_cursor#6 print_line_cursor#1 ] : zp ZP_WORD:2 ,
|
Potential registers zp ZP_WORD:2 [ print_line_cursor#6 print_line_cursor#1 ] : zp ZP_WORD:2 ,
|
||||||
Potential registers zp ZP_WORD:4 [ print_str::str#2 print_str::str#0 ] : zp ZP_WORD:4 ,
|
Potential registers zp ZP_WORD:4 [ print_str::str#2 print_str::str#0 ] : zp ZP_WORD:4 ,
|
||||||
@ -644,10 +652,10 @@ print_str: {
|
|||||||
jmp b1
|
jmp b1
|
||||||
// print_str::@1
|
// print_str::@1
|
||||||
b1:
|
b1:
|
||||||
// [16] if(*((byte*) print_str::str#2)!=(byte) '@') goto print_str::@2 -- _deref_pbuz1_neq_vbuc1_then_la1
|
// [16] if((byte) 0!=*((byte*) print_str::str#2)) goto print_str::@2 -- vbuc1_neq__deref_pbuz1_then_la1
|
||||||
ldy #0
|
ldy #0
|
||||||
lda (str),y
|
lda (str),y
|
||||||
cmp #'@'
|
cmp #0
|
||||||
bne b2
|
bne b2
|
||||||
jmp breturn
|
jmp breturn
|
||||||
// print_str::@return
|
// print_str::@return
|
||||||
@ -845,11 +853,11 @@ print_str: {
|
|||||||
sta str+1
|
sta str+1
|
||||||
// print_str::@1
|
// print_str::@1
|
||||||
b1:
|
b1:
|
||||||
// while(*str!='@')
|
// while(*str)
|
||||||
// [16] if(*((byte*) print_str::str#2)!=(byte) '@') goto print_str::@2 -- _deref_pbuz1_neq_vbuc1_then_la1
|
// [16] if((byte) 0!=*((byte*) print_str::str#2)) goto print_str::@2 -- vbuc1_neq__deref_pbuz1_then_la1
|
||||||
ldy #0
|
ldy #0
|
||||||
lda (str),y
|
lda (str),y
|
||||||
cmp #'@'
|
cmp #0
|
||||||
bne b2
|
bne b2
|
||||||
// print_str::@return
|
// print_str::@return
|
||||||
// }
|
// }
|
||||||
|
@ -4,6 +4,11 @@ Fixing pointer addition (word*~) bsearch16u::$1 ← (word*) bsearch16u::items -
|
|||||||
Fixing pointer array-indexing *((word*) utoa::digit_values + (byte) utoa::digit)
|
Fixing pointer array-indexing *((word*) utoa::digit_values + (byte) utoa::digit)
|
||||||
Fixing pointer array-indexing *((dword*) ultoa::digit_values + (byte) ultoa::digit)
|
Fixing pointer array-indexing *((dword*) ultoa::digit_values + (byte) ultoa::digit)
|
||||||
Warning! Adding boolean cast to non-boolean condition *((byte*) strcpy::src)
|
Warning! Adding boolean cast to non-boolean condition *((byte*) strcpy::src)
|
||||||
|
Warning! Adding boolean cast to non-boolean condition *((byte*) print_str_lines::str)
|
||||||
|
Warning! Adding boolean cast to non-boolean condition (byte) print_str_lines::ch
|
||||||
|
Warning! Adding boolean cast to non-boolean condition *((byte*) print_str::str)
|
||||||
|
Warning! Adding boolean cast to non-boolean condition *((byte*) print_str_at::str)
|
||||||
|
Warning! Adding boolean cast to non-boolean sub-expression (byte) print_str_lines::ch
|
||||||
Identified constant variable (byte*) HEAP_TOP
|
Identified constant variable (byte*) HEAP_TOP
|
||||||
Inlined call (byte~) vicSelectGfxBank::$0 ← call toDd00 (byte*) vicSelectGfxBank::gfx
|
Inlined call (byte~) vicSelectGfxBank::$0 ← call toDd00 (byte*) vicSelectGfxBank::gfx
|
||||||
Inlined call (byte~) main::$1 ← call toD018 (byte*) SCREEN1 (byte*) CHARSET
|
Inlined call (byte~) main::$1 ← call toD018 (byte*) SCREEN1 (byte*) CHARSET
|
||||||
|
@ -4,6 +4,11 @@ Fixing pointer addition (word*~) bsearch16u::$1 ← (word*) bsearch16u::items -
|
|||||||
Fixing pointer array-indexing *((word*) utoa::digit_values + (byte) utoa::digit)
|
Fixing pointer array-indexing *((word*) utoa::digit_values + (byte) utoa::digit)
|
||||||
Fixing pointer array-indexing *((dword*) ultoa::digit_values + (byte) ultoa::digit)
|
Fixing pointer array-indexing *((dword*) ultoa::digit_values + (byte) ultoa::digit)
|
||||||
Warning! Adding boolean cast to non-boolean condition *((byte*) strcpy::src)
|
Warning! Adding boolean cast to non-boolean condition *((byte*) strcpy::src)
|
||||||
|
Warning! Adding boolean cast to non-boolean condition *((byte*) print_str_lines::str)
|
||||||
|
Warning! Adding boolean cast to non-boolean condition (byte) print_str_lines::ch
|
||||||
|
Warning! Adding boolean cast to non-boolean condition *((byte*) print_str::str)
|
||||||
|
Warning! Adding boolean cast to non-boolean condition *((byte*) print_str_at::str)
|
||||||
|
Warning! Adding boolean cast to non-boolean sub-expression (byte) print_str_lines::ch
|
||||||
Identified constant variable (byte*) HEAP_TOP
|
Identified constant variable (byte*) HEAP_TOP
|
||||||
Inlined call (byte~) vicSelectGfxBank::$0 ← call toDd00 (byte*) vicSelectGfxBank::gfx
|
Inlined call (byte~) vicSelectGfxBank::$0 ← call toDd00 (byte*) vicSelectGfxBank::gfx
|
||||||
Inlined call (byte~) main::$4 ← call toD018 (byte*) SCREEN1 (byte*) CHARSET
|
Inlined call (byte~) main::$4 ← call toD018 (byte*) SCREEN1 (byte*) CHARSET
|
||||||
|
@ -5,6 +5,11 @@ Fixing pointer addition (word*~) bsearch16u::$1 ← (word*) bsearch16u::items -
|
|||||||
Fixing pointer array-indexing *((word*) utoa::digit_values + (byte) utoa::digit)
|
Fixing pointer array-indexing *((word*) utoa::digit_values + (byte) utoa::digit)
|
||||||
Fixing pointer array-indexing *((dword*) ultoa::digit_values + (byte) ultoa::digit)
|
Fixing pointer array-indexing *((dword*) ultoa::digit_values + (byte) ultoa::digit)
|
||||||
Warning! Adding boolean cast to non-boolean condition *((byte*) strcpy::src)
|
Warning! Adding boolean cast to non-boolean condition *((byte*) strcpy::src)
|
||||||
|
Warning! Adding boolean cast to non-boolean condition *((byte*) print_str_lines::str)
|
||||||
|
Warning! Adding boolean cast to non-boolean condition (byte) print_str_lines::ch
|
||||||
|
Warning! Adding boolean cast to non-boolean condition *((byte*) print_str::str)
|
||||||
|
Warning! Adding boolean cast to non-boolean condition *((byte*) print_str_at::str)
|
||||||
|
Warning! Adding boolean cast to non-boolean sub-expression (byte) print_str_lines::ch
|
||||||
Identified constant variable (byte*) HEAP_TOP
|
Identified constant variable (byte*) HEAP_TOP
|
||||||
Identified constant variable (byte*) SCREEN
|
Identified constant variable (byte*) SCREEN
|
||||||
Identified constant variable (byte*) SPRITE
|
Identified constant variable (byte*) SPRITE
|
||||||
|
@ -39,7 +39,7 @@ main: {
|
|||||||
ldy #0
|
ldy #0
|
||||||
lda (nxt),y
|
lda (nxt),y
|
||||||
tax
|
tax
|
||||||
cpx #'@'
|
cpx #0
|
||||||
bne b9
|
bne b9
|
||||||
ldx TEXT
|
ldx TEXT
|
||||||
lda #<TEXT
|
lda #<TEXT
|
||||||
|
@ -34,7 +34,7 @@ main::@5: scope:[main] from main::@6
|
|||||||
to:main::@7
|
to:main::@7
|
||||||
main::@7: scope:[main] from main::@5
|
main::@7: scope:[main] from main::@5
|
||||||
[16] (byte) main::c#0 ← *((byte*) main::nxt#10)
|
[16] (byte) main::c#0 ← *((byte*) main::nxt#10)
|
||||||
[17] if((byte) main::c#0!=(byte) '@') goto main::@9
|
[17] if((byte) main::c#0!=(byte) 0) goto main::@9
|
||||||
to:main::@8
|
to:main::@8
|
||||||
main::@8: scope:[main] from main::@7
|
main::@8: scope:[main] from main::@7
|
||||||
[18] (byte) main::c#1 ← *((const byte*) TEXT#0)
|
[18] (byte) main::c#1 ← *((const byte*) TEXT#0)
|
||||||
|
@ -86,7 +86,7 @@ main::@10: scope:[main] from main::@8
|
|||||||
(byte) main::scroll#8 ← phi( main::@8/(byte) main::scroll#10 )
|
(byte) main::scroll#8 ← phi( main::@8/(byte) main::scroll#10 )
|
||||||
(byte*) main::nxt#3 ← phi( main::@8/(byte*) main::nxt#5 )
|
(byte*) main::nxt#3 ← phi( main::@8/(byte*) main::nxt#5 )
|
||||||
(byte) main::c#0 ← *((byte*) main::nxt#3)
|
(byte) main::c#0 ← *((byte*) main::nxt#3)
|
||||||
(bool~) main::$8 ← (byte) main::c#0 == (byte) '@'
|
(bool~) main::$8 ← (byte) main::c#0 == (number) 0
|
||||||
(bool~) main::$9 ← ! (bool~) main::$8
|
(bool~) main::$9 ← ! (bool~) main::$8
|
||||||
if((bool~) main::$9) goto main::@15
|
if((bool~) main::$9) goto main::@15
|
||||||
to:main::@14
|
to:main::@14
|
||||||
@ -243,6 +243,7 @@ Adding number conversion cast (unumber) 0 in (byte) main::i#0 ← (number) 0
|
|||||||
Adding number conversion cast (unumber) $27 in (bool~) main::$6 ← (byte) main::i#2 != (number) $27
|
Adding number conversion cast (unumber) $27 in (bool~) main::$6 ← (byte) main::i#2 != (number) $27
|
||||||
Adding number conversion cast (unumber) 1 in (number~) main::$7 ← (byte) main::i#3 + (number) 1
|
Adding number conversion cast (unumber) 1 in (number~) main::$7 ← (byte) main::i#3 + (number) 1
|
||||||
Adding number conversion cast (unumber) main::$7 in (number~) main::$7 ← (byte) main::i#3 + (unumber)(number) 1
|
Adding number conversion cast (unumber) main::$7 in (number~) main::$7 ← (byte) main::i#3 + (unumber)(number) 1
|
||||||
|
Adding number conversion cast (unumber) 0 in (bool~) main::$8 ← (byte) main::c#0 == (number) 0
|
||||||
Adding number conversion cast (unumber) $27 in *((byte[]) main::line#0 + (number) $27) ← (byte) main::c#2
|
Adding number conversion cast (unumber) $27 in *((byte[]) main::line#0 + (number) $27) ← (byte) main::c#2
|
||||||
Adding number conversion cast (unumber) $3e8 in (byte*~) fillscreen::$0 ← (byte*) fillscreen::screen#2 + (number) $3e8
|
Adding number conversion cast (unumber) $3e8 in (byte*~) fillscreen::$0 ← (byte*) fillscreen::screen#2 + (number) $3e8
|
||||||
Successful SSA optimization PassNAddNumberTypeConversions
|
Successful SSA optimization PassNAddNumberTypeConversions
|
||||||
@ -269,6 +270,7 @@ Simplifying constant integer cast 7
|
|||||||
Simplifying constant integer cast 0
|
Simplifying constant integer cast 0
|
||||||
Simplifying constant integer cast $27
|
Simplifying constant integer cast $27
|
||||||
Simplifying constant integer cast 1
|
Simplifying constant integer cast 1
|
||||||
|
Simplifying constant integer cast 0
|
||||||
Simplifying constant integer cast $27
|
Simplifying constant integer cast $27
|
||||||
Simplifying constant integer cast $3e8
|
Simplifying constant integer cast $3e8
|
||||||
Successful SSA optimization PassNCastSimplification
|
Successful SSA optimization PassNCastSimplification
|
||||||
@ -282,12 +284,13 @@ Finalized unsigned number type (byte) 7
|
|||||||
Finalized unsigned number type (byte) 0
|
Finalized unsigned number type (byte) 0
|
||||||
Finalized unsigned number type (byte) $27
|
Finalized unsigned number type (byte) $27
|
||||||
Finalized unsigned number type (byte) 1
|
Finalized unsigned number type (byte) 1
|
||||||
|
Finalized unsigned number type (byte) 0
|
||||||
Finalized unsigned number type (byte) $27
|
Finalized unsigned number type (byte) $27
|
||||||
Finalized unsigned number type (word) $3e8
|
Finalized unsigned number type (word) $3e8
|
||||||
Successful SSA optimization PassNFinalizeNumberTypeConversions
|
Successful SSA optimization PassNFinalizeNumberTypeConversions
|
||||||
Inferred type updated to byte in (unumber~) main::$7 ← (byte) main::i#3 + (byte) 1
|
Inferred type updated to byte in (unumber~) main::$7 ← (byte) main::i#3 + (byte) 1
|
||||||
Inversing boolean not [22] (bool~) main::$5 ← (byte) main::scroll#1 != (byte) $ff from [21] (bool~) main::$4 ← (byte) main::scroll#1 == (byte) $ff
|
Inversing boolean not [22] (bool~) main::$5 ← (byte) main::scroll#1 != (byte) $ff from [21] (bool~) main::$4 ← (byte) main::scroll#1 == (byte) $ff
|
||||||
Inversing boolean not [41] (bool~) main::$9 ← (byte) main::c#0 != (byte) '@' from [40] (bool~) main::$8 ← (byte) main::c#0 == (byte) '@'
|
Inversing boolean not [41] (bool~) main::$9 ← (byte) main::c#0 != (byte) 0 from [40] (bool~) main::$8 ← (byte) main::c#0 == (byte) 0
|
||||||
Successful SSA optimization Pass2UnaryNotSimplification
|
Successful SSA optimization Pass2UnaryNotSimplification
|
||||||
Alias (byte[]) main::line#0 = (byte*~) main::$1
|
Alias (byte[]) main::line#0 = (byte*~) main::$1
|
||||||
Alias (byte) main::scroll#3 = (byte) main::scroll#5
|
Alias (byte) main::scroll#3 = (byte) main::scroll#5
|
||||||
@ -315,7 +318,7 @@ Simple Condition (bool~) main::$2 [14] if(*((byte*) RASTER#0)!=(byte) $fe) goto
|
|||||||
Simple Condition (bool~) main::$3 [17] if(*((byte*) RASTER#0)!=(byte) $ff) goto main::@4
|
Simple Condition (bool~) main::$3 [17] if(*((byte*) RASTER#0)!=(byte) $ff) goto main::@4
|
||||||
Simple Condition (bool~) main::$5 [23] if((byte) main::scroll#1!=(byte) $ff) goto main::@7
|
Simple Condition (bool~) main::$5 [23] if((byte) main::scroll#1!=(byte) $ff) goto main::@7
|
||||||
Simple Condition (bool~) main::$6 [33] if((byte) main::i#2!=(byte) $27) goto main::@9
|
Simple Condition (bool~) main::$6 [33] if((byte) main::i#2!=(byte) $27) goto main::@9
|
||||||
Simple Condition (bool~) main::$9 [42] if((byte) main::c#0!=(byte) '@') goto main::@15
|
Simple Condition (bool~) main::$9 [42] if((byte) main::c#0!=(byte) 0) goto main::@15
|
||||||
Simple Condition (bool~) fillscreen::$1 [55] if((byte*) fillscreen::cursor#2<(byte*~) fillscreen::$0) goto fillscreen::@2
|
Simple Condition (bool~) fillscreen::$1 [55] if((byte*) fillscreen::cursor#2<(byte*~) fillscreen::$0) goto fillscreen::@2
|
||||||
Successful SSA optimization Pass2ConditionalJumpSimplification
|
Successful SSA optimization Pass2ConditionalJumpSimplification
|
||||||
Constant (const byte*) SCREEN#0 = (byte*) 1024
|
Constant (const byte*) SCREEN#0 = (byte*) 1024
|
||||||
@ -471,7 +474,7 @@ main::@5: scope:[main] from main::@6
|
|||||||
to:main::@7
|
to:main::@7
|
||||||
main::@7: scope:[main] from main::@5
|
main::@7: scope:[main] from main::@5
|
||||||
[16] (byte) main::c#0 ← *((byte*) main::nxt#10)
|
[16] (byte) main::c#0 ← *((byte*) main::nxt#10)
|
||||||
[17] if((byte) main::c#0!=(byte) '@') goto main::@9
|
[17] if((byte) main::c#0!=(byte) 0) goto main::@9
|
||||||
to:main::@8
|
to:main::@8
|
||||||
main::@8: scope:[main] from main::@7
|
main::@8: scope:[main] from main::@7
|
||||||
[18] (byte) main::c#1 ← *((const byte*) TEXT#0)
|
[18] (byte) main::c#1 ← *((const byte*) TEXT#0)
|
||||||
@ -668,9 +671,9 @@ main: {
|
|||||||
ldy #0
|
ldy #0
|
||||||
lda (nxt),y
|
lda (nxt),y
|
||||||
sta c
|
sta c
|
||||||
// [17] if((byte) main::c#0!=(byte) '@') goto main::@9 -- vbuz1_neq_vbuc1_then_la1
|
// [17] if((byte) main::c#0!=(byte) 0) goto main::@9 -- vbuz1_neq_0_then_la1
|
||||||
lda #'@'
|
lda c
|
||||||
cmp c
|
cmp #0
|
||||||
bne b9_from_b7
|
bne b9_from_b7
|
||||||
jmp b8
|
jmp b8
|
||||||
// main::@8
|
// main::@8
|
||||||
@ -910,8 +913,8 @@ main: {
|
|||||||
ldy #0
|
ldy #0
|
||||||
lda (nxt),y
|
lda (nxt),y
|
||||||
tax
|
tax
|
||||||
// [17] if((byte) main::c#0!=(byte) '@') goto main::@9 -- vbuxx_neq_vbuc1_then_la1
|
// [17] if((byte) main::c#0!=(byte) 0) goto main::@9 -- vbuxx_neq_0_then_la1
|
||||||
cpx #'@'
|
cpx #0
|
||||||
bne b9_from_b7
|
bne b9_from_b7
|
||||||
jmp b8
|
jmp b8
|
||||||
// main::@8
|
// main::@8
|
||||||
@ -1218,9 +1221,9 @@ main: {
|
|||||||
ldy #0
|
ldy #0
|
||||||
lda (nxt),y
|
lda (nxt),y
|
||||||
tax
|
tax
|
||||||
// if(c=='@')
|
// if(c==0)
|
||||||
// [17] if((byte) main::c#0!=(byte) '@') goto main::@9 -- vbuxx_neq_vbuc1_then_la1
|
// [17] if((byte) main::c#0!=(byte) 0) goto main::@9 -- vbuxx_neq_0_then_la1
|
||||||
cpx #'@'
|
cpx #0
|
||||||
bne b9
|
bne b9
|
||||||
// main::@8
|
// main::@8
|
||||||
// c = *nxt
|
// c = *nxt
|
||||||
|
@ -145,7 +145,7 @@ next_char: {
|
|||||||
ldy #0
|
ldy #0
|
||||||
lda (nxt),y
|
lda (nxt),y
|
||||||
tax
|
tax
|
||||||
cpx #'@'
|
cpx #0
|
||||||
bne b1
|
bne b1
|
||||||
ldx TEXT
|
ldx TEXT
|
||||||
lda #<TEXT
|
lda #<TEXT
|
||||||
|
@ -117,7 +117,7 @@ scroll_hard::@return: scope:[scroll_hard] from scroll_hard::@1
|
|||||||
to:@return
|
to:@return
|
||||||
next_char: scope:[next_char] from scroll_bit::@2
|
next_char: scope:[next_char] from scroll_bit::@2
|
||||||
[57] (byte) next_char::c#0 ← *((byte*) nxt#31)
|
[57] (byte) next_char::c#0 ← *((byte*) nxt#31)
|
||||||
[58] if((byte) next_char::c#0!=(byte) '@') goto next_char::@1
|
[58] if((byte) next_char::c#0!=(byte) 0) goto next_char::@1
|
||||||
to:next_char::@2
|
to:next_char::@2
|
||||||
next_char::@2: scope:[next_char] from next_char
|
next_char::@2: scope:[next_char] from next_char
|
||||||
[59] (byte) next_char::c#1 ← *((const byte*) TEXT#0)
|
[59] (byte) next_char::c#1 ← *((const byte*) TEXT#0)
|
||||||
|
@ -247,7 +247,7 @@ scroll_bit::@return: scope:[scroll_bit] from scroll_bit::@6
|
|||||||
next_char: scope:[next_char] from scroll_bit::@2
|
next_char: scope:[next_char] from scroll_bit::@2
|
||||||
(byte*) nxt#17 ← phi( scroll_bit::@2/(byte*) nxt#24 )
|
(byte*) nxt#17 ← phi( scroll_bit::@2/(byte*) nxt#24 )
|
||||||
(byte) next_char::c#0 ← *((byte*) nxt#17)
|
(byte) next_char::c#0 ← *((byte*) nxt#17)
|
||||||
(bool~) next_char::$0 ← (byte) next_char::c#0 == (byte) '@'
|
(bool~) next_char::$0 ← (byte) next_char::c#0 == (number) 0
|
||||||
(bool~) next_char::$1 ← ! (bool~) next_char::$0
|
(bool~) next_char::$1 ← ! (bool~) next_char::$0
|
||||||
if((bool~) next_char::$1) goto next_char::@1
|
if((bool~) next_char::$1) goto next_char::@1
|
||||||
to:next_char::@2
|
to:next_char::@2
|
||||||
@ -659,6 +659,7 @@ Adding number conversion cast (unumber) $28 in (byte*~) scroll_bit::$12 ← (byt
|
|||||||
Adding number conversion cast (unumber) $80+' ' in (byte) scroll_bit::b#1 ← (number) $80+(byte) ' '
|
Adding number conversion cast (unumber) $80+' ' in (byte) scroll_bit::b#1 ← (number) $80+(byte) ' '
|
||||||
Adding number conversion cast (unumber) $80 in (byte) scroll_bit::b#1 ← ((unumber)) (number) $80+(byte) ' '
|
Adding number conversion cast (unumber) $80 in (byte) scroll_bit::b#1 ← ((unumber)) (number) $80+(byte) ' '
|
||||||
Adding number conversion cast (unumber) $37 in *((byte*) PROCPORT#0) ← (number) $37
|
Adding number conversion cast (unumber) $37 in *((byte*) PROCPORT#0) ← (number) $37
|
||||||
|
Adding number conversion cast (unumber) 0 in (bool~) next_char::$0 ← (byte) next_char::c#0 == (number) 0
|
||||||
Adding number conversion cast (unumber) 0 in (byte) scroll_hard::i#0 ← (number) 0
|
Adding number conversion cast (unumber) 0 in (byte) scroll_hard::i#0 ← (number) 0
|
||||||
Adding number conversion cast (unumber) $27 in (bool~) scroll_hard::$0 ← (byte) scroll_hard::i#2 != (number) $27
|
Adding number conversion cast (unumber) $27 in (bool~) scroll_hard::$0 ← (byte) scroll_hard::i#2 != (number) $27
|
||||||
Adding number conversion cast (unumber) $28*0 in (byte*~) scroll_hard::$1 ← (byte*) SCREEN#0 + (number) $28*(number) 0
|
Adding number conversion cast (unumber) $28*0 in (byte*~) scroll_hard::$1 ← (byte*) SCREEN#0 + (number) $28*(number) 0
|
||||||
@ -737,6 +738,7 @@ Simplifying constant integer cast (unumber)(number) $80+(byte) ' '
|
|||||||
Simplifying constant integer cast $80
|
Simplifying constant integer cast $80
|
||||||
Simplifying constant integer cast $37
|
Simplifying constant integer cast $37
|
||||||
Simplifying constant integer cast 0
|
Simplifying constant integer cast 0
|
||||||
|
Simplifying constant integer cast 0
|
||||||
Simplifying constant integer cast $27
|
Simplifying constant integer cast $27
|
||||||
Simplifying constant integer cast 1
|
Simplifying constant integer cast 1
|
||||||
Simplifying constant integer cast 1
|
Simplifying constant integer cast 1
|
||||||
@ -767,6 +769,7 @@ Finalized unsigned number type (byte) $28
|
|||||||
Finalized unsigned number type (byte) $80
|
Finalized unsigned number type (byte) $80
|
||||||
Finalized unsigned number type (byte) $37
|
Finalized unsigned number type (byte) $37
|
||||||
Finalized unsigned number type (byte) 0
|
Finalized unsigned number type (byte) 0
|
||||||
|
Finalized unsigned number type (byte) 0
|
||||||
Finalized unsigned number type (byte) $27
|
Finalized unsigned number type (byte) $27
|
||||||
Finalized unsigned number type (byte) 1
|
Finalized unsigned number type (byte) 1
|
||||||
Finalized unsigned number type (byte) 1
|
Finalized unsigned number type (byte) 1
|
||||||
@ -791,7 +794,7 @@ Inferred type updated to byte in (unumber~) scroll_hard::$24 ← (byte) scroll_h
|
|||||||
Inversing boolean not [38] (bool~) scroll_soft::$1 ← (byte) scroll#3 != (byte) $ff from [37] (bool~) scroll_soft::$0 ← (byte) scroll#3 == (byte) $ff
|
Inversing boolean not [38] (bool~) scroll_soft::$1 ← (byte) scroll#3 != (byte) $ff from [37] (bool~) scroll_soft::$0 ← (byte) scroll#3 == (byte) $ff
|
||||||
Inversing boolean not [62] (bool~) scroll_bit::$2 ← (byte) current_bit#5 != (byte) 0 from [61] (bool~) scroll_bit::$1 ← (byte) current_bit#5 == (byte) 0
|
Inversing boolean not [62] (bool~) scroll_bit::$2 ← (byte) current_bit#5 != (byte) 0 from [61] (bool~) scroll_bit::$1 ← (byte) current_bit#5 == (byte) 0
|
||||||
Inversing boolean not [89] (bool~) scroll_bit::$11 ← (byte~) scroll_bit::$9 == (byte) 0 from [88] (bool~) scroll_bit::$10 ← (byte~) scroll_bit::$9 != (byte) 0
|
Inversing boolean not [89] (bool~) scroll_bit::$11 ← (byte~) scroll_bit::$9 == (byte) 0 from [88] (bool~) scroll_bit::$10 ← (byte~) scroll_bit::$9 != (byte) 0
|
||||||
Inversing boolean not [113] (bool~) next_char::$1 ← (byte) next_char::c#0 != (byte) '@' from [112] (bool~) next_char::$0 ← (byte) next_char::c#0 == (byte) '@'
|
Inversing boolean not [113] (bool~) next_char::$1 ← (byte) next_char::c#0 != (byte) 0 from [112] (bool~) next_char::$0 ← (byte) next_char::c#0 == (byte) 0
|
||||||
Successful SSA optimization Pass2UnaryNotSimplification
|
Successful SSA optimization Pass2UnaryNotSimplification
|
||||||
Alias (byte) scroll#20 = (byte) scroll#21
|
Alias (byte) scroll#20 = (byte) scroll#21
|
||||||
Alias (byte) current_bit#30 = (byte) current_bit#31
|
Alias (byte) current_bit#30 = (byte) current_bit#31
|
||||||
@ -899,7 +902,7 @@ Simple Condition (bool~) scroll_soft::$1 [39] if((byte) scroll#3!=(byte) $ff) go
|
|||||||
Simple Condition (bool~) scroll_bit::$2 [63] if((byte) current_bit#5!=(byte) 0) goto scroll_bit::@1
|
Simple Condition (bool~) scroll_bit::$2 [63] if((byte) current_bit#5!=(byte) 0) goto scroll_bit::@1
|
||||||
Simple Condition (bool~) scroll_bit::$11 [90] if((byte~) scroll_bit::$9==(byte) 0) goto scroll_bit::@4
|
Simple Condition (bool~) scroll_bit::$11 [90] if((byte~) scroll_bit::$9==(byte) 0) goto scroll_bit::@4
|
||||||
Simple Condition (bool~) scroll_bit::$13 [97] if((byte) scroll_bit::r#1!=rangelast(0,7)) goto scroll_bit::@3
|
Simple Condition (bool~) scroll_bit::$13 [97] if((byte) scroll_bit::r#1!=rangelast(0,7)) goto scroll_bit::@3
|
||||||
Simple Condition (bool~) next_char::$1 [114] if((byte) next_char::c#0!=(byte) '@') goto next_char::@1
|
Simple Condition (bool~) next_char::$1 [114] if((byte) next_char::c#0!=(byte) 0) goto next_char::@1
|
||||||
Simple Condition (bool~) scroll_hard::$0 [127] if((byte) scroll_hard::i#2!=(byte) $27) goto scroll_hard::@2
|
Simple Condition (bool~) scroll_hard::$0 [127] if((byte) scroll_hard::i#2!=(byte) $27) goto scroll_hard::@2
|
||||||
Simple Condition (bool~) fillscreen::$1 [168] if((byte*) fillscreen::cursor#2<(byte*~) fillscreen::$0) goto fillscreen::@2
|
Simple Condition (bool~) fillscreen::$1 [168] if((byte*) fillscreen::cursor#2<(byte*~) fillscreen::$0) goto fillscreen::@2
|
||||||
Successful SSA optimization Pass2ConditionalJumpSimplification
|
Successful SSA optimization Pass2ConditionalJumpSimplification
|
||||||
@ -1258,7 +1261,7 @@ scroll_hard::@return: scope:[scroll_hard] from scroll_hard::@1
|
|||||||
to:@return
|
to:@return
|
||||||
next_char: scope:[next_char] from scroll_bit::@2
|
next_char: scope:[next_char] from scroll_bit::@2
|
||||||
[57] (byte) next_char::c#0 ← *((byte*) nxt#31)
|
[57] (byte) next_char::c#0 ← *((byte*) nxt#31)
|
||||||
[58] if((byte) next_char::c#0!=(byte) '@') goto next_char::@1
|
[58] if((byte) next_char::c#0!=(byte) 0) goto next_char::@1
|
||||||
to:next_char::@2
|
to:next_char::@2
|
||||||
next_char::@2: scope:[next_char] from next_char
|
next_char::@2: scope:[next_char] from next_char
|
||||||
[59] (byte) next_char::c#1 ← *((const byte*) TEXT#0)
|
[59] (byte) next_char::c#1 ← *((const byte*) TEXT#0)
|
||||||
@ -1770,9 +1773,9 @@ next_char: {
|
|||||||
ldy #0
|
ldy #0
|
||||||
lda (nxt),y
|
lda (nxt),y
|
||||||
sta c
|
sta c
|
||||||
// [58] if((byte) next_char::c#0!=(byte) '@') goto next_char::@1 -- vbuz1_neq_vbuc1_then_la1
|
// [58] if((byte) next_char::c#0!=(byte) 0) goto next_char::@1 -- vbuz1_neq_0_then_la1
|
||||||
lda #'@'
|
lda c
|
||||||
cmp c
|
cmp #0
|
||||||
bne b1_from_next_char
|
bne b1_from_next_char
|
||||||
jmp b2
|
jmp b2
|
||||||
// next_char::@2
|
// next_char::@2
|
||||||
@ -2283,8 +2286,8 @@ next_char: {
|
|||||||
ldy #0
|
ldy #0
|
||||||
lda (nxt),y
|
lda (nxt),y
|
||||||
tax
|
tax
|
||||||
// [58] if((byte) next_char::c#0!=(byte) '@') goto next_char::@1 -- vbuxx_neq_vbuc1_then_la1
|
// [58] if((byte) next_char::c#0!=(byte) 0) goto next_char::@1 -- vbuxx_neq_0_then_la1
|
||||||
cpx #'@'
|
cpx #0
|
||||||
bne b1_from_next_char
|
bne b1_from_next_char
|
||||||
jmp b2
|
jmp b2
|
||||||
// next_char::@2
|
// next_char::@2
|
||||||
@ -2892,9 +2895,9 @@ next_char: {
|
|||||||
ldy #0
|
ldy #0
|
||||||
lda (nxt),y
|
lda (nxt),y
|
||||||
tax
|
tax
|
||||||
// if(c=='@')
|
// if(c==0)
|
||||||
// [58] if((byte) next_char::c#0!=(byte) '@') goto next_char::@1 -- vbuxx_neq_vbuc1_then_la1
|
// [58] if((byte) next_char::c#0!=(byte) 0) goto next_char::@1 -- vbuxx_neq_0_then_la1
|
||||||
cpx #'@'
|
cpx #0
|
||||||
bne b1
|
bne b1
|
||||||
// next_char::@2
|
// next_char::@2
|
||||||
// c = *nxt
|
// c = *nxt
|
||||||
|
@ -4,6 +4,11 @@ Fixing pointer addition (word*~) bsearch16u::$1 ← (word*) bsearch16u::items -
|
|||||||
Fixing pointer array-indexing *((word*) utoa::digit_values + (byte) utoa::digit)
|
Fixing pointer array-indexing *((word*) utoa::digit_values + (byte) utoa::digit)
|
||||||
Fixing pointer array-indexing *((dword*) ultoa::digit_values + (byte) ultoa::digit)
|
Fixing pointer array-indexing *((dword*) ultoa::digit_values + (byte) ultoa::digit)
|
||||||
Warning! Adding boolean cast to non-boolean condition *((byte*) strcpy::src)
|
Warning! Adding boolean cast to non-boolean condition *((byte*) strcpy::src)
|
||||||
|
Warning! Adding boolean cast to non-boolean condition *((byte*) print_str_lines::str)
|
||||||
|
Warning! Adding boolean cast to non-boolean condition (byte) print_str_lines::ch
|
||||||
|
Warning! Adding boolean cast to non-boolean condition *((byte*) print_str::str)
|
||||||
|
Warning! Adding boolean cast to non-boolean condition *((byte*) print_str_at::str)
|
||||||
|
Warning! Adding boolean cast to non-boolean sub-expression (byte) print_str_lines::ch
|
||||||
Identified constant variable (byte*) HEAP_TOP
|
Identified constant variable (byte*) HEAP_TOP
|
||||||
Identified constant variable (byte*) gen_sintab::f_2pi
|
Identified constant variable (byte*) gen_sintab::f_2pi
|
||||||
Inlined call (byte~) vicSelectGfxBank::$0 ← call toDd00 (byte*) vicSelectGfxBank::gfx
|
Inlined call (byte~) vicSelectGfxBank::$0 ← call toDd00 (byte*) vicSelectGfxBank::gfx
|
||||||
|
@ -343,7 +343,7 @@ print_str: {
|
|||||||
b1:
|
b1:
|
||||||
ldy #0
|
ldy #0
|
||||||
lda (str),y
|
lda (str),y
|
||||||
cmp #'@'
|
cmp #0
|
||||||
bne b2
|
bne b2
|
||||||
rts
|
rts
|
||||||
b2:
|
b2:
|
||||||
|
@ -294,7 +294,7 @@ print_str: scope:[print_str] from main::@1 main::@11
|
|||||||
print_str::@1: scope:[print_str] from print_str print_str::@2
|
print_str::@1: scope:[print_str] from print_str print_str::@2
|
||||||
[143] (byte*) print_char_cursor#122 ← phi( print_str/(byte*) print_char_cursor#136 print_str::@2/(byte*) print_char_cursor#1 )
|
[143] (byte*) print_char_cursor#122 ← phi( print_str/(byte*) print_char_cursor#136 print_str::@2/(byte*) print_char_cursor#1 )
|
||||||
[143] (byte*) print_str::str#3 ← phi( print_str/(byte*) print_str::str#5 print_str::@2/(byte*) print_str::str#0 )
|
[143] (byte*) print_str::str#3 ← phi( print_str/(byte*) print_str::str#5 print_str::@2/(byte*) print_str::str#0 )
|
||||||
[144] if(*((byte*) print_str::str#3)!=(byte) '@') goto print_str::@2
|
[144] if((byte) 0!=*((byte*) print_str::str#3)) goto print_str::@2
|
||||||
to:print_str::@return
|
to:print_str::@return
|
||||||
print_str::@return: scope:[print_str] from print_str::@1
|
print_str::@return: scope:[print_str] from print_str::@1
|
||||||
[145] return
|
[145] return
|
||||||
|
@ -4,6 +4,11 @@ Fixing pointer addition (word*~) bsearch16u::$1 ← (word*) bsearch16u::items -
|
|||||||
Fixing pointer array-indexing *((word*) utoa::digit_values + (byte) utoa::digit)
|
Fixing pointer array-indexing *((word*) utoa::digit_values + (byte) utoa::digit)
|
||||||
Fixing pointer array-indexing *((dword*) ultoa::digit_values + (byte) ultoa::digit)
|
Fixing pointer array-indexing *((dword*) ultoa::digit_values + (byte) ultoa::digit)
|
||||||
Warning! Adding boolean cast to non-boolean condition *((byte*) strcpy::src)
|
Warning! Adding boolean cast to non-boolean condition *((byte*) strcpy::src)
|
||||||
|
Warning! Adding boolean cast to non-boolean condition *((byte*) print_str_lines::str)
|
||||||
|
Warning! Adding boolean cast to non-boolean condition (byte) print_str_lines::ch
|
||||||
|
Warning! Adding boolean cast to non-boolean condition *((byte*) print_str::str)
|
||||||
|
Warning! Adding boolean cast to non-boolean condition *((byte*) print_str_at::str)
|
||||||
|
Warning! Adding boolean cast to non-boolean sub-expression (byte) print_str_lines::ch
|
||||||
Identified constant variable (byte*) HEAP_TOP
|
Identified constant variable (byte*) HEAP_TOP
|
||||||
Culled Empty Block (label) @1
|
Culled Empty Block (label) @1
|
||||||
Culled Empty Block (label) @2
|
Culled Empty Block (label) @2
|
||||||
@ -113,7 +118,7 @@ print_str: scope:[print_str] from main::@1 main::@11
|
|||||||
print_str::@1: scope:[print_str] from print_str print_str::@2
|
print_str::@1: scope:[print_str] from print_str print_str::@2
|
||||||
(byte*) print_char_cursor#122 ← phi( print_str/(byte*) print_char_cursor#136 print_str::@2/(byte*) print_char_cursor#1 )
|
(byte*) print_char_cursor#122 ← phi( print_str/(byte*) print_char_cursor#136 print_str::@2/(byte*) print_char_cursor#1 )
|
||||||
(byte*) print_str::str#3 ← phi( print_str/(byte*) print_str::str#5 print_str::@2/(byte*) print_str::str#0 )
|
(byte*) print_str::str#3 ← phi( print_str/(byte*) print_str::str#5 print_str::@2/(byte*) print_str::str#0 )
|
||||||
(bool~) print_str::$0 ← *((byte*) print_str::str#3) != (byte) '@'
|
(bool~) print_str::$0 ← (number) 0 != *((byte*) print_str::str#3)
|
||||||
if((bool~) print_str::$0) goto print_str::@2
|
if((bool~) print_str::$0) goto print_str::@2
|
||||||
to:print_str::@return
|
to:print_str::@return
|
||||||
print_str::@2: scope:[print_str] from print_str::@1
|
print_str::@2: scope:[print_str] from print_str::@1
|
||||||
@ -1396,6 +1401,7 @@ SYMBOL TABLE SSA
|
|||||||
(word) print_word::w#3
|
(word) print_word::w#3
|
||||||
|
|
||||||
Adding number conversion cast (unumber) 0 in (bool~) memset::$0 ← (word) memset::num#1 > (number) 0
|
Adding number conversion cast (unumber) 0 in (bool~) memset::$0 ← (word) memset::num#1 > (number) 0
|
||||||
|
Adding number conversion cast (unumber) 0 in (bool~) print_str::$0 ← (number) 0 != *((byte*) print_str::str#3)
|
||||||
Adding number conversion cast (unumber) $28 in (byte*~) print_ln::$0 ← (byte*) print_line_cursor#32 + (number) $28
|
Adding number conversion cast (unumber) $28 in (byte*~) print_ln::$0 ← (byte*) print_line_cursor#32 + (number) $28
|
||||||
Adding number conversion cast (snumber) 0 in (bool~) print_sword::$0 ← (signed word) print_sword::w#2 < (number) 0
|
Adding number conversion cast (snumber) 0 in (bool~) print_sword::$0 ← (signed word) print_sword::w#2 < (number) 0
|
||||||
Adding number conversion cast (snumber) 0 in (bool~) print_sbyte::$0 ← (signed byte) print_sbyte::b#3 < (number) 0
|
Adding number conversion cast (snumber) 0 in (bool~) print_sbyte::$0 ← (signed byte) print_sbyte::b#3 < (number) 0
|
||||||
@ -1504,6 +1510,7 @@ Inlining cast (signed word~) mulf8s127::$14 ← (signed word)(signed byte) mulf8
|
|||||||
Successful SSA optimization Pass2InlineCast
|
Successful SSA optimization Pass2InlineCast
|
||||||
Simplifying constant integer cast 0
|
Simplifying constant integer cast 0
|
||||||
Simplifying constant pointer cast (byte*) 1024
|
Simplifying constant pointer cast (byte*) 1024
|
||||||
|
Simplifying constant integer cast 0
|
||||||
Simplifying constant integer cast $28
|
Simplifying constant integer cast $28
|
||||||
Simplifying constant integer cast 0
|
Simplifying constant integer cast 0
|
||||||
Simplifying constant integer cast 0
|
Simplifying constant integer cast 0
|
||||||
@ -1560,6 +1567,7 @@ Simplifying constant integer cast 2
|
|||||||
Simplifying constant integer cast $200
|
Simplifying constant integer cast $200
|
||||||
Successful SSA optimization PassNCastSimplification
|
Successful SSA optimization PassNCastSimplification
|
||||||
Finalized unsigned number type (byte) 0
|
Finalized unsigned number type (byte) 0
|
||||||
|
Finalized unsigned number type (byte) 0
|
||||||
Finalized unsigned number type (byte) $28
|
Finalized unsigned number type (byte) $28
|
||||||
Finalized signed number type (signed byte) 0
|
Finalized signed number type (signed byte) 0
|
||||||
Finalized signed number type (signed byte) 0
|
Finalized signed number type (signed byte) 0
|
||||||
@ -1840,7 +1848,7 @@ Identical Phi Values (byte*) print_char_cursor#130 (byte*) print_char_cursor#19
|
|||||||
Successful SSA optimization Pass2IdenticalPhiElimination
|
Successful SSA optimization Pass2IdenticalPhiElimination
|
||||||
Simple Condition (bool~) memset::$1 [3] if((word) memset::num#0<=(byte) 0) goto memset::@1
|
Simple Condition (bool~) memset::$1 [3] if((word) memset::num#0<=(byte) 0) goto memset::@1
|
||||||
Simple Condition (bool~) memset::$4 [13] if((byte*) memset::dst#2!=(byte*) memset::end#0) goto memset::@5
|
Simple Condition (bool~) memset::$4 [13] if((byte*) memset::dst#2!=(byte*) memset::end#0) goto memset::@5
|
||||||
Simple Condition (bool~) print_str::$0 [26] if(*((byte*) print_str::str#3)!=(byte) '@') goto print_str::@2
|
Simple Condition (bool~) print_str::$0 [26] if((byte) 0!=*((byte*) print_str::str#3)) goto print_str::@2
|
||||||
Simple Condition (bool~) print_ln::$1 [39] if((byte*) print_line_cursor#1<(byte*) print_char_cursor#123) goto print_ln::@1
|
Simple Condition (bool~) print_ln::$1 [39] if((byte*) print_line_cursor#1<(byte*) print_char_cursor#123) goto print_ln::@1
|
||||||
Simple Condition (bool~) print_sword::$0 [48] if((signed word) print_sword::w#1<(signed byte) 0) goto print_sword::@1
|
Simple Condition (bool~) print_sword::$0 [48] if((signed word) print_sword::w#1<(signed byte) 0) goto print_sword::@1
|
||||||
Simple Condition (bool~) print_sbyte::$0 [72] if((signed byte) print_sbyte::b#3<(signed byte) 0) goto print_sbyte::@1
|
Simple Condition (bool~) print_sbyte::$0 [72] if((signed byte) print_sbyte::b#3<(signed byte) 0) goto print_sbyte::@1
|
||||||
@ -2527,7 +2535,7 @@ print_str: scope:[print_str] from main::@1 main::@11
|
|||||||
print_str::@1: scope:[print_str] from print_str print_str::@2
|
print_str::@1: scope:[print_str] from print_str print_str::@2
|
||||||
[143] (byte*) print_char_cursor#122 ← phi( print_str/(byte*) print_char_cursor#136 print_str::@2/(byte*) print_char_cursor#1 )
|
[143] (byte*) print_char_cursor#122 ← phi( print_str/(byte*) print_char_cursor#136 print_str::@2/(byte*) print_char_cursor#1 )
|
||||||
[143] (byte*) print_str::str#3 ← phi( print_str/(byte*) print_str::str#5 print_str::@2/(byte*) print_str::str#0 )
|
[143] (byte*) print_str::str#3 ← phi( print_str/(byte*) print_str::str#5 print_str::@2/(byte*) print_str::str#0 )
|
||||||
[144] if(*((byte*) print_str::str#3)!=(byte) '@') goto print_str::@2
|
[144] if((byte) 0!=*((byte*) print_str::str#3)) goto print_str::@2
|
||||||
to:print_str::@return
|
to:print_str::@return
|
||||||
print_str::@return: scope:[print_str] from print_str::@1
|
print_str::@return: scope:[print_str] from print_str::@1
|
||||||
[145] return
|
[145] return
|
||||||
@ -3796,10 +3804,10 @@ print_str: {
|
|||||||
jmp b1
|
jmp b1
|
||||||
// print_str::@1
|
// print_str::@1
|
||||||
b1:
|
b1:
|
||||||
// [144] if(*((byte*) print_str::str#3)!=(byte) '@') goto print_str::@2 -- _deref_pbuz1_neq_vbuc1_then_la1
|
// [144] if((byte) 0!=*((byte*) print_str::str#3)) goto print_str::@2 -- vbuc1_neq__deref_pbuz1_then_la1
|
||||||
ldy #0
|
ldy #0
|
||||||
lda (str),y
|
lda (str),y
|
||||||
cmp #'@'
|
cmp #0
|
||||||
bne b2
|
bne b2
|
||||||
jmp breturn
|
jmp breturn
|
||||||
// print_str::@return
|
// print_str::@return
|
||||||
@ -4063,7 +4071,7 @@ Removing always clobbered register reg byte a as potential for zp ZP_BYTE:21 [ p
|
|||||||
Removing always clobbered register reg byte x as potential for zp ZP_BYTE:21 [ print_mulf8u127::a#8 ]
|
Removing always clobbered register reg byte x as potential for zp ZP_BYTE:21 [ print_mulf8u127::a#8 ]
|
||||||
Removing always clobbered register reg byte x as potential for zp ZP_BYTE:22 [ print_mulf8u127::b#10 ]
|
Removing always clobbered register reg byte x as potential for zp ZP_BYTE:22 [ print_mulf8u127::b#10 ]
|
||||||
Statement [140] (word) mulf8u127::return#1 ← *((const word*) mulf8u127::res#0) [ mulf8u127::return#1 ] ( main:2::print_mulf8s127:31::mulf8s127:54::mulf8u127:117 [ print_line_cursor#1 print_mulf8s127::a#10 print_mulf8s127::b#10 mulf8s127::a#0 mulf8s127::b#0 mulf8u127::return#1 ] main:2::print_mulf8s127:33::mulf8s127:54::mulf8u127:117 [ print_line_cursor#1 print_mulf8s127::a#10 print_mulf8s127::b#10 mulf8s127::a#0 mulf8s127::b#0 mulf8u127::return#1 ] main:2::print_mulf8s127:35::mulf8s127:54::mulf8u127:117 [ print_line_cursor#1 print_mulf8s127::a#10 print_mulf8s127::b#10 mulf8s127::a#0 mulf8s127::b#0 mulf8u127::return#1 ] main:2::print_mulf8s127:37::mulf8s127:54::mulf8u127:117 [ print_line_cursor#1 print_mulf8s127::a#10 print_mulf8s127::b#10 mulf8s127::a#0 mulf8s127::b#0 mulf8u127::return#1 ] main:2::print_mulf8s127:39::mulf8s127:54::mulf8u127:117 [ print_line_cursor#1 print_mulf8s127::a#10 print_mulf8s127::b#10 mulf8s127::a#0 mulf8s127::b#0 mulf8u127::return#1 ] main:2::print_mulf8s127:41::mulf8s127:54::mulf8u127:117 [ print_line_cursor#1 print_mulf8s127::a#10 print_mulf8s127::b#10 mulf8s127::a#0 mulf8s127::b#0 mulf8u127::return#1 ] main:2::print_mulf8s127:43::mulf8s127:54::mulf8u127:117 [ print_line_cursor#1 print_mulf8s127::a#10 print_mulf8s127::b#10 mulf8s127::a#0 mulf8s127::b#0 mulf8u127::return#1 ] main:2::print_mulf8s127:45::mulf8s127:54::mulf8u127:117 [ print_line_cursor#1 print_mulf8s127::a#10 print_mulf8s127::b#10 mulf8s127::a#0 mulf8s127::b#0 mulf8u127::return#1 ] main:2::print_mulf8s127:47::mulf8s127:54::mulf8u127:117 [ print_line_cursor#1 print_mulf8s127::a#10 print_mulf8s127::b#10 mulf8s127::a#0 mulf8s127::b#0 mulf8u127::return#1 ] main:2::print_mulf8s127:49::mulf8s127:54::mulf8u127:117 [ print_line_cursor#1 print_mulf8s127::a#10 print_mulf8s127::b#10 mulf8s127::a#0 mulf8s127::b#0 mulf8u127::return#1 ] main:2::print_mulf8u127:11::mulf8u127:152 [ print_line_cursor#1 print_mulf8u127::a#8 print_mulf8u127::b#10 mulf8u127::return#1 ] main:2::print_mulf8u127:13::mulf8u127:152 [ print_line_cursor#1 print_mulf8u127::a#8 print_mulf8u127::b#10 mulf8u127::return#1 ] main:2::print_mulf8u127:15::mulf8u127:152 [ print_line_cursor#1 print_mulf8u127::a#8 print_mulf8u127::b#10 mulf8u127::return#1 ] main:2::print_mulf8u127:17::mulf8u127:152 [ print_line_cursor#1 print_mulf8u127::a#8 print_mulf8u127::b#10 mulf8u127::return#1 ] main:2::print_mulf8u127:19::mulf8u127:152 [ print_line_cursor#1 print_mulf8u127::a#8 print_mulf8u127::b#10 mulf8u127::return#1 ] main:2::print_mulf8u127:21::mulf8u127:152 [ print_line_cursor#1 print_mulf8u127::a#8 print_mulf8u127::b#10 mulf8u127::return#1 ] main:2::print_mulf8u127:23::mulf8u127:152 [ print_line_cursor#1 print_mulf8u127::a#8 print_mulf8u127::b#10 mulf8u127::return#1 ] main:2::print_mulf8u127:25::mulf8u127:152 [ print_line_cursor#1 print_mulf8u127::a#8 print_mulf8u127::b#10 mulf8u127::return#1 ] ) always clobbers reg byte a
|
Statement [140] (word) mulf8u127::return#1 ← *((const word*) mulf8u127::res#0) [ mulf8u127::return#1 ] ( main:2::print_mulf8s127:31::mulf8s127:54::mulf8u127:117 [ print_line_cursor#1 print_mulf8s127::a#10 print_mulf8s127::b#10 mulf8s127::a#0 mulf8s127::b#0 mulf8u127::return#1 ] main:2::print_mulf8s127:33::mulf8s127:54::mulf8u127:117 [ print_line_cursor#1 print_mulf8s127::a#10 print_mulf8s127::b#10 mulf8s127::a#0 mulf8s127::b#0 mulf8u127::return#1 ] main:2::print_mulf8s127:35::mulf8s127:54::mulf8u127:117 [ print_line_cursor#1 print_mulf8s127::a#10 print_mulf8s127::b#10 mulf8s127::a#0 mulf8s127::b#0 mulf8u127::return#1 ] main:2::print_mulf8s127:37::mulf8s127:54::mulf8u127:117 [ print_line_cursor#1 print_mulf8s127::a#10 print_mulf8s127::b#10 mulf8s127::a#0 mulf8s127::b#0 mulf8u127::return#1 ] main:2::print_mulf8s127:39::mulf8s127:54::mulf8u127:117 [ print_line_cursor#1 print_mulf8s127::a#10 print_mulf8s127::b#10 mulf8s127::a#0 mulf8s127::b#0 mulf8u127::return#1 ] main:2::print_mulf8s127:41::mulf8s127:54::mulf8u127:117 [ print_line_cursor#1 print_mulf8s127::a#10 print_mulf8s127::b#10 mulf8s127::a#0 mulf8s127::b#0 mulf8u127::return#1 ] main:2::print_mulf8s127:43::mulf8s127:54::mulf8u127:117 [ print_line_cursor#1 print_mulf8s127::a#10 print_mulf8s127::b#10 mulf8s127::a#0 mulf8s127::b#0 mulf8u127::return#1 ] main:2::print_mulf8s127:45::mulf8s127:54::mulf8u127:117 [ print_line_cursor#1 print_mulf8s127::a#10 print_mulf8s127::b#10 mulf8s127::a#0 mulf8s127::b#0 mulf8u127::return#1 ] main:2::print_mulf8s127:47::mulf8s127:54::mulf8u127:117 [ print_line_cursor#1 print_mulf8s127::a#10 print_mulf8s127::b#10 mulf8s127::a#0 mulf8s127::b#0 mulf8u127::return#1 ] main:2::print_mulf8s127:49::mulf8s127:54::mulf8u127:117 [ print_line_cursor#1 print_mulf8s127::a#10 print_mulf8s127::b#10 mulf8s127::a#0 mulf8s127::b#0 mulf8u127::return#1 ] main:2::print_mulf8u127:11::mulf8u127:152 [ print_line_cursor#1 print_mulf8u127::a#8 print_mulf8u127::b#10 mulf8u127::return#1 ] main:2::print_mulf8u127:13::mulf8u127:152 [ print_line_cursor#1 print_mulf8u127::a#8 print_mulf8u127::b#10 mulf8u127::return#1 ] main:2::print_mulf8u127:15::mulf8u127:152 [ print_line_cursor#1 print_mulf8u127::a#8 print_mulf8u127::b#10 mulf8u127::return#1 ] main:2::print_mulf8u127:17::mulf8u127:152 [ print_line_cursor#1 print_mulf8u127::a#8 print_mulf8u127::b#10 mulf8u127::return#1 ] main:2::print_mulf8u127:19::mulf8u127:152 [ print_line_cursor#1 print_mulf8u127::a#8 print_mulf8u127::b#10 mulf8u127::return#1 ] main:2::print_mulf8u127:21::mulf8u127:152 [ print_line_cursor#1 print_mulf8u127::a#8 print_mulf8u127::b#10 mulf8u127::return#1 ] main:2::print_mulf8u127:23::mulf8u127:152 [ print_line_cursor#1 print_mulf8u127::a#8 print_mulf8u127::b#10 mulf8u127::return#1 ] main:2::print_mulf8u127:25::mulf8u127:152 [ print_line_cursor#1 print_mulf8u127::a#8 print_mulf8u127::b#10 mulf8u127::return#1 ] ) always clobbers reg byte a
|
||||||
Statement [144] if(*((byte*) print_str::str#3)!=(byte) '@') goto print_str::@2 [ print_char_cursor#122 print_str::str#3 ] ( main:2::print_str:7 [ print_char_cursor#122 print_str::str#3 ] main:2::print_str:27 [ print_line_cursor#1 print_char_cursor#122 print_str::str#3 ] ) always clobbers reg byte a reg byte y
|
Statement [144] if((byte) 0!=*((byte*) print_str::str#3)) goto print_str::@2 [ print_char_cursor#122 print_str::str#3 ] ( main:2::print_str:7 [ print_char_cursor#122 print_str::str#3 ] main:2::print_str:27 [ print_line_cursor#1 print_char_cursor#122 print_str::str#3 ] ) always clobbers reg byte a reg byte y
|
||||||
Statement [146] *((byte*) print_char_cursor#122) ← *((byte*) print_str::str#3) [ print_char_cursor#122 print_str::str#3 ] ( main:2::print_str:7 [ print_char_cursor#122 print_str::str#3 ] main:2::print_str:27 [ print_line_cursor#1 print_char_cursor#122 print_str::str#3 ] ) always clobbers reg byte a reg byte y
|
Statement [146] *((byte*) print_char_cursor#122) ← *((byte*) print_str::str#3) [ print_char_cursor#122 print_str::str#3 ] ( main:2::print_str:7 [ print_char_cursor#122 print_str::str#3 ] main:2::print_str:27 [ print_line_cursor#1 print_char_cursor#122 print_str::str#3 ] ) always clobbers reg byte a reg byte y
|
||||||
Statement [153] (word) mulf8u127::return#0 ← (word) mulf8u127::return#1 [ print_line_cursor#1 print_mulf8u127::a#8 print_mulf8u127::b#10 mulf8u127::return#0 ] ( main:2::print_mulf8u127:11 [ print_line_cursor#1 print_mulf8u127::a#8 print_mulf8u127::b#10 mulf8u127::return#0 ] main:2::print_mulf8u127:13 [ print_line_cursor#1 print_mulf8u127::a#8 print_mulf8u127::b#10 mulf8u127::return#0 ] main:2::print_mulf8u127:15 [ print_line_cursor#1 print_mulf8u127::a#8 print_mulf8u127::b#10 mulf8u127::return#0 ] main:2::print_mulf8u127:17 [ print_line_cursor#1 print_mulf8u127::a#8 print_mulf8u127::b#10 mulf8u127::return#0 ] main:2::print_mulf8u127:19 [ print_line_cursor#1 print_mulf8u127::a#8 print_mulf8u127::b#10 mulf8u127::return#0 ] main:2::print_mulf8u127:21 [ print_line_cursor#1 print_mulf8u127::a#8 print_mulf8u127::b#10 mulf8u127::return#0 ] main:2::print_mulf8u127:23 [ print_line_cursor#1 print_mulf8u127::a#8 print_mulf8u127::b#10 mulf8u127::return#0 ] main:2::print_mulf8u127:25 [ print_line_cursor#1 print_mulf8u127::a#8 print_mulf8u127::b#10 mulf8u127::return#0 ] ) always clobbers reg byte a
|
Statement [153] (word) mulf8u127::return#0 ← (word) mulf8u127::return#1 [ print_line_cursor#1 print_mulf8u127::a#8 print_mulf8u127::b#10 mulf8u127::return#0 ] ( main:2::print_mulf8u127:11 [ print_line_cursor#1 print_mulf8u127::a#8 print_mulf8u127::b#10 mulf8u127::return#0 ] main:2::print_mulf8u127:13 [ print_line_cursor#1 print_mulf8u127::a#8 print_mulf8u127::b#10 mulf8u127::return#0 ] main:2::print_mulf8u127:15 [ print_line_cursor#1 print_mulf8u127::a#8 print_mulf8u127::b#10 mulf8u127::return#0 ] main:2::print_mulf8u127:17 [ print_line_cursor#1 print_mulf8u127::a#8 print_mulf8u127::b#10 mulf8u127::return#0 ] main:2::print_mulf8u127:19 [ print_line_cursor#1 print_mulf8u127::a#8 print_mulf8u127::b#10 mulf8u127::return#0 ] main:2::print_mulf8u127:21 [ print_line_cursor#1 print_mulf8u127::a#8 print_mulf8u127::b#10 mulf8u127::return#0 ] main:2::print_mulf8u127:23 [ print_line_cursor#1 print_mulf8u127::a#8 print_mulf8u127::b#10 mulf8u127::return#0 ] main:2::print_mulf8u127:25 [ print_line_cursor#1 print_mulf8u127::a#8 print_mulf8u127::b#10 mulf8u127::return#0 ] ) always clobbers reg byte a
|
||||||
Statement [154] (word) print_mulf8u127::c#0 ← (word) mulf8u127::return#0 [ print_line_cursor#1 print_mulf8u127::a#8 print_mulf8u127::b#10 print_mulf8u127::c#0 ] ( main:2::print_mulf8u127:11 [ print_line_cursor#1 print_mulf8u127::a#8 print_mulf8u127::b#10 print_mulf8u127::c#0 ] main:2::print_mulf8u127:13 [ print_line_cursor#1 print_mulf8u127::a#8 print_mulf8u127::b#10 print_mulf8u127::c#0 ] main:2::print_mulf8u127:15 [ print_line_cursor#1 print_mulf8u127::a#8 print_mulf8u127::b#10 print_mulf8u127::c#0 ] main:2::print_mulf8u127:17 [ print_line_cursor#1 print_mulf8u127::a#8 print_mulf8u127::b#10 print_mulf8u127::c#0 ] main:2::print_mulf8u127:19 [ print_line_cursor#1 print_mulf8u127::a#8 print_mulf8u127::b#10 print_mulf8u127::c#0 ] main:2::print_mulf8u127:21 [ print_line_cursor#1 print_mulf8u127::a#8 print_mulf8u127::b#10 print_mulf8u127::c#0 ] main:2::print_mulf8u127:23 [ print_line_cursor#1 print_mulf8u127::a#8 print_mulf8u127::b#10 print_mulf8u127::c#0 ] main:2::print_mulf8u127:25 [ print_line_cursor#1 print_mulf8u127::a#8 print_mulf8u127::b#10 print_mulf8u127::c#0 ] ) always clobbers reg byte a
|
Statement [154] (word) print_mulf8u127::c#0 ← (word) mulf8u127::return#0 [ print_line_cursor#1 print_mulf8u127::a#8 print_mulf8u127::b#10 print_mulf8u127::c#0 ] ( main:2::print_mulf8u127:11 [ print_line_cursor#1 print_mulf8u127::a#8 print_mulf8u127::b#10 print_mulf8u127::c#0 ] main:2::print_mulf8u127:13 [ print_line_cursor#1 print_mulf8u127::a#8 print_mulf8u127::b#10 print_mulf8u127::c#0 ] main:2::print_mulf8u127:15 [ print_line_cursor#1 print_mulf8u127::a#8 print_mulf8u127::b#10 print_mulf8u127::c#0 ] main:2::print_mulf8u127:17 [ print_line_cursor#1 print_mulf8u127::a#8 print_mulf8u127::b#10 print_mulf8u127::c#0 ] main:2::print_mulf8u127:19 [ print_line_cursor#1 print_mulf8u127::a#8 print_mulf8u127::b#10 print_mulf8u127::c#0 ] main:2::print_mulf8u127:21 [ print_line_cursor#1 print_mulf8u127::a#8 print_mulf8u127::b#10 print_mulf8u127::c#0 ] main:2::print_mulf8u127:23 [ print_line_cursor#1 print_mulf8u127::a#8 print_mulf8u127::b#10 print_mulf8u127::c#0 ] main:2::print_mulf8u127:25 [ print_line_cursor#1 print_mulf8u127::a#8 print_mulf8u127::b#10 print_mulf8u127::c#0 ] ) always clobbers reg byte a
|
||||||
@ -4099,7 +4107,7 @@ Statement [132] (signed word) mulf8s127::c#3 ← (signed word) mulf8s127::c#7 -
|
|||||||
Statement [135] (signed word~) mulf8s127::c#11 ← (signed word)(word) mulf8s127::c#0 [ mulf8s127::a#0 mulf8s127::b#0 mulf8s127::c#11 ] ( main:2::print_mulf8s127:31::mulf8s127:54 [ print_line_cursor#1 print_mulf8s127::a#10 print_mulf8s127::b#10 mulf8s127::a#0 mulf8s127::b#0 mulf8s127::c#11 ] main:2::print_mulf8s127:33::mulf8s127:54 [ print_line_cursor#1 print_mulf8s127::a#10 print_mulf8s127::b#10 mulf8s127::a#0 mulf8s127::b#0 mulf8s127::c#11 ] main:2::print_mulf8s127:35::mulf8s127:54 [ print_line_cursor#1 print_mulf8s127::a#10 print_mulf8s127::b#10 mulf8s127::a#0 mulf8s127::b#0 mulf8s127::c#11 ] main:2::print_mulf8s127:37::mulf8s127:54 [ print_line_cursor#1 print_mulf8s127::a#10 print_mulf8s127::b#10 mulf8s127::a#0 mulf8s127::b#0 mulf8s127::c#11 ] main:2::print_mulf8s127:39::mulf8s127:54 [ print_line_cursor#1 print_mulf8s127::a#10 print_mulf8s127::b#10 mulf8s127::a#0 mulf8s127::b#0 mulf8s127::c#11 ] main:2::print_mulf8s127:41::mulf8s127:54 [ print_line_cursor#1 print_mulf8s127::a#10 print_mulf8s127::b#10 mulf8s127::a#0 mulf8s127::b#0 mulf8s127::c#11 ] main:2::print_mulf8s127:43::mulf8s127:54 [ print_line_cursor#1 print_mulf8s127::a#10 print_mulf8s127::b#10 mulf8s127::a#0 mulf8s127::b#0 mulf8s127::c#11 ] main:2::print_mulf8s127:45::mulf8s127:54 [ print_line_cursor#1 print_mulf8s127::a#10 print_mulf8s127::b#10 mulf8s127::a#0 mulf8s127::b#0 mulf8s127::c#11 ] main:2::print_mulf8s127:47::mulf8s127:54 [ print_line_cursor#1 print_mulf8s127::a#10 print_mulf8s127::b#10 mulf8s127::a#0 mulf8s127::b#0 mulf8s127::c#11 ] main:2::print_mulf8s127:49::mulf8s127:54 [ print_line_cursor#1 print_mulf8s127::a#10 print_mulf8s127::b#10 mulf8s127::a#0 mulf8s127::b#0 mulf8s127::c#11 ] ) always clobbers reg byte a
|
Statement [135] (signed word~) mulf8s127::c#11 ← (signed word)(word) mulf8s127::c#0 [ mulf8s127::a#0 mulf8s127::b#0 mulf8s127::c#11 ] ( main:2::print_mulf8s127:31::mulf8s127:54 [ print_line_cursor#1 print_mulf8s127::a#10 print_mulf8s127::b#10 mulf8s127::a#0 mulf8s127::b#0 mulf8s127::c#11 ] main:2::print_mulf8s127:33::mulf8s127:54 [ print_line_cursor#1 print_mulf8s127::a#10 print_mulf8s127::b#10 mulf8s127::a#0 mulf8s127::b#0 mulf8s127::c#11 ] main:2::print_mulf8s127:35::mulf8s127:54 [ print_line_cursor#1 print_mulf8s127::a#10 print_mulf8s127::b#10 mulf8s127::a#0 mulf8s127::b#0 mulf8s127::c#11 ] main:2::print_mulf8s127:37::mulf8s127:54 [ print_line_cursor#1 print_mulf8s127::a#10 print_mulf8s127::b#10 mulf8s127::a#0 mulf8s127::b#0 mulf8s127::c#11 ] main:2::print_mulf8s127:39::mulf8s127:54 [ print_line_cursor#1 print_mulf8s127::a#10 print_mulf8s127::b#10 mulf8s127::a#0 mulf8s127::b#0 mulf8s127::c#11 ] main:2::print_mulf8s127:41::mulf8s127:54 [ print_line_cursor#1 print_mulf8s127::a#10 print_mulf8s127::b#10 mulf8s127::a#0 mulf8s127::b#0 mulf8s127::c#11 ] main:2::print_mulf8s127:43::mulf8s127:54 [ print_line_cursor#1 print_mulf8s127::a#10 print_mulf8s127::b#10 mulf8s127::a#0 mulf8s127::b#0 mulf8s127::c#11 ] main:2::print_mulf8s127:45::mulf8s127:54 [ print_line_cursor#1 print_mulf8s127::a#10 print_mulf8s127::b#10 mulf8s127::a#0 mulf8s127::b#0 mulf8s127::c#11 ] main:2::print_mulf8s127:47::mulf8s127:54 [ print_line_cursor#1 print_mulf8s127::a#10 print_mulf8s127::b#10 mulf8s127::a#0 mulf8s127::b#0 mulf8s127::c#11 ] main:2::print_mulf8s127:49::mulf8s127:54 [ print_line_cursor#1 print_mulf8s127::a#10 print_mulf8s127::b#10 mulf8s127::a#0 mulf8s127::b#0 mulf8s127::c#11 ] ) always clobbers reg byte a
|
||||||
Statement asm { ldamemA stasm1+1 stasm3+1 eor#$ff stasm2+1 stasm4+1 ldxmemB sec sm1: ldamulf127_sqr1_lo,x sm2: sbcmulf127_sqr2_lo,x staresL sm3: ldamulf127_sqr1_hi,x sm4: sbcmulf127_sqr2_hi,x staresH } always clobbers reg byte a reg byte x
|
Statement asm { ldamemA stasm1+1 stasm3+1 eor#$ff stasm2+1 stasm4+1 ldxmemB sec sm1: ldamulf127_sqr1_lo,x sm2: sbcmulf127_sqr2_lo,x staresL sm3: ldamulf127_sqr1_hi,x sm4: sbcmulf127_sqr2_hi,x staresH } always clobbers reg byte a reg byte x
|
||||||
Statement [140] (word) mulf8u127::return#1 ← *((const word*) mulf8u127::res#0) [ mulf8u127::return#1 ] ( main:2::print_mulf8s127:31::mulf8s127:54::mulf8u127:117 [ print_line_cursor#1 print_mulf8s127::a#10 print_mulf8s127::b#10 mulf8s127::a#0 mulf8s127::b#0 mulf8u127::return#1 ] main:2::print_mulf8s127:33::mulf8s127:54::mulf8u127:117 [ print_line_cursor#1 print_mulf8s127::a#10 print_mulf8s127::b#10 mulf8s127::a#0 mulf8s127::b#0 mulf8u127::return#1 ] main:2::print_mulf8s127:35::mulf8s127:54::mulf8u127:117 [ print_line_cursor#1 print_mulf8s127::a#10 print_mulf8s127::b#10 mulf8s127::a#0 mulf8s127::b#0 mulf8u127::return#1 ] main:2::print_mulf8s127:37::mulf8s127:54::mulf8u127:117 [ print_line_cursor#1 print_mulf8s127::a#10 print_mulf8s127::b#10 mulf8s127::a#0 mulf8s127::b#0 mulf8u127::return#1 ] main:2::print_mulf8s127:39::mulf8s127:54::mulf8u127:117 [ print_line_cursor#1 print_mulf8s127::a#10 print_mulf8s127::b#10 mulf8s127::a#0 mulf8s127::b#0 mulf8u127::return#1 ] main:2::print_mulf8s127:41::mulf8s127:54::mulf8u127:117 [ print_line_cursor#1 print_mulf8s127::a#10 print_mulf8s127::b#10 mulf8s127::a#0 mulf8s127::b#0 mulf8u127::return#1 ] main:2::print_mulf8s127:43::mulf8s127:54::mulf8u127:117 [ print_line_cursor#1 print_mulf8s127::a#10 print_mulf8s127::b#10 mulf8s127::a#0 mulf8s127::b#0 mulf8u127::return#1 ] main:2::print_mulf8s127:45::mulf8s127:54::mulf8u127:117 [ print_line_cursor#1 print_mulf8s127::a#10 print_mulf8s127::b#10 mulf8s127::a#0 mulf8s127::b#0 mulf8u127::return#1 ] main:2::print_mulf8s127:47::mulf8s127:54::mulf8u127:117 [ print_line_cursor#1 print_mulf8s127::a#10 print_mulf8s127::b#10 mulf8s127::a#0 mulf8s127::b#0 mulf8u127::return#1 ] main:2::print_mulf8s127:49::mulf8s127:54::mulf8u127:117 [ print_line_cursor#1 print_mulf8s127::a#10 print_mulf8s127::b#10 mulf8s127::a#0 mulf8s127::b#0 mulf8u127::return#1 ] main:2::print_mulf8u127:11::mulf8u127:152 [ print_line_cursor#1 print_mulf8u127::a#8 print_mulf8u127::b#10 mulf8u127::return#1 ] main:2::print_mulf8u127:13::mulf8u127:152 [ print_line_cursor#1 print_mulf8u127::a#8 print_mulf8u127::b#10 mulf8u127::return#1 ] main:2::print_mulf8u127:15::mulf8u127:152 [ print_line_cursor#1 print_mulf8u127::a#8 print_mulf8u127::b#10 mulf8u127::return#1 ] main:2::print_mulf8u127:17::mulf8u127:152 [ print_line_cursor#1 print_mulf8u127::a#8 print_mulf8u127::b#10 mulf8u127::return#1 ] main:2::print_mulf8u127:19::mulf8u127:152 [ print_line_cursor#1 print_mulf8u127::a#8 print_mulf8u127::b#10 mulf8u127::return#1 ] main:2::print_mulf8u127:21::mulf8u127:152 [ print_line_cursor#1 print_mulf8u127::a#8 print_mulf8u127::b#10 mulf8u127::return#1 ] main:2::print_mulf8u127:23::mulf8u127:152 [ print_line_cursor#1 print_mulf8u127::a#8 print_mulf8u127::b#10 mulf8u127::return#1 ] main:2::print_mulf8u127:25::mulf8u127:152 [ print_line_cursor#1 print_mulf8u127::a#8 print_mulf8u127::b#10 mulf8u127::return#1 ] ) always clobbers reg byte a
|
Statement [140] (word) mulf8u127::return#1 ← *((const word*) mulf8u127::res#0) [ mulf8u127::return#1 ] ( main:2::print_mulf8s127:31::mulf8s127:54::mulf8u127:117 [ print_line_cursor#1 print_mulf8s127::a#10 print_mulf8s127::b#10 mulf8s127::a#0 mulf8s127::b#0 mulf8u127::return#1 ] main:2::print_mulf8s127:33::mulf8s127:54::mulf8u127:117 [ print_line_cursor#1 print_mulf8s127::a#10 print_mulf8s127::b#10 mulf8s127::a#0 mulf8s127::b#0 mulf8u127::return#1 ] main:2::print_mulf8s127:35::mulf8s127:54::mulf8u127:117 [ print_line_cursor#1 print_mulf8s127::a#10 print_mulf8s127::b#10 mulf8s127::a#0 mulf8s127::b#0 mulf8u127::return#1 ] main:2::print_mulf8s127:37::mulf8s127:54::mulf8u127:117 [ print_line_cursor#1 print_mulf8s127::a#10 print_mulf8s127::b#10 mulf8s127::a#0 mulf8s127::b#0 mulf8u127::return#1 ] main:2::print_mulf8s127:39::mulf8s127:54::mulf8u127:117 [ print_line_cursor#1 print_mulf8s127::a#10 print_mulf8s127::b#10 mulf8s127::a#0 mulf8s127::b#0 mulf8u127::return#1 ] main:2::print_mulf8s127:41::mulf8s127:54::mulf8u127:117 [ print_line_cursor#1 print_mulf8s127::a#10 print_mulf8s127::b#10 mulf8s127::a#0 mulf8s127::b#0 mulf8u127::return#1 ] main:2::print_mulf8s127:43::mulf8s127:54::mulf8u127:117 [ print_line_cursor#1 print_mulf8s127::a#10 print_mulf8s127::b#10 mulf8s127::a#0 mulf8s127::b#0 mulf8u127::return#1 ] main:2::print_mulf8s127:45::mulf8s127:54::mulf8u127:117 [ print_line_cursor#1 print_mulf8s127::a#10 print_mulf8s127::b#10 mulf8s127::a#0 mulf8s127::b#0 mulf8u127::return#1 ] main:2::print_mulf8s127:47::mulf8s127:54::mulf8u127:117 [ print_line_cursor#1 print_mulf8s127::a#10 print_mulf8s127::b#10 mulf8s127::a#0 mulf8s127::b#0 mulf8u127::return#1 ] main:2::print_mulf8s127:49::mulf8s127:54::mulf8u127:117 [ print_line_cursor#1 print_mulf8s127::a#10 print_mulf8s127::b#10 mulf8s127::a#0 mulf8s127::b#0 mulf8u127::return#1 ] main:2::print_mulf8u127:11::mulf8u127:152 [ print_line_cursor#1 print_mulf8u127::a#8 print_mulf8u127::b#10 mulf8u127::return#1 ] main:2::print_mulf8u127:13::mulf8u127:152 [ print_line_cursor#1 print_mulf8u127::a#8 print_mulf8u127::b#10 mulf8u127::return#1 ] main:2::print_mulf8u127:15::mulf8u127:152 [ print_line_cursor#1 print_mulf8u127::a#8 print_mulf8u127::b#10 mulf8u127::return#1 ] main:2::print_mulf8u127:17::mulf8u127:152 [ print_line_cursor#1 print_mulf8u127::a#8 print_mulf8u127::b#10 mulf8u127::return#1 ] main:2::print_mulf8u127:19::mulf8u127:152 [ print_line_cursor#1 print_mulf8u127::a#8 print_mulf8u127::b#10 mulf8u127::return#1 ] main:2::print_mulf8u127:21::mulf8u127:152 [ print_line_cursor#1 print_mulf8u127::a#8 print_mulf8u127::b#10 mulf8u127::return#1 ] main:2::print_mulf8u127:23::mulf8u127:152 [ print_line_cursor#1 print_mulf8u127::a#8 print_mulf8u127::b#10 mulf8u127::return#1 ] main:2::print_mulf8u127:25::mulf8u127:152 [ print_line_cursor#1 print_mulf8u127::a#8 print_mulf8u127::b#10 mulf8u127::return#1 ] ) always clobbers reg byte a
|
||||||
Statement [144] if(*((byte*) print_str::str#3)!=(byte) '@') goto print_str::@2 [ print_char_cursor#122 print_str::str#3 ] ( main:2::print_str:7 [ print_char_cursor#122 print_str::str#3 ] main:2::print_str:27 [ print_line_cursor#1 print_char_cursor#122 print_str::str#3 ] ) always clobbers reg byte a reg byte y
|
Statement [144] if((byte) 0!=*((byte*) print_str::str#3)) goto print_str::@2 [ print_char_cursor#122 print_str::str#3 ] ( main:2::print_str:7 [ print_char_cursor#122 print_str::str#3 ] main:2::print_str:27 [ print_line_cursor#1 print_char_cursor#122 print_str::str#3 ] ) always clobbers reg byte a reg byte y
|
||||||
Statement [146] *((byte*) print_char_cursor#122) ← *((byte*) print_str::str#3) [ print_char_cursor#122 print_str::str#3 ] ( main:2::print_str:7 [ print_char_cursor#122 print_str::str#3 ] main:2::print_str:27 [ print_line_cursor#1 print_char_cursor#122 print_str::str#3 ] ) always clobbers reg byte a reg byte y
|
Statement [146] *((byte*) print_char_cursor#122) ← *((byte*) print_str::str#3) [ print_char_cursor#122 print_str::str#3 ] ( main:2::print_str:7 [ print_char_cursor#122 print_str::str#3 ] main:2::print_str:27 [ print_line_cursor#1 print_char_cursor#122 print_str::str#3 ] ) always clobbers reg byte a reg byte y
|
||||||
Statement [153] (word) mulf8u127::return#0 ← (word) mulf8u127::return#1 [ print_line_cursor#1 print_mulf8u127::a#8 print_mulf8u127::b#10 mulf8u127::return#0 ] ( main:2::print_mulf8u127:11 [ print_line_cursor#1 print_mulf8u127::a#8 print_mulf8u127::b#10 mulf8u127::return#0 ] main:2::print_mulf8u127:13 [ print_line_cursor#1 print_mulf8u127::a#8 print_mulf8u127::b#10 mulf8u127::return#0 ] main:2::print_mulf8u127:15 [ print_line_cursor#1 print_mulf8u127::a#8 print_mulf8u127::b#10 mulf8u127::return#0 ] main:2::print_mulf8u127:17 [ print_line_cursor#1 print_mulf8u127::a#8 print_mulf8u127::b#10 mulf8u127::return#0 ] main:2::print_mulf8u127:19 [ print_line_cursor#1 print_mulf8u127::a#8 print_mulf8u127::b#10 mulf8u127::return#0 ] main:2::print_mulf8u127:21 [ print_line_cursor#1 print_mulf8u127::a#8 print_mulf8u127::b#10 mulf8u127::return#0 ] main:2::print_mulf8u127:23 [ print_line_cursor#1 print_mulf8u127::a#8 print_mulf8u127::b#10 mulf8u127::return#0 ] main:2::print_mulf8u127:25 [ print_line_cursor#1 print_mulf8u127::a#8 print_mulf8u127::b#10 mulf8u127::return#0 ] ) always clobbers reg byte a
|
Statement [153] (word) mulf8u127::return#0 ← (word) mulf8u127::return#1 [ print_line_cursor#1 print_mulf8u127::a#8 print_mulf8u127::b#10 mulf8u127::return#0 ] ( main:2::print_mulf8u127:11 [ print_line_cursor#1 print_mulf8u127::a#8 print_mulf8u127::b#10 mulf8u127::return#0 ] main:2::print_mulf8u127:13 [ print_line_cursor#1 print_mulf8u127::a#8 print_mulf8u127::b#10 mulf8u127::return#0 ] main:2::print_mulf8u127:15 [ print_line_cursor#1 print_mulf8u127::a#8 print_mulf8u127::b#10 mulf8u127::return#0 ] main:2::print_mulf8u127:17 [ print_line_cursor#1 print_mulf8u127::a#8 print_mulf8u127::b#10 mulf8u127::return#0 ] main:2::print_mulf8u127:19 [ print_line_cursor#1 print_mulf8u127::a#8 print_mulf8u127::b#10 mulf8u127::return#0 ] main:2::print_mulf8u127:21 [ print_line_cursor#1 print_mulf8u127::a#8 print_mulf8u127::b#10 mulf8u127::return#0 ] main:2::print_mulf8u127:23 [ print_line_cursor#1 print_mulf8u127::a#8 print_mulf8u127::b#10 mulf8u127::return#0 ] main:2::print_mulf8u127:25 [ print_line_cursor#1 print_mulf8u127::a#8 print_mulf8u127::b#10 mulf8u127::return#0 ] ) always clobbers reg byte a
|
||||||
Statement [154] (word) print_mulf8u127::c#0 ← (word) mulf8u127::return#0 [ print_line_cursor#1 print_mulf8u127::a#8 print_mulf8u127::b#10 print_mulf8u127::c#0 ] ( main:2::print_mulf8u127:11 [ print_line_cursor#1 print_mulf8u127::a#8 print_mulf8u127::b#10 print_mulf8u127::c#0 ] main:2::print_mulf8u127:13 [ print_line_cursor#1 print_mulf8u127::a#8 print_mulf8u127::b#10 print_mulf8u127::c#0 ] main:2::print_mulf8u127:15 [ print_line_cursor#1 print_mulf8u127::a#8 print_mulf8u127::b#10 print_mulf8u127::c#0 ] main:2::print_mulf8u127:17 [ print_line_cursor#1 print_mulf8u127::a#8 print_mulf8u127::b#10 print_mulf8u127::c#0 ] main:2::print_mulf8u127:19 [ print_line_cursor#1 print_mulf8u127::a#8 print_mulf8u127::b#10 print_mulf8u127::c#0 ] main:2::print_mulf8u127:21 [ print_line_cursor#1 print_mulf8u127::a#8 print_mulf8u127::b#10 print_mulf8u127::c#0 ] main:2::print_mulf8u127:23 [ print_line_cursor#1 print_mulf8u127::a#8 print_mulf8u127::b#10 print_mulf8u127::c#0 ] main:2::print_mulf8u127:25 [ print_line_cursor#1 print_mulf8u127::a#8 print_mulf8u127::b#10 print_mulf8u127::c#0 ] ) always clobbers reg byte a
|
Statement [154] (word) print_mulf8u127::c#0 ← (word) mulf8u127::return#0 [ print_line_cursor#1 print_mulf8u127::a#8 print_mulf8u127::b#10 print_mulf8u127::c#0 ] ( main:2::print_mulf8u127:11 [ print_line_cursor#1 print_mulf8u127::a#8 print_mulf8u127::b#10 print_mulf8u127::c#0 ] main:2::print_mulf8u127:13 [ print_line_cursor#1 print_mulf8u127::a#8 print_mulf8u127::b#10 print_mulf8u127::c#0 ] main:2::print_mulf8u127:15 [ print_line_cursor#1 print_mulf8u127::a#8 print_mulf8u127::b#10 print_mulf8u127::c#0 ] main:2::print_mulf8u127:17 [ print_line_cursor#1 print_mulf8u127::a#8 print_mulf8u127::b#10 print_mulf8u127::c#0 ] main:2::print_mulf8u127:19 [ print_line_cursor#1 print_mulf8u127::a#8 print_mulf8u127::b#10 print_mulf8u127::c#0 ] main:2::print_mulf8u127:21 [ print_line_cursor#1 print_mulf8u127::a#8 print_mulf8u127::b#10 print_mulf8u127::c#0 ] main:2::print_mulf8u127:23 [ print_line_cursor#1 print_mulf8u127::a#8 print_mulf8u127::b#10 print_mulf8u127::c#0 ] main:2::print_mulf8u127:25 [ print_line_cursor#1 print_mulf8u127::a#8 print_mulf8u127::b#10 print_mulf8u127::c#0 ] ) always clobbers reg byte a
|
||||||
@ -5081,10 +5089,10 @@ print_str: {
|
|||||||
jmp b1
|
jmp b1
|
||||||
// print_str::@1
|
// print_str::@1
|
||||||
b1:
|
b1:
|
||||||
// [144] if(*((byte*) print_str::str#3)!=(byte) '@') goto print_str::@2 -- _deref_pbuz1_neq_vbuc1_then_la1
|
// [144] if((byte) 0!=*((byte*) print_str::str#3)) goto print_str::@2 -- vbuc1_neq__deref_pbuz1_then_la1
|
||||||
ldy #0
|
ldy #0
|
||||||
lda (str),y
|
lda (str),y
|
||||||
cmp #'@'
|
cmp #0
|
||||||
bne b2
|
bne b2
|
||||||
jmp breturn
|
jmp breturn
|
||||||
// print_str::@return
|
// print_str::@return
|
||||||
@ -6558,11 +6566,11 @@ print_str: {
|
|||||||
// [143] phi (byte*) print_str::str#3 = (byte*) print_str::str#5 [phi:print_str/print_str::@2->print_str::@1#1] -- register_copy
|
// [143] phi (byte*) print_str::str#3 = (byte*) print_str::str#5 [phi:print_str/print_str::@2->print_str::@1#1] -- register_copy
|
||||||
// print_str::@1
|
// print_str::@1
|
||||||
b1:
|
b1:
|
||||||
// while(*str!='@')
|
// while(*str)
|
||||||
// [144] if(*((byte*) print_str::str#3)!=(byte) '@') goto print_str::@2 -- _deref_pbuz1_neq_vbuc1_then_la1
|
// [144] if((byte) 0!=*((byte*) print_str::str#3)) goto print_str::@2 -- vbuc1_neq__deref_pbuz1_then_la1
|
||||||
ldy #0
|
ldy #0
|
||||||
lda (str),y
|
lda (str),y
|
||||||
cmp #'@'
|
cmp #0
|
||||||
bne b2
|
bne b2
|
||||||
// print_str::@return
|
// print_str::@return
|
||||||
// }
|
// }
|
||||||
|
@ -59,7 +59,7 @@ print: {
|
|||||||
inc idx
|
inc idx
|
||||||
iny
|
iny
|
||||||
lda (msg),y
|
lda (msg),y
|
||||||
cmp #'@'
|
cmp #0
|
||||||
bne b1
|
bne b1
|
||||||
rts
|
rts
|
||||||
}
|
}
|
||||||
|
@ -49,7 +49,7 @@ print::@1: scope:[print] from print print::@1
|
|||||||
[21] *((const byte*) SCREEN#0 + (byte) idx#11) ← *((byte*) print::msg#3 + (byte) print::i#2)
|
[21] *((const byte*) SCREEN#0 + (byte) idx#11) ← *((byte*) print::msg#3 + (byte) print::i#2)
|
||||||
[22] (byte) idx#12 ← ++ (byte) idx#11
|
[22] (byte) idx#12 ← ++ (byte) idx#11
|
||||||
[23] (byte) print::i#1 ← ++ (byte) print::i#2
|
[23] (byte) print::i#1 ← ++ (byte) print::i#2
|
||||||
[24] if(*((byte*) print::msg#3 + (byte) print::i#1)!=(byte) '@') goto print::@1
|
[24] if((byte) 0!=*((byte*) print::msg#3 + (byte) print::i#1)) goto print::@1
|
||||||
to:print::@return
|
to:print::@return
|
||||||
print::@return: scope:[print] from print::@1
|
print::@return: scope:[print] from print::@1
|
||||||
[25] return
|
[25] return
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
Resolved forward reference hello to (void()) hello()
|
Resolved forward reference hello to (void()) hello()
|
||||||
Resolved forward reference world to (void()) world()
|
Resolved forward reference world to (void()) world()
|
||||||
|
Warning! Adding boolean cast to non-boolean condition *((byte*) print::msg + (byte) print::i)
|
||||||
Culled Empty Block (label) @1
|
Culled Empty Block (label) @1
|
||||||
Culled Empty Block (label) do10::@2
|
Culled Empty Block (label) do10::@2
|
||||||
Culled Empty Block (label) @2
|
Culled Empty Block (label) @2
|
||||||
@ -83,7 +84,7 @@ print::@1: scope:[print] from print print::@1
|
|||||||
*((byte*) SCREEN#0 + (byte) idx#11) ← *((byte*) print::msg#2 + (byte) print::i#2)
|
*((byte*) SCREEN#0 + (byte) idx#11) ← *((byte*) print::msg#2 + (byte) print::i#2)
|
||||||
(byte) idx#5 ← ++ (byte) idx#11
|
(byte) idx#5 ← ++ (byte) idx#11
|
||||||
(byte) print::i#1 ← ++ (byte) print::i#2
|
(byte) print::i#1 ← ++ (byte) print::i#2
|
||||||
(bool~) print::$0 ← *((byte*) print::msg#2 + (byte) print::i#1) != (byte) '@'
|
(bool~) print::$0 ← (number) 0 != *((byte*) print::msg#2 + (byte) print::i#1)
|
||||||
if((bool~) print::$0) goto print::@1
|
if((bool~) print::$0) goto print::@1
|
||||||
to:print::@return
|
to:print::@return
|
||||||
print::@return: scope:[print] from print::@1
|
print::@return: scope:[print] from print::@1
|
||||||
@ -168,6 +169,7 @@ SYMBOL TABLE SSA
|
|||||||
|
|
||||||
Adding number conversion cast (unumber) 0 in (byte) idx#4 ← (number) 0
|
Adding number conversion cast (unumber) 0 in (byte) idx#4 ← (number) 0
|
||||||
Adding number conversion cast (unumber) 0 in (byte) print::i#0 ← (number) 0
|
Adding number conversion cast (unumber) 0 in (byte) print::i#0 ← (number) 0
|
||||||
|
Adding number conversion cast (unumber) 0 in (bool~) print::$0 ← (number) 0 != *((byte*) print::msg#2 + (byte) print::i#1)
|
||||||
Successful SSA optimization PassNAddNumberTypeConversions
|
Successful SSA optimization PassNAddNumberTypeConversions
|
||||||
Inlining cast (byte*) SCREEN#0 ← (byte*)(number) $400
|
Inlining cast (byte*) SCREEN#0 ← (byte*)(number) $400
|
||||||
Inlining cast (byte) idx#4 ← (unumber)(number) 0
|
Inlining cast (byte) idx#4 ← (unumber)(number) 0
|
||||||
@ -176,9 +178,11 @@ Successful SSA optimization Pass2InlineCast
|
|||||||
Simplifying constant pointer cast (byte*) 1024
|
Simplifying constant pointer cast (byte*) 1024
|
||||||
Simplifying constant integer cast 0
|
Simplifying constant integer cast 0
|
||||||
Simplifying constant integer cast 0
|
Simplifying constant integer cast 0
|
||||||
|
Simplifying constant integer cast 0
|
||||||
Successful SSA optimization PassNCastSimplification
|
Successful SSA optimization PassNCastSimplification
|
||||||
Finalized unsigned number type (byte) 0
|
Finalized unsigned number type (byte) 0
|
||||||
Finalized unsigned number type (byte) 0
|
Finalized unsigned number type (byte) 0
|
||||||
|
Finalized unsigned number type (byte) 0
|
||||||
Successful SSA optimization PassNFinalizeNumberTypeConversions
|
Successful SSA optimization PassNFinalizeNumberTypeConversions
|
||||||
Alias (void()*) do10::fn#0 = (void()*~) main::$0
|
Alias (void()*) do10::fn#0 = (void()*~) main::$0
|
||||||
Alias (void()*) do10::fn#1 = (void()*~) main::$2
|
Alias (void()*) do10::fn#1 = (void()*~) main::$2
|
||||||
@ -197,7 +201,7 @@ Successful SSA optimization Pass2IdenticalPhiElimination
|
|||||||
Identical Phi Values (byte) idx#15 (byte) idx#16
|
Identical Phi Values (byte) idx#15 (byte) idx#16
|
||||||
Successful SSA optimization Pass2IdenticalPhiElimination
|
Successful SSA optimization Pass2IdenticalPhiElimination
|
||||||
Simple Condition (bool~) do10::$1 [13] if((byte) do10::i#1!=rangelast(0,9)) goto do10::@1
|
Simple Condition (bool~) do10::$1 [13] if((byte) do10::i#1!=rangelast(0,9)) goto do10::@1
|
||||||
Simple Condition (bool~) print::$0 [40] if(*((byte*) print::msg#3 + (byte) print::i#1)!=(byte) '@') goto print::@1
|
Simple Condition (bool~) print::$0 [40] if((byte) 0!=*((byte*) print::msg#3 + (byte) print::i#1)) goto print::@1
|
||||||
Successful SSA optimization Pass2ConditionalJumpSimplification
|
Successful SSA optimization Pass2ConditionalJumpSimplification
|
||||||
Constant right-side identified [0] (void()*) do10::fn#0 ← & (void()) hello()
|
Constant right-side identified [0] (void()*) do10::fn#0 ← & (void()) hello()
|
||||||
Constant right-side identified [3] (void()*) do10::fn#1 ← & (void()) world()
|
Constant right-side identified [3] (void()*) do10::fn#1 ← & (void()) world()
|
||||||
@ -324,7 +328,7 @@ print::@1: scope:[print] from print print::@1
|
|||||||
[21] *((const byte*) SCREEN#0 + (byte) idx#11) ← *((byte*) print::msg#3 + (byte) print::i#2)
|
[21] *((const byte*) SCREEN#0 + (byte) idx#11) ← *((byte*) print::msg#3 + (byte) print::i#2)
|
||||||
[22] (byte) idx#12 ← ++ (byte) idx#11
|
[22] (byte) idx#12 ← ++ (byte) idx#11
|
||||||
[23] (byte) print::i#1 ← ++ (byte) print::i#2
|
[23] (byte) print::i#1 ← ++ (byte) print::i#2
|
||||||
[24] if(*((byte*) print::msg#3 + (byte) print::i#1)!=(byte) '@') goto print::@1
|
[24] if((byte) 0!=*((byte*) print::msg#3 + (byte) print::i#1)) goto print::@1
|
||||||
to:print::@return
|
to:print::@return
|
||||||
print::@return: scope:[print] from print::@1
|
print::@return: scope:[print] from print::@1
|
||||||
[25] return
|
[25] return
|
||||||
@ -522,10 +526,10 @@ print: {
|
|||||||
inc idx
|
inc idx
|
||||||
// [23] (byte) print::i#1 ← ++ (byte) print::i#2 -- vbuz1=_inc_vbuz1
|
// [23] (byte) print::i#1 ← ++ (byte) print::i#2 -- vbuz1=_inc_vbuz1
|
||||||
inc i
|
inc i
|
||||||
// [24] if(*((byte*) print::msg#3 + (byte) print::i#1)!=(byte) '@') goto print::@1 -- pbuz1_derefidx_vbuz2_neq_vbuc1_then_la1
|
// [24] if((byte) 0!=*((byte*) print::msg#3 + (byte) print::i#1)) goto print::@1 -- vbuc1_neq_pbuz1_derefidx_vbuz2_then_la1
|
||||||
ldy i
|
ldy i
|
||||||
lda (msg),y
|
lda (msg),y
|
||||||
cmp #'@'
|
cmp #0
|
||||||
bne b1_from_b1
|
bne b1_from_b1
|
||||||
jmp breturn
|
jmp breturn
|
||||||
// print::@return
|
// print::@return
|
||||||
@ -564,12 +568,12 @@ Statement [14] if((byte) do10::i#1!=(byte) $a) goto do10::@1 [ do10::fn#3 do10::
|
|||||||
Statement [21] *((const byte*) SCREEN#0 + (byte) idx#11) ← *((byte*) print::msg#3 + (byte) print::i#2) [ print::msg#3 print::i#2 idx#11 ] ( print:17 [ print::msg#3 print::i#2 idx#11 ] print:27 [ print::msg#3 print::i#2 idx#11 ] ) always clobbers reg byte a reg byte x
|
Statement [21] *((const byte*) SCREEN#0 + (byte) idx#11) ← *((byte*) print::msg#3 + (byte) print::i#2) [ print::msg#3 print::i#2 idx#11 ] ( print:17 [ print::msg#3 print::i#2 idx#11 ] print:27 [ print::msg#3 print::i#2 idx#11 ] ) always clobbers reg byte a reg byte x
|
||||||
Removing always clobbered register reg byte a as potential for zp ZP_BYTE:7 [ print::i#2 print::i#1 ]
|
Removing always clobbered register reg byte a as potential for zp ZP_BYTE:7 [ print::i#2 print::i#1 ]
|
||||||
Removing always clobbered register reg byte x as potential for zp ZP_BYTE:7 [ print::i#2 print::i#1 ]
|
Removing always clobbered register reg byte x as potential for zp ZP_BYTE:7 [ print::i#2 print::i#1 ]
|
||||||
Statement [24] if(*((byte*) print::msg#3 + (byte) print::i#1)!=(byte) '@') goto print::@1 [ print::msg#3 print::i#1 idx#12 ] ( print:17 [ print::msg#3 print::i#1 idx#12 ] print:27 [ print::msg#3 print::i#1 idx#12 ] ) always clobbers reg byte a
|
Statement [24] if((byte) 0!=*((byte*) print::msg#3 + (byte) print::i#1)) goto print::@1 [ print::msg#3 print::i#1 idx#12 ] ( print:17 [ print::msg#3 print::i#1 idx#12 ] print:27 [ print::msg#3 print::i#1 idx#12 ] ) always clobbers reg byte a
|
||||||
Statement [1] (byte) idx#16 ← (byte) 0 [ ] ( [ ] ) always clobbers reg byte a
|
Statement [1] (byte) idx#16 ← (byte) 0 [ ] ( [ ] ) always clobbers reg byte a
|
||||||
Statement [12] call *((void()*) do10::fn#3) [ do10::fn#3 do10::i#2 ] ( main:3::do10:6 [ do10::fn#3 do10::i#2 ] main:3::do10:8 [ do10::fn#3 do10::i#2 ] ) always clobbers reg byte a reg byte x reg byte y
|
Statement [12] call *((void()*) do10::fn#3) [ do10::fn#3 do10::i#2 ] ( main:3::do10:6 [ do10::fn#3 do10::i#2 ] main:3::do10:8 [ do10::fn#3 do10::i#2 ] ) always clobbers reg byte a reg byte x reg byte y
|
||||||
Statement [14] if((byte) do10::i#1!=(byte) $a) goto do10::@1 [ do10::fn#3 do10::i#1 ] ( main:3::do10:6 [ do10::fn#3 do10::i#1 ] main:3::do10:8 [ do10::fn#3 do10::i#1 ] ) always clobbers reg byte a
|
Statement [14] if((byte) do10::i#1!=(byte) $a) goto do10::@1 [ do10::fn#3 do10::i#1 ] ( main:3::do10:6 [ do10::fn#3 do10::i#1 ] main:3::do10:8 [ do10::fn#3 do10::i#1 ] ) always clobbers reg byte a
|
||||||
Statement [21] *((const byte*) SCREEN#0 + (byte) idx#11) ← *((byte*) print::msg#3 + (byte) print::i#2) [ print::msg#3 print::i#2 idx#11 ] ( print:17 [ print::msg#3 print::i#2 idx#11 ] print:27 [ print::msg#3 print::i#2 idx#11 ] ) always clobbers reg byte a reg byte x
|
Statement [21] *((const byte*) SCREEN#0 + (byte) idx#11) ← *((byte*) print::msg#3 + (byte) print::i#2) [ print::msg#3 print::i#2 idx#11 ] ( print:17 [ print::msg#3 print::i#2 idx#11 ] print:27 [ print::msg#3 print::i#2 idx#11 ] ) always clobbers reg byte a reg byte x
|
||||||
Statement [24] if(*((byte*) print::msg#3 + (byte) print::i#1)!=(byte) '@') goto print::@1 [ print::msg#3 print::i#1 idx#12 ] ( print:17 [ print::msg#3 print::i#1 idx#12 ] print:27 [ print::msg#3 print::i#1 idx#12 ] ) always clobbers reg byte a
|
Statement [24] if((byte) 0!=*((byte*) print::msg#3 + (byte) print::i#1)) goto print::@1 [ print::msg#3 print::i#1 idx#12 ] ( print:17 [ print::msg#3 print::i#1 idx#12 ] print:27 [ print::msg#3 print::i#1 idx#12 ] ) always clobbers reg byte a
|
||||||
Potential registers zp ZP_WORD:2 [ do10::fn#3 ] : zp ZP_WORD:2 ,
|
Potential registers zp ZP_WORD:2 [ do10::fn#3 ] : zp ZP_WORD:2 ,
|
||||||
Potential registers zp ZP_BYTE:4 [ do10::i#2 do10::i#1 ] : zp ZP_BYTE:4 ,
|
Potential registers zp ZP_BYTE:4 [ do10::i#2 do10::i#1 ] : zp ZP_BYTE:4 ,
|
||||||
Potential registers zp ZP_WORD:5 [ print::msg#3 ] : zp ZP_WORD:5 ,
|
Potential registers zp ZP_WORD:5 [ print::msg#3 ] : zp ZP_WORD:5 ,
|
||||||
@ -736,9 +740,9 @@ print: {
|
|||||||
inc idx
|
inc idx
|
||||||
// [23] (byte) print::i#1 ← ++ (byte) print::i#2 -- vbuyy=_inc_vbuyy
|
// [23] (byte) print::i#1 ← ++ (byte) print::i#2 -- vbuyy=_inc_vbuyy
|
||||||
iny
|
iny
|
||||||
// [24] if(*((byte*) print::msg#3 + (byte) print::i#1)!=(byte) '@') goto print::@1 -- pbuz1_derefidx_vbuyy_neq_vbuc1_then_la1
|
// [24] if((byte) 0!=*((byte*) print::msg#3 + (byte) print::i#1)) goto print::@1 -- vbuc1_neq_pbuz1_derefidx_vbuyy_then_la1
|
||||||
lda (msg),y
|
lda (msg),y
|
||||||
cmp #'@'
|
cmp #0
|
||||||
bne b1_from_b1
|
bne b1_from_b1
|
||||||
jmp breturn
|
jmp breturn
|
||||||
// print::@return
|
// print::@return
|
||||||
@ -980,10 +984,10 @@ print: {
|
|||||||
inc idx
|
inc idx
|
||||||
// [23] (byte) print::i#1 ← ++ (byte) print::i#2 -- vbuyy=_inc_vbuyy
|
// [23] (byte) print::i#1 ← ++ (byte) print::i#2 -- vbuyy=_inc_vbuyy
|
||||||
iny
|
iny
|
||||||
// while(msg[i]!='@')
|
// while(msg[i])
|
||||||
// [24] if(*((byte*) print::msg#3 + (byte) print::i#1)!=(byte) '@') goto print::@1 -- pbuz1_derefidx_vbuyy_neq_vbuc1_then_la1
|
// [24] if((byte) 0!=*((byte*) print::msg#3 + (byte) print::i#1)) goto print::@1 -- vbuc1_neq_pbuz1_derefidx_vbuyy_then_la1
|
||||||
lda (msg),y
|
lda (msg),y
|
||||||
cmp #'@'
|
cmp #0
|
||||||
bne b1
|
bne b1
|
||||||
// print::@return
|
// print::@return
|
||||||
// }
|
// }
|
||||||
|
@ -33,8 +33,10 @@ hello: {
|
|||||||
sta SCREEN,y
|
sta SCREEN,y
|
||||||
inc idx
|
inc idx
|
||||||
inx
|
inx
|
||||||
lda msg,x
|
txa
|
||||||
cmp #'@'
|
tay
|
||||||
|
lda #0
|
||||||
|
cmp msg,y
|
||||||
bne b1
|
bne b1
|
||||||
rts
|
rts
|
||||||
}
|
}
|
||||||
|
@ -38,7 +38,7 @@ hello::@1: scope:[hello] from hello hello::@1
|
|||||||
[16] *((const byte*) SCREEN#0 + (byte) idx#3) ← *((const byte[]) msg#0 + (byte) hello::i#2)
|
[16] *((const byte*) SCREEN#0 + (byte) idx#3) ← *((const byte[]) msg#0 + (byte) hello::i#2)
|
||||||
[17] (byte) idx#1 ← ++ (byte) idx#3
|
[17] (byte) idx#1 ← ++ (byte) idx#3
|
||||||
[18] (byte) hello::i#1 ← ++ (byte) hello::i#2
|
[18] (byte) hello::i#1 ← ++ (byte) hello::i#2
|
||||||
[19] if(*((const byte[]) msg#0 + (byte) hello::i#1)!=(byte) '@') goto hello::@1
|
[19] if((byte) 0!=*((const byte[]) msg#0 + (byte) hello::i#1)) goto hello::@1
|
||||||
to:hello::@return
|
to:hello::@return
|
||||||
hello::@return: scope:[hello] from hello::@1
|
hello::@return: scope:[hello] from hello::@1
|
||||||
[20] return
|
[20] return
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
Resolved forward reference hello to (void()) hello()
|
Resolved forward reference hello to (void()) hello()
|
||||||
|
Warning! Adding boolean cast to non-boolean condition *((byte[]) msg + (byte) hello::i)
|
||||||
Culled Empty Block (label) @1
|
Culled Empty Block (label) @1
|
||||||
Culled Empty Block (label) do10::@2
|
Culled Empty Block (label) do10::@2
|
||||||
Culled Empty Block (label) hello::@2
|
Culled Empty Block (label) hello::@2
|
||||||
@ -47,7 +48,7 @@ hello::@1: scope:[hello] from hello hello::@1
|
|||||||
*((byte*) SCREEN#0 + (byte) idx#3) ← *((byte[]) msg#0 + (byte) hello::i#2)
|
*((byte*) SCREEN#0 + (byte) idx#3) ← *((byte[]) msg#0 + (byte) hello::i#2)
|
||||||
(byte) idx#1 ← ++ (byte) idx#3
|
(byte) idx#1 ← ++ (byte) idx#3
|
||||||
(byte) hello::i#1 ← ++ (byte) hello::i#2
|
(byte) hello::i#1 ← ++ (byte) hello::i#2
|
||||||
(bool~) hello::$0 ← *((byte[]) msg#0 + (byte) hello::i#1) != (byte) '@'
|
(bool~) hello::$0 ← (number) 0 != *((byte[]) msg#0 + (byte) hello::i#1)
|
||||||
if((bool~) hello::$0) goto hello::@1
|
if((bool~) hello::$0) goto hello::@1
|
||||||
to:hello::@return
|
to:hello::@return
|
||||||
hello::@return: scope:[hello] from hello::@1
|
hello::@return: scope:[hello] from hello::@1
|
||||||
@ -111,6 +112,7 @@ SYMBOL TABLE SSA
|
|||||||
|
|
||||||
Adding number conversion cast (unumber) 0 in (byte) idx#0 ← (number) 0
|
Adding number conversion cast (unumber) 0 in (byte) idx#0 ← (number) 0
|
||||||
Adding number conversion cast (unumber) 0 in (byte) hello::i#0 ← (number) 0
|
Adding number conversion cast (unumber) 0 in (byte) hello::i#0 ← (number) 0
|
||||||
|
Adding number conversion cast (unumber) 0 in (bool~) hello::$0 ← (number) 0 != *((byte[]) msg#0 + (byte) hello::i#1)
|
||||||
Successful SSA optimization PassNAddNumberTypeConversions
|
Successful SSA optimization PassNAddNumberTypeConversions
|
||||||
Inlining cast (byte*) SCREEN#0 ← (byte*)(number) $400
|
Inlining cast (byte*) SCREEN#0 ← (byte*)(number) $400
|
||||||
Inlining cast (byte) idx#0 ← (unumber)(number) 0
|
Inlining cast (byte) idx#0 ← (unumber)(number) 0
|
||||||
@ -119,9 +121,11 @@ Successful SSA optimization Pass2InlineCast
|
|||||||
Simplifying constant pointer cast (byte*) 1024
|
Simplifying constant pointer cast (byte*) 1024
|
||||||
Simplifying constant integer cast 0
|
Simplifying constant integer cast 0
|
||||||
Simplifying constant integer cast 0
|
Simplifying constant integer cast 0
|
||||||
|
Simplifying constant integer cast 0
|
||||||
Successful SSA optimization PassNCastSimplification
|
Successful SSA optimization PassNCastSimplification
|
||||||
Finalized unsigned number type (byte) 0
|
Finalized unsigned number type (byte) 0
|
||||||
Finalized unsigned number type (byte) 0
|
Finalized unsigned number type (byte) 0
|
||||||
|
Finalized unsigned number type (byte) 0
|
||||||
Successful SSA optimization PassNFinalizeNumberTypeConversions
|
Successful SSA optimization PassNFinalizeNumberTypeConversions
|
||||||
Alias (void()*) main::f#0 = (void()*~) main::$0
|
Alias (void()*) main::f#0 = (void()*~) main::$0
|
||||||
Alias (byte) idx#1 = (byte) idx#4 (byte) idx#2
|
Alias (byte) idx#1 = (byte) idx#4 (byte) idx#2
|
||||||
@ -132,7 +136,7 @@ Identical Phi Values (void()*) do10::fn#1 (void()*) do10::fn#2
|
|||||||
Identical Phi Values (byte) idx#5 (byte) idx#0
|
Identical Phi Values (byte) idx#5 (byte) idx#0
|
||||||
Successful SSA optimization Pass2IdenticalPhiElimination
|
Successful SSA optimization Pass2IdenticalPhiElimination
|
||||||
Simple Condition (bool~) do10::$1 [11] if((byte) do10::i#1!=rangelast(0,9)) goto do10::@1
|
Simple Condition (bool~) do10::$1 [11] if((byte) do10::i#1!=rangelast(0,9)) goto do10::@1
|
||||||
Simple Condition (bool~) hello::$0 [23] if(*((byte[]) msg#0 + (byte) hello::i#1)!=(byte) '@') goto hello::@1
|
Simple Condition (bool~) hello::$0 [23] if((byte) 0!=*((byte[]) msg#0 + (byte) hello::i#1)) goto hello::@1
|
||||||
Successful SSA optimization Pass2ConditionalJumpSimplification
|
Successful SSA optimization Pass2ConditionalJumpSimplification
|
||||||
Constant right-side identified [0] (void()*) main::f#0 ← & (void()) hello()
|
Constant right-side identified [0] (void()*) main::f#0 ← & (void()) hello()
|
||||||
Successful SSA optimization Pass2ConstantRValueConsolidation
|
Successful SSA optimization Pass2ConstantRValueConsolidation
|
||||||
@ -237,7 +241,7 @@ hello::@1: scope:[hello] from hello hello::@1
|
|||||||
[16] *((const byte*) SCREEN#0 + (byte) idx#3) ← *((const byte[]) msg#0 + (byte) hello::i#2)
|
[16] *((const byte*) SCREEN#0 + (byte) idx#3) ← *((const byte[]) msg#0 + (byte) hello::i#2)
|
||||||
[17] (byte) idx#1 ← ++ (byte) idx#3
|
[17] (byte) idx#1 ← ++ (byte) idx#3
|
||||||
[18] (byte) hello::i#1 ← ++ (byte) hello::i#2
|
[18] (byte) hello::i#1 ← ++ (byte) hello::i#2
|
||||||
[19] if(*((const byte[]) msg#0 + (byte) hello::i#1)!=(byte) '@') goto hello::@1
|
[19] if((byte) 0!=*((const byte[]) msg#0 + (byte) hello::i#1)) goto hello::@1
|
||||||
to:hello::@return
|
to:hello::@return
|
||||||
hello::@return: scope:[hello] from hello::@1
|
hello::@return: scope:[hello] from hello::@1
|
||||||
[20] return
|
[20] return
|
||||||
@ -378,8 +382,8 @@ hello: {
|
|||||||
inc idx
|
inc idx
|
||||||
// [18] (byte) hello::i#1 ← ++ (byte) hello::i#2 -- vbuz1=_inc_vbuz1
|
// [18] (byte) hello::i#1 ← ++ (byte) hello::i#2 -- vbuz1=_inc_vbuz1
|
||||||
inc i
|
inc i
|
||||||
// [19] if(*((const byte[]) msg#0 + (byte) hello::i#1)!=(byte) '@') goto hello::@1 -- pbuc1_derefidx_vbuz1_neq_vbuc2_then_la1
|
// [19] if((byte) 0!=*((const byte[]) msg#0 + (byte) hello::i#1)) goto hello::@1 -- vbuc1_neq_pbuc2_derefidx_vbuz1_then_la1
|
||||||
lda #'@'
|
lda #0
|
||||||
ldy i
|
ldy i
|
||||||
cmp msg,y
|
cmp msg,y
|
||||||
bne b1_from_b1
|
bne b1_from_b1
|
||||||
@ -400,10 +404,10 @@ Removing always clobbered register reg byte a as potential for zp ZP_BYTE:2 [ do
|
|||||||
Removing always clobbered register reg byte y as potential for zp ZP_BYTE:2 [ do10::i#2 do10::i#1 ]
|
Removing always clobbered register reg byte y as potential for zp ZP_BYTE:2 [ do10::i#2 do10::i#1 ]
|
||||||
Removing always clobbered register reg byte a as potential for zp ZP_BYTE:3 [ hello::i#2 hello::i#1 ]
|
Removing always clobbered register reg byte a as potential for zp ZP_BYTE:3 [ hello::i#2 hello::i#1 ]
|
||||||
Removing always clobbered register reg byte y as potential for zp ZP_BYTE:3 [ hello::i#2 hello::i#1 ]
|
Removing always clobbered register reg byte y as potential for zp ZP_BYTE:3 [ hello::i#2 hello::i#1 ]
|
||||||
Statement [19] if(*((const byte[]) msg#0 + (byte) hello::i#1)!=(byte) '@') goto hello::@1 [ idx#0 hello::i#1 idx#1 ] ( main:3::do10:6::hello:10 [ do10::i#2 idx#0 hello::i#1 idx#1 ] ) always clobbers reg byte a
|
Statement [19] if((byte) 0!=*((const byte[]) msg#0 + (byte) hello::i#1)) goto hello::@1 [ idx#0 hello::i#1 idx#1 ] ( main:3::do10:6::hello:10 [ do10::i#2 idx#0 hello::i#1 idx#1 ] ) always clobbers reg byte a reg byte y
|
||||||
Statement [1] (byte) idx#0 ← (byte) 0 [ idx#0 ] ( [ idx#0 ] ) always clobbers reg byte a
|
Statement [1] (byte) idx#0 ← (byte) 0 [ idx#0 ] ( [ idx#0 ] ) always clobbers reg byte a
|
||||||
Statement [16] *((const byte*) SCREEN#0 + (byte) idx#3) ← *((const byte[]) msg#0 + (byte) hello::i#2) [ idx#0 hello::i#2 idx#3 ] ( main:3::do10:6::hello:10 [ do10::i#2 idx#0 hello::i#2 idx#3 ] ) always clobbers reg byte a reg byte y
|
Statement [16] *((const byte*) SCREEN#0 + (byte) idx#3) ← *((const byte[]) msg#0 + (byte) hello::i#2) [ idx#0 hello::i#2 idx#3 ] ( main:3::do10:6::hello:10 [ do10::i#2 idx#0 hello::i#2 idx#3 ] ) always clobbers reg byte a reg byte y
|
||||||
Statement [19] if(*((const byte[]) msg#0 + (byte) hello::i#1)!=(byte) '@') goto hello::@1 [ idx#0 hello::i#1 idx#1 ] ( main:3::do10:6::hello:10 [ do10::i#2 idx#0 hello::i#1 idx#1 ] ) always clobbers reg byte a
|
Statement [19] if((byte) 0!=*((const byte[]) msg#0 + (byte) hello::i#1)) goto hello::@1 [ idx#0 hello::i#1 idx#1 ] ( main:3::do10:6::hello:10 [ do10::i#2 idx#0 hello::i#1 idx#1 ] ) always clobbers reg byte a reg byte y
|
||||||
Potential registers zp ZP_BYTE:2 [ do10::i#2 do10::i#1 ] : zp ZP_BYTE:2 , reg byte x ,
|
Potential registers zp ZP_BYTE:2 [ do10::i#2 do10::i#1 ] : zp ZP_BYTE:2 , reg byte x ,
|
||||||
Potential registers zp ZP_BYTE:3 [ hello::i#2 hello::i#1 ] : zp ZP_BYTE:3 , reg byte x ,
|
Potential registers zp ZP_BYTE:3 [ hello::i#2 hello::i#1 ] : zp ZP_BYTE:3 , reg byte x ,
|
||||||
Potential registers zp ZP_BYTE:4 [ idx#0 idx#3 idx#7 idx#1 ] : zp ZP_BYTE:4 ,
|
Potential registers zp ZP_BYTE:4 [ idx#0 idx#3 idx#7 idx#1 ] : zp ZP_BYTE:4 ,
|
||||||
@ -414,14 +418,14 @@ Uplift Scope [] 224.1: zp ZP_BYTE:4 [ idx#0 idx#3 idx#7 idx#1 ]
|
|||||||
Uplift Scope [do10] 27.5: zp ZP_BYTE:2 [ do10::i#2 do10::i#1 ]
|
Uplift Scope [do10] 27.5: zp ZP_BYTE:2 [ do10::i#2 do10::i#1 ]
|
||||||
Uplift Scope [main]
|
Uplift Scope [main]
|
||||||
|
|
||||||
Uplifting [hello] best 4349 combination reg byte x [ hello::i#2 hello::i#1 ]
|
Uplifting [hello] best 4749 combination reg byte x [ hello::i#2 hello::i#1 ]
|
||||||
Uplifting [] best 4349 combination zp ZP_BYTE:4 [ idx#0 idx#3 idx#7 idx#1 ]
|
Uplifting [] best 4749 combination zp ZP_BYTE:4 [ idx#0 idx#3 idx#7 idx#1 ]
|
||||||
Uplifting [do10] best 4349 combination zp ZP_BYTE:2 [ do10::i#2 do10::i#1 ]
|
Uplifting [do10] best 4749 combination zp ZP_BYTE:2 [ do10::i#2 do10::i#1 ]
|
||||||
Uplifting [main] best 4349 combination
|
Uplifting [main] best 4749 combination
|
||||||
Attempting to uplift remaining variables inzp ZP_BYTE:4 [ idx#0 idx#3 idx#7 idx#1 ]
|
Attempting to uplift remaining variables inzp ZP_BYTE:4 [ idx#0 idx#3 idx#7 idx#1 ]
|
||||||
Uplifting [] best 4349 combination zp ZP_BYTE:4 [ idx#0 idx#3 idx#7 idx#1 ]
|
Uplifting [] best 4749 combination zp ZP_BYTE:4 [ idx#0 idx#3 idx#7 idx#1 ]
|
||||||
Attempting to uplift remaining variables inzp ZP_BYTE:2 [ do10::i#2 do10::i#1 ]
|
Attempting to uplift remaining variables inzp ZP_BYTE:2 [ do10::i#2 do10::i#1 ]
|
||||||
Uplifting [do10] best 4349 combination zp ZP_BYTE:2 [ do10::i#2 do10::i#1 ]
|
Uplifting [do10] best 4749 combination zp ZP_BYTE:2 [ do10::i#2 do10::i#1 ]
|
||||||
Allocated (was zp ZP_BYTE:4) zp ZP_BYTE:3 [ idx#0 idx#3 idx#7 idx#1 ]
|
Allocated (was zp ZP_BYTE:4) zp ZP_BYTE:3 [ idx#0 idx#3 idx#7 idx#1 ]
|
||||||
|
|
||||||
ASSEMBLER BEFORE OPTIMIZATION
|
ASSEMBLER BEFORE OPTIMIZATION
|
||||||
@ -521,9 +525,11 @@ hello: {
|
|||||||
inc idx
|
inc idx
|
||||||
// [18] (byte) hello::i#1 ← ++ (byte) hello::i#2 -- vbuxx=_inc_vbuxx
|
// [18] (byte) hello::i#1 ← ++ (byte) hello::i#2 -- vbuxx=_inc_vbuxx
|
||||||
inx
|
inx
|
||||||
// [19] if(*((const byte[]) msg#0 + (byte) hello::i#1)!=(byte) '@') goto hello::@1 -- pbuc1_derefidx_vbuxx_neq_vbuc2_then_la1
|
// [19] if((byte) 0!=*((const byte[]) msg#0 + (byte) hello::i#1)) goto hello::@1 -- vbuc1_neq_pbuc2_derefidx_vbuxx_then_la1
|
||||||
lda msg,x
|
txa
|
||||||
cmp #'@'
|
tay
|
||||||
|
lda #0
|
||||||
|
cmp msg,y
|
||||||
bne b1_from_b1
|
bne b1_from_b1
|
||||||
jmp breturn
|
jmp breturn
|
||||||
// hello::@return
|
// hello::@return
|
||||||
@ -606,7 +612,7 @@ zp ZP_BYTE:3 [ idx#0 idx#3 idx#7 idx#1 ]
|
|||||||
|
|
||||||
|
|
||||||
FINAL ASSEMBLER
|
FINAL ASSEMBLER
|
||||||
Score: 3326
|
Score: 3726
|
||||||
|
|
||||||
// File Comments
|
// File Comments
|
||||||
// Tests calling into a function pointer with local variables
|
// Tests calling into a function pointer with local variables
|
||||||
@ -691,10 +697,12 @@ hello: {
|
|||||||
inc idx
|
inc idx
|
||||||
// [18] (byte) hello::i#1 ← ++ (byte) hello::i#2 -- vbuxx=_inc_vbuxx
|
// [18] (byte) hello::i#1 ← ++ (byte) hello::i#2 -- vbuxx=_inc_vbuxx
|
||||||
inx
|
inx
|
||||||
// while(msg[i]!='@')
|
// while(msg[i])
|
||||||
// [19] if(*((const byte[]) msg#0 + (byte) hello::i#1)!=(byte) '@') goto hello::@1 -- pbuc1_derefidx_vbuxx_neq_vbuc2_then_la1
|
// [19] if((byte) 0!=*((const byte[]) msg#0 + (byte) hello::i#1)) goto hello::@1 -- vbuc1_neq_pbuc2_derefidx_vbuxx_then_la1
|
||||||
lda msg,x
|
txa
|
||||||
cmp #'@'
|
tay
|
||||||
|
lda #0
|
||||||
|
cmp msg,y
|
||||||
bne b1
|
bne b1
|
||||||
// hello::@return
|
// hello::@return
|
||||||
// }
|
// }
|
||||||
|
@ -46,7 +46,7 @@ hello: {
|
|||||||
inc idx
|
inc idx
|
||||||
iny
|
iny
|
||||||
lda (msg),y
|
lda (msg),y
|
||||||
cmp #'@'
|
cmp #0
|
||||||
bne b1
|
bne b1
|
||||||
rts
|
rts
|
||||||
}
|
}
|
||||||
|
@ -43,7 +43,7 @@ hello::@1: scope:[hello] from hello hello::@1
|
|||||||
[19] *((const byte*) SCREEN#0 + (byte) idx#3) ← *((byte*) msg#10 + (byte) hello::i#2)
|
[19] *((const byte*) SCREEN#0 + (byte) idx#3) ← *((byte*) msg#10 + (byte) hello::i#2)
|
||||||
[20] (byte) idx#1 ← ++ (byte) idx#3
|
[20] (byte) idx#1 ← ++ (byte) idx#3
|
||||||
[21] (byte) hello::i#1 ← ++ (byte) hello::i#2
|
[21] (byte) hello::i#1 ← ++ (byte) hello::i#2
|
||||||
[22] if(*((byte*) msg#10 + (byte) hello::i#1)!=(byte) '@') goto hello::@1
|
[22] if((byte) 0!=*((byte*) msg#10 + (byte) hello::i#1)) goto hello::@1
|
||||||
to:hello::@return
|
to:hello::@return
|
||||||
hello::@return: scope:[hello] from hello::@1
|
hello::@return: scope:[hello] from hello::@1
|
||||||
[23] return
|
[23] return
|
||||||
|
@ -3,6 +3,7 @@ Resolved forward reference msg1 to (byte[]) msg1
|
|||||||
Resolved forward reference msg to (byte*) msg
|
Resolved forward reference msg to (byte*) msg
|
||||||
Resolved forward reference msg2 to (byte[]) msg2
|
Resolved forward reference msg2 to (byte[]) msg2
|
||||||
Resolved forward reference msg to (byte*) msg
|
Resolved forward reference msg to (byte*) msg
|
||||||
|
Warning! Adding boolean cast to non-boolean condition *((byte*) msg + (byte) hello::i)
|
||||||
Culled Empty Block (label) @1
|
Culled Empty Block (label) @1
|
||||||
Culled Empty Block (label) do10::@2
|
Culled Empty Block (label) do10::@2
|
||||||
Culled Empty Block (label) hello::@2
|
Culled Empty Block (label) hello::@2
|
||||||
@ -65,7 +66,7 @@ hello::@1: scope:[hello] from hello hello::@1
|
|||||||
*((byte*) SCREEN#0 + (byte) idx#3) ← *((byte*) msg#6 + (byte) hello::i#2)
|
*((byte*) SCREEN#0 + (byte) idx#3) ← *((byte*) msg#6 + (byte) hello::i#2)
|
||||||
(byte) idx#1 ← ++ (byte) idx#3
|
(byte) idx#1 ← ++ (byte) idx#3
|
||||||
(byte) hello::i#1 ← ++ (byte) hello::i#2
|
(byte) hello::i#1 ← ++ (byte) hello::i#2
|
||||||
(bool~) hello::$0 ← *((byte*) msg#6 + (byte) hello::i#1) != (byte) '@'
|
(bool~) hello::$0 ← (number) 0 != *((byte*) msg#6 + (byte) hello::i#1)
|
||||||
if((bool~) hello::$0) goto hello::@1
|
if((bool~) hello::$0) goto hello::@1
|
||||||
to:hello::@return
|
to:hello::@return
|
||||||
hello::@return: scope:[hello] from hello::@1
|
hello::@return: scope:[hello] from hello::@1
|
||||||
@ -150,6 +151,7 @@ SYMBOL TABLE SSA
|
|||||||
|
|
||||||
Adding number conversion cast (unumber) 0 in (byte) idx#0 ← (number) 0
|
Adding number conversion cast (unumber) 0 in (byte) idx#0 ← (number) 0
|
||||||
Adding number conversion cast (unumber) 0 in (byte) hello::i#0 ← (number) 0
|
Adding number conversion cast (unumber) 0 in (byte) hello::i#0 ← (number) 0
|
||||||
|
Adding number conversion cast (unumber) 0 in (bool~) hello::$0 ← (number) 0 != *((byte*) msg#6 + (byte) hello::i#1)
|
||||||
Successful SSA optimization PassNAddNumberTypeConversions
|
Successful SSA optimization PassNAddNumberTypeConversions
|
||||||
Inlining cast (byte*) SCREEN#0 ← (byte*)(number) $400
|
Inlining cast (byte*) SCREEN#0 ← (byte*)(number) $400
|
||||||
Inlining cast (byte) idx#0 ← (unumber)(number) 0
|
Inlining cast (byte) idx#0 ← (unumber)(number) 0
|
||||||
@ -158,9 +160,11 @@ Successful SSA optimization Pass2InlineCast
|
|||||||
Simplifying constant pointer cast (byte*) 1024
|
Simplifying constant pointer cast (byte*) 1024
|
||||||
Simplifying constant integer cast 0
|
Simplifying constant integer cast 0
|
||||||
Simplifying constant integer cast 0
|
Simplifying constant integer cast 0
|
||||||
|
Simplifying constant integer cast 0
|
||||||
Successful SSA optimization PassNCastSimplification
|
Successful SSA optimization PassNCastSimplification
|
||||||
Finalized unsigned number type (byte) 0
|
Finalized unsigned number type (byte) 0
|
||||||
Finalized unsigned number type (byte) 0
|
Finalized unsigned number type (byte) 0
|
||||||
|
Finalized unsigned number type (byte) 0
|
||||||
Successful SSA optimization PassNFinalizeNumberTypeConversions
|
Successful SSA optimization PassNFinalizeNumberTypeConversions
|
||||||
Alias (void()*) main::f#0 = (void()*~) main::$0 (void()*) main::f#1
|
Alias (void()*) main::f#0 = (void()*~) main::$0 (void()*) main::f#1
|
||||||
Alias (byte*) msg#1 = (byte*) msg#8 (byte*) msg#5 (byte*) msg#2
|
Alias (byte*) msg#1 = (byte*) msg#8 (byte*) msg#5 (byte*) msg#2
|
||||||
@ -176,7 +180,7 @@ Identical Phi Values (byte*) msg#6 (byte*) msg#9
|
|||||||
Identical Phi Values (byte*) msg#4 (byte*) msg#1
|
Identical Phi Values (byte*) msg#4 (byte*) msg#1
|
||||||
Successful SSA optimization Pass2IdenticalPhiElimination
|
Successful SSA optimization Pass2IdenticalPhiElimination
|
||||||
Simple Condition (bool~) do10::$1 [19] if((byte) do10::i#1!=rangelast(0,9)) goto do10::@1
|
Simple Condition (bool~) do10::$1 [19] if((byte) do10::i#1!=rangelast(0,9)) goto do10::@1
|
||||||
Simple Condition (bool~) hello::$0 [33] if(*((byte*) msg#10 + (byte) hello::i#1)!=(byte) '@') goto hello::@1
|
Simple Condition (bool~) hello::$0 [33] if((byte) 0!=*((byte*) msg#10 + (byte) hello::i#1)) goto hello::@1
|
||||||
Successful SSA optimization Pass2ConditionalJumpSimplification
|
Successful SSA optimization Pass2ConditionalJumpSimplification
|
||||||
Constant right-side identified [0] (void()*) main::f#0 ← & (void()) hello()
|
Constant right-side identified [0] (void()*) main::f#0 ← & (void()) hello()
|
||||||
Successful SSA optimization Pass2ConstantRValueConsolidation
|
Successful SSA optimization Pass2ConstantRValueConsolidation
|
||||||
@ -291,7 +295,7 @@ hello::@1: scope:[hello] from hello hello::@1
|
|||||||
[19] *((const byte*) SCREEN#0 + (byte) idx#3) ← *((byte*) msg#10 + (byte) hello::i#2)
|
[19] *((const byte*) SCREEN#0 + (byte) idx#3) ← *((byte*) msg#10 + (byte) hello::i#2)
|
||||||
[20] (byte) idx#1 ← ++ (byte) idx#3
|
[20] (byte) idx#1 ← ++ (byte) idx#3
|
||||||
[21] (byte) hello::i#1 ← ++ (byte) hello::i#2
|
[21] (byte) hello::i#1 ← ++ (byte) hello::i#2
|
||||||
[22] if(*((byte*) msg#10 + (byte) hello::i#1)!=(byte) '@') goto hello::@1
|
[22] if((byte) 0!=*((byte*) msg#10 + (byte) hello::i#1)) goto hello::@1
|
||||||
to:hello::@return
|
to:hello::@return
|
||||||
hello::@return: scope:[hello] from hello::@1
|
hello::@return: scope:[hello] from hello::@1
|
||||||
[23] return
|
[23] return
|
||||||
@ -462,10 +466,10 @@ hello: {
|
|||||||
inc idx
|
inc idx
|
||||||
// [21] (byte) hello::i#1 ← ++ (byte) hello::i#2 -- vbuz1=_inc_vbuz1
|
// [21] (byte) hello::i#1 ← ++ (byte) hello::i#2 -- vbuz1=_inc_vbuz1
|
||||||
inc i
|
inc i
|
||||||
// [22] if(*((byte*) msg#10 + (byte) hello::i#1)!=(byte) '@') goto hello::@1 -- pbuz1_derefidx_vbuz2_neq_vbuc1_then_la1
|
// [22] if((byte) 0!=*((byte*) msg#10 + (byte) hello::i#1)) goto hello::@1 -- vbuc1_neq_pbuz1_derefidx_vbuz2_then_la1
|
||||||
ldy i
|
ldy i
|
||||||
lda (msg),y
|
lda (msg),y
|
||||||
cmp #'@'
|
cmp #0
|
||||||
bne b1_from_b1
|
bne b1_from_b1
|
||||||
jmp breturn
|
jmp breturn
|
||||||
// hello::@return
|
// hello::@return
|
||||||
@ -489,13 +493,13 @@ Removing always clobbered register reg byte a as potential for zp ZP_BYTE:2 [ do
|
|||||||
Removing always clobbered register reg byte x as potential for zp ZP_BYTE:2 [ do10::i#2 do10::i#1 ]
|
Removing always clobbered register reg byte x as potential for zp ZP_BYTE:2 [ do10::i#2 do10::i#1 ]
|
||||||
Removing always clobbered register reg byte a as potential for zp ZP_BYTE:3 [ hello::i#2 hello::i#1 ]
|
Removing always clobbered register reg byte a as potential for zp ZP_BYTE:3 [ hello::i#2 hello::i#1 ]
|
||||||
Removing always clobbered register reg byte x as potential for zp ZP_BYTE:3 [ hello::i#2 hello::i#1 ]
|
Removing always clobbered register reg byte x as potential for zp ZP_BYTE:3 [ hello::i#2 hello::i#1 ]
|
||||||
Statement [22] if(*((byte*) msg#10 + (byte) hello::i#1)!=(byte) '@') goto hello::@1 [ msg#10 idx#0 hello::i#1 idx#1 ] ( main:4::do10:7::hello:13 [ do10::i#2 msg#10 idx#0 hello::i#1 idx#1 ] main:4::do10:9::hello:13 [ do10::i#2 msg#10 idx#0 hello::i#1 idx#1 ] ) always clobbers reg byte a
|
Statement [22] if((byte) 0!=*((byte*) msg#10 + (byte) hello::i#1)) goto hello::@1 [ msg#10 idx#0 hello::i#1 idx#1 ] ( main:4::do10:7::hello:13 [ do10::i#2 msg#10 idx#0 hello::i#1 idx#1 ] main:4::do10:9::hello:13 [ do10::i#2 msg#10 idx#0 hello::i#1 idx#1 ] ) always clobbers reg byte a
|
||||||
Statement [1] (byte*) msg#10 ← (byte*) 0 [ msg#10 ] ( [ msg#10 ] ) always clobbers reg byte a
|
Statement [1] (byte*) msg#10 ← (byte*) 0 [ msg#10 ] ( [ msg#10 ] ) always clobbers reg byte a
|
||||||
Statement [2] (byte) idx#0 ← (byte) 0 [ msg#10 idx#0 ] ( [ msg#10 idx#0 ] ) always clobbers reg byte a
|
Statement [2] (byte) idx#0 ← (byte) 0 [ msg#10 idx#0 ] ( [ msg#10 idx#0 ] ) always clobbers reg byte a
|
||||||
Statement [6] (byte*) msg#0 ← (const byte[]) msg1#0 [ msg#10 idx#0 ] ( main:4 [ msg#10 idx#0 ] ) always clobbers reg byte a
|
Statement [6] (byte*) msg#0 ← (const byte[]) msg1#0 [ msg#10 idx#0 ] ( main:4 [ msg#10 idx#0 ] ) always clobbers reg byte a
|
||||||
Statement [8] (byte*) msg#1 ← (const byte[]) msg2#0 [ msg#10 idx#0 ] ( main:4 [ msg#10 idx#0 ] ) always clobbers reg byte a
|
Statement [8] (byte*) msg#1 ← (const byte[]) msg2#0 [ msg#10 idx#0 ] ( main:4 [ msg#10 idx#0 ] ) always clobbers reg byte a
|
||||||
Statement [19] *((const byte*) SCREEN#0 + (byte) idx#3) ← *((byte*) msg#10 + (byte) hello::i#2) [ msg#10 idx#0 hello::i#2 idx#3 ] ( main:4::do10:7::hello:13 [ do10::i#2 msg#10 idx#0 hello::i#2 idx#3 ] main:4::do10:9::hello:13 [ do10::i#2 msg#10 idx#0 hello::i#2 idx#3 ] ) always clobbers reg byte a reg byte x
|
Statement [19] *((const byte*) SCREEN#0 + (byte) idx#3) ← *((byte*) msg#10 + (byte) hello::i#2) [ msg#10 idx#0 hello::i#2 idx#3 ] ( main:4::do10:7::hello:13 [ do10::i#2 msg#10 idx#0 hello::i#2 idx#3 ] main:4::do10:9::hello:13 [ do10::i#2 msg#10 idx#0 hello::i#2 idx#3 ] ) always clobbers reg byte a reg byte x
|
||||||
Statement [22] if(*((byte*) msg#10 + (byte) hello::i#1)!=(byte) '@') goto hello::@1 [ msg#10 idx#0 hello::i#1 idx#1 ] ( main:4::do10:7::hello:13 [ do10::i#2 msg#10 idx#0 hello::i#1 idx#1 ] main:4::do10:9::hello:13 [ do10::i#2 msg#10 idx#0 hello::i#1 idx#1 ] ) always clobbers reg byte a
|
Statement [22] if((byte) 0!=*((byte*) msg#10 + (byte) hello::i#1)) goto hello::@1 [ msg#10 idx#0 hello::i#1 idx#1 ] ( main:4::do10:7::hello:13 [ do10::i#2 msg#10 idx#0 hello::i#1 idx#1 ] main:4::do10:9::hello:13 [ do10::i#2 msg#10 idx#0 hello::i#1 idx#1 ] ) always clobbers reg byte a
|
||||||
Potential registers zp ZP_BYTE:2 [ do10::i#2 do10::i#1 ] : zp ZP_BYTE:2 , reg byte y ,
|
Potential registers zp ZP_BYTE:2 [ do10::i#2 do10::i#1 ] : zp ZP_BYTE:2 , reg byte y ,
|
||||||
Potential registers zp ZP_BYTE:3 [ hello::i#2 hello::i#1 ] : zp ZP_BYTE:3 , reg byte y ,
|
Potential registers zp ZP_BYTE:3 [ hello::i#2 hello::i#1 ] : zp ZP_BYTE:3 , reg byte y ,
|
||||||
Potential registers zp ZP_WORD:4 [ msg#0 msg#1 msg#10 ] : zp ZP_WORD:4 ,
|
Potential registers zp ZP_WORD:4 [ msg#0 msg#1 msg#10 ] : zp ZP_WORD:4 ,
|
||||||
@ -636,9 +640,9 @@ hello: {
|
|||||||
inc idx
|
inc idx
|
||||||
// [21] (byte) hello::i#1 ← ++ (byte) hello::i#2 -- vbuyy=_inc_vbuyy
|
// [21] (byte) hello::i#1 ← ++ (byte) hello::i#2 -- vbuyy=_inc_vbuyy
|
||||||
iny
|
iny
|
||||||
// [22] if(*((byte*) msg#10 + (byte) hello::i#1)!=(byte) '@') goto hello::@1 -- pbuz1_derefidx_vbuyy_neq_vbuc1_then_la1
|
// [22] if((byte) 0!=*((byte*) msg#10 + (byte) hello::i#1)) goto hello::@1 -- vbuc1_neq_pbuz1_derefidx_vbuyy_then_la1
|
||||||
lda (msg),y
|
lda (msg),y
|
||||||
cmp #'@'
|
cmp #0
|
||||||
bne b1_from_b1
|
bne b1_from_b1
|
||||||
jmp breturn
|
jmp breturn
|
||||||
// hello::@return
|
// hello::@return
|
||||||
@ -842,10 +846,10 @@ hello: {
|
|||||||
inc idx
|
inc idx
|
||||||
// [21] (byte) hello::i#1 ← ++ (byte) hello::i#2 -- vbuyy=_inc_vbuyy
|
// [21] (byte) hello::i#1 ← ++ (byte) hello::i#2 -- vbuyy=_inc_vbuyy
|
||||||
iny
|
iny
|
||||||
// while(msg[i]!='@')
|
// while(msg[i])
|
||||||
// [22] if(*((byte*) msg#10 + (byte) hello::i#1)!=(byte) '@') goto hello::@1 -- pbuz1_derefidx_vbuyy_neq_vbuc1_then_la1
|
// [22] if((byte) 0!=*((byte*) msg#10 + (byte) hello::i#1)) goto hello::@1 -- vbuc1_neq_pbuz1_derefidx_vbuyy_then_la1
|
||||||
lda (msg),y
|
lda (msg),y
|
||||||
cmp #'@'
|
cmp #0
|
||||||
bne b1
|
bne b1
|
||||||
// hello::@return
|
// hello::@return
|
||||||
// }
|
// }
|
||||||
|
@ -7,13 +7,13 @@ main: {
|
|||||||
ldx #0
|
ldx #0
|
||||||
ldy #0
|
ldy #0
|
||||||
print21_b1:
|
print21_b1:
|
||||||
lda #'@'
|
lda #0
|
||||||
cmp hello,y
|
cmp hello,y
|
||||||
bne print21_b2
|
bne print21_b2
|
||||||
ldx #0
|
tax
|
||||||
ldy #0
|
tay
|
||||||
print22_b1:
|
print22_b1:
|
||||||
lda #'@'
|
lda #0
|
||||||
cmp hello,y
|
cmp hello,y
|
||||||
bne print22_b2
|
bne print22_b2
|
||||||
rts
|
rts
|
||||||
|
@ -16,7 +16,7 @@ main::print21: scope:[main] from main
|
|||||||
main::print21_@1: scope:[main] from main::print21 main::print21_@2
|
main::print21_@1: scope:[main] from main::print21 main::print21_@2
|
||||||
[6] (byte) main::print21_j#2 ← phi( main::print21/(byte) 0 main::print21_@2/(byte) main::print21_j#1 )
|
[6] (byte) main::print21_j#2 ← phi( main::print21/(byte) 0 main::print21_@2/(byte) main::print21_j#1 )
|
||||||
[6] (byte) main::print21_i#2 ← phi( main::print21/(byte) 0 main::print21_@2/(byte) main::print21_i#1 )
|
[6] (byte) main::print21_i#2 ← phi( main::print21/(byte) 0 main::print21_@2/(byte) main::print21_i#1 )
|
||||||
[7] if(*((const byte*) main::hello#0 + (byte) main::print21_i#2)!=(byte) '@') goto main::print21_@2
|
[7] if((byte) 0!=*((const byte*) main::hello#0 + (byte) main::print21_i#2)) goto main::print21_@2
|
||||||
to:main::print22
|
to:main::print22
|
||||||
main::print22: scope:[main] from main::print21_@1
|
main::print22: scope:[main] from main::print21_@1
|
||||||
[8] phi()
|
[8] phi()
|
||||||
@ -24,7 +24,7 @@ main::print22: scope:[main] from main::print21_@1
|
|||||||
main::print22_@1: scope:[main] from main::print22 main::print22_@2
|
main::print22_@1: scope:[main] from main::print22 main::print22_@2
|
||||||
[9] (byte) main::print22_j#2 ← phi( main::print22/(byte) 0 main::print22_@2/(byte) main::print22_j#1 )
|
[9] (byte) main::print22_j#2 ← phi( main::print22/(byte) 0 main::print22_@2/(byte) main::print22_j#1 )
|
||||||
[9] (byte) main::print22_i#2 ← phi( main::print22/(byte) 0 main::print22_@2/(byte) main::print22_i#1 )
|
[9] (byte) main::print22_i#2 ← phi( main::print22/(byte) 0 main::print22_@2/(byte) main::print22_i#1 )
|
||||||
[10] if(*((const byte*) main::hello#0 + (byte) main::print22_i#2)!=(byte) '@') goto main::print22_@2
|
[10] if((byte) 0!=*((const byte*) main::hello#0 + (byte) main::print22_i#2)) goto main::print22_@2
|
||||||
to:main::@return
|
to:main::@return
|
||||||
main::@return: scope:[main] from main::print22_@1
|
main::@return: scope:[main] from main::print22_@1
|
||||||
[11] return
|
[11] return
|
||||||
|
@ -1,3 +1,4 @@
|
|||||||
|
Warning! Adding boolean cast to non-boolean condition *((byte*) print2::msg + (byte) print2::i)
|
||||||
Identified constant variable (byte*) screen
|
Identified constant variable (byte*) screen
|
||||||
Identified constant variable (byte*) main::hello
|
Identified constant variable (byte*) main::hello
|
||||||
Inlined call call print2 (byte*) screen (byte*) main::hello
|
Inlined call call print2 (byte*) screen (byte*) main::hello
|
||||||
@ -35,7 +36,7 @@ main::print21_@1: scope:[main] from main::print21 main::print21_@2
|
|||||||
(byte*) main::print21_at#2 ← phi( main::print21/(byte*) main::print21_at#3 main::print21_@2/(byte*) main::print21_at#1 )
|
(byte*) main::print21_at#2 ← phi( main::print21/(byte*) main::print21_at#3 main::print21_@2/(byte*) main::print21_at#1 )
|
||||||
(byte) main::print21_i#2 ← phi( main::print21/(byte) main::print21_i#0 main::print21_@2/(byte) main::print21_i#1 )
|
(byte) main::print21_i#2 ← phi( main::print21/(byte) main::print21_i#0 main::print21_@2/(byte) main::print21_i#1 )
|
||||||
(byte*) main::print21_msg#1 ← phi( main::print21/(byte*) main::print21_msg#3 main::print21_@2/(byte*) main::print21_msg#2 )
|
(byte*) main::print21_msg#1 ← phi( main::print21/(byte*) main::print21_msg#3 main::print21_@2/(byte*) main::print21_msg#2 )
|
||||||
(bool~) main::print21_$0#0 ← *((byte*) main::print21_msg#1 + (byte) main::print21_i#2) != (byte) '@'
|
(bool~) main::print21_$0#0 ← (number) 0 != *((byte*) main::print21_msg#1 + (byte) main::print21_i#2)
|
||||||
if((bool~) main::print21_$0#0) goto main::print21_@2
|
if((bool~) main::print21_$0#0) goto main::print21_@2
|
||||||
to:main::@1
|
to:main::@1
|
||||||
main::print21_@2: scope:[main] from main::print21_@1
|
main::print21_@2: scope:[main] from main::print21_@1
|
||||||
@ -63,7 +64,7 @@ main::print22_@1: scope:[main] from main::print22 main::print22_@2
|
|||||||
(byte*) main::print22_at#2 ← phi( main::print22/(byte*) main::print22_at#3 main::print22_@2/(byte*) main::print22_at#1 )
|
(byte*) main::print22_at#2 ← phi( main::print22/(byte*) main::print22_at#3 main::print22_@2/(byte*) main::print22_at#1 )
|
||||||
(byte) main::print22_i#2 ← phi( main::print22/(byte) main::print22_i#0 main::print22_@2/(byte) main::print22_i#1 )
|
(byte) main::print22_i#2 ← phi( main::print22/(byte) main::print22_i#0 main::print22_@2/(byte) main::print22_i#1 )
|
||||||
(byte*) main::print22_msg#1 ← phi( main::print22/(byte*) main::print22_msg#3 main::print22_@2/(byte*) main::print22_msg#2 )
|
(byte*) main::print22_msg#1 ← phi( main::print22/(byte*) main::print22_msg#3 main::print22_@2/(byte*) main::print22_msg#2 )
|
||||||
(bool~) main::print22_$0#0 ← *((byte*) main::print22_msg#1 + (byte) main::print22_i#2) != (byte) '@'
|
(bool~) main::print22_$0#0 ← (number) 0 != *((byte*) main::print22_msg#1 + (byte) main::print22_i#2)
|
||||||
if((bool~) main::print22_$0#0) goto main::print22_@2
|
if((bool~) main::print22_$0#0) goto main::print22_@2
|
||||||
to:main::@return
|
to:main::@return
|
||||||
main::print22_@2: scope:[main] from main::print22_@1
|
main::print22_@2: scope:[main] from main::print22_@1
|
||||||
@ -152,10 +153,12 @@ SYMBOL TABLE SSA
|
|||||||
|
|
||||||
Adding number conversion cast (unumber) 0 in (byte) main::print21_j#0 ← (number) 0
|
Adding number conversion cast (unumber) 0 in (byte) main::print21_j#0 ← (number) 0
|
||||||
Adding number conversion cast (unumber) 0 in (byte) main::print21_i#0 ← (number) 0
|
Adding number conversion cast (unumber) 0 in (byte) main::print21_i#0 ← (number) 0
|
||||||
|
Adding number conversion cast (unumber) 0 in (bool~) main::print21_$0#0 ← (number) 0 != *((byte*) main::print21_msg#1 + (byte) main::print21_i#2)
|
||||||
Adding number conversion cast (unumber) 2 in (byte) main::print21_j#1 ← (byte) main::print21_j#2 + (number) 2
|
Adding number conversion cast (unumber) 2 in (byte) main::print21_j#1 ← (byte) main::print21_j#2 + (number) 2
|
||||||
Adding number conversion cast (unumber) $50 in (byte*~) main::$1 ← (byte*) screen#0 + (number) $50
|
Adding number conversion cast (unumber) $50 in (byte*~) main::$1 ← (byte*) screen#0 + (number) $50
|
||||||
Adding number conversion cast (unumber) 0 in (byte) main::print22_j#0 ← (number) 0
|
Adding number conversion cast (unumber) 0 in (byte) main::print22_j#0 ← (number) 0
|
||||||
Adding number conversion cast (unumber) 0 in (byte) main::print22_i#0 ← (number) 0
|
Adding number conversion cast (unumber) 0 in (byte) main::print22_i#0 ← (number) 0
|
||||||
|
Adding number conversion cast (unumber) 0 in (bool~) main::print22_$0#0 ← (number) 0 != *((byte*) main::print22_msg#1 + (byte) main::print22_i#2)
|
||||||
Adding number conversion cast (unumber) 2 in (byte) main::print22_j#1 ← (byte) main::print22_j#2 + (number) 2
|
Adding number conversion cast (unumber) 2 in (byte) main::print22_j#1 ← (byte) main::print22_j#2 + (number) 2
|
||||||
Successful SSA optimization PassNAddNumberTypeConversions
|
Successful SSA optimization PassNAddNumberTypeConversions
|
||||||
Inlining cast (byte*) screen#0 ← (byte*)(number) $400
|
Inlining cast (byte*) screen#0 ← (byte*)(number) $400
|
||||||
@ -167,18 +170,22 @@ Successful SSA optimization Pass2InlineCast
|
|||||||
Simplifying constant pointer cast (byte*) 1024
|
Simplifying constant pointer cast (byte*) 1024
|
||||||
Simplifying constant integer cast 0
|
Simplifying constant integer cast 0
|
||||||
Simplifying constant integer cast 0
|
Simplifying constant integer cast 0
|
||||||
|
Simplifying constant integer cast 0
|
||||||
Simplifying constant integer cast 2
|
Simplifying constant integer cast 2
|
||||||
Simplifying constant integer cast $50
|
Simplifying constant integer cast $50
|
||||||
Simplifying constant integer cast 0
|
Simplifying constant integer cast 0
|
||||||
Simplifying constant integer cast 0
|
Simplifying constant integer cast 0
|
||||||
|
Simplifying constant integer cast 0
|
||||||
Simplifying constant integer cast 2
|
Simplifying constant integer cast 2
|
||||||
Successful SSA optimization PassNCastSimplification
|
Successful SSA optimization PassNCastSimplification
|
||||||
Finalized unsigned number type (byte) 0
|
Finalized unsigned number type (byte) 0
|
||||||
Finalized unsigned number type (byte) 0
|
Finalized unsigned number type (byte) 0
|
||||||
|
Finalized unsigned number type (byte) 0
|
||||||
Finalized unsigned number type (byte) 2
|
Finalized unsigned number type (byte) 2
|
||||||
Finalized unsigned number type (byte) $50
|
Finalized unsigned number type (byte) $50
|
||||||
Finalized unsigned number type (byte) 0
|
Finalized unsigned number type (byte) 0
|
||||||
Finalized unsigned number type (byte) 0
|
Finalized unsigned number type (byte) 0
|
||||||
|
Finalized unsigned number type (byte) 0
|
||||||
Finalized unsigned number type (byte) 2
|
Finalized unsigned number type (byte) 2
|
||||||
Successful SSA optimization PassNFinalizeNumberTypeConversions
|
Successful SSA optimization PassNFinalizeNumberTypeConversions
|
||||||
Alias (byte*) main::hello#0 = (byte*) main::print21_msg#0 (byte*) main::print21_msg#3 (byte*) main::print22_msg#0 (byte*) main::print22_msg#3
|
Alias (byte*) main::hello#0 = (byte*) main::print21_msg#0 (byte*) main::print21_msg#3 (byte*) main::print22_msg#0 (byte*) main::print22_msg#3
|
||||||
@ -198,8 +205,8 @@ Identical Phi Values (byte*) main::print21_at#1 (byte*) main::print21_at#0
|
|||||||
Identical Phi Values (byte*) main::print22_msg#1 (byte*) main::hello#0
|
Identical Phi Values (byte*) main::print22_msg#1 (byte*) main::hello#0
|
||||||
Identical Phi Values (byte*) main::print22_at#1 (byte*) main::print22_at#0
|
Identical Phi Values (byte*) main::print22_at#1 (byte*) main::print22_at#0
|
||||||
Successful SSA optimization Pass2IdenticalPhiElimination
|
Successful SSA optimization Pass2IdenticalPhiElimination
|
||||||
Simple Condition (bool~) main::print21_$0#0 [9] if(*((byte*) main::hello#0 + (byte) main::print21_i#2)!=(byte) '@') goto main::print21_@2
|
Simple Condition (bool~) main::print21_$0#0 [9] if((byte) 0!=*((byte*) main::hello#0 + (byte) main::print21_i#2)) goto main::print21_@2
|
||||||
Simple Condition (bool~) main::print22_$0#0 [22] if(*((byte*) main::hello#0 + (byte) main::print22_i#2)!=(byte) '@') goto main::print22_@2
|
Simple Condition (bool~) main::print22_$0#0 [22] if((byte) 0!=*((byte*) main::hello#0 + (byte) main::print22_i#2)) goto main::print22_@2
|
||||||
Successful SSA optimization Pass2ConditionalJumpSimplification
|
Successful SSA optimization Pass2ConditionalJumpSimplification
|
||||||
Constant (const byte*) screen#0 = (byte*) 1024
|
Constant (const byte*) screen#0 = (byte*) 1024
|
||||||
Constant (const byte*) main::hello#0 = main::$3
|
Constant (const byte*) main::hello#0 = main::$3
|
||||||
@ -271,7 +278,7 @@ main::print21: scope:[main] from main
|
|||||||
main::print21_@1: scope:[main] from main::print21 main::print21_@2
|
main::print21_@1: scope:[main] from main::print21 main::print21_@2
|
||||||
[6] (byte) main::print21_j#2 ← phi( main::print21/(byte) 0 main::print21_@2/(byte) main::print21_j#1 )
|
[6] (byte) main::print21_j#2 ← phi( main::print21/(byte) 0 main::print21_@2/(byte) main::print21_j#1 )
|
||||||
[6] (byte) main::print21_i#2 ← phi( main::print21/(byte) 0 main::print21_@2/(byte) main::print21_i#1 )
|
[6] (byte) main::print21_i#2 ← phi( main::print21/(byte) 0 main::print21_@2/(byte) main::print21_i#1 )
|
||||||
[7] if(*((const byte*) main::hello#0 + (byte) main::print21_i#2)!=(byte) '@') goto main::print21_@2
|
[7] if((byte) 0!=*((const byte*) main::hello#0 + (byte) main::print21_i#2)) goto main::print21_@2
|
||||||
to:main::print22
|
to:main::print22
|
||||||
main::print22: scope:[main] from main::print21_@1
|
main::print22: scope:[main] from main::print21_@1
|
||||||
[8] phi()
|
[8] phi()
|
||||||
@ -279,7 +286,7 @@ main::print22: scope:[main] from main::print21_@1
|
|||||||
main::print22_@1: scope:[main] from main::print22 main::print22_@2
|
main::print22_@1: scope:[main] from main::print22 main::print22_@2
|
||||||
[9] (byte) main::print22_j#2 ← phi( main::print22/(byte) 0 main::print22_@2/(byte) main::print22_j#1 )
|
[9] (byte) main::print22_j#2 ← phi( main::print22/(byte) 0 main::print22_@2/(byte) main::print22_j#1 )
|
||||||
[9] (byte) main::print22_i#2 ← phi( main::print22/(byte) 0 main::print22_@2/(byte) main::print22_i#1 )
|
[9] (byte) main::print22_i#2 ← phi( main::print22/(byte) 0 main::print22_@2/(byte) main::print22_i#1 )
|
||||||
[10] if(*((const byte*) main::hello#0 + (byte) main::print22_i#2)!=(byte) '@') goto main::print22_@2
|
[10] if((byte) 0!=*((const byte*) main::hello#0 + (byte) main::print22_i#2)) goto main::print22_@2
|
||||||
to:main::@return
|
to:main::@return
|
||||||
main::@return: scope:[main] from main::print22_@1
|
main::@return: scope:[main] from main::print22_@1
|
||||||
[11] return
|
[11] return
|
||||||
@ -382,8 +389,8 @@ main: {
|
|||||||
jmp print21_b1
|
jmp print21_b1
|
||||||
// main::print21_@1
|
// main::print21_@1
|
||||||
print21_b1:
|
print21_b1:
|
||||||
// [7] if(*((const byte*) main::hello#0 + (byte) main::print21_i#2)!=(byte) '@') goto main::print21_@2 -- pbuc1_derefidx_vbuz1_neq_vbuc2_then_la1
|
// [7] if((byte) 0!=*((const byte*) main::hello#0 + (byte) main::print21_i#2)) goto main::print21_@2 -- vbuc1_neq_pbuc2_derefidx_vbuz1_then_la1
|
||||||
lda #'@'
|
lda #0
|
||||||
ldy print21_i
|
ldy print21_i
|
||||||
cmp hello,y
|
cmp hello,y
|
||||||
bne print21_b2
|
bne print21_b2
|
||||||
@ -403,8 +410,8 @@ main: {
|
|||||||
jmp print22_b1
|
jmp print22_b1
|
||||||
// main::print22_@1
|
// main::print22_@1
|
||||||
print22_b1:
|
print22_b1:
|
||||||
// [10] if(*((const byte*) main::hello#0 + (byte) main::print22_i#2)!=(byte) '@') goto main::print22_@2 -- pbuc1_derefidx_vbuz1_neq_vbuc2_then_la1
|
// [10] if((byte) 0!=*((const byte*) main::hello#0 + (byte) main::print22_i#2)) goto main::print22_@2 -- vbuc1_neq_pbuc2_derefidx_vbuz1_then_la1
|
||||||
lda #'@'
|
lda #0
|
||||||
ldy print22_i
|
ldy print22_i
|
||||||
cmp hello,y
|
cmp hello,y
|
||||||
bne print22_b2
|
bne print22_b2
|
||||||
@ -457,16 +464,16 @@ main: {
|
|||||||
// File Data
|
// File Data
|
||||||
|
|
||||||
REGISTER UPLIFT POTENTIAL REGISTERS
|
REGISTER UPLIFT POTENTIAL REGISTERS
|
||||||
Statement [7] if(*((const byte*) main::hello#0 + (byte) main::print21_i#2)!=(byte) '@') goto main::print21_@2 [ main::print21_i#2 main::print21_j#2 ] ( main:2 [ main::print21_i#2 main::print21_j#2 ] ) always clobbers reg byte a
|
Statement [7] if((byte) 0!=*((const byte*) main::hello#0 + (byte) main::print21_i#2)) goto main::print21_@2 [ main::print21_i#2 main::print21_j#2 ] ( main:2 [ main::print21_i#2 main::print21_j#2 ] ) always clobbers reg byte a
|
||||||
Removing always clobbered register reg byte a as potential for zp ZP_BYTE:2 [ main::print21_i#2 main::print21_i#1 ]
|
Removing always clobbered register reg byte a as potential for zp ZP_BYTE:2 [ main::print21_i#2 main::print21_i#1 ]
|
||||||
Removing always clobbered register reg byte a as potential for zp ZP_BYTE:3 [ main::print21_j#2 main::print21_j#1 ]
|
Removing always clobbered register reg byte a as potential for zp ZP_BYTE:3 [ main::print21_j#2 main::print21_j#1 ]
|
||||||
Statement [10] if(*((const byte*) main::hello#0 + (byte) main::print22_i#2)!=(byte) '@') goto main::print22_@2 [ main::print22_i#2 main::print22_j#2 ] ( main:2 [ main::print22_i#2 main::print22_j#2 ] ) always clobbers reg byte a
|
Statement [10] if((byte) 0!=*((const byte*) main::hello#0 + (byte) main::print22_i#2)) goto main::print22_@2 [ main::print22_i#2 main::print22_j#2 ] ( main:2 [ main::print22_i#2 main::print22_j#2 ] ) always clobbers reg byte a
|
||||||
Removing always clobbered register reg byte a as potential for zp ZP_BYTE:4 [ main::print22_i#2 main::print22_i#1 ]
|
Removing always clobbered register reg byte a as potential for zp ZP_BYTE:4 [ main::print22_i#2 main::print22_i#1 ]
|
||||||
Removing always clobbered register reg byte a as potential for zp ZP_BYTE:5 [ main::print22_j#2 main::print22_j#1 ]
|
Removing always clobbered register reg byte a as potential for zp ZP_BYTE:5 [ main::print22_j#2 main::print22_j#1 ]
|
||||||
Statement [12] *((const byte*) main::print22_at#0 + (byte) main::print22_j#2) ← *((const byte*) main::hello#0 + (byte) main::print22_i#2) [ main::print22_i#2 main::print22_j#2 ] ( main:2 [ main::print22_i#2 main::print22_j#2 ] ) always clobbers reg byte a
|
Statement [12] *((const byte*) main::print22_at#0 + (byte) main::print22_j#2) ← *((const byte*) main::hello#0 + (byte) main::print22_i#2) [ main::print22_i#2 main::print22_j#2 ] ( main:2 [ main::print22_i#2 main::print22_j#2 ] ) always clobbers reg byte a
|
||||||
Statement [15] *((const byte*) screen#0 + (byte) main::print21_j#2) ← *((const byte*) main::hello#0 + (byte) main::print21_i#2) [ main::print21_i#2 main::print21_j#2 ] ( main:2 [ main::print21_i#2 main::print21_j#2 ] ) always clobbers reg byte a
|
Statement [15] *((const byte*) screen#0 + (byte) main::print21_j#2) ← *((const byte*) main::hello#0 + (byte) main::print21_i#2) [ main::print21_i#2 main::print21_j#2 ] ( main:2 [ main::print21_i#2 main::print21_j#2 ] ) always clobbers reg byte a
|
||||||
Statement [7] if(*((const byte*) main::hello#0 + (byte) main::print21_i#2)!=(byte) '@') goto main::print21_@2 [ main::print21_i#2 main::print21_j#2 ] ( main:2 [ main::print21_i#2 main::print21_j#2 ] ) always clobbers reg byte a
|
Statement [7] if((byte) 0!=*((const byte*) main::hello#0 + (byte) main::print21_i#2)) goto main::print21_@2 [ main::print21_i#2 main::print21_j#2 ] ( main:2 [ main::print21_i#2 main::print21_j#2 ] ) always clobbers reg byte a
|
||||||
Statement [10] if(*((const byte*) main::hello#0 + (byte) main::print22_i#2)!=(byte) '@') goto main::print22_@2 [ main::print22_i#2 main::print22_j#2 ] ( main:2 [ main::print22_i#2 main::print22_j#2 ] ) always clobbers reg byte a
|
Statement [10] if((byte) 0!=*((const byte*) main::hello#0 + (byte) main::print22_i#2)) goto main::print22_@2 [ main::print22_i#2 main::print22_j#2 ] ( main:2 [ main::print22_i#2 main::print22_j#2 ] ) always clobbers reg byte a
|
||||||
Statement [12] *((const byte*) main::print22_at#0 + (byte) main::print22_j#2) ← *((const byte*) main::hello#0 + (byte) main::print22_i#2) [ main::print22_i#2 main::print22_j#2 ] ( main:2 [ main::print22_i#2 main::print22_j#2 ] ) always clobbers reg byte a
|
Statement [12] *((const byte*) main::print22_at#0 + (byte) main::print22_j#2) ← *((const byte*) main::hello#0 + (byte) main::print22_i#2) [ main::print22_i#2 main::print22_j#2 ] ( main:2 [ main::print22_i#2 main::print22_j#2 ] ) always clobbers reg byte a
|
||||||
Statement [15] *((const byte*) screen#0 + (byte) main::print21_j#2) ← *((const byte*) main::hello#0 + (byte) main::print21_i#2) [ main::print21_i#2 main::print21_j#2 ] ( main:2 [ main::print21_i#2 main::print21_j#2 ] ) always clobbers reg byte a
|
Statement [15] *((const byte*) screen#0 + (byte) main::print21_j#2) ← *((const byte*) main::hello#0 + (byte) main::print21_i#2) [ main::print21_i#2 main::print21_j#2 ] ( main:2 [ main::print21_i#2 main::print21_j#2 ] ) always clobbers reg byte a
|
||||||
Potential registers zp ZP_BYTE:2 [ main::print21_i#2 main::print21_i#1 ] : zp ZP_BYTE:2 , reg byte x , reg byte y ,
|
Potential registers zp ZP_BYTE:2 [ main::print21_i#2 main::print21_i#1 ] : zp ZP_BYTE:2 , reg byte x , reg byte y ,
|
||||||
@ -522,8 +529,8 @@ main: {
|
|||||||
jmp print21_b1
|
jmp print21_b1
|
||||||
// main::print21_@1
|
// main::print21_@1
|
||||||
print21_b1:
|
print21_b1:
|
||||||
// [7] if(*((const byte*) main::hello#0 + (byte) main::print21_i#2)!=(byte) '@') goto main::print21_@2 -- pbuc1_derefidx_vbuyy_neq_vbuc2_then_la1
|
// [7] if((byte) 0!=*((const byte*) main::hello#0 + (byte) main::print21_i#2)) goto main::print21_@2 -- vbuc1_neq_pbuc2_derefidx_vbuyy_then_la1
|
||||||
lda #'@'
|
lda #0
|
||||||
cmp hello,y
|
cmp hello,y
|
||||||
bne print21_b2
|
bne print21_b2
|
||||||
// [8] phi from main::print21_@1 to main::print22 [phi:main::print21_@1->main::print22]
|
// [8] phi from main::print21_@1 to main::print22 [phi:main::print21_@1->main::print22]
|
||||||
@ -540,8 +547,8 @@ main: {
|
|||||||
jmp print22_b1
|
jmp print22_b1
|
||||||
// main::print22_@1
|
// main::print22_@1
|
||||||
print22_b1:
|
print22_b1:
|
||||||
// [10] if(*((const byte*) main::hello#0 + (byte) main::print22_i#2)!=(byte) '@') goto main::print22_@2 -- pbuc1_derefidx_vbuyy_neq_vbuc2_then_la1
|
// [10] if((byte) 0!=*((const byte*) main::hello#0 + (byte) main::print22_i#2)) goto main::print22_@2 -- vbuc1_neq_pbuc2_derefidx_vbuyy_then_la1
|
||||||
lda #'@'
|
lda #0
|
||||||
cmp hello,y
|
cmp hello,y
|
||||||
bne print22_b2
|
bne print22_b2
|
||||||
jmp breturn
|
jmp breturn
|
||||||
@ -612,6 +619,8 @@ Succesful ASM optimization Pass5UnusedLabelElimination
|
|||||||
Updating BasicUpstart to call main directly
|
Updating BasicUpstart to call main directly
|
||||||
Removing instruction jsr main
|
Removing instruction jsr main
|
||||||
Succesful ASM optimization Pass5SkipBegin
|
Succesful ASM optimization Pass5SkipBegin
|
||||||
|
Replacing instruction ldx #0 with TAX
|
||||||
|
Replacing instruction ldy #0 with TAY
|
||||||
Removing instruction bbegin:
|
Removing instruction bbegin:
|
||||||
Succesful ASM optimization Pass5UnusedLabelElimination
|
Succesful ASM optimization Pass5UnusedLabelElimination
|
||||||
|
|
||||||
@ -686,23 +695,23 @@ main: {
|
|||||||
ldy #0
|
ldy #0
|
||||||
// main::print21_@1
|
// main::print21_@1
|
||||||
print21_b1:
|
print21_b1:
|
||||||
// for(byte i=0; msg[i]!='@'; i++)
|
// for(byte i=0; msg[i]; i++)
|
||||||
// [7] if(*((const byte*) main::hello#0 + (byte) main::print21_i#2)!=(byte) '@') goto main::print21_@2 -- pbuc1_derefidx_vbuyy_neq_vbuc2_then_la1
|
// [7] if((byte) 0!=*((const byte*) main::hello#0 + (byte) main::print21_i#2)) goto main::print21_@2 -- vbuc1_neq_pbuc2_derefidx_vbuyy_then_la1
|
||||||
lda #'@'
|
lda #0
|
||||||
cmp hello,y
|
cmp hello,y
|
||||||
bne print21_b2
|
bne print21_b2
|
||||||
// [8] phi from main::print21_@1 to main::print22 [phi:main::print21_@1->main::print22]
|
// [8] phi from main::print21_@1 to main::print22 [phi:main::print21_@1->main::print22]
|
||||||
// main::print22
|
// main::print22
|
||||||
// [9] phi from main::print22 to main::print22_@1 [phi:main::print22->main::print22_@1]
|
// [9] phi from main::print22 to main::print22_@1 [phi:main::print22->main::print22_@1]
|
||||||
// [9] phi (byte) main::print22_j#2 = (byte) 0 [phi:main::print22->main::print22_@1#0] -- vbuxx=vbuc1
|
// [9] phi (byte) main::print22_j#2 = (byte) 0 [phi:main::print22->main::print22_@1#0] -- vbuxx=vbuc1
|
||||||
ldx #0
|
tax
|
||||||
// [9] phi (byte) main::print22_i#2 = (byte) 0 [phi:main::print22->main::print22_@1#1] -- vbuyy=vbuc1
|
// [9] phi (byte) main::print22_i#2 = (byte) 0 [phi:main::print22->main::print22_@1#1] -- vbuyy=vbuc1
|
||||||
ldy #0
|
tay
|
||||||
// main::print22_@1
|
// main::print22_@1
|
||||||
print22_b1:
|
print22_b1:
|
||||||
// for(byte i=0; msg[i]!='@'; i++)
|
// for(byte i=0; msg[i]; i++)
|
||||||
// [10] if(*((const byte*) main::hello#0 + (byte) main::print22_i#2)!=(byte) '@') goto main::print22_@2 -- pbuc1_derefidx_vbuyy_neq_vbuc2_then_la1
|
// [10] if((byte) 0!=*((const byte*) main::hello#0 + (byte) main::print22_i#2)) goto main::print22_@2 -- vbuc1_neq_pbuc2_derefidx_vbuyy_then_la1
|
||||||
lda #'@'
|
lda #0
|
||||||
cmp hello,y
|
cmp hello,y
|
||||||
bne print22_b2
|
bne print22_b2
|
||||||
// main::@return
|
// main::@return
|
||||||
@ -719,7 +728,7 @@ main: {
|
|||||||
// [13] (byte) main::print22_j#1 ← (byte) main::print22_j#2 + (byte) 2 -- vbuxx=vbuxx_plus_2
|
// [13] (byte) main::print22_j#1 ← (byte) main::print22_j#2 + (byte) 2 -- vbuxx=vbuxx_plus_2
|
||||||
inx
|
inx
|
||||||
inx
|
inx
|
||||||
// for(byte i=0; msg[i]!='@'; i++)
|
// for(byte i=0; msg[i]; i++)
|
||||||
// [14] (byte) main::print22_i#1 ← ++ (byte) main::print22_i#2 -- vbuyy=_inc_vbuyy
|
// [14] (byte) main::print22_i#1 ← ++ (byte) main::print22_i#2 -- vbuyy=_inc_vbuyy
|
||||||
iny
|
iny
|
||||||
// [9] phi from main::print22_@2 to main::print22_@1 [phi:main::print22_@2->main::print22_@1]
|
// [9] phi from main::print22_@2 to main::print22_@1 [phi:main::print22_@2->main::print22_@1]
|
||||||
@ -736,7 +745,7 @@ main: {
|
|||||||
// [16] (byte) main::print21_j#1 ← (byte) main::print21_j#2 + (byte) 2 -- vbuxx=vbuxx_plus_2
|
// [16] (byte) main::print21_j#1 ← (byte) main::print21_j#2 + (byte) 2 -- vbuxx=vbuxx_plus_2
|
||||||
inx
|
inx
|
||||||
inx
|
inx
|
||||||
// for(byte i=0; msg[i]!='@'; i++)
|
// for(byte i=0; msg[i]; i++)
|
||||||
// [17] (byte) main::print21_i#1 ← ++ (byte) main::print21_i#2 -- vbuyy=_inc_vbuyy
|
// [17] (byte) main::print21_i#1 ← ++ (byte) main::print21_i#2 -- vbuyy=_inc_vbuyy
|
||||||
iny
|
iny
|
||||||
// [6] phi from main::print21_@2 to main::print21_@1 [phi:main::print21_@2->main::print21_@1]
|
// [6] phi from main::print21_@2 to main::print21_@1 [phi:main::print21_@2->main::print21_@1]
|
||||||
|
@ -19,19 +19,26 @@ main: {
|
|||||||
}
|
}
|
||||||
// print2(byte* zeropage(2) at)
|
// print2(byte* zeropage(2) at)
|
||||||
print2: {
|
print2: {
|
||||||
|
.label j = 4
|
||||||
.label at = 2
|
.label at = 2
|
||||||
ldy #0
|
lda #0
|
||||||
ldx #0
|
sta j
|
||||||
|
tax
|
||||||
b1:
|
b1:
|
||||||
lda main.hello,x
|
txa
|
||||||
cmp #'@'
|
tay
|
||||||
|
lda #0
|
||||||
|
cmp main.hello,y
|
||||||
bne b2
|
bne b2
|
||||||
rts
|
rts
|
||||||
b2:
|
b2:
|
||||||
lda main.hello,x
|
lda main.hello,x
|
||||||
|
ldy j
|
||||||
sta (at),y
|
sta (at),y
|
||||||
iny
|
tya
|
||||||
iny
|
clc
|
||||||
|
adc #2
|
||||||
|
sta j
|
||||||
inx
|
inx
|
||||||
jmp b1
|
jmp b1
|
||||||
}
|
}
|
||||||
|
@ -24,7 +24,7 @@ print2: scope:[print2] from main main::@1
|
|||||||
print2::@1: scope:[print2] from print2 print2::@2
|
print2::@1: scope:[print2] from print2 print2::@2
|
||||||
[10] (byte) print2::j#2 ← phi( print2/(byte) 0 print2::@2/(byte) print2::j#1 )
|
[10] (byte) print2::j#2 ← phi( print2/(byte) 0 print2::@2/(byte) print2::j#1 )
|
||||||
[10] (byte) print2::i#2 ← phi( print2/(byte) 0 print2::@2/(byte) print2::i#1 )
|
[10] (byte) print2::i#2 ← phi( print2/(byte) 0 print2::@2/(byte) print2::i#1 )
|
||||||
[11] if(*((const byte*) main::hello#0 + (byte) print2::i#2)!=(byte) '@') goto print2::@2
|
[11] if((byte) 0!=*((const byte*) main::hello#0 + (byte) print2::i#2)) goto print2::@2
|
||||||
to:print2::@return
|
to:print2::@return
|
||||||
print2::@return: scope:[print2] from print2::@1
|
print2::@return: scope:[print2] from print2::@1
|
||||||
[12] return
|
[12] return
|
||||||
|
@ -1,3 +1,4 @@
|
|||||||
|
Warning! Adding boolean cast to non-boolean condition *((byte*) print2::msg + (byte) print2::i)
|
||||||
Identified constant variable (byte*) screen
|
Identified constant variable (byte*) screen
|
||||||
Identified constant variable (byte*) main::hello
|
Identified constant variable (byte*) main::hello
|
||||||
Culled Empty Block (label) @1
|
Culled Empty Block (label) @1
|
||||||
@ -38,7 +39,7 @@ print2::@1: scope:[print2] from print2 print2::@2
|
|||||||
(byte*) print2::at#3 ← phi( print2/(byte*) print2::at#4 print2::@2/(byte*) print2::at#2 )
|
(byte*) print2::at#3 ← phi( print2/(byte*) print2::at#4 print2::@2/(byte*) print2::at#2 )
|
||||||
(byte) print2::i#2 ← phi( print2/(byte) print2::i#0 print2::@2/(byte) print2::i#1 )
|
(byte) print2::i#2 ← phi( print2/(byte) print2::i#0 print2::@2/(byte) print2::i#1 )
|
||||||
(byte*) print2::msg#2 ← phi( print2/(byte*) print2::msg#4 print2::@2/(byte*) print2::msg#3 )
|
(byte*) print2::msg#2 ← phi( print2/(byte*) print2::msg#4 print2::@2/(byte*) print2::msg#3 )
|
||||||
(bool~) print2::$0 ← *((byte*) print2::msg#2 + (byte) print2::i#2) != (byte) '@'
|
(bool~) print2::$0 ← (number) 0 != *((byte*) print2::msg#2 + (byte) print2::i#2)
|
||||||
if((bool~) print2::$0) goto print2::@2
|
if((bool~) print2::$0) goto print2::@2
|
||||||
to:print2::@return
|
to:print2::@return
|
||||||
print2::@2: scope:[print2] from print2::@1
|
print2::@2: scope:[print2] from print2::@1
|
||||||
@ -106,6 +107,7 @@ SYMBOL TABLE SSA
|
|||||||
Adding number conversion cast (unumber) $50 in (byte*~) main::$1 ← (byte*) screen#0 + (number) $50
|
Adding number conversion cast (unumber) $50 in (byte*~) main::$1 ← (byte*) screen#0 + (number) $50
|
||||||
Adding number conversion cast (unumber) 0 in (byte) print2::j#0 ← (number) 0
|
Adding number conversion cast (unumber) 0 in (byte) print2::j#0 ← (number) 0
|
||||||
Adding number conversion cast (unumber) 0 in (byte) print2::i#0 ← (number) 0
|
Adding number conversion cast (unumber) 0 in (byte) print2::i#0 ← (number) 0
|
||||||
|
Adding number conversion cast (unumber) 0 in (bool~) print2::$0 ← (number) 0 != *((byte*) print2::msg#2 + (byte) print2::i#2)
|
||||||
Adding number conversion cast (unumber) 2 in (byte) print2::j#1 ← (byte) print2::j#2 + (number) 2
|
Adding number conversion cast (unumber) 2 in (byte) print2::j#1 ← (byte) print2::j#2 + (number) 2
|
||||||
Successful SSA optimization PassNAddNumberTypeConversions
|
Successful SSA optimization PassNAddNumberTypeConversions
|
||||||
Inlining cast (byte*) screen#0 ← (byte*)(number) $400
|
Inlining cast (byte*) screen#0 ← (byte*)(number) $400
|
||||||
@ -116,11 +118,13 @@ Simplifying constant pointer cast (byte*) 1024
|
|||||||
Simplifying constant integer cast $50
|
Simplifying constant integer cast $50
|
||||||
Simplifying constant integer cast 0
|
Simplifying constant integer cast 0
|
||||||
Simplifying constant integer cast 0
|
Simplifying constant integer cast 0
|
||||||
|
Simplifying constant integer cast 0
|
||||||
Simplifying constant integer cast 2
|
Simplifying constant integer cast 2
|
||||||
Successful SSA optimization PassNCastSimplification
|
Successful SSA optimization PassNCastSimplification
|
||||||
Finalized unsigned number type (byte) $50
|
Finalized unsigned number type (byte) $50
|
||||||
Finalized unsigned number type (byte) 0
|
Finalized unsigned number type (byte) 0
|
||||||
Finalized unsigned number type (byte) 0
|
Finalized unsigned number type (byte) 0
|
||||||
|
Finalized unsigned number type (byte) 0
|
||||||
Finalized unsigned number type (byte) 2
|
Finalized unsigned number type (byte) 2
|
||||||
Successful SSA optimization PassNFinalizeNumberTypeConversions
|
Successful SSA optimization PassNFinalizeNumberTypeConversions
|
||||||
Alias (byte*) print2::at#1 = (byte*~) main::$1
|
Alias (byte*) print2::at#1 = (byte*~) main::$1
|
||||||
@ -132,7 +136,7 @@ Successful SSA optimization Pass2AliasElimination
|
|||||||
Identical Phi Values (byte*) print2::msg#2 (byte*) print2::msg#4
|
Identical Phi Values (byte*) print2::msg#2 (byte*) print2::msg#4
|
||||||
Identical Phi Values (byte*) print2::at#2 (byte*) print2::at#4
|
Identical Phi Values (byte*) print2::at#2 (byte*) print2::at#4
|
||||||
Successful SSA optimization Pass2IdenticalPhiElimination
|
Successful SSA optimization Pass2IdenticalPhiElimination
|
||||||
Simple Condition (bool~) print2::$0 [15] if(*((byte*) print2::msg#4 + (byte) print2::i#2)!=(byte) '@') goto print2::@2
|
Simple Condition (bool~) print2::$0 [15] if((byte) 0!=*((byte*) print2::msg#4 + (byte) print2::i#2)) goto print2::@2
|
||||||
Successful SSA optimization Pass2ConditionalJumpSimplification
|
Successful SSA optimization Pass2ConditionalJumpSimplification
|
||||||
Constant (const byte*) screen#0 = (byte*) 1024
|
Constant (const byte*) screen#0 = (byte*) 1024
|
||||||
Constant (const byte*) main::hello#0 = main::$3
|
Constant (const byte*) main::hello#0 = main::$3
|
||||||
@ -214,7 +218,7 @@ print2: scope:[print2] from main main::@1
|
|||||||
print2::@1: scope:[print2] from print2 print2::@2
|
print2::@1: scope:[print2] from print2 print2::@2
|
||||||
[10] (byte) print2::j#2 ← phi( print2/(byte) 0 print2::@2/(byte) print2::j#1 )
|
[10] (byte) print2::j#2 ← phi( print2/(byte) 0 print2::@2/(byte) print2::j#1 )
|
||||||
[10] (byte) print2::i#2 ← phi( print2/(byte) 0 print2::@2/(byte) print2::i#1 )
|
[10] (byte) print2::i#2 ← phi( print2/(byte) 0 print2::@2/(byte) print2::i#1 )
|
||||||
[11] if(*((const byte*) main::hello#0 + (byte) print2::i#2)!=(byte) '@') goto print2::@2
|
[11] if((byte) 0!=*((const byte*) main::hello#0 + (byte) print2::i#2)) goto print2::@2
|
||||||
to:print2::@return
|
to:print2::@return
|
||||||
print2::@return: scope:[print2] from print2::@1
|
print2::@return: scope:[print2] from print2::@1
|
||||||
[12] return
|
[12] return
|
||||||
@ -328,8 +332,8 @@ print2: {
|
|||||||
jmp b1
|
jmp b1
|
||||||
// print2::@1
|
// print2::@1
|
||||||
b1:
|
b1:
|
||||||
// [11] if(*((const byte*) main::hello#0 + (byte) print2::i#2)!=(byte) '@') goto print2::@2 -- pbuc1_derefidx_vbuz1_neq_vbuc2_then_la1
|
// [11] if((byte) 0!=*((const byte*) main::hello#0 + (byte) print2::i#2)) goto print2::@2 -- vbuc1_neq_pbuc2_derefidx_vbuz1_then_la1
|
||||||
lda #'@'
|
lda #0
|
||||||
ldy i
|
ldy i
|
||||||
cmp main.hello,y
|
cmp main.hello,y
|
||||||
bne b2
|
bne b2
|
||||||
@ -361,11 +365,11 @@ print2: {
|
|||||||
// File Data
|
// File Data
|
||||||
|
|
||||||
REGISTER UPLIFT POTENTIAL REGISTERS
|
REGISTER UPLIFT POTENTIAL REGISTERS
|
||||||
Statement [11] if(*((const byte*) main::hello#0 + (byte) print2::i#2)!=(byte) '@') goto print2::@2 [ print2::at#4 print2::i#2 print2::j#2 ] ( main:2::print2:5 [ print2::at#4 print2::i#2 print2::j#2 ] main:2::print2:7 [ print2::at#4 print2::i#2 print2::j#2 ] ) always clobbers reg byte a
|
Statement [11] if((byte) 0!=*((const byte*) main::hello#0 + (byte) print2::i#2)) goto print2::@2 [ print2::at#4 print2::i#2 print2::j#2 ] ( main:2::print2:5 [ print2::at#4 print2::i#2 print2::j#2 ] main:2::print2:7 [ print2::at#4 print2::i#2 print2::j#2 ] ) always clobbers reg byte a
|
||||||
Removing always clobbered register reg byte a as potential for zp ZP_BYTE:4 [ print2::i#2 print2::i#1 ]
|
Removing always clobbered register reg byte a as potential for zp ZP_BYTE:4 [ print2::i#2 print2::i#1 ]
|
||||||
Removing always clobbered register reg byte a as potential for zp ZP_BYTE:5 [ print2::j#2 print2::j#1 ]
|
Removing always clobbered register reg byte a as potential for zp ZP_BYTE:5 [ print2::j#2 print2::j#1 ]
|
||||||
Statement [13] *((byte*) print2::at#4 + (byte) print2::j#2) ← *((const byte*) main::hello#0 + (byte) print2::i#2) [ print2::at#4 print2::i#2 print2::j#2 ] ( main:2::print2:5 [ print2::at#4 print2::i#2 print2::j#2 ] main:2::print2:7 [ print2::at#4 print2::i#2 print2::j#2 ] ) always clobbers reg byte a
|
Statement [13] *((byte*) print2::at#4 + (byte) print2::j#2) ← *((const byte*) main::hello#0 + (byte) print2::i#2) [ print2::at#4 print2::i#2 print2::j#2 ] ( main:2::print2:5 [ print2::at#4 print2::i#2 print2::j#2 ] main:2::print2:7 [ print2::at#4 print2::i#2 print2::j#2 ] ) always clobbers reg byte a
|
||||||
Statement [11] if(*((const byte*) main::hello#0 + (byte) print2::i#2)!=(byte) '@') goto print2::@2 [ print2::at#4 print2::i#2 print2::j#2 ] ( main:2::print2:5 [ print2::at#4 print2::i#2 print2::j#2 ] main:2::print2:7 [ print2::at#4 print2::i#2 print2::j#2 ] ) always clobbers reg byte a
|
Statement [11] if((byte) 0!=*((const byte*) main::hello#0 + (byte) print2::i#2)) goto print2::@2 [ print2::at#4 print2::i#2 print2::j#2 ] ( main:2::print2:5 [ print2::at#4 print2::i#2 print2::j#2 ] main:2::print2:7 [ print2::at#4 print2::i#2 print2::j#2 ] ) always clobbers reg byte a
|
||||||
Statement [13] *((byte*) print2::at#4 + (byte) print2::j#2) ← *((const byte*) main::hello#0 + (byte) print2::i#2) [ print2::at#4 print2::i#2 print2::j#2 ] ( main:2::print2:5 [ print2::at#4 print2::i#2 print2::j#2 ] main:2::print2:7 [ print2::at#4 print2::i#2 print2::j#2 ] ) always clobbers reg byte a
|
Statement [13] *((byte*) print2::at#4 + (byte) print2::j#2) ← *((const byte*) main::hello#0 + (byte) print2::i#2) [ print2::at#4 print2::i#2 print2::j#2 ] ( main:2::print2:5 [ print2::at#4 print2::i#2 print2::j#2 ] main:2::print2:7 [ print2::at#4 print2::i#2 print2::j#2 ] ) always clobbers reg byte a
|
||||||
Potential registers zp ZP_WORD:2 [ print2::at#4 ] : zp ZP_WORD:2 ,
|
Potential registers zp ZP_WORD:2 [ print2::at#4 ] : zp ZP_WORD:2 ,
|
||||||
Potential registers zp ZP_BYTE:4 [ print2::i#2 print2::i#1 ] : zp ZP_BYTE:4 , reg byte x , reg byte y ,
|
Potential registers zp ZP_BYTE:4 [ print2::i#2 print2::i#1 ] : zp ZP_BYTE:4 , reg byte x , reg byte y ,
|
||||||
@ -376,9 +380,12 @@ Uplift Scope [print2] 33: zp ZP_BYTE:4 [ print2::i#2 print2::i#1 ] 22: zp ZP_BYT
|
|||||||
Uplift Scope [main]
|
Uplift Scope [main]
|
||||||
Uplift Scope []
|
Uplift Scope []
|
||||||
|
|
||||||
Uplifting [print2] best 447 combination reg byte x [ print2::i#2 print2::i#1 ] reg byte y [ print2::j#2 print2::j#1 ] zp ZP_WORD:2 [ print2::at#4 ]
|
Uplifting [print2] best 607 combination reg byte x [ print2::i#2 print2::i#1 ] zp ZP_BYTE:5 [ print2::j#2 print2::j#1 ] zp ZP_WORD:2 [ print2::at#4 ]
|
||||||
Uplifting [main] best 447 combination
|
Uplifting [main] best 607 combination
|
||||||
Uplifting [] best 447 combination
|
Uplifting [] best 607 combination
|
||||||
|
Attempting to uplift remaining variables inzp ZP_BYTE:5 [ print2::j#2 print2::j#1 ]
|
||||||
|
Uplifting [print2] best 607 combination zp ZP_BYTE:5 [ print2::j#2 print2::j#1 ]
|
||||||
|
Allocated (was zp ZP_BYTE:5) zp ZP_BYTE:4 [ print2::j#2 print2::j#1 ]
|
||||||
|
|
||||||
ASSEMBLER BEFORE OPTIMIZATION
|
ASSEMBLER BEFORE OPTIMIZATION
|
||||||
// File Comments
|
// File Comments
|
||||||
@ -440,19 +447,23 @@ main: {
|
|||||||
// print2
|
// print2
|
||||||
// print2(byte* zeropage(2) at)
|
// print2(byte* zeropage(2) at)
|
||||||
print2: {
|
print2: {
|
||||||
|
.label j = 4
|
||||||
.label at = 2
|
.label at = 2
|
||||||
// [10] phi from print2 to print2::@1 [phi:print2->print2::@1]
|
// [10] phi from print2 to print2::@1 [phi:print2->print2::@1]
|
||||||
b1_from_print2:
|
b1_from_print2:
|
||||||
// [10] phi (byte) print2::j#2 = (byte) 0 [phi:print2->print2::@1#0] -- vbuyy=vbuc1
|
// [10] phi (byte) print2::j#2 = (byte) 0 [phi:print2->print2::@1#0] -- vbuz1=vbuc1
|
||||||
ldy #0
|
lda #0
|
||||||
|
sta j
|
||||||
// [10] phi (byte) print2::i#2 = (byte) 0 [phi:print2->print2::@1#1] -- vbuxx=vbuc1
|
// [10] phi (byte) print2::i#2 = (byte) 0 [phi:print2->print2::@1#1] -- vbuxx=vbuc1
|
||||||
ldx #0
|
ldx #0
|
||||||
jmp b1
|
jmp b1
|
||||||
// print2::@1
|
// print2::@1
|
||||||
b1:
|
b1:
|
||||||
// [11] if(*((const byte*) main::hello#0 + (byte) print2::i#2)!=(byte) '@') goto print2::@2 -- pbuc1_derefidx_vbuxx_neq_vbuc2_then_la1
|
// [11] if((byte) 0!=*((const byte*) main::hello#0 + (byte) print2::i#2)) goto print2::@2 -- vbuc1_neq_pbuc2_derefidx_vbuxx_then_la1
|
||||||
lda main.hello,x
|
txa
|
||||||
cmp #'@'
|
tay
|
||||||
|
lda #0
|
||||||
|
cmp main.hello,y
|
||||||
bne b2
|
bne b2
|
||||||
jmp breturn
|
jmp breturn
|
||||||
// print2::@return
|
// print2::@return
|
||||||
@ -461,12 +472,15 @@ print2: {
|
|||||||
rts
|
rts
|
||||||
// print2::@2
|
// print2::@2
|
||||||
b2:
|
b2:
|
||||||
// [13] *((byte*) print2::at#4 + (byte) print2::j#2) ← *((const byte*) main::hello#0 + (byte) print2::i#2) -- pbuz1_derefidx_vbuyy=pbuc1_derefidx_vbuxx
|
// [13] *((byte*) print2::at#4 + (byte) print2::j#2) ← *((const byte*) main::hello#0 + (byte) print2::i#2) -- pbuz1_derefidx_vbuz2=pbuc1_derefidx_vbuxx
|
||||||
lda main.hello,x
|
lda main.hello,x
|
||||||
|
ldy j
|
||||||
sta (at),y
|
sta (at),y
|
||||||
// [14] (byte) print2::j#1 ← (byte) print2::j#2 + (byte) 2 -- vbuyy=vbuyy_plus_2
|
// [14] (byte) print2::j#1 ← (byte) print2::j#2 + (byte) 2 -- vbuz1=vbuz1_plus_2
|
||||||
iny
|
lda j
|
||||||
iny
|
clc
|
||||||
|
adc #2
|
||||||
|
sta j
|
||||||
// [15] (byte) print2::i#1 ← ++ (byte) print2::i#2 -- vbuxx=_inc_vbuxx
|
// [15] (byte) print2::i#1 ← ++ (byte) print2::i#2 -- vbuxx=_inc_vbuxx
|
||||||
inx
|
inx
|
||||||
// [10] phi from print2::@2 to print2::@1 [phi:print2::@2->print2::@1]
|
// [10] phi from print2::@2 to print2::@1 [phi:print2::@2->print2::@1]
|
||||||
@ -485,6 +499,8 @@ Removing instruction jmp breturn
|
|||||||
Removing instruction jmp b1
|
Removing instruction jmp b1
|
||||||
Removing instruction jmp breturn
|
Removing instruction jmp breturn
|
||||||
Succesful ASM optimization Pass5NextJumpElimination
|
Succesful ASM optimization Pass5NextJumpElimination
|
||||||
|
Replacing instruction ldx #0 with TAX
|
||||||
|
Replacing instruction lda j with TYA
|
||||||
Removing instruction b1_from_bbegin:
|
Removing instruction b1_from_bbegin:
|
||||||
Removing instruction b1:
|
Removing instruction b1:
|
||||||
Removing instruction main_from_b1:
|
Removing instruction main_from_b1:
|
||||||
@ -525,19 +541,19 @@ FINAL SYMBOL TABLE
|
|||||||
(byte) print2::i#1 reg byte x 22.0
|
(byte) print2::i#1 reg byte x 22.0
|
||||||
(byte) print2::i#2 reg byte x 11.0
|
(byte) print2::i#2 reg byte x 11.0
|
||||||
(byte) print2::j
|
(byte) print2::j
|
||||||
(byte) print2::j#1 reg byte y 11.0
|
(byte) print2::j#1 j zp ZP_BYTE:4 11.0
|
||||||
(byte) print2::j#2 reg byte y 11.0
|
(byte) print2::j#2 j zp ZP_BYTE:4 11.0
|
||||||
(byte*) print2::msg
|
(byte*) print2::msg
|
||||||
(byte*) screen
|
(byte*) screen
|
||||||
(const byte*) screen#0 screen = (byte*) 1024
|
(const byte*) screen#0 screen = (byte*) 1024
|
||||||
|
|
||||||
zp ZP_WORD:2 [ print2::at#4 ]
|
zp ZP_WORD:2 [ print2::at#4 ]
|
||||||
reg byte x [ print2::i#2 print2::i#1 ]
|
reg byte x [ print2::i#2 print2::i#1 ]
|
||||||
reg byte y [ print2::j#2 print2::j#1 ]
|
zp ZP_BYTE:4 [ print2::j#2 print2::j#1 ]
|
||||||
|
|
||||||
|
|
||||||
FINAL ASSEMBLER
|
FINAL ASSEMBLER
|
||||||
Score: 369
|
Score: 519
|
||||||
|
|
||||||
// File Comments
|
// File Comments
|
||||||
// Upstart
|
// Upstart
|
||||||
@ -585,18 +601,22 @@ main: {
|
|||||||
// print2
|
// print2
|
||||||
// print2(byte* zeropage(2) at)
|
// print2(byte* zeropage(2) at)
|
||||||
print2: {
|
print2: {
|
||||||
|
.label j = 4
|
||||||
.label at = 2
|
.label at = 2
|
||||||
// [10] phi from print2 to print2::@1 [phi:print2->print2::@1]
|
// [10] phi from print2 to print2::@1 [phi:print2->print2::@1]
|
||||||
// [10] phi (byte) print2::j#2 = (byte) 0 [phi:print2->print2::@1#0] -- vbuyy=vbuc1
|
// [10] phi (byte) print2::j#2 = (byte) 0 [phi:print2->print2::@1#0] -- vbuz1=vbuc1
|
||||||
ldy #0
|
lda #0
|
||||||
|
sta j
|
||||||
// [10] phi (byte) print2::i#2 = (byte) 0 [phi:print2->print2::@1#1] -- vbuxx=vbuc1
|
// [10] phi (byte) print2::i#2 = (byte) 0 [phi:print2->print2::@1#1] -- vbuxx=vbuc1
|
||||||
ldx #0
|
tax
|
||||||
// print2::@1
|
// print2::@1
|
||||||
b1:
|
b1:
|
||||||
// for(byte i=0; msg[i]!='@'; i++)
|
// for(byte i=0; msg[i]; i++)
|
||||||
// [11] if(*((const byte*) main::hello#0 + (byte) print2::i#2)!=(byte) '@') goto print2::@2 -- pbuc1_derefidx_vbuxx_neq_vbuc2_then_la1
|
// [11] if((byte) 0!=*((const byte*) main::hello#0 + (byte) print2::i#2)) goto print2::@2 -- vbuc1_neq_pbuc2_derefidx_vbuxx_then_la1
|
||||||
lda main.hello,x
|
txa
|
||||||
cmp #'@'
|
tay
|
||||||
|
lda #0
|
||||||
|
cmp main.hello,y
|
||||||
bne b2
|
bne b2
|
||||||
// print2::@return
|
// print2::@return
|
||||||
// }
|
// }
|
||||||
@ -605,14 +625,17 @@ print2: {
|
|||||||
// print2::@2
|
// print2::@2
|
||||||
b2:
|
b2:
|
||||||
// at[j] = msg[i]
|
// at[j] = msg[i]
|
||||||
// [13] *((byte*) print2::at#4 + (byte) print2::j#2) ← *((const byte*) main::hello#0 + (byte) print2::i#2) -- pbuz1_derefidx_vbuyy=pbuc1_derefidx_vbuxx
|
// [13] *((byte*) print2::at#4 + (byte) print2::j#2) ← *((const byte*) main::hello#0 + (byte) print2::i#2) -- pbuz1_derefidx_vbuz2=pbuc1_derefidx_vbuxx
|
||||||
lda main.hello,x
|
lda main.hello,x
|
||||||
|
ldy j
|
||||||
sta (at),y
|
sta (at),y
|
||||||
// j += 2
|
// j += 2
|
||||||
// [14] (byte) print2::j#1 ← (byte) print2::j#2 + (byte) 2 -- vbuyy=vbuyy_plus_2
|
// [14] (byte) print2::j#1 ← (byte) print2::j#2 + (byte) 2 -- vbuz1=vbuz1_plus_2
|
||||||
iny
|
tya
|
||||||
iny
|
clc
|
||||||
// for(byte i=0; msg[i]!='@'; i++)
|
adc #2
|
||||||
|
sta j
|
||||||
|
// for(byte i=0; msg[i]; i++)
|
||||||
// [15] (byte) print2::i#1 ← ++ (byte) print2::i#2 -- vbuxx=_inc_vbuxx
|
// [15] (byte) print2::i#1 ← ++ (byte) print2::i#2 -- vbuxx=_inc_vbuxx
|
||||||
inx
|
inx
|
||||||
// [10] phi from print2::@2 to print2::@1 [phi:print2::@2->print2::@1]
|
// [10] phi from print2::@2 to print2::@1 [phi:print2::@2->print2::@1]
|
||||||
|
@ -16,12 +16,12 @@
|
|||||||
(byte) print2::i#1 reg byte x 22.0
|
(byte) print2::i#1 reg byte x 22.0
|
||||||
(byte) print2::i#2 reg byte x 11.0
|
(byte) print2::i#2 reg byte x 11.0
|
||||||
(byte) print2::j
|
(byte) print2::j
|
||||||
(byte) print2::j#1 reg byte y 11.0
|
(byte) print2::j#1 j zp ZP_BYTE:4 11.0
|
||||||
(byte) print2::j#2 reg byte y 11.0
|
(byte) print2::j#2 j zp ZP_BYTE:4 11.0
|
||||||
(byte*) print2::msg
|
(byte*) print2::msg
|
||||||
(byte*) screen
|
(byte*) screen
|
||||||
(const byte*) screen#0 screen = (byte*) 1024
|
(const byte*) screen#0 screen = (byte*) 1024
|
||||||
|
|
||||||
zp ZP_WORD:2 [ print2::at#4 ]
|
zp ZP_WORD:2 [ print2::at#4 ]
|
||||||
reg byte x [ print2::i#2 print2::i#1 ]
|
reg byte x [ print2::i#2 print2::i#1 ]
|
||||||
reg byte y [ print2::j#2 print2::j#1 ]
|
zp ZP_BYTE:4 [ print2::j#2 print2::j#1 ]
|
||||||
|
@ -63,7 +63,7 @@ print_str: {
|
|||||||
b1:
|
b1:
|
||||||
ldy #0
|
ldy #0
|
||||||
lda (str),y
|
lda (str),y
|
||||||
cmp #'@'
|
cmp #0
|
||||||
bne b2
|
bne b2
|
||||||
rts
|
rts
|
||||||
b2:
|
b2:
|
||||||
|
@ -49,7 +49,7 @@ print_str: scope:[print_str] from main::@1
|
|||||||
print_str::@1: scope:[print_str] from print_str print_str::@2
|
print_str::@1: scope:[print_str] from print_str print_str::@2
|
||||||
[21] (byte*) print_char_cursor#12 ← phi( print_str/(byte*) print_char_cursor#25 print_str::@2/(byte*) print_char_cursor#1 )
|
[21] (byte*) print_char_cursor#12 ← phi( print_str/(byte*) print_char_cursor#25 print_str::@2/(byte*) print_char_cursor#1 )
|
||||||
[21] (byte*) print_str::str#2 ← phi( print_str/(const byte[]) txt#0 print_str::@2/(byte*) print_str::str#0 )
|
[21] (byte*) print_str::str#2 ← phi( print_str/(const byte[]) txt#0 print_str::@2/(byte*) print_str::str#0 )
|
||||||
[22] if(*((byte*) print_str::str#2)!=(byte) '@') goto print_str::@2
|
[22] if((byte) 0!=*((byte*) print_str::str#2)) goto print_str::@2
|
||||||
to:print_str::@return
|
to:print_str::@return
|
||||||
print_str::@return: scope:[print_str] from print_str::@1
|
print_str::@return: scope:[print_str] from print_str::@1
|
||||||
[23] return
|
[23] return
|
||||||
|
@ -4,6 +4,11 @@ Fixing pointer addition (word*~) bsearch16u::$1 ← (word*) bsearch16u::items -
|
|||||||
Fixing pointer array-indexing *((word*) utoa::digit_values + (byte) utoa::digit)
|
Fixing pointer array-indexing *((word*) utoa::digit_values + (byte) utoa::digit)
|
||||||
Fixing pointer array-indexing *((dword*) ultoa::digit_values + (byte) ultoa::digit)
|
Fixing pointer array-indexing *((dword*) ultoa::digit_values + (byte) ultoa::digit)
|
||||||
Warning! Adding boolean cast to non-boolean condition *((byte*) strcpy::src)
|
Warning! Adding boolean cast to non-boolean condition *((byte*) strcpy::src)
|
||||||
|
Warning! Adding boolean cast to non-boolean condition *((byte*) print_str_lines::str)
|
||||||
|
Warning! Adding boolean cast to non-boolean condition (byte) print_str_lines::ch
|
||||||
|
Warning! Adding boolean cast to non-boolean condition *((byte*) print_str::str)
|
||||||
|
Warning! Adding boolean cast to non-boolean condition *((byte*) print_str_at::str)
|
||||||
|
Warning! Adding boolean cast to non-boolean sub-expression (byte) print_str_lines::ch
|
||||||
Identified constant variable (byte*) HEAP_TOP
|
Identified constant variable (byte*) HEAP_TOP
|
||||||
Culled Empty Block (label) @1
|
Culled Empty Block (label) @1
|
||||||
Culled Empty Block (label) @2
|
Culled Empty Block (label) @2
|
||||||
@ -107,7 +112,7 @@ print_str: scope:[print_str] from main::@1
|
|||||||
print_str::@1: scope:[print_str] from print_str print_str::@2
|
print_str::@1: scope:[print_str] from print_str print_str::@2
|
||||||
(byte*) print_char_cursor#22 ← phi( print_str/(byte*) print_char_cursor#27 print_str::@2/(byte*) print_char_cursor#1 )
|
(byte*) print_char_cursor#22 ← phi( print_str/(byte*) print_char_cursor#27 print_str::@2/(byte*) print_char_cursor#1 )
|
||||||
(byte*) print_str::str#2 ← phi( print_str/(byte*) print_str::str#4 print_str::@2/(byte*) print_str::str#0 )
|
(byte*) print_str::str#2 ← phi( print_str/(byte*) print_str::str#4 print_str::@2/(byte*) print_str::str#0 )
|
||||||
(bool~) print_str::$0 ← *((byte*) print_str::str#2) != (byte) '@'
|
(bool~) print_str::$0 ← (number) 0 != *((byte*) print_str::str#2)
|
||||||
if((bool~) print_str::$0) goto print_str::@2
|
if((bool~) print_str::$0) goto print_str::@2
|
||||||
to:print_str::@return
|
to:print_str::@return
|
||||||
print_str::@2: scope:[print_str] from print_str::@1
|
print_str::@2: scope:[print_str] from print_str::@1
|
||||||
@ -382,6 +387,7 @@ SYMBOL TABLE SSA
|
|||||||
(byte[]) txt#0
|
(byte[]) txt#0
|
||||||
|
|
||||||
Adding number conversion cast (unumber) 0 in (bool~) memset::$0 ← (word) memset::num#1 > (number) 0
|
Adding number conversion cast (unumber) 0 in (bool~) memset::$0 ← (word) memset::num#1 > (number) 0
|
||||||
|
Adding number conversion cast (unumber) 0 in (bool~) print_str::$0 ← (number) 0 != *((byte*) print_str::str#2)
|
||||||
Adding number conversion cast (unumber) $28 in (byte*~) print_ln::$0 ← (byte*) print_line_cursor#9 + (number) $28
|
Adding number conversion cast (unumber) $28 in (byte*~) print_ln::$0 ← (byte*) print_line_cursor#9 + (number) $28
|
||||||
Adding number conversion cast (unumber) $3e8 in (word) memset::num#0 ← (number) $3e8
|
Adding number conversion cast (unumber) $3e8 in (word) memset::num#0 ← (number) $3e8
|
||||||
Adding number conversion cast (unumber) 1 in *((byte[]) txt#0 + (number) 1) ← ++ *((byte[]) txt#0 + (number) 1)
|
Adding number conversion cast (unumber) 1 in *((byte[]) txt#0 + (number) 1) ← ++ *((byte[]) txt#0 + (number) 1)
|
||||||
@ -394,12 +400,14 @@ Inlining cast (word) memset::num#0 ← (unumber)(number) $3e8
|
|||||||
Successful SSA optimization Pass2InlineCast
|
Successful SSA optimization Pass2InlineCast
|
||||||
Simplifying constant integer cast 0
|
Simplifying constant integer cast 0
|
||||||
Simplifying constant pointer cast (byte*) 1024
|
Simplifying constant pointer cast (byte*) 1024
|
||||||
|
Simplifying constant integer cast 0
|
||||||
Simplifying constant integer cast $28
|
Simplifying constant integer cast $28
|
||||||
Simplifying constant integer cast $3e8
|
Simplifying constant integer cast $3e8
|
||||||
Simplifying constant integer cast 1
|
Simplifying constant integer cast 1
|
||||||
Simplifying constant integer cast 1
|
Simplifying constant integer cast 1
|
||||||
Successful SSA optimization PassNCastSimplification
|
Successful SSA optimization PassNCastSimplification
|
||||||
Finalized unsigned number type (byte) 0
|
Finalized unsigned number type (byte) 0
|
||||||
|
Finalized unsigned number type (byte) 0
|
||||||
Finalized unsigned number type (byte) $28
|
Finalized unsigned number type (byte) $28
|
||||||
Finalized unsigned number type (word) $3e8
|
Finalized unsigned number type (word) $3e8
|
||||||
Finalized unsigned number type (byte) 1
|
Finalized unsigned number type (byte) 1
|
||||||
@ -458,7 +466,7 @@ Identical Phi Values (void*) memset::return#0 (void*) memset::str#0
|
|||||||
Successful SSA optimization Pass2IdenticalPhiElimination
|
Successful SSA optimization Pass2IdenticalPhiElimination
|
||||||
Simple Condition (bool~) memset::$1 [3] if((word) memset::num#0<=(byte) 0) goto memset::@1
|
Simple Condition (bool~) memset::$1 [3] if((word) memset::num#0<=(byte) 0) goto memset::@1
|
||||||
Simple Condition (bool~) memset::$4 [13] if((byte*) memset::dst#2!=(byte*) memset::end#0) goto memset::@5
|
Simple Condition (bool~) memset::$4 [13] if((byte*) memset::dst#2!=(byte*) memset::end#0) goto memset::@5
|
||||||
Simple Condition (bool~) print_str::$0 [26] if(*((byte*) print_str::str#2)!=(byte) '@') goto print_str::@2
|
Simple Condition (bool~) print_str::$0 [26] if((byte) 0!=*((byte*) print_str::str#2)) goto print_str::@2
|
||||||
Simple Condition (bool~) print_ln::$1 [39] if((byte*) print_line_cursor#1<(byte*) print_char_cursor#12) goto print_ln::@1
|
Simple Condition (bool~) print_ln::$1 [39] if((byte*) print_line_cursor#1<(byte*) print_char_cursor#12) goto print_ln::@1
|
||||||
Simple Condition (bool~) main::$3 [79] if((byte) main::i#1!=rangelast(0,$a)) goto main::@1
|
Simple Condition (bool~) main::$3 [79] if((byte) main::i#1!=rangelast(0,$a)) goto main::@1
|
||||||
Successful SSA optimization Pass2ConditionalJumpSimplification
|
Successful SSA optimization Pass2ConditionalJumpSimplification
|
||||||
@ -631,7 +639,7 @@ print_str: scope:[print_str] from main::@1
|
|||||||
print_str::@1: scope:[print_str] from print_str print_str::@2
|
print_str::@1: scope:[print_str] from print_str print_str::@2
|
||||||
[21] (byte*) print_char_cursor#12 ← phi( print_str/(byte*) print_char_cursor#25 print_str::@2/(byte*) print_char_cursor#1 )
|
[21] (byte*) print_char_cursor#12 ← phi( print_str/(byte*) print_char_cursor#25 print_str::@2/(byte*) print_char_cursor#1 )
|
||||||
[21] (byte*) print_str::str#2 ← phi( print_str/(const byte[]) txt#0 print_str::@2/(byte*) print_str::str#0 )
|
[21] (byte*) print_str::str#2 ← phi( print_str/(const byte[]) txt#0 print_str::@2/(byte*) print_str::str#0 )
|
||||||
[22] if(*((byte*) print_str::str#2)!=(byte) '@') goto print_str::@2
|
[22] if((byte) 0!=*((byte*) print_str::str#2)) goto print_str::@2
|
||||||
to:print_str::@return
|
to:print_str::@return
|
||||||
print_str::@return: scope:[print_str] from print_str::@1
|
print_str::@return: scope:[print_str] from print_str::@1
|
||||||
[23] return
|
[23] return
|
||||||
@ -860,10 +868,10 @@ print_str: {
|
|||||||
jmp b1
|
jmp b1
|
||||||
// print_str::@1
|
// print_str::@1
|
||||||
b1:
|
b1:
|
||||||
// [22] if(*((byte*) print_str::str#2)!=(byte) '@') goto print_str::@2 -- _deref_pbuz1_neq_vbuc1_then_la1
|
// [22] if((byte) 0!=*((byte*) print_str::str#2)) goto print_str::@2 -- vbuc1_neq__deref_pbuz1_then_la1
|
||||||
ldy #0
|
ldy #0
|
||||||
lda (str),y
|
lda (str),y
|
||||||
cmp #'@'
|
cmp #0
|
||||||
bne b2
|
bne b2
|
||||||
jmp breturn
|
jmp breturn
|
||||||
// print_str::@return
|
// print_str::@return
|
||||||
@ -963,7 +971,7 @@ Removing always clobbered register reg byte a as potential for zp ZP_BYTE:2 [ ma
|
|||||||
Statement [14] (byte*~) print_char_cursor#31 ← (byte*) print_line_cursor#1 [ print_char_cursor#31 print_line_cursor#1 main::i#1 ] ( main:2 [ print_char_cursor#31 print_line_cursor#1 main::i#1 ] ) always clobbers reg byte a
|
Statement [14] (byte*~) print_char_cursor#31 ← (byte*) print_line_cursor#1 [ print_char_cursor#31 print_line_cursor#1 main::i#1 ] ( main:2 [ print_char_cursor#31 print_line_cursor#1 main::i#1 ] ) always clobbers reg byte a
|
||||||
Statement [17] (byte*) print_line_cursor#1 ← (byte*) print_line_cursor#9 + (byte) $28 [ print_line_cursor#1 print_char_cursor#12 ] ( main:2::print_ln:9 [ main::i#2 print_line_cursor#1 print_char_cursor#12 ] ) always clobbers reg byte a
|
Statement [17] (byte*) print_line_cursor#1 ← (byte*) print_line_cursor#9 + (byte) $28 [ print_line_cursor#1 print_char_cursor#12 ] ( main:2::print_ln:9 [ main::i#2 print_line_cursor#1 print_char_cursor#12 ] ) always clobbers reg byte a
|
||||||
Statement [18] if((byte*) print_line_cursor#1<(byte*) print_char_cursor#12) goto print_ln::@1 [ print_line_cursor#1 print_char_cursor#12 ] ( main:2::print_ln:9 [ main::i#2 print_line_cursor#1 print_char_cursor#12 ] ) always clobbers reg byte a
|
Statement [18] if((byte*) print_line_cursor#1<(byte*) print_char_cursor#12) goto print_ln::@1 [ print_line_cursor#1 print_char_cursor#12 ] ( main:2::print_ln:9 [ main::i#2 print_line_cursor#1 print_char_cursor#12 ] ) always clobbers reg byte a
|
||||||
Statement [22] if(*((byte*) print_str::str#2)!=(byte) '@') goto print_str::@2 [ print_char_cursor#12 print_str::str#2 ] ( main:2::print_str:7 [ print_line_cursor#19 main::i#2 print_char_cursor#12 print_str::str#2 ] ) always clobbers reg byte a reg byte y
|
Statement [22] if((byte) 0!=*((byte*) print_str::str#2)) goto print_str::@2 [ print_char_cursor#12 print_str::str#2 ] ( main:2::print_str:7 [ print_line_cursor#19 main::i#2 print_char_cursor#12 print_str::str#2 ] ) always clobbers reg byte a reg byte y
|
||||||
Removing always clobbered register reg byte y as potential for zp ZP_BYTE:2 [ main::i#2 main::i#1 ]
|
Removing always clobbered register reg byte y as potential for zp ZP_BYTE:2 [ main::i#2 main::i#1 ]
|
||||||
Statement [24] *((byte*) print_char_cursor#12) ← *((byte*) print_str::str#2) [ print_char_cursor#12 print_str::str#2 ] ( main:2::print_str:7 [ print_line_cursor#19 main::i#2 print_char_cursor#12 print_str::str#2 ] ) always clobbers reg byte a reg byte y
|
Statement [24] *((byte*) print_char_cursor#12) ← *((byte*) print_str::str#2) [ print_char_cursor#12 print_str::str#2 ] ( main:2::print_str:7 [ print_line_cursor#19 main::i#2 print_char_cursor#12 print_str::str#2 ] ) always clobbers reg byte a reg byte y
|
||||||
Statement [32] *((byte*) memset::dst#4) ← (const byte) memset::c#0 [ memset::dst#4 ] ( main:2::print_cls:5::memset:28 [ memset::dst#4 ] ) always clobbers reg byte a reg byte y
|
Statement [32] *((byte*) memset::dst#4) ← (const byte) memset::c#0 [ memset::dst#4 ] ( main:2::print_cls:5::memset:28 [ memset::dst#4 ] ) always clobbers reg byte a reg byte y
|
||||||
@ -972,7 +980,7 @@ Statement [10] *((const byte[]) txt#0+(byte) 1) ← ++ *((const byte[]) txt#0+(b
|
|||||||
Statement [14] (byte*~) print_char_cursor#31 ← (byte*) print_line_cursor#1 [ print_char_cursor#31 print_line_cursor#1 main::i#1 ] ( main:2 [ print_char_cursor#31 print_line_cursor#1 main::i#1 ] ) always clobbers reg byte a
|
Statement [14] (byte*~) print_char_cursor#31 ← (byte*) print_line_cursor#1 [ print_char_cursor#31 print_line_cursor#1 main::i#1 ] ( main:2 [ print_char_cursor#31 print_line_cursor#1 main::i#1 ] ) always clobbers reg byte a
|
||||||
Statement [17] (byte*) print_line_cursor#1 ← (byte*) print_line_cursor#9 + (byte) $28 [ print_line_cursor#1 print_char_cursor#12 ] ( main:2::print_ln:9 [ main::i#2 print_line_cursor#1 print_char_cursor#12 ] ) always clobbers reg byte a
|
Statement [17] (byte*) print_line_cursor#1 ← (byte*) print_line_cursor#9 + (byte) $28 [ print_line_cursor#1 print_char_cursor#12 ] ( main:2::print_ln:9 [ main::i#2 print_line_cursor#1 print_char_cursor#12 ] ) always clobbers reg byte a
|
||||||
Statement [18] if((byte*) print_line_cursor#1<(byte*) print_char_cursor#12) goto print_ln::@1 [ print_line_cursor#1 print_char_cursor#12 ] ( main:2::print_ln:9 [ main::i#2 print_line_cursor#1 print_char_cursor#12 ] ) always clobbers reg byte a
|
Statement [18] if((byte*) print_line_cursor#1<(byte*) print_char_cursor#12) goto print_ln::@1 [ print_line_cursor#1 print_char_cursor#12 ] ( main:2::print_ln:9 [ main::i#2 print_line_cursor#1 print_char_cursor#12 ] ) always clobbers reg byte a
|
||||||
Statement [22] if(*((byte*) print_str::str#2)!=(byte) '@') goto print_str::@2 [ print_char_cursor#12 print_str::str#2 ] ( main:2::print_str:7 [ print_line_cursor#19 main::i#2 print_char_cursor#12 print_str::str#2 ] ) always clobbers reg byte a reg byte y
|
Statement [22] if((byte) 0!=*((byte*) print_str::str#2)) goto print_str::@2 [ print_char_cursor#12 print_str::str#2 ] ( main:2::print_str:7 [ print_line_cursor#19 main::i#2 print_char_cursor#12 print_str::str#2 ] ) always clobbers reg byte a reg byte y
|
||||||
Statement [24] *((byte*) print_char_cursor#12) ← *((byte*) print_str::str#2) [ print_char_cursor#12 print_str::str#2 ] ( main:2::print_str:7 [ print_line_cursor#19 main::i#2 print_char_cursor#12 print_str::str#2 ] ) always clobbers reg byte a reg byte y
|
Statement [24] *((byte*) print_char_cursor#12) ← *((byte*) print_str::str#2) [ print_char_cursor#12 print_str::str#2 ] ( main:2::print_str:7 [ print_line_cursor#19 main::i#2 print_char_cursor#12 print_str::str#2 ] ) always clobbers reg byte a reg byte y
|
||||||
Statement [32] *((byte*) memset::dst#4) ← (const byte) memset::c#0 [ memset::dst#4 ] ( main:2::print_cls:5::memset:28 [ memset::dst#4 ] ) always clobbers reg byte a reg byte y
|
Statement [32] *((byte*) memset::dst#4) ← (const byte) memset::c#0 [ memset::dst#4 ] ( main:2::print_cls:5::memset:28 [ memset::dst#4 ] ) always clobbers reg byte a reg byte y
|
||||||
Statement [34] if((byte*) memset::dst#1!=(const byte*) memset::end#0) goto memset::@2 [ memset::dst#1 ] ( main:2::print_cls:5::memset:28 [ memset::dst#1 ] ) always clobbers reg byte a
|
Statement [34] if((byte*) memset::dst#1!=(const byte*) memset::end#0) goto memset::@2 [ memset::dst#1 ] ( main:2::print_cls:5::memset:28 [ memset::dst#1 ] ) always clobbers reg byte a
|
||||||
@ -1145,10 +1153,10 @@ print_str: {
|
|||||||
jmp b1
|
jmp b1
|
||||||
// print_str::@1
|
// print_str::@1
|
||||||
b1:
|
b1:
|
||||||
// [22] if(*((byte*) print_str::str#2)!=(byte) '@') goto print_str::@2 -- _deref_pbuz1_neq_vbuc1_then_la1
|
// [22] if((byte) 0!=*((byte*) print_str::str#2)) goto print_str::@2 -- vbuc1_neq__deref_pbuz1_then_la1
|
||||||
ldy #0
|
ldy #0
|
||||||
lda (str),y
|
lda (str),y
|
||||||
cmp #'@'
|
cmp #0
|
||||||
bne b2
|
bne b2
|
||||||
jmp breturn
|
jmp breturn
|
||||||
// print_str::@return
|
// print_str::@return
|
||||||
@ -1488,11 +1496,11 @@ print_str: {
|
|||||||
sta str+1
|
sta str+1
|
||||||
// print_str::@1
|
// print_str::@1
|
||||||
b1:
|
b1:
|
||||||
// while(*str!='@')
|
// while(*str)
|
||||||
// [22] if(*((byte*) print_str::str#2)!=(byte) '@') goto print_str::@2 -- _deref_pbuz1_neq_vbuc1_then_la1
|
// [22] if((byte) 0!=*((byte*) print_str::str#2)) goto print_str::@2 -- vbuc1_neq__deref_pbuz1_then_la1
|
||||||
ldy #0
|
ldy #0
|
||||||
lda (str),y
|
lda (str),y
|
||||||
cmp #'@'
|
cmp #0
|
||||||
bne b2
|
bne b2
|
||||||
// print_str::@return
|
// print_str::@return
|
||||||
// }
|
// }
|
||||||
|
@ -8,13 +8,13 @@ main: {
|
|||||||
ldx #0
|
ldx #0
|
||||||
ldy #0
|
ldy #0
|
||||||
print1_b1:
|
print1_b1:
|
||||||
lda #'@'
|
lda #0
|
||||||
cmp hello,y
|
cmp hello,y
|
||||||
bne print1_b2
|
bne print1_b2
|
||||||
ldx #0
|
tax
|
||||||
ldy #0
|
tay
|
||||||
print2_b1:
|
print2_b1:
|
||||||
lda #'@'
|
lda #0
|
||||||
cmp hello,y
|
cmp hello,y
|
||||||
bne print2_b2
|
bne print2_b2
|
||||||
rts
|
rts
|
||||||
|
@ -16,7 +16,7 @@ main::print1: scope:[main] from main
|
|||||||
main::print1_@1: scope:[main] from main::print1 main::print1_@2
|
main::print1_@1: scope:[main] from main::print1 main::print1_@2
|
||||||
[6] (byte) main::print1_j#2 ← phi( main::print1/(byte) 0 main::print1_@2/(byte) main::print1_j#1 )
|
[6] (byte) main::print1_j#2 ← phi( main::print1/(byte) 0 main::print1_@2/(byte) main::print1_j#1 )
|
||||||
[6] (byte) main::print1_i#2 ← phi( main::print1/(byte) 0 main::print1_@2/(byte) main::print1_i#1 )
|
[6] (byte) main::print1_i#2 ← phi( main::print1/(byte) 0 main::print1_@2/(byte) main::print1_i#1 )
|
||||||
[7] if(*((const byte*) main::hello#0 + (byte) main::print1_i#2)!=(byte) '@') goto main::print1_@2
|
[7] if((byte) 0!=*((const byte*) main::hello#0 + (byte) main::print1_i#2)) goto main::print1_@2
|
||||||
to:main::print2
|
to:main::print2
|
||||||
main::print2: scope:[main] from main::print1_@1
|
main::print2: scope:[main] from main::print1_@1
|
||||||
[8] phi()
|
[8] phi()
|
||||||
@ -24,7 +24,7 @@ main::print2: scope:[main] from main::print1_@1
|
|||||||
main::print2_@1: scope:[main] from main::print2 main::print2_@2
|
main::print2_@1: scope:[main] from main::print2 main::print2_@2
|
||||||
[9] (byte) main::print2_j#2 ← phi( main::print2/(byte) 0 main::print2_@2/(byte) main::print2_j#1 )
|
[9] (byte) main::print2_j#2 ← phi( main::print2/(byte) 0 main::print2_@2/(byte) main::print2_j#1 )
|
||||||
[9] (byte) main::print2_i#2 ← phi( main::print2/(byte) 0 main::print2_@2/(byte) main::print2_i#1 )
|
[9] (byte) main::print2_i#2 ← phi( main::print2/(byte) 0 main::print2_@2/(byte) main::print2_i#1 )
|
||||||
[10] if(*((const byte*) main::hello#0 + (byte) main::print2_i#2)!=(byte) '@') goto main::print2_@2
|
[10] if((byte) 0!=*((const byte*) main::hello#0 + (byte) main::print2_i#2)) goto main::print2_@2
|
||||||
to:main::@return
|
to:main::@return
|
||||||
main::@return: scope:[main] from main::print2_@1
|
main::@return: scope:[main] from main::print2_@1
|
||||||
[11] return
|
[11] return
|
||||||
|
@ -1,3 +1,4 @@
|
|||||||
|
Warning! Adding boolean cast to non-boolean condition *((byte*) print::msg + (byte) print::i)
|
||||||
Identified constant variable (byte*) screen
|
Identified constant variable (byte*) screen
|
||||||
Identified constant variable (byte*) main::hello
|
Identified constant variable (byte*) main::hello
|
||||||
Inlined call call print (byte*) screen (byte*) main::hello
|
Inlined call call print (byte*) screen (byte*) main::hello
|
||||||
@ -35,7 +36,7 @@ main::print1_@1: scope:[main] from main::print1 main::print1_@2
|
|||||||
(byte*) main::print1_at#2 ← phi( main::print1/(byte*) main::print1_at#3 main::print1_@2/(byte*) main::print1_at#1 )
|
(byte*) main::print1_at#2 ← phi( main::print1/(byte*) main::print1_at#3 main::print1_@2/(byte*) main::print1_at#1 )
|
||||||
(byte) main::print1_i#2 ← phi( main::print1/(byte) main::print1_i#0 main::print1_@2/(byte) main::print1_i#1 )
|
(byte) main::print1_i#2 ← phi( main::print1/(byte) main::print1_i#0 main::print1_@2/(byte) main::print1_i#1 )
|
||||||
(byte*) main::print1_msg#1 ← phi( main::print1/(byte*) main::print1_msg#3 main::print1_@2/(byte*) main::print1_msg#2 )
|
(byte*) main::print1_msg#1 ← phi( main::print1/(byte*) main::print1_msg#3 main::print1_@2/(byte*) main::print1_msg#2 )
|
||||||
(bool~) main::print1_$0#0 ← *((byte*) main::print1_msg#1 + (byte) main::print1_i#2) != (byte) '@'
|
(bool~) main::print1_$0#0 ← (number) 0 != *((byte*) main::print1_msg#1 + (byte) main::print1_i#2)
|
||||||
if((bool~) main::print1_$0#0) goto main::print1_@2
|
if((bool~) main::print1_$0#0) goto main::print1_@2
|
||||||
to:main::@1
|
to:main::@1
|
||||||
main::print1_@2: scope:[main] from main::print1_@1
|
main::print1_@2: scope:[main] from main::print1_@1
|
||||||
@ -63,7 +64,7 @@ main::print2_@1: scope:[main] from main::print2 main::print2_@2
|
|||||||
(byte*) main::print2_at#2 ← phi( main::print2/(byte*) main::print2_at#3 main::print2_@2/(byte*) main::print2_at#1 )
|
(byte*) main::print2_at#2 ← phi( main::print2/(byte*) main::print2_at#3 main::print2_@2/(byte*) main::print2_at#1 )
|
||||||
(byte) main::print2_i#2 ← phi( main::print2/(byte) main::print2_i#0 main::print2_@2/(byte) main::print2_i#1 )
|
(byte) main::print2_i#2 ← phi( main::print2/(byte) main::print2_i#0 main::print2_@2/(byte) main::print2_i#1 )
|
||||||
(byte*) main::print2_msg#1 ← phi( main::print2/(byte*) main::print2_msg#3 main::print2_@2/(byte*) main::print2_msg#2 )
|
(byte*) main::print2_msg#1 ← phi( main::print2/(byte*) main::print2_msg#3 main::print2_@2/(byte*) main::print2_msg#2 )
|
||||||
(bool~) main::print2_$0#0 ← *((byte*) main::print2_msg#1 + (byte) main::print2_i#2) != (byte) '@'
|
(bool~) main::print2_$0#0 ← (number) 0 != *((byte*) main::print2_msg#1 + (byte) main::print2_i#2)
|
||||||
if((bool~) main::print2_$0#0) goto main::print2_@2
|
if((bool~) main::print2_$0#0) goto main::print2_@2
|
||||||
to:main::@return
|
to:main::@return
|
||||||
main::print2_@2: scope:[main] from main::print2_@1
|
main::print2_@2: scope:[main] from main::print2_@1
|
||||||
@ -152,10 +153,12 @@ SYMBOL TABLE SSA
|
|||||||
|
|
||||||
Adding number conversion cast (unumber) 0 in (byte) main::print1_j#0 ← (number) 0
|
Adding number conversion cast (unumber) 0 in (byte) main::print1_j#0 ← (number) 0
|
||||||
Adding number conversion cast (unumber) 0 in (byte) main::print1_i#0 ← (number) 0
|
Adding number conversion cast (unumber) 0 in (byte) main::print1_i#0 ← (number) 0
|
||||||
|
Adding number conversion cast (unumber) 0 in (bool~) main::print1_$0#0 ← (number) 0 != *((byte*) main::print1_msg#1 + (byte) main::print1_i#2)
|
||||||
Adding number conversion cast (unumber) 2 in (byte) main::print1_j#1 ← (byte) main::print1_j#2 + (number) 2
|
Adding number conversion cast (unumber) 2 in (byte) main::print1_j#1 ← (byte) main::print1_j#2 + (number) 2
|
||||||
Adding number conversion cast (unumber) 2*$28 in (byte*~) main::$1 ← (byte*) screen#0 + (number) 2*(number) $28
|
Adding number conversion cast (unumber) 2*$28 in (byte*~) main::$1 ← (byte*) screen#0 + (number) 2*(number) $28
|
||||||
Adding number conversion cast (unumber) 0 in (byte) main::print2_j#0 ← (number) 0
|
Adding number conversion cast (unumber) 0 in (byte) main::print2_j#0 ← (number) 0
|
||||||
Adding number conversion cast (unumber) 0 in (byte) main::print2_i#0 ← (number) 0
|
Adding number conversion cast (unumber) 0 in (byte) main::print2_i#0 ← (number) 0
|
||||||
|
Adding number conversion cast (unumber) 0 in (bool~) main::print2_$0#0 ← (number) 0 != *((byte*) main::print2_msg#1 + (byte) main::print2_i#2)
|
||||||
Adding number conversion cast (unumber) 2 in (byte) main::print2_j#1 ← (byte) main::print2_j#2 + (number) 2
|
Adding number conversion cast (unumber) 2 in (byte) main::print2_j#1 ← (byte) main::print2_j#2 + (number) 2
|
||||||
Successful SSA optimization PassNAddNumberTypeConversions
|
Successful SSA optimization PassNAddNumberTypeConversions
|
||||||
Inlining cast (byte*) screen#0 ← (byte*)(number) $400
|
Inlining cast (byte*) screen#0 ← (byte*)(number) $400
|
||||||
@ -167,16 +170,20 @@ Successful SSA optimization Pass2InlineCast
|
|||||||
Simplifying constant pointer cast (byte*) 1024
|
Simplifying constant pointer cast (byte*) 1024
|
||||||
Simplifying constant integer cast 0
|
Simplifying constant integer cast 0
|
||||||
Simplifying constant integer cast 0
|
Simplifying constant integer cast 0
|
||||||
|
Simplifying constant integer cast 0
|
||||||
Simplifying constant integer cast 2
|
Simplifying constant integer cast 2
|
||||||
Simplifying constant integer cast 0
|
Simplifying constant integer cast 0
|
||||||
Simplifying constant integer cast 0
|
Simplifying constant integer cast 0
|
||||||
|
Simplifying constant integer cast 0
|
||||||
Simplifying constant integer cast 2
|
Simplifying constant integer cast 2
|
||||||
Successful SSA optimization PassNCastSimplification
|
Successful SSA optimization PassNCastSimplification
|
||||||
Finalized unsigned number type (byte) 0
|
Finalized unsigned number type (byte) 0
|
||||||
Finalized unsigned number type (byte) 0
|
Finalized unsigned number type (byte) 0
|
||||||
|
Finalized unsigned number type (byte) 0
|
||||||
Finalized unsigned number type (byte) 2
|
Finalized unsigned number type (byte) 2
|
||||||
Finalized unsigned number type (byte) 0
|
Finalized unsigned number type (byte) 0
|
||||||
Finalized unsigned number type (byte) 0
|
Finalized unsigned number type (byte) 0
|
||||||
|
Finalized unsigned number type (byte) 0
|
||||||
Finalized unsigned number type (byte) 2
|
Finalized unsigned number type (byte) 2
|
||||||
Successful SSA optimization PassNFinalizeNumberTypeConversions
|
Successful SSA optimization PassNFinalizeNumberTypeConversions
|
||||||
Alias (byte*) main::hello#0 = (byte*) main::print1_msg#0 (byte*) main::print1_msg#3 (byte*) main::print2_msg#0 (byte*) main::print2_msg#3
|
Alias (byte*) main::hello#0 = (byte*) main::print1_msg#0 (byte*) main::print1_msg#3 (byte*) main::print2_msg#0 (byte*) main::print2_msg#3
|
||||||
@ -196,8 +203,8 @@ Identical Phi Values (byte*) main::print1_at#1 (byte*) main::print1_at#0
|
|||||||
Identical Phi Values (byte*) main::print2_msg#1 (byte*) main::hello#0
|
Identical Phi Values (byte*) main::print2_msg#1 (byte*) main::hello#0
|
||||||
Identical Phi Values (byte*) main::print2_at#1 (byte*) main::print2_at#0
|
Identical Phi Values (byte*) main::print2_at#1 (byte*) main::print2_at#0
|
||||||
Successful SSA optimization Pass2IdenticalPhiElimination
|
Successful SSA optimization Pass2IdenticalPhiElimination
|
||||||
Simple Condition (bool~) main::print1_$0#0 [9] if(*((byte*) main::hello#0 + (byte) main::print1_i#2)!=(byte) '@') goto main::print1_@2
|
Simple Condition (bool~) main::print1_$0#0 [9] if((byte) 0!=*((byte*) main::hello#0 + (byte) main::print1_i#2)) goto main::print1_@2
|
||||||
Simple Condition (bool~) main::print2_$0#0 [22] if(*((byte*) main::hello#0 + (byte) main::print2_i#2)!=(byte) '@') goto main::print2_@2
|
Simple Condition (bool~) main::print2_$0#0 [22] if((byte) 0!=*((byte*) main::hello#0 + (byte) main::print2_i#2)) goto main::print2_@2
|
||||||
Successful SSA optimization Pass2ConditionalJumpSimplification
|
Successful SSA optimization Pass2ConditionalJumpSimplification
|
||||||
Constant (const byte*) screen#0 = (byte*) 1024
|
Constant (const byte*) screen#0 = (byte*) 1024
|
||||||
Constant (const byte*) main::hello#0 = main::$3
|
Constant (const byte*) main::hello#0 = main::$3
|
||||||
@ -269,7 +276,7 @@ main::print1: scope:[main] from main
|
|||||||
main::print1_@1: scope:[main] from main::print1 main::print1_@2
|
main::print1_@1: scope:[main] from main::print1 main::print1_@2
|
||||||
[6] (byte) main::print1_j#2 ← phi( main::print1/(byte) 0 main::print1_@2/(byte) main::print1_j#1 )
|
[6] (byte) main::print1_j#2 ← phi( main::print1/(byte) 0 main::print1_@2/(byte) main::print1_j#1 )
|
||||||
[6] (byte) main::print1_i#2 ← phi( main::print1/(byte) 0 main::print1_@2/(byte) main::print1_i#1 )
|
[6] (byte) main::print1_i#2 ← phi( main::print1/(byte) 0 main::print1_@2/(byte) main::print1_i#1 )
|
||||||
[7] if(*((const byte*) main::hello#0 + (byte) main::print1_i#2)!=(byte) '@') goto main::print1_@2
|
[7] if((byte) 0!=*((const byte*) main::hello#0 + (byte) main::print1_i#2)) goto main::print1_@2
|
||||||
to:main::print2
|
to:main::print2
|
||||||
main::print2: scope:[main] from main::print1_@1
|
main::print2: scope:[main] from main::print1_@1
|
||||||
[8] phi()
|
[8] phi()
|
||||||
@ -277,7 +284,7 @@ main::print2: scope:[main] from main::print1_@1
|
|||||||
main::print2_@1: scope:[main] from main::print2 main::print2_@2
|
main::print2_@1: scope:[main] from main::print2 main::print2_@2
|
||||||
[9] (byte) main::print2_j#2 ← phi( main::print2/(byte) 0 main::print2_@2/(byte) main::print2_j#1 )
|
[9] (byte) main::print2_j#2 ← phi( main::print2/(byte) 0 main::print2_@2/(byte) main::print2_j#1 )
|
||||||
[9] (byte) main::print2_i#2 ← phi( main::print2/(byte) 0 main::print2_@2/(byte) main::print2_i#1 )
|
[9] (byte) main::print2_i#2 ← phi( main::print2/(byte) 0 main::print2_@2/(byte) main::print2_i#1 )
|
||||||
[10] if(*((const byte*) main::hello#0 + (byte) main::print2_i#2)!=(byte) '@') goto main::print2_@2
|
[10] if((byte) 0!=*((const byte*) main::hello#0 + (byte) main::print2_i#2)) goto main::print2_@2
|
||||||
to:main::@return
|
to:main::@return
|
||||||
main::@return: scope:[main] from main::print2_@1
|
main::@return: scope:[main] from main::print2_@1
|
||||||
[11] return
|
[11] return
|
||||||
@ -381,8 +388,8 @@ main: {
|
|||||||
jmp print1_b1
|
jmp print1_b1
|
||||||
// main::print1_@1
|
// main::print1_@1
|
||||||
print1_b1:
|
print1_b1:
|
||||||
// [7] if(*((const byte*) main::hello#0 + (byte) main::print1_i#2)!=(byte) '@') goto main::print1_@2 -- pbuc1_derefidx_vbuz1_neq_vbuc2_then_la1
|
// [7] if((byte) 0!=*((const byte*) main::hello#0 + (byte) main::print1_i#2)) goto main::print1_@2 -- vbuc1_neq_pbuc2_derefidx_vbuz1_then_la1
|
||||||
lda #'@'
|
lda #0
|
||||||
ldy print1_i
|
ldy print1_i
|
||||||
cmp hello,y
|
cmp hello,y
|
||||||
bne print1_b2
|
bne print1_b2
|
||||||
@ -402,8 +409,8 @@ main: {
|
|||||||
jmp print2_b1
|
jmp print2_b1
|
||||||
// main::print2_@1
|
// main::print2_@1
|
||||||
print2_b1:
|
print2_b1:
|
||||||
// [10] if(*((const byte*) main::hello#0 + (byte) main::print2_i#2)!=(byte) '@') goto main::print2_@2 -- pbuc1_derefidx_vbuz1_neq_vbuc2_then_la1
|
// [10] if((byte) 0!=*((const byte*) main::hello#0 + (byte) main::print2_i#2)) goto main::print2_@2 -- vbuc1_neq_pbuc2_derefidx_vbuz1_then_la1
|
||||||
lda #'@'
|
lda #0
|
||||||
ldy print2_i
|
ldy print2_i
|
||||||
cmp hello,y
|
cmp hello,y
|
||||||
bne print2_b2
|
bne print2_b2
|
||||||
@ -456,16 +463,16 @@ main: {
|
|||||||
// File Data
|
// File Data
|
||||||
|
|
||||||
REGISTER UPLIFT POTENTIAL REGISTERS
|
REGISTER UPLIFT POTENTIAL REGISTERS
|
||||||
Statement [7] if(*((const byte*) main::hello#0 + (byte) main::print1_i#2)!=(byte) '@') goto main::print1_@2 [ main::print1_i#2 main::print1_j#2 ] ( main:2 [ main::print1_i#2 main::print1_j#2 ] ) always clobbers reg byte a
|
Statement [7] if((byte) 0!=*((const byte*) main::hello#0 + (byte) main::print1_i#2)) goto main::print1_@2 [ main::print1_i#2 main::print1_j#2 ] ( main:2 [ main::print1_i#2 main::print1_j#2 ] ) always clobbers reg byte a
|
||||||
Removing always clobbered register reg byte a as potential for zp ZP_BYTE:2 [ main::print1_i#2 main::print1_i#1 ]
|
Removing always clobbered register reg byte a as potential for zp ZP_BYTE:2 [ main::print1_i#2 main::print1_i#1 ]
|
||||||
Removing always clobbered register reg byte a as potential for zp ZP_BYTE:3 [ main::print1_j#2 main::print1_j#1 ]
|
Removing always clobbered register reg byte a as potential for zp ZP_BYTE:3 [ main::print1_j#2 main::print1_j#1 ]
|
||||||
Statement [10] if(*((const byte*) main::hello#0 + (byte) main::print2_i#2)!=(byte) '@') goto main::print2_@2 [ main::print2_i#2 main::print2_j#2 ] ( main:2 [ main::print2_i#2 main::print2_j#2 ] ) always clobbers reg byte a
|
Statement [10] if((byte) 0!=*((const byte*) main::hello#0 + (byte) main::print2_i#2)) goto main::print2_@2 [ main::print2_i#2 main::print2_j#2 ] ( main:2 [ main::print2_i#2 main::print2_j#2 ] ) always clobbers reg byte a
|
||||||
Removing always clobbered register reg byte a as potential for zp ZP_BYTE:4 [ main::print2_i#2 main::print2_i#1 ]
|
Removing always clobbered register reg byte a as potential for zp ZP_BYTE:4 [ main::print2_i#2 main::print2_i#1 ]
|
||||||
Removing always clobbered register reg byte a as potential for zp ZP_BYTE:5 [ main::print2_j#2 main::print2_j#1 ]
|
Removing always clobbered register reg byte a as potential for zp ZP_BYTE:5 [ main::print2_j#2 main::print2_j#1 ]
|
||||||
Statement [12] *((const byte*) main::print2_at#0 + (byte) main::print2_j#2) ← *((const byte*) main::hello#0 + (byte) main::print2_i#2) [ main::print2_i#2 main::print2_j#2 ] ( main:2 [ main::print2_i#2 main::print2_j#2 ] ) always clobbers reg byte a
|
Statement [12] *((const byte*) main::print2_at#0 + (byte) main::print2_j#2) ← *((const byte*) main::hello#0 + (byte) main::print2_i#2) [ main::print2_i#2 main::print2_j#2 ] ( main:2 [ main::print2_i#2 main::print2_j#2 ] ) always clobbers reg byte a
|
||||||
Statement [15] *((const byte*) screen#0 + (byte) main::print1_j#2) ← *((const byte*) main::hello#0 + (byte) main::print1_i#2) [ main::print1_i#2 main::print1_j#2 ] ( main:2 [ main::print1_i#2 main::print1_j#2 ] ) always clobbers reg byte a
|
Statement [15] *((const byte*) screen#0 + (byte) main::print1_j#2) ← *((const byte*) main::hello#0 + (byte) main::print1_i#2) [ main::print1_i#2 main::print1_j#2 ] ( main:2 [ main::print1_i#2 main::print1_j#2 ] ) always clobbers reg byte a
|
||||||
Statement [7] if(*((const byte*) main::hello#0 + (byte) main::print1_i#2)!=(byte) '@') goto main::print1_@2 [ main::print1_i#2 main::print1_j#2 ] ( main:2 [ main::print1_i#2 main::print1_j#2 ] ) always clobbers reg byte a
|
Statement [7] if((byte) 0!=*((const byte*) main::hello#0 + (byte) main::print1_i#2)) goto main::print1_@2 [ main::print1_i#2 main::print1_j#2 ] ( main:2 [ main::print1_i#2 main::print1_j#2 ] ) always clobbers reg byte a
|
||||||
Statement [10] if(*((const byte*) main::hello#0 + (byte) main::print2_i#2)!=(byte) '@') goto main::print2_@2 [ main::print2_i#2 main::print2_j#2 ] ( main:2 [ main::print2_i#2 main::print2_j#2 ] ) always clobbers reg byte a
|
Statement [10] if((byte) 0!=*((const byte*) main::hello#0 + (byte) main::print2_i#2)) goto main::print2_@2 [ main::print2_i#2 main::print2_j#2 ] ( main:2 [ main::print2_i#2 main::print2_j#2 ] ) always clobbers reg byte a
|
||||||
Statement [12] *((const byte*) main::print2_at#0 + (byte) main::print2_j#2) ← *((const byte*) main::hello#0 + (byte) main::print2_i#2) [ main::print2_i#2 main::print2_j#2 ] ( main:2 [ main::print2_i#2 main::print2_j#2 ] ) always clobbers reg byte a
|
Statement [12] *((const byte*) main::print2_at#0 + (byte) main::print2_j#2) ← *((const byte*) main::hello#0 + (byte) main::print2_i#2) [ main::print2_i#2 main::print2_j#2 ] ( main:2 [ main::print2_i#2 main::print2_j#2 ] ) always clobbers reg byte a
|
||||||
Statement [15] *((const byte*) screen#0 + (byte) main::print1_j#2) ← *((const byte*) main::hello#0 + (byte) main::print1_i#2) [ main::print1_i#2 main::print1_j#2 ] ( main:2 [ main::print1_i#2 main::print1_j#2 ] ) always clobbers reg byte a
|
Statement [15] *((const byte*) screen#0 + (byte) main::print1_j#2) ← *((const byte*) main::hello#0 + (byte) main::print1_i#2) [ main::print1_i#2 main::print1_j#2 ] ( main:2 [ main::print1_i#2 main::print1_j#2 ] ) always clobbers reg byte a
|
||||||
Potential registers zp ZP_BYTE:2 [ main::print1_i#2 main::print1_i#1 ] : zp ZP_BYTE:2 , reg byte x , reg byte y ,
|
Potential registers zp ZP_BYTE:2 [ main::print1_i#2 main::print1_i#1 ] : zp ZP_BYTE:2 , reg byte x , reg byte y ,
|
||||||
@ -522,8 +529,8 @@ main: {
|
|||||||
jmp print1_b1
|
jmp print1_b1
|
||||||
// main::print1_@1
|
// main::print1_@1
|
||||||
print1_b1:
|
print1_b1:
|
||||||
// [7] if(*((const byte*) main::hello#0 + (byte) main::print1_i#2)!=(byte) '@') goto main::print1_@2 -- pbuc1_derefidx_vbuyy_neq_vbuc2_then_la1
|
// [7] if((byte) 0!=*((const byte*) main::hello#0 + (byte) main::print1_i#2)) goto main::print1_@2 -- vbuc1_neq_pbuc2_derefidx_vbuyy_then_la1
|
||||||
lda #'@'
|
lda #0
|
||||||
cmp hello,y
|
cmp hello,y
|
||||||
bne print1_b2
|
bne print1_b2
|
||||||
// [8] phi from main::print1_@1 to main::print2 [phi:main::print1_@1->main::print2]
|
// [8] phi from main::print1_@1 to main::print2 [phi:main::print1_@1->main::print2]
|
||||||
@ -540,8 +547,8 @@ main: {
|
|||||||
jmp print2_b1
|
jmp print2_b1
|
||||||
// main::print2_@1
|
// main::print2_@1
|
||||||
print2_b1:
|
print2_b1:
|
||||||
// [10] if(*((const byte*) main::hello#0 + (byte) main::print2_i#2)!=(byte) '@') goto main::print2_@2 -- pbuc1_derefidx_vbuyy_neq_vbuc2_then_la1
|
// [10] if((byte) 0!=*((const byte*) main::hello#0 + (byte) main::print2_i#2)) goto main::print2_@2 -- vbuc1_neq_pbuc2_derefidx_vbuyy_then_la1
|
||||||
lda #'@'
|
lda #0
|
||||||
cmp hello,y
|
cmp hello,y
|
||||||
bne print2_b2
|
bne print2_b2
|
||||||
jmp breturn
|
jmp breturn
|
||||||
@ -612,6 +619,8 @@ Succesful ASM optimization Pass5UnusedLabelElimination
|
|||||||
Updating BasicUpstart to call main directly
|
Updating BasicUpstart to call main directly
|
||||||
Removing instruction jsr main
|
Removing instruction jsr main
|
||||||
Succesful ASM optimization Pass5SkipBegin
|
Succesful ASM optimization Pass5SkipBegin
|
||||||
|
Replacing instruction ldx #0 with TAX
|
||||||
|
Replacing instruction ldy #0 with TAY
|
||||||
Removing instruction bbegin:
|
Removing instruction bbegin:
|
||||||
Succesful ASM optimization Pass5UnusedLabelElimination
|
Succesful ASM optimization Pass5UnusedLabelElimination
|
||||||
|
|
||||||
@ -687,23 +696,23 @@ main: {
|
|||||||
ldy #0
|
ldy #0
|
||||||
// main::print1_@1
|
// main::print1_@1
|
||||||
print1_b1:
|
print1_b1:
|
||||||
// for(byte i=0; msg[i]!='@'; i++)
|
// for(byte i=0; msg[i]; i++)
|
||||||
// [7] if(*((const byte*) main::hello#0 + (byte) main::print1_i#2)!=(byte) '@') goto main::print1_@2 -- pbuc1_derefidx_vbuyy_neq_vbuc2_then_la1
|
// [7] if((byte) 0!=*((const byte*) main::hello#0 + (byte) main::print1_i#2)) goto main::print1_@2 -- vbuc1_neq_pbuc2_derefidx_vbuyy_then_la1
|
||||||
lda #'@'
|
lda #0
|
||||||
cmp hello,y
|
cmp hello,y
|
||||||
bne print1_b2
|
bne print1_b2
|
||||||
// [8] phi from main::print1_@1 to main::print2 [phi:main::print1_@1->main::print2]
|
// [8] phi from main::print1_@1 to main::print2 [phi:main::print1_@1->main::print2]
|
||||||
// main::print2
|
// main::print2
|
||||||
// [9] phi from main::print2 to main::print2_@1 [phi:main::print2->main::print2_@1]
|
// [9] phi from main::print2 to main::print2_@1 [phi:main::print2->main::print2_@1]
|
||||||
// [9] phi (byte) main::print2_j#2 = (byte) 0 [phi:main::print2->main::print2_@1#0] -- vbuxx=vbuc1
|
// [9] phi (byte) main::print2_j#2 = (byte) 0 [phi:main::print2->main::print2_@1#0] -- vbuxx=vbuc1
|
||||||
ldx #0
|
tax
|
||||||
// [9] phi (byte) main::print2_i#2 = (byte) 0 [phi:main::print2->main::print2_@1#1] -- vbuyy=vbuc1
|
// [9] phi (byte) main::print2_i#2 = (byte) 0 [phi:main::print2->main::print2_@1#1] -- vbuyy=vbuc1
|
||||||
ldy #0
|
tay
|
||||||
// main::print2_@1
|
// main::print2_@1
|
||||||
print2_b1:
|
print2_b1:
|
||||||
// for(byte i=0; msg[i]!='@'; i++)
|
// for(byte i=0; msg[i]; i++)
|
||||||
// [10] if(*((const byte*) main::hello#0 + (byte) main::print2_i#2)!=(byte) '@') goto main::print2_@2 -- pbuc1_derefidx_vbuyy_neq_vbuc2_then_la1
|
// [10] if((byte) 0!=*((const byte*) main::hello#0 + (byte) main::print2_i#2)) goto main::print2_@2 -- vbuc1_neq_pbuc2_derefidx_vbuyy_then_la1
|
||||||
lda #'@'
|
lda #0
|
||||||
cmp hello,y
|
cmp hello,y
|
||||||
bne print2_b2
|
bne print2_b2
|
||||||
// main::@return
|
// main::@return
|
||||||
@ -720,7 +729,7 @@ main: {
|
|||||||
// [13] (byte) main::print2_j#1 ← (byte) main::print2_j#2 + (byte) 2 -- vbuxx=vbuxx_plus_2
|
// [13] (byte) main::print2_j#1 ← (byte) main::print2_j#2 + (byte) 2 -- vbuxx=vbuxx_plus_2
|
||||||
inx
|
inx
|
||||||
inx
|
inx
|
||||||
// for(byte i=0; msg[i]!='@'; i++)
|
// for(byte i=0; msg[i]; i++)
|
||||||
// [14] (byte) main::print2_i#1 ← ++ (byte) main::print2_i#2 -- vbuyy=_inc_vbuyy
|
// [14] (byte) main::print2_i#1 ← ++ (byte) main::print2_i#2 -- vbuyy=_inc_vbuyy
|
||||||
iny
|
iny
|
||||||
// [9] phi from main::print2_@2 to main::print2_@1 [phi:main::print2_@2->main::print2_@1]
|
// [9] phi from main::print2_@2 to main::print2_@1 [phi:main::print2_@2->main::print2_@1]
|
||||||
@ -737,7 +746,7 @@ main: {
|
|||||||
// [16] (byte) main::print1_j#1 ← (byte) main::print1_j#2 + (byte) 2 -- vbuxx=vbuxx_plus_2
|
// [16] (byte) main::print1_j#1 ← (byte) main::print1_j#2 + (byte) 2 -- vbuxx=vbuxx_plus_2
|
||||||
inx
|
inx
|
||||||
inx
|
inx
|
||||||
// for(byte i=0; msg[i]!='@'; i++)
|
// for(byte i=0; msg[i]; i++)
|
||||||
// [17] (byte) main::print1_i#1 ← ++ (byte) main::print1_i#2 -- vbuyy=_inc_vbuyy
|
// [17] (byte) main::print1_i#1 ← ++ (byte) main::print1_i#2 -- vbuyy=_inc_vbuyy
|
||||||
iny
|
iny
|
||||||
// [6] phi from main::print1_@2 to main::print1_@1 [phi:main::print1_@2->main::print1_@1]
|
// [6] phi from main::print1_@2 to main::print1_@1 [phi:main::print1_@2->main::print1_@1]
|
||||||
|
@ -43,7 +43,7 @@ print: {
|
|||||||
b1:
|
b1:
|
||||||
ldy #0
|
ldy #0
|
||||||
lda (msg),y
|
lda (msg),y
|
||||||
cmp #'@'
|
cmp #0
|
||||||
bne b2
|
bne b2
|
||||||
rts
|
rts
|
||||||
b2:
|
b2:
|
||||||
|
@ -40,7 +40,7 @@ print: scope:[print] from print_msg::@2
|
|||||||
print::@1: scope:[print] from print print::@2
|
print::@1: scope:[print] from print print::@2
|
||||||
[17] (byte*) screen#14 ← phi( print/(byte*) screen#18 print::@2/(byte*) screen#6 )
|
[17] (byte*) screen#14 ← phi( print/(byte*) screen#18 print::@2/(byte*) screen#6 )
|
||||||
[17] (byte*) print::msg#2 ← phi( print/(byte*) print::msg#0 print::@2/(byte*) print::msg#1 )
|
[17] (byte*) print::msg#2 ← phi( print/(byte*) print::msg#0 print::@2/(byte*) print::msg#1 )
|
||||||
[18] if(*((byte*) print::msg#2)!=(byte) '@') goto print::@2
|
[18] if((byte) 0!=*((byte*) print::msg#2)) goto print::@2
|
||||||
to:print::@return
|
to:print::@return
|
||||||
print::@return: scope:[print] from print::@1
|
print::@return: scope:[print] from print::@1
|
||||||
[19] return
|
[19] return
|
||||||
|
@ -1,3 +1,4 @@
|
|||||||
|
Warning! Adding boolean cast to non-boolean condition *((byte*) print::msg)
|
||||||
Culled Empty Block (label) @1
|
Culled Empty Block (label) @1
|
||||||
Culled Empty Block (label) print_msg::@4
|
Culled Empty Block (label) print_msg::@4
|
||||||
Culled Empty Block (label) print::@4
|
Culled Empty Block (label) print::@4
|
||||||
@ -68,7 +69,7 @@ print: scope:[print] from print_msg::@2
|
|||||||
print::@1: scope:[print] from print print::@2
|
print::@1: scope:[print] from print print::@2
|
||||||
(byte*) screen#19 ← phi( print/(byte*) screen#23 print::@2/(byte*) screen#6 )
|
(byte*) screen#19 ← phi( print/(byte*) screen#23 print::@2/(byte*) screen#6 )
|
||||||
(byte*) print::msg#2 ← phi( print/(byte*) print::msg#4 print::@2/(byte*) print::msg#1 )
|
(byte*) print::msg#2 ← phi( print/(byte*) print::msg#4 print::@2/(byte*) print::msg#1 )
|
||||||
(bool~) print::$0 ← *((byte*) print::msg#2) != (byte) '@'
|
(bool~) print::$0 ← (number) 0 != *((byte*) print::msg#2)
|
||||||
if((bool~) print::$0) goto print::@2
|
if((bool~) print::$0) goto print::@2
|
||||||
to:print::@return
|
to:print::@return
|
||||||
print::@2: scope:[print] from print::@1
|
print::@2: scope:[print] from print::@1
|
||||||
@ -162,6 +163,7 @@ SYMBOL TABLE SSA
|
|||||||
Adding number conversion cast (unumber) 1 in (byte) print_msg::idx#0 ← (number) 1
|
Adding number conversion cast (unumber) 1 in (byte) print_msg::idx#0 ← (number) 1
|
||||||
Adding number conversion cast (unumber) 2 in (byte) print_msg::idx#1 ← (number) 2
|
Adding number conversion cast (unumber) 2 in (byte) print_msg::idx#1 ← (number) 2
|
||||||
Adding number conversion cast (unumber) 1 in (bool~) print_msg::$0 ← (byte) print_msg::idx#2 == (number) 1
|
Adding number conversion cast (unumber) 1 in (bool~) print_msg::$0 ← (byte) print_msg::idx#2 == (number) 1
|
||||||
|
Adding number conversion cast (unumber) 0 in (bool~) print::$0 ← (number) 0 != *((byte*) print::msg#2)
|
||||||
Successful SSA optimization PassNAddNumberTypeConversions
|
Successful SSA optimization PassNAddNumberTypeConversions
|
||||||
Inlining cast (byte) print_msg::idx#0 ← (unumber)(number) 1
|
Inlining cast (byte) print_msg::idx#0 ← (unumber)(number) 1
|
||||||
Inlining cast (byte) print_msg::idx#1 ← (unumber)(number) 2
|
Inlining cast (byte) print_msg::idx#1 ← (unumber)(number) 2
|
||||||
@ -171,10 +173,12 @@ Simplifying constant integer cast 1
|
|||||||
Simplifying constant integer cast 2
|
Simplifying constant integer cast 2
|
||||||
Simplifying constant integer cast 1
|
Simplifying constant integer cast 1
|
||||||
Simplifying constant pointer cast (byte*) 1024
|
Simplifying constant pointer cast (byte*) 1024
|
||||||
|
Simplifying constant integer cast 0
|
||||||
Successful SSA optimization PassNCastSimplification
|
Successful SSA optimization PassNCastSimplification
|
||||||
Finalized unsigned number type (byte) 1
|
Finalized unsigned number type (byte) 1
|
||||||
Finalized unsigned number type (byte) 2
|
Finalized unsigned number type (byte) 2
|
||||||
Finalized unsigned number type (byte) 1
|
Finalized unsigned number type (byte) 1
|
||||||
|
Finalized unsigned number type (byte) 0
|
||||||
Successful SSA optimization PassNFinalizeNumberTypeConversions
|
Successful SSA optimization PassNFinalizeNumberTypeConversions
|
||||||
Alias (byte*) screen#0 = (byte*) screen#9
|
Alias (byte*) screen#0 = (byte*) screen#9
|
||||||
Alias (byte*) screen#1 = (byte*) screen#10 (byte*) screen#11 (byte*) screen#2
|
Alias (byte*) screen#1 = (byte*) screen#10 (byte*) screen#11 (byte*) screen#2
|
||||||
@ -196,7 +200,7 @@ Identical Phi Values (byte*) screen#23 (byte*) screen#18
|
|||||||
Identical Phi Values (byte*) screen#16 (byte*) screen#1
|
Identical Phi Values (byte*) screen#16 (byte*) screen#1
|
||||||
Successful SSA optimization Pass2IdenticalPhiElimination
|
Successful SSA optimization Pass2IdenticalPhiElimination
|
||||||
Simple Condition (bool~) print_msg::$0 [15] if((byte) print_msg::idx#2==(byte) 1) goto print_msg::@1
|
Simple Condition (bool~) print_msg::$0 [15] if((byte) print_msg::idx#2==(byte) 1) goto print_msg::@1
|
||||||
Simple Condition (bool~) print::$0 [32] if(*((byte*) print::msg#2)!=(byte) '@') goto print::@2
|
Simple Condition (bool~) print::$0 [32] if((byte) 0!=*((byte*) print::msg#2)) goto print::@2
|
||||||
Successful SSA optimization Pass2ConditionalJumpSimplification
|
Successful SSA optimization Pass2ConditionalJumpSimplification
|
||||||
Constant (const byte) print_msg::idx#0 = 1
|
Constant (const byte) print_msg::idx#0 = 1
|
||||||
Constant (const byte) print_msg::idx#1 = 2
|
Constant (const byte) print_msg::idx#1 = 2
|
||||||
@ -301,7 +305,7 @@ print: scope:[print] from print_msg::@2
|
|||||||
print::@1: scope:[print] from print print::@2
|
print::@1: scope:[print] from print print::@2
|
||||||
[17] (byte*) screen#14 ← phi( print/(byte*) screen#18 print::@2/(byte*) screen#6 )
|
[17] (byte*) screen#14 ← phi( print/(byte*) screen#18 print::@2/(byte*) screen#6 )
|
||||||
[17] (byte*) print::msg#2 ← phi( print/(byte*) print::msg#0 print::@2/(byte*) print::msg#1 )
|
[17] (byte*) print::msg#2 ← phi( print/(byte*) print::msg#0 print::@2/(byte*) print::msg#1 )
|
||||||
[18] if(*((byte*) print::msg#2)!=(byte) '@') goto print::@2
|
[18] if((byte) 0!=*((byte*) print::msg#2)) goto print::@2
|
||||||
to:print::@return
|
to:print::@return
|
||||||
print::@return: scope:[print] from print::@1
|
print::@return: scope:[print] from print::@1
|
||||||
[19] return
|
[19] return
|
||||||
@ -467,10 +471,10 @@ print: {
|
|||||||
jmp b1
|
jmp b1
|
||||||
// print::@1
|
// print::@1
|
||||||
b1:
|
b1:
|
||||||
// [18] if(*((byte*) print::msg#2)!=(byte) '@') goto print::@2 -- _deref_pbuz1_neq_vbuc1_then_la1
|
// [18] if((byte) 0!=*((byte*) print::msg#2)) goto print::@2 -- vbuc1_neq__deref_pbuz1_then_la1
|
||||||
ldy #0
|
ldy #0
|
||||||
lda (msg),y
|
lda (msg),y
|
||||||
cmp #'@'
|
cmp #0
|
||||||
bne b2
|
bne b2
|
||||||
jmp breturn
|
jmp breturn
|
||||||
// print::@return
|
// print::@return
|
||||||
@ -500,7 +504,7 @@ print: {
|
|||||||
|
|
||||||
REGISTER UPLIFT POTENTIAL REGISTERS
|
REGISTER UPLIFT POTENTIAL REGISTERS
|
||||||
Statement [13] (byte*) print::msg#0 ← (byte*) print_msg::msg#3 [ screen#18 print::msg#0 ] ( main:2::print_msg:5 [ screen#18 print::msg#0 ] main:2::print_msg:7 [ screen#18 print::msg#0 ] ) always clobbers reg byte a
|
Statement [13] (byte*) print::msg#0 ← (byte*) print_msg::msg#3 [ screen#18 print::msg#0 ] ( main:2::print_msg:5 [ screen#18 print::msg#0 ] main:2::print_msg:7 [ screen#18 print::msg#0 ] ) always clobbers reg byte a
|
||||||
Statement [18] if(*((byte*) print::msg#2)!=(byte) '@') goto print::@2 [ screen#14 print::msg#2 ] ( main:2::print_msg:5::print:14 [ screen#14 print::msg#2 ] main:2::print_msg:7::print:14 [ screen#14 print::msg#2 ] ) always clobbers reg byte a reg byte y
|
Statement [18] if((byte) 0!=*((byte*) print::msg#2)) goto print::@2 [ screen#14 print::msg#2 ] ( main:2::print_msg:5::print:14 [ screen#14 print::msg#2 ] main:2::print_msg:7::print:14 [ screen#14 print::msg#2 ] ) always clobbers reg byte a reg byte y
|
||||||
Statement [20] *((byte*) screen#14) ← *((byte*) print::msg#2) [ screen#14 print::msg#2 ] ( main:2::print_msg:5::print:14 [ screen#14 print::msg#2 ] main:2::print_msg:7::print:14 [ screen#14 print::msg#2 ] ) always clobbers reg byte a reg byte y
|
Statement [20] *((byte*) screen#14) ← *((byte*) print::msg#2) [ screen#14 print::msg#2 ] ( main:2::print_msg:5::print:14 [ screen#14 print::msg#2 ] main:2::print_msg:7::print:14 [ screen#14 print::msg#2 ] ) always clobbers reg byte a reg byte y
|
||||||
Potential registers zp ZP_BYTE:2 [ print_msg::idx#2 ] : zp ZP_BYTE:2 , reg byte a , reg byte x , reg byte y ,
|
Potential registers zp ZP_BYTE:2 [ print_msg::idx#2 ] : zp ZP_BYTE:2 , reg byte a , reg byte x , reg byte y ,
|
||||||
Potential registers zp ZP_WORD:3 [ screen#18 screen#14 screen#6 ] : zp ZP_WORD:3 ,
|
Potential registers zp ZP_WORD:3 [ screen#18 screen#14 screen#6 ] : zp ZP_WORD:3 ,
|
||||||
@ -634,10 +638,10 @@ print: {
|
|||||||
jmp b1
|
jmp b1
|
||||||
// print::@1
|
// print::@1
|
||||||
b1:
|
b1:
|
||||||
// [18] if(*((byte*) print::msg#2)!=(byte) '@') goto print::@2 -- _deref_pbuz1_neq_vbuc1_then_la1
|
// [18] if((byte) 0!=*((byte*) print::msg#2)) goto print::@2 -- vbuc1_neq__deref_pbuz1_then_la1
|
||||||
ldy #0
|
ldy #0
|
||||||
lda (msg),y
|
lda (msg),y
|
||||||
cmp #'@'
|
cmp #0
|
||||||
bne b2
|
bne b2
|
||||||
jmp breturn
|
jmp breturn
|
||||||
// print::@return
|
// print::@return
|
||||||
@ -835,11 +839,11 @@ print: {
|
|||||||
// [17] phi (byte*) print::msg#2 = (byte*) print::msg#0 [phi:print/print::@2->print::@1#1] -- register_copy
|
// [17] phi (byte*) print::msg#2 = (byte*) print::msg#0 [phi:print/print::@2->print::@1#1] -- register_copy
|
||||||
// print::@1
|
// print::@1
|
||||||
b1:
|
b1:
|
||||||
// while(*msg!='@')
|
// while(*msg)
|
||||||
// [18] if(*((byte*) print::msg#2)!=(byte) '@') goto print::@2 -- _deref_pbuz1_neq_vbuc1_then_la1
|
// [18] if((byte) 0!=*((byte*) print::msg#2)) goto print::@2 -- vbuc1_neq__deref_pbuz1_then_la1
|
||||||
ldy #0
|
ldy #0
|
||||||
lda (msg),y
|
lda (msg),y
|
||||||
cmp #'@'
|
cmp #0
|
||||||
bne b2
|
bne b2
|
||||||
// print::@return
|
// print::@return
|
||||||
// }
|
// }
|
||||||
|
@ -35,7 +35,7 @@ print: {
|
|||||||
b1:
|
b1:
|
||||||
ldy #0
|
ldy #0
|
||||||
lda (msg),y
|
lda (msg),y
|
||||||
cmp #'@'
|
cmp #0
|
||||||
bne b2
|
bne b2
|
||||||
rts
|
rts
|
||||||
b2:
|
b2:
|
||||||
|
@ -29,7 +29,7 @@ print: scope:[print] from main main::@1 main::@2
|
|||||||
print::@1: scope:[print] from print print::@2
|
print::@1: scope:[print] from print print::@2
|
||||||
[12] (byte*) screen#12 ← phi( print/(byte*) screen#18 print::@2/(byte*) screen#5 )
|
[12] (byte*) screen#12 ← phi( print/(byte*) screen#18 print::@2/(byte*) screen#5 )
|
||||||
[12] (byte*) print::msg#4 ← phi( print/(byte*) print::msg#6 print::@2/(byte*) print::msg#3 )
|
[12] (byte*) print::msg#4 ← phi( print/(byte*) print::msg#6 print::@2/(byte*) print::msg#3 )
|
||||||
[13] if(*((byte*) print::msg#4)!=(byte) '@') goto print::@2
|
[13] if((byte) 0!=*((byte*) print::msg#4)) goto print::@2
|
||||||
to:print::@return
|
to:print::@return
|
||||||
print::@return: scope:[print] from print::@1
|
print::@return: scope:[print] from print::@1
|
||||||
[14] return
|
[14] return
|
||||||
|
@ -1,3 +1,4 @@
|
|||||||
|
Warning! Adding boolean cast to non-boolean condition *((byte*) print::msg)
|
||||||
Culled Empty Block (label) print::@4
|
Culled Empty Block (label) print::@4
|
||||||
Culled Empty Block (label) print::@3
|
Culled Empty Block (label) print::@3
|
||||||
Culled Empty Block (label) print::@5
|
Culled Empty Block (label) print::@5
|
||||||
@ -44,7 +45,7 @@ print: scope:[print] from main main::@1 main::@2
|
|||||||
print::@1: scope:[print] from print print::@2
|
print::@1: scope:[print] from print print::@2
|
||||||
(byte*) screen#16 ← phi( print/(byte*) screen#18 print::@2/(byte*) screen#5 )
|
(byte*) screen#16 ← phi( print/(byte*) screen#18 print::@2/(byte*) screen#5 )
|
||||||
(byte*) print::msg#4 ← phi( print/(byte*) print::msg#6 print::@2/(byte*) print::msg#3 )
|
(byte*) print::msg#4 ← phi( print/(byte*) print::msg#6 print::@2/(byte*) print::msg#3 )
|
||||||
(bool~) print::$0 ← *((byte*) print::msg#4) != (byte) '@'
|
(bool~) print::$0 ← (number) 0 != *((byte*) print::msg#4)
|
||||||
if((bool~) print::$0) goto print::@2
|
if((bool~) print::$0) goto print::@2
|
||||||
to:print::@return
|
to:print::@return
|
||||||
print::@2: scope:[print] from print::@1
|
print::@2: scope:[print] from print::@1
|
||||||
@ -121,10 +122,15 @@ SYMBOL TABLE SSA
|
|||||||
(byte*) screen#8
|
(byte*) screen#8
|
||||||
(byte*) screen#9
|
(byte*) screen#9
|
||||||
|
|
||||||
|
Adding number conversion cast (unumber) 0 in (bool~) print::$0 ← (number) 0 != *((byte*) print::msg#4)
|
||||||
|
Successful SSA optimization PassNAddNumberTypeConversions
|
||||||
Inlining cast (byte*) screen#4 ← (byte*)(number) $400
|
Inlining cast (byte*) screen#4 ← (byte*)(number) $400
|
||||||
Successful SSA optimization Pass2InlineCast
|
Successful SSA optimization Pass2InlineCast
|
||||||
Simplifying constant pointer cast (byte*) 1024
|
Simplifying constant pointer cast (byte*) 1024
|
||||||
|
Simplifying constant integer cast 0
|
||||||
Successful SSA optimization PassNCastSimplification
|
Successful SSA optimization PassNCastSimplification
|
||||||
|
Finalized unsigned number type (byte) 0
|
||||||
|
Successful SSA optimization PassNFinalizeNumberTypeConversions
|
||||||
Alias (byte*) screen#0 = (byte*) screen#8
|
Alias (byte*) screen#0 = (byte*) screen#8
|
||||||
Alias (byte*) screen#1 = (byte*) screen#9
|
Alias (byte*) screen#1 = (byte*) screen#9
|
||||||
Alias (byte*) screen#10 = (byte*) screen#2 (byte*) screen#11 (byte*) screen#3
|
Alias (byte*) screen#10 = (byte*) screen#2 (byte*) screen#11 (byte*) screen#3
|
||||||
@ -139,7 +145,7 @@ Identical Phi Values (byte*) screen#1 (byte*) screen#12
|
|||||||
Identical Phi Values (byte*) screen#10 (byte*) screen#12
|
Identical Phi Values (byte*) screen#10 (byte*) screen#12
|
||||||
Identical Phi Values (byte*) screen#14 (byte*) screen#10
|
Identical Phi Values (byte*) screen#14 (byte*) screen#10
|
||||||
Successful SSA optimization Pass2IdenticalPhiElimination
|
Successful SSA optimization Pass2IdenticalPhiElimination
|
||||||
Simple Condition (bool~) print::$0 [22] if(*((byte*) print::msg#4)!=(byte) '@') goto print::@2
|
Simple Condition (bool~) print::$0 [22] if((byte) 0!=*((byte*) print::msg#4)) goto print::@2
|
||||||
Successful SSA optimization Pass2ConditionalJumpSimplification
|
Successful SSA optimization Pass2ConditionalJumpSimplification
|
||||||
Constant (const byte[]) msg1#0 = $0
|
Constant (const byte[]) msg1#0 = $0
|
||||||
Constant (const byte[]) main::msg2#0 = main::$3
|
Constant (const byte[]) main::msg2#0 = main::$3
|
||||||
@ -222,7 +228,7 @@ print: scope:[print] from main main::@1 main::@2
|
|||||||
print::@1: scope:[print] from print print::@2
|
print::@1: scope:[print] from print print::@2
|
||||||
[12] (byte*) screen#12 ← phi( print/(byte*) screen#18 print::@2/(byte*) screen#5 )
|
[12] (byte*) screen#12 ← phi( print/(byte*) screen#18 print::@2/(byte*) screen#5 )
|
||||||
[12] (byte*) print::msg#4 ← phi( print/(byte*) print::msg#6 print::@2/(byte*) print::msg#3 )
|
[12] (byte*) print::msg#4 ← phi( print/(byte*) print::msg#6 print::@2/(byte*) print::msg#3 )
|
||||||
[13] if(*((byte*) print::msg#4)!=(byte) '@') goto print::@2
|
[13] if((byte) 0!=*((byte*) print::msg#4)) goto print::@2
|
||||||
to:print::@return
|
to:print::@return
|
||||||
print::@return: scope:[print] from print::@1
|
print::@return: scope:[print] from print::@1
|
||||||
[14] return
|
[14] return
|
||||||
@ -351,10 +357,10 @@ print: {
|
|||||||
jmp b1
|
jmp b1
|
||||||
// print::@1
|
// print::@1
|
||||||
b1:
|
b1:
|
||||||
// [13] if(*((byte*) print::msg#4)!=(byte) '@') goto print::@2 -- _deref_pbuz1_neq_vbuc1_then_la1
|
// [13] if((byte) 0!=*((byte*) print::msg#4)) goto print::@2 -- vbuc1_neq__deref_pbuz1_then_la1
|
||||||
ldy #0
|
ldy #0
|
||||||
lda (msg),y
|
lda (msg),y
|
||||||
cmp #'@'
|
cmp #0
|
||||||
bne b2
|
bne b2
|
||||||
jmp breturn
|
jmp breturn
|
||||||
// print::@return
|
// print::@return
|
||||||
@ -385,7 +391,7 @@ print: {
|
|||||||
.byte 0
|
.byte 0
|
||||||
|
|
||||||
REGISTER UPLIFT POTENTIAL REGISTERS
|
REGISTER UPLIFT POTENTIAL REGISTERS
|
||||||
Statement [13] if(*((byte*) print::msg#4)!=(byte) '@') goto print::@2 [ screen#12 print::msg#4 ] ( main:2::print:5 [ screen#12 print::msg#4 ] main:2::print:7 [ screen#12 print::msg#4 ] main:2::print:9 [ screen#12 print::msg#4 ] ) always clobbers reg byte a reg byte y
|
Statement [13] if((byte) 0!=*((byte*) print::msg#4)) goto print::@2 [ screen#12 print::msg#4 ] ( main:2::print:5 [ screen#12 print::msg#4 ] main:2::print:7 [ screen#12 print::msg#4 ] main:2::print:9 [ screen#12 print::msg#4 ] ) always clobbers reg byte a reg byte y
|
||||||
Statement [15] *((byte*) screen#12) ← *((byte*) print::msg#4) [ screen#12 print::msg#4 ] ( main:2::print:5 [ screen#12 print::msg#4 ] main:2::print:7 [ screen#12 print::msg#4 ] main:2::print:9 [ screen#12 print::msg#4 ] ) always clobbers reg byte a reg byte y
|
Statement [15] *((byte*) screen#12) ← *((byte*) print::msg#4) [ screen#12 print::msg#4 ] ( main:2::print:5 [ screen#12 print::msg#4 ] main:2::print:7 [ screen#12 print::msg#4 ] main:2::print:9 [ screen#12 print::msg#4 ] ) always clobbers reg byte a reg byte y
|
||||||
Potential registers zp ZP_WORD:2 [ screen#18 screen#12 screen#5 ] : zp ZP_WORD:2 ,
|
Potential registers zp ZP_WORD:2 [ screen#18 screen#12 screen#5 ] : zp ZP_WORD:2 ,
|
||||||
Potential registers zp ZP_WORD:4 [ print::msg#4 print::msg#6 print::msg#3 ] : zp ZP_WORD:4 ,
|
Potential registers zp ZP_WORD:4 [ print::msg#4 print::msg#6 print::msg#3 ] : zp ZP_WORD:4 ,
|
||||||
@ -492,10 +498,10 @@ print: {
|
|||||||
jmp b1
|
jmp b1
|
||||||
// print::@1
|
// print::@1
|
||||||
b1:
|
b1:
|
||||||
// [13] if(*((byte*) print::msg#4)!=(byte) '@') goto print::@2 -- _deref_pbuz1_neq_vbuc1_then_la1
|
// [13] if((byte) 0!=*((byte*) print::msg#4)) goto print::@2 -- vbuc1_neq__deref_pbuz1_then_la1
|
||||||
ldy #0
|
ldy #0
|
||||||
lda (msg),y
|
lda (msg),y
|
||||||
cmp #'@'
|
cmp #0
|
||||||
bne b2
|
bne b2
|
||||||
jmp breturn
|
jmp breturn
|
||||||
// print::@return
|
// print::@return
|
||||||
@ -667,11 +673,11 @@ print: {
|
|||||||
// [12] phi (byte*) print::msg#4 = (byte*) print::msg#6 [phi:print/print::@2->print::@1#1] -- register_copy
|
// [12] phi (byte*) print::msg#4 = (byte*) print::msg#6 [phi:print/print::@2->print::@1#1] -- register_copy
|
||||||
// print::@1
|
// print::@1
|
||||||
b1:
|
b1:
|
||||||
// while(*msg!='@')
|
// while(*msg)
|
||||||
// [13] if(*((byte*) print::msg#4)!=(byte) '@') goto print::@2 -- _deref_pbuz1_neq_vbuc1_then_la1
|
// [13] if((byte) 0!=*((byte*) print::msg#4)) goto print::@2 -- vbuc1_neq__deref_pbuz1_then_la1
|
||||||
ldy #0
|
ldy #0
|
||||||
lda (msg),y
|
lda (msg),y
|
||||||
cmp #'@'
|
cmp #0
|
||||||
bne b2
|
bne b2
|
||||||
// print::@return
|
// print::@return
|
||||||
// }
|
// }
|
||||||
|
@ -249,7 +249,7 @@ print_str: {
|
|||||||
b1:
|
b1:
|
||||||
ldy #0
|
ldy #0
|
||||||
lda (str),y
|
lda (str),y
|
||||||
cmp #'@'
|
cmp #0
|
||||||
bne b2
|
bne b2
|
||||||
rts
|
rts
|
||||||
b2:
|
b2:
|
||||||
|
@ -179,7 +179,7 @@ print_str: scope:[print_str] from main::@11 main::@14 main::@16 main::@18 main:
|
|||||||
print_str::@1: scope:[print_str] from print_str print_str::@2
|
print_str::@1: scope:[print_str] from print_str print_str::@2
|
||||||
[88] (byte*) print_char_cursor#2 ← phi( print_str/(byte*) print_char_cursor#86 print_str::@2/(byte*) print_char_cursor#1 )
|
[88] (byte*) print_char_cursor#2 ← phi( print_str/(byte*) print_char_cursor#86 print_str::@2/(byte*) print_char_cursor#1 )
|
||||||
[88] (byte*) print_str::str#10 ← phi( print_str/(byte*) print_str::str#12 print_str::@2/(byte*) print_str::str#0 )
|
[88] (byte*) print_str::str#10 ← phi( print_str/(byte*) print_str::str#12 print_str::@2/(byte*) print_str::str#0 )
|
||||||
[89] if(*((byte*) print_str::str#10)!=(byte) '@') goto print_str::@2
|
[89] if((byte) 0!=*((byte*) print_str::str#10)) goto print_str::@2
|
||||||
to:print_str::@return
|
to:print_str::@return
|
||||||
print_str::@return: scope:[print_str] from print_str::@1
|
print_str::@return: scope:[print_str] from print_str::@1
|
||||||
[90] return
|
[90] return
|
||||||
|
@ -8,6 +8,11 @@ Fixing pointer array-indexing *((word[$14]) main::lintab1 + (byte) main::i)
|
|||||||
Fixing pointer array-indexing *((word[$14]) main::lintab2 + (byte) main::i)
|
Fixing pointer array-indexing *((word[$14]) main::lintab2 + (byte) main::i)
|
||||||
Fixing pointer array-indexing *((word[$14]) main::lintab3 + (byte) main::i)
|
Fixing pointer array-indexing *((word[$14]) main::lintab3 + (byte) main::i)
|
||||||
Warning! Adding boolean cast to non-boolean condition *((byte*) strcpy::src)
|
Warning! Adding boolean cast to non-boolean condition *((byte*) strcpy::src)
|
||||||
|
Warning! Adding boolean cast to non-boolean condition *((byte*) print_str_lines::str)
|
||||||
|
Warning! Adding boolean cast to non-boolean condition (byte) print_str_lines::ch
|
||||||
|
Warning! Adding boolean cast to non-boolean condition *((byte*) print_str::str)
|
||||||
|
Warning! Adding boolean cast to non-boolean condition *((byte*) print_str_at::str)
|
||||||
|
Warning! Adding boolean cast to non-boolean sub-expression (byte) print_str_lines::ch
|
||||||
Identified constant variable (byte*) HEAP_TOP
|
Identified constant variable (byte*) HEAP_TOP
|
||||||
Culled Empty Block (label) @1
|
Culled Empty Block (label) @1
|
||||||
Culled Empty Block (label) divr16u::@7
|
Culled Empty Block (label) divr16u::@7
|
||||||
@ -207,7 +212,7 @@ print_str: scope:[print_str] from main::@10 main::@12 main::@14 main::@18 main:
|
|||||||
print_str::@1: scope:[print_str] from print_str print_str::@2
|
print_str::@1: scope:[print_str] from print_str print_str::@2
|
||||||
(byte*) print_char_cursor#78 ← phi( print_str/(byte*) print_char_cursor#86 print_str::@2/(byte*) print_char_cursor#1 )
|
(byte*) print_char_cursor#78 ← phi( print_str/(byte*) print_char_cursor#86 print_str::@2/(byte*) print_char_cursor#1 )
|
||||||
(byte*) print_str::str#10 ← phi( print_str/(byte*) print_str::str#12 print_str::@2/(byte*) print_str::str#0 )
|
(byte*) print_str::str#10 ← phi( print_str/(byte*) print_str::str#12 print_str::@2/(byte*) print_str::str#0 )
|
||||||
(bool~) print_str::$0 ← *((byte*) print_str::str#10) != (byte) '@'
|
(bool~) print_str::$0 ← (number) 0 != *((byte*) print_str::str#10)
|
||||||
if((bool~) print_str::$0) goto print_str::@2
|
if((bool~) print_str::$0) goto print_str::@2
|
||||||
to:print_str::@return
|
to:print_str::@return
|
||||||
print_str::@2: scope:[print_str] from print_str::@1
|
print_str::@2: scope:[print_str] from print_str::@1
|
||||||
@ -1244,6 +1249,7 @@ Adding number conversion cast (unumber) 1 in (word~) divr16u::$7 ← (word) divr
|
|||||||
Adding number conversion cast (unumber) 1 in (number~) divr16u::$5 ← (word) divr16u::rem#7 | (number) 1
|
Adding number conversion cast (unumber) 1 in (number~) divr16u::$5 ← (word) divr16u::rem#7 | (number) 1
|
||||||
Adding number conversion cast (unumber) divr16u::$5 in (number~) divr16u::$5 ← (word) divr16u::rem#7 | (unumber)(number) 1
|
Adding number conversion cast (unumber) divr16u::$5 in (number~) divr16u::$5 ← (word) divr16u::rem#7 | (unumber)(number) 1
|
||||||
Adding number conversion cast (unumber) 0 in (bool~) memset::$0 ← (word) memset::num#1 > (number) 0
|
Adding number conversion cast (unumber) 0 in (bool~) memset::$0 ← (word) memset::num#1 > (number) 0
|
||||||
|
Adding number conversion cast (unumber) 0 in (bool~) print_str::$0 ← (number) 0 != *((byte*) print_str::str#10)
|
||||||
Adding number conversion cast (unumber) $28 in (byte*~) print_ln::$0 ← (byte*) print_line_cursor#11 + (number) $28
|
Adding number conversion cast (unumber) $28 in (byte*~) print_ln::$0 ← (byte*) print_line_cursor#11 + (number) $28
|
||||||
Adding number conversion cast (unumber) 4 in (byte~) print_byte::$0 ← (byte) print_byte::b#3 >> (number) 4
|
Adding number conversion cast (unumber) 4 in (byte~) print_byte::$0 ← (byte) print_byte::b#3 >> (number) 4
|
||||||
Adding number conversion cast (unumber) $f in (number~) print_byte::$2 ← (byte) print_byte::b#4 & (number) $f
|
Adding number conversion cast (unumber) $f in (number~) print_byte::$2 ← (byte) print_byte::b#4 & (number) $f
|
||||||
@ -1310,6 +1316,7 @@ Simplifying constant integer cast 1
|
|||||||
Simplifying constant integer cast 1
|
Simplifying constant integer cast 1
|
||||||
Simplifying constant integer cast 0
|
Simplifying constant integer cast 0
|
||||||
Simplifying constant pointer cast (byte*) 1024
|
Simplifying constant pointer cast (byte*) 1024
|
||||||
|
Simplifying constant integer cast 0
|
||||||
Simplifying constant integer cast $28
|
Simplifying constant integer cast $28
|
||||||
Simplifying constant integer cast 4
|
Simplifying constant integer cast 4
|
||||||
Simplifying constant integer cast $f
|
Simplifying constant integer cast $f
|
||||||
@ -1350,6 +1357,7 @@ Finalized unsigned number type (byte) 1
|
|||||||
Finalized unsigned number type (byte) 1
|
Finalized unsigned number type (byte) 1
|
||||||
Finalized unsigned number type (byte) 1
|
Finalized unsigned number type (byte) 1
|
||||||
Finalized unsigned number type (byte) 0
|
Finalized unsigned number type (byte) 0
|
||||||
|
Finalized unsigned number type (byte) 0
|
||||||
Finalized unsigned number type (byte) $28
|
Finalized unsigned number type (byte) $28
|
||||||
Finalized unsigned number type (byte) 4
|
Finalized unsigned number type (byte) 4
|
||||||
Finalized unsigned number type (byte) $f
|
Finalized unsigned number type (byte) $f
|
||||||
@ -1561,7 +1569,7 @@ Simple Condition (bool~) divr16u::$9 [19] if((word) divr16u::rem#6<(word) divr16
|
|||||||
Simple Condition (bool~) divr16u::$11 [26] if((byte) divr16u::i#1!=rangelast(0,$f)) goto divr16u::@1
|
Simple Condition (bool~) divr16u::$11 [26] if((byte) divr16u::i#1!=rangelast(0,$f)) goto divr16u::@1
|
||||||
Simple Condition (bool~) memset::$1 [41] if((word) memset::num#0<=(byte) 0) goto memset::@1
|
Simple Condition (bool~) memset::$1 [41] if((word) memset::num#0<=(byte) 0) goto memset::@1
|
||||||
Simple Condition (bool~) memset::$4 [51] if((byte*) memset::dst#2!=(byte*) memset::end#0) goto memset::@5
|
Simple Condition (bool~) memset::$4 [51] if((byte*) memset::dst#2!=(byte*) memset::end#0) goto memset::@5
|
||||||
Simple Condition (bool~) print_str::$0 [65] if(*((byte*) print_str::str#10)!=(byte) '@') goto print_str::@2
|
Simple Condition (bool~) print_str::$0 [65] if((byte) 0!=*((byte*) print_str::str#10)) goto print_str::@2
|
||||||
Simple Condition (bool~) print_ln::$1 [78] if((byte*) print_line_cursor#1<(byte*) print_char_cursor#11) goto print_ln::@1
|
Simple Condition (bool~) print_ln::$1 [78] if((byte*) print_line_cursor#1<(byte*) print_char_cursor#11) goto print_ln::@1
|
||||||
Simple Condition (bool~) main::$18 [194] if((byte) main::i#10<(byte) $14) goto main::@2
|
Simple Condition (bool~) main::$18 [194] if((byte) main::i#10<(byte) $14) goto main::@2
|
||||||
Simple Condition (bool~) lin16u_gen::$5 [296] if((word) lin16u_gen::i#2<(word) lin16u_gen::length#3) goto lin16u_gen::@2
|
Simple Condition (bool~) lin16u_gen::$5 [296] if((word) lin16u_gen::i#2<(word) lin16u_gen::length#3) goto lin16u_gen::@2
|
||||||
@ -2124,7 +2132,7 @@ print_str: scope:[print_str] from main::@11 main::@14 main::@16 main::@18 main:
|
|||||||
print_str::@1: scope:[print_str] from print_str print_str::@2
|
print_str::@1: scope:[print_str] from print_str print_str::@2
|
||||||
[88] (byte*) print_char_cursor#2 ← phi( print_str/(byte*) print_char_cursor#86 print_str::@2/(byte*) print_char_cursor#1 )
|
[88] (byte*) print_char_cursor#2 ← phi( print_str/(byte*) print_char_cursor#86 print_str::@2/(byte*) print_char_cursor#1 )
|
||||||
[88] (byte*) print_str::str#10 ← phi( print_str/(byte*) print_str::str#12 print_str::@2/(byte*) print_str::str#0 )
|
[88] (byte*) print_str::str#10 ← phi( print_str/(byte*) print_str::str#12 print_str::@2/(byte*) print_str::str#0 )
|
||||||
[89] if(*((byte*) print_str::str#10)!=(byte) '@') goto print_str::@2
|
[89] if((byte) 0!=*((byte*) print_str::str#10)) goto print_str::@2
|
||||||
to:print_str::@return
|
to:print_str::@return
|
||||||
print_str::@return: scope:[print_str] from print_str::@1
|
print_str::@return: scope:[print_str] from print_str::@1
|
||||||
[90] return
|
[90] return
|
||||||
@ -3077,10 +3085,10 @@ print_str: {
|
|||||||
jmp b1
|
jmp b1
|
||||||
// print_str::@1
|
// print_str::@1
|
||||||
b1:
|
b1:
|
||||||
// [89] if(*((byte*) print_str::str#10)!=(byte) '@') goto print_str::@2 -- _deref_pbuz1_neq_vbuc1_then_la1
|
// [89] if((byte) 0!=*((byte*) print_str::str#10)) goto print_str::@2 -- vbuc1_neq__deref_pbuz1_then_la1
|
||||||
ldy #0
|
ldy #0
|
||||||
lda (str),y
|
lda (str),y
|
||||||
cmp #'@'
|
cmp #0
|
||||||
bne b2
|
bne b2
|
||||||
jmp breturn
|
jmp breturn
|
||||||
// print_str::@return
|
// print_str::@return
|
||||||
@ -3498,7 +3506,7 @@ Statement [79] (byte~) print_byte::$2 ← (byte) print_byte::b#3 & (byte) $f [ p
|
|||||||
Statement [84] *((byte*) print_char_cursor#50) ← (byte) print_char::ch#2 [ print_char_cursor#50 ] ( main:2::print_byte:29::print_char:78 [ main::i#12 print_line_cursor#1 print_byte::b#3 print_char_cursor#50 ] main:2::print_word:15::print_byte:71::print_char:78 [ print_word::w#10 print_byte::b#3 print_char_cursor#50 ] main:2::print_word:19::print_byte:71::print_char:78 [ print_word::w#10 print_byte::b#3 print_char_cursor#50 ] main:2::print_word:23::print_byte:71::print_char:78 [ print_word::w#10 print_byte::b#3 print_char_cursor#50 ] main:2::print_word:34::print_byte:71::print_char:78 [ main::i#12 print_line_cursor#1 print_word::w#10 print_byte::b#3 print_char_cursor#50 ] main:2::print_word:39::print_byte:71::print_char:78 [ main::i#12 print_line_cursor#1 print_word::w#10 print_byte::b#3 print_char_cursor#50 ] main:2::print_word:44::print_byte:71::print_char:78 [ main::i#12 print_line_cursor#1 print_word::w#10 print_byte::b#3 print_char_cursor#50 ] main:2::print_word:52::print_byte:71::print_char:78 [ print_line_cursor#1 print_word::w#10 print_byte::b#3 print_char_cursor#50 ] main:2::print_word:56::print_byte:71::print_char:78 [ print_line_cursor#1 print_word::w#10 print_byte::b#3 print_char_cursor#50 ] main:2::print_word:60::print_byte:71::print_char:78 [ print_line_cursor#1 print_word::w#10 print_byte::b#3 print_char_cursor#50 ] main:2::print_word:15::print_byte:73::print_char:78 [ print_byte::b#3 print_char_cursor#50 ] main:2::print_word:19::print_byte:73::print_char:78 [ print_byte::b#3 print_char_cursor#50 ] main:2::print_word:23::print_byte:73::print_char:78 [ print_byte::b#3 print_char_cursor#50 ] main:2::print_word:34::print_byte:73::print_char:78 [ main::i#12 print_line_cursor#1 print_byte::b#3 print_char_cursor#50 ] main:2::print_word:39::print_byte:73::print_char:78 [ main::i#12 print_line_cursor#1 print_byte::b#3 print_char_cursor#50 ] main:2::print_word:44::print_byte:73::print_char:78 [ main::i#12 print_line_cursor#1 print_byte::b#3 print_char_cursor#50 ] main:2::print_word:52::print_byte:73::print_char:78 [ print_line_cursor#1 print_byte::b#3 print_char_cursor#50 ] main:2::print_word:56::print_byte:73::print_char:78 [ print_line_cursor#1 print_byte::b#3 print_char_cursor#50 ] main:2::print_word:60::print_byte:73::print_char:78 [ print_line_cursor#1 print_byte::b#3 print_char_cursor#50 ] main:2::print_byte:29::print_char:81 [ main::i#12 print_line_cursor#1 print_char_cursor#50 ] main:2::print_word:15::print_byte:71::print_char:81 [ print_word::w#10 print_char_cursor#50 ] main:2::print_word:19::print_byte:71::print_char:81 [ print_word::w#10 print_char_cursor#50 ] main:2::print_word:23::print_byte:71::print_char:81 [ print_word::w#10 print_char_cursor#50 ] main:2::print_word:34::print_byte:71::print_char:81 [ main::i#12 print_line_cursor#1 print_word::w#10 print_char_cursor#50 ] main:2::print_word:39::print_byte:71::print_char:81 [ main::i#12 print_line_cursor#1 print_word::w#10 print_char_cursor#50 ] main:2::print_word:44::print_byte:71::print_char:81 [ main::i#12 print_line_cursor#1 print_word::w#10 print_char_cursor#50 ] main:2::print_word:52::print_byte:71::print_char:81 [ print_line_cursor#1 print_word::w#10 print_char_cursor#50 ] main:2::print_word:56::print_byte:71::print_char:81 [ print_line_cursor#1 print_word::w#10 print_char_cursor#50 ] main:2::print_word:60::print_byte:71::print_char:81 [ print_line_cursor#1 print_word::w#10 print_char_cursor#50 ] main:2::print_word:15::print_byte:73::print_char:81 [ print_char_cursor#50 ] main:2::print_word:19::print_byte:73::print_char:81 [ print_char_cursor#50 ] main:2::print_word:23::print_byte:73::print_char:81 [ print_char_cursor#50 ] main:2::print_word:34::print_byte:73::print_char:81 [ main::i#12 print_line_cursor#1 print_char_cursor#50 ] main:2::print_word:39::print_byte:73::print_char:81 [ main::i#12 print_line_cursor#1 print_char_cursor#50 ] main:2::print_word:44::print_byte:73::print_char:81 [ main::i#12 print_line_cursor#1 print_char_cursor#50 ] main:2::print_word:52::print_byte:73::print_char:81 [ print_line_cursor#1 print_char_cursor#50 ] main:2::print_word:56::print_byte:73::print_char:81 [ print_line_cursor#1 print_char_cursor#50 ] main:2::print_word:60::print_byte:73::print_char:81 [ print_line_cursor#1 print_char_cursor#50 ] ) always clobbers reg byte y
|
Statement [84] *((byte*) print_char_cursor#50) ← (byte) print_char::ch#2 [ print_char_cursor#50 ] ( main:2::print_byte:29::print_char:78 [ main::i#12 print_line_cursor#1 print_byte::b#3 print_char_cursor#50 ] main:2::print_word:15::print_byte:71::print_char:78 [ print_word::w#10 print_byte::b#3 print_char_cursor#50 ] main:2::print_word:19::print_byte:71::print_char:78 [ print_word::w#10 print_byte::b#3 print_char_cursor#50 ] main:2::print_word:23::print_byte:71::print_char:78 [ print_word::w#10 print_byte::b#3 print_char_cursor#50 ] main:2::print_word:34::print_byte:71::print_char:78 [ main::i#12 print_line_cursor#1 print_word::w#10 print_byte::b#3 print_char_cursor#50 ] main:2::print_word:39::print_byte:71::print_char:78 [ main::i#12 print_line_cursor#1 print_word::w#10 print_byte::b#3 print_char_cursor#50 ] main:2::print_word:44::print_byte:71::print_char:78 [ main::i#12 print_line_cursor#1 print_word::w#10 print_byte::b#3 print_char_cursor#50 ] main:2::print_word:52::print_byte:71::print_char:78 [ print_line_cursor#1 print_word::w#10 print_byte::b#3 print_char_cursor#50 ] main:2::print_word:56::print_byte:71::print_char:78 [ print_line_cursor#1 print_word::w#10 print_byte::b#3 print_char_cursor#50 ] main:2::print_word:60::print_byte:71::print_char:78 [ print_line_cursor#1 print_word::w#10 print_byte::b#3 print_char_cursor#50 ] main:2::print_word:15::print_byte:73::print_char:78 [ print_byte::b#3 print_char_cursor#50 ] main:2::print_word:19::print_byte:73::print_char:78 [ print_byte::b#3 print_char_cursor#50 ] main:2::print_word:23::print_byte:73::print_char:78 [ print_byte::b#3 print_char_cursor#50 ] main:2::print_word:34::print_byte:73::print_char:78 [ main::i#12 print_line_cursor#1 print_byte::b#3 print_char_cursor#50 ] main:2::print_word:39::print_byte:73::print_char:78 [ main::i#12 print_line_cursor#1 print_byte::b#3 print_char_cursor#50 ] main:2::print_word:44::print_byte:73::print_char:78 [ main::i#12 print_line_cursor#1 print_byte::b#3 print_char_cursor#50 ] main:2::print_word:52::print_byte:73::print_char:78 [ print_line_cursor#1 print_byte::b#3 print_char_cursor#50 ] main:2::print_word:56::print_byte:73::print_char:78 [ print_line_cursor#1 print_byte::b#3 print_char_cursor#50 ] main:2::print_word:60::print_byte:73::print_char:78 [ print_line_cursor#1 print_byte::b#3 print_char_cursor#50 ] main:2::print_byte:29::print_char:81 [ main::i#12 print_line_cursor#1 print_char_cursor#50 ] main:2::print_word:15::print_byte:71::print_char:81 [ print_word::w#10 print_char_cursor#50 ] main:2::print_word:19::print_byte:71::print_char:81 [ print_word::w#10 print_char_cursor#50 ] main:2::print_word:23::print_byte:71::print_char:81 [ print_word::w#10 print_char_cursor#50 ] main:2::print_word:34::print_byte:71::print_char:81 [ main::i#12 print_line_cursor#1 print_word::w#10 print_char_cursor#50 ] main:2::print_word:39::print_byte:71::print_char:81 [ main::i#12 print_line_cursor#1 print_word::w#10 print_char_cursor#50 ] main:2::print_word:44::print_byte:71::print_char:81 [ main::i#12 print_line_cursor#1 print_word::w#10 print_char_cursor#50 ] main:2::print_word:52::print_byte:71::print_char:81 [ print_line_cursor#1 print_word::w#10 print_char_cursor#50 ] main:2::print_word:56::print_byte:71::print_char:81 [ print_line_cursor#1 print_word::w#10 print_char_cursor#50 ] main:2::print_word:60::print_byte:71::print_char:81 [ print_line_cursor#1 print_word::w#10 print_char_cursor#50 ] main:2::print_word:15::print_byte:73::print_char:81 [ print_char_cursor#50 ] main:2::print_word:19::print_byte:73::print_char:81 [ print_char_cursor#50 ] main:2::print_word:23::print_byte:73::print_char:81 [ print_char_cursor#50 ] main:2::print_word:34::print_byte:73::print_char:81 [ main::i#12 print_line_cursor#1 print_char_cursor#50 ] main:2::print_word:39::print_byte:73::print_char:81 [ main::i#12 print_line_cursor#1 print_char_cursor#50 ] main:2::print_word:44::print_byte:73::print_char:81 [ main::i#12 print_line_cursor#1 print_char_cursor#50 ] main:2::print_word:52::print_byte:73::print_char:81 [ print_line_cursor#1 print_char_cursor#50 ] main:2::print_word:56::print_byte:73::print_char:81 [ print_line_cursor#1 print_char_cursor#50 ] main:2::print_word:60::print_byte:73::print_char:81 [ print_line_cursor#1 print_char_cursor#50 ] ) always clobbers reg byte y
|
||||||
Removing always clobbered register reg byte y as potential for zp ZP_BYTE:2 [ main::i#12 main::i#1 ]
|
Removing always clobbered register reg byte y as potential for zp ZP_BYTE:2 [ main::i#12 main::i#1 ]
|
||||||
Removing always clobbered register reg byte y as potential for zp ZP_BYTE:7 [ print_byte::b#3 print_byte::b#2 print_byte::b#0 print_byte::b#1 ]
|
Removing always clobbered register reg byte y as potential for zp ZP_BYTE:7 [ print_byte::b#3 print_byte::b#2 print_byte::b#0 print_byte::b#1 ]
|
||||||
Statement [89] if(*((byte*) print_str::str#10)!=(byte) '@') goto print_str::@2 [ print_char_cursor#2 print_str::str#10 ] ( main:2::print_str:13 [ print_char_cursor#2 print_str::str#10 ] main:2::print_str:17 [ print_char_cursor#2 print_str::str#10 ] main:2::print_str:21 [ print_char_cursor#2 print_str::str#10 ] main:2::print_str:31 [ main::i#12 print_line_cursor#1 print_char_cursor#2 print_str::str#10 ] main:2::print_str:36 [ main::i#12 print_line_cursor#1 print_char_cursor#2 print_str::str#10 ] main:2::print_str:41 [ main::i#12 print_line_cursor#1 print_char_cursor#2 print_str::str#10 ] main:2::print_str:50 [ print_line_cursor#1 print_char_cursor#2 print_str::str#10 ] main:2::print_str:54 [ print_line_cursor#1 print_char_cursor#2 print_str::str#10 ] main:2::print_str:58 [ print_line_cursor#1 print_char_cursor#2 print_str::str#10 ] ) always clobbers reg byte a reg byte y
|
Statement [89] if((byte) 0!=*((byte*) print_str::str#10)) goto print_str::@2 [ print_char_cursor#2 print_str::str#10 ] ( main:2::print_str:13 [ print_char_cursor#2 print_str::str#10 ] main:2::print_str:17 [ print_char_cursor#2 print_str::str#10 ] main:2::print_str:21 [ print_char_cursor#2 print_str::str#10 ] main:2::print_str:31 [ main::i#12 print_line_cursor#1 print_char_cursor#2 print_str::str#10 ] main:2::print_str:36 [ main::i#12 print_line_cursor#1 print_char_cursor#2 print_str::str#10 ] main:2::print_str:41 [ main::i#12 print_line_cursor#1 print_char_cursor#2 print_str::str#10 ] main:2::print_str:50 [ print_line_cursor#1 print_char_cursor#2 print_str::str#10 ] main:2::print_str:54 [ print_line_cursor#1 print_char_cursor#2 print_str::str#10 ] main:2::print_str:58 [ print_line_cursor#1 print_char_cursor#2 print_str::str#10 ] ) always clobbers reg byte a reg byte y
|
||||||
Statement [91] *((byte*) print_char_cursor#2) ← *((byte*) print_str::str#10) [ print_char_cursor#2 print_str::str#10 ] ( main:2::print_str:13 [ print_char_cursor#2 print_str::str#10 ] main:2::print_str:17 [ print_char_cursor#2 print_str::str#10 ] main:2::print_str:21 [ print_char_cursor#2 print_str::str#10 ] main:2::print_str:31 [ main::i#12 print_line_cursor#1 print_char_cursor#2 print_str::str#10 ] main:2::print_str:36 [ main::i#12 print_line_cursor#1 print_char_cursor#2 print_str::str#10 ] main:2::print_str:41 [ main::i#12 print_line_cursor#1 print_char_cursor#2 print_str::str#10 ] main:2::print_str:50 [ print_line_cursor#1 print_char_cursor#2 print_str::str#10 ] main:2::print_str:54 [ print_line_cursor#1 print_char_cursor#2 print_str::str#10 ] main:2::print_str:58 [ print_line_cursor#1 print_char_cursor#2 print_str::str#10 ] ) always clobbers reg byte a reg byte y
|
Statement [91] *((byte*) print_char_cursor#2) ← *((byte*) print_str::str#10) [ print_char_cursor#2 print_str::str#10 ] ( main:2::print_str:13 [ print_char_cursor#2 print_str::str#10 ] main:2::print_str:17 [ print_char_cursor#2 print_str::str#10 ] main:2::print_str:21 [ print_char_cursor#2 print_str::str#10 ] main:2::print_str:31 [ main::i#12 print_line_cursor#1 print_char_cursor#2 print_str::str#10 ] main:2::print_str:36 [ main::i#12 print_line_cursor#1 print_char_cursor#2 print_str::str#10 ] main:2::print_str:41 [ main::i#12 print_line_cursor#1 print_char_cursor#2 print_str::str#10 ] main:2::print_str:50 [ print_line_cursor#1 print_char_cursor#2 print_str::str#10 ] main:2::print_str:54 [ print_line_cursor#1 print_char_cursor#2 print_str::str#10 ] main:2::print_str:58 [ print_line_cursor#1 print_char_cursor#2 print_str::str#10 ] ) always clobbers reg byte a reg byte y
|
||||||
Statement [99] *((byte*) memset::dst#4) ← (const byte) memset::c#0 [ memset::dst#4 ] ( main:2::print_cls:11::memset:95 [ memset::dst#4 ] ) always clobbers reg byte a reg byte y
|
Statement [99] *((byte*) memset::dst#4) ← (const byte) memset::c#0 [ memset::dst#4 ] ( main:2::print_cls:11::memset:95 [ memset::dst#4 ] ) always clobbers reg byte a reg byte y
|
||||||
Statement [101] if((byte*) memset::dst#1!=(const byte*) memset::end#0) goto memset::@2 [ memset::dst#1 ] ( main:2::print_cls:11::memset:95 [ memset::dst#1 ] ) always clobbers reg byte a
|
Statement [101] if((byte*) memset::dst#1!=(const byte*) memset::end#0) goto memset::@2 [ memset::dst#1 ] ( main:2::print_cls:11::memset:95 [ memset::dst#1 ] ) always clobbers reg byte a
|
||||||
@ -3537,7 +3545,7 @@ Statement [72] (byte) print_byte::b#1 ← < (word) print_word::w#10 [ print_char
|
|||||||
Statement [76] (byte~) print_byte::$0 ← (byte) print_byte::b#3 >> (byte) 4 [ print_byte::b#3 print_char_cursor#81 print_byte::$0 ] ( main:2::print_byte:29 [ main::i#12 print_line_cursor#1 print_byte::b#3 print_char_cursor#81 print_byte::$0 ] main:2::print_word:15::print_byte:71 [ print_word::w#10 print_byte::b#3 print_char_cursor#81 print_byte::$0 ] main:2::print_word:19::print_byte:71 [ print_word::w#10 print_byte::b#3 print_char_cursor#81 print_byte::$0 ] main:2::print_word:23::print_byte:71 [ print_word::w#10 print_byte::b#3 print_char_cursor#81 print_byte::$0 ] main:2::print_word:34::print_byte:71 [ main::i#12 print_line_cursor#1 print_word::w#10 print_byte::b#3 print_char_cursor#81 print_byte::$0 ] main:2::print_word:39::print_byte:71 [ main::i#12 print_line_cursor#1 print_word::w#10 print_byte::b#3 print_char_cursor#81 print_byte::$0 ] main:2::print_word:44::print_byte:71 [ main::i#12 print_line_cursor#1 print_word::w#10 print_byte::b#3 print_char_cursor#81 print_byte::$0 ] main:2::print_word:52::print_byte:71 [ print_line_cursor#1 print_word::w#10 print_byte::b#3 print_char_cursor#81 print_byte::$0 ] main:2::print_word:56::print_byte:71 [ print_line_cursor#1 print_word::w#10 print_byte::b#3 print_char_cursor#81 print_byte::$0 ] main:2::print_word:60::print_byte:71 [ print_line_cursor#1 print_word::w#10 print_byte::b#3 print_char_cursor#81 print_byte::$0 ] main:2::print_word:15::print_byte:73 [ print_byte::b#3 print_char_cursor#81 print_byte::$0 ] main:2::print_word:19::print_byte:73 [ print_byte::b#3 print_char_cursor#81 print_byte::$0 ] main:2::print_word:23::print_byte:73 [ print_byte::b#3 print_char_cursor#81 print_byte::$0 ] main:2::print_word:34::print_byte:73 [ main::i#12 print_line_cursor#1 print_byte::b#3 print_char_cursor#81 print_byte::$0 ] main:2::print_word:39::print_byte:73 [ main::i#12 print_line_cursor#1 print_byte::b#3 print_char_cursor#81 print_byte::$0 ] main:2::print_word:44::print_byte:73 [ main::i#12 print_line_cursor#1 print_byte::b#3 print_char_cursor#81 print_byte::$0 ] main:2::print_word:52::print_byte:73 [ print_line_cursor#1 print_byte::b#3 print_char_cursor#81 print_byte::$0 ] main:2::print_word:56::print_byte:73 [ print_line_cursor#1 print_byte::b#3 print_char_cursor#81 print_byte::$0 ] main:2::print_word:60::print_byte:73 [ print_line_cursor#1 print_byte::b#3 print_char_cursor#81 print_byte::$0 ] ) always clobbers reg byte a
|
Statement [76] (byte~) print_byte::$0 ← (byte) print_byte::b#3 >> (byte) 4 [ print_byte::b#3 print_char_cursor#81 print_byte::$0 ] ( main:2::print_byte:29 [ main::i#12 print_line_cursor#1 print_byte::b#3 print_char_cursor#81 print_byte::$0 ] main:2::print_word:15::print_byte:71 [ print_word::w#10 print_byte::b#3 print_char_cursor#81 print_byte::$0 ] main:2::print_word:19::print_byte:71 [ print_word::w#10 print_byte::b#3 print_char_cursor#81 print_byte::$0 ] main:2::print_word:23::print_byte:71 [ print_word::w#10 print_byte::b#3 print_char_cursor#81 print_byte::$0 ] main:2::print_word:34::print_byte:71 [ main::i#12 print_line_cursor#1 print_word::w#10 print_byte::b#3 print_char_cursor#81 print_byte::$0 ] main:2::print_word:39::print_byte:71 [ main::i#12 print_line_cursor#1 print_word::w#10 print_byte::b#3 print_char_cursor#81 print_byte::$0 ] main:2::print_word:44::print_byte:71 [ main::i#12 print_line_cursor#1 print_word::w#10 print_byte::b#3 print_char_cursor#81 print_byte::$0 ] main:2::print_word:52::print_byte:71 [ print_line_cursor#1 print_word::w#10 print_byte::b#3 print_char_cursor#81 print_byte::$0 ] main:2::print_word:56::print_byte:71 [ print_line_cursor#1 print_word::w#10 print_byte::b#3 print_char_cursor#81 print_byte::$0 ] main:2::print_word:60::print_byte:71 [ print_line_cursor#1 print_word::w#10 print_byte::b#3 print_char_cursor#81 print_byte::$0 ] main:2::print_word:15::print_byte:73 [ print_byte::b#3 print_char_cursor#81 print_byte::$0 ] main:2::print_word:19::print_byte:73 [ print_byte::b#3 print_char_cursor#81 print_byte::$0 ] main:2::print_word:23::print_byte:73 [ print_byte::b#3 print_char_cursor#81 print_byte::$0 ] main:2::print_word:34::print_byte:73 [ main::i#12 print_line_cursor#1 print_byte::b#3 print_char_cursor#81 print_byte::$0 ] main:2::print_word:39::print_byte:73 [ main::i#12 print_line_cursor#1 print_byte::b#3 print_char_cursor#81 print_byte::$0 ] main:2::print_word:44::print_byte:73 [ main::i#12 print_line_cursor#1 print_byte::b#3 print_char_cursor#81 print_byte::$0 ] main:2::print_word:52::print_byte:73 [ print_line_cursor#1 print_byte::b#3 print_char_cursor#81 print_byte::$0 ] main:2::print_word:56::print_byte:73 [ print_line_cursor#1 print_byte::b#3 print_char_cursor#81 print_byte::$0 ] main:2::print_word:60::print_byte:73 [ print_line_cursor#1 print_byte::b#3 print_char_cursor#81 print_byte::$0 ] ) always clobbers reg byte a
|
||||||
Statement [79] (byte~) print_byte::$2 ← (byte) print_byte::b#3 & (byte) $f [ print_char_cursor#11 print_byte::$2 ] ( main:2::print_byte:29 [ main::i#12 print_line_cursor#1 print_char_cursor#11 print_byte::$2 ] main:2::print_word:15::print_byte:71 [ print_word::w#10 print_char_cursor#11 print_byte::$2 ] main:2::print_word:19::print_byte:71 [ print_word::w#10 print_char_cursor#11 print_byte::$2 ] main:2::print_word:23::print_byte:71 [ print_word::w#10 print_char_cursor#11 print_byte::$2 ] main:2::print_word:34::print_byte:71 [ main::i#12 print_line_cursor#1 print_word::w#10 print_char_cursor#11 print_byte::$2 ] main:2::print_word:39::print_byte:71 [ main::i#12 print_line_cursor#1 print_word::w#10 print_char_cursor#11 print_byte::$2 ] main:2::print_word:44::print_byte:71 [ main::i#12 print_line_cursor#1 print_word::w#10 print_char_cursor#11 print_byte::$2 ] main:2::print_word:52::print_byte:71 [ print_line_cursor#1 print_word::w#10 print_char_cursor#11 print_byte::$2 ] main:2::print_word:56::print_byte:71 [ print_line_cursor#1 print_word::w#10 print_char_cursor#11 print_byte::$2 ] main:2::print_word:60::print_byte:71 [ print_line_cursor#1 print_word::w#10 print_char_cursor#11 print_byte::$2 ] main:2::print_word:15::print_byte:73 [ print_char_cursor#11 print_byte::$2 ] main:2::print_word:19::print_byte:73 [ print_char_cursor#11 print_byte::$2 ] main:2::print_word:23::print_byte:73 [ print_char_cursor#11 print_byte::$2 ] main:2::print_word:34::print_byte:73 [ main::i#12 print_line_cursor#1 print_char_cursor#11 print_byte::$2 ] main:2::print_word:39::print_byte:73 [ main::i#12 print_line_cursor#1 print_char_cursor#11 print_byte::$2 ] main:2::print_word:44::print_byte:73 [ main::i#12 print_line_cursor#1 print_char_cursor#11 print_byte::$2 ] main:2::print_word:52::print_byte:73 [ print_line_cursor#1 print_char_cursor#11 print_byte::$2 ] main:2::print_word:56::print_byte:73 [ print_line_cursor#1 print_char_cursor#11 print_byte::$2 ] main:2::print_word:60::print_byte:73 [ print_line_cursor#1 print_char_cursor#11 print_byte::$2 ] ) always clobbers reg byte a
|
Statement [79] (byte~) print_byte::$2 ← (byte) print_byte::b#3 & (byte) $f [ print_char_cursor#11 print_byte::$2 ] ( main:2::print_byte:29 [ main::i#12 print_line_cursor#1 print_char_cursor#11 print_byte::$2 ] main:2::print_word:15::print_byte:71 [ print_word::w#10 print_char_cursor#11 print_byte::$2 ] main:2::print_word:19::print_byte:71 [ print_word::w#10 print_char_cursor#11 print_byte::$2 ] main:2::print_word:23::print_byte:71 [ print_word::w#10 print_char_cursor#11 print_byte::$2 ] main:2::print_word:34::print_byte:71 [ main::i#12 print_line_cursor#1 print_word::w#10 print_char_cursor#11 print_byte::$2 ] main:2::print_word:39::print_byte:71 [ main::i#12 print_line_cursor#1 print_word::w#10 print_char_cursor#11 print_byte::$2 ] main:2::print_word:44::print_byte:71 [ main::i#12 print_line_cursor#1 print_word::w#10 print_char_cursor#11 print_byte::$2 ] main:2::print_word:52::print_byte:71 [ print_line_cursor#1 print_word::w#10 print_char_cursor#11 print_byte::$2 ] main:2::print_word:56::print_byte:71 [ print_line_cursor#1 print_word::w#10 print_char_cursor#11 print_byte::$2 ] main:2::print_word:60::print_byte:71 [ print_line_cursor#1 print_word::w#10 print_char_cursor#11 print_byte::$2 ] main:2::print_word:15::print_byte:73 [ print_char_cursor#11 print_byte::$2 ] main:2::print_word:19::print_byte:73 [ print_char_cursor#11 print_byte::$2 ] main:2::print_word:23::print_byte:73 [ print_char_cursor#11 print_byte::$2 ] main:2::print_word:34::print_byte:73 [ main::i#12 print_line_cursor#1 print_char_cursor#11 print_byte::$2 ] main:2::print_word:39::print_byte:73 [ main::i#12 print_line_cursor#1 print_char_cursor#11 print_byte::$2 ] main:2::print_word:44::print_byte:73 [ main::i#12 print_line_cursor#1 print_char_cursor#11 print_byte::$2 ] main:2::print_word:52::print_byte:73 [ print_line_cursor#1 print_char_cursor#11 print_byte::$2 ] main:2::print_word:56::print_byte:73 [ print_line_cursor#1 print_char_cursor#11 print_byte::$2 ] main:2::print_word:60::print_byte:73 [ print_line_cursor#1 print_char_cursor#11 print_byte::$2 ] ) always clobbers reg byte a
|
||||||
Statement [84] *((byte*) print_char_cursor#50) ← (byte) print_char::ch#2 [ print_char_cursor#50 ] ( main:2::print_byte:29::print_char:78 [ main::i#12 print_line_cursor#1 print_byte::b#3 print_char_cursor#50 ] main:2::print_word:15::print_byte:71::print_char:78 [ print_word::w#10 print_byte::b#3 print_char_cursor#50 ] main:2::print_word:19::print_byte:71::print_char:78 [ print_word::w#10 print_byte::b#3 print_char_cursor#50 ] main:2::print_word:23::print_byte:71::print_char:78 [ print_word::w#10 print_byte::b#3 print_char_cursor#50 ] main:2::print_word:34::print_byte:71::print_char:78 [ main::i#12 print_line_cursor#1 print_word::w#10 print_byte::b#3 print_char_cursor#50 ] main:2::print_word:39::print_byte:71::print_char:78 [ main::i#12 print_line_cursor#1 print_word::w#10 print_byte::b#3 print_char_cursor#50 ] main:2::print_word:44::print_byte:71::print_char:78 [ main::i#12 print_line_cursor#1 print_word::w#10 print_byte::b#3 print_char_cursor#50 ] main:2::print_word:52::print_byte:71::print_char:78 [ print_line_cursor#1 print_word::w#10 print_byte::b#3 print_char_cursor#50 ] main:2::print_word:56::print_byte:71::print_char:78 [ print_line_cursor#1 print_word::w#10 print_byte::b#3 print_char_cursor#50 ] main:2::print_word:60::print_byte:71::print_char:78 [ print_line_cursor#1 print_word::w#10 print_byte::b#3 print_char_cursor#50 ] main:2::print_word:15::print_byte:73::print_char:78 [ print_byte::b#3 print_char_cursor#50 ] main:2::print_word:19::print_byte:73::print_char:78 [ print_byte::b#3 print_char_cursor#50 ] main:2::print_word:23::print_byte:73::print_char:78 [ print_byte::b#3 print_char_cursor#50 ] main:2::print_word:34::print_byte:73::print_char:78 [ main::i#12 print_line_cursor#1 print_byte::b#3 print_char_cursor#50 ] main:2::print_word:39::print_byte:73::print_char:78 [ main::i#12 print_line_cursor#1 print_byte::b#3 print_char_cursor#50 ] main:2::print_word:44::print_byte:73::print_char:78 [ main::i#12 print_line_cursor#1 print_byte::b#3 print_char_cursor#50 ] main:2::print_word:52::print_byte:73::print_char:78 [ print_line_cursor#1 print_byte::b#3 print_char_cursor#50 ] main:2::print_word:56::print_byte:73::print_char:78 [ print_line_cursor#1 print_byte::b#3 print_char_cursor#50 ] main:2::print_word:60::print_byte:73::print_char:78 [ print_line_cursor#1 print_byte::b#3 print_char_cursor#50 ] main:2::print_byte:29::print_char:81 [ main::i#12 print_line_cursor#1 print_char_cursor#50 ] main:2::print_word:15::print_byte:71::print_char:81 [ print_word::w#10 print_char_cursor#50 ] main:2::print_word:19::print_byte:71::print_char:81 [ print_word::w#10 print_char_cursor#50 ] main:2::print_word:23::print_byte:71::print_char:81 [ print_word::w#10 print_char_cursor#50 ] main:2::print_word:34::print_byte:71::print_char:81 [ main::i#12 print_line_cursor#1 print_word::w#10 print_char_cursor#50 ] main:2::print_word:39::print_byte:71::print_char:81 [ main::i#12 print_line_cursor#1 print_word::w#10 print_char_cursor#50 ] main:2::print_word:44::print_byte:71::print_char:81 [ main::i#12 print_line_cursor#1 print_word::w#10 print_char_cursor#50 ] main:2::print_word:52::print_byte:71::print_char:81 [ print_line_cursor#1 print_word::w#10 print_char_cursor#50 ] main:2::print_word:56::print_byte:71::print_char:81 [ print_line_cursor#1 print_word::w#10 print_char_cursor#50 ] main:2::print_word:60::print_byte:71::print_char:81 [ print_line_cursor#1 print_word::w#10 print_char_cursor#50 ] main:2::print_word:15::print_byte:73::print_char:81 [ print_char_cursor#50 ] main:2::print_word:19::print_byte:73::print_char:81 [ print_char_cursor#50 ] main:2::print_word:23::print_byte:73::print_char:81 [ print_char_cursor#50 ] main:2::print_word:34::print_byte:73::print_char:81 [ main::i#12 print_line_cursor#1 print_char_cursor#50 ] main:2::print_word:39::print_byte:73::print_char:81 [ main::i#12 print_line_cursor#1 print_char_cursor#50 ] main:2::print_word:44::print_byte:73::print_char:81 [ main::i#12 print_line_cursor#1 print_char_cursor#50 ] main:2::print_word:52::print_byte:73::print_char:81 [ print_line_cursor#1 print_char_cursor#50 ] main:2::print_word:56::print_byte:73::print_char:81 [ print_line_cursor#1 print_char_cursor#50 ] main:2::print_word:60::print_byte:73::print_char:81 [ print_line_cursor#1 print_char_cursor#50 ] ) always clobbers reg byte y
|
Statement [84] *((byte*) print_char_cursor#50) ← (byte) print_char::ch#2 [ print_char_cursor#50 ] ( main:2::print_byte:29::print_char:78 [ main::i#12 print_line_cursor#1 print_byte::b#3 print_char_cursor#50 ] main:2::print_word:15::print_byte:71::print_char:78 [ print_word::w#10 print_byte::b#3 print_char_cursor#50 ] main:2::print_word:19::print_byte:71::print_char:78 [ print_word::w#10 print_byte::b#3 print_char_cursor#50 ] main:2::print_word:23::print_byte:71::print_char:78 [ print_word::w#10 print_byte::b#3 print_char_cursor#50 ] main:2::print_word:34::print_byte:71::print_char:78 [ main::i#12 print_line_cursor#1 print_word::w#10 print_byte::b#3 print_char_cursor#50 ] main:2::print_word:39::print_byte:71::print_char:78 [ main::i#12 print_line_cursor#1 print_word::w#10 print_byte::b#3 print_char_cursor#50 ] main:2::print_word:44::print_byte:71::print_char:78 [ main::i#12 print_line_cursor#1 print_word::w#10 print_byte::b#3 print_char_cursor#50 ] main:2::print_word:52::print_byte:71::print_char:78 [ print_line_cursor#1 print_word::w#10 print_byte::b#3 print_char_cursor#50 ] main:2::print_word:56::print_byte:71::print_char:78 [ print_line_cursor#1 print_word::w#10 print_byte::b#3 print_char_cursor#50 ] main:2::print_word:60::print_byte:71::print_char:78 [ print_line_cursor#1 print_word::w#10 print_byte::b#3 print_char_cursor#50 ] main:2::print_word:15::print_byte:73::print_char:78 [ print_byte::b#3 print_char_cursor#50 ] main:2::print_word:19::print_byte:73::print_char:78 [ print_byte::b#3 print_char_cursor#50 ] main:2::print_word:23::print_byte:73::print_char:78 [ print_byte::b#3 print_char_cursor#50 ] main:2::print_word:34::print_byte:73::print_char:78 [ main::i#12 print_line_cursor#1 print_byte::b#3 print_char_cursor#50 ] main:2::print_word:39::print_byte:73::print_char:78 [ main::i#12 print_line_cursor#1 print_byte::b#3 print_char_cursor#50 ] main:2::print_word:44::print_byte:73::print_char:78 [ main::i#12 print_line_cursor#1 print_byte::b#3 print_char_cursor#50 ] main:2::print_word:52::print_byte:73::print_char:78 [ print_line_cursor#1 print_byte::b#3 print_char_cursor#50 ] main:2::print_word:56::print_byte:73::print_char:78 [ print_line_cursor#1 print_byte::b#3 print_char_cursor#50 ] main:2::print_word:60::print_byte:73::print_char:78 [ print_line_cursor#1 print_byte::b#3 print_char_cursor#50 ] main:2::print_byte:29::print_char:81 [ main::i#12 print_line_cursor#1 print_char_cursor#50 ] main:2::print_word:15::print_byte:71::print_char:81 [ print_word::w#10 print_char_cursor#50 ] main:2::print_word:19::print_byte:71::print_char:81 [ print_word::w#10 print_char_cursor#50 ] main:2::print_word:23::print_byte:71::print_char:81 [ print_word::w#10 print_char_cursor#50 ] main:2::print_word:34::print_byte:71::print_char:81 [ main::i#12 print_line_cursor#1 print_word::w#10 print_char_cursor#50 ] main:2::print_word:39::print_byte:71::print_char:81 [ main::i#12 print_line_cursor#1 print_word::w#10 print_char_cursor#50 ] main:2::print_word:44::print_byte:71::print_char:81 [ main::i#12 print_line_cursor#1 print_word::w#10 print_char_cursor#50 ] main:2::print_word:52::print_byte:71::print_char:81 [ print_line_cursor#1 print_word::w#10 print_char_cursor#50 ] main:2::print_word:56::print_byte:71::print_char:81 [ print_line_cursor#1 print_word::w#10 print_char_cursor#50 ] main:2::print_word:60::print_byte:71::print_char:81 [ print_line_cursor#1 print_word::w#10 print_char_cursor#50 ] main:2::print_word:15::print_byte:73::print_char:81 [ print_char_cursor#50 ] main:2::print_word:19::print_byte:73::print_char:81 [ print_char_cursor#50 ] main:2::print_word:23::print_byte:73::print_char:81 [ print_char_cursor#50 ] main:2::print_word:34::print_byte:73::print_char:81 [ main::i#12 print_line_cursor#1 print_char_cursor#50 ] main:2::print_word:39::print_byte:73::print_char:81 [ main::i#12 print_line_cursor#1 print_char_cursor#50 ] main:2::print_word:44::print_byte:73::print_char:81 [ main::i#12 print_line_cursor#1 print_char_cursor#50 ] main:2::print_word:52::print_byte:73::print_char:81 [ print_line_cursor#1 print_char_cursor#50 ] main:2::print_word:56::print_byte:73::print_char:81 [ print_line_cursor#1 print_char_cursor#50 ] main:2::print_word:60::print_byte:73::print_char:81 [ print_line_cursor#1 print_char_cursor#50 ] ) always clobbers reg byte y
|
||||||
Statement [89] if(*((byte*) print_str::str#10)!=(byte) '@') goto print_str::@2 [ print_char_cursor#2 print_str::str#10 ] ( main:2::print_str:13 [ print_char_cursor#2 print_str::str#10 ] main:2::print_str:17 [ print_char_cursor#2 print_str::str#10 ] main:2::print_str:21 [ print_char_cursor#2 print_str::str#10 ] main:2::print_str:31 [ main::i#12 print_line_cursor#1 print_char_cursor#2 print_str::str#10 ] main:2::print_str:36 [ main::i#12 print_line_cursor#1 print_char_cursor#2 print_str::str#10 ] main:2::print_str:41 [ main::i#12 print_line_cursor#1 print_char_cursor#2 print_str::str#10 ] main:2::print_str:50 [ print_line_cursor#1 print_char_cursor#2 print_str::str#10 ] main:2::print_str:54 [ print_line_cursor#1 print_char_cursor#2 print_str::str#10 ] main:2::print_str:58 [ print_line_cursor#1 print_char_cursor#2 print_str::str#10 ] ) always clobbers reg byte a reg byte y
|
Statement [89] if((byte) 0!=*((byte*) print_str::str#10)) goto print_str::@2 [ print_char_cursor#2 print_str::str#10 ] ( main:2::print_str:13 [ print_char_cursor#2 print_str::str#10 ] main:2::print_str:17 [ print_char_cursor#2 print_str::str#10 ] main:2::print_str:21 [ print_char_cursor#2 print_str::str#10 ] main:2::print_str:31 [ main::i#12 print_line_cursor#1 print_char_cursor#2 print_str::str#10 ] main:2::print_str:36 [ main::i#12 print_line_cursor#1 print_char_cursor#2 print_str::str#10 ] main:2::print_str:41 [ main::i#12 print_line_cursor#1 print_char_cursor#2 print_str::str#10 ] main:2::print_str:50 [ print_line_cursor#1 print_char_cursor#2 print_str::str#10 ] main:2::print_str:54 [ print_line_cursor#1 print_char_cursor#2 print_str::str#10 ] main:2::print_str:58 [ print_line_cursor#1 print_char_cursor#2 print_str::str#10 ] ) always clobbers reg byte a reg byte y
|
||||||
Statement [91] *((byte*) print_char_cursor#2) ← *((byte*) print_str::str#10) [ print_char_cursor#2 print_str::str#10 ] ( main:2::print_str:13 [ print_char_cursor#2 print_str::str#10 ] main:2::print_str:17 [ print_char_cursor#2 print_str::str#10 ] main:2::print_str:21 [ print_char_cursor#2 print_str::str#10 ] main:2::print_str:31 [ main::i#12 print_line_cursor#1 print_char_cursor#2 print_str::str#10 ] main:2::print_str:36 [ main::i#12 print_line_cursor#1 print_char_cursor#2 print_str::str#10 ] main:2::print_str:41 [ main::i#12 print_line_cursor#1 print_char_cursor#2 print_str::str#10 ] main:2::print_str:50 [ print_line_cursor#1 print_char_cursor#2 print_str::str#10 ] main:2::print_str:54 [ print_line_cursor#1 print_char_cursor#2 print_str::str#10 ] main:2::print_str:58 [ print_line_cursor#1 print_char_cursor#2 print_str::str#10 ] ) always clobbers reg byte a reg byte y
|
Statement [91] *((byte*) print_char_cursor#2) ← *((byte*) print_str::str#10) [ print_char_cursor#2 print_str::str#10 ] ( main:2::print_str:13 [ print_char_cursor#2 print_str::str#10 ] main:2::print_str:17 [ print_char_cursor#2 print_str::str#10 ] main:2::print_str:21 [ print_char_cursor#2 print_str::str#10 ] main:2::print_str:31 [ main::i#12 print_line_cursor#1 print_char_cursor#2 print_str::str#10 ] main:2::print_str:36 [ main::i#12 print_line_cursor#1 print_char_cursor#2 print_str::str#10 ] main:2::print_str:41 [ main::i#12 print_line_cursor#1 print_char_cursor#2 print_str::str#10 ] main:2::print_str:50 [ print_line_cursor#1 print_char_cursor#2 print_str::str#10 ] main:2::print_str:54 [ print_line_cursor#1 print_char_cursor#2 print_str::str#10 ] main:2::print_str:58 [ print_line_cursor#1 print_char_cursor#2 print_str::str#10 ] ) always clobbers reg byte a reg byte y
|
||||||
Statement [99] *((byte*) memset::dst#4) ← (const byte) memset::c#0 [ memset::dst#4 ] ( main:2::print_cls:11::memset:95 [ memset::dst#4 ] ) always clobbers reg byte a reg byte y
|
Statement [99] *((byte*) memset::dst#4) ← (const byte) memset::c#0 [ memset::dst#4 ] ( main:2::print_cls:11::memset:95 [ memset::dst#4 ] ) always clobbers reg byte a reg byte y
|
||||||
Statement [101] if((byte*) memset::dst#1!=(const byte*) memset::end#0) goto memset::@2 [ memset::dst#1 ] ( main:2::print_cls:11::memset:95 [ memset::dst#1 ] ) always clobbers reg byte a
|
Statement [101] if((byte*) memset::dst#1!=(const byte*) memset::end#0) goto memset::@2 [ memset::dst#1 ] ( main:2::print_cls:11::memset:95 [ memset::dst#1 ] ) always clobbers reg byte a
|
||||||
@ -4250,10 +4258,10 @@ print_str: {
|
|||||||
jmp b1
|
jmp b1
|
||||||
// print_str::@1
|
// print_str::@1
|
||||||
b1:
|
b1:
|
||||||
// [89] if(*((byte*) print_str::str#10)!=(byte) '@') goto print_str::@2 -- _deref_pbuz1_neq_vbuc1_then_la1
|
// [89] if((byte) 0!=*((byte*) print_str::str#10)) goto print_str::@2 -- vbuc1_neq__deref_pbuz1_then_la1
|
||||||
ldy #0
|
ldy #0
|
||||||
lda (str),y
|
lda (str),y
|
||||||
cmp #'@'
|
cmp #0
|
||||||
bne b2
|
bne b2
|
||||||
jmp breturn
|
jmp breturn
|
||||||
// print_str::@return
|
// print_str::@return
|
||||||
@ -5552,11 +5560,11 @@ print_str: {
|
|||||||
// [88] phi (byte*) print_str::str#10 = (byte*) print_str::str#12 [phi:print_str/print_str::@2->print_str::@1#1] -- register_copy
|
// [88] phi (byte*) print_str::str#10 = (byte*) print_str::str#12 [phi:print_str/print_str::@2->print_str::@1#1] -- register_copy
|
||||||
// print_str::@1
|
// print_str::@1
|
||||||
b1:
|
b1:
|
||||||
// while(*str!='@')
|
// while(*str)
|
||||||
// [89] if(*((byte*) print_str::str#10)!=(byte) '@') goto print_str::@2 -- _deref_pbuz1_neq_vbuc1_then_la1
|
// [89] if((byte) 0!=*((byte*) print_str::str#10)) goto print_str::@2 -- vbuc1_neq__deref_pbuz1_then_la1
|
||||||
ldy #0
|
ldy #0
|
||||||
lda (str),y
|
lda (str),y
|
||||||
cmp #'@'
|
cmp #0
|
||||||
bne b2
|
bne b2
|
||||||
// print_str::@return
|
// print_str::@return
|
||||||
// }
|
// }
|
||||||
|
@ -4,16 +4,16 @@
|
|||||||
.pc = $80d "Program"
|
.pc = $80d "Program"
|
||||||
main: {
|
main: {
|
||||||
.label screen = $400
|
.label screen = $400
|
||||||
ldx #0
|
ldy #0
|
||||||
b1:
|
b1:
|
||||||
lda msg,x
|
lda #0
|
||||||
cmp #'@'
|
cmp msg,y
|
||||||
bne b2
|
bne b2
|
||||||
rts
|
rts
|
||||||
b2:
|
b2:
|
||||||
lda msg,x
|
lda msg,y
|
||||||
sta screen,x
|
sta screen,y
|
||||||
inx
|
iny
|
||||||
jmp b1
|
jmp b1
|
||||||
msg: .text "message 2 "
|
msg: .text "message 2 "
|
||||||
.byte 0
|
.byte 0
|
||||||
|
@ -12,7 +12,7 @@ main: scope:[main] from @1
|
|||||||
to:main::@1
|
to:main::@1
|
||||||
main::@1: scope:[main] from main main::@2
|
main::@1: scope:[main] from main main::@2
|
||||||
[5] (byte) main::i#2 ← phi( main/(byte) 0 main::@2/(byte) main::i#1 )
|
[5] (byte) main::i#2 ← phi( main/(byte) 0 main::@2/(byte) main::i#1 )
|
||||||
[6] if(*((const byte[]) main::msg#0 + (byte) main::i#2)!=(byte) '@') goto main::@2
|
[6] if((byte) 0!=*((const byte[]) main::msg#0 + (byte) main::i#2)) goto main::@2
|
||||||
to:main::@return
|
to:main::@return
|
||||||
main::@return: scope:[main] from main::@1
|
main::@return: scope:[main] from main::@1
|
||||||
[7] return
|
[7] return
|
||||||
|
@ -1,3 +1,4 @@
|
|||||||
|
Warning! Adding boolean cast to non-boolean condition *((byte[]) main::msg + (byte) main::i)
|
||||||
Identified constant variable (byte*) main::screen
|
Identified constant variable (byte*) main::screen
|
||||||
Culled Empty Block (label) main::@4
|
Culled Empty Block (label) main::@4
|
||||||
Culled Empty Block (label) main::@3
|
Culled Empty Block (label) main::@3
|
||||||
@ -14,7 +15,7 @@ main: scope:[main] from @1
|
|||||||
to:main::@1
|
to:main::@1
|
||||||
main::@1: scope:[main] from main main::@2
|
main::@1: scope:[main] from main main::@2
|
||||||
(byte) main::i#2 ← phi( main/(byte) main::i#0 main::@2/(byte) main::i#1 )
|
(byte) main::i#2 ← phi( main/(byte) main::i#0 main::@2/(byte) main::i#1 )
|
||||||
(bool~) main::$0 ← *((byte[]) main::msg#0 + (byte) main::i#2) != (byte) '@'
|
(bool~) main::$0 ← (number) 0 != *((byte[]) main::msg#0 + (byte) main::i#2)
|
||||||
if((bool~) main::$0) goto main::@2
|
if((bool~) main::$0) goto main::@2
|
||||||
to:main::@return
|
to:main::@return
|
||||||
main::@2: scope:[main] from main::@1
|
main::@2: scope:[main] from main::@1
|
||||||
@ -54,18 +55,21 @@ SYMBOL TABLE SSA
|
|||||||
(byte*) main::screen#0
|
(byte*) main::screen#0
|
||||||
|
|
||||||
Adding number conversion cast (unumber) 0 in (byte) main::i#0 ← (number) 0
|
Adding number conversion cast (unumber) 0 in (byte) main::i#0 ← (number) 0
|
||||||
|
Adding number conversion cast (unumber) 0 in (bool~) main::$0 ← (number) 0 != *((byte[]) main::msg#0 + (byte) main::i#2)
|
||||||
Successful SSA optimization PassNAddNumberTypeConversions
|
Successful SSA optimization PassNAddNumberTypeConversions
|
||||||
Inlining cast (byte*) main::screen#0 ← (byte*)(number) $400
|
Inlining cast (byte*) main::screen#0 ← (byte*)(number) $400
|
||||||
Inlining cast (byte) main::i#0 ← (unumber)(number) 0
|
Inlining cast (byte) main::i#0 ← (unumber)(number) 0
|
||||||
Successful SSA optimization Pass2InlineCast
|
Successful SSA optimization Pass2InlineCast
|
||||||
Simplifying constant pointer cast (byte*) 1024
|
Simplifying constant pointer cast (byte*) 1024
|
||||||
Simplifying constant integer cast 0
|
Simplifying constant integer cast 0
|
||||||
|
Simplifying constant integer cast 0
|
||||||
Successful SSA optimization PassNCastSimplification
|
Successful SSA optimization PassNCastSimplification
|
||||||
Finalized unsigned number type (byte) 0
|
Finalized unsigned number type (byte) 0
|
||||||
|
Finalized unsigned number type (byte) 0
|
||||||
Successful SSA optimization PassNFinalizeNumberTypeConversions
|
Successful SSA optimization PassNFinalizeNumberTypeConversions
|
||||||
Alias (byte) main::i#2 = (byte) main::i#3
|
Alias (byte) main::i#2 = (byte) main::i#3
|
||||||
Successful SSA optimization Pass2AliasElimination
|
Successful SSA optimization Pass2AliasElimination
|
||||||
Simple Condition (bool~) main::$0 [5] if(*((byte[]) main::msg#0 + (byte) main::i#2)!=(byte) '@') goto main::@2
|
Simple Condition (bool~) main::$0 [5] if((byte) 0!=*((byte[]) main::msg#0 + (byte) main::i#2)) goto main::@2
|
||||||
Successful SSA optimization Pass2ConditionalJumpSimplification
|
Successful SSA optimization Pass2ConditionalJumpSimplification
|
||||||
Constant (const byte*) main::screen#0 = (byte*) 1024
|
Constant (const byte*) main::screen#0 = (byte*) 1024
|
||||||
Constant (const byte[]) main::msg#0 = main::$1
|
Constant (const byte[]) main::msg#0 = main::$1
|
||||||
@ -107,7 +111,7 @@ main: scope:[main] from @1
|
|||||||
to:main::@1
|
to:main::@1
|
||||||
main::@1: scope:[main] from main main::@2
|
main::@1: scope:[main] from main main::@2
|
||||||
[5] (byte) main::i#2 ← phi( main/(byte) 0 main::@2/(byte) main::i#1 )
|
[5] (byte) main::i#2 ← phi( main/(byte) 0 main::@2/(byte) main::i#1 )
|
||||||
[6] if(*((const byte[]) main::msg#0 + (byte) main::i#2)!=(byte) '@') goto main::@2
|
[6] if((byte) 0!=*((const byte[]) main::msg#0 + (byte) main::i#2)) goto main::@2
|
||||||
to:main::@return
|
to:main::@return
|
||||||
main::@return: scope:[main] from main::@1
|
main::@return: scope:[main] from main::@1
|
||||||
[7] return
|
[7] return
|
||||||
@ -169,8 +173,8 @@ main: {
|
|||||||
jmp b1
|
jmp b1
|
||||||
// main::@1
|
// main::@1
|
||||||
b1:
|
b1:
|
||||||
// [6] if(*((const byte[]) main::msg#0 + (byte) main::i#2)!=(byte) '@') goto main::@2 -- pbuc1_derefidx_vbuz1_neq_vbuc2_then_la1
|
// [6] if((byte) 0!=*((const byte[]) main::msg#0 + (byte) main::i#2)) goto main::@2 -- vbuc1_neq_pbuc2_derefidx_vbuz1_then_la1
|
||||||
lda #'@'
|
lda #0
|
||||||
ldy i
|
ldy i
|
||||||
cmp msg,y
|
cmp msg,y
|
||||||
bne b2
|
bne b2
|
||||||
@ -197,10 +201,10 @@ main: {
|
|||||||
// File Data
|
// File Data
|
||||||
|
|
||||||
REGISTER UPLIFT POTENTIAL REGISTERS
|
REGISTER UPLIFT POTENTIAL REGISTERS
|
||||||
Statement [6] if(*((const byte[]) main::msg#0 + (byte) main::i#2)!=(byte) '@') goto main::@2 [ main::i#2 ] ( main:2 [ main::i#2 ] ) always clobbers reg byte a
|
Statement [6] if((byte) 0!=*((const byte[]) main::msg#0 + (byte) main::i#2)) goto main::@2 [ main::i#2 ] ( main:2 [ main::i#2 ] ) always clobbers reg byte a
|
||||||
Removing always clobbered register reg byte a as potential for zp ZP_BYTE:2 [ main::i#2 main::i#1 ]
|
Removing always clobbered register reg byte a as potential for zp ZP_BYTE:2 [ main::i#2 main::i#1 ]
|
||||||
Statement [8] *((const byte*) main::screen#0 + (byte) main::i#2) ← *((const byte[]) main::msg#0 + (byte) main::i#2) [ main::i#2 ] ( main:2 [ main::i#2 ] ) always clobbers reg byte a
|
Statement [8] *((const byte*) main::screen#0 + (byte) main::i#2) ← *((const byte[]) main::msg#0 + (byte) main::i#2) [ main::i#2 ] ( main:2 [ main::i#2 ] ) always clobbers reg byte a
|
||||||
Statement [6] if(*((const byte[]) main::msg#0 + (byte) main::i#2)!=(byte) '@') goto main::@2 [ main::i#2 ] ( main:2 [ main::i#2 ] ) always clobbers reg byte a
|
Statement [6] if((byte) 0!=*((const byte[]) main::msg#0 + (byte) main::i#2)) goto main::@2 [ main::i#2 ] ( main:2 [ main::i#2 ] ) always clobbers reg byte a
|
||||||
Statement [8] *((const byte*) main::screen#0 + (byte) main::i#2) ← *((const byte[]) main::msg#0 + (byte) main::i#2) [ main::i#2 ] ( main:2 [ main::i#2 ] ) always clobbers reg byte a
|
Statement [8] *((const byte*) main::screen#0 + (byte) main::i#2) ← *((const byte[]) main::msg#0 + (byte) main::i#2) [ main::i#2 ] ( main:2 [ main::i#2 ] ) always clobbers reg byte a
|
||||||
Potential registers zp ZP_BYTE:2 [ main::i#2 main::i#1 ] : zp ZP_BYTE:2 , reg byte x , reg byte y ,
|
Potential registers zp ZP_BYTE:2 [ main::i#2 main::i#1 ] : zp ZP_BYTE:2 , reg byte x , reg byte y ,
|
||||||
|
|
||||||
@ -208,7 +212,7 @@ REGISTER UPLIFT SCOPES
|
|||||||
Uplift Scope [main] 40.33: zp ZP_BYTE:2 [ main::i#2 main::i#1 ]
|
Uplift Scope [main] 40.33: zp ZP_BYTE:2 [ main::i#2 main::i#1 ]
|
||||||
Uplift Scope []
|
Uplift Scope []
|
||||||
|
|
||||||
Uplifting [main] best 333 combination reg byte x [ main::i#2 main::i#1 ]
|
Uplifting [main] best 333 combination reg byte y [ main::i#2 main::i#1 ]
|
||||||
Uplifting [] best 333 combination
|
Uplifting [] best 333 combination
|
||||||
|
|
||||||
ASSEMBLER BEFORE OPTIMIZATION
|
ASSEMBLER BEFORE OPTIMIZATION
|
||||||
@ -240,14 +244,14 @@ main: {
|
|||||||
.label screen = $400
|
.label screen = $400
|
||||||
// [5] phi from main to main::@1 [phi:main->main::@1]
|
// [5] phi from main to main::@1 [phi:main->main::@1]
|
||||||
b1_from_main:
|
b1_from_main:
|
||||||
// [5] phi (byte) main::i#2 = (byte) 0 [phi:main->main::@1#0] -- vbuxx=vbuc1
|
// [5] phi (byte) main::i#2 = (byte) 0 [phi:main->main::@1#0] -- vbuyy=vbuc1
|
||||||
ldx #0
|
ldy #0
|
||||||
jmp b1
|
jmp b1
|
||||||
// main::@1
|
// main::@1
|
||||||
b1:
|
b1:
|
||||||
// [6] if(*((const byte[]) main::msg#0 + (byte) main::i#2)!=(byte) '@') goto main::@2 -- pbuc1_derefidx_vbuxx_neq_vbuc2_then_la1
|
// [6] if((byte) 0!=*((const byte[]) main::msg#0 + (byte) main::i#2)) goto main::@2 -- vbuc1_neq_pbuc2_derefidx_vbuyy_then_la1
|
||||||
lda msg,x
|
lda #0
|
||||||
cmp #'@'
|
cmp msg,y
|
||||||
bne b2
|
bne b2
|
||||||
jmp breturn
|
jmp breturn
|
||||||
// main::@return
|
// main::@return
|
||||||
@ -256,11 +260,11 @@ main: {
|
|||||||
rts
|
rts
|
||||||
// main::@2
|
// main::@2
|
||||||
b2:
|
b2:
|
||||||
// [8] *((const byte*) main::screen#0 + (byte) main::i#2) ← *((const byte[]) main::msg#0 + (byte) main::i#2) -- pbuc1_derefidx_vbuxx=pbuc2_derefidx_vbuxx
|
// [8] *((const byte*) main::screen#0 + (byte) main::i#2) ← *((const byte[]) main::msg#0 + (byte) main::i#2) -- pbuc1_derefidx_vbuyy=pbuc2_derefidx_vbuyy
|
||||||
lda msg,x
|
lda msg,y
|
||||||
sta screen,x
|
sta screen,y
|
||||||
// [9] (byte) main::i#1 ← ++ (byte) main::i#2 -- vbuxx=_inc_vbuxx
|
// [9] (byte) main::i#1 ← ++ (byte) main::i#2 -- vbuyy=_inc_vbuyy
|
||||||
inx
|
iny
|
||||||
// [5] phi from main::@2 to main::@1 [phi:main::@2->main::@1]
|
// [5] phi from main::@2 to main::@1 [phi:main::@2->main::@1]
|
||||||
b1_from_b2:
|
b1_from_b2:
|
||||||
// [5] phi (byte) main::i#2 = (byte) main::i#1 [phi:main::@2->main::@1#0] -- register_copy
|
// [5] phi (byte) main::i#2 = (byte) main::i#1 [phi:main::@2->main::@1#0] -- register_copy
|
||||||
@ -301,14 +305,14 @@ FINAL SYMBOL TABLE
|
|||||||
(label) main::@2
|
(label) main::@2
|
||||||
(label) main::@return
|
(label) main::@return
|
||||||
(byte) main::i
|
(byte) main::i
|
||||||
(byte) main::i#1 reg byte x 22.0
|
(byte) main::i#1 reg byte y 22.0
|
||||||
(byte) main::i#2 reg byte x 18.333333333333332
|
(byte) main::i#2 reg byte y 18.333333333333332
|
||||||
(byte[]) main::msg
|
(byte[]) main::msg
|
||||||
(const byte[]) main::msg#0 msg = (string) "message 2 "
|
(const byte[]) main::msg#0 msg = (string) "message 2 "
|
||||||
(byte*) main::screen
|
(byte*) main::screen
|
||||||
(const byte*) main::screen#0 screen = (byte*) 1024
|
(const byte*) main::screen#0 screen = (byte*) 1024
|
||||||
|
|
||||||
reg byte x [ main::i#2 main::i#1 ]
|
reg byte y [ main::i#2 main::i#1 ]
|
||||||
|
|
||||||
|
|
||||||
FINAL ASSEMBLER
|
FINAL ASSEMBLER
|
||||||
@ -332,14 +336,14 @@ Score: 261
|
|||||||
main: {
|
main: {
|
||||||
.label screen = $400
|
.label screen = $400
|
||||||
// [5] phi from main to main::@1 [phi:main->main::@1]
|
// [5] phi from main to main::@1 [phi:main->main::@1]
|
||||||
// [5] phi (byte) main::i#2 = (byte) 0 [phi:main->main::@1#0] -- vbuxx=vbuc1
|
// [5] phi (byte) main::i#2 = (byte) 0 [phi:main->main::@1#0] -- vbuyy=vbuc1
|
||||||
ldx #0
|
ldy #0
|
||||||
// main::@1
|
// main::@1
|
||||||
b1:
|
b1:
|
||||||
// while(msg[i]!='@')
|
// while(msg[i])
|
||||||
// [6] if(*((const byte[]) main::msg#0 + (byte) main::i#2)!=(byte) '@') goto main::@2 -- pbuc1_derefidx_vbuxx_neq_vbuc2_then_la1
|
// [6] if((byte) 0!=*((const byte[]) main::msg#0 + (byte) main::i#2)) goto main::@2 -- vbuc1_neq_pbuc2_derefidx_vbuyy_then_la1
|
||||||
lda msg,x
|
lda #0
|
||||||
cmp #'@'
|
cmp msg,y
|
||||||
bne b2
|
bne b2
|
||||||
// main::@return
|
// main::@return
|
||||||
// }
|
// }
|
||||||
@ -348,12 +352,12 @@ main: {
|
|||||||
// main::@2
|
// main::@2
|
||||||
b2:
|
b2:
|
||||||
// screen[i++] = msg[i]
|
// screen[i++] = msg[i]
|
||||||
// [8] *((const byte*) main::screen#0 + (byte) main::i#2) ← *((const byte[]) main::msg#0 + (byte) main::i#2) -- pbuc1_derefidx_vbuxx=pbuc2_derefidx_vbuxx
|
// [8] *((const byte*) main::screen#0 + (byte) main::i#2) ← *((const byte[]) main::msg#0 + (byte) main::i#2) -- pbuc1_derefidx_vbuyy=pbuc2_derefidx_vbuyy
|
||||||
lda msg,x
|
lda msg,y
|
||||||
sta screen,x
|
sta screen,y
|
||||||
// screen[i++] = msg[i];
|
// screen[i++] = msg[i];
|
||||||
// [9] (byte) main::i#1 ← ++ (byte) main::i#2 -- vbuxx=_inc_vbuxx
|
// [9] (byte) main::i#1 ← ++ (byte) main::i#2 -- vbuyy=_inc_vbuyy
|
||||||
inx
|
iny
|
||||||
// [5] phi from main::@2 to main::@1 [phi:main::@2->main::@1]
|
// [5] phi from main::@2 to main::@1 [phi:main::@2->main::@1]
|
||||||
// [5] phi (byte) main::i#2 = (byte) main::i#1 [phi:main::@2->main::@1#0] -- register_copy
|
// [5] phi (byte) main::i#2 = (byte) main::i#1 [phi:main::@2->main::@1#0] -- register_copy
|
||||||
jmp b1
|
jmp b1
|
||||||
|
@ -6,11 +6,11 @@
|
|||||||
(label) main::@2
|
(label) main::@2
|
||||||
(label) main::@return
|
(label) main::@return
|
||||||
(byte) main::i
|
(byte) main::i
|
||||||
(byte) main::i#1 reg byte x 22.0
|
(byte) main::i#1 reg byte y 22.0
|
||||||
(byte) main::i#2 reg byte x 18.333333333333332
|
(byte) main::i#2 reg byte y 18.333333333333332
|
||||||
(byte[]) main::msg
|
(byte[]) main::msg
|
||||||
(const byte[]) main::msg#0 msg = (string) "message 2 "
|
(const byte[]) main::msg#0 msg = (string) "message 2 "
|
||||||
(byte*) main::screen
|
(byte*) main::screen
|
||||||
(const byte*) main::screen#0 screen = (byte*) 1024
|
(const byte*) main::screen#0 screen = (byte*) 1024
|
||||||
|
|
||||||
reg byte x [ main::i#2 main::i#1 ]
|
reg byte y [ main::i#2 main::i#1 ]
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
// Illustrates both break & continue statements in a loop
|
// Illustrates both break & continue statements in a loop
|
||||||
// Prints a message ending at '@' skipping all spaces
|
// Prints a message ending at NUL skipping all spaces
|
||||||
.pc = $801 "Basic"
|
.pc = $801 "Basic"
|
||||||
:BasicUpstart(main)
|
:BasicUpstart(main)
|
||||||
.pc = $80d "Program"
|
.pc = $80d "Program"
|
||||||
@ -12,7 +12,7 @@ main: {
|
|||||||
ldx #0
|
ldx #0
|
||||||
b1:
|
b1:
|
||||||
lda str,x
|
lda str,x
|
||||||
cmp #'@'
|
cmp #0
|
||||||
bne b2
|
bne b2
|
||||||
breturn:
|
breturn:
|
||||||
rts
|
rts
|
||||||
|
@ -13,7 +13,7 @@ main: scope:[main] from @1
|
|||||||
main::@1: scope:[main] from main main::@4
|
main::@1: scope:[main] from main main::@4
|
||||||
[5] (byte*) main::screen#2 ← phi( main/(byte*) 1024 main::@4/(byte*) main::screen#5 )
|
[5] (byte*) main::screen#2 ← phi( main/(byte*) 1024 main::@4/(byte*) main::screen#5 )
|
||||||
[5] (byte) main::i#2 ← phi( main/(byte) 0 main::@4/(byte) main::i#1 )
|
[5] (byte) main::i#2 ← phi( main/(byte) 0 main::@4/(byte) main::i#1 )
|
||||||
[6] if(*((const byte[]) main::str#0 + (byte) main::i#2)!=(byte) '@') goto main::@2
|
[6] if(*((const byte[]) main::str#0 + (byte) main::i#2)!=(byte) 0) goto main::@2
|
||||||
to:main::@return
|
to:main::@return
|
||||||
main::@return: scope:[main] from main::@1 main::@4
|
main::@return: scope:[main] from main::@1 main::@4
|
||||||
[7] return
|
[7] return
|
||||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user