mirror of
https://gitlab.com/camelot/kickc.git
synced 2024-09-08 17:54:40 +00:00
Syntax changes
This commit is contained in:
parent
651de919b3
commit
97bc9870f9
@ -38,14 +38,6 @@ byte divr8u(byte dividend, byte divisor, byte rem) {
|
||||
// Remainder after unsigned 16-bit division
|
||||
word rem16u = 0;
|
||||
|
||||
// Performs division on two 16 bit unsigned words
|
||||
// Returns the quotient dividend/divisor.
|
||||
// The remainder will be set into the global variable rem16u
|
||||
// Implemented using simple binary division
|
||||
word div16u(word dividend, word divisor) {
|
||||
return divr16u(dividend, divisor, 0);
|
||||
}
|
||||
|
||||
// Performs division on two 16 bit unsigned words and an initial remainder
|
||||
// Returns the quotient dividend/divisor.
|
||||
// The final remainder will be set into the global variable rem16u
|
||||
@ -68,6 +60,14 @@ word divr16u(word dividend, word divisor, word rem) {
|
||||
return quotient;
|
||||
}
|
||||
|
||||
// Performs division on two 16 bit unsigned words
|
||||
// Returns the quotient dividend/divisor.
|
||||
// The remainder will be set into the global variable rem16u
|
||||
// Implemented using simple binary division
|
||||
word div16u(word dividend, word divisor) {
|
||||
return divr16u(dividend, divisor, 0);
|
||||
}
|
||||
|
||||
// Divide unsigned 32-bit dword dividend with a 16-bit word divisor
|
||||
// The 16-bit word remainder can be found in rem16u after the division
|
||||
dword div32u16u(dword dividend, word divisor) {
|
||||
|
@ -74,7 +74,7 @@ signed word sin16s(dword x) {
|
||||
word x4 = mul_u16_sel(x3, x1, 0); // u[3.13] x^4
|
||||
word x5 = mul_u16_sel(x4, x1, 0); // u[4.12] x^5
|
||||
word x5_128 = x5>>4; // // u[1.15] x^5/128 -- much more efficient than mul_u16_sel(x5, $10000/128, 3);
|
||||
usinx = usinx + x5_128; // u[1.15] (always an initial zero)
|
||||
usinx = usinx + x5_128; // u[1.15] (first bit is always zero)
|
||||
signed word sinx = (signed word)usinx; // s[0.15]
|
||||
if(isUpper!=0) {
|
||||
sinx = -(signed word)usinx; // s[0.15];
|
||||
|
@ -1,13 +1,13 @@
|
||||
@begin: scope:[] from
|
||||
[0] phi() [ ] ( )
|
||||
to:@18
|
||||
@18: scope:[] from @begin
|
||||
to:@19
|
||||
@19: scope:[] from @begin
|
||||
[1] phi() [ ] ( )
|
||||
[2] call main param-assignment [ ] ( )
|
||||
to:@end
|
||||
@end: scope:[] from @18
|
||||
@end: scope:[] from @19
|
||||
[3] phi() [ ] ( )
|
||||
main: scope:[main] from @18
|
||||
main: scope:[main] from @19
|
||||
[4] phi() [ ] ( main:2 [ ] )
|
||||
[5] call lin16u_gen param-assignment [ divr16u::rem#11 ] ( main:2 [ divr16u::rem#11 ] )
|
||||
to:main::@3
|
||||
|
@ -96,14 +96,6 @@ byte divr8u(byte dividend, byte divisor, byte rem) {
|
||||
// Remainder after unsigned 16-bit division
|
||||
word rem16u = 0;
|
||||
|
||||
// Performs division on two 16 bit unsigned words
|
||||
// Returns the quotient dividend/divisor.
|
||||
// The remainder will be set into the global variable rem16u
|
||||
// Implemented using simple binary division
|
||||
word div16u(word dividend, word divisor) {
|
||||
return divr16u(dividend, divisor, 0);
|
||||
}
|
||||
|
||||
// Performs division on two 16 bit unsigned words and an initial remainder
|
||||
// Returns the quotient dividend/divisor.
|
||||
// The final remainder will be set into the global variable rem16u
|
||||
@ -126,6 +118,23 @@ word divr16u(word dividend, word divisor, word rem) {
|
||||
return quotient;
|
||||
}
|
||||
|
||||
// Performs division on two 16 bit unsigned words
|
||||
// Returns the quotient dividend/divisor.
|
||||
// The remainder will be set into the global variable rem16u
|
||||
// Implemented using simple binary division
|
||||
word div16u(word dividend, word divisor) {
|
||||
return divr16u(dividend, divisor, 0);
|
||||
}
|
||||
|
||||
// Divide unsigned 32-bit dword dividend with a 16-bit word divisor
|
||||
// The 16-bit word remainder can be found in rem16u after the division
|
||||
dword div32u16u(dword dividend, word divisor) {
|
||||
word quotient_hi = divr16u(>dividend, divisor, 0);
|
||||
word quotient_lo = divr16u(<dividend, divisor, rem16u);
|
||||
dword quotient = { quotient_hi, quotient_lo};
|
||||
return quotient;
|
||||
}
|
||||
|
||||
// Remainder after signed 8 bit division
|
||||
signed byte rem8s = 0;
|
||||
|
||||
@ -335,14 +344,6 @@ divr8u::@return:
|
||||
return (byte) divr8u::return
|
||||
endproc // divr8u()
|
||||
(word) rem16u ← (byte/signed byte/word/signed word/dword/signed dword) 0
|
||||
proc (word()) div16u((word) div16u::dividend , (word) div16u::divisor)
|
||||
(word~) div16u::$0 ← call divr16u (word) div16u::dividend (word) div16u::divisor (byte/signed byte/word/signed word/dword/signed dword) 0
|
||||
(word) div16u::return ← (word~) div16u::$0
|
||||
goto div16u::@return
|
||||
div16u::@return:
|
||||
(word) div16u::return ← (word) div16u::return
|
||||
return (word) div16u::return
|
||||
endproc // div16u()
|
||||
proc (word()) divr16u((word) divr16u::dividend , (word) divr16u::divisor , (word) divr16u::rem)
|
||||
(word) divr16u::quotient ← (byte/signed byte/word/signed word/dword/signed dword) 0
|
||||
(byte) divr16u::i ← (byte/signed byte/word/signed word/dword/signed dword) 0
|
||||
@ -378,6 +379,28 @@ divr16u::@return:
|
||||
(word) divr16u::return ← (word) divr16u::return
|
||||
return (word) divr16u::return
|
||||
endproc // divr16u()
|
||||
proc (word()) div16u((word) div16u::dividend , (word) div16u::divisor)
|
||||
(word~) div16u::$0 ← call divr16u (word) div16u::dividend (word) div16u::divisor (byte/signed byte/word/signed word/dword/signed dword) 0
|
||||
(word) div16u::return ← (word~) div16u::$0
|
||||
goto div16u::@return
|
||||
div16u::@return:
|
||||
(word) div16u::return ← (word) div16u::return
|
||||
return (word) div16u::return
|
||||
endproc // div16u()
|
||||
proc (dword()) div32u16u((dword) div32u16u::dividend , (word) div32u16u::divisor)
|
||||
(word~) div32u16u::$0 ← > (dword) div32u16u::dividend
|
||||
(word~) div32u16u::$1 ← call divr16u (word~) div32u16u::$0 (word) div32u16u::divisor (byte/signed byte/word/signed word/dword/signed dword) 0
|
||||
(word) div32u16u::quotient_hi ← (word~) div32u16u::$1
|
||||
(word~) div32u16u::$2 ← < (dword) div32u16u::dividend
|
||||
(word~) div32u16u::$3 ← call divr16u (word~) div32u16u::$2 (word) div32u16u::divisor (word) rem16u
|
||||
(word) div32u16u::quotient_lo ← (word~) div32u16u::$3
|
||||
(dword) div32u16u::quotient ← { (word) div32u16u::quotient_hi, (word) div32u16u::quotient_lo }
|
||||
(dword) div32u16u::return ← (dword) div32u16u::quotient
|
||||
goto div32u16u::@return
|
||||
div32u16u::@return:
|
||||
(dword) div32u16u::return ← (dword) div32u16u::return
|
||||
return (dword) div32u16u::return
|
||||
endproc // div32u16u()
|
||||
(signed byte) rem8s ← (byte/signed byte/word/signed word/dword/signed dword) 0
|
||||
proc (signed byte()) div8s((signed byte) div8s::dividend , (signed byte) div8s::divisor)
|
||||
(byte) div8s::neg ← (byte/signed byte/word/signed word/dword/signed dword) 0
|
||||
@ -707,6 +730,18 @@ SYMBOLS
|
||||
(word) div16u::dividend
|
||||
(word) div16u::divisor
|
||||
(word) div16u::return
|
||||
(dword()) div32u16u((dword) div32u16u::dividend , (word) div32u16u::divisor)
|
||||
(word~) div32u16u::$0
|
||||
(word~) div32u16u::$1
|
||||
(word~) div32u16u::$2
|
||||
(word~) div32u16u::$3
|
||||
(label) div32u16u::@return
|
||||
(dword) div32u16u::dividend
|
||||
(word) div32u16u::divisor
|
||||
(dword) div32u16u::quotient
|
||||
(word) div32u16u::quotient_hi
|
||||
(word) div32u16u::quotient_lo
|
||||
(dword) div32u16u::return
|
||||
(signed byte()) div8s((signed byte) div8s::dividend , (signed byte) div8s::divisor)
|
||||
(boolean~) div8s::$0
|
||||
(boolean~) div8s::$1
|
||||
@ -995,18 +1030,6 @@ divr8u::@7: scope:[divr8u] from
|
||||
@2: scope:[] from @1
|
||||
(word) rem16u ← (byte/signed byte/word/signed word/dword/signed dword) 0
|
||||
to:@3
|
||||
div16u: scope:[div16u] from
|
||||
(word~) div16u::$0 ← call divr16u (word) div16u::dividend (word) div16u::divisor (byte/signed byte/word/signed word/dword/signed dword) 0
|
||||
(word) div16u::return ← (word~) div16u::$0
|
||||
to:div16u::@return
|
||||
div16u::@return: scope:[div16u] from div16u div16u::@1
|
||||
(word) div16u::return ← (word) div16u::return
|
||||
return (word) div16u::return
|
||||
to:@return
|
||||
div16u::@1: scope:[div16u] from
|
||||
to:div16u::@return
|
||||
@3: scope:[] from @2
|
||||
to:@4
|
||||
divr16u: scope:[divr16u] from
|
||||
(word) divr16u::quotient ← (byte/signed byte/word/signed word/dword/signed dword) 0
|
||||
(byte) divr16u::i ← (byte/signed byte/word/signed word/dword/signed dword) 0
|
||||
@ -1053,9 +1076,39 @@ divr16u::@return: scope:[divr16u] from divr16u::@6 divr16u::@7
|
||||
to:@return
|
||||
divr16u::@7: scope:[divr16u] from
|
||||
to:divr16u::@return
|
||||
@3: scope:[] from @2
|
||||
to:@4
|
||||
div16u: scope:[div16u] from
|
||||
(word~) div16u::$0 ← call divr16u (word) div16u::dividend (word) div16u::divisor (byte/signed byte/word/signed word/dword/signed dword) 0
|
||||
(word) div16u::return ← (word~) div16u::$0
|
||||
to:div16u::@return
|
||||
div16u::@return: scope:[div16u] from div16u div16u::@1
|
||||
(word) div16u::return ← (word) div16u::return
|
||||
return (word) div16u::return
|
||||
to:@return
|
||||
div16u::@1: scope:[div16u] from
|
||||
to:div16u::@return
|
||||
@4: scope:[] from @3
|
||||
(signed byte) rem8s ← (byte/signed byte/word/signed word/dword/signed dword) 0
|
||||
to:@5
|
||||
div32u16u: scope:[div32u16u] from
|
||||
(word~) div32u16u::$0 ← > (dword) div32u16u::dividend
|
||||
(word~) div32u16u::$1 ← call divr16u (word~) div32u16u::$0 (word) div32u16u::divisor (byte/signed byte/word/signed word/dword/signed dword) 0
|
||||
(word) div32u16u::quotient_hi ← (word~) div32u16u::$1
|
||||
(word~) div32u16u::$2 ← < (dword) div32u16u::dividend
|
||||
(word~) div32u16u::$3 ← call divr16u (word~) div32u16u::$2 (word) div32u16u::divisor (word) rem16u
|
||||
(word) div32u16u::quotient_lo ← (word~) div32u16u::$3
|
||||
(dword) div32u16u::quotient ← { (word) div32u16u::quotient_hi, (word) div32u16u::quotient_lo }
|
||||
(dword) div32u16u::return ← (dword) div32u16u::quotient
|
||||
to:div32u16u::@return
|
||||
div32u16u::@return: scope:[div32u16u] from div32u16u div32u16u::@1
|
||||
(dword) div32u16u::return ← (dword) div32u16u::return
|
||||
return (dword) div32u16u::return
|
||||
to:@return
|
||||
div32u16u::@1: scope:[div32u16u] from
|
||||
to:div32u16u::@return
|
||||
@5: scope:[] from @4
|
||||
(signed byte) rem8s ← (byte/signed byte/word/signed word/dword/signed dword) 0
|
||||
to:@6
|
||||
div8s: scope:[div8s] from
|
||||
(byte) div8s::neg ← (byte/signed byte/word/signed word/dword/signed dword) 0
|
||||
(byte) div8s::dividendu ← (byte/signed byte/word/signed word/dword/signed dword) 0
|
||||
@ -1127,9 +1180,9 @@ div8s::@13: scope:[div8s] from
|
||||
to:div8s::@5
|
||||
div8s::@14: scope:[div8s] from
|
||||
to:div8s::@6
|
||||
@5: scope:[] from @4
|
||||
@6: scope:[] from @5
|
||||
(signed word) rem16s ← (byte/signed byte/word/signed word/dword/signed dword) 0
|
||||
to:@6
|
||||
to:@7
|
||||
div16s: scope:[div16s] from
|
||||
(byte) div16s::neg ← (byte/signed byte/word/signed word/dword/signed dword) 0
|
||||
(word) div16s::dividendu ← (byte/signed byte/word/signed word/dword/signed dword) 0
|
||||
@ -1201,11 +1254,11 @@ div16s::@13: scope:[div16s] from
|
||||
to:div16s::@5
|
||||
div16s::@14: scope:[div16s] from
|
||||
to:div16s::@6
|
||||
@6: scope:[] from @5
|
||||
@7: scope:[] from @6
|
||||
(byte*) SCREEN ← ((byte*)) (word/signed word/dword/signed dword) 1024
|
||||
(byte*) line_cursor ← (byte*) SCREEN
|
||||
(byte*) char_cursor ← (byte*) line_cursor
|
||||
to:@7
|
||||
to:@8
|
||||
print_str: scope:[print_str] from
|
||||
to:print_str::@1
|
||||
print_str::@1: scope:[print_str] from print_str print_str::@2
|
||||
@ -1228,8 +1281,8 @@ print_str::@6: scope:[print_str] from
|
||||
print_str::@return: scope:[print_str] from print_str::@3
|
||||
return
|
||||
to:@return
|
||||
@7: scope:[] from @6
|
||||
to:@8
|
||||
@8: scope:[] from @7
|
||||
to:@9
|
||||
print_ln: scope:[print_ln] from
|
||||
to:print_ln::@1
|
||||
print_ln::@1: scope:[print_ln] from print_ln print_ln::@1
|
||||
@ -1244,8 +1297,8 @@ print_ln::@2: scope:[print_ln] from print_ln::@1
|
||||
print_ln::@return: scope:[print_ln] from print_ln::@2
|
||||
return
|
||||
to:@return
|
||||
@8: scope:[] from @7
|
||||
to:@9
|
||||
@9: scope:[] from @8
|
||||
to:@10
|
||||
print_sword: scope:[print_sword] from
|
||||
(boolean~) print_sword::$0 ← (signed word) print_sword::w < (byte/signed byte/word/signed word/dword/signed dword) 0
|
||||
(boolean~) print_sword::$1 ← ! (boolean~) print_sword::$0
|
||||
@ -1263,8 +1316,8 @@ print_sword::@2: scope:[print_sword] from print_sword
|
||||
print_sword::@return: scope:[print_sword] from print_sword::@1
|
||||
return
|
||||
to:@return
|
||||
@9: scope:[] from @8
|
||||
to:@10
|
||||
@10: scope:[] from @9
|
||||
to:@11
|
||||
print_sbyte: scope:[print_sbyte] from
|
||||
(boolean~) print_sbyte::$0 ← (signed byte) print_sbyte::b < (byte/signed byte/word/signed word/dword/signed dword) 0
|
||||
(boolean~) print_sbyte::$1 ← ! (boolean~) print_sbyte::$0
|
||||
@ -1282,8 +1335,8 @@ print_sbyte::@2: scope:[print_sbyte] from print_sbyte
|
||||
print_sbyte::@return: scope:[print_sbyte] from print_sbyte::@1
|
||||
return
|
||||
to:@return
|
||||
@10: scope:[] from @9
|
||||
to:@11
|
||||
@11: scope:[] from @10
|
||||
to:@12
|
||||
print_word: scope:[print_word] from
|
||||
(byte~) print_word::$0 ← > (word) print_word::w
|
||||
(void~) print_word::$1 ← call print_byte (byte~) print_word::$0
|
||||
@ -1293,8 +1346,8 @@ print_word: scope:[print_word] from
|
||||
print_word::@return: scope:[print_word] from print_word
|
||||
return
|
||||
to:@return
|
||||
@11: scope:[] from @10
|
||||
to:@12
|
||||
@12: scope:[] from @11
|
||||
to:@13
|
||||
print_dword: scope:[print_dword] from
|
||||
(word~) print_dword::$0 ← > (dword) print_dword::dw
|
||||
(void~) print_dword::$1 ← call print_word (word~) print_dword::$0
|
||||
@ -1304,8 +1357,8 @@ print_dword: scope:[print_dword] from
|
||||
print_dword::@return: scope:[print_dword] from print_dword
|
||||
return
|
||||
to:@return
|
||||
@12: scope:[] from @11
|
||||
to:@13
|
||||
@13: scope:[] from @12
|
||||
to:@14
|
||||
print_sdword: scope:[print_sdword] from
|
||||
(boolean~) print_sdword::$0 ← (signed dword) print_sdword::dw < (byte/signed byte/word/signed word/dword/signed dword) 0
|
||||
(boolean~) print_sdword::$1 ← ! (boolean~) print_sdword::$0
|
||||
@ -1323,8 +1376,8 @@ print_sdword::@2: scope:[print_sdword] from print_sdword
|
||||
print_sdword::@return: scope:[print_sdword] from print_sdword::@1
|
||||
return
|
||||
to:@return
|
||||
@13: scope:[] from @12
|
||||
to:@14
|
||||
@14: scope:[] from @13
|
||||
to:@15
|
||||
print_byte: scope:[print_byte] from
|
||||
(byte[]) print_byte::hextab ← (string) "0123456789abcdef"
|
||||
(byte~) print_byte::$0 ← (byte) print_byte::b >> (byte/signed byte/word/signed word/dword/signed dword) 4
|
||||
@ -1335,8 +1388,8 @@ print_byte: scope:[print_byte] from
|
||||
print_byte::@return: scope:[print_byte] from print_byte
|
||||
return
|
||||
to:@return
|
||||
@14: scope:[] from @13
|
||||
to:@15
|
||||
@15: scope:[] from @14
|
||||
to:@16
|
||||
print_char: scope:[print_char] from
|
||||
*((byte*) char_cursor) ← (byte) print_char::ch
|
||||
(byte*) char_cursor ← ++ (byte*) char_cursor
|
||||
@ -1344,8 +1397,8 @@ print_char: scope:[print_char] from
|
||||
print_char::@return: scope:[print_char] from print_char
|
||||
return
|
||||
to:@return
|
||||
@15: scope:[] from @14
|
||||
to:@16
|
||||
@16: scope:[] from @15
|
||||
to:@17
|
||||
print_cls: scope:[print_cls] from
|
||||
(byte*) print_cls::sc ← (byte*) SCREEN
|
||||
to:print_cls::@1
|
||||
@ -1363,8 +1416,8 @@ print_cls::@2: scope:[print_cls] from print_cls::@1
|
||||
print_cls::@return: scope:[print_cls] from print_cls::@2
|
||||
return
|
||||
to:@return
|
||||
@16: scope:[] from @15
|
||||
to:@17
|
||||
@17: scope:[] from @16
|
||||
to:@18
|
||||
main: scope:[main] from
|
||||
(word[20]) main::lintab1 ← { fill( 20, 0) }
|
||||
(void~) main::$0 ← call lin16u_gen (word/signed word/dword/signed dword) 557 (word/signed word/dword/signed dword) 29793 (word[20]) main::lintab1 (byte/signed byte/word/signed word/dword/signed dword) 20
|
||||
@ -1409,8 +1462,8 @@ main::@2: scope:[main] from main::@1
|
||||
main::@return: scope:[main] from main::@2
|
||||
return
|
||||
to:@return
|
||||
@17: scope:[] from @16
|
||||
to:@18
|
||||
@18: scope:[] from @17
|
||||
to:@19
|
||||
lin16u_gen: scope:[lin16u_gen] from
|
||||
(word~) lin16u_gen::$0 ← (word) lin16u_gen::max - (word) lin16u_gen::min
|
||||
(word) lin16u_gen::ampl ← (word~) lin16u_gen::$0
|
||||
@ -1440,11 +1493,12 @@ lin16u_gen::@2: scope:[lin16u_gen] from lin16u_gen::@1
|
||||
lin16u_gen::@return: scope:[lin16u_gen] from lin16u_gen::@2
|
||||
return
|
||||
to:@return
|
||||
@18: scope:[] from @17
|
||||
@19: scope:[] from @18
|
||||
call main
|
||||
to:@end
|
||||
@end: scope:[] from @18
|
||||
@end: scope:[] from @19
|
||||
|
||||
Removing unused procedure div32u16u
|
||||
Removing unused procedure div8s
|
||||
Removing unused procedure div16s
|
||||
Removing unused procedure print_sword
|
||||
@ -1498,15 +1552,15 @@ Creating constant string variable for inline (const string) main::str6 " @"
|
||||
Creating constant string variable for inline (const string) main::str7 " @"
|
||||
Creating constant string variable for inline (const string) main::str8 " @"
|
||||
Removing empty block @1
|
||||
Removing empty block @3
|
||||
Removing empty block divr16u::@7
|
||||
Removing empty block @3
|
||||
Removing empty block @4
|
||||
Removing empty block @5
|
||||
Removing empty block @6
|
||||
Removing empty block print_str::@4
|
||||
Removing empty block print_str::@3
|
||||
Removing empty block print_str::@5
|
||||
Removing empty block print_str::@6
|
||||
Removing empty block @7
|
||||
Removing empty block @8
|
||||
Removing empty block @9
|
||||
Removing empty block @10
|
||||
@ -1517,6 +1571,7 @@ Removing empty block @14
|
||||
Removing empty block @15
|
||||
Removing empty block @16
|
||||
Removing empty block @17
|
||||
Removing empty block @18
|
||||
Removing empty block lin16u_gen::@2
|
||||
PROCEDURE MODIFY VARIABLE ANALYSIS
|
||||
divr16u modifies rem16u
|
||||
@ -1565,7 +1620,7 @@ CONTROL FLOW GRAPH SSA WITH ASSIGNMENT CALL & RETURN
|
||||
to:@2
|
||||
@2: scope:[] from @begin
|
||||
(word) rem16u#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0
|
||||
to:@6
|
||||
to:@7
|
||||
divr16u: scope:[divr16u] from lin16u_gen lin16u_gen::@3
|
||||
(word) divr16u::divisor#6 ← phi( lin16u_gen/(word) divr16u::divisor#0 lin16u_gen::@3/(word) divr16u::divisor#1 )
|
||||
(word) divr16u::dividend#5 ← phi( lin16u_gen/(word) divr16u::dividend#1 lin16u_gen::@3/(word) divr16u::dividend#2 )
|
||||
@ -1643,12 +1698,12 @@ divr16u::@return: scope:[divr16u] from divr16u::@6
|
||||
(word) rem16u#2 ← (word) rem16u#11
|
||||
return
|
||||
to:@return
|
||||
@6: scope:[] from @2
|
||||
@7: scope:[] from @2
|
||||
(word) rem16u#26 ← phi( @2/(word) rem16u#0 )
|
||||
(byte*) SCREEN#0 ← ((byte*)) (word/signed word/dword/signed dword) 1024
|
||||
(byte*) line_cursor#0 ← (byte*) SCREEN#0
|
||||
(byte*) char_cursor#0 ← (byte*) line_cursor#0
|
||||
to:@18
|
||||
to:@19
|
||||
print_str: scope:[print_str] from main::@10 main::@14 main::@16 main::@18 main::@2 main::@23 main::@25 main::@6 main::@8
|
||||
(byte*) char_cursor#86 ← phi( main::@10/(byte*) char_cursor#19 main::@14/(byte*) char_cursor#23 main::@16/(byte*) char_cursor#25 main::@18/(byte*) char_cursor#27 main::@2/(byte*) char_cursor#84 main::@23/(byte*) char_cursor#32 main::@25/(byte*) char_cursor#34 main::@6/(byte*) char_cursor#15 main::@8/(byte*) char_cursor#17 )
|
||||
(byte*) print_str::str#12 ← phi( main::@10/(byte*) print_str::str#3 main::@14/(byte*) print_str::str#4 main::@16/(byte*) print_str::str#5 main::@18/(byte*) print_str::str#6 main::@2/(byte*) print_str::str#7 main::@23/(byte*) print_str::str#8 main::@25/(byte*) print_str::str#9 main::@6/(byte*) print_str::str#1 main::@8/(byte*) print_str::str#2 )
|
||||
@ -1776,10 +1831,10 @@ print_cls::@return: scope:[print_cls] from print_cls::@2
|
||||
(byte*) char_cursor#14 ← (byte*) char_cursor#52
|
||||
return
|
||||
to:@return
|
||||
main: scope:[main] from @18
|
||||
(byte*) char_cursor#89 ← phi( @18/(byte*) char_cursor#85 )
|
||||
(byte*) line_cursor#35 ← phi( @18/(byte*) line_cursor#26 )
|
||||
(word) rem16u#20 ← phi( @18/(word) rem16u#24 )
|
||||
main: scope:[main] from @19
|
||||
(byte*) char_cursor#89 ← phi( @19/(byte*) char_cursor#85 )
|
||||
(byte*) line_cursor#35 ← phi( @19/(byte*) line_cursor#26 )
|
||||
(word) rem16u#20 ← phi( @19/(word) rem16u#24 )
|
||||
(word[20]) main::lintab1#0 ← { fill( 20, 0) }
|
||||
(word) lin16u_gen::min#0 ← (word/signed word/dword/signed dword) 557
|
||||
(word) lin16u_gen::max#0 ← (word/signed word/dword/signed dword) 29793
|
||||
@ -2102,27 +2157,27 @@ lin16u_gen::@return: scope:[lin16u_gen] from lin16u_gen::@1
|
||||
(word) rem16u#9 ← (word) rem16u#18
|
||||
return
|
||||
to:@return
|
||||
@18: scope:[] from @6
|
||||
(byte*) char_cursor#85 ← phi( @6/(byte*) char_cursor#0 )
|
||||
(byte*) line_cursor#26 ← phi( @6/(byte*) line_cursor#0 )
|
||||
(word) rem16u#24 ← phi( @6/(word) rem16u#26 )
|
||||
@19: scope:[] from @7
|
||||
(byte*) char_cursor#85 ← phi( @7/(byte*) char_cursor#0 )
|
||||
(byte*) line_cursor#26 ← phi( @7/(byte*) line_cursor#0 )
|
||||
(word) rem16u#24 ← phi( @7/(word) rem16u#26 )
|
||||
call main param-assignment
|
||||
to:@19
|
||||
@19: scope:[] from @18
|
||||
(byte*) char_cursor#77 ← phi( @18/(byte*) char_cursor#38 )
|
||||
(byte*) line_cursor#20 ← phi( @18/(byte*) line_cursor#9 )
|
||||
(word) rem16u#19 ← phi( @18/(word) rem16u#6 )
|
||||
to:@20
|
||||
@20: scope:[] from @19
|
||||
(byte*) char_cursor#77 ← phi( @19/(byte*) char_cursor#38 )
|
||||
(byte*) line_cursor#20 ← phi( @19/(byte*) line_cursor#9 )
|
||||
(word) rem16u#19 ← phi( @19/(word) rem16u#6 )
|
||||
(word) rem16u#10 ← (word) rem16u#19
|
||||
(byte*) line_cursor#10 ← (byte*) line_cursor#20
|
||||
(byte*) char_cursor#39 ← (byte*) char_cursor#77
|
||||
to:@end
|
||||
@end: scope:[] from @19
|
||||
@end: scope:[] from @20
|
||||
|
||||
SYMBOL TABLE SSA
|
||||
(label) @18
|
||||
(label) @19
|
||||
(label) @2
|
||||
(label) @6
|
||||
(label) @20
|
||||
(label) @7
|
||||
(label) @begin
|
||||
(label) @end
|
||||
(byte*) SCREEN
|
||||
@ -3038,14 +3093,14 @@ Fixing inline constructor with lin16u_gen::$9 ← lin16u_gen::stepi#0 dw= lin16u
|
||||
Fixing inline constructor with lin16u_gen::$10 ← lin16u_gen::min#3 dw= 0
|
||||
Succesful SSA optimization Pass2FixInlineConstructors
|
||||
Culled Empty Block (label) @2
|
||||
Culled Empty Block (label) @6
|
||||
Culled Empty Block (label) @7
|
||||
Culled Empty Block (label) print_ln::@2
|
||||
Culled Empty Block (label) print_word::@2
|
||||
Culled Empty Block (label) print_byte::@2
|
||||
Culled Empty Block (label) print_cls::@2
|
||||
Culled Empty Block (label) main::@13
|
||||
Culled Empty Block (label) main::@28
|
||||
Culled Empty Block (label) @19
|
||||
Culled Empty Block (label) @20
|
||||
Succesful SSA optimization Pass2CullEmptyBlocks
|
||||
Not aliassing across scopes: divr16u::dividend#5 divr16u::dividend#1
|
||||
Not aliassing across scopes: divr16u::divisor#6 divr16u::divisor#0
|
||||
@ -3283,7 +3338,7 @@ Constant inlined print_str::str#6 = (const string) main::str5
|
||||
Constant inlined lin16u_gen::lintab#0 = (const word[20]) main::lintab1#0
|
||||
Constant inlined print_str::str#5 = (const string) main::str4
|
||||
Succesful SSA optimization Pass2ConstantInlining
|
||||
Block Sequence Planned @begin @18 @end main main::@3 main::@4 main::@5 main::@6 main::@7 main::@8 main::@9 main::@10 main::@11 main::@12 main::@1 main::@14 main::@15 main::@16 main::@17 main::@18 main::@19 main::@20 main::@21 main::@2 main::@22 main::@23 main::@24 main::@25 main::@26 main::@27 main::@return print_ln print_ln::@1 print_ln::@return print_word print_word::@1 print_word::@return print_byte print_byte::@1 print_byte::@return print_char print_char::@return print_str print_str::@1 print_str::@return print_str::@2 print_cls print_cls::@1 print_cls::@return lin16u_gen lin16u_gen::@3 lin16u_gen::@4 lin16u_gen::@1 lin16u_gen::@return divr16u divr16u::@1 divr16u::@4 divr16u::@2 divr16u::@5 divr16u::@3 divr16u::@6 divr16u::@return
|
||||
Block Sequence Planned @begin @19 @end main main::@3 main::@4 main::@5 main::@6 main::@7 main::@8 main::@9 main::@10 main::@11 main::@12 main::@1 main::@14 main::@15 main::@16 main::@17 main::@18 main::@19 main::@20 main::@21 main::@2 main::@22 main::@23 main::@24 main::@25 main::@26 main::@27 main::@return print_ln print_ln::@1 print_ln::@return print_word print_word::@1 print_word::@return print_byte print_byte::@1 print_byte::@return print_char print_char::@return print_str print_str::@1 print_str::@return print_str::@2 print_cls print_cls::@1 print_cls::@return lin16u_gen lin16u_gen::@3 lin16u_gen::@4 lin16u_gen::@1 lin16u_gen::@return divr16u divr16u::@1 divr16u::@4 divr16u::@2 divr16u::@5 divr16u::@3 divr16u::@6 divr16u::@return
|
||||
Added new block during phi lifting main::@29(between main::@21 and main::@1)
|
||||
Added new block during phi lifting print_ln::@3(between print_ln::@1 and print_ln::@1)
|
||||
Added new block during phi lifting print_cls::@3(between print_cls::@1 and print_cls::@1)
|
||||
@ -3291,9 +3346,9 @@ Added new block during phi lifting lin16u_gen::@5(between lin16u_gen::@1 and lin
|
||||
Added new block during phi lifting divr16u::@8(between divr16u::@3 and divr16u::@1)
|
||||
Added new block during phi lifting divr16u::@9(between divr16u::@1 and divr16u::@2)
|
||||
Added new block during phi lifting divr16u::@10(between divr16u::@2 and divr16u::@3)
|
||||
Block Sequence Planned @begin @18 @end main main::@3 main::@4 main::@5 main::@6 main::@7 main::@8 main::@9 main::@10 main::@11 main::@12 main::@1 main::@14 main::@15 main::@16 main::@17 main::@18 main::@19 main::@20 main::@21 main::@2 main::@22 main::@23 main::@24 main::@25 main::@26 main::@27 main::@return main::@29 print_ln print_ln::@1 print_ln::@return print_ln::@3 print_word print_word::@1 print_word::@return print_byte print_byte::@1 print_byte::@return print_char print_char::@return print_str print_str::@1 print_str::@return print_str::@2 print_cls print_cls::@1 print_cls::@return print_cls::@3 lin16u_gen lin16u_gen::@3 lin16u_gen::@4 lin16u_gen::@1 lin16u_gen::@return lin16u_gen::@5 divr16u divr16u::@1 divr16u::@4 divr16u::@2 divr16u::@5 divr16u::@3 divr16u::@6 divr16u::@return divr16u::@8 divr16u::@10 divr16u::@9
|
||||
Block Sequence Planned @begin @19 @end main main::@3 main::@4 main::@5 main::@6 main::@7 main::@8 main::@9 main::@10 main::@11 main::@12 main::@1 main::@14 main::@15 main::@16 main::@17 main::@18 main::@19 main::@20 main::@21 main::@2 main::@22 main::@23 main::@24 main::@25 main::@26 main::@27 main::@return main::@29 print_ln print_ln::@1 print_ln::@return print_ln::@3 print_word print_word::@1 print_word::@return print_byte print_byte::@1 print_byte::@return print_char print_char::@return print_str print_str::@1 print_str::@return print_str::@2 print_cls print_cls::@1 print_cls::@return print_cls::@3 lin16u_gen lin16u_gen::@3 lin16u_gen::@4 lin16u_gen::@1 lin16u_gen::@return lin16u_gen::@5 divr16u divr16u::@1 divr16u::@4 divr16u::@2 divr16u::@5 divr16u::@3 divr16u::@6 divr16u::@return divr16u::@8 divr16u::@10 divr16u::@9
|
||||
Adding NOP phi() at start of @begin
|
||||
Adding NOP phi() at start of @18
|
||||
Adding NOP phi() at start of @19
|
||||
Adding NOP phi() at start of @end
|
||||
Adding NOP phi() at start of main
|
||||
Adding NOP phi() at start of main::@5
|
||||
@ -3398,9 +3453,9 @@ Culled Empty Block (label) divr16u::@6
|
||||
Culled Empty Block (label) divr16u::@8
|
||||
Culled Empty Block (label) divr16u::@10
|
||||
Culled Empty Block (label) divr16u::@9
|
||||
Block Sequence Planned @begin @18 @end main main::@3 main::@4 main::@5 main::@6 main::@7 main::@8 main::@9 main::@10 main::@11 main::@12 main::@1 main::@14 main::@15 main::@16 main::@17 main::@18 main::@19 main::@20 main::@21 main::@2 main::@22 main::@23 main::@24 main::@25 main::@26 main::@27 main::@return print_ln print_ln::@1 print_ln::@return print_word print_word::@1 print_word::@return print_byte print_byte::@1 print_byte::@return print_char print_char::@return print_str print_str::@1 print_str::@return print_str::@2 print_cls print_cls::@1 print_cls::@return lin16u_gen lin16u_gen::@3 lin16u_gen::@4 lin16u_gen::@1 lin16u_gen::@return divr16u divr16u::@1 divr16u::@4 divr16u::@2 divr16u::@5 divr16u::@3 divr16u::@return
|
||||
Block Sequence Planned @begin @19 @end main main::@3 main::@4 main::@5 main::@6 main::@7 main::@8 main::@9 main::@10 main::@11 main::@12 main::@1 main::@14 main::@15 main::@16 main::@17 main::@18 main::@19 main::@20 main::@21 main::@2 main::@22 main::@23 main::@24 main::@25 main::@26 main::@27 main::@return print_ln print_ln::@1 print_ln::@return print_word print_word::@1 print_word::@return print_byte print_byte::@1 print_byte::@return print_char print_char::@return print_str print_str::@1 print_str::@return print_str::@2 print_cls print_cls::@1 print_cls::@return lin16u_gen lin16u_gen::@3 lin16u_gen::@4 lin16u_gen::@1 lin16u_gen::@return divr16u divr16u::@1 divr16u::@4 divr16u::@2 divr16u::@5 divr16u::@3 divr16u::@return
|
||||
Adding NOP phi() at start of @begin
|
||||
Adding NOP phi() at start of @18
|
||||
Adding NOP phi() at start of @19
|
||||
Adding NOP phi() at start of @end
|
||||
Adding NOP phi() at start of main
|
||||
Adding NOP phi() at start of main::@3
|
||||
@ -3444,14 +3499,14 @@ Propagating live ranges...
|
||||
FINAL CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
[0] phi() [ ] ( )
|
||||
to:@18
|
||||
@18: scope:[] from @begin
|
||||
to:@19
|
||||
@19: scope:[] from @begin
|
||||
[1] phi() [ ] ( )
|
||||
[2] call main param-assignment [ ] ( )
|
||||
to:@end
|
||||
@end: scope:[] from @18
|
||||
@end: scope:[] from @19
|
||||
[3] phi() [ ] ( )
|
||||
main: scope:[main] from @18
|
||||
main: scope:[main] from @19
|
||||
[4] phi() [ ] ( main:2 [ ] )
|
||||
[5] call lin16u_gen param-assignment [ divr16u::rem#11 ] ( main:2 [ divr16u::rem#11 ] )
|
||||
to:main::@3
|
||||
@ -3718,66 +3773,66 @@ divr16u::@return: scope:[divr16u] from divr16u::@3
|
||||
|
||||
DOMINATORS
|
||||
@begin dominated by @begin
|
||||
@18 dominated by @begin @18
|
||||
@end dominated by @end @begin @18
|
||||
main dominated by main @begin @18
|
||||
main::@3 dominated by main main::@3 @begin @18
|
||||
main::@4 dominated by main main::@3 main::@4 @begin @18
|
||||
main::@5 dominated by main main::@5 main::@3 main::@4 @begin @18
|
||||
main::@6 dominated by main main::@5 main::@6 main::@3 main::@4 @begin @18
|
||||
main::@7 dominated by main::@7 main main::@5 main::@6 main::@3 main::@4 @begin @18
|
||||
main::@8 dominated by main::@7 main::@8 main main::@5 main::@6 main::@3 main::@4 @begin @18
|
||||
main::@9 dominated by main::@9 main::@7 main::@8 main main::@5 main::@6 main::@3 main::@4 @begin @18
|
||||
main::@10 dominated by main::@9 main::@7 main::@8 main main::@5 main::@6 main::@3 main::@4 @begin main::@10 @18
|
||||
main::@11 dominated by main::@9 main::@7 main::@8 main main::@5 main::@6 main::@3 main::@4 @begin main::@11 main::@10 @18
|
||||
main::@12 dominated by main::@9 main::@7 main::@8 main main::@5 main::@6 main::@3 main::@4 @begin main::@11 main::@10 @18 main::@12
|
||||
main::@1 dominated by main::@9 main::@7 main::@8 main main::@1 main::@5 main::@6 main::@3 main::@4 @begin main::@11 main::@10 @18 main::@12
|
||||
main::@14 dominated by main::@9 main::@7 main::@8 main main::@1 main::@5 main::@6 main::@3 main::@4 @begin main::@11 main::@10 @18 main::@12 main::@14
|
||||
main::@15 dominated by main::@9 main::@7 main::@8 main main::@1 main::@5 main::@6 main::@3 main::@4 @begin main::@11 main::@10 @18 main::@12 main::@15 main::@14
|
||||
main::@16 dominated by main::@9 main::@7 main::@8 main main::@1 main::@5 main::@6 main::@3 main::@4 @begin main::@11 main::@10 @18 main::@16 main::@12 main::@15 main::@14
|
||||
main::@17 dominated by main::@9 main::@7 main::@8 main main::@1 main::@5 main::@6 main::@3 main::@4 @begin main::@11 main::@10 @18 main::@17 main::@16 main::@12 main::@15 main::@14
|
||||
main::@18 dominated by main::@9 main::@7 main::@8 main main::@1 main::@5 main::@6 main::@3 main::@4 @begin main::@11 main::@10 @18 main::@17 main::@16 main::@18 main::@12 main::@15 main::@14
|
||||
main::@19 dominated by main::@9 main::@7 main::@8 main main::@1 main::@5 main::@6 main::@3 main::@4 @begin main::@11 main::@10 @18 main::@17 main::@16 main::@19 main::@18 main::@12 main::@15 main::@14
|
||||
main::@20 dominated by main::@9 main::@7 main::@8 main main::@1 main::@5 main::@6 main::@3 main::@4 @begin main::@20 main::@11 main::@10 @18 main::@17 main::@16 main::@19 main::@18 main::@12 main::@15 main::@14
|
||||
main::@21 dominated by main::@9 main::@7 main::@8 main main::@1 main::@5 main::@6 main::@3 main::@4 @begin main::@20 main::@21 main::@11 main::@10 @18 main::@17 main::@16 main::@19 main::@18 main::@12 main::@15 main::@14
|
||||
main::@2 dominated by main::@9 main::@7 main::@8 main main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 @begin main::@20 main::@21 main::@11 main::@10 @18 main::@17 main::@16 main::@19 main::@18 main::@12 main::@15 main::@14
|
||||
main::@22 dominated by main::@9 main::@7 main::@8 main main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 @begin main::@20 main::@22 main::@21 main::@11 main::@10 @18 main::@17 main::@16 main::@19 main::@18 main::@12 main::@15 main::@14
|
||||
main::@23 dominated by main::@9 main::@7 main::@8 main main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 @begin main::@20 main::@22 main::@21 main::@23 main::@11 main::@10 @18 main::@17 main::@16 main::@19 main::@18 main::@12 main::@15 main::@14
|
||||
main::@24 dominated by main::@9 main::@7 main::@8 main main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 @begin main::@20 main::@22 main::@21 main::@24 main::@23 main::@11 main::@10 @18 main::@17 main::@16 main::@19 main::@18 main::@12 main::@15 main::@14
|
||||
main::@25 dominated by main::@9 main::@7 main::@8 main main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 @begin main::@20 main::@22 main::@21 main::@24 main::@23 main::@25 main::@11 main::@10 @18 main::@17 main::@16 main::@19 main::@18 main::@12 main::@15 main::@14
|
||||
main::@26 dominated by main::@9 main::@7 main::@8 main main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 @begin main::@20 main::@22 main::@21 main::@24 main::@23 main::@26 main::@25 main::@11 main::@10 @18 main::@17 main::@16 main::@19 main::@18 main::@12 main::@15 main::@14
|
||||
main::@27 dominated by main::@9 main::@7 main::@8 main main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 @begin main::@20 main::@22 main::@21 main::@27 main::@24 main::@23 main::@26 main::@25 main::@11 main::@10 @18 main::@17 main::@16 main::@19 main::@18 main::@12 main::@15 main::@14
|
||||
main::@return dominated by main::@9 main::@7 main::@8 main main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 @begin main::@20 main::@return main::@22 main::@21 main::@27 main::@24 main::@23 main::@26 main::@25 main::@11 main::@10 @18 main::@17 main::@16 main::@19 main::@18 main::@12 main::@15 main::@14
|
||||
print_ln dominated by main::@9 main::@7 main::@8 main main::@5 main::@6 main::@3 main::@4 @begin print_ln main::@11 main::@10 @18 main::@12
|
||||
print_ln::@1 dominated by main::@9 print_ln::@1 main::@7 main::@8 main main::@5 main::@6 main::@3 main::@4 @begin print_ln main::@11 main::@10 @18 main::@12
|
||||
print_ln::@return dominated by main::@9 print_ln::@1 main::@7 main::@8 main print_ln::@return main::@5 main::@6 main::@3 main::@4 @begin print_ln main::@11 main::@10 @18 main::@12
|
||||
print_word dominated by main::@7 main print_word main::@5 main::@6 main::@3 main::@4 @begin @18
|
||||
print_word::@1 dominated by main::@7 main print_word main::@5 main::@6 main::@3 main::@4 @begin print_word::@1 @18
|
||||
print_word::@return dominated by main::@7 main print_word main::@5 main::@6 main::@3 main::@4 @begin print_word::@return print_word::@1 @18
|
||||
print_byte dominated by main::@7 main main::@5 main::@6 main::@3 main::@4 @begin print_byte @18
|
||||
print_byte::@1 dominated by main::@7 main main::@5 main::@6 main::@3 main::@4 @begin print_byte::@1 print_byte @18
|
||||
print_byte::@return dominated by main::@7 main main::@5 main::@6 main::@3 main::@4 @begin print_byte::@return print_byte::@1 print_byte @18
|
||||
print_char dominated by main::@7 main print_char main::@5 main::@6 main::@3 main::@4 @begin print_byte @18
|
||||
print_char::@return dominated by main::@7 main print_char main::@5 main::@6 main::@3 main::@4 print_char::@return @begin print_byte @18
|
||||
print_str dominated by main main::@5 main::@6 main::@3 main::@4 @begin @18 print_str
|
||||
print_str::@1 dominated by main main::@5 main::@6 main::@3 main::@4 @begin print_str::@1 @18 print_str
|
||||
print_str::@return dominated by main main::@5 main::@6 main::@3 main::@4 @begin print_str::@return print_str::@1 @18 print_str
|
||||
print_str::@2 dominated by main main::@5 main::@6 main::@3 main::@4 @begin print_str::@1 print_str::@2 @18 print_str
|
||||
print_cls dominated by main main::@5 main::@3 main::@4 @begin @18 print_cls
|
||||
print_cls::@1 dominated by main main::@5 main::@3 main::@4 @begin @18 print_cls::@1 print_cls
|
||||
print_cls::@return dominated by main main::@5 main::@3 main::@4 @begin print_cls::@return @18 print_cls::@1 print_cls
|
||||
lin16u_gen dominated by main @begin @18 lin16u_gen
|
||||
lin16u_gen::@3 dominated by main @begin lin16u_gen::@3 @18 lin16u_gen
|
||||
lin16u_gen::@4 dominated by main @begin lin16u_gen::@3 lin16u_gen::@4 @18 lin16u_gen
|
||||
lin16u_gen::@1 dominated by main @begin lin16u_gen::@3 lin16u_gen::@1 lin16u_gen::@4 @18 lin16u_gen
|
||||
lin16u_gen::@return dominated by main @begin lin16u_gen::@3 lin16u_gen::@1 lin16u_gen::@4 @18 lin16u_gen::@return lin16u_gen
|
||||
divr16u dominated by divr16u main @begin @18 lin16u_gen
|
||||
divr16u::@1 dominated by divr16u divr16u::@1 main @begin @18 lin16u_gen
|
||||
divr16u::@4 dominated by divr16u divr16u::@1 main divr16u::@4 @begin @18 lin16u_gen
|
||||
divr16u::@2 dominated by divr16u divr16u::@2 divr16u::@1 main @begin @18 lin16u_gen
|
||||
divr16u::@5 dominated by divr16u divr16u::@2 divr16u::@1 main divr16u::@5 @begin @18 lin16u_gen
|
||||
divr16u::@3 dominated by divr16u divr16u::@2 divr16u::@1 main divr16u::@3 @begin @18 lin16u_gen
|
||||
divr16u::@return dominated by divr16u divr16u::@2 divr16u::@1 main divr16u::@3 @begin @18 lin16u_gen divr16u::@return
|
||||
@19 dominated by @begin @19
|
||||
@end dominated by @end @begin @19
|
||||
main dominated by main @begin @19
|
||||
main::@3 dominated by main main::@3 @begin @19
|
||||
main::@4 dominated by main main::@3 main::@4 @begin @19
|
||||
main::@5 dominated by main main::@5 main::@3 main::@4 @begin @19
|
||||
main::@6 dominated by main main::@5 main::@6 main::@3 main::@4 @begin @19
|
||||
main::@7 dominated by main::@7 main main::@5 main::@6 main::@3 main::@4 @begin @19
|
||||
main::@8 dominated by main::@7 main::@8 main main::@5 main::@6 main::@3 main::@4 @begin @19
|
||||
main::@9 dominated by main::@9 main::@7 main::@8 main main::@5 main::@6 main::@3 main::@4 @begin @19
|
||||
main::@10 dominated by main::@9 main::@7 main::@8 main main::@5 main::@6 main::@3 main::@4 @begin main::@10 @19
|
||||
main::@11 dominated by main::@9 main::@7 main::@8 main main::@5 main::@6 main::@3 main::@4 @begin main::@11 main::@10 @19
|
||||
main::@12 dominated by main::@9 main::@7 main::@8 main main::@5 main::@6 main::@3 main::@4 @begin main::@11 main::@10 @19 main::@12
|
||||
main::@1 dominated by main::@9 main::@7 main::@8 main main::@1 main::@5 main::@6 main::@3 main::@4 @begin main::@11 main::@10 @19 main::@12
|
||||
main::@14 dominated by main::@9 main::@7 main::@8 main main::@1 main::@5 main::@6 main::@3 main::@4 @begin main::@11 main::@10 @19 main::@12 main::@14
|
||||
main::@15 dominated by main::@9 main::@7 main::@8 main main::@1 main::@5 main::@6 main::@3 main::@4 @begin main::@11 main::@10 @19 main::@12 main::@15 main::@14
|
||||
main::@16 dominated by main::@9 main::@7 main::@8 main main::@1 main::@5 main::@6 main::@3 main::@4 @begin main::@11 main::@10 @19 main::@16 main::@12 main::@15 main::@14
|
||||
main::@17 dominated by main::@9 main::@7 main::@8 main main::@1 main::@5 main::@6 main::@3 main::@4 @begin main::@11 main::@10 @19 main::@17 main::@16 main::@12 main::@15 main::@14
|
||||
main::@18 dominated by main::@9 main::@7 main::@8 main main::@1 main::@5 main::@6 main::@3 main::@4 @begin main::@11 main::@10 @19 main::@17 main::@16 main::@18 main::@12 main::@15 main::@14
|
||||
main::@19 dominated by main::@9 main::@7 main::@8 main main::@1 main::@5 main::@6 main::@3 main::@4 @begin main::@11 main::@10 @19 main::@17 main::@16 main::@19 main::@18 main::@12 main::@15 main::@14
|
||||
main::@20 dominated by main::@9 main::@7 main::@8 main main::@1 main::@5 main::@6 main::@3 main::@4 @begin main::@20 main::@11 main::@10 @19 main::@17 main::@16 main::@19 main::@18 main::@12 main::@15 main::@14
|
||||
main::@21 dominated by main::@9 main::@7 main::@8 main main::@1 main::@5 main::@6 main::@3 main::@4 @begin main::@20 main::@21 main::@11 main::@10 @19 main::@17 main::@16 main::@19 main::@18 main::@12 main::@15 main::@14
|
||||
main::@2 dominated by main::@9 main::@7 main::@8 main main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 @begin main::@20 main::@21 main::@11 main::@10 @19 main::@17 main::@16 main::@19 main::@18 main::@12 main::@15 main::@14
|
||||
main::@22 dominated by main::@9 main::@7 main::@8 main main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 @begin main::@20 main::@22 main::@21 main::@11 main::@10 @19 main::@17 main::@16 main::@19 main::@18 main::@12 main::@15 main::@14
|
||||
main::@23 dominated by main::@9 main::@7 main::@8 main main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 @begin main::@20 main::@22 main::@21 main::@23 main::@11 main::@10 @19 main::@17 main::@16 main::@19 main::@18 main::@12 main::@15 main::@14
|
||||
main::@24 dominated by main::@9 main::@7 main::@8 main main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 @begin main::@20 main::@22 main::@21 main::@24 main::@23 main::@11 main::@10 @19 main::@17 main::@16 main::@19 main::@18 main::@12 main::@15 main::@14
|
||||
main::@25 dominated by main::@9 main::@7 main::@8 main main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 @begin main::@20 main::@22 main::@21 main::@24 main::@23 main::@25 main::@11 main::@10 @19 main::@17 main::@16 main::@19 main::@18 main::@12 main::@15 main::@14
|
||||
main::@26 dominated by main::@9 main::@7 main::@8 main main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 @begin main::@20 main::@22 main::@21 main::@24 main::@23 main::@26 main::@25 main::@11 main::@10 @19 main::@17 main::@16 main::@19 main::@18 main::@12 main::@15 main::@14
|
||||
main::@27 dominated by main::@9 main::@7 main::@8 main main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 @begin main::@20 main::@22 main::@21 main::@27 main::@24 main::@23 main::@26 main::@25 main::@11 main::@10 @19 main::@17 main::@16 main::@19 main::@18 main::@12 main::@15 main::@14
|
||||
main::@return dominated by main::@9 main::@7 main::@8 main main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 @begin main::@20 main::@return main::@22 main::@21 main::@27 main::@24 main::@23 main::@26 main::@25 main::@11 main::@10 @19 main::@17 main::@16 main::@19 main::@18 main::@12 main::@15 main::@14
|
||||
print_ln dominated by main::@9 main::@7 main::@8 main main::@5 main::@6 main::@3 main::@4 @begin print_ln main::@11 main::@10 @19 main::@12
|
||||
print_ln::@1 dominated by main::@9 print_ln::@1 main::@7 main::@8 main main::@5 main::@6 main::@3 main::@4 @begin print_ln main::@11 main::@10 @19 main::@12
|
||||
print_ln::@return dominated by main::@9 print_ln::@1 main::@7 main::@8 main print_ln::@return main::@5 main::@6 main::@3 main::@4 @begin print_ln main::@11 main::@10 @19 main::@12
|
||||
print_word dominated by main::@7 main print_word main::@5 main::@6 main::@3 main::@4 @begin @19
|
||||
print_word::@1 dominated by main::@7 main print_word main::@5 main::@6 main::@3 main::@4 @begin print_word::@1 @19
|
||||
print_word::@return dominated by main::@7 main print_word main::@5 main::@6 main::@3 main::@4 @begin print_word::@return print_word::@1 @19
|
||||
print_byte dominated by main::@7 main main::@5 main::@6 main::@3 main::@4 @begin print_byte @19
|
||||
print_byte::@1 dominated by main::@7 main main::@5 main::@6 main::@3 main::@4 @begin print_byte::@1 print_byte @19
|
||||
print_byte::@return dominated by main::@7 main main::@5 main::@6 main::@3 main::@4 @begin print_byte::@return print_byte::@1 print_byte @19
|
||||
print_char dominated by main::@7 main print_char main::@5 main::@6 main::@3 main::@4 @begin print_byte @19
|
||||
print_char::@return dominated by main::@7 main print_char main::@5 main::@6 main::@3 main::@4 print_char::@return @begin print_byte @19
|
||||
print_str dominated by main main::@5 main::@6 main::@3 main::@4 @begin @19 print_str
|
||||
print_str::@1 dominated by main main::@5 main::@6 main::@3 main::@4 @begin print_str::@1 @19 print_str
|
||||
print_str::@return dominated by main main::@5 main::@6 main::@3 main::@4 @begin print_str::@return print_str::@1 @19 print_str
|
||||
print_str::@2 dominated by main main::@5 main::@6 main::@3 main::@4 @begin print_str::@1 print_str::@2 @19 print_str
|
||||
print_cls dominated by main main::@5 main::@3 main::@4 @begin @19 print_cls
|
||||
print_cls::@1 dominated by main main::@5 main::@3 main::@4 @begin @19 print_cls::@1 print_cls
|
||||
print_cls::@return dominated by main main::@5 main::@3 main::@4 @begin print_cls::@return @19 print_cls::@1 print_cls
|
||||
lin16u_gen dominated by main @begin @19 lin16u_gen
|
||||
lin16u_gen::@3 dominated by main @begin lin16u_gen::@3 @19 lin16u_gen
|
||||
lin16u_gen::@4 dominated by main @begin lin16u_gen::@3 lin16u_gen::@4 @19 lin16u_gen
|
||||
lin16u_gen::@1 dominated by main @begin lin16u_gen::@3 lin16u_gen::@1 lin16u_gen::@4 @19 lin16u_gen
|
||||
lin16u_gen::@return dominated by main @begin lin16u_gen::@3 lin16u_gen::@1 lin16u_gen::@4 @19 lin16u_gen::@return lin16u_gen
|
||||
divr16u dominated by divr16u main @begin @19 lin16u_gen
|
||||
divr16u::@1 dominated by divr16u divr16u::@1 main @begin @19 lin16u_gen
|
||||
divr16u::@4 dominated by divr16u divr16u::@1 main divr16u::@4 @begin @19 lin16u_gen
|
||||
divr16u::@2 dominated by divr16u divr16u::@2 divr16u::@1 main @begin @19 lin16u_gen
|
||||
divr16u::@5 dominated by divr16u divr16u::@2 divr16u::@1 main divr16u::@5 @begin @19 lin16u_gen
|
||||
divr16u::@3 dominated by divr16u divr16u::@2 divr16u::@1 main divr16u::@3 @begin @19 lin16u_gen
|
||||
divr16u::@return dominated by divr16u divr16u::@2 divr16u::@1 main divr16u::@3 @begin @19 lin16u_gen divr16u::@return
|
||||
|
||||
NATURAL LOOPS
|
||||
Found back edge: Loop head: main::@1 tails: main::@21 blocks: null
|
||||
@ -4043,17 +4098,17 @@ INITIAL ASM
|
||||
.label rem16u = $1f
|
||||
//SEG2 @begin
|
||||
bbegin:
|
||||
//SEG3 [1] phi from @begin to @18 [phi:@begin->@18]
|
||||
b18_from_bbegin:
|
||||
jmp b18
|
||||
//SEG4 @18
|
||||
b18:
|
||||
//SEG3 [1] phi from @begin to @19 [phi:@begin->@19]
|
||||
b19_from_bbegin:
|
||||
jmp b19
|
||||
//SEG4 @19
|
||||
b19:
|
||||
//SEG5 [2] call main param-assignment [ ] ( )
|
||||
//SEG6 [4] phi from @18 to main [phi:@18->main]
|
||||
main_from_b18:
|
||||
//SEG6 [4] phi from @19 to main [phi:@19->main]
|
||||
main_from_b19:
|
||||
jsr main
|
||||
//SEG7 [3] phi from @18 to @end [phi:@18->@end]
|
||||
bend_from_b18:
|
||||
//SEG7 [3] phi from @19 to @end [phi:@19->@end]
|
||||
bend_from_b19:
|
||||
jmp bend
|
||||
//SEG8 @end
|
||||
bend:
|
||||
@ -5184,17 +5239,17 @@ ASSEMBLER BEFORE OPTIMIZATION
|
||||
.label rem16u = 3
|
||||
//SEG2 @begin
|
||||
bbegin:
|
||||
//SEG3 [1] phi from @begin to @18 [phi:@begin->@18]
|
||||
b18_from_bbegin:
|
||||
jmp b18
|
||||
//SEG4 @18
|
||||
b18:
|
||||
//SEG3 [1] phi from @begin to @19 [phi:@begin->@19]
|
||||
b19_from_bbegin:
|
||||
jmp b19
|
||||
//SEG4 @19
|
||||
b19:
|
||||
//SEG5 [2] call main param-assignment [ ] ( )
|
||||
//SEG6 [4] phi from @18 to main [phi:@18->main]
|
||||
main_from_b18:
|
||||
//SEG6 [4] phi from @19 to main [phi:@19->main]
|
||||
main_from_b19:
|
||||
jsr main
|
||||
//SEG7 [3] phi from @18 to @end [phi:@18->@end]
|
||||
bend_from_b18:
|
||||
//SEG7 [3] phi from @19 to @end [phi:@19->@end]
|
||||
bend_from_b19:
|
||||
jmp bend
|
||||
//SEG8 @end
|
||||
bend:
|
||||
@ -6129,7 +6184,7 @@ divr16u: {
|
||||
}
|
||||
|
||||
ASSEMBLER OPTIMIZATIONS
|
||||
Removing instruction jmp b18
|
||||
Removing instruction jmp b19
|
||||
Removing instruction jmp bend
|
||||
Removing instruction jmp b3
|
||||
Removing instruction jmp b4
|
||||
@ -6205,9 +6260,9 @@ Replacing label b3_from_b2 with b3
|
||||
Replacing label b3_from_b2 with b3
|
||||
Replacing label b1_from_b3 with b1
|
||||
Removing instruction bbegin:
|
||||
Removing instruction b18_from_bbegin:
|
||||
Removing instruction main_from_b18:
|
||||
Removing instruction bend_from_b18:
|
||||
Removing instruction b19_from_bbegin:
|
||||
Removing instruction main_from_b19:
|
||||
Removing instruction bend_from_b19:
|
||||
Removing instruction b3_from_main:
|
||||
Removing instruction lin16u_gen_from_b3:
|
||||
Removing instruction b4_from_b3:
|
||||
@ -6261,7 +6316,7 @@ Removing instruction b2_from_b4:
|
||||
Removing instruction b3_from_b2:
|
||||
Removing instruction b3_from_b5:
|
||||
Succesful ASM optimization Pass5RedundantLabelElimination
|
||||
Removing instruction b18:
|
||||
Removing instruction b19:
|
||||
Removing instruction bend:
|
||||
Removing instruction lin16u_gen_from_main:
|
||||
Removing instruction b3:
|
||||
@ -6327,7 +6382,7 @@ Removing instruction jmp b1
|
||||
Succesful ASM optimization Pass5NextJumpElimination
|
||||
|
||||
FINAL SYMBOL TABLE
|
||||
(label) @18
|
||||
(label) @19
|
||||
(label) @begin
|
||||
(label) @end
|
||||
(byte*) SCREEN
|
||||
@ -6539,12 +6594,12 @@ Score: 13624
|
||||
.label line_cursor = 3
|
||||
.label rem16u = 3
|
||||
//SEG2 @begin
|
||||
//SEG3 [1] phi from @begin to @18 [phi:@begin->@18]
|
||||
//SEG4 @18
|
||||
//SEG3 [1] phi from @begin to @19 [phi:@begin->@19]
|
||||
//SEG4 @19
|
||||
//SEG5 [2] call main param-assignment [ ] ( )
|
||||
//SEG6 [4] phi from @18 to main [phi:@18->main]
|
||||
//SEG6 [4] phi from @19 to main [phi:@19->main]
|
||||
jsr main
|
||||
//SEG7 [3] phi from @18 to @end [phi:@18->@end]
|
||||
//SEG7 [3] phi from @19 to @end [phi:@19->@end]
|
||||
//SEG8 @end
|
||||
//SEG9 main
|
||||
main: {
|
||||
|
@ -1,4 +1,4 @@
|
||||
(label) @18
|
||||
(label) @19
|
||||
(label) @begin
|
||||
(label) @end
|
||||
(byte*) SCREEN
|
||||
|
@ -75,7 +75,7 @@ signed word sin16s(dword x) {
|
||||
word x4 = mul_u16_sel(x3, x1, 0); // u[3.13] x^4
|
||||
word x5 = mul_u16_sel(x4, x1, 0); // u[4.12] x^5
|
||||
word x5_128 = x5>>4; // // u[1.15] x^5/128 -- much more efficient than mul_u16_sel(x5, $10000/128, 3);
|
||||
usinx = usinx + x5_128; // u[1.15] (always an initial zero)
|
||||
usinx = usinx + x5_128; // u[1.15] (first bit is always zero)
|
||||
signed word sinx = (signed word)usinx; // s[0.15]
|
||||
if(isUpper!=0) {
|
||||
sinx = -(signed word)usinx; // s[0.15];
|
||||
@ -172,14 +172,6 @@ byte divr8u(byte dividend, byte divisor, byte rem) {
|
||||
// Remainder after unsigned 16-bit division
|
||||
word rem16u = 0;
|
||||
|
||||
// Performs division on two 16 bit unsigned words
|
||||
// Returns the quotient dividend/divisor.
|
||||
// The remainder will be set into the global variable rem16u
|
||||
// Implemented using simple binary division
|
||||
word div16u(word dividend, word divisor) {
|
||||
return divr16u(dividend, divisor, 0);
|
||||
}
|
||||
|
||||
// Performs division on two 16 bit unsigned words and an initial remainder
|
||||
// Returns the quotient dividend/divisor.
|
||||
// The final remainder will be set into the global variable rem16u
|
||||
@ -202,6 +194,14 @@ word divr16u(word dividend, word divisor, word rem) {
|
||||
return quotient;
|
||||
}
|
||||
|
||||
// Performs division on two 16 bit unsigned words
|
||||
// Returns the quotient dividend/divisor.
|
||||
// The remainder will be set into the global variable rem16u
|
||||
// Implemented using simple binary division
|
||||
word div16u(word dividend, word divisor) {
|
||||
return divr16u(dividend, divisor, 0);
|
||||
}
|
||||
|
||||
// Divide unsigned 32-bit dword dividend with a 16-bit word divisor
|
||||
// The 16-bit word remainder can be found in rem16u after the division
|
||||
dword div32u16u(dword dividend, word divisor) {
|
||||
@ -479,14 +479,6 @@ divr8u::@return:
|
||||
return (byte) divr8u::return
|
||||
endproc // divr8u()
|
||||
(word) rem16u ← (byte/signed byte/word/signed word/dword/signed dword) 0
|
||||
proc (word()) div16u((word) div16u::dividend , (word) div16u::divisor)
|
||||
(word~) div16u::$0 ← call divr16u (word) div16u::dividend (word) div16u::divisor (byte/signed byte/word/signed word/dword/signed dword) 0
|
||||
(word) div16u::return ← (word~) div16u::$0
|
||||
goto div16u::@return
|
||||
div16u::@return:
|
||||
(word) div16u::return ← (word) div16u::return
|
||||
return (word) div16u::return
|
||||
endproc // div16u()
|
||||
proc (word()) divr16u((word) divr16u::dividend , (word) divr16u::divisor , (word) divr16u::rem)
|
||||
(word) divr16u::quotient ← (byte/signed byte/word/signed word/dword/signed dword) 0
|
||||
(byte) divr16u::i ← (byte/signed byte/word/signed word/dword/signed dword) 0
|
||||
@ -522,6 +514,14 @@ divr16u::@return:
|
||||
(word) divr16u::return ← (word) divr16u::return
|
||||
return (word) divr16u::return
|
||||
endproc // divr16u()
|
||||
proc (word()) div16u((word) div16u::dividend , (word) div16u::divisor)
|
||||
(word~) div16u::$0 ← call divr16u (word) div16u::dividend (word) div16u::divisor (byte/signed byte/word/signed word/dword/signed dword) 0
|
||||
(word) div16u::return ← (word~) div16u::$0
|
||||
goto div16u::@return
|
||||
div16u::@return:
|
||||
(word) div16u::return ← (word) div16u::return
|
||||
return (word) div16u::return
|
||||
endproc // div16u()
|
||||
proc (dword()) div32u16u((dword) div32u16u::dividend , (word) div32u16u::divisor)
|
||||
(word~) div32u16u::$0 ← > (dword) div32u16u::dividend
|
||||
(word~) div32u16u::$1 ← call divr16u (word~) div32u16u::$0 (word) div32u16u::divisor (byte/signed byte/word/signed word/dword/signed dword) 0
|
||||
@ -1550,18 +1550,6 @@ divr8u::@7: scope:[divr8u] from
|
||||
@2: scope:[] from @1
|
||||
(word) rem16u ← (byte/signed byte/word/signed word/dword/signed dword) 0
|
||||
to:@3
|
||||
div16u: scope:[div16u] from
|
||||
(word~) div16u::$0 ← call divr16u (word) div16u::dividend (word) div16u::divisor (byte/signed byte/word/signed word/dword/signed dword) 0
|
||||
(word) div16u::return ← (word~) div16u::$0
|
||||
to:div16u::@return
|
||||
div16u::@return: scope:[div16u] from div16u div16u::@1
|
||||
(word) div16u::return ← (word) div16u::return
|
||||
return (word) div16u::return
|
||||
to:@return
|
||||
div16u::@1: scope:[div16u] from
|
||||
to:div16u::@return
|
||||
@3: scope:[] from @2
|
||||
to:@4
|
||||
divr16u: scope:[divr16u] from
|
||||
(word) divr16u::quotient ← (byte/signed byte/word/signed word/dword/signed dword) 0
|
||||
(byte) divr16u::i ← (byte/signed byte/word/signed word/dword/signed dword) 0
|
||||
@ -1608,6 +1596,18 @@ divr16u::@return: scope:[divr16u] from divr16u::@6 divr16u::@7
|
||||
to:@return
|
||||
divr16u::@7: scope:[divr16u] from
|
||||
to:divr16u::@return
|
||||
@3: scope:[] from @2
|
||||
to:@4
|
||||
div16u: scope:[div16u] from
|
||||
(word~) div16u::$0 ← call divr16u (word) div16u::dividend (word) div16u::divisor (byte/signed byte/word/signed word/dword/signed dword) 0
|
||||
(word) div16u::return ← (word~) div16u::$0
|
||||
to:div16u::@return
|
||||
div16u::@return: scope:[div16u] from div16u div16u::@1
|
||||
(word) div16u::return ← (word) div16u::return
|
||||
return (word) div16u::return
|
||||
to:@return
|
||||
div16u::@1: scope:[div16u] from
|
||||
to:div16u::@return
|
||||
@4: scope:[] from @3
|
||||
to:@5
|
||||
div32u16u: scope:[div32u16u] from
|
||||
@ -2360,8 +2360,8 @@ Creating constant string variable for inline (const string) print_byte::$4 "0123
|
||||
Creating constant string variable for inline (const string) main::str " @"
|
||||
Creating constant string variable for inline (const string) main::str1 " @"
|
||||
Removing empty block @1
|
||||
Removing empty block @3
|
||||
Removing empty block divr16u::@7
|
||||
Removing empty block @3
|
||||
Removing empty block @4
|
||||
Removing empty block div32u16u::@1
|
||||
Removing empty block @5
|
||||
|
@ -270,11 +270,11 @@ div16u: {
|
||||
rts
|
||||
}
|
||||
divr16u: {
|
||||
.label dividend = 3
|
||||
.label divisor = $c
|
||||
.label return = $e
|
||||
.label rem = $10
|
||||
.label dividend = 3
|
||||
.label quotient = $e
|
||||
.label return = $e
|
||||
.label divisor = $c
|
||||
ldx #0
|
||||
txa
|
||||
sta quotient
|
||||
|
@ -1,13 +1,13 @@
|
||||
@begin: scope:[] from
|
||||
[0] phi() [ ] ( )
|
||||
to:@21
|
||||
@21: scope:[] from @begin
|
||||
to:@22
|
||||
@22: scope:[] from @begin
|
||||
[1] phi() [ ] ( )
|
||||
[2] call main param-assignment [ ] ( )
|
||||
to:@end
|
||||
@end: scope:[] from @21
|
||||
@end: scope:[] from @22
|
||||
[3] phi() [ ] ( )
|
||||
main: scope:[main] from @21
|
||||
main: scope:[main] from @22
|
||||
[4] phi() [ ] ( main:2 [ ] )
|
||||
[5] call print_cls param-assignment [ ] ( main:2 [ ] )
|
||||
to:main::@1
|
||||
@ -221,51 +221,51 @@ div16u: scope:[div16u] from div16s::@4 test_16u::@1
|
||||
[106] (word) rem16u#31 ← phi( div16s::@4/(word) divr16u::rem#10 test_16u::@1/(word) rem16u#35 ) [ div16u::dividend#2 div16u::divisor#2 ] ( main:2::test_16s:13::div16s:21::div16u:94 [ test_16s::i#10 test_16s::dividend#0 test_16s::divisor#0 line_cursor#1 div16s::neg#4 div16u::dividend#2 div16u::divisor#2 ] main:2::test_16u:9::div16u:220 [ divr8u::rem#10 line_cursor#1 test_16u::i#10 test_16u::dividend#0 test_16u::divisor#0 div16u::dividend#2 div16u::divisor#2 ] )
|
||||
[106] (word) div16u::divisor#2 ← phi( div16s::@4/(word) div16u::divisor#0 test_16u::@1/(word) div16u::divisor#1 ) [ div16u::dividend#2 div16u::divisor#2 ] ( main:2::test_16s:13::div16s:21::div16u:94 [ test_16s::i#10 test_16s::dividend#0 test_16s::divisor#0 line_cursor#1 div16s::neg#4 div16u::dividend#2 div16u::divisor#2 ] main:2::test_16u:9::div16u:220 [ divr8u::rem#10 line_cursor#1 test_16u::i#10 test_16u::dividend#0 test_16u::divisor#0 div16u::dividend#2 div16u::divisor#2 ] )
|
||||
[106] (word) div16u::dividend#2 ← phi( div16s::@4/(word) div16u::dividend#0 test_16u::@1/(word) div16u::dividend#1 ) [ div16u::dividend#2 div16u::divisor#2 ] ( main:2::test_16s:13::div16s:21::div16u:94 [ test_16s::i#10 test_16s::dividend#0 test_16s::divisor#0 line_cursor#1 div16s::neg#4 div16u::dividend#2 div16u::divisor#2 ] main:2::test_16u:9::div16u:220 [ divr8u::rem#10 line_cursor#1 test_16u::i#10 test_16u::dividend#0 test_16u::divisor#0 div16u::dividend#2 div16u::divisor#2 ] )
|
||||
[107] (word) divr16u::dividend#0 ← (word) div16u::dividend#2 [ div16u::divisor#2 divr16u::dividend#0 ] ( main:2::test_16s:13::div16s:21::div16u:94 [ test_16s::i#10 test_16s::dividend#0 test_16s::divisor#0 line_cursor#1 div16s::neg#4 div16u::divisor#2 divr16u::dividend#0 ] main:2::test_16u:9::div16u:220 [ divr8u::rem#10 line_cursor#1 test_16u::i#10 test_16u::dividend#0 test_16u::divisor#0 div16u::divisor#2 divr16u::dividend#0 ] )
|
||||
[108] (word) divr16u::divisor#0 ← (word) div16u::divisor#2 [ divr16u::dividend#0 divr16u::divisor#0 ] ( main:2::test_16s:13::div16s:21::div16u:94 [ test_16s::i#10 test_16s::dividend#0 test_16s::divisor#0 line_cursor#1 div16s::neg#4 divr16u::dividend#0 divr16u::divisor#0 ] main:2::test_16u:9::div16u:220 [ divr8u::rem#10 line_cursor#1 test_16u::i#10 test_16u::dividend#0 test_16u::divisor#0 divr16u::dividend#0 divr16u::divisor#0 ] )
|
||||
[109] call divr16u param-assignment [ divr16u::rem#10 divr16u::return#1 ] ( main:2::test_16s:13::div16s:21::div16u:94 [ test_16s::i#10 test_16s::dividend#0 test_16s::divisor#0 line_cursor#1 div16s::neg#4 divr16u::rem#10 divr16u::return#1 ] main:2::test_16u:9::div16u:220 [ divr8u::rem#10 line_cursor#1 test_16u::i#10 test_16u::dividend#0 test_16u::divisor#0 divr16u::rem#10 divr16u::return#1 ] )
|
||||
[110] (word) divr16u::return#0 ← (word) divr16u::return#1 [ divr16u::rem#10 divr16u::return#0 ] ( main:2::test_16s:13::div16s:21::div16u:94 [ test_16s::i#10 test_16s::dividend#0 test_16s::divisor#0 line_cursor#1 div16s::neg#4 divr16u::rem#10 divr16u::return#0 ] main:2::test_16u:9::div16u:220 [ divr8u::rem#10 line_cursor#1 test_16u::i#10 test_16u::dividend#0 test_16u::divisor#0 divr16u::rem#10 divr16u::return#0 ] )
|
||||
[107] (word) divr16u::dividend#1 ← (word) div16u::dividend#2 [ div16u::divisor#2 divr16u::dividend#1 ] ( main:2::test_16s:13::div16s:21::div16u:94 [ test_16s::i#10 test_16s::dividend#0 test_16s::divisor#0 line_cursor#1 div16s::neg#4 div16u::divisor#2 divr16u::dividend#1 ] main:2::test_16u:9::div16u:220 [ divr8u::rem#10 line_cursor#1 test_16u::i#10 test_16u::dividend#0 test_16u::divisor#0 div16u::divisor#2 divr16u::dividend#1 ] )
|
||||
[108] (word) divr16u::divisor#0 ← (word) div16u::divisor#2 [ divr16u::dividend#1 divr16u::divisor#0 ] ( main:2::test_16s:13::div16s:21::div16u:94 [ test_16s::i#10 test_16s::dividend#0 test_16s::divisor#0 line_cursor#1 div16s::neg#4 divr16u::dividend#1 divr16u::divisor#0 ] main:2::test_16u:9::div16u:220 [ divr8u::rem#10 line_cursor#1 test_16u::i#10 test_16u::dividend#0 test_16u::divisor#0 divr16u::dividend#1 divr16u::divisor#0 ] )
|
||||
[109] call divr16u param-assignment [ divr16u::rem#10 divr16u::return#0 ] ( main:2::test_16s:13::div16s:21::div16u:94 [ test_16s::i#10 test_16s::dividend#0 test_16s::divisor#0 line_cursor#1 div16s::neg#4 divr16u::rem#10 divr16u::return#0 ] main:2::test_16u:9::div16u:220 [ divr8u::rem#10 line_cursor#1 test_16u::i#10 test_16u::dividend#0 test_16u::divisor#0 divr16u::rem#10 divr16u::return#0 ] )
|
||||
[110] (word) divr16u::return#2 ← (word) divr16u::return#0 [ divr16u::rem#10 divr16u::return#2 ] ( main:2::test_16s:13::div16s:21::div16u:94 [ test_16s::i#10 test_16s::dividend#0 test_16s::divisor#0 line_cursor#1 div16s::neg#4 divr16u::rem#10 divr16u::return#2 ] main:2::test_16u:9::div16u:220 [ divr8u::rem#10 line_cursor#1 test_16u::i#10 test_16u::dividend#0 test_16u::divisor#0 divr16u::rem#10 divr16u::return#2 ] )
|
||||
to:div16u::@2
|
||||
div16u::@2: scope:[div16u] from div16u
|
||||
[111] (word) div16u::return#0 ← (word) divr16u::return#0 [ div16u::return#0 divr16u::rem#10 ] ( main:2::test_16s:13::div16s:21::div16u:94 [ test_16s::i#10 test_16s::dividend#0 test_16s::divisor#0 line_cursor#1 div16s::neg#4 div16u::return#0 divr16u::rem#10 ] main:2::test_16u:9::div16u:220 [ divr8u::rem#10 line_cursor#1 test_16u::i#10 test_16u::dividend#0 test_16u::divisor#0 div16u::return#0 divr16u::rem#10 ] )
|
||||
[111] (word) div16u::return#0 ← (word) divr16u::return#2 [ div16u::return#0 divr16u::rem#10 ] ( main:2::test_16s:13::div16s:21::div16u:94 [ test_16s::i#10 test_16s::dividend#0 test_16s::divisor#0 line_cursor#1 div16s::neg#4 div16u::return#0 divr16u::rem#10 ] main:2::test_16u:9::div16u:220 [ divr8u::rem#10 line_cursor#1 test_16u::i#10 test_16u::dividend#0 test_16u::divisor#0 div16u::return#0 divr16u::rem#10 ] )
|
||||
to:div16u::@return
|
||||
div16u::@return: scope:[div16u] from div16u::@2
|
||||
[112] return [ div16u::return#0 divr16u::rem#10 ] ( main:2::test_16s:13::div16s:21::div16u:94 [ test_16s::i#10 test_16s::dividend#0 test_16s::divisor#0 line_cursor#1 div16s::neg#4 div16u::return#0 divr16u::rem#10 ] main:2::test_16u:9::div16u:220 [ divr8u::rem#10 line_cursor#1 test_16u::i#10 test_16u::dividend#0 test_16u::divisor#0 div16u::return#0 divr16u::rem#10 ] )
|
||||
to:@return
|
||||
divr16u: scope:[divr16u] from div16u
|
||||
[113] phi() [ divr16u::dividend#0 divr16u::divisor#0 ] ( main:2::test_16s:13::div16s:21::div16u:94::divr16u:109 [ test_16s::i#10 test_16s::dividend#0 test_16s::divisor#0 line_cursor#1 div16s::neg#4 divr16u::dividend#0 divr16u::divisor#0 ] main:2::test_16u:9::div16u:220::divr16u:109 [ divr8u::rem#10 line_cursor#1 test_16u::i#10 test_16u::dividend#0 test_16u::divisor#0 divr16u::dividend#0 divr16u::divisor#0 ] )
|
||||
[113] phi() [ divr16u::dividend#1 divr16u::divisor#0 ] ( main:2::test_16s:13::div16s:21::div16u:94::divr16u:109 [ test_16s::i#10 test_16s::dividend#0 test_16s::divisor#0 line_cursor#1 div16s::neg#4 divr16u::dividend#1 divr16u::divisor#0 ] main:2::test_16u:9::div16u:220::divr16u:109 [ divr8u::rem#10 line_cursor#1 test_16u::i#10 test_16u::dividend#0 test_16u::divisor#0 divr16u::dividend#1 divr16u::divisor#0 ] )
|
||||
to:divr16u::@1
|
||||
divr16u::@1: scope:[divr16u] from divr16u divr16u::@3
|
||||
[114] (byte) divr16u::i#2 ← phi( divr16u/(byte/signed byte/word/signed word/dword/signed dword) 0 divr16u::@3/(byte) divr16u::i#1 ) [ divr16u::divisor#0 divr16u::rem#4 divr16u::dividend#2 divr16u::quotient#3 divr16u::i#2 ] ( main:2::test_16s:13::div16s:21::div16u:94::divr16u:109 [ test_16s::i#10 test_16s::dividend#0 test_16s::divisor#0 line_cursor#1 div16s::neg#4 divr16u::divisor#0 divr16u::rem#4 divr16u::dividend#2 divr16u::quotient#3 divr16u::i#2 ] main:2::test_16u:9::div16u:220::divr16u:109 [ divr8u::rem#10 line_cursor#1 test_16u::i#10 test_16u::dividend#0 test_16u::divisor#0 divr16u::divisor#0 divr16u::rem#4 divr16u::dividend#2 divr16u::quotient#3 divr16u::i#2 ] )
|
||||
[114] (word) divr16u::quotient#3 ← phi( divr16u/(byte/signed byte/word/signed word/dword/signed dword) 0 divr16u::@3/(word) divr16u::return#1 ) [ divr16u::divisor#0 divr16u::rem#4 divr16u::dividend#2 divr16u::quotient#3 divr16u::i#2 ] ( main:2::test_16s:13::div16s:21::div16u:94::divr16u:109 [ test_16s::i#10 test_16s::dividend#0 test_16s::divisor#0 line_cursor#1 div16s::neg#4 divr16u::divisor#0 divr16u::rem#4 divr16u::dividend#2 divr16u::quotient#3 divr16u::i#2 ] main:2::test_16u:9::div16u:220::divr16u:109 [ divr8u::rem#10 line_cursor#1 test_16u::i#10 test_16u::dividend#0 test_16u::divisor#0 divr16u::divisor#0 divr16u::rem#4 divr16u::dividend#2 divr16u::quotient#3 divr16u::i#2 ] )
|
||||
[114] (word) divr16u::dividend#2 ← phi( divr16u/(word) divr16u::dividend#0 divr16u::@3/(word) divr16u::dividend#1 ) [ divr16u::divisor#0 divr16u::rem#4 divr16u::dividend#2 divr16u::quotient#3 divr16u::i#2 ] ( main:2::test_16s:13::div16s:21::div16u:94::divr16u:109 [ test_16s::i#10 test_16s::dividend#0 test_16s::divisor#0 line_cursor#1 div16s::neg#4 divr16u::divisor#0 divr16u::rem#4 divr16u::dividend#2 divr16u::quotient#3 divr16u::i#2 ] main:2::test_16u:9::div16u:220::divr16u:109 [ divr8u::rem#10 line_cursor#1 test_16u::i#10 test_16u::dividend#0 test_16u::divisor#0 divr16u::divisor#0 divr16u::rem#4 divr16u::dividend#2 divr16u::quotient#3 divr16u::i#2 ] )
|
||||
[114] (word) divr16u::quotient#3 ← phi( divr16u/(byte/signed byte/word/signed word/dword/signed dword) 0 divr16u::@3/(word) divr16u::return#0 ) [ divr16u::divisor#0 divr16u::rem#4 divr16u::dividend#2 divr16u::quotient#3 divr16u::i#2 ] ( main:2::test_16s:13::div16s:21::div16u:94::divr16u:109 [ test_16s::i#10 test_16s::dividend#0 test_16s::divisor#0 line_cursor#1 div16s::neg#4 divr16u::divisor#0 divr16u::rem#4 divr16u::dividend#2 divr16u::quotient#3 divr16u::i#2 ] main:2::test_16u:9::div16u:220::divr16u:109 [ divr8u::rem#10 line_cursor#1 test_16u::i#10 test_16u::dividend#0 test_16u::divisor#0 divr16u::divisor#0 divr16u::rem#4 divr16u::dividend#2 divr16u::quotient#3 divr16u::i#2 ] )
|
||||
[114] (word) divr16u::dividend#2 ← phi( divr16u/(word) divr16u::dividend#1 divr16u::@3/(word) divr16u::dividend#0 ) [ divr16u::divisor#0 divr16u::rem#4 divr16u::dividend#2 divr16u::quotient#3 divr16u::i#2 ] ( main:2::test_16s:13::div16s:21::div16u:94::divr16u:109 [ test_16s::i#10 test_16s::dividend#0 test_16s::divisor#0 line_cursor#1 div16s::neg#4 divr16u::divisor#0 divr16u::rem#4 divr16u::dividend#2 divr16u::quotient#3 divr16u::i#2 ] main:2::test_16u:9::div16u:220::divr16u:109 [ divr8u::rem#10 line_cursor#1 test_16u::i#10 test_16u::dividend#0 test_16u::divisor#0 divr16u::divisor#0 divr16u::rem#4 divr16u::dividend#2 divr16u::quotient#3 divr16u::i#2 ] )
|
||||
[114] (word) divr16u::rem#4 ← phi( divr16u/(byte/signed byte/word/signed word/dword/signed dword) 0 divr16u::@3/(word) divr16u::rem#10 ) [ divr16u::divisor#0 divr16u::rem#4 divr16u::dividend#2 divr16u::quotient#3 divr16u::i#2 ] ( main:2::test_16s:13::div16s:21::div16u:94::divr16u:109 [ test_16s::i#10 test_16s::dividend#0 test_16s::divisor#0 line_cursor#1 div16s::neg#4 divr16u::divisor#0 divr16u::rem#4 divr16u::dividend#2 divr16u::quotient#3 divr16u::i#2 ] main:2::test_16u:9::div16u:220::divr16u:109 [ divr8u::rem#10 line_cursor#1 test_16u::i#10 test_16u::dividend#0 test_16u::divisor#0 divr16u::divisor#0 divr16u::rem#4 divr16u::dividend#2 divr16u::quotient#3 divr16u::i#2 ] )
|
||||
[115] (word) divr16u::rem#1 ← (word) divr16u::rem#4 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ divr16u::divisor#0 divr16u::dividend#2 divr16u::quotient#3 divr16u::i#2 divr16u::rem#1 ] ( main:2::test_16s:13::div16s:21::div16u:94::divr16u:109 [ test_16s::i#10 test_16s::dividend#0 test_16s::divisor#0 line_cursor#1 div16s::neg#4 divr16u::divisor#0 divr16u::dividend#2 divr16u::quotient#3 divr16u::i#2 divr16u::rem#1 ] main:2::test_16u:9::div16u:220::divr16u:109 [ divr8u::rem#10 line_cursor#1 test_16u::i#10 test_16u::dividend#0 test_16u::divisor#0 divr16u::divisor#0 divr16u::dividend#2 divr16u::quotient#3 divr16u::i#2 divr16u::rem#1 ] )
|
||||
[116] (byte~) divr16u::$1 ← > (word) divr16u::dividend#2 [ divr16u::divisor#0 divr16u::dividend#2 divr16u::quotient#3 divr16u::i#2 divr16u::rem#1 divr16u::$1 ] ( main:2::test_16s:13::div16s:21::div16u:94::divr16u:109 [ test_16s::i#10 test_16s::dividend#0 test_16s::divisor#0 line_cursor#1 div16s::neg#4 divr16u::divisor#0 divr16u::dividend#2 divr16u::quotient#3 divr16u::i#2 divr16u::rem#1 divr16u::$1 ] main:2::test_16u:9::div16u:220::divr16u:109 [ divr8u::rem#10 line_cursor#1 test_16u::i#10 test_16u::dividend#0 test_16u::divisor#0 divr16u::divisor#0 divr16u::dividend#2 divr16u::quotient#3 divr16u::i#2 divr16u::rem#1 divr16u::$1 ] )
|
||||
[117] (byte~) divr16u::$2 ← (byte~) divr16u::$1 & (byte/word/signed word/dword/signed dword) 128 [ divr16u::divisor#0 divr16u::dividend#2 divr16u::quotient#3 divr16u::i#2 divr16u::rem#1 divr16u::$2 ] ( main:2::test_16s:13::div16s:21::div16u:94::divr16u:109 [ test_16s::i#10 test_16s::dividend#0 test_16s::divisor#0 line_cursor#1 div16s::neg#4 divr16u::divisor#0 divr16u::dividend#2 divr16u::quotient#3 divr16u::i#2 divr16u::rem#1 divr16u::$2 ] main:2::test_16u:9::div16u:220::divr16u:109 [ divr8u::rem#10 line_cursor#1 test_16u::i#10 test_16u::dividend#0 test_16u::divisor#0 divr16u::divisor#0 divr16u::dividend#2 divr16u::quotient#3 divr16u::i#2 divr16u::rem#1 divr16u::$2 ] )
|
||||
[118] if((byte~) divr16u::$2==(byte/signed byte/word/signed word/dword/signed dword) 0) goto divr16u::@2 [ divr16u::divisor#0 divr16u::dividend#2 divr16u::quotient#3 divr16u::i#2 divr16u::rem#1 ] ( main:2::test_16s:13::div16s:21::div16u:94::divr16u:109 [ test_16s::i#10 test_16s::dividend#0 test_16s::divisor#0 line_cursor#1 div16s::neg#4 divr16u::divisor#0 divr16u::dividend#2 divr16u::quotient#3 divr16u::i#2 divr16u::rem#1 ] main:2::test_16u:9::div16u:220::divr16u:109 [ divr8u::rem#10 line_cursor#1 test_16u::i#10 test_16u::dividend#0 test_16u::divisor#0 divr16u::divisor#0 divr16u::dividend#2 divr16u::quotient#3 divr16u::i#2 divr16u::rem#1 ] )
|
||||
[115] (word) divr16u::rem#0 ← (word) divr16u::rem#4 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ divr16u::divisor#0 divr16u::dividend#2 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 ] ( main:2::test_16s:13::div16s:21::div16u:94::divr16u:109 [ test_16s::i#10 test_16s::dividend#0 test_16s::divisor#0 line_cursor#1 div16s::neg#4 divr16u::divisor#0 divr16u::dividend#2 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 ] main:2::test_16u:9::div16u:220::divr16u:109 [ divr8u::rem#10 line_cursor#1 test_16u::i#10 test_16u::dividend#0 test_16u::divisor#0 divr16u::divisor#0 divr16u::dividend#2 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 ] )
|
||||
[116] (byte~) divr16u::$1 ← > (word) divr16u::dividend#2 [ divr16u::divisor#0 divr16u::dividend#2 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$1 ] ( main:2::test_16s:13::div16s:21::div16u:94::divr16u:109 [ test_16s::i#10 test_16s::dividend#0 test_16s::divisor#0 line_cursor#1 div16s::neg#4 divr16u::divisor#0 divr16u::dividend#2 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$1 ] main:2::test_16u:9::div16u:220::divr16u:109 [ divr8u::rem#10 line_cursor#1 test_16u::i#10 test_16u::dividend#0 test_16u::divisor#0 divr16u::divisor#0 divr16u::dividend#2 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$1 ] )
|
||||
[117] (byte~) divr16u::$2 ← (byte~) divr16u::$1 & (byte/word/signed word/dword/signed dword) 128 [ divr16u::divisor#0 divr16u::dividend#2 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$2 ] ( main:2::test_16s:13::div16s:21::div16u:94::divr16u:109 [ test_16s::i#10 test_16s::dividend#0 test_16s::divisor#0 line_cursor#1 div16s::neg#4 divr16u::divisor#0 divr16u::dividend#2 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$2 ] main:2::test_16u:9::div16u:220::divr16u:109 [ divr8u::rem#10 line_cursor#1 test_16u::i#10 test_16u::dividend#0 test_16u::divisor#0 divr16u::divisor#0 divr16u::dividend#2 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$2 ] )
|
||||
[118] if((byte~) divr16u::$2==(byte/signed byte/word/signed word/dword/signed dword) 0) goto divr16u::@2 [ divr16u::divisor#0 divr16u::dividend#2 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 ] ( main:2::test_16s:13::div16s:21::div16u:94::divr16u:109 [ test_16s::i#10 test_16s::dividend#0 test_16s::divisor#0 line_cursor#1 div16s::neg#4 divr16u::divisor#0 divr16u::dividend#2 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 ] main:2::test_16u:9::div16u:220::divr16u:109 [ divr8u::rem#10 line_cursor#1 test_16u::i#10 test_16u::dividend#0 test_16u::divisor#0 divr16u::divisor#0 divr16u::dividend#2 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 ] )
|
||||
to:divr16u::@4
|
||||
divr16u::@4: scope:[divr16u] from divr16u::@1
|
||||
[119] (word) divr16u::rem#2 ← (word) divr16u::rem#1 | (byte/signed byte/word/signed word/dword/signed dword) 1 [ divr16u::divisor#0 divr16u::dividend#2 divr16u::quotient#3 divr16u::i#2 divr16u::rem#2 ] ( main:2::test_16s:13::div16s:21::div16u:94::divr16u:109 [ test_16s::i#10 test_16s::dividend#0 test_16s::divisor#0 line_cursor#1 div16s::neg#4 divr16u::divisor#0 divr16u::dividend#2 divr16u::quotient#3 divr16u::i#2 divr16u::rem#2 ] main:2::test_16u:9::div16u:220::divr16u:109 [ divr8u::rem#10 line_cursor#1 test_16u::i#10 test_16u::dividend#0 test_16u::divisor#0 divr16u::divisor#0 divr16u::dividend#2 divr16u::quotient#3 divr16u::i#2 divr16u::rem#2 ] )
|
||||
[119] (word) divr16u::rem#1 ← (word) divr16u::rem#0 | (byte/signed byte/word/signed word/dword/signed dword) 1 [ divr16u::divisor#0 divr16u::dividend#2 divr16u::quotient#3 divr16u::i#2 divr16u::rem#1 ] ( main:2::test_16s:13::div16s:21::div16u:94::divr16u:109 [ test_16s::i#10 test_16s::dividend#0 test_16s::divisor#0 line_cursor#1 div16s::neg#4 divr16u::divisor#0 divr16u::dividend#2 divr16u::quotient#3 divr16u::i#2 divr16u::rem#1 ] main:2::test_16u:9::div16u:220::divr16u:109 [ divr8u::rem#10 line_cursor#1 test_16u::i#10 test_16u::dividend#0 test_16u::divisor#0 divr16u::divisor#0 divr16u::dividend#2 divr16u::quotient#3 divr16u::i#2 divr16u::rem#1 ] )
|
||||
to:divr16u::@2
|
||||
divr16u::@2: scope:[divr16u] from divr16u::@1 divr16u::@4
|
||||
[120] (word) divr16u::rem#5 ← phi( divr16u::@1/(word) divr16u::rem#1 divr16u::@4/(word) divr16u::rem#2 ) [ divr16u::divisor#0 divr16u::dividend#2 divr16u::quotient#3 divr16u::i#2 divr16u::rem#5 ] ( main:2::test_16s:13::div16s:21::div16u:94::divr16u:109 [ test_16s::i#10 test_16s::dividend#0 test_16s::divisor#0 line_cursor#1 div16s::neg#4 divr16u::divisor#0 divr16u::dividend#2 divr16u::quotient#3 divr16u::i#2 divr16u::rem#5 ] main:2::test_16u:9::div16u:220::divr16u:109 [ divr8u::rem#10 line_cursor#1 test_16u::i#10 test_16u::dividend#0 test_16u::divisor#0 divr16u::divisor#0 divr16u::dividend#2 divr16u::quotient#3 divr16u::i#2 divr16u::rem#5 ] )
|
||||
[121] (word) divr16u::dividend#1 ← (word) divr16u::dividend#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ divr16u::divisor#0 divr16u::quotient#3 divr16u::i#2 divr16u::dividend#1 divr16u::rem#5 ] ( main:2::test_16s:13::div16s:21::div16u:94::divr16u:109 [ test_16s::i#10 test_16s::dividend#0 test_16s::divisor#0 line_cursor#1 div16s::neg#4 divr16u::divisor#0 divr16u::quotient#3 divr16u::i#2 divr16u::dividend#1 divr16u::rem#5 ] main:2::test_16u:9::div16u:220::divr16u:109 [ divr8u::rem#10 line_cursor#1 test_16u::i#10 test_16u::dividend#0 test_16u::divisor#0 divr16u::divisor#0 divr16u::quotient#3 divr16u::i#2 divr16u::dividend#1 divr16u::rem#5 ] )
|
||||
[122] (word) divr16u::quotient#1 ← (word) divr16u::quotient#3 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ divr16u::divisor#0 divr16u::i#2 divr16u::dividend#1 divr16u::rem#5 divr16u::quotient#1 ] ( main:2::test_16s:13::div16s:21::div16u:94::divr16u:109 [ test_16s::i#10 test_16s::dividend#0 test_16s::divisor#0 line_cursor#1 div16s::neg#4 divr16u::divisor#0 divr16u::i#2 divr16u::dividend#1 divr16u::rem#5 divr16u::quotient#1 ] main:2::test_16u:9::div16u:220::divr16u:109 [ divr8u::rem#10 line_cursor#1 test_16u::i#10 test_16u::dividend#0 test_16u::divisor#0 divr16u::divisor#0 divr16u::i#2 divr16u::dividend#1 divr16u::rem#5 divr16u::quotient#1 ] )
|
||||
[123] if((word) divr16u::rem#5<(word) divr16u::divisor#0) goto divr16u::@3 [ divr16u::divisor#0 divr16u::i#2 divr16u::dividend#1 divr16u::rem#5 divr16u::quotient#1 ] ( main:2::test_16s:13::div16s:21::div16u:94::divr16u:109 [ test_16s::i#10 test_16s::dividend#0 test_16s::divisor#0 line_cursor#1 div16s::neg#4 divr16u::divisor#0 divr16u::i#2 divr16u::dividend#1 divr16u::rem#5 divr16u::quotient#1 ] main:2::test_16u:9::div16u:220::divr16u:109 [ divr8u::rem#10 line_cursor#1 test_16u::i#10 test_16u::dividend#0 test_16u::divisor#0 divr16u::divisor#0 divr16u::i#2 divr16u::dividend#1 divr16u::rem#5 divr16u::quotient#1 ] )
|
||||
[120] (word) divr16u::rem#5 ← phi( divr16u::@1/(word) divr16u::rem#0 divr16u::@4/(word) divr16u::rem#1 ) [ divr16u::divisor#0 divr16u::dividend#2 divr16u::quotient#3 divr16u::i#2 divr16u::rem#5 ] ( main:2::test_16s:13::div16s:21::div16u:94::divr16u:109 [ test_16s::i#10 test_16s::dividend#0 test_16s::divisor#0 line_cursor#1 div16s::neg#4 divr16u::divisor#0 divr16u::dividend#2 divr16u::quotient#3 divr16u::i#2 divr16u::rem#5 ] main:2::test_16u:9::div16u:220::divr16u:109 [ divr8u::rem#10 line_cursor#1 test_16u::i#10 test_16u::dividend#0 test_16u::divisor#0 divr16u::divisor#0 divr16u::dividend#2 divr16u::quotient#3 divr16u::i#2 divr16u::rem#5 ] )
|
||||
[121] (word) divr16u::dividend#0 ← (word) divr16u::dividend#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ divr16u::divisor#0 divr16u::quotient#3 divr16u::i#2 divr16u::dividend#0 divr16u::rem#5 ] ( main:2::test_16s:13::div16s:21::div16u:94::divr16u:109 [ test_16s::i#10 test_16s::dividend#0 test_16s::divisor#0 line_cursor#1 div16s::neg#4 divr16u::divisor#0 divr16u::quotient#3 divr16u::i#2 divr16u::dividend#0 divr16u::rem#5 ] main:2::test_16u:9::div16u:220::divr16u:109 [ divr8u::rem#10 line_cursor#1 test_16u::i#10 test_16u::dividend#0 test_16u::divisor#0 divr16u::divisor#0 divr16u::quotient#3 divr16u::i#2 divr16u::dividend#0 divr16u::rem#5 ] )
|
||||
[122] (word) divr16u::quotient#1 ← (word) divr16u::quotient#3 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ divr16u::divisor#0 divr16u::i#2 divr16u::dividend#0 divr16u::rem#5 divr16u::quotient#1 ] ( main:2::test_16s:13::div16s:21::div16u:94::divr16u:109 [ test_16s::i#10 test_16s::dividend#0 test_16s::divisor#0 line_cursor#1 div16s::neg#4 divr16u::divisor#0 divr16u::i#2 divr16u::dividend#0 divr16u::rem#5 divr16u::quotient#1 ] main:2::test_16u:9::div16u:220::divr16u:109 [ divr8u::rem#10 line_cursor#1 test_16u::i#10 test_16u::dividend#0 test_16u::divisor#0 divr16u::divisor#0 divr16u::i#2 divr16u::dividend#0 divr16u::rem#5 divr16u::quotient#1 ] )
|
||||
[123] if((word) divr16u::rem#5<(word) divr16u::divisor#0) goto divr16u::@3 [ divr16u::divisor#0 divr16u::i#2 divr16u::dividend#0 divr16u::rem#5 divr16u::quotient#1 ] ( main:2::test_16s:13::div16s:21::div16u:94::divr16u:109 [ test_16s::i#10 test_16s::dividend#0 test_16s::divisor#0 line_cursor#1 div16s::neg#4 divr16u::divisor#0 divr16u::i#2 divr16u::dividend#0 divr16u::rem#5 divr16u::quotient#1 ] main:2::test_16u:9::div16u:220::divr16u:109 [ divr8u::rem#10 line_cursor#1 test_16u::i#10 test_16u::dividend#0 test_16u::divisor#0 divr16u::divisor#0 divr16u::i#2 divr16u::dividend#0 divr16u::rem#5 divr16u::quotient#1 ] )
|
||||
to:divr16u::@5
|
||||
divr16u::@5: scope:[divr16u] from divr16u::@2
|
||||
[124] (word) divr16u::quotient#2 ← ++ (word) divr16u::quotient#1 [ divr16u::divisor#0 divr16u::i#2 divr16u::dividend#1 divr16u::rem#5 divr16u::quotient#2 ] ( main:2::test_16s:13::div16s:21::div16u:94::divr16u:109 [ test_16s::i#10 test_16s::dividend#0 test_16s::divisor#0 line_cursor#1 div16s::neg#4 divr16u::divisor#0 divr16u::i#2 divr16u::dividend#1 divr16u::rem#5 divr16u::quotient#2 ] main:2::test_16u:9::div16u:220::divr16u:109 [ divr8u::rem#10 line_cursor#1 test_16u::i#10 test_16u::dividend#0 test_16u::divisor#0 divr16u::divisor#0 divr16u::i#2 divr16u::dividend#1 divr16u::rem#5 divr16u::quotient#2 ] )
|
||||
[125] (word) divr16u::rem#3 ← (word) divr16u::rem#5 - (word) divr16u::divisor#0 [ divr16u::divisor#0 divr16u::i#2 divr16u::dividend#1 divr16u::quotient#2 divr16u::rem#3 ] ( main:2::test_16s:13::div16s:21::div16u:94::divr16u:109 [ test_16s::i#10 test_16s::dividend#0 test_16s::divisor#0 line_cursor#1 div16s::neg#4 divr16u::divisor#0 divr16u::i#2 divr16u::dividend#1 divr16u::quotient#2 divr16u::rem#3 ] main:2::test_16u:9::div16u:220::divr16u:109 [ divr8u::rem#10 line_cursor#1 test_16u::i#10 test_16u::dividend#0 test_16u::divisor#0 divr16u::divisor#0 divr16u::i#2 divr16u::dividend#1 divr16u::quotient#2 divr16u::rem#3 ] )
|
||||
[124] (word) divr16u::quotient#2 ← ++ (word) divr16u::quotient#1 [ divr16u::divisor#0 divr16u::i#2 divr16u::dividend#0 divr16u::rem#5 divr16u::quotient#2 ] ( main:2::test_16s:13::div16s:21::div16u:94::divr16u:109 [ test_16s::i#10 test_16s::dividend#0 test_16s::divisor#0 line_cursor#1 div16s::neg#4 divr16u::divisor#0 divr16u::i#2 divr16u::dividend#0 divr16u::rem#5 divr16u::quotient#2 ] main:2::test_16u:9::div16u:220::divr16u:109 [ divr8u::rem#10 line_cursor#1 test_16u::i#10 test_16u::dividend#0 test_16u::divisor#0 divr16u::divisor#0 divr16u::i#2 divr16u::dividend#0 divr16u::rem#5 divr16u::quotient#2 ] )
|
||||
[125] (word) divr16u::rem#2 ← (word) divr16u::rem#5 - (word) divr16u::divisor#0 [ divr16u::divisor#0 divr16u::i#2 divr16u::dividend#0 divr16u::quotient#2 divr16u::rem#2 ] ( main:2::test_16s:13::div16s:21::div16u:94::divr16u:109 [ test_16s::i#10 test_16s::dividend#0 test_16s::divisor#0 line_cursor#1 div16s::neg#4 divr16u::divisor#0 divr16u::i#2 divr16u::dividend#0 divr16u::quotient#2 divr16u::rem#2 ] main:2::test_16u:9::div16u:220::divr16u:109 [ divr8u::rem#10 line_cursor#1 test_16u::i#10 test_16u::dividend#0 test_16u::divisor#0 divr16u::divisor#0 divr16u::i#2 divr16u::dividend#0 divr16u::quotient#2 divr16u::rem#2 ] )
|
||||
to:divr16u::@3
|
||||
divr16u::@3: scope:[divr16u] from divr16u::@2 divr16u::@5
|
||||
[126] (word) divr16u::return#1 ← phi( divr16u::@2/(word) divr16u::quotient#1 divr16u::@5/(word) divr16u::quotient#2 ) [ divr16u::rem#10 divr16u::divisor#0 divr16u::return#1 divr16u::i#2 divr16u::dividend#1 ] ( main:2::test_16s:13::div16s:21::div16u:94::divr16u:109 [ test_16s::i#10 test_16s::dividend#0 test_16s::divisor#0 line_cursor#1 div16s::neg#4 divr16u::rem#10 divr16u::divisor#0 divr16u::return#1 divr16u::i#2 divr16u::dividend#1 ] main:2::test_16u:9::div16u:220::divr16u:109 [ divr8u::rem#10 line_cursor#1 test_16u::i#10 test_16u::dividend#0 test_16u::divisor#0 divr16u::rem#10 divr16u::divisor#0 divr16u::return#1 divr16u::i#2 divr16u::dividend#1 ] )
|
||||
[126] (word) divr16u::rem#10 ← phi( divr16u::@2/(word) divr16u::rem#5 divr16u::@5/(word) divr16u::rem#3 ) [ divr16u::rem#10 divr16u::divisor#0 divr16u::return#1 divr16u::i#2 divr16u::dividend#1 ] ( main:2::test_16s:13::div16s:21::div16u:94::divr16u:109 [ test_16s::i#10 test_16s::dividend#0 test_16s::divisor#0 line_cursor#1 div16s::neg#4 divr16u::rem#10 divr16u::divisor#0 divr16u::return#1 divr16u::i#2 divr16u::dividend#1 ] main:2::test_16u:9::div16u:220::divr16u:109 [ divr8u::rem#10 line_cursor#1 test_16u::i#10 test_16u::dividend#0 test_16u::divisor#0 divr16u::rem#10 divr16u::divisor#0 divr16u::return#1 divr16u::i#2 divr16u::dividend#1 ] )
|
||||
[127] (byte) divr16u::i#1 ← ++ (byte) divr16u::i#2 [ divr16u::rem#10 divr16u::divisor#0 divr16u::return#1 divr16u::dividend#1 divr16u::i#1 ] ( main:2::test_16s:13::div16s:21::div16u:94::divr16u:109 [ test_16s::i#10 test_16s::dividend#0 test_16s::divisor#0 line_cursor#1 div16s::neg#4 divr16u::rem#10 divr16u::divisor#0 divr16u::return#1 divr16u::dividend#1 divr16u::i#1 ] main:2::test_16u:9::div16u:220::divr16u:109 [ divr8u::rem#10 line_cursor#1 test_16u::i#10 test_16u::dividend#0 test_16u::divisor#0 divr16u::rem#10 divr16u::divisor#0 divr16u::return#1 divr16u::dividend#1 divr16u::i#1 ] )
|
||||
[128] if((byte) divr16u::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 16) goto divr16u::@1 [ divr16u::rem#10 divr16u::divisor#0 divr16u::return#1 divr16u::dividend#1 divr16u::i#1 ] ( main:2::test_16s:13::div16s:21::div16u:94::divr16u:109 [ test_16s::i#10 test_16s::dividend#0 test_16s::divisor#0 line_cursor#1 div16s::neg#4 divr16u::rem#10 divr16u::divisor#0 divr16u::return#1 divr16u::dividend#1 divr16u::i#1 ] main:2::test_16u:9::div16u:220::divr16u:109 [ divr8u::rem#10 line_cursor#1 test_16u::i#10 test_16u::dividend#0 test_16u::divisor#0 divr16u::rem#10 divr16u::divisor#0 divr16u::return#1 divr16u::dividend#1 divr16u::i#1 ] )
|
||||
[126] (word) divr16u::return#0 ← phi( divr16u::@2/(word) divr16u::quotient#1 divr16u::@5/(word) divr16u::quotient#2 ) [ divr16u::rem#10 divr16u::divisor#0 divr16u::return#0 divr16u::i#2 divr16u::dividend#0 ] ( main:2::test_16s:13::div16s:21::div16u:94::divr16u:109 [ test_16s::i#10 test_16s::dividend#0 test_16s::divisor#0 line_cursor#1 div16s::neg#4 divr16u::rem#10 divr16u::divisor#0 divr16u::return#0 divr16u::i#2 divr16u::dividend#0 ] main:2::test_16u:9::div16u:220::divr16u:109 [ divr8u::rem#10 line_cursor#1 test_16u::i#10 test_16u::dividend#0 test_16u::divisor#0 divr16u::rem#10 divr16u::divisor#0 divr16u::return#0 divr16u::i#2 divr16u::dividend#0 ] )
|
||||
[126] (word) divr16u::rem#10 ← phi( divr16u::@2/(word) divr16u::rem#5 divr16u::@5/(word) divr16u::rem#2 ) [ divr16u::rem#10 divr16u::divisor#0 divr16u::return#0 divr16u::i#2 divr16u::dividend#0 ] ( main:2::test_16s:13::div16s:21::div16u:94::divr16u:109 [ test_16s::i#10 test_16s::dividend#0 test_16s::divisor#0 line_cursor#1 div16s::neg#4 divr16u::rem#10 divr16u::divisor#0 divr16u::return#0 divr16u::i#2 divr16u::dividend#0 ] main:2::test_16u:9::div16u:220::divr16u:109 [ divr8u::rem#10 line_cursor#1 test_16u::i#10 test_16u::dividend#0 test_16u::divisor#0 divr16u::rem#10 divr16u::divisor#0 divr16u::return#0 divr16u::i#2 divr16u::dividend#0 ] )
|
||||
[127] (byte) divr16u::i#1 ← ++ (byte) divr16u::i#2 [ divr16u::rem#10 divr16u::divisor#0 divr16u::return#0 divr16u::dividend#0 divr16u::i#1 ] ( main:2::test_16s:13::div16s:21::div16u:94::divr16u:109 [ test_16s::i#10 test_16s::dividend#0 test_16s::divisor#0 line_cursor#1 div16s::neg#4 divr16u::rem#10 divr16u::divisor#0 divr16u::return#0 divr16u::dividend#0 divr16u::i#1 ] main:2::test_16u:9::div16u:220::divr16u:109 [ divr8u::rem#10 line_cursor#1 test_16u::i#10 test_16u::dividend#0 test_16u::divisor#0 divr16u::rem#10 divr16u::divisor#0 divr16u::return#0 divr16u::dividend#0 divr16u::i#1 ] )
|
||||
[128] if((byte) divr16u::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 16) goto divr16u::@1 [ divr16u::rem#10 divr16u::divisor#0 divr16u::return#0 divr16u::dividend#0 divr16u::i#1 ] ( main:2::test_16s:13::div16s:21::div16u:94::divr16u:109 [ test_16s::i#10 test_16s::dividend#0 test_16s::divisor#0 line_cursor#1 div16s::neg#4 divr16u::rem#10 divr16u::divisor#0 divr16u::return#0 divr16u::dividend#0 divr16u::i#1 ] main:2::test_16u:9::div16u:220::divr16u:109 [ divr8u::rem#10 line_cursor#1 test_16u::i#10 test_16u::dividend#0 test_16u::divisor#0 divr16u::rem#10 divr16u::divisor#0 divr16u::return#0 divr16u::dividend#0 divr16u::i#1 ] )
|
||||
to:divr16u::@return
|
||||
divr16u::@return: scope:[divr16u] from divr16u::@3
|
||||
[129] return [ divr16u::rem#10 divr16u::return#1 ] ( main:2::test_16s:13::div16s:21::div16u:94::divr16u:109 [ test_16s::i#10 test_16s::dividend#0 test_16s::divisor#0 line_cursor#1 div16s::neg#4 divr16u::rem#10 divr16u::return#1 ] main:2::test_16u:9::div16u:220::divr16u:109 [ divr8u::rem#10 line_cursor#1 test_16u::i#10 test_16u::dividend#0 test_16u::divisor#0 divr16u::rem#10 divr16u::return#1 ] )
|
||||
[129] return [ divr16u::rem#10 divr16u::return#0 ] ( main:2::test_16s:13::div16s:21::div16u:94::divr16u:109 [ test_16s::i#10 test_16s::dividend#0 test_16s::divisor#0 line_cursor#1 div16s::neg#4 divr16u::rem#10 divr16u::return#0 ] main:2::test_16u:9::div16u:220::divr16u:109 [ divr8u::rem#10 line_cursor#1 test_16u::i#10 test_16u::dividend#0 test_16u::divisor#0 divr16u::rem#10 divr16u::return#0 ] )
|
||||
to:@return
|
||||
test_8s: scope:[test_8s] from main::@3
|
||||
[130] phi() [ line_cursor#1 divr8u::rem#10 ] ( main:2::test_8s:11 [ divr16u::rem#10 line_cursor#1 divr8u::rem#10 ] )
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -1,4 +1,4 @@
|
||||
(label) @21
|
||||
(label) @22
|
||||
(label) @begin
|
||||
(label) @end
|
||||
(byte*) SCREEN
|
||||
@ -131,8 +131,8 @@
|
||||
(label) divr16u::@5
|
||||
(label) divr16u::@return
|
||||
(word) divr16u::dividend
|
||||
(word) divr16u::dividend#0 dividend zp ZP_WORD:3 1.3333333333333333
|
||||
(word) divr16u::dividend#1 dividend zp ZP_WORD:3 25.25
|
||||
(word) divr16u::dividend#0 dividend zp ZP_WORD:3 25.25
|
||||
(word) divr16u::dividend#1 dividend zp ZP_WORD:3 1.3333333333333333
|
||||
(word) divr16u::dividend#2 dividend zp ZP_WORD:3 43.57142857142858
|
||||
(word) divr16u::divisor
|
||||
(word) divr16u::divisor#0 divisor zp ZP_WORD:12 12.0
|
||||
@ -144,15 +144,15 @@
|
||||
(word) divr16u::quotient#2 quotient zp ZP_WORD:14 101.0
|
||||
(word) divr16u::quotient#3 quotient zp ZP_WORD:14 25.25
|
||||
(word) divr16u::rem
|
||||
(word) divr16u::rem#1 rem zp ZP_WORD:16 75.75
|
||||
(word) divr16u::rem#0 rem zp ZP_WORD:16 75.75
|
||||
(word) divr16u::rem#1 rem zp ZP_WORD:16 202.0
|
||||
(word) divr16u::rem#10 rem zp ZP_WORD:16 3.8023255813953494
|
||||
(word) divr16u::rem#2 rem zp ZP_WORD:16 202.0
|
||||
(word) divr16u::rem#3 rem zp ZP_WORD:16 202.0
|
||||
(word) divr16u::rem#4 rem zp ZP_WORD:16 202.0
|
||||
(word) divr16u::rem#5 rem zp ZP_WORD:16 101.0
|
||||
(word) divr16u::return
|
||||
(word) divr16u::return#0 return zp ZP_WORD:14 4.0
|
||||
(word) divr16u::return#1 return zp ZP_WORD:14 61.0
|
||||
(word) divr16u::return#0 return zp ZP_WORD:14 61.0
|
||||
(word) divr16u::return#2 return zp ZP_WORD:14 4.0
|
||||
(byte()) divr8u((byte) divr8u::dividend , (byte) divr8u::divisor , (byte) divr8u::rem)
|
||||
(byte~) divr8u::$1 reg byte a 202.0
|
||||
(label) divr8u::@1
|
||||
@ -401,7 +401,7 @@
|
||||
(const string) test_8u::str2 str2 = (string) " @"
|
||||
|
||||
zp ZP_BYTE:2 [ test_16s::i#10 test_16s::i#1 test_8s::i#10 test_8s::i#1 test_16u::i#10 test_16u::i#1 test_8u::i#10 test_8u::i#1 ]
|
||||
zp ZP_WORD:3 [ rem16s#17 rem16s#3 rem16s#32 rem16s#1 div16s::dividendu#3 div16s::dividendu#7 div16s::dividendu#8 div16u::dividend#2 div16u::dividend#0 div16u::dividend#1 div16s::dividend#0 div16s::$2 divr16u::dividend#2 divr16u::dividend#0 divr16u::dividend#1 print_cls::sc#2 print_cls::sc#1 ]
|
||||
zp ZP_WORD:3 [ rem16s#17 rem16s#3 rem16s#32 rem16s#1 div16s::dividendu#3 div16s::dividendu#7 div16s::dividendu#8 div16u::dividend#2 div16u::dividend#0 div16u::dividend#1 div16s::dividend#0 div16s::$2 divr16u::dividend#2 divr16u::dividend#1 divr16u::dividend#0 print_cls::sc#2 print_cls::sc#1 ]
|
||||
zp ZP_WORD:5 [ line_cursor#20 line_cursor#39 line_cursor#1 line_cursor#41 ]
|
||||
zp ZP_WORD:7 [ print_sword::w#6 print_sword::w#5 print_sword::w#1 print_sword::w#2 print_sword::w#3 print_sword::w#4 print_sword::w#0 print_word::w#5 print_word::w#7 print_word::w#1 print_word::w#2 print_word::w#3 print_word::w#4 test_16s::dividend#0 test_16u::dividend#0 print_str::str#13 print_str::str#15 print_str::str#0 ]
|
||||
zp ZP_BYTE:9 [ print_byte::b#7 print_byte::b#9 print_byte::b#1 print_byte::b#2 print_byte::b#3 print_byte::b#4 print_byte::b#5 print_byte::b#6 print_sbyte::b#6 print_sbyte::b#5 print_sbyte::b#1 print_sbyte::b#2 print_sbyte::b#3 print_sbyte::b#4 print_sbyte::b#0 test_8u::dividend#0 test_8s::dividend#0 ]
|
||||
@ -409,8 +409,8 @@ reg byte a [ print_char::ch#4 print_char::ch#2 print_char::ch#3 ]
|
||||
zp ZP_WORD:10 [ char_cursor#80 char_cursor#133 char_cursor#130 char_cursor#132 char_cursor#128 char_cursor#129 char_cursor#155 char_cursor#126 char_cursor#17 char_cursor#162 char_cursor#135 char_cursor#131 char_cursor#1 char_cursor#179 char_cursor#185 ]
|
||||
zp ZP_WORD:12 [ div16s::divisoru#3 div16s::divisoru#4 div16s::divisoru#5 div16u::divisor#2 div16u::divisor#0 div16u::divisor#1 div16s::divisor#0 div16s::$7 divr16u::divisor#0 test_16u::divisor#0 ]
|
||||
reg byte y [ div16s::neg#4 div16s::neg#3 div16s::neg#2 ]
|
||||
zp ZP_WORD:14 [ div16s::return#2 div16s::return#6 div16s::return#0 div16s::resultu#0 div16s::return#3 test_16s::res#0 div16u::return#2 div16u::return#0 divr16u::quotient#3 divr16u::return#1 divr16u::quotient#1 divr16u::quotient#2 divr16u::return#0 div16u::return#3 test_16u::res#0 ]
|
||||
zp ZP_WORD:16 [ divr16u::rem#4 rem16u#31 divr16u::rem#10 rem16u#35 divr16u::rem#5 divr16u::rem#1 divr16u::rem#2 divr16u::rem#3 ]
|
||||
zp ZP_WORD:14 [ div16s::return#2 div16s::return#6 div16s::return#0 div16s::resultu#0 div16s::return#3 test_16s::res#0 div16u::return#2 div16u::return#0 divr16u::quotient#3 divr16u::return#0 divr16u::quotient#1 divr16u::quotient#2 divr16u::return#2 div16u::return#3 test_16u::res#0 ]
|
||||
zp ZP_WORD:16 [ divr16u::rem#4 rem16u#31 divr16u::rem#10 rem16u#35 divr16u::rem#5 divr16u::rem#0 divr16u::rem#1 divr16u::rem#2 ]
|
||||
reg byte x [ divr16u::i#2 divr16u::i#1 ]
|
||||
reg byte x [ rem8s#18 rem8s#3 rem8s#33 rem8s#1 ]
|
||||
reg byte y [ div8s::dividendu#3 div8s::dividendu#7 div8s::dividendu#8 ]
|
||||
|
Loading…
Reference in New Issue
Block a user