1
0
mirror of https://gitlab.com/camelot/kickc.git synced 2024-12-28 01:29:44 +00:00

Improved KC mul table gen.

This commit is contained in:
jespergravgaard 2017-12-28 15:10:56 +01:00
parent d1ee716008
commit ff51d04356
5 changed files with 125 additions and 124 deletions

View File

@ -23,8 +23,8 @@ void init_mul_tables() {
byte* sqr_hi = mul_sqr_hi+1; byte* sqr_hi = mul_sqr_hi+1;
for(byte* sqr_lo = mul_sqr_lo+1; sqr_lo!=mul_sqr_lo+512; sqr_lo++) { for(byte* sqr_lo = mul_sqr_lo+1; sqr_lo!=mul_sqr_lo+512; sqr_lo++) {
if((++c&1)==0) { if((++c&1)==0) {
sqr++; // sqr++ on even numbers because 1 = 2*1/4 (from the two previous numbers) + 1/2 (half of the previous uneven number)
x_2++; // increase i/2 on even numbers x_2++; // increase i/2 on even numbers
sqr++; // sqr++ on even numbers because 1 = 2*1/4 (from the two previous numbers) + 1/2 (half of the previous uneven number)
} }
*sqr_lo = <sqr; *sqr_lo = <sqr;
*sqr_hi++ = >sqr; *sqr_hi++ = >sqr;

View File

@ -75,11 +75,12 @@ init_mul_tables_asm: {
rts rts
} }
init_mul_tables: { init_mul_tables: {
.label c = 2 .label sqr_hi = 4
.label sqr_hi = 5
.label sqr = 7 .label sqr = 7
.label sqr_lo = 3 .label sqr_lo = 2
ldx #0 .label x_2 = 6
lda #0
sta x_2
lda #<mul_sqr_hi+1 lda #<mul_sqr_hi+1
sta sqr_hi sta sqr_hi
lda #>mul_sqr_hi+1 lda #>mul_sqr_hi+1
@ -88,21 +89,21 @@ init_mul_tables: {
sta sqr_lo sta sqr_lo
lda #>mul_sqr_lo+1 lda #>mul_sqr_lo+1
sta sqr_lo+1 sta sqr_lo+1
txa lda #0
sta sqr sta sqr
sta sqr+1 sta sqr+1
sta c tax
b1: b1:
inc c inx
lda c txa
and #1 and #1
cmp #0 cmp #0
bne b2 bne b2
inc x_2
inc sqr inc sqr
bne !+ bne !+
inc sqr+1 inc sqr+1
!: !:
inx
b2: b2:
lda sqr lda sqr
ldy #0 ldy #0
@ -113,7 +114,7 @@ init_mul_tables: {
bne !+ bne !+
inc sqr_hi+1 inc sqr_hi+1
!: !:
txa lda x_2
clc clc
adc sqr adc sqr
sta sqr sta sqr

View File

@ -77,8 +77,8 @@ init_mul_tables::@1: scope:[init_mul_tables] from init_mul_tables init_mul_tabl
[30] if((byte~) init_mul_tables::$2!=(byte/signed byte/word/signed word) 0) goto init_mul_tables::@2 [ init_mul_tables::sqr#4 init_mul_tables::sqr_lo#2 init_mul_tables::sqr_hi#2 init_mul_tables::x_2#3 init_mul_tables::c#1 ] ( main:2::init_mul_tables:5 [ init_mul_tables::sqr#4 init_mul_tables::sqr_lo#2 init_mul_tables::sqr_hi#2 init_mul_tables::x_2#3 init_mul_tables::c#1 ] ) [30] if((byte~) init_mul_tables::$2!=(byte/signed byte/word/signed word) 0) goto init_mul_tables::@2 [ init_mul_tables::sqr#4 init_mul_tables::sqr_lo#2 init_mul_tables::sqr_hi#2 init_mul_tables::x_2#3 init_mul_tables::c#1 ] ( main:2::init_mul_tables:5 [ init_mul_tables::sqr#4 init_mul_tables::sqr_lo#2 init_mul_tables::sqr_hi#2 init_mul_tables::x_2#3 init_mul_tables::c#1 ] )
to:init_mul_tables::@3 to:init_mul_tables::@3
init_mul_tables::@3: scope:[init_mul_tables] from init_mul_tables::@1 init_mul_tables::@3: scope:[init_mul_tables] from init_mul_tables::@1
[31] (word) init_mul_tables::sqr#2 ← ++ (word) init_mul_tables::sqr#4 [ init_mul_tables::sqr_lo#2 init_mul_tables::sqr_hi#2 init_mul_tables::x_2#3 init_mul_tables::c#1 init_mul_tables::sqr#2 ] ( main:2::init_mul_tables:5 [ init_mul_tables::sqr_lo#2 init_mul_tables::sqr_hi#2 init_mul_tables::x_2#3 init_mul_tables::c#1 init_mul_tables::sqr#2 ] ) [31] (byte) init_mul_tables::x_2#1 ← ++ (byte) init_mul_tables::x_2#3 [ init_mul_tables::sqr#4 init_mul_tables::sqr_lo#2 init_mul_tables::sqr_hi#2 init_mul_tables::c#1 init_mul_tables::x_2#1 ] ( main:2::init_mul_tables:5 [ init_mul_tables::sqr#4 init_mul_tables::sqr_lo#2 init_mul_tables::sqr_hi#2 init_mul_tables::c#1 init_mul_tables::x_2#1 ] )
[32] (byte) init_mul_tables::x_2#1 ← ++ (byte) init_mul_tables::x_2#3 [ init_mul_tables::sqr_lo#2 init_mul_tables::sqr_hi#2 init_mul_tables::c#1 init_mul_tables::sqr#2 init_mul_tables::x_2#1 ] ( main:2::init_mul_tables:5 [ init_mul_tables::sqr_lo#2 init_mul_tables::sqr_hi#2 init_mul_tables::c#1 init_mul_tables::sqr#2 init_mul_tables::x_2#1 ] ) [32] (word) init_mul_tables::sqr#2 ← ++ (word) init_mul_tables::sqr#4 [ init_mul_tables::sqr_lo#2 init_mul_tables::sqr_hi#2 init_mul_tables::c#1 init_mul_tables::x_2#1 init_mul_tables::sqr#2 ] ( main:2::init_mul_tables:5 [ init_mul_tables::sqr_lo#2 init_mul_tables::sqr_hi#2 init_mul_tables::c#1 init_mul_tables::x_2#1 init_mul_tables::sqr#2 ] )
to:init_mul_tables::@2 to:init_mul_tables::@2
init_mul_tables::@2: scope:[init_mul_tables] from init_mul_tables::@1 init_mul_tables::@3 init_mul_tables::@2: scope:[init_mul_tables] from init_mul_tables::@1 init_mul_tables::@3
[33] (byte) init_mul_tables::x_2#2 ← phi( init_mul_tables::@1/(byte) init_mul_tables::x_2#3 init_mul_tables::@3/(byte) init_mul_tables::x_2#1 ) [ init_mul_tables::sqr_lo#2 init_mul_tables::sqr_hi#2 init_mul_tables::c#1 init_mul_tables::x_2#2 init_mul_tables::sqr#3 ] ( main:2::init_mul_tables:5 [ init_mul_tables::sqr_lo#2 init_mul_tables::sqr_hi#2 init_mul_tables::c#1 init_mul_tables::x_2#2 init_mul_tables::sqr#3 ] ) [33] (byte) init_mul_tables::x_2#2 ← phi( init_mul_tables::@1/(byte) init_mul_tables::x_2#3 init_mul_tables::@3/(byte) init_mul_tables::x_2#1 ) [ init_mul_tables::sqr_lo#2 init_mul_tables::sqr_hi#2 init_mul_tables::c#1 init_mul_tables::x_2#2 init_mul_tables::sqr#3 ] ( main:2::init_mul_tables:5 [ init_mul_tables::sqr_lo#2 init_mul_tables::sqr_hi#2 init_mul_tables::c#1 init_mul_tables::x_2#2 init_mul_tables::sqr#3 ] )

View File

@ -23,8 +23,8 @@ void init_mul_tables() {
byte* sqr_hi = mul_sqr_hi+1; byte* sqr_hi = mul_sqr_hi+1;
for(byte* sqr_lo = mul_sqr_lo+1; sqr_lo!=mul_sqr_lo+512; sqr_lo++) { for(byte* sqr_lo = mul_sqr_lo+1; sqr_lo!=mul_sqr_lo+512; sqr_lo++) {
if((++c&1)==0) { if((++c&1)==0) {
sqr++; // sqr++ on even numbers because 1 = 2*1/4 (from the two previous numbers) + 1/2 (half of the previous uneven number)
x_2++; // increase i/2 on even numbers x_2++; // increase i/2 on even numbers
sqr++; // sqr++ on even numbers because 1 = 2*1/4 (from the two previous numbers) + 1/2 (half of the previous uneven number)
} }
*sqr_lo = <sqr; *sqr_lo = <sqr;
*sqr_hi++ = >sqr; *sqr_hi++ = >sqr;
@ -83,8 +83,8 @@ void mul_tables_compare() {
} }
} }
Adding pre/post-modifier (byte) init_mul_tables::c ← ++ (byte) init_mul_tables::c Adding pre/post-modifier (byte) init_mul_tables::c ← ++ (byte) init_mul_tables::c
Adding pre/post-modifier (word) init_mul_tables::sqr ← ++ (word) init_mul_tables::sqr
Adding pre/post-modifier (byte) init_mul_tables::x_2 ← ++ (byte) init_mul_tables::x_2 Adding pre/post-modifier (byte) init_mul_tables::x_2 ← ++ (byte) init_mul_tables::x_2
Adding pre/post-modifier (word) init_mul_tables::sqr ← ++ (word) init_mul_tables::sqr
Adding pre/post-modifier (byte*) init_mul_tables::sqr_hi ← ++ (byte*) init_mul_tables::sqr_hi Adding pre/post-modifier (byte*) init_mul_tables::sqr_hi ← ++ (byte*) init_mul_tables::sqr_hi
Adding pre/post-modifier (byte*) init_mul_tables::sqr_lo ← ++ (byte*) init_mul_tables::sqr_lo Adding pre/post-modifier (byte*) init_mul_tables::sqr_lo ← ++ (byte*) init_mul_tables::sqr_lo
PROGRAM PROGRAM
@ -112,8 +112,8 @@ init_mul_tables::@1:
(boolean~) init_mul_tables::$3 ← (byte~) init_mul_tables::$2 == (byte/signed byte/word/signed word) 0 (boolean~) init_mul_tables::$3 ← (byte~) init_mul_tables::$2 == (byte/signed byte/word/signed word) 0
(boolean~) init_mul_tables::$4 ← ! (boolean~) init_mul_tables::$3 (boolean~) init_mul_tables::$4 ← ! (boolean~) init_mul_tables::$3
if((boolean~) init_mul_tables::$4) goto init_mul_tables::@2 if((boolean~) init_mul_tables::$4) goto init_mul_tables::@2
(word) init_mul_tables::sqr ← ++ (word) init_mul_tables::sqr
(byte) init_mul_tables::x_2 ← ++ (byte) init_mul_tables::x_2 (byte) init_mul_tables::x_2 ← ++ (byte) init_mul_tables::x_2
(word) init_mul_tables::sqr ← ++ (word) init_mul_tables::sqr
init_mul_tables::@2: init_mul_tables::@2:
(byte~) init_mul_tables::$5 ← < (word) init_mul_tables::sqr (byte~) init_mul_tables::$5 ← < (word) init_mul_tables::sqr
*((byte*) init_mul_tables::sqr_lo) ← (byte~) init_mul_tables::$5 *((byte*) init_mul_tables::sqr_lo) ← (byte~) init_mul_tables::$5
@ -273,8 +273,8 @@ init_mul_tables::@2: scope:[init_mul_tables] from init_mul_tables::@1 init_mul_
if((boolean~) init_mul_tables::$9) goto init_mul_tables::@1 if((boolean~) init_mul_tables::$9) goto init_mul_tables::@1
to:init_mul_tables::@4 to:init_mul_tables::@4
init_mul_tables::@3: scope:[init_mul_tables] from init_mul_tables::@1 init_mul_tables::@3: scope:[init_mul_tables] from init_mul_tables::@1
(word) init_mul_tables::sqr ← ++ (word) init_mul_tables::sqr
(byte) init_mul_tables::x_2 ← ++ (byte) init_mul_tables::x_2 (byte) init_mul_tables::x_2 ← ++ (byte) init_mul_tables::x_2
(word) init_mul_tables::sqr ← ++ (word) init_mul_tables::sqr
to:init_mul_tables::@2 to:init_mul_tables::@2
init_mul_tables::@4: scope:[init_mul_tables] from init_mul_tables::@2 init_mul_tables::@4: scope:[init_mul_tables] from init_mul_tables::@2
to:init_mul_tables::@return to:init_mul_tables::@return
@ -400,8 +400,8 @@ init_mul_tables::@2: scope:[init_mul_tables] from init_mul_tables::@1 init_mul_
if((boolean~) init_mul_tables::$9) goto init_mul_tables::@1 if((boolean~) init_mul_tables::$9) goto init_mul_tables::@1
to:init_mul_tables::@return to:init_mul_tables::@return
init_mul_tables::@3: scope:[init_mul_tables] from init_mul_tables::@1 init_mul_tables::@3: scope:[init_mul_tables] from init_mul_tables::@1
(word) init_mul_tables::sqr ← ++ (word) init_mul_tables::sqr
(byte) init_mul_tables::x_2 ← ++ (byte) init_mul_tables::x_2 (byte) init_mul_tables::x_2 ← ++ (byte) init_mul_tables::x_2
(word) init_mul_tables::sqr ← ++ (word) init_mul_tables::sqr
to:init_mul_tables::@2 to:init_mul_tables::@2
init_mul_tables::@return: scope:[init_mul_tables] from init_mul_tables::@2 init_mul_tables::@return: scope:[init_mul_tables] from init_mul_tables::@2
return return
@ -523,8 +523,8 @@ init_mul_tables::@2: scope:[init_mul_tables] from init_mul_tables::@1 init_mul_
if((boolean~) init_mul_tables::$9) goto init_mul_tables::@1 if((boolean~) init_mul_tables::$9) goto init_mul_tables::@1
to:init_mul_tables::@return to:init_mul_tables::@return
init_mul_tables::@3: scope:[init_mul_tables] from init_mul_tables::@1 init_mul_tables::@3: scope:[init_mul_tables] from init_mul_tables::@1
(word) init_mul_tables::sqr ← ++ (word) init_mul_tables::sqr
(byte) init_mul_tables::x_2 ← ++ (byte) init_mul_tables::x_2 (byte) init_mul_tables::x_2 ← ++ (byte) init_mul_tables::x_2
(word) init_mul_tables::sqr ← ++ (word) init_mul_tables::sqr
to:init_mul_tables::@2 to:init_mul_tables::@2
init_mul_tables::@return: scope:[init_mul_tables] from init_mul_tables::@2 init_mul_tables::@return: scope:[init_mul_tables] from init_mul_tables::@2
return return
@ -670,10 +670,10 @@ init_mul_tables::@3: scope:[init_mul_tables] from init_mul_tables::@1
(byte) init_mul_tables::c#4 ← phi( init_mul_tables::@1/(byte) init_mul_tables::c#1 ) (byte) init_mul_tables::c#4 ← phi( init_mul_tables::@1/(byte) init_mul_tables::c#1 )
(byte*) init_mul_tables::sqr_hi#4 ← phi( init_mul_tables::@1/(byte*) init_mul_tables::sqr_hi#3 ) (byte*) init_mul_tables::sqr_hi#4 ← phi( init_mul_tables::@1/(byte*) init_mul_tables::sqr_hi#3 )
(byte*) init_mul_tables::sqr_lo#4 ← phi( init_mul_tables::@1/(byte*) init_mul_tables::sqr_lo#3 ) (byte*) init_mul_tables::sqr_lo#4 ← phi( init_mul_tables::@1/(byte*) init_mul_tables::sqr_lo#3 )
(byte) init_mul_tables::x_2#3 ← phi( init_mul_tables::@1/(byte) init_mul_tables::x_2#4 )
(word) init_mul_tables::sqr#4 ← phi( init_mul_tables::@1/(word) init_mul_tables::sqr#5 ) (word) init_mul_tables::sqr#4 ← phi( init_mul_tables::@1/(word) init_mul_tables::sqr#5 )
(word) init_mul_tables::sqr#2 ← ++ (word) init_mul_tables::sqr#4 (byte) init_mul_tables::x_2#3 ← phi( init_mul_tables::@1/(byte) init_mul_tables::x_2#4 )
(byte) init_mul_tables::x_2#1 ← ++ (byte) init_mul_tables::x_2#3 (byte) init_mul_tables::x_2#1 ← ++ (byte) init_mul_tables::x_2#3
(word) init_mul_tables::sqr#2 ← ++ (word) init_mul_tables::sqr#4
to:init_mul_tables::@2 to:init_mul_tables::@2
init_mul_tables::@return: scope:[init_mul_tables] from init_mul_tables::@2 init_mul_tables::@return: scope:[init_mul_tables] from init_mul_tables::@2
return return
@ -833,10 +833,10 @@ init_mul_tables::@3: scope:[init_mul_tables] from init_mul_tables::@1
(byte) init_mul_tables::c#4 ← phi( init_mul_tables::@1/(byte) init_mul_tables::c#1 ) (byte) init_mul_tables::c#4 ← phi( init_mul_tables::@1/(byte) init_mul_tables::c#1 )
(byte*) init_mul_tables::sqr_hi#4 ← phi( init_mul_tables::@1/(byte*) init_mul_tables::sqr_hi#3 ) (byte*) init_mul_tables::sqr_hi#4 ← phi( init_mul_tables::@1/(byte*) init_mul_tables::sqr_hi#3 )
(byte*) init_mul_tables::sqr_lo#4 ← phi( init_mul_tables::@1/(byte*) init_mul_tables::sqr_lo#3 ) (byte*) init_mul_tables::sqr_lo#4 ← phi( init_mul_tables::@1/(byte*) init_mul_tables::sqr_lo#3 )
(byte) init_mul_tables::x_2#3 ← phi( init_mul_tables::@1/(byte) init_mul_tables::x_2#4 )
(word) init_mul_tables::sqr#4 ← phi( init_mul_tables::@1/(word) init_mul_tables::sqr#5 ) (word) init_mul_tables::sqr#4 ← phi( init_mul_tables::@1/(word) init_mul_tables::sqr#5 )
(word) init_mul_tables::sqr#2 ← ++ (word) init_mul_tables::sqr#4 (byte) init_mul_tables::x_2#3 ← phi( init_mul_tables::@1/(byte) init_mul_tables::x_2#4 )
(byte) init_mul_tables::x_2#1 ← ++ (byte) init_mul_tables::x_2#3 (byte) init_mul_tables::x_2#1 ← ++ (byte) init_mul_tables::x_2#3
(word) init_mul_tables::sqr#2 ← ++ (word) init_mul_tables::sqr#4
to:init_mul_tables::@2 to:init_mul_tables::@2
init_mul_tables::@return: scope:[init_mul_tables] from init_mul_tables::@2 init_mul_tables::@return: scope:[init_mul_tables] from init_mul_tables::@2
return return
@ -1120,10 +1120,10 @@ init_mul_tables::@3: scope:[init_mul_tables] from init_mul_tables::@1
(byte) init_mul_tables::c#4 ← phi( init_mul_tables::@1/(byte) init_mul_tables::c#1 ) (byte) init_mul_tables::c#4 ← phi( init_mul_tables::@1/(byte) init_mul_tables::c#1 )
(byte*) init_mul_tables::sqr_hi#4 ← phi( init_mul_tables::@1/(byte*) init_mul_tables::sqr_hi#3 ) (byte*) init_mul_tables::sqr_hi#4 ← phi( init_mul_tables::@1/(byte*) init_mul_tables::sqr_hi#3 )
(byte*) init_mul_tables::sqr_lo#4 ← phi( init_mul_tables::@1/(byte*) init_mul_tables::sqr_lo#3 ) (byte*) init_mul_tables::sqr_lo#4 ← phi( init_mul_tables::@1/(byte*) init_mul_tables::sqr_lo#3 )
(byte) init_mul_tables::x_2#3 ← phi( init_mul_tables::@1/(byte) init_mul_tables::x_2#4 )
(word) init_mul_tables::sqr#4 ← phi( init_mul_tables::@1/(word) init_mul_tables::sqr#5 ) (word) init_mul_tables::sqr#4 ← phi( init_mul_tables::@1/(word) init_mul_tables::sqr#5 )
(word) init_mul_tables::sqr#2 ← ++ (word) init_mul_tables::sqr#4 (byte) init_mul_tables::x_2#3 ← phi( init_mul_tables::@1/(byte) init_mul_tables::x_2#4 )
(byte) init_mul_tables::x_2#1 ← ++ (byte) init_mul_tables::x_2#3 (byte) init_mul_tables::x_2#1 ← ++ (byte) init_mul_tables::x_2#3
(word) init_mul_tables::sqr#2 ← ++ (word) init_mul_tables::sqr#4
to:init_mul_tables::@2 to:init_mul_tables::@2
init_mul_tables::@return: scope:[init_mul_tables] from init_mul_tables::@2 init_mul_tables::@return: scope:[init_mul_tables] from init_mul_tables::@2
return return
@ -1284,10 +1284,10 @@ init_mul_tables::@3: scope:[init_mul_tables] from init_mul_tables::@1
(byte) init_mul_tables::c#4 ← phi( init_mul_tables::@1/(byte) init_mul_tables::c#1 ) (byte) init_mul_tables::c#4 ← phi( init_mul_tables::@1/(byte) init_mul_tables::c#1 )
(byte*) init_mul_tables::sqr_hi#4 ← phi( init_mul_tables::@1/(byte*) init_mul_tables::sqr_hi#3 ) (byte*) init_mul_tables::sqr_hi#4 ← phi( init_mul_tables::@1/(byte*) init_mul_tables::sqr_hi#3 )
(byte*) init_mul_tables::sqr_lo#4 ← phi( init_mul_tables::@1/(byte*) init_mul_tables::sqr_lo#3 ) (byte*) init_mul_tables::sqr_lo#4 ← phi( init_mul_tables::@1/(byte*) init_mul_tables::sqr_lo#3 )
(byte) init_mul_tables::x_2#3 ← phi( init_mul_tables::@1/(byte) init_mul_tables::x_2#4 )
(word) init_mul_tables::sqr#4 ← phi( init_mul_tables::@1/(word) init_mul_tables::sqr#5 ) (word) init_mul_tables::sqr#4 ← phi( init_mul_tables::@1/(word) init_mul_tables::sqr#5 )
(word) init_mul_tables::sqr#2 ← ++ (word) init_mul_tables::sqr#4 (byte) init_mul_tables::x_2#3 ← phi( init_mul_tables::@1/(byte) init_mul_tables::x_2#4 )
(byte) init_mul_tables::x_2#1 ← ++ (byte) init_mul_tables::x_2#3 (byte) init_mul_tables::x_2#1 ← ++ (byte) init_mul_tables::x_2#3
(word) init_mul_tables::sqr#2 ← ++ (word) init_mul_tables::sqr#4
to:init_mul_tables::@2 to:init_mul_tables::@2
init_mul_tables::@return: scope:[init_mul_tables] from init_mul_tables::@2 init_mul_tables::@return: scope:[init_mul_tables] from init_mul_tables::@2
return return
@ -1379,8 +1379,8 @@ Alias (byte*) BGCOL#0 = (byte*) BGCOL#16 (byte*) BGCOL#15 (byte*) BGCOL#14
Alias (byte*) init_mul_tables::sqr_hi#0 = (byte*~) init_mul_tables::$0 Alias (byte*) init_mul_tables::sqr_hi#0 = (byte*~) init_mul_tables::$0
Alias (byte*) init_mul_tables::sqr_lo#0 = (byte*~) init_mul_tables::$1 Alias (byte*) init_mul_tables::sqr_lo#0 = (byte*~) init_mul_tables::$1
Alias (word) init_mul_tables::sqr#1 = (word~) init_mul_tables::$7 Alias (word) init_mul_tables::sqr#1 = (word~) init_mul_tables::$7
Alias (word) init_mul_tables::sqr#4 = (word) init_mul_tables::sqr#5
Alias (byte) init_mul_tables::x_2#3 = (byte) init_mul_tables::x_2#4 Alias (byte) init_mul_tables::x_2#3 = (byte) init_mul_tables::x_2#4
Alias (word) init_mul_tables::sqr#4 = (word) init_mul_tables::sqr#5
Alias (byte*) init_mul_tables::sqr_lo#3 = (byte*) init_mul_tables::sqr_lo#4 Alias (byte*) init_mul_tables::sqr_lo#3 = (byte*) init_mul_tables::sqr_lo#4
Alias (byte*) init_mul_tables::sqr_hi#3 = (byte*) init_mul_tables::sqr_hi#4 Alias (byte*) init_mul_tables::sqr_hi#3 = (byte*) init_mul_tables::sqr_hi#4
Alias (byte) init_mul_tables::c#1 = (byte) init_mul_tables::c#4 Alias (byte) init_mul_tables::c#1 = (byte) init_mul_tables::c#4
@ -1450,8 +1450,8 @@ init_mul_tables::@2: scope:[init_mul_tables] from init_mul_tables::@1 init_mul_
if((boolean~) init_mul_tables::$9) goto init_mul_tables::@1 if((boolean~) init_mul_tables::$9) goto init_mul_tables::@1
to:init_mul_tables::@return to:init_mul_tables::@return
init_mul_tables::@3: scope:[init_mul_tables] from init_mul_tables::@1 init_mul_tables::@3: scope:[init_mul_tables] from init_mul_tables::@1
(word) init_mul_tables::sqr#2 ← ++ (word) init_mul_tables::sqr#4
(byte) init_mul_tables::x_2#1 ← ++ (byte) init_mul_tables::x_2#3 (byte) init_mul_tables::x_2#1 ← ++ (byte) init_mul_tables::x_2#3
(word) init_mul_tables::sqr#2 ← ++ (word) init_mul_tables::sqr#4
to:init_mul_tables::@2 to:init_mul_tables::@2
init_mul_tables::@return: scope:[init_mul_tables] from init_mul_tables::@2 init_mul_tables::@return: scope:[init_mul_tables] from init_mul_tables::@2
return return
@ -1588,8 +1588,8 @@ init_mul_tables::@2: scope:[init_mul_tables] from init_mul_tables::@1 init_mul_
if((boolean~) init_mul_tables::$9) goto init_mul_tables::@1 if((boolean~) init_mul_tables::$9) goto init_mul_tables::@1
to:init_mul_tables::@return to:init_mul_tables::@return
init_mul_tables::@3: scope:[init_mul_tables] from init_mul_tables::@1 init_mul_tables::@3: scope:[init_mul_tables] from init_mul_tables::@1
(word) init_mul_tables::sqr#2 ← ++ (word) init_mul_tables::sqr#4
(byte) init_mul_tables::x_2#1 ← ++ (byte) init_mul_tables::x_2#3 (byte) init_mul_tables::x_2#1 ← ++ (byte) init_mul_tables::x_2#3
(word) init_mul_tables::sqr#2 ← ++ (word) init_mul_tables::sqr#4
to:init_mul_tables::@2 to:init_mul_tables::@2
init_mul_tables::@return: scope:[init_mul_tables] from init_mul_tables::@2 init_mul_tables::@return: scope:[init_mul_tables] from init_mul_tables::@2
return return
@ -1714,8 +1714,8 @@ init_mul_tables::@2: scope:[init_mul_tables] from init_mul_tables::@1 init_mul_
if((boolean~) init_mul_tables::$9) goto init_mul_tables::@1 if((boolean~) init_mul_tables::$9) goto init_mul_tables::@1
to:init_mul_tables::@return to:init_mul_tables::@return
init_mul_tables::@3: scope:[init_mul_tables] from init_mul_tables::@1 init_mul_tables::@3: scope:[init_mul_tables] from init_mul_tables::@1
(word) init_mul_tables::sqr#2 ← ++ (word) init_mul_tables::sqr#4
(byte) init_mul_tables::x_2#1 ← ++ (byte) init_mul_tables::x_2#3 (byte) init_mul_tables::x_2#1 ← ++ (byte) init_mul_tables::x_2#3
(word) init_mul_tables::sqr#2 ← ++ (word) init_mul_tables::sqr#4
to:init_mul_tables::@2 to:init_mul_tables::@2
init_mul_tables::@return: scope:[init_mul_tables] from init_mul_tables::@2 init_mul_tables::@return: scope:[init_mul_tables] from init_mul_tables::@2
return return
@ -1839,8 +1839,8 @@ init_mul_tables::@2: scope:[init_mul_tables] from init_mul_tables::@1 init_mul_
if((boolean~) init_mul_tables::$9) goto init_mul_tables::@1 if((boolean~) init_mul_tables::$9) goto init_mul_tables::@1
to:init_mul_tables::@return to:init_mul_tables::@return
init_mul_tables::@3: scope:[init_mul_tables] from init_mul_tables::@1 init_mul_tables::@3: scope:[init_mul_tables] from init_mul_tables::@1
(word) init_mul_tables::sqr#2 ← ++ (word) init_mul_tables::sqr#4
(byte) init_mul_tables::x_2#1 ← ++ (byte) init_mul_tables::x_2#3 (byte) init_mul_tables::x_2#1 ← ++ (byte) init_mul_tables::x_2#3
(word) init_mul_tables::sqr#2 ← ++ (word) init_mul_tables::sqr#4
to:init_mul_tables::@2 to:init_mul_tables::@2
init_mul_tables::@return: scope:[init_mul_tables] from init_mul_tables::@2 init_mul_tables::@return: scope:[init_mul_tables] from init_mul_tables::@2
return return
@ -1964,8 +1964,8 @@ init_mul_tables::@2: scope:[init_mul_tables] from init_mul_tables::@1 init_mul_
if((byte*) init_mul_tables::sqr_lo#1!=(byte*~) init_mul_tables::$8) goto init_mul_tables::@1 if((byte*) init_mul_tables::sqr_lo#1!=(byte*~) init_mul_tables::$8) goto init_mul_tables::@1
to:init_mul_tables::@return to:init_mul_tables::@return
init_mul_tables::@3: scope:[init_mul_tables] from init_mul_tables::@1 init_mul_tables::@3: scope:[init_mul_tables] from init_mul_tables::@1
(word) init_mul_tables::sqr#2 ← ++ (word) init_mul_tables::sqr#4
(byte) init_mul_tables::x_2#1 ← ++ (byte) init_mul_tables::x_2#3 (byte) init_mul_tables::x_2#1 ← ++ (byte) init_mul_tables::x_2#3
(word) init_mul_tables::sqr#2 ← ++ (word) init_mul_tables::sqr#4
to:init_mul_tables::@2 to:init_mul_tables::@2
init_mul_tables::@return: scope:[init_mul_tables] from init_mul_tables::@2 init_mul_tables::@return: scope:[init_mul_tables] from init_mul_tables::@2
return return
@ -2080,8 +2080,8 @@ init_mul_tables::@2: scope:[init_mul_tables] from init_mul_tables::@1 init_mul_
if((byte*) init_mul_tables::sqr_lo#1!=(byte*~) init_mul_tables::$8) goto init_mul_tables::@1 if((byte*) init_mul_tables::sqr_lo#1!=(byte*~) init_mul_tables::$8) goto init_mul_tables::@1
to:init_mul_tables::@return to:init_mul_tables::@return
init_mul_tables::@3: scope:[init_mul_tables] from init_mul_tables::@1 init_mul_tables::@3: scope:[init_mul_tables] from init_mul_tables::@1
(word) init_mul_tables::sqr#2 ← ++ (word) init_mul_tables::sqr#4
(byte) init_mul_tables::x_2#1 ← ++ (byte) init_mul_tables::x_2#3 (byte) init_mul_tables::x_2#1 ← ++ (byte) init_mul_tables::x_2#3
(word) init_mul_tables::sqr#2 ← ++ (word) init_mul_tables::sqr#4
to:init_mul_tables::@2 to:init_mul_tables::@2
init_mul_tables::@return: scope:[init_mul_tables] from init_mul_tables::@2 init_mul_tables::@return: scope:[init_mul_tables] from init_mul_tables::@2
return return
@ -2188,8 +2188,8 @@ init_mul_tables::@2: scope:[init_mul_tables] from init_mul_tables::@1 init_mul_
if((byte*) init_mul_tables::sqr_lo#1!=(const byte*) init_mul_tables::$8) goto init_mul_tables::@1 if((byte*) init_mul_tables::sqr_lo#1!=(const byte*) init_mul_tables::$8) goto init_mul_tables::@1
to:init_mul_tables::@return to:init_mul_tables::@return
init_mul_tables::@3: scope:[init_mul_tables] from init_mul_tables::@1 init_mul_tables::@3: scope:[init_mul_tables] from init_mul_tables::@1
(word) init_mul_tables::sqr#2 ← ++ (word) init_mul_tables::sqr#4
(byte) init_mul_tables::x_2#1 ← ++ (byte) init_mul_tables::x_2#3 (byte) init_mul_tables::x_2#1 ← ++ (byte) init_mul_tables::x_2#3
(word) init_mul_tables::sqr#2 ← ++ (word) init_mul_tables::sqr#4
to:init_mul_tables::@2 to:init_mul_tables::@2
init_mul_tables::@return: scope:[init_mul_tables] from init_mul_tables::@2 init_mul_tables::@return: scope:[init_mul_tables] from init_mul_tables::@2
return return
@ -2285,8 +2285,8 @@ init_mul_tables::@2: scope:[init_mul_tables] from init_mul_tables::@1 init_mul_
if((byte*) init_mul_tables::sqr_lo#1!=(const byte*) init_mul_tables::$8) goto init_mul_tables::@1 if((byte*) init_mul_tables::sqr_lo#1!=(const byte*) init_mul_tables::$8) goto init_mul_tables::@1
to:init_mul_tables::@return to:init_mul_tables::@return
init_mul_tables::@3: scope:[init_mul_tables] from init_mul_tables::@1 init_mul_tables::@3: scope:[init_mul_tables] from init_mul_tables::@1
(word) init_mul_tables::sqr#2 ← ++ (word) init_mul_tables::sqr#4
(byte) init_mul_tables::x_2#1 ← ++ (byte) init_mul_tables::x_2#3 (byte) init_mul_tables::x_2#1 ← ++ (byte) init_mul_tables::x_2#3
(word) init_mul_tables::sqr#2 ← ++ (word) init_mul_tables::sqr#4
to:init_mul_tables::@2 to:init_mul_tables::@2
init_mul_tables::@return: scope:[init_mul_tables] from init_mul_tables::@2 init_mul_tables::@return: scope:[init_mul_tables] from init_mul_tables::@2
return return
@ -2404,8 +2404,8 @@ init_mul_tables::@2: scope:[init_mul_tables] from init_mul_tables::@1 init_mul_
if((byte*) init_mul_tables::sqr_lo#1!=(const byte[512]) mul_sqr_lo#0+(word/signed word) 512) goto init_mul_tables::@1 if((byte*) init_mul_tables::sqr_lo#1!=(const byte[512]) mul_sqr_lo#0+(word/signed word) 512) goto init_mul_tables::@1
to:init_mul_tables::@return to:init_mul_tables::@return
init_mul_tables::@3: scope:[init_mul_tables] from init_mul_tables::@1 init_mul_tables::@3: scope:[init_mul_tables] from init_mul_tables::@1
(word) init_mul_tables::sqr#2 ← ++ (word) init_mul_tables::sqr#4
(byte) init_mul_tables::x_2#1 ← ++ (byte) init_mul_tables::x_2#3 (byte) init_mul_tables::x_2#1 ← ++ (byte) init_mul_tables::x_2#3
(word) init_mul_tables::sqr#2 ← ++ (word) init_mul_tables::sqr#4
to:init_mul_tables::@2 to:init_mul_tables::@2
init_mul_tables::@return: scope:[init_mul_tables] from init_mul_tables::@2 init_mul_tables::@return: scope:[init_mul_tables] from init_mul_tables::@2
return return
@ -2598,8 +2598,8 @@ init_mul_tables::@1: scope:[init_mul_tables] from init_mul_tables init_mul_tabl
if((byte~) init_mul_tables::$2!=(byte/signed byte/word/signed word) 0) goto init_mul_tables::@6 if((byte~) init_mul_tables::$2!=(byte/signed byte/word/signed word) 0) goto init_mul_tables::@6
to:init_mul_tables::@3 to:init_mul_tables::@3
init_mul_tables::@3: scope:[init_mul_tables] from init_mul_tables::@1 init_mul_tables::@3: scope:[init_mul_tables] from init_mul_tables::@1
(word) init_mul_tables::sqr#2 ← ++ (word) init_mul_tables::sqr#4
(byte) init_mul_tables::x_2#1 ← ++ (byte) init_mul_tables::x_2#3 (byte) init_mul_tables::x_2#1 ← ++ (byte) init_mul_tables::x_2#3
(word) init_mul_tables::sqr#2 ← ++ (word) init_mul_tables::sqr#4
(word~) init_mul_tables::sqr#8 ← (word) init_mul_tables::sqr#2 (word~) init_mul_tables::sqr#8 ← (word) init_mul_tables::sqr#2
(byte~) init_mul_tables::x_2#7 ← (byte) init_mul_tables::x_2#1 (byte~) init_mul_tables::x_2#7 ← (byte) init_mul_tables::x_2#1
to:init_mul_tables::@2 to:init_mul_tables::@2
@ -2738,8 +2738,8 @@ init_mul_tables::@1: scope:[init_mul_tables] from init_mul_tables init_mul_tabl
[31] if((byte~) init_mul_tables::$2!=(byte/signed byte/word/signed word) 0) goto init_mul_tables::@6 [ init_mul_tables::sqr#4 init_mul_tables::sqr_lo#2 init_mul_tables::sqr_hi#2 init_mul_tables::x_2#3 init_mul_tables::c#1 ] [31] if((byte~) init_mul_tables::$2!=(byte/signed byte/word/signed word) 0) goto init_mul_tables::@6 [ init_mul_tables::sqr#4 init_mul_tables::sqr_lo#2 init_mul_tables::sqr_hi#2 init_mul_tables::x_2#3 init_mul_tables::c#1 ]
to:init_mul_tables::@3 to:init_mul_tables::@3
init_mul_tables::@3: scope:[init_mul_tables] from init_mul_tables::@1 init_mul_tables::@3: scope:[init_mul_tables] from init_mul_tables::@1
[32] (word) init_mul_tables::sqr#2 ← ++ (word) init_mul_tables::sqr#4 [ init_mul_tables::sqr_lo#2 init_mul_tables::sqr_hi#2 init_mul_tables::x_2#3 init_mul_tables::c#1 init_mul_tables::sqr#2 ] [32] (byte) init_mul_tables::x_2#1 ← ++ (byte) init_mul_tables::x_2#3 [ init_mul_tables::sqr#4 init_mul_tables::sqr_lo#2 init_mul_tables::sqr_hi#2 init_mul_tables::c#1 init_mul_tables::x_2#1 ]
[33] (byte) init_mul_tables::x_2#1 ← ++ (byte) init_mul_tables::x_2#3 [ init_mul_tables::sqr_lo#2 init_mul_tables::sqr_hi#2 init_mul_tables::c#1 init_mul_tables::sqr#2 init_mul_tables::x_2#1 ] [33] (word) init_mul_tables::sqr#2 ← ++ (word) init_mul_tables::sqr#4 [ init_mul_tables::sqr_lo#2 init_mul_tables::sqr_hi#2 init_mul_tables::c#1 init_mul_tables::x_2#1 init_mul_tables::sqr#2 ]
[34] (word~) init_mul_tables::sqr#8 ← (word) init_mul_tables::sqr#2 [ init_mul_tables::sqr_lo#2 init_mul_tables::sqr_hi#2 init_mul_tables::c#1 init_mul_tables::x_2#1 init_mul_tables::sqr#8 ] [34] (word~) init_mul_tables::sqr#8 ← (word) init_mul_tables::sqr#2 [ init_mul_tables::sqr_lo#2 init_mul_tables::sqr_hi#2 init_mul_tables::c#1 init_mul_tables::x_2#1 init_mul_tables::sqr#8 ]
[35] (byte~) init_mul_tables::x_2#7 ← (byte) init_mul_tables::x_2#1 [ init_mul_tables::sqr_lo#2 init_mul_tables::sqr_hi#2 init_mul_tables::c#1 init_mul_tables::sqr#8 init_mul_tables::x_2#7 ] [35] (byte~) init_mul_tables::x_2#7 ← (byte) init_mul_tables::x_2#1 [ init_mul_tables::sqr_lo#2 init_mul_tables::sqr_hi#2 init_mul_tables::c#1 init_mul_tables::sqr#8 init_mul_tables::x_2#7 ]
to:init_mul_tables::@2 to:init_mul_tables::@2
@ -2884,8 +2884,8 @@ init_mul_tables::@1: scope:[init_mul_tables] from init_mul_tables init_mul_tabl
[30] if((byte~) init_mul_tables::$2!=(byte/signed byte/word/signed word) 0) goto init_mul_tables::@2 [ init_mul_tables::sqr#4 init_mul_tables::sqr_lo#2 init_mul_tables::sqr_hi#2 init_mul_tables::x_2#3 init_mul_tables::c#1 ] [30] if((byte~) init_mul_tables::$2!=(byte/signed byte/word/signed word) 0) goto init_mul_tables::@2 [ init_mul_tables::sqr#4 init_mul_tables::sqr_lo#2 init_mul_tables::sqr_hi#2 init_mul_tables::x_2#3 init_mul_tables::c#1 ]
to:init_mul_tables::@3 to:init_mul_tables::@3
init_mul_tables::@3: scope:[init_mul_tables] from init_mul_tables::@1 init_mul_tables::@3: scope:[init_mul_tables] from init_mul_tables::@1
[31] (word) init_mul_tables::sqr#2 ← ++ (word) init_mul_tables::sqr#4 [ init_mul_tables::sqr_lo#2 init_mul_tables::sqr_hi#2 init_mul_tables::x_2#3 init_mul_tables::c#1 init_mul_tables::sqr#2 ] [31] (byte) init_mul_tables::x_2#1 ← ++ (byte) init_mul_tables::x_2#3 [ init_mul_tables::sqr#4 init_mul_tables::sqr_lo#2 init_mul_tables::sqr_hi#2 init_mul_tables::c#1 init_mul_tables::x_2#1 ]
[32] (byte) init_mul_tables::x_2#1 ← ++ (byte) init_mul_tables::x_2#3 [ init_mul_tables::sqr_lo#2 init_mul_tables::sqr_hi#2 init_mul_tables::c#1 init_mul_tables::sqr#2 init_mul_tables::x_2#1 ] [32] (word) init_mul_tables::sqr#2 ← ++ (word) init_mul_tables::sqr#4 [ init_mul_tables::sqr_lo#2 init_mul_tables::sqr_hi#2 init_mul_tables::c#1 init_mul_tables::x_2#1 init_mul_tables::sqr#2 ]
to:init_mul_tables::@2 to:init_mul_tables::@2
init_mul_tables::@2: scope:[init_mul_tables] from init_mul_tables::@1 init_mul_tables::@3 init_mul_tables::@2: scope:[init_mul_tables] from init_mul_tables::@1 init_mul_tables::@3
[33] (byte) init_mul_tables::x_2#2 ← phi( init_mul_tables::@1/(byte) init_mul_tables::x_2#3 init_mul_tables::@3/(byte) init_mul_tables::x_2#1 ) [ init_mul_tables::sqr_lo#2 init_mul_tables::sqr_hi#2 init_mul_tables::c#1 init_mul_tables::x_2#2 init_mul_tables::sqr#3 ] [33] (byte) init_mul_tables::x_2#2 ← phi( init_mul_tables::@1/(byte) init_mul_tables::x_2#3 init_mul_tables::@3/(byte) init_mul_tables::x_2#1 ) [ init_mul_tables::sqr_lo#2 init_mul_tables::sqr_hi#2 init_mul_tables::c#1 init_mul_tables::x_2#2 init_mul_tables::sqr#3 ]
@ -2983,8 +2983,8 @@ init_mul_tables::@1: scope:[init_mul_tables] from init_mul_tables init_mul_tabl
[30] if((byte~) init_mul_tables::$2!=(byte/signed byte/word/signed word) 0) goto init_mul_tables::@2 [ init_mul_tables::sqr#4 init_mul_tables::sqr_lo#2 init_mul_tables::sqr_hi#2 init_mul_tables::x_2#3 init_mul_tables::c#1 ] ( main:2::init_mul_tables:5 [ init_mul_tables::sqr#4 init_mul_tables::sqr_lo#2 init_mul_tables::sqr_hi#2 init_mul_tables::x_2#3 init_mul_tables::c#1 ] ) [30] if((byte~) init_mul_tables::$2!=(byte/signed byte/word/signed word) 0) goto init_mul_tables::@2 [ init_mul_tables::sqr#4 init_mul_tables::sqr_lo#2 init_mul_tables::sqr_hi#2 init_mul_tables::x_2#3 init_mul_tables::c#1 ] ( main:2::init_mul_tables:5 [ init_mul_tables::sqr#4 init_mul_tables::sqr_lo#2 init_mul_tables::sqr_hi#2 init_mul_tables::x_2#3 init_mul_tables::c#1 ] )
to:init_mul_tables::@3 to:init_mul_tables::@3
init_mul_tables::@3: scope:[init_mul_tables] from init_mul_tables::@1 init_mul_tables::@3: scope:[init_mul_tables] from init_mul_tables::@1
[31] (word) init_mul_tables::sqr#2 ← ++ (word) init_mul_tables::sqr#4 [ init_mul_tables::sqr_lo#2 init_mul_tables::sqr_hi#2 init_mul_tables::x_2#3 init_mul_tables::c#1 init_mul_tables::sqr#2 ] ( main:2::init_mul_tables:5 [ init_mul_tables::sqr_lo#2 init_mul_tables::sqr_hi#2 init_mul_tables::x_2#3 init_mul_tables::c#1 init_mul_tables::sqr#2 ] ) [31] (byte) init_mul_tables::x_2#1 ← ++ (byte) init_mul_tables::x_2#3 [ init_mul_tables::sqr#4 init_mul_tables::sqr_lo#2 init_mul_tables::sqr_hi#2 init_mul_tables::c#1 init_mul_tables::x_2#1 ] ( main:2::init_mul_tables:5 [ init_mul_tables::sqr#4 init_mul_tables::sqr_lo#2 init_mul_tables::sqr_hi#2 init_mul_tables::c#1 init_mul_tables::x_2#1 ] )
[32] (byte) init_mul_tables::x_2#1 ← ++ (byte) init_mul_tables::x_2#3 [ init_mul_tables::sqr_lo#2 init_mul_tables::sqr_hi#2 init_mul_tables::c#1 init_mul_tables::sqr#2 init_mul_tables::x_2#1 ] ( main:2::init_mul_tables:5 [ init_mul_tables::sqr_lo#2 init_mul_tables::sqr_hi#2 init_mul_tables::c#1 init_mul_tables::sqr#2 init_mul_tables::x_2#1 ] ) [32] (word) init_mul_tables::sqr#2 ← ++ (word) init_mul_tables::sqr#4 [ init_mul_tables::sqr_lo#2 init_mul_tables::sqr_hi#2 init_mul_tables::c#1 init_mul_tables::x_2#1 init_mul_tables::sqr#2 ] ( main:2::init_mul_tables:5 [ init_mul_tables::sqr_lo#2 init_mul_tables::sqr_hi#2 init_mul_tables::c#1 init_mul_tables::x_2#1 init_mul_tables::sqr#2 ] )
to:init_mul_tables::@2 to:init_mul_tables::@2
init_mul_tables::@2: scope:[init_mul_tables] from init_mul_tables::@1 init_mul_tables::@3 init_mul_tables::@2: scope:[init_mul_tables] from init_mul_tables::@1 init_mul_tables::@3
[33] (byte) init_mul_tables::x_2#2 ← phi( init_mul_tables::@1/(byte) init_mul_tables::x_2#3 init_mul_tables::@3/(byte) init_mul_tables::x_2#1 ) [ init_mul_tables::sqr_lo#2 init_mul_tables::sqr_hi#2 init_mul_tables::c#1 init_mul_tables::x_2#2 init_mul_tables::sqr#3 ] ( main:2::init_mul_tables:5 [ init_mul_tables::sqr_lo#2 init_mul_tables::sqr_hi#2 init_mul_tables::c#1 init_mul_tables::x_2#2 init_mul_tables::sqr#3 ] ) [33] (byte) init_mul_tables::x_2#2 ← phi( init_mul_tables::@1/(byte) init_mul_tables::x_2#3 init_mul_tables::@3/(byte) init_mul_tables::x_2#1 ) [ init_mul_tables::sqr_lo#2 init_mul_tables::sqr_hi#2 init_mul_tables::c#1 init_mul_tables::x_2#2 init_mul_tables::sqr#3 ] ( main:2::init_mul_tables:5 [ init_mul_tables::sqr_lo#2 init_mul_tables::sqr_hi#2 init_mul_tables::c#1 init_mul_tables::x_2#2 init_mul_tables::sqr#3 ] )
@ -3062,9 +3062,9 @@ VARIABLE REGISTER WEIGHTS
(byte) init_mul_tables::c#2 22.0 (byte) init_mul_tables::c#2 22.0
(word) init_mul_tables::sqr (word) init_mul_tables::sqr
(word) init_mul_tables::sqr#1 7.333333333333333 (word) init_mul_tables::sqr#1 7.333333333333333
(word) init_mul_tables::sqr#2 11.0 (word) init_mul_tables::sqr#2 22.0
(word) init_mul_tables::sqr#3 9.166666666666666 (word) init_mul_tables::sqr#3 9.166666666666666
(word) init_mul_tables::sqr#4 8.25 (word) init_mul_tables::sqr#4 6.6000000000000005
(byte*) init_mul_tables::sqr_hi (byte*) init_mul_tables::sqr_hi
(byte*) init_mul_tables::sqr_hi#1 5.5 (byte*) init_mul_tables::sqr_hi#1 5.5
(byte*) init_mul_tables::sqr_hi#2 3.0 (byte*) init_mul_tables::sqr_hi#2 3.0
@ -3072,9 +3072,9 @@ VARIABLE REGISTER WEIGHTS
(byte*) init_mul_tables::sqr_lo#1 16.5 (byte*) init_mul_tables::sqr_lo#1 16.5
(byte*) init_mul_tables::sqr_lo#2 2.5384615384615383 (byte*) init_mul_tables::sqr_lo#2 2.5384615384615383
(byte) init_mul_tables::x_2 (byte) init_mul_tables::x_2
(byte) init_mul_tables::x_2#1 22.0 (byte) init_mul_tables::x_2#1 11.0
(byte) init_mul_tables::x_2#2 4.888888888888889 (byte) init_mul_tables::x_2#2 4.888888888888889
(byte) init_mul_tables::x_2#3 6.6000000000000005 (byte) init_mul_tables::x_2#3 8.25
(void()) init_mul_tables_asm() (void()) init_mul_tables_asm()
(void()) main() (void()) main()
(byte[512]) mul_sqr_hi (byte[512]) mul_sqr_hi
@ -3340,13 +3340,13 @@ init_mul_tables: {
jmp b3 jmp b3
//SEG68 init_mul_tables::@3 //SEG68 init_mul_tables::@3
b3: b3:
//SEG69 [31] (word) init_mul_tables::sqr#2 ← ++ (word) init_mul_tables::sqr#4 [ init_mul_tables::sqr_lo#2 init_mul_tables::sqr_hi#2 init_mul_tables::x_2#3 init_mul_tables::c#1 init_mul_tables::sqr#2 ] ( main:2::init_mul_tables:5 [ init_mul_tables::sqr_lo#2 init_mul_tables::sqr_hi#2 init_mul_tables::x_2#3 init_mul_tables::c#1 init_mul_tables::sqr#2 ] ) -- vwuz1=_inc_vwuz1 //SEG69 [31] (byte) init_mul_tables::x_2#1 ← ++ (byte) init_mul_tables::x_2#3 [ init_mul_tables::sqr#4 init_mul_tables::sqr_lo#2 init_mul_tables::sqr_hi#2 init_mul_tables::c#1 init_mul_tables::x_2#1 ] ( main:2::init_mul_tables:5 [ init_mul_tables::sqr#4 init_mul_tables::sqr_lo#2 init_mul_tables::sqr_hi#2 init_mul_tables::c#1 init_mul_tables::x_2#1 ] ) -- vbuz1=_inc_vbuz1
inc x_2
//SEG70 [32] (word) init_mul_tables::sqr#2 ← ++ (word) init_mul_tables::sqr#4 [ init_mul_tables::sqr_lo#2 init_mul_tables::sqr_hi#2 init_mul_tables::c#1 init_mul_tables::x_2#1 init_mul_tables::sqr#2 ] ( main:2::init_mul_tables:5 [ init_mul_tables::sqr_lo#2 init_mul_tables::sqr_hi#2 init_mul_tables::c#1 init_mul_tables::x_2#1 init_mul_tables::sqr#2 ] ) -- vwuz1=_inc_vwuz1
inc sqr inc sqr
bne !+ bne !+
inc sqr+1 inc sqr+1
!: !:
//SEG70 [32] (byte) init_mul_tables::x_2#1 ← ++ (byte) init_mul_tables::x_2#3 [ init_mul_tables::sqr_lo#2 init_mul_tables::sqr_hi#2 init_mul_tables::c#1 init_mul_tables::sqr#2 init_mul_tables::x_2#1 ] ( main:2::init_mul_tables:5 [ init_mul_tables::sqr_lo#2 init_mul_tables::sqr_hi#2 init_mul_tables::c#1 init_mul_tables::sqr#2 init_mul_tables::x_2#1 ] ) -- vbuz1=_inc_vbuz1
inc x_2
//SEG71 [33] phi from init_mul_tables::@1 init_mul_tables::@3 to init_mul_tables::@2 [phi:init_mul_tables::@1/init_mul_tables::@3->init_mul_tables::@2] //SEG71 [33] phi from init_mul_tables::@1 init_mul_tables::@3 to init_mul_tables::@2 [phi:init_mul_tables::@1/init_mul_tables::@3->init_mul_tables::@2]
b2_from_b1: b2_from_b1:
b2_from_b3: b2_from_b3:
@ -3452,22 +3452,22 @@ Potential registers zp ZP_BYTE:12 [ init_mul_tables::$5 ] : zp ZP_BYTE:12 , reg
Potential registers zp ZP_BYTE:13 [ init_mul_tables::$6 ] : zp ZP_BYTE:13 , reg byte a , reg byte x , reg byte y , Potential registers zp ZP_BYTE:13 [ init_mul_tables::$6 ] : zp ZP_BYTE:13 , reg byte a , reg byte x , reg byte y ,
REGISTER UPLIFT SCOPES REGISTER UPLIFT SCOPES
Uplift Scope [init_mul_tables] 35.75: zp ZP_WORD:9 [ init_mul_tables::sqr#3 init_mul_tables::sqr#4 init_mul_tables::sqr#1 init_mul_tables::sqr#2 ] 33.49: zp ZP_BYTE:8 [ init_mul_tables::x_2#3 init_mul_tables::x_2#2 init_mul_tables::x_2#1 ] 24.36: zp ZP_BYTE:3 [ init_mul_tables::c#2 init_mul_tables::c#1 ] 22: zp ZP_BYTE:11 [ init_mul_tables::$2 ] 22: zp ZP_BYTE:12 [ init_mul_tables::$5 ] 22: zp ZP_BYTE:13 [ init_mul_tables::$6 ] 19.04: zp ZP_WORD:4 [ init_mul_tables::sqr_lo#2 init_mul_tables::sqr_lo#1 ] 8.5: zp ZP_WORD:6 [ init_mul_tables::sqr_hi#2 init_mul_tables::sqr_hi#1 ] Uplift Scope [init_mul_tables] 45.1: zp ZP_WORD:9 [ init_mul_tables::sqr#3 init_mul_tables::sqr#4 init_mul_tables::sqr#1 init_mul_tables::sqr#2 ] 24.36: zp ZP_BYTE:3 [ init_mul_tables::c#2 init_mul_tables::c#1 ] 24.14: zp ZP_BYTE:8 [ init_mul_tables::x_2#3 init_mul_tables::x_2#2 init_mul_tables::x_2#1 ] 22: zp ZP_BYTE:11 [ init_mul_tables::$2 ] 22: zp ZP_BYTE:12 [ init_mul_tables::$5 ] 22: zp ZP_BYTE:13 [ init_mul_tables::$6 ] 19.04: zp ZP_WORD:4 [ init_mul_tables::sqr_lo#2 init_mul_tables::sqr_lo#1 ] 8.5: zp ZP_WORD:6 [ init_mul_tables::sqr_hi#2 init_mul_tables::sqr_hi#1 ]
Uplift Scope [mul_tables_compare] 28.72: zp ZP_BYTE:2 [ mul_tables_compare::i#10 mul_tables_compare::i#1 ] Uplift Scope [mul_tables_compare] 28.72: zp ZP_BYTE:2 [ mul_tables_compare::i#10 mul_tables_compare::i#1 ]
Uplift Scope [main] Uplift Scope [main]
Uplift Scope [init_mul_tables_asm] Uplift Scope [init_mul_tables_asm]
Uplift Scope [] Uplift Scope []
Uplifting [init_mul_tables] best 3127 combination zp ZP_WORD:9 [ init_mul_tables::sqr#3 init_mul_tables::sqr#4 init_mul_tables::sqr#1 init_mul_tables::sqr#2 ] reg byte x [ init_mul_tables::x_2#3 init_mul_tables::x_2#2 init_mul_tables::x_2#1 ] zp ZP_BYTE:3 [ init_mul_tables::c#2 init_mul_tables::c#1 ] reg byte a [ init_mul_tables::$2 ] reg byte a [ init_mul_tables::$5 ] reg byte a [ init_mul_tables::$6 ] zp ZP_WORD:4 [ init_mul_tables::sqr_lo#2 init_mul_tables::sqr_lo#1 ] zp ZP_WORD:6 [ init_mul_tables::sqr_hi#2 init_mul_tables::sqr_hi#1 ] Uplifting [init_mul_tables] best 3127 combination zp ZP_WORD:9 [ init_mul_tables::sqr#3 init_mul_tables::sqr#4 init_mul_tables::sqr#1 init_mul_tables::sqr#2 ] reg byte x [ init_mul_tables::c#2 init_mul_tables::c#1 ] zp ZP_BYTE:8 [ init_mul_tables::x_2#3 init_mul_tables::x_2#2 init_mul_tables::x_2#1 ] reg byte a [ init_mul_tables::$2 ] reg byte a [ init_mul_tables::$5 ] reg byte a [ init_mul_tables::$6 ] zp ZP_WORD:4 [ init_mul_tables::sqr_lo#2 init_mul_tables::sqr_lo#1 ] zp ZP_WORD:6 [ init_mul_tables::sqr_hi#2 init_mul_tables::sqr_hi#1 ]
Uplifting [mul_tables_compare] best 2937 combination reg byte x [ mul_tables_compare::i#10 mul_tables_compare::i#1 ] Uplifting [mul_tables_compare] best 2937 combination reg byte x [ mul_tables_compare::i#10 mul_tables_compare::i#1 ]
Uplifting [main] best 2937 combination Uplifting [main] best 2937 combination
Uplifting [init_mul_tables_asm] best 2937 combination Uplifting [init_mul_tables_asm] best 2937 combination
Uplifting [] best 2937 combination Uplifting [] best 2937 combination
Attempting to uplift remaining variables inzp ZP_BYTE:3 [ init_mul_tables::c#2 init_mul_tables::c#1 ] Attempting to uplift remaining variables inzp ZP_BYTE:8 [ init_mul_tables::x_2#3 init_mul_tables::x_2#2 init_mul_tables::x_2#1 ]
Uplifting [init_mul_tables] best 2937 combination zp ZP_BYTE:3 [ init_mul_tables::c#2 init_mul_tables::c#1 ] Uplifting [init_mul_tables] best 2937 combination zp ZP_BYTE:8 [ init_mul_tables::x_2#3 init_mul_tables::x_2#2 init_mul_tables::x_2#1 ]
Allocated (was zp ZP_BYTE:3) zp ZP_BYTE:2 [ init_mul_tables::c#2 init_mul_tables::c#1 ] Allocated (was zp ZP_WORD:4) zp ZP_WORD:2 [ init_mul_tables::sqr_lo#2 init_mul_tables::sqr_lo#1 ]
Allocated (was zp ZP_WORD:4) zp ZP_WORD:3 [ init_mul_tables::sqr_lo#2 init_mul_tables::sqr_lo#1 ] Allocated (was zp ZP_WORD:6) zp ZP_WORD:4 [ init_mul_tables::sqr_hi#2 init_mul_tables::sqr_hi#1 ]
Allocated (was zp ZP_WORD:6) zp ZP_WORD:5 [ init_mul_tables::sqr_hi#2 init_mul_tables::sqr_hi#1 ] Allocated (was zp ZP_BYTE:8) zp ZP_BYTE:6 [ init_mul_tables::x_2#3 init_mul_tables::x_2#2 init_mul_tables::x_2#1 ]
Allocated (was zp ZP_WORD:9) zp ZP_WORD:7 [ init_mul_tables::sqr#3 init_mul_tables::sqr#4 init_mul_tables::sqr#1 init_mul_tables::sqr#2 ] Allocated (was zp ZP_WORD:9) zp ZP_WORD:7 [ init_mul_tables::sqr#3 init_mul_tables::sqr#4 init_mul_tables::sqr#1 init_mul_tables::sqr#2 ]
ASSEMBLER BEFORE OPTIMIZATION ASSEMBLER BEFORE OPTIMIZATION
@ -3637,14 +3637,15 @@ init_mul_tables_asm: {
} }
//SEG51 init_mul_tables //SEG51 init_mul_tables
init_mul_tables: { init_mul_tables: {
.label c = 2 .label sqr_hi = 4
.label sqr_hi = 5
.label sqr = 7 .label sqr = 7
.label sqr_lo = 3 .label sqr_lo = 2
.label x_2 = 6
//SEG52 [27] phi from init_mul_tables to init_mul_tables::@1 [phi:init_mul_tables->init_mul_tables::@1] //SEG52 [27] phi from init_mul_tables to init_mul_tables::@1 [phi:init_mul_tables->init_mul_tables::@1]
b1_from_init_mul_tables: b1_from_init_mul_tables:
//SEG53 [27] phi (byte) init_mul_tables::x_2#3 = (byte/signed byte/word/signed word) 0 [phi:init_mul_tables->init_mul_tables::@1#0] -- vbuxx=vbuc1 //SEG53 [27] phi (byte) init_mul_tables::x_2#3 = (byte/signed byte/word/signed word) 0 [phi:init_mul_tables->init_mul_tables::@1#0] -- vbuz1=vbuc1
ldx #0 lda #0
sta x_2
//SEG54 [27] phi (byte*) init_mul_tables::sqr_hi#2 = (const byte[512]) mul_sqr_hi#0+(byte/signed byte/word/signed word) 1 [phi:init_mul_tables->init_mul_tables::@1#1] -- pbuz1=pbuc1 //SEG54 [27] phi (byte*) init_mul_tables::sqr_hi#2 = (const byte[512]) mul_sqr_hi#0+(byte/signed byte/word/signed word) 1 [phi:init_mul_tables->init_mul_tables::@1#1] -- pbuz1=pbuc1
lda #<mul_sqr_hi+1 lda #<mul_sqr_hi+1
sta sqr_hi sta sqr_hi
@ -3660,9 +3661,8 @@ init_mul_tables: {
sta sqr sta sqr
lda #0 lda #0
sta sqr+1 sta sqr+1
//SEG57 [27] phi (byte) init_mul_tables::c#2 = (byte/signed byte/word/signed word) 0 [phi:init_mul_tables->init_mul_tables::@1#4] -- vbuz1=vbuc1 //SEG57 [27] phi (byte) init_mul_tables::c#2 = (byte/signed byte/word/signed word) 0 [phi:init_mul_tables->init_mul_tables::@1#4] -- vbuxx=vbuc1
lda #0 ldx #0
sta c
jmp b1 jmp b1
//SEG58 [27] phi from init_mul_tables::@2 to init_mul_tables::@1 [phi:init_mul_tables::@2->init_mul_tables::@1] //SEG58 [27] phi from init_mul_tables::@2 to init_mul_tables::@1 [phi:init_mul_tables::@2->init_mul_tables::@1]
b1_from_b2: b1_from_b2:
@ -3674,10 +3674,10 @@ init_mul_tables: {
jmp b1 jmp b1
//SEG64 init_mul_tables::@1 //SEG64 init_mul_tables::@1
b1: b1:
//SEG65 [28] (byte) init_mul_tables::c#1 ← ++ (byte) init_mul_tables::c#2 [ init_mul_tables::sqr#4 init_mul_tables::sqr_lo#2 init_mul_tables::sqr_hi#2 init_mul_tables::x_2#3 init_mul_tables::c#1 ] ( main:2::init_mul_tables:5 [ init_mul_tables::sqr#4 init_mul_tables::sqr_lo#2 init_mul_tables::sqr_hi#2 init_mul_tables::x_2#3 init_mul_tables::c#1 ] ) -- vbuz1=_inc_vbuz1 //SEG65 [28] (byte) init_mul_tables::c#1 ← ++ (byte) init_mul_tables::c#2 [ init_mul_tables::sqr#4 init_mul_tables::sqr_lo#2 init_mul_tables::sqr_hi#2 init_mul_tables::x_2#3 init_mul_tables::c#1 ] ( main:2::init_mul_tables:5 [ init_mul_tables::sqr#4 init_mul_tables::sqr_lo#2 init_mul_tables::sqr_hi#2 init_mul_tables::x_2#3 init_mul_tables::c#1 ] ) -- vbuxx=_inc_vbuxx
inc c inx
//SEG66 [29] (byte~) init_mul_tables::$2 ← (byte) init_mul_tables::c#1 & (byte/signed byte/word/signed word) 1 [ init_mul_tables::sqr#4 init_mul_tables::sqr_lo#2 init_mul_tables::sqr_hi#2 init_mul_tables::x_2#3 init_mul_tables::c#1 init_mul_tables::$2 ] ( main:2::init_mul_tables:5 [ init_mul_tables::sqr#4 init_mul_tables::sqr_lo#2 init_mul_tables::sqr_hi#2 init_mul_tables::x_2#3 init_mul_tables::c#1 init_mul_tables::$2 ] ) -- vbuaa=vbuz1_band_vbuc1 //SEG66 [29] (byte~) init_mul_tables::$2 ← (byte) init_mul_tables::c#1 & (byte/signed byte/word/signed word) 1 [ init_mul_tables::sqr#4 init_mul_tables::sqr_lo#2 init_mul_tables::sqr_hi#2 init_mul_tables::x_2#3 init_mul_tables::c#1 init_mul_tables::$2 ] ( main:2::init_mul_tables:5 [ init_mul_tables::sqr#4 init_mul_tables::sqr_lo#2 init_mul_tables::sqr_hi#2 init_mul_tables::x_2#3 init_mul_tables::c#1 init_mul_tables::$2 ] ) -- vbuaa=vbuxx_band_vbuc1
lda c txa
and #1 and #1
//SEG67 [30] if((byte~) init_mul_tables::$2!=(byte/signed byte/word/signed word) 0) goto init_mul_tables::@2 [ init_mul_tables::sqr#4 init_mul_tables::sqr_lo#2 init_mul_tables::sqr_hi#2 init_mul_tables::x_2#3 init_mul_tables::c#1 ] ( main:2::init_mul_tables:5 [ init_mul_tables::sqr#4 init_mul_tables::sqr_lo#2 init_mul_tables::sqr_hi#2 init_mul_tables::x_2#3 init_mul_tables::c#1 ] ) -- vbuaa_neq_0_then_la1 //SEG67 [30] if((byte~) init_mul_tables::$2!=(byte/signed byte/word/signed word) 0) goto init_mul_tables::@2 [ init_mul_tables::sqr#4 init_mul_tables::sqr_lo#2 init_mul_tables::sqr_hi#2 init_mul_tables::x_2#3 init_mul_tables::c#1 ] ( main:2::init_mul_tables:5 [ init_mul_tables::sqr#4 init_mul_tables::sqr_lo#2 init_mul_tables::sqr_hi#2 init_mul_tables::x_2#3 init_mul_tables::c#1 ] ) -- vbuaa_neq_0_then_la1
cmp #0 cmp #0
@ -3685,13 +3685,13 @@ init_mul_tables: {
jmp b3 jmp b3
//SEG68 init_mul_tables::@3 //SEG68 init_mul_tables::@3
b3: b3:
//SEG69 [31] (word) init_mul_tables::sqr#2 ← ++ (word) init_mul_tables::sqr#4 [ init_mul_tables::sqr_lo#2 init_mul_tables::sqr_hi#2 init_mul_tables::x_2#3 init_mul_tables::c#1 init_mul_tables::sqr#2 ] ( main:2::init_mul_tables:5 [ init_mul_tables::sqr_lo#2 init_mul_tables::sqr_hi#2 init_mul_tables::x_2#3 init_mul_tables::c#1 init_mul_tables::sqr#2 ] ) -- vwuz1=_inc_vwuz1 //SEG69 [31] (byte) init_mul_tables::x_2#1 ← ++ (byte) init_mul_tables::x_2#3 [ init_mul_tables::sqr#4 init_mul_tables::sqr_lo#2 init_mul_tables::sqr_hi#2 init_mul_tables::c#1 init_mul_tables::x_2#1 ] ( main:2::init_mul_tables:5 [ init_mul_tables::sqr#4 init_mul_tables::sqr_lo#2 init_mul_tables::sqr_hi#2 init_mul_tables::c#1 init_mul_tables::x_2#1 ] ) -- vbuz1=_inc_vbuz1
inc x_2
//SEG70 [32] (word) init_mul_tables::sqr#2 ← ++ (word) init_mul_tables::sqr#4 [ init_mul_tables::sqr_lo#2 init_mul_tables::sqr_hi#2 init_mul_tables::c#1 init_mul_tables::x_2#1 init_mul_tables::sqr#2 ] ( main:2::init_mul_tables:5 [ init_mul_tables::sqr_lo#2 init_mul_tables::sqr_hi#2 init_mul_tables::c#1 init_mul_tables::x_2#1 init_mul_tables::sqr#2 ] ) -- vwuz1=_inc_vwuz1
inc sqr inc sqr
bne !+ bne !+
inc sqr+1 inc sqr+1
!: !:
//SEG70 [32] (byte) init_mul_tables::x_2#1 ← ++ (byte) init_mul_tables::x_2#3 [ init_mul_tables::sqr_lo#2 init_mul_tables::sqr_hi#2 init_mul_tables::c#1 init_mul_tables::sqr#2 init_mul_tables::x_2#1 ] ( main:2::init_mul_tables:5 [ init_mul_tables::sqr_lo#2 init_mul_tables::sqr_hi#2 init_mul_tables::c#1 init_mul_tables::sqr#2 init_mul_tables::x_2#1 ] ) -- vbuxx=_inc_vbuxx
inx
//SEG71 [33] phi from init_mul_tables::@1 init_mul_tables::@3 to init_mul_tables::@2 [phi:init_mul_tables::@1/init_mul_tables::@3->init_mul_tables::@2] //SEG71 [33] phi from init_mul_tables::@1 init_mul_tables::@3 to init_mul_tables::@2 [phi:init_mul_tables::@1/init_mul_tables::@3->init_mul_tables::@2]
b2_from_b1: b2_from_b1:
b2_from_b3: b2_from_b3:
@ -3715,8 +3715,8 @@ init_mul_tables: {
bne !+ bne !+
inc sqr_hi+1 inc sqr_hi+1
!: !:
//SEG80 [39] (word) init_mul_tables::sqr#1 ← (word) init_mul_tables::sqr#3 + (byte) init_mul_tables::x_2#2 [ init_mul_tables::sqr_lo#2 init_mul_tables::c#1 init_mul_tables::sqr#1 init_mul_tables::sqr_hi#1 init_mul_tables::x_2#2 ] ( main:2::init_mul_tables:5 [ init_mul_tables::sqr_lo#2 init_mul_tables::c#1 init_mul_tables::sqr#1 init_mul_tables::sqr_hi#1 init_mul_tables::x_2#2 ] ) -- vwuz1=vwuz1_plus_vbuxx //SEG80 [39] (word) init_mul_tables::sqr#1 ← (word) init_mul_tables::sqr#3 + (byte) init_mul_tables::x_2#2 [ init_mul_tables::sqr_lo#2 init_mul_tables::c#1 init_mul_tables::sqr#1 init_mul_tables::sqr_hi#1 init_mul_tables::x_2#2 ] ( main:2::init_mul_tables:5 [ init_mul_tables::sqr_lo#2 init_mul_tables::c#1 init_mul_tables::sqr#1 init_mul_tables::sqr_hi#1 init_mul_tables::x_2#2 ] ) -- vwuz1=vwuz1_plus_vbuz2
txa lda x_2
clc clc
adc sqr adc sqr
sta sqr sta sqr
@ -3764,9 +3764,8 @@ Removing instruction jmp b3
Removing instruction jmp b2 Removing instruction jmp b2
Removing instruction jmp breturn Removing instruction jmp breturn
Succesful ASM optimization Pass5NextJumpElimination Succesful ASM optimization Pass5NextJumpElimination
Replacing instruction lda #0 with TXA
Removing instruction lda #0
Removing instruction lda #0 Removing instruction lda #0
Replacing instruction ldx #0 with TAX
Removing instruction ldy #0 Removing instruction ldy #0
Succesful ASM optimization Pass5UnnecesaryLoadElimination Succesful ASM optimization Pass5UnnecesaryLoadElimination
Replacing label b1_from_b5 with b1 Replacing label b1_from_b5 with b1
@ -3824,23 +3823,23 @@ FINAL SYMBOL TABLE
(label) init_mul_tables::@3 (label) init_mul_tables::@3
(label) init_mul_tables::@return (label) init_mul_tables::@return
(byte) init_mul_tables::c (byte) init_mul_tables::c
(byte) init_mul_tables::c#1 c zp ZP_BYTE:2 2.357142857142857 (byte) init_mul_tables::c#1 reg byte x 2.357142857142857
(byte) init_mul_tables::c#2 c zp ZP_BYTE:2 22.0 (byte) init_mul_tables::c#2 reg byte x 22.0
(word) init_mul_tables::sqr (word) init_mul_tables::sqr
(word) init_mul_tables::sqr#1 sqr zp ZP_WORD:7 7.333333333333333 (word) init_mul_tables::sqr#1 sqr zp ZP_WORD:7 7.333333333333333
(word) init_mul_tables::sqr#2 sqr zp ZP_WORD:7 11.0 (word) init_mul_tables::sqr#2 sqr zp ZP_WORD:7 22.0
(word) init_mul_tables::sqr#3 sqr zp ZP_WORD:7 9.166666666666666 (word) init_mul_tables::sqr#3 sqr zp ZP_WORD:7 9.166666666666666
(word) init_mul_tables::sqr#4 sqr zp ZP_WORD:7 8.25 (word) init_mul_tables::sqr#4 sqr zp ZP_WORD:7 6.6000000000000005
(byte*) init_mul_tables::sqr_hi (byte*) init_mul_tables::sqr_hi
(byte*) init_mul_tables::sqr_hi#1 sqr_hi zp ZP_WORD:5 5.5 (byte*) init_mul_tables::sqr_hi#1 sqr_hi zp ZP_WORD:4 5.5
(byte*) init_mul_tables::sqr_hi#2 sqr_hi zp ZP_WORD:5 3.0 (byte*) init_mul_tables::sqr_hi#2 sqr_hi zp ZP_WORD:4 3.0
(byte*) init_mul_tables::sqr_lo (byte*) init_mul_tables::sqr_lo
(byte*) init_mul_tables::sqr_lo#1 sqr_lo zp ZP_WORD:3 16.5 (byte*) init_mul_tables::sqr_lo#1 sqr_lo zp ZP_WORD:2 16.5
(byte*) init_mul_tables::sqr_lo#2 sqr_lo zp ZP_WORD:3 2.5384615384615383 (byte*) init_mul_tables::sqr_lo#2 sqr_lo zp ZP_WORD:2 2.5384615384615383
(byte) init_mul_tables::x_2 (byte) init_mul_tables::x_2
(byte) init_mul_tables::x_2#1 reg byte x 22.0 (byte) init_mul_tables::x_2#1 x_2 zp ZP_BYTE:6 11.0
(byte) init_mul_tables::x_2#2 reg byte x 4.888888888888889 (byte) init_mul_tables::x_2#2 x_2 zp ZP_BYTE:6 4.888888888888889
(byte) init_mul_tables::x_2#3 reg byte x 6.6000000000000005 (byte) init_mul_tables::x_2#3 x_2 zp ZP_BYTE:6 8.25
(void()) init_mul_tables_asm() (void()) init_mul_tables_asm()
(label) init_mul_tables_asm::@return (label) init_mul_tables_asm::@return
(void()) main() (void()) main()
@ -3867,10 +3866,10 @@ FINAL SYMBOL TABLE
(byte) mul_tables_compare::i#10 reg byte x 12.222222222222221 (byte) mul_tables_compare::i#10 reg byte x 12.222222222222221
reg byte x [ mul_tables_compare::i#10 mul_tables_compare::i#1 ] reg byte x [ mul_tables_compare::i#10 mul_tables_compare::i#1 ]
zp ZP_BYTE:2 [ init_mul_tables::c#2 init_mul_tables::c#1 ] reg byte x [ init_mul_tables::c#2 init_mul_tables::c#1 ]
zp ZP_WORD:3 [ init_mul_tables::sqr_lo#2 init_mul_tables::sqr_lo#1 ] zp ZP_WORD:2 [ init_mul_tables::sqr_lo#2 init_mul_tables::sqr_lo#1 ]
zp ZP_WORD:5 [ init_mul_tables::sqr_hi#2 init_mul_tables::sqr_hi#1 ] zp ZP_WORD:4 [ init_mul_tables::sqr_hi#2 init_mul_tables::sqr_hi#1 ]
reg byte x [ init_mul_tables::x_2#3 init_mul_tables::x_2#2 init_mul_tables::x_2#1 ] zp ZP_BYTE:6 [ init_mul_tables::x_2#3 init_mul_tables::x_2#2 init_mul_tables::x_2#1 ]
zp ZP_WORD:7 [ init_mul_tables::sqr#3 init_mul_tables::sqr#4 init_mul_tables::sqr#1 init_mul_tables::sqr#2 ] zp ZP_WORD:7 [ init_mul_tables::sqr#3 init_mul_tables::sqr#4 init_mul_tables::sqr#1 init_mul_tables::sqr#2 ]
reg byte a [ init_mul_tables::$2 ] reg byte a [ init_mul_tables::$2 ]
reg byte a [ init_mul_tables::$5 ] reg byte a [ init_mul_tables::$5 ]
@ -4006,13 +4005,14 @@ init_mul_tables_asm: {
} }
//SEG51 init_mul_tables //SEG51 init_mul_tables
init_mul_tables: { init_mul_tables: {
.label c = 2 .label sqr_hi = 4
.label sqr_hi = 5
.label sqr = 7 .label sqr = 7
.label sqr_lo = 3 .label sqr_lo = 2
.label x_2 = 6
//SEG52 [27] phi from init_mul_tables to init_mul_tables::@1 [phi:init_mul_tables->init_mul_tables::@1] //SEG52 [27] phi from init_mul_tables to init_mul_tables::@1 [phi:init_mul_tables->init_mul_tables::@1]
//SEG53 [27] phi (byte) init_mul_tables::x_2#3 = (byte/signed byte/word/signed word) 0 [phi:init_mul_tables->init_mul_tables::@1#0] -- vbuxx=vbuc1 //SEG53 [27] phi (byte) init_mul_tables::x_2#3 = (byte/signed byte/word/signed word) 0 [phi:init_mul_tables->init_mul_tables::@1#0] -- vbuz1=vbuc1
ldx #0 lda #0
sta x_2
//SEG54 [27] phi (byte*) init_mul_tables::sqr_hi#2 = (const byte[512]) mul_sqr_hi#0+(byte/signed byte/word/signed word) 1 [phi:init_mul_tables->init_mul_tables::@1#1] -- pbuz1=pbuc1 //SEG54 [27] phi (byte*) init_mul_tables::sqr_hi#2 = (const byte[512]) mul_sqr_hi#0+(byte/signed byte/word/signed word) 1 [phi:init_mul_tables->init_mul_tables::@1#1] -- pbuz1=pbuc1
lda #<mul_sqr_hi+1 lda #<mul_sqr_hi+1
sta sqr_hi sta sqr_hi
@ -4024,11 +4024,11 @@ init_mul_tables: {
lda #>mul_sqr_lo+1 lda #>mul_sqr_lo+1
sta sqr_lo+1 sta sqr_lo+1
//SEG56 [27] phi (word) init_mul_tables::sqr#4 = (byte/signed byte/word/signed word) 0 [phi:init_mul_tables->init_mul_tables::@1#3] -- vwuz1=vbuc1 //SEG56 [27] phi (word) init_mul_tables::sqr#4 = (byte/signed byte/word/signed word) 0 [phi:init_mul_tables->init_mul_tables::@1#3] -- vwuz1=vbuc1
txa lda #0
sta sqr sta sqr
sta sqr+1 sta sqr+1
//SEG57 [27] phi (byte) init_mul_tables::c#2 = (byte/signed byte/word/signed word) 0 [phi:init_mul_tables->init_mul_tables::@1#4] -- vbuz1=vbuc1 //SEG57 [27] phi (byte) init_mul_tables::c#2 = (byte/signed byte/word/signed word) 0 [phi:init_mul_tables->init_mul_tables::@1#4] -- vbuxx=vbuc1
sta c tax
//SEG58 [27] phi from init_mul_tables::@2 to init_mul_tables::@1 [phi:init_mul_tables::@2->init_mul_tables::@1] //SEG58 [27] phi from init_mul_tables::@2 to init_mul_tables::@1 [phi:init_mul_tables::@2->init_mul_tables::@1]
//SEG59 [27] phi (byte) init_mul_tables::x_2#3 = (byte) init_mul_tables::x_2#2 [phi:init_mul_tables::@2->init_mul_tables::@1#0] -- register_copy //SEG59 [27] phi (byte) init_mul_tables::x_2#3 = (byte) init_mul_tables::x_2#2 [phi:init_mul_tables::@2->init_mul_tables::@1#0] -- register_copy
//SEG60 [27] phi (byte*) init_mul_tables::sqr_hi#2 = (byte*) init_mul_tables::sqr_hi#1 [phi:init_mul_tables::@2->init_mul_tables::@1#1] -- register_copy //SEG60 [27] phi (byte*) init_mul_tables::sqr_hi#2 = (byte*) init_mul_tables::sqr_hi#1 [phi:init_mul_tables::@2->init_mul_tables::@1#1] -- register_copy
@ -4037,22 +4037,22 @@ init_mul_tables: {
//SEG63 [27] phi (byte) init_mul_tables::c#2 = (byte) init_mul_tables::c#1 [phi:init_mul_tables::@2->init_mul_tables::@1#4] -- register_copy //SEG63 [27] phi (byte) init_mul_tables::c#2 = (byte) init_mul_tables::c#1 [phi:init_mul_tables::@2->init_mul_tables::@1#4] -- register_copy
//SEG64 init_mul_tables::@1 //SEG64 init_mul_tables::@1
b1: b1:
//SEG65 [28] (byte) init_mul_tables::c#1 ← ++ (byte) init_mul_tables::c#2 [ init_mul_tables::sqr#4 init_mul_tables::sqr_lo#2 init_mul_tables::sqr_hi#2 init_mul_tables::x_2#3 init_mul_tables::c#1 ] ( main:2::init_mul_tables:5 [ init_mul_tables::sqr#4 init_mul_tables::sqr_lo#2 init_mul_tables::sqr_hi#2 init_mul_tables::x_2#3 init_mul_tables::c#1 ] ) -- vbuz1=_inc_vbuz1 //SEG65 [28] (byte) init_mul_tables::c#1 ← ++ (byte) init_mul_tables::c#2 [ init_mul_tables::sqr#4 init_mul_tables::sqr_lo#2 init_mul_tables::sqr_hi#2 init_mul_tables::x_2#3 init_mul_tables::c#1 ] ( main:2::init_mul_tables:5 [ init_mul_tables::sqr#4 init_mul_tables::sqr_lo#2 init_mul_tables::sqr_hi#2 init_mul_tables::x_2#3 init_mul_tables::c#1 ] ) -- vbuxx=_inc_vbuxx
inc c inx
//SEG66 [29] (byte~) init_mul_tables::$2 ← (byte) init_mul_tables::c#1 & (byte/signed byte/word/signed word) 1 [ init_mul_tables::sqr#4 init_mul_tables::sqr_lo#2 init_mul_tables::sqr_hi#2 init_mul_tables::x_2#3 init_mul_tables::c#1 init_mul_tables::$2 ] ( main:2::init_mul_tables:5 [ init_mul_tables::sqr#4 init_mul_tables::sqr_lo#2 init_mul_tables::sqr_hi#2 init_mul_tables::x_2#3 init_mul_tables::c#1 init_mul_tables::$2 ] ) -- vbuaa=vbuz1_band_vbuc1 //SEG66 [29] (byte~) init_mul_tables::$2 ← (byte) init_mul_tables::c#1 & (byte/signed byte/word/signed word) 1 [ init_mul_tables::sqr#4 init_mul_tables::sqr_lo#2 init_mul_tables::sqr_hi#2 init_mul_tables::x_2#3 init_mul_tables::c#1 init_mul_tables::$2 ] ( main:2::init_mul_tables:5 [ init_mul_tables::sqr#4 init_mul_tables::sqr_lo#2 init_mul_tables::sqr_hi#2 init_mul_tables::x_2#3 init_mul_tables::c#1 init_mul_tables::$2 ] ) -- vbuaa=vbuxx_band_vbuc1
lda c txa
and #1 and #1
//SEG67 [30] if((byte~) init_mul_tables::$2!=(byte/signed byte/word/signed word) 0) goto init_mul_tables::@2 [ init_mul_tables::sqr#4 init_mul_tables::sqr_lo#2 init_mul_tables::sqr_hi#2 init_mul_tables::x_2#3 init_mul_tables::c#1 ] ( main:2::init_mul_tables:5 [ init_mul_tables::sqr#4 init_mul_tables::sqr_lo#2 init_mul_tables::sqr_hi#2 init_mul_tables::x_2#3 init_mul_tables::c#1 ] ) -- vbuaa_neq_0_then_la1 //SEG67 [30] if((byte~) init_mul_tables::$2!=(byte/signed byte/word/signed word) 0) goto init_mul_tables::@2 [ init_mul_tables::sqr#4 init_mul_tables::sqr_lo#2 init_mul_tables::sqr_hi#2 init_mul_tables::x_2#3 init_mul_tables::c#1 ] ( main:2::init_mul_tables:5 [ init_mul_tables::sqr#4 init_mul_tables::sqr_lo#2 init_mul_tables::sqr_hi#2 init_mul_tables::x_2#3 init_mul_tables::c#1 ] ) -- vbuaa_neq_0_then_la1
cmp #0 cmp #0
bne b2 bne b2
//SEG68 init_mul_tables::@3 //SEG68 init_mul_tables::@3
//SEG69 [31] (word) init_mul_tables::sqr#2 ← ++ (word) init_mul_tables::sqr#4 [ init_mul_tables::sqr_lo#2 init_mul_tables::sqr_hi#2 init_mul_tables::x_2#3 init_mul_tables::c#1 init_mul_tables::sqr#2 ] ( main:2::init_mul_tables:5 [ init_mul_tables::sqr_lo#2 init_mul_tables::sqr_hi#2 init_mul_tables::x_2#3 init_mul_tables::c#1 init_mul_tables::sqr#2 ] ) -- vwuz1=_inc_vwuz1 //SEG69 [31] (byte) init_mul_tables::x_2#1 ← ++ (byte) init_mul_tables::x_2#3 [ init_mul_tables::sqr#4 init_mul_tables::sqr_lo#2 init_mul_tables::sqr_hi#2 init_mul_tables::c#1 init_mul_tables::x_2#1 ] ( main:2::init_mul_tables:5 [ init_mul_tables::sqr#4 init_mul_tables::sqr_lo#2 init_mul_tables::sqr_hi#2 init_mul_tables::c#1 init_mul_tables::x_2#1 ] ) -- vbuz1=_inc_vbuz1
inc x_2
//SEG70 [32] (word) init_mul_tables::sqr#2 ← ++ (word) init_mul_tables::sqr#4 [ init_mul_tables::sqr_lo#2 init_mul_tables::sqr_hi#2 init_mul_tables::c#1 init_mul_tables::x_2#1 init_mul_tables::sqr#2 ] ( main:2::init_mul_tables:5 [ init_mul_tables::sqr_lo#2 init_mul_tables::sqr_hi#2 init_mul_tables::c#1 init_mul_tables::x_2#1 init_mul_tables::sqr#2 ] ) -- vwuz1=_inc_vwuz1
inc sqr inc sqr
bne !+ bne !+
inc sqr+1 inc sqr+1
!: !:
//SEG70 [32] (byte) init_mul_tables::x_2#1 ← ++ (byte) init_mul_tables::x_2#3 [ init_mul_tables::sqr_lo#2 init_mul_tables::sqr_hi#2 init_mul_tables::c#1 init_mul_tables::sqr#2 init_mul_tables::x_2#1 ] ( main:2::init_mul_tables:5 [ init_mul_tables::sqr_lo#2 init_mul_tables::sqr_hi#2 init_mul_tables::c#1 init_mul_tables::sqr#2 init_mul_tables::x_2#1 ] ) -- vbuxx=_inc_vbuxx
inx
//SEG71 [33] phi from init_mul_tables::@1 init_mul_tables::@3 to init_mul_tables::@2 [phi:init_mul_tables::@1/init_mul_tables::@3->init_mul_tables::@2] //SEG71 [33] phi from init_mul_tables::@1 init_mul_tables::@3 to init_mul_tables::@2 [phi:init_mul_tables::@1/init_mul_tables::@3->init_mul_tables::@2]
//SEG72 [33] phi (byte) init_mul_tables::x_2#2 = (byte) init_mul_tables::x_2#3 [phi:init_mul_tables::@1/init_mul_tables::@3->init_mul_tables::@2#0] -- register_copy //SEG72 [33] phi (byte) init_mul_tables::x_2#2 = (byte) init_mul_tables::x_2#3 [phi:init_mul_tables::@1/init_mul_tables::@3->init_mul_tables::@2#0] -- register_copy
//SEG73 [33] phi (word) init_mul_tables::sqr#3 = (word) init_mul_tables::sqr#4 [phi:init_mul_tables::@1/init_mul_tables::@3->init_mul_tables::@2#1] -- register_copy //SEG73 [33] phi (word) init_mul_tables::sqr#3 = (word) init_mul_tables::sqr#4 [phi:init_mul_tables::@1/init_mul_tables::@3->init_mul_tables::@2#1] -- register_copy
@ -4072,8 +4072,8 @@ init_mul_tables: {
bne !+ bne !+
inc sqr_hi+1 inc sqr_hi+1
!: !:
//SEG80 [39] (word) init_mul_tables::sqr#1 ← (word) init_mul_tables::sqr#3 + (byte) init_mul_tables::x_2#2 [ init_mul_tables::sqr_lo#2 init_mul_tables::c#1 init_mul_tables::sqr#1 init_mul_tables::sqr_hi#1 init_mul_tables::x_2#2 ] ( main:2::init_mul_tables:5 [ init_mul_tables::sqr_lo#2 init_mul_tables::c#1 init_mul_tables::sqr#1 init_mul_tables::sqr_hi#1 init_mul_tables::x_2#2 ] ) -- vwuz1=vwuz1_plus_vbuxx //SEG80 [39] (word) init_mul_tables::sqr#1 ← (word) init_mul_tables::sqr#3 + (byte) init_mul_tables::x_2#2 [ init_mul_tables::sqr_lo#2 init_mul_tables::c#1 init_mul_tables::sqr#1 init_mul_tables::sqr_hi#1 init_mul_tables::x_2#2 ] ( main:2::init_mul_tables:5 [ init_mul_tables::sqr_lo#2 init_mul_tables::c#1 init_mul_tables::sqr#1 init_mul_tables::sqr_hi#1 init_mul_tables::x_2#2 ] ) -- vwuz1=vwuz1_plus_vbuz2
txa lda x_2
clc clc
adc sqr adc sqr
sta sqr sta sqr

View File

@ -16,23 +16,23 @@
(label) init_mul_tables::@3 (label) init_mul_tables::@3
(label) init_mul_tables::@return (label) init_mul_tables::@return
(byte) init_mul_tables::c (byte) init_mul_tables::c
(byte) init_mul_tables::c#1 c zp ZP_BYTE:2 2.357142857142857 (byte) init_mul_tables::c#1 reg byte x 2.357142857142857
(byte) init_mul_tables::c#2 c zp ZP_BYTE:2 22.0 (byte) init_mul_tables::c#2 reg byte x 22.0
(word) init_mul_tables::sqr (word) init_mul_tables::sqr
(word) init_mul_tables::sqr#1 sqr zp ZP_WORD:7 7.333333333333333 (word) init_mul_tables::sqr#1 sqr zp ZP_WORD:7 7.333333333333333
(word) init_mul_tables::sqr#2 sqr zp ZP_WORD:7 11.0 (word) init_mul_tables::sqr#2 sqr zp ZP_WORD:7 22.0
(word) init_mul_tables::sqr#3 sqr zp ZP_WORD:7 9.166666666666666 (word) init_mul_tables::sqr#3 sqr zp ZP_WORD:7 9.166666666666666
(word) init_mul_tables::sqr#4 sqr zp ZP_WORD:7 8.25 (word) init_mul_tables::sqr#4 sqr zp ZP_WORD:7 6.6000000000000005
(byte*) init_mul_tables::sqr_hi (byte*) init_mul_tables::sqr_hi
(byte*) init_mul_tables::sqr_hi#1 sqr_hi zp ZP_WORD:5 5.5 (byte*) init_mul_tables::sqr_hi#1 sqr_hi zp ZP_WORD:4 5.5
(byte*) init_mul_tables::sqr_hi#2 sqr_hi zp ZP_WORD:5 3.0 (byte*) init_mul_tables::sqr_hi#2 sqr_hi zp ZP_WORD:4 3.0
(byte*) init_mul_tables::sqr_lo (byte*) init_mul_tables::sqr_lo
(byte*) init_mul_tables::sqr_lo#1 sqr_lo zp ZP_WORD:3 16.5 (byte*) init_mul_tables::sqr_lo#1 sqr_lo zp ZP_WORD:2 16.5
(byte*) init_mul_tables::sqr_lo#2 sqr_lo zp ZP_WORD:3 2.5384615384615383 (byte*) init_mul_tables::sqr_lo#2 sqr_lo zp ZP_WORD:2 2.5384615384615383
(byte) init_mul_tables::x_2 (byte) init_mul_tables::x_2
(byte) init_mul_tables::x_2#1 reg byte x 22.0 (byte) init_mul_tables::x_2#1 x_2 zp ZP_BYTE:6 11.0
(byte) init_mul_tables::x_2#2 reg byte x 4.888888888888889 (byte) init_mul_tables::x_2#2 x_2 zp ZP_BYTE:6 4.888888888888889
(byte) init_mul_tables::x_2#3 reg byte x 6.6000000000000005 (byte) init_mul_tables::x_2#3 x_2 zp ZP_BYTE:6 8.25
(void()) init_mul_tables_asm() (void()) init_mul_tables_asm()
(label) init_mul_tables_asm::@return (label) init_mul_tables_asm::@return
(void()) main() (void()) main()
@ -59,10 +59,10 @@
(byte) mul_tables_compare::i#10 reg byte x 12.222222222222221 (byte) mul_tables_compare::i#10 reg byte x 12.222222222222221
reg byte x [ mul_tables_compare::i#10 mul_tables_compare::i#1 ] reg byte x [ mul_tables_compare::i#10 mul_tables_compare::i#1 ]
zp ZP_BYTE:2 [ init_mul_tables::c#2 init_mul_tables::c#1 ] reg byte x [ init_mul_tables::c#2 init_mul_tables::c#1 ]
zp ZP_WORD:3 [ init_mul_tables::sqr_lo#2 init_mul_tables::sqr_lo#1 ] zp ZP_WORD:2 [ init_mul_tables::sqr_lo#2 init_mul_tables::sqr_lo#1 ]
zp ZP_WORD:5 [ init_mul_tables::sqr_hi#2 init_mul_tables::sqr_hi#1 ] zp ZP_WORD:4 [ init_mul_tables::sqr_hi#2 init_mul_tables::sqr_hi#1 ]
reg byte x [ init_mul_tables::x_2#3 init_mul_tables::x_2#2 init_mul_tables::x_2#1 ] zp ZP_BYTE:6 [ init_mul_tables::x_2#3 init_mul_tables::x_2#2 init_mul_tables::x_2#1 ]
zp ZP_WORD:7 [ init_mul_tables::sqr#3 init_mul_tables::sqr#4 init_mul_tables::sqr#1 init_mul_tables::sqr#2 ] zp ZP_WORD:7 [ init_mul_tables::sqr#3 init_mul_tables::sqr#4 init_mul_tables::sqr#1 init_mul_tables::sqr#2 ]
reg byte a [ init_mul_tables::$2 ] reg byte a [ init_mul_tables::$2 ]
reg byte a [ init_mul_tables::$5 ] reg byte a [ init_mul_tables::$5 ]