1
0
mirror of https://gitlab.com/camelot/kickc.git synced 2024-11-14 23:04:57 +00:00

Optimized KC based multiply table generator.

This commit is contained in:
jespergravgaard 2017-12-28 04:32:26 +01:00
parent 8198b8f168
commit 6dcafb83c2
5 changed files with 466 additions and 375 deletions

View File

@ -18,14 +18,19 @@ void init_mul_tables() {
// If f(x) = x*x/4 then f(x+1) = f(x) + x/2 + 1/4 // If f(x) = x*x/4 then f(x+1) = f(x) + x/2 + 1/4
byte* sqr_lo = mul_sqr_lo+1; byte* sqr_lo = mul_sqr_lo+1;
byte* sqr_hi = mul_sqr_hi+1; byte* sqr_hi = mul_sqr_hi+1;
word sqr = 0; word sqr = 0; // sqr = (i*i)/4
byte i_2 = 0; // i/2
for(word i : 1..511) { for(word i : 1..511) {
// sqr++ on even numbers because 1 = 2*1/4 (from the two previous numbers) + 1/2 (half of the previous uneven number) if((i&1)==0) {
if((i&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)
sqr++;
// increase i/2 on even numbers
i_2++;
}
*sqr_lo++ = <sqr; *sqr_lo++ = <sqr;
*sqr_hi++ = >sqr; *sqr_hi++ = >sqr;
// sqr = sqr + i/2 (when uneven 1/2 is not added here) // sqr = sqr + i/2 (when uneven 1/2 is not added here)
sqr = sqr + i>>1; sqr = sqr + i_2;
} }
} }

View File

@ -75,11 +75,11 @@ init_mul_tables_asm: {
rts rts
} }
init_mul_tables: { init_mul_tables: {
.label _7 = $a
.label sqr_lo = 4 .label sqr_lo = 4
.label sqr_hi = 6 .label sqr_hi = 6
.label sqr = 8 .label sqr = 8
.label i = 2 .label i = 2
ldx #0
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,12 +88,12 @@ 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
lda #0 txa
sta sqr sta sqr
sta sqr+1 sta sqr+1
lda #1 lda #1
sta i sta i
lda #0 txa
sta i+1 sta i+1
b1: b1:
lda i lda i
@ -104,6 +104,7 @@ init_mul_tables: {
bne !+ bne !+
inc sqr+1 inc sqr+1
!: !:
inx
b2: b2:
lda sqr lda sqr
ldy #0 ldy #0
@ -119,19 +120,13 @@ init_mul_tables: {
bne !+ bne !+
inc sqr_hi+1 inc sqr_hi+1
!: !:
lda i+1 txa
ror
sta _7+1
lda i
ror
sta _7
lda sqr
clc clc
adc _7 adc sqr
sta sqr sta sqr
lda sqr+1 bcc !+
adc _7+1 inc sqr+1
sta sqr+1 !:
inc i inc i
bne !+ bne !+
inc i+1 inc i+1

View File

@ -67,28 +67,30 @@ init_mul_tables: scope:[init_mul_tables] from main
[26] phi() [ ] ( main:2::init_mul_tables:5 [ ] ) [26] phi() [ ] ( main:2::init_mul_tables:5 [ ] )
to:init_mul_tables::@1 to:init_mul_tables::@1
init_mul_tables::@1: scope:[init_mul_tables] from init_mul_tables init_mul_tables::@2 init_mul_tables::@1: scope:[init_mul_tables] from init_mul_tables init_mul_tables::@2
[27] (byte*) init_mul_tables::sqr_hi#2 ← phi( init_mul_tables/(const byte[512]) mul_sqr_hi#0+(byte/signed byte/word/signed word) 1 init_mul_tables::@2/(byte*) init_mul_tables::sqr_hi#1 ) [ init_mul_tables::i#2 init_mul_tables::sqr#4 init_mul_tables::sqr_lo#2 init_mul_tables::sqr_hi#2 ] ( main:2::init_mul_tables:5 [ init_mul_tables::i#2 init_mul_tables::sqr#4 init_mul_tables::sqr_lo#2 init_mul_tables::sqr_hi#2 ] ) [27] (byte) init_mul_tables::i_2#3 ← phi( init_mul_tables/(byte/signed byte/word/signed word) 0 init_mul_tables::@2/(byte) init_mul_tables::i_2#2 ) [ init_mul_tables::i#2 init_mul_tables::sqr#4 init_mul_tables::sqr_lo#2 init_mul_tables::sqr_hi#2 init_mul_tables::i_2#3 ] ( main:2::init_mul_tables:5 [ init_mul_tables::i#2 init_mul_tables::sqr#4 init_mul_tables::sqr_lo#2 init_mul_tables::sqr_hi#2 init_mul_tables::i_2#3 ] )
[27] (byte*) init_mul_tables::sqr_lo#2 ← phi( init_mul_tables/(const byte[512]) mul_sqr_lo#0+(byte/signed byte/word/signed word) 1 init_mul_tables::@2/(byte*) init_mul_tables::sqr_lo#1 ) [ init_mul_tables::i#2 init_mul_tables::sqr#4 init_mul_tables::sqr_lo#2 init_mul_tables::sqr_hi#2 ] ( main:2::init_mul_tables:5 [ init_mul_tables::i#2 init_mul_tables::sqr#4 init_mul_tables::sqr_lo#2 init_mul_tables::sqr_hi#2 ] ) [27] (byte*) init_mul_tables::sqr_hi#2 ← phi( init_mul_tables/(const byte[512]) mul_sqr_hi#0+(byte/signed byte/word/signed word) 1 init_mul_tables::@2/(byte*) init_mul_tables::sqr_hi#1 ) [ init_mul_tables::i#2 init_mul_tables::sqr#4 init_mul_tables::sqr_lo#2 init_mul_tables::sqr_hi#2 init_mul_tables::i_2#3 ] ( main:2::init_mul_tables:5 [ init_mul_tables::i#2 init_mul_tables::sqr#4 init_mul_tables::sqr_lo#2 init_mul_tables::sqr_hi#2 init_mul_tables::i_2#3 ] )
[27] (word) init_mul_tables::sqr#4 ← phi( init_mul_tables/(byte/signed byte/word/signed word) 0 init_mul_tables::@2/(word) init_mul_tables::sqr#1 ) [ init_mul_tables::i#2 init_mul_tables::sqr#4 init_mul_tables::sqr_lo#2 init_mul_tables::sqr_hi#2 ] ( main:2::init_mul_tables:5 [ init_mul_tables::i#2 init_mul_tables::sqr#4 init_mul_tables::sqr_lo#2 init_mul_tables::sqr_hi#2 ] ) [27] (byte*) init_mul_tables::sqr_lo#2 ← phi( init_mul_tables/(const byte[512]) mul_sqr_lo#0+(byte/signed byte/word/signed word) 1 init_mul_tables::@2/(byte*) init_mul_tables::sqr_lo#1 ) [ init_mul_tables::i#2 init_mul_tables::sqr#4 init_mul_tables::sqr_lo#2 init_mul_tables::sqr_hi#2 init_mul_tables::i_2#3 ] ( main:2::init_mul_tables:5 [ init_mul_tables::i#2 init_mul_tables::sqr#4 init_mul_tables::sqr_lo#2 init_mul_tables::sqr_hi#2 init_mul_tables::i_2#3 ] )
[27] (word) init_mul_tables::i#2 ← phi( init_mul_tables/(byte/signed byte/word/signed word) 1 init_mul_tables::@2/(word) init_mul_tables::i#1 ) [ init_mul_tables::i#2 init_mul_tables::sqr#4 init_mul_tables::sqr_lo#2 init_mul_tables::sqr_hi#2 ] ( main:2::init_mul_tables:5 [ init_mul_tables::i#2 init_mul_tables::sqr#4 init_mul_tables::sqr_lo#2 init_mul_tables::sqr_hi#2 ] ) [27] (word) init_mul_tables::sqr#4 ← phi( init_mul_tables/(byte/signed byte/word/signed word) 0 init_mul_tables::@2/(word) init_mul_tables::sqr#1 ) [ init_mul_tables::i#2 init_mul_tables::sqr#4 init_mul_tables::sqr_lo#2 init_mul_tables::sqr_hi#2 init_mul_tables::i_2#3 ] ( main:2::init_mul_tables:5 [ init_mul_tables::i#2 init_mul_tables::sqr#4 init_mul_tables::sqr_lo#2 init_mul_tables::sqr_hi#2 init_mul_tables::i_2#3 ] )
[28] (byte~) init_mul_tables::$2 ← (word) init_mul_tables::i#2 & (byte/signed byte/word/signed word) 1 [ init_mul_tables::i#2 init_mul_tables::sqr#4 init_mul_tables::sqr_lo#2 init_mul_tables::sqr_hi#2 init_mul_tables::$2 ] ( main:2::init_mul_tables:5 [ init_mul_tables::i#2 init_mul_tables::sqr#4 init_mul_tables::sqr_lo#2 init_mul_tables::sqr_hi#2 init_mul_tables::$2 ] ) [27] (word) init_mul_tables::i#2 ← phi( init_mul_tables/(byte/signed byte/word/signed word) 1 init_mul_tables::@2/(word) init_mul_tables::i#1 ) [ init_mul_tables::i#2 init_mul_tables::sqr#4 init_mul_tables::sqr_lo#2 init_mul_tables::sqr_hi#2 init_mul_tables::i_2#3 ] ( main:2::init_mul_tables:5 [ init_mul_tables::i#2 init_mul_tables::sqr#4 init_mul_tables::sqr_lo#2 init_mul_tables::sqr_hi#2 init_mul_tables::i_2#3 ] )
[29] if((byte~) init_mul_tables::$2!=(byte/signed byte/word/signed word) 0) goto init_mul_tables::@2 [ init_mul_tables::i#2 init_mul_tables::sqr#4 init_mul_tables::sqr_lo#2 init_mul_tables::sqr_hi#2 ] ( main:2::init_mul_tables:5 [ init_mul_tables::i#2 init_mul_tables::sqr#4 init_mul_tables::sqr_lo#2 init_mul_tables::sqr_hi#2 ] ) [28] (byte~) init_mul_tables::$2 ← (word) init_mul_tables::i#2 & (byte/signed byte/word/signed word) 1 [ init_mul_tables::i#2 init_mul_tables::sqr#4 init_mul_tables::sqr_lo#2 init_mul_tables::sqr_hi#2 init_mul_tables::i_2#3 init_mul_tables::$2 ] ( main:2::init_mul_tables:5 [ init_mul_tables::i#2 init_mul_tables::sqr#4 init_mul_tables::sqr_lo#2 init_mul_tables::sqr_hi#2 init_mul_tables::i_2#3 init_mul_tables::$2 ] )
[29] if((byte~) init_mul_tables::$2!=(byte/signed byte/word/signed word) 0) goto init_mul_tables::@2 [ init_mul_tables::i#2 init_mul_tables::sqr#4 init_mul_tables::sqr_lo#2 init_mul_tables::sqr_hi#2 init_mul_tables::i_2#3 ] ( main:2::init_mul_tables:5 [ init_mul_tables::i#2 init_mul_tables::sqr#4 init_mul_tables::sqr_lo#2 init_mul_tables::sqr_hi#2 init_mul_tables::i_2#3 ] )
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
[30] (word) init_mul_tables::sqr#2 ← ++ (word) init_mul_tables::sqr#4 [ init_mul_tables::i#2 init_mul_tables::sqr_lo#2 init_mul_tables::sqr_hi#2 init_mul_tables::sqr#2 ] ( main:2::init_mul_tables:5 [ init_mul_tables::i#2 init_mul_tables::sqr_lo#2 init_mul_tables::sqr_hi#2 init_mul_tables::sqr#2 ] ) [30] (word) init_mul_tables::sqr#2 ← ++ (word) init_mul_tables::sqr#4 [ init_mul_tables::i#2 init_mul_tables::sqr_lo#2 init_mul_tables::sqr_hi#2 init_mul_tables::i_2#3 init_mul_tables::sqr#2 ] ( main:2::init_mul_tables:5 [ init_mul_tables::i#2 init_mul_tables::sqr_lo#2 init_mul_tables::sqr_hi#2 init_mul_tables::i_2#3 init_mul_tables::sqr#2 ] )
[31] (byte) init_mul_tables::i_2#1 ← ++ (byte) init_mul_tables::i_2#3 [ init_mul_tables::i#2 init_mul_tables::sqr_lo#2 init_mul_tables::sqr_hi#2 init_mul_tables::sqr#2 init_mul_tables::i_2#1 ] ( main:2::init_mul_tables:5 [ init_mul_tables::i#2 init_mul_tables::sqr_lo#2 init_mul_tables::sqr_hi#2 init_mul_tables::sqr#2 init_mul_tables::i_2#1 ] )
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
[31] (word) init_mul_tables::sqr#3 ← phi( init_mul_tables::@1/(word) init_mul_tables::sqr#4 init_mul_tables::@3/(word) init_mul_tables::sqr#2 ) [ init_mul_tables::i#2 init_mul_tables::sqr_lo#2 init_mul_tables::sqr_hi#2 init_mul_tables::sqr#3 ] ( main:2::init_mul_tables:5 [ init_mul_tables::i#2 init_mul_tables::sqr_lo#2 init_mul_tables::sqr_hi#2 init_mul_tables::sqr#3 ] ) [32] (byte) init_mul_tables::i_2#2 ← phi( init_mul_tables::@1/(byte) init_mul_tables::i_2#3 init_mul_tables::@3/(byte) init_mul_tables::i_2#1 ) [ init_mul_tables::i#2 init_mul_tables::sqr_lo#2 init_mul_tables::sqr_hi#2 init_mul_tables::i_2#2 init_mul_tables::sqr#3 ] ( main:2::init_mul_tables:5 [ init_mul_tables::i#2 init_mul_tables::sqr_lo#2 init_mul_tables::sqr_hi#2 init_mul_tables::i_2#2 init_mul_tables::sqr#3 ] )
[32] (byte~) init_mul_tables::$5 ← < (word) init_mul_tables::sqr#3 [ init_mul_tables::i#2 init_mul_tables::sqr_lo#2 init_mul_tables::sqr_hi#2 init_mul_tables::sqr#3 init_mul_tables::$5 ] ( main:2::init_mul_tables:5 [ init_mul_tables::i#2 init_mul_tables::sqr_lo#2 init_mul_tables::sqr_hi#2 init_mul_tables::sqr#3 init_mul_tables::$5 ] ) [32] (word) init_mul_tables::sqr#3 ← phi( init_mul_tables::@1/(word) init_mul_tables::sqr#4 init_mul_tables::@3/(word) init_mul_tables::sqr#2 ) [ init_mul_tables::i#2 init_mul_tables::sqr_lo#2 init_mul_tables::sqr_hi#2 init_mul_tables::i_2#2 init_mul_tables::sqr#3 ] ( main:2::init_mul_tables:5 [ init_mul_tables::i#2 init_mul_tables::sqr_lo#2 init_mul_tables::sqr_hi#2 init_mul_tables::i_2#2 init_mul_tables::sqr#3 ] )
[33] *((byte*) init_mul_tables::sqr_lo#2) ← (byte~) init_mul_tables::$5 [ init_mul_tables::i#2 init_mul_tables::sqr_lo#2 init_mul_tables::sqr_hi#2 init_mul_tables::sqr#3 ] ( main:2::init_mul_tables:5 [ init_mul_tables::i#2 init_mul_tables::sqr_lo#2 init_mul_tables::sqr_hi#2 init_mul_tables::sqr#3 ] ) [33] (byte~) init_mul_tables::$5 ← < (word) init_mul_tables::sqr#3 [ init_mul_tables::i#2 init_mul_tables::sqr_lo#2 init_mul_tables::sqr_hi#2 init_mul_tables::i_2#2 init_mul_tables::sqr#3 init_mul_tables::$5 ] ( main:2::init_mul_tables:5 [ init_mul_tables::i#2 init_mul_tables::sqr_lo#2 init_mul_tables::sqr_hi#2 init_mul_tables::i_2#2 init_mul_tables::sqr#3 init_mul_tables::$5 ] )
[34] (byte*) init_mul_tables::sqr_lo#1 ← ++ (byte*) init_mul_tables::sqr_lo#2 [ init_mul_tables::i#2 init_mul_tables::sqr_hi#2 init_mul_tables::sqr_lo#1 init_mul_tables::sqr#3 ] ( main:2::init_mul_tables:5 [ init_mul_tables::i#2 init_mul_tables::sqr_hi#2 init_mul_tables::sqr_lo#1 init_mul_tables::sqr#3 ] ) [34] *((byte*) init_mul_tables::sqr_lo#2) ← (byte~) init_mul_tables::$5 [ init_mul_tables::i#2 init_mul_tables::sqr_lo#2 init_mul_tables::sqr_hi#2 init_mul_tables::i_2#2 init_mul_tables::sqr#3 ] ( main:2::init_mul_tables:5 [ init_mul_tables::i#2 init_mul_tables::sqr_lo#2 init_mul_tables::sqr_hi#2 init_mul_tables::i_2#2 init_mul_tables::sqr#3 ] )
[35] (byte~) init_mul_tables::$6 ← > (word) init_mul_tables::sqr#3 [ init_mul_tables::i#2 init_mul_tables::sqr_hi#2 init_mul_tables::sqr_lo#1 init_mul_tables::sqr#3 init_mul_tables::$6 ] ( main:2::init_mul_tables:5 [ init_mul_tables::i#2 init_mul_tables::sqr_hi#2 init_mul_tables::sqr_lo#1 init_mul_tables::sqr#3 init_mul_tables::$6 ] ) [35] (byte*) init_mul_tables::sqr_lo#1 ← ++ (byte*) init_mul_tables::sqr_lo#2 [ init_mul_tables::i#2 init_mul_tables::sqr_hi#2 init_mul_tables::sqr_lo#1 init_mul_tables::i_2#2 init_mul_tables::sqr#3 ] ( main:2::init_mul_tables:5 [ init_mul_tables::i#2 init_mul_tables::sqr_hi#2 init_mul_tables::sqr_lo#1 init_mul_tables::i_2#2 init_mul_tables::sqr#3 ] )
[36] *((byte*) init_mul_tables::sqr_hi#2) ← (byte~) init_mul_tables::$6 [ init_mul_tables::i#2 init_mul_tables::sqr_hi#2 init_mul_tables::sqr_lo#1 init_mul_tables::sqr#3 ] ( main:2::init_mul_tables:5 [ init_mul_tables::i#2 init_mul_tables::sqr_hi#2 init_mul_tables::sqr_lo#1 init_mul_tables::sqr#3 ] ) [36] (byte~) init_mul_tables::$6 ← > (word) init_mul_tables::sqr#3 [ init_mul_tables::i#2 init_mul_tables::sqr_hi#2 init_mul_tables::sqr_lo#1 init_mul_tables::i_2#2 init_mul_tables::sqr#3 init_mul_tables::$6 ] ( main:2::init_mul_tables:5 [ init_mul_tables::i#2 init_mul_tables::sqr_hi#2 init_mul_tables::sqr_lo#1 init_mul_tables::i_2#2 init_mul_tables::sqr#3 init_mul_tables::$6 ] )
[37] (byte*) init_mul_tables::sqr_hi#1 ← ++ (byte*) init_mul_tables::sqr_hi#2 [ init_mul_tables::i#2 init_mul_tables::sqr_lo#1 init_mul_tables::sqr_hi#1 init_mul_tables::sqr#3 ] ( main:2::init_mul_tables:5 [ init_mul_tables::i#2 init_mul_tables::sqr_lo#1 init_mul_tables::sqr_hi#1 init_mul_tables::sqr#3 ] ) [37] *((byte*) init_mul_tables::sqr_hi#2) ← (byte~) init_mul_tables::$6 [ init_mul_tables::i#2 init_mul_tables::sqr_hi#2 init_mul_tables::sqr_lo#1 init_mul_tables::i_2#2 init_mul_tables::sqr#3 ] ( main:2::init_mul_tables:5 [ init_mul_tables::i#2 init_mul_tables::sqr_hi#2 init_mul_tables::sqr_lo#1 init_mul_tables::i_2#2 init_mul_tables::sqr#3 ] )
[38] (word~) init_mul_tables::$7 ← (word) init_mul_tables::i#2 >> (byte/signed byte/word/signed word) 1 [ init_mul_tables::i#2 init_mul_tables::sqr_lo#1 init_mul_tables::sqr_hi#1 init_mul_tables::sqr#3 init_mul_tables::$7 ] ( main:2::init_mul_tables:5 [ init_mul_tables::i#2 init_mul_tables::sqr_lo#1 init_mul_tables::sqr_hi#1 init_mul_tables::sqr#3 init_mul_tables::$7 ] ) [38] (byte*) init_mul_tables::sqr_hi#1 ← ++ (byte*) init_mul_tables::sqr_hi#2 [ init_mul_tables::i#2 init_mul_tables::sqr_lo#1 init_mul_tables::sqr_hi#1 init_mul_tables::i_2#2 init_mul_tables::sqr#3 ] ( main:2::init_mul_tables:5 [ init_mul_tables::i#2 init_mul_tables::sqr_lo#1 init_mul_tables::sqr_hi#1 init_mul_tables::i_2#2 init_mul_tables::sqr#3 ] )
[39] (word) init_mul_tables::sqr#1 ← (word) init_mul_tables::sqr#3 + (word~) init_mul_tables::$7 [ init_mul_tables::i#2 init_mul_tables::sqr#1 init_mul_tables::sqr_lo#1 init_mul_tables::sqr_hi#1 ] ( main:2::init_mul_tables:5 [ init_mul_tables::i#2 init_mul_tables::sqr#1 init_mul_tables::sqr_lo#1 init_mul_tables::sqr_hi#1 ] ) [39] (word) init_mul_tables::sqr#1 ← (word) init_mul_tables::sqr#3 + (byte) init_mul_tables::i_2#2 [ init_mul_tables::i#2 init_mul_tables::sqr#1 init_mul_tables::sqr_lo#1 init_mul_tables::sqr_hi#1 init_mul_tables::i_2#2 ] ( main:2::init_mul_tables:5 [ init_mul_tables::i#2 init_mul_tables::sqr#1 init_mul_tables::sqr_lo#1 init_mul_tables::sqr_hi#1 init_mul_tables::i_2#2 ] )
[40] (word) init_mul_tables::i#1 ← ++ (word) init_mul_tables::i#2 [ init_mul_tables::i#1 init_mul_tables::sqr#1 init_mul_tables::sqr_lo#1 init_mul_tables::sqr_hi#1 ] ( main:2::init_mul_tables:5 [ init_mul_tables::i#1 init_mul_tables::sqr#1 init_mul_tables::sqr_lo#1 init_mul_tables::sqr_hi#1 ] ) [40] (word) init_mul_tables::i#1 ← ++ (word) init_mul_tables::i#2 [ init_mul_tables::i#1 init_mul_tables::sqr#1 init_mul_tables::sqr_lo#1 init_mul_tables::sqr_hi#1 init_mul_tables::i_2#2 ] ( main:2::init_mul_tables:5 [ init_mul_tables::i#1 init_mul_tables::sqr#1 init_mul_tables::sqr_lo#1 init_mul_tables::sqr_hi#1 init_mul_tables::i_2#2 ] )
[41] if((word) init_mul_tables::i#1!=(word/signed word) 512) goto init_mul_tables::@1 [ init_mul_tables::i#1 init_mul_tables::sqr#1 init_mul_tables::sqr_lo#1 init_mul_tables::sqr_hi#1 ] ( main:2::init_mul_tables:5 [ init_mul_tables::i#1 init_mul_tables::sqr#1 init_mul_tables::sqr_lo#1 init_mul_tables::sqr_hi#1 ] ) [41] if((word) init_mul_tables::i#1!=(word/signed word) 512) goto init_mul_tables::@1 [ init_mul_tables::i#1 init_mul_tables::sqr#1 init_mul_tables::sqr_lo#1 init_mul_tables::sqr_hi#1 init_mul_tables::i_2#2 ] ( main:2::init_mul_tables:5 [ init_mul_tables::i#1 init_mul_tables::sqr#1 init_mul_tables::sqr_lo#1 init_mul_tables::sqr_hi#1 init_mul_tables::i_2#2 ] )
to:init_mul_tables::@return to:init_mul_tables::@return
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
[42] return [ ] ( main:2::init_mul_tables:5 [ ] ) [42] return [ ] ( main:2::init_mul_tables:5 [ ] )

File diff suppressed because it is too large Load Diff

View File

@ -11,25 +11,28 @@
(byte~) init_mul_tables::$2 reg byte a 22.0 (byte~) init_mul_tables::$2 reg byte a 22.0
(byte~) init_mul_tables::$5 reg byte a 22.0 (byte~) init_mul_tables::$5 reg byte a 22.0
(byte~) init_mul_tables::$6 reg byte a 22.0 (byte~) init_mul_tables::$6 reg byte a 22.0
(word~) init_mul_tables::$7 $7 zp ZP_WORD:10 22.0
(label) init_mul_tables::@1 (label) init_mul_tables::@1
(label) init_mul_tables::@2 (label) init_mul_tables::@2
(label) init_mul_tables::@3 (label) init_mul_tables::@3
(label) init_mul_tables::@return (label) init_mul_tables::@return
(word) init_mul_tables::i (word) init_mul_tables::i
(word) init_mul_tables::i#1 i zp ZP_WORD:2 16.5 (word) init_mul_tables::i#1 i zp ZP_WORD:2 16.5
(word) init_mul_tables::i#2 i zp ZP_WORD:2 3.3846153846153846 (word) init_mul_tables::i#2 i zp ZP_WORD:2 2.5384615384615383
(byte) init_mul_tables::i_2
(byte) init_mul_tables::i_2#1 reg byte x 22.0
(byte) init_mul_tables::i_2#2 reg byte x 4.4
(byte) init_mul_tables::i_2#3 reg byte x 8.25
(word) init_mul_tables::sqr (word) init_mul_tables::sqr
(word) init_mul_tables::sqr#1 sqr zp ZP_WORD:8 7.333333333333333 (word) init_mul_tables::sqr#1 sqr zp ZP_WORD:8 7.333333333333333
(word) init_mul_tables::sqr#2 sqr zp ZP_WORD:8 22.0 (word) init_mul_tables::sqr#2 sqr zp ZP_WORD:8 11.0
(word) init_mul_tables::sqr#3 sqr zp ZP_WORD:8 6.875 (word) init_mul_tables::sqr#3 sqr zp ZP_WORD:8 7.857142857142857
(word) init_mul_tables::sqr#4 sqr zp ZP_WORD:8 11.0 (word) init_mul_tables::sqr#4 sqr zp ZP_WORD:8 11.0
(byte*) init_mul_tables::sqr_hi (byte*) init_mul_tables::sqr_hi
(byte*) init_mul_tables::sqr_hi#1 sqr_hi zp ZP_WORD:6 4.4 (byte*) init_mul_tables::sqr_hi#1 sqr_hi zp ZP_WORD:6 5.5
(byte*) init_mul_tables::sqr_hi#2 sqr_hi zp ZP_WORD:6 3.3000000000000003 (byte*) init_mul_tables::sqr_hi#2 sqr_hi zp ZP_WORD:6 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:4 2.75 (byte*) init_mul_tables::sqr_lo#1 sqr_lo zp ZP_WORD:4 3.142857142857143
(byte*) init_mul_tables::sqr_lo#2 sqr_lo zp ZP_WORD:4 4.714285714285714 (byte*) init_mul_tables::sqr_lo#2 sqr_lo zp ZP_WORD:4 4.125
(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,8 +62,8 @@ reg byte x [ mul_tables_compare::i#10 mul_tables_compare::i#1 ]
zp ZP_WORD:2 [ init_mul_tables::i#2 init_mul_tables::i#1 ] zp ZP_WORD:2 [ init_mul_tables::i#2 init_mul_tables::i#1 ]
zp ZP_WORD:4 [ init_mul_tables::sqr_lo#2 init_mul_tables::sqr_lo#1 ] 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 ] zp ZP_WORD:6 [ init_mul_tables::sqr_hi#2 init_mul_tables::sqr_hi#1 ]
reg byte x [ init_mul_tables::i_2#3 init_mul_tables::i_2#2 init_mul_tables::i_2#1 ]
zp ZP_WORD:8 [ init_mul_tables::sqr#3 init_mul_tables::sqr#4 init_mul_tables::sqr#1 init_mul_tables::sqr#2 ] zp ZP_WORD:8 [ 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 ]
reg byte a [ init_mul_tables::$6 ] reg byte a [ init_mul_tables::$6 ]
zp ZP_WORD:10 [ init_mul_tables::$7 ]