mirror of
https://gitlab.com/camelot/kickc.git
synced 2024-11-03 12:07:26 +00:00
Implemented all fast multiply tables.
This commit is contained in:
parent
db6c1f54db
commit
6b79ecc537
@ -44,6 +44,8 @@ public class Compiler {
|
||||
pass5GenerateAndOptimizeAsm();
|
||||
return program;
|
||||
} catch (Exception e) {
|
||||
System.out.println("EXCEPTION DURING COMPILE "+e.getMessage());
|
||||
System.out.println(getLog().toString());
|
||||
throw e;
|
||||
}
|
||||
}
|
||||
|
@ -20,7 +20,7 @@ import java.util.regex.Pattern;
|
||||
*/
|
||||
public class AsmFragmentManager {
|
||||
|
||||
static boolean verboseFragmentLog = false;
|
||||
static boolean verboseFragmentLog = true;
|
||||
|
||||
/**
|
||||
* Cache for fragment files. Maps signature to the parsed file.
|
||||
|
@ -0,0 +1,3 @@
|
||||
ldy #0
|
||||
cmp ({z1}),y
|
||||
beq {la1}
|
@ -0,0 +1 @@
|
||||
// do nothing
|
@ -2,6 +2,8 @@
|
||||
// See http://codebase64.org/doku.php?id=base:seriously_fast_multiplication
|
||||
// Utilizes the fact that a*b = ((a+b)/2)^2 - ((a-b)/2)^2
|
||||
|
||||
import "print.kc"
|
||||
|
||||
byte* BGCOL = $d021;
|
||||
|
||||
void main() {
|
||||
@ -10,32 +12,59 @@ void main() {
|
||||
mul_tables_compare();
|
||||
}
|
||||
|
||||
// mul_sqr tables will contain f(x)=int(x*x/4).
|
||||
byte[512] mul_sqr_lo;
|
||||
byte[512] mul_sqr_hi;
|
||||
// mul_sqr tables will contain f(x)=int(x*x/4) and g(x) = f(x-255).
|
||||
// <f(x) = <(( x * x )/4)
|
||||
byte[512] mul_sqr1_lo;
|
||||
// >f(x) = >(( x * x )/4)
|
||||
byte[512] mul_sqr1_hi;
|
||||
// <g(x) = <((( x - 255) * ( x - 255 ))/4)
|
||||
byte[512] mul_sqr2_lo;
|
||||
// >g(x) = >((( x - 255) * ( x - 255 ))/4)
|
||||
byte[512] mul_sqr2_hi;
|
||||
|
||||
// Initialize the mul_sqr multiplication tables with f(x)=int(x*x/4)
|
||||
void init_mul_tables() {
|
||||
// If f(x) = x*x/4 then f(x+1) = f(x) + x/2 + 1/4
|
||||
// Fill mul_sqr1 = f(x) = int(x*x/4): If f(x) = x*x/4 then f(x+1) = f(x) + x/2 + 1/4
|
||||
word sqr = 0; // sqr = (x*x)/4
|
||||
byte x_2 = 0; // x/2
|
||||
byte c = 0; // Counter used for determining x%2==0
|
||||
byte* sqr_hi = mul_sqr_hi+1;
|
||||
for(byte* sqr_lo = mul_sqr_lo+1; sqr_lo!=mul_sqr_lo+512; sqr_lo++) {
|
||||
byte* sqr1_hi = mul_sqr1_hi+1;
|
||||
for(byte* sqr1_lo = mul_sqr1_lo+1; sqr1_lo!=mul_sqr1_lo+512; sqr1_lo++) {
|
||||
if((++c&1)==0) {
|
||||
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_hi++ = >sqr;
|
||||
*sqr1_lo = <sqr;
|
||||
*sqr1_hi++ = >sqr;
|
||||
sqr = sqr + x_2; // sqr = sqr + i/2 (when uneven the 1/2 is not added here - see above)
|
||||
}
|
||||
|
||||
// Fill mul_sqr2 = g(x) = f(x-255) : If x-255<0 then g(x)=f(255-x) (because x*x = -x*-x)
|
||||
// g(0) = f(255), g(1) = f(254), ..., g(254) = f(1), g(255) = f(0), g(256) = f(1), ..., g(510) = f(255), g(511) = f(256)
|
||||
byte x_255 = (byte)-1; //Start with g(0)=f(255)
|
||||
byte dir = $ff; // Decrease or increase x_255 - initially we decrease
|
||||
byte* sqr2_hi = mul_sqr2_hi;
|
||||
for(byte* sqr2_lo = mul_sqr2_lo; sqr2_lo!=mul_sqr2_lo+511; sqr2_lo++) {
|
||||
*sqr2_lo = mul_sqr1_lo[x_255];
|
||||
*sqr2_hi++ = mul_sqr1_hi[x_255];
|
||||
x_255 = x_255 + dir;
|
||||
if(x_255==0) {
|
||||
dir = 1; // when x_255=0 then start counting up
|
||||
}
|
||||
}
|
||||
// Set the very last value g(511) = f(256)
|
||||
*(mul_sqr2_lo+511) = *(mul_sqr1_lo+256);
|
||||
*(mul_sqr2_hi+511) = *(mul_sqr1_hi+256);
|
||||
}
|
||||
|
||||
// ASM based multiplication tables
|
||||
byte[512] asm_mul_sqr_lo;
|
||||
byte[512] asm_mul_sqr_hi;
|
||||
// <(( x * x )/4)
|
||||
byte[512] asm_mul_sqr1_lo;
|
||||
// >(( x * x )/4)
|
||||
byte[512] asm_mul_sqr1_hi;
|
||||
// <((( x - 255) * ( x - 255 ))/4)
|
||||
byte[512] asm_mul_sqr2_lo;
|
||||
// >((( x - 255) * ( x - 255 ))/4)
|
||||
byte[512] asm_mul_sqr2_hi;
|
||||
// Initialize the multiplication tables using ASM code from
|
||||
// http://codebase64.org/doku.php?id=base:seriously_fast_multiplication
|
||||
void init_mul_tables_asm() {
|
||||
@ -47,7 +76,7 @@ void init_mul_tables_asm() {
|
||||
tya
|
||||
adc #$00
|
||||
ml1:
|
||||
sta asm_mul_sqr_hi,x
|
||||
sta asm_mul_sqr1_hi,x
|
||||
tay
|
||||
cmp #$40
|
||||
txa
|
||||
@ -57,28 +86,52 @@ void init_mul_tables_asm() {
|
||||
sta ml9+1
|
||||
inx
|
||||
ml0:
|
||||
sta asm_mul_sqr_lo,x
|
||||
sta asm_mul_sqr1_lo,x
|
||||
bne lb1
|
||||
inc ml0+2
|
||||
inc ml1+2
|
||||
clc
|
||||
iny
|
||||
bne lb1
|
||||
ldx #$00
|
||||
ldy #$ff
|
||||
!:
|
||||
lda asm_mul_sqr1_hi+1,x
|
||||
sta asm_mul_sqr2_hi+$100,x
|
||||
lda asm_mul_sqr1_hi,x
|
||||
sta asm_mul_sqr2_hi,y
|
||||
lda asm_mul_sqr1_lo+1,x
|
||||
sta asm_mul_sqr2_lo+$100,x
|
||||
lda asm_mul_sqr1_lo,x
|
||||
sta asm_mul_sqr2_lo,y
|
||||
dey
|
||||
inx
|
||||
bne !-
|
||||
}
|
||||
// Ensure the ASM tables are not detected as unused by the optimizer
|
||||
byte* mem = $ff;
|
||||
*mem = *asm_mul_sqr1_lo;
|
||||
*mem = *asm_mul_sqr1_hi;
|
||||
*mem = *asm_mul_sqr2_lo;
|
||||
*mem = *asm_mul_sqr2_hi;
|
||||
|
||||
}
|
||||
|
||||
// Compare the ASM-based mul tables with the KC-based mul tables
|
||||
// Red screen on failure - green on success
|
||||
void mul_tables_compare() {
|
||||
*BGCOL = 5;
|
||||
for( byte i: 0..255) {
|
||||
if(mul_sqr_lo[i] != asm_mul_sqr_lo[i])
|
||||
*BGCOL = 2;
|
||||
if((mul_sqr_hi+$100)[i] != (asm_mul_sqr_hi+$100)[i])
|
||||
*BGCOL = 2;
|
||||
if(mul_sqr_lo[i] != asm_mul_sqr_lo[i])
|
||||
*BGCOL = 2;
|
||||
if((mul_sqr_hi+$100)[i] != (asm_mul_sqr_hi+$100)[i])
|
||||
*BGCOL = 5;
|
||||
byte* asm_sqr = asm_mul_sqr1_lo;
|
||||
for( byte* kc_sqr=mul_sqr1_lo; kc_sqr<mul_sqr1_lo+512*4; kc_sqr++) {
|
||||
if(*kc_sqr != *asm_sqr) {
|
||||
*BGCOL = 2;
|
||||
print_cls();
|
||||
print_str("mul table mismatch at @");
|
||||
print_word((word)asm_sqr);
|
||||
print_str(" / @");
|
||||
print_word((word)kc_sqr);
|
||||
return;
|
||||
}
|
||||
asm_sqr++;
|
||||
}
|
||||
}
|
@ -2,10 +2,15 @@
|
||||
:BasicUpstart(main)
|
||||
.pc = $80d "Program"
|
||||
.const BGCOL = $d021
|
||||
mul_sqr_lo: .fill 512, 0
|
||||
mul_sqr_hi: .fill 512, 0
|
||||
asm_mul_sqr_lo: .fill 512, 0
|
||||
asm_mul_sqr_hi: .fill 512, 0
|
||||
.label char_cursor = 6
|
||||
mul_sqr1_lo: .fill 512, 0
|
||||
mul_sqr1_hi: .fill 512, 0
|
||||
mul_sqr2_lo: .fill 512, 0
|
||||
mul_sqr2_hi: .fill 512, 0
|
||||
asm_mul_sqr1_lo: .fill 512, 0
|
||||
asm_mul_sqr1_hi: .fill 512, 0
|
||||
asm_mul_sqr2_lo: .fill 512, 0
|
||||
asm_mul_sqr2_hi: .fill 512, 0
|
||||
jsr main
|
||||
main: {
|
||||
jsr init_mul_tables
|
||||
@ -14,40 +19,155 @@ main: {
|
||||
rts
|
||||
}
|
||||
mul_tables_compare: {
|
||||
.label asm_sqr = 4
|
||||
.label kc_sqr = 2
|
||||
lda #5
|
||||
sta BGCOL
|
||||
ldx #0
|
||||
lda #<asm_mul_sqr1_lo
|
||||
sta asm_sqr
|
||||
lda #>asm_mul_sqr1_lo
|
||||
sta asm_sqr+1
|
||||
lda #<mul_sqr1_lo
|
||||
sta kc_sqr
|
||||
lda #>mul_sqr1_lo
|
||||
sta kc_sqr+1
|
||||
b1:
|
||||
lda mul_sqr_lo,x
|
||||
cmp asm_mul_sqr_lo,x
|
||||
ldy #0
|
||||
lda (kc_sqr),y
|
||||
cmp (asm_sqr),y
|
||||
beq b2
|
||||
lda #2
|
||||
sta BGCOL
|
||||
jsr print_cls
|
||||
lda #<$400
|
||||
sta char_cursor
|
||||
lda #>$400
|
||||
sta char_cursor+1
|
||||
lda #<str
|
||||
sta print_str.str
|
||||
lda #>str
|
||||
sta print_str.str+1
|
||||
jsr print_str
|
||||
jsr print_word
|
||||
lda #<str1
|
||||
sta print_str.str
|
||||
lda #>str1
|
||||
sta print_str.str+1
|
||||
jsr print_str
|
||||
lda kc_sqr
|
||||
sta print_word.w
|
||||
lda kc_sqr+1
|
||||
sta print_word.w+1
|
||||
jsr print_word
|
||||
breturn:
|
||||
rts
|
||||
b2:
|
||||
lda mul_sqr_hi+$100,x
|
||||
cmp asm_mul_sqr_hi+$100,x
|
||||
beq b3
|
||||
lda #2
|
||||
sta BGCOL
|
||||
b3:
|
||||
lda mul_sqr_lo,x
|
||||
cmp asm_mul_sqr_lo,x
|
||||
beq b4
|
||||
lda #2
|
||||
sta BGCOL
|
||||
b4:
|
||||
lda mul_sqr_hi+$100,x
|
||||
cmp asm_mul_sqr_hi+$100,x
|
||||
beq b5
|
||||
lda #2
|
||||
sta BGCOL
|
||||
b5:
|
||||
inx
|
||||
cpx #0
|
||||
inc asm_sqr
|
||||
bne !+
|
||||
inc asm_sqr+1
|
||||
!:
|
||||
inc kc_sqr
|
||||
bne !+
|
||||
inc kc_sqr+1
|
||||
!:
|
||||
lda kc_sqr+1
|
||||
cmp #>mul_sqr1_lo+$200*4
|
||||
bcc b1
|
||||
bne !+
|
||||
lda kc_sqr
|
||||
cmp #<mul_sqr1_lo+$200*4
|
||||
bcc b1
|
||||
!:
|
||||
lda #<$400
|
||||
sta char_cursor
|
||||
lda #>$400
|
||||
sta char_cursor+1
|
||||
jmp breturn
|
||||
str: .text "mul table mismatch at @"
|
||||
str1: .text " / @"
|
||||
}
|
||||
print_word: {
|
||||
.label w = 4
|
||||
lda w+1
|
||||
tax
|
||||
jsr print_byte
|
||||
lda w
|
||||
tax
|
||||
jsr print_byte
|
||||
rts
|
||||
}
|
||||
print_byte: {
|
||||
txa
|
||||
lsr
|
||||
lsr
|
||||
lsr
|
||||
lsr
|
||||
tay
|
||||
lda hextab,y
|
||||
jsr print_char
|
||||
txa
|
||||
and #$f
|
||||
tax
|
||||
lda hextab,x
|
||||
jsr print_char
|
||||
rts
|
||||
hextab: .byte '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f'
|
||||
}
|
||||
print_char: {
|
||||
ldy #0
|
||||
sta (char_cursor),y
|
||||
inc char_cursor
|
||||
bne !+
|
||||
inc char_cursor+1
|
||||
!:
|
||||
rts
|
||||
}
|
||||
print_str: {
|
||||
.label str = 8
|
||||
b1:
|
||||
ldy #0
|
||||
lda (str),y
|
||||
cmp #'@'
|
||||
bne b2
|
||||
rts
|
||||
b2:
|
||||
ldy #0
|
||||
lda (str),y
|
||||
sta (char_cursor),y
|
||||
inc char_cursor
|
||||
bne !+
|
||||
inc char_cursor+1
|
||||
!:
|
||||
inc str
|
||||
bne !+
|
||||
inc str+1
|
||||
!:
|
||||
jmp b1
|
||||
}
|
||||
print_cls: {
|
||||
.label sc = 6
|
||||
lda #<$400
|
||||
sta sc
|
||||
lda #>$400
|
||||
sta sc+1
|
||||
b1:
|
||||
ldy #0
|
||||
lda #' '
|
||||
sta (sc),y
|
||||
inc sc
|
||||
bne !+
|
||||
inc sc+1
|
||||
!:
|
||||
lda sc+1
|
||||
cmp #>$400+$3e8
|
||||
bne b1
|
||||
lda sc
|
||||
cmp #<$400+$3e8
|
||||
bne b1
|
||||
rts
|
||||
}
|
||||
init_mul_tables_asm: {
|
||||
.const mem = $ff
|
||||
ldx #0
|
||||
txa
|
||||
.byte $c9
|
||||
@ -55,7 +175,7 @@ init_mul_tables_asm: {
|
||||
tya
|
||||
adc #0
|
||||
ml1:
|
||||
sta asm_mul_sqr_hi,x
|
||||
sta asm_mul_sqr1_hi,x
|
||||
tay
|
||||
cmp #$40
|
||||
txa
|
||||
@ -65,30 +185,55 @@ init_mul_tables_asm: {
|
||||
sta ml9+1
|
||||
inx
|
||||
ml0:
|
||||
sta asm_mul_sqr_lo,x
|
||||
sta asm_mul_sqr1_lo,x
|
||||
bne lb1
|
||||
inc ml0+2
|
||||
inc ml1+2
|
||||
clc
|
||||
iny
|
||||
bne lb1
|
||||
ldx #0
|
||||
ldy #$ff
|
||||
!:
|
||||
lda asm_mul_sqr1_hi+1,x
|
||||
sta asm_mul_sqr2_hi+$100,x
|
||||
lda asm_mul_sqr1_hi,x
|
||||
sta asm_mul_sqr2_hi,y
|
||||
lda asm_mul_sqr1_lo+1,x
|
||||
sta asm_mul_sqr2_lo+$100,x
|
||||
lda asm_mul_sqr1_lo,x
|
||||
sta asm_mul_sqr2_lo,y
|
||||
dey
|
||||
inx
|
||||
bne !-
|
||||
lda asm_mul_sqr1_lo
|
||||
sta mem
|
||||
lda asm_mul_sqr1_hi
|
||||
sta mem
|
||||
lda asm_mul_sqr2_lo
|
||||
sta mem
|
||||
lda asm_mul_sqr2_hi
|
||||
sta mem
|
||||
rts
|
||||
}
|
||||
init_mul_tables: {
|
||||
.label sqr_hi = 4
|
||||
.label sqr = 7
|
||||
.label sqr_lo = 2
|
||||
.label x_2 = 6
|
||||
.label sqr1_hi = 4
|
||||
.label sqr = 6
|
||||
.label sqr1_lo = 2
|
||||
.label x_2 = $a
|
||||
.label sqr2_hi = 4
|
||||
.label sqr2_lo = 2
|
||||
.label dir = $a
|
||||
lda #0
|
||||
sta x_2
|
||||
lda #<mul_sqr_hi+1
|
||||
sta sqr_hi
|
||||
lda #>mul_sqr_hi+1
|
||||
sta sqr_hi+1
|
||||
lda #<mul_sqr_lo+1
|
||||
sta sqr_lo
|
||||
lda #>mul_sqr_lo+1
|
||||
sta sqr_lo+1
|
||||
lda #<mul_sqr1_hi+1
|
||||
sta sqr1_hi
|
||||
lda #>mul_sqr1_hi+1
|
||||
sta sqr1_hi+1
|
||||
lda #<mul_sqr1_lo+1
|
||||
sta sqr1_lo
|
||||
lda #>mul_sqr1_lo+1
|
||||
sta sqr1_lo+1
|
||||
lda #0
|
||||
sta sqr
|
||||
sta sqr+1
|
||||
@ -107,12 +252,12 @@ init_mul_tables: {
|
||||
b2:
|
||||
lda sqr
|
||||
ldy #0
|
||||
sta (sqr_lo),y
|
||||
sta (sqr1_lo),y
|
||||
lda sqr+1
|
||||
sta (sqr_hi),y
|
||||
inc sqr_hi
|
||||
sta (sqr1_hi),y
|
||||
inc sqr1_hi
|
||||
bne !+
|
||||
inc sqr_hi+1
|
||||
inc sqr1_hi+1
|
||||
!:
|
||||
lda x_2
|
||||
clc
|
||||
@ -121,15 +266,59 @@ init_mul_tables: {
|
||||
bcc !+
|
||||
inc sqr+1
|
||||
!:
|
||||
inc sqr_lo
|
||||
inc sqr1_lo
|
||||
bne !+
|
||||
inc sqr_lo+1
|
||||
inc sqr1_lo+1
|
||||
!:
|
||||
lda sqr_lo+1
|
||||
cmp #>mul_sqr_lo+$200
|
||||
lda sqr1_lo+1
|
||||
cmp #>mul_sqr1_lo+$200
|
||||
bne b1
|
||||
lda sqr_lo
|
||||
cmp #<mul_sqr_lo+$200
|
||||
lda sqr1_lo
|
||||
cmp #<mul_sqr1_lo+$200
|
||||
bne b1
|
||||
lda #$ff
|
||||
sta dir
|
||||
lda #<mul_sqr2_hi
|
||||
sta sqr2_hi
|
||||
lda #>mul_sqr2_hi
|
||||
sta sqr2_hi+1
|
||||
lda #<mul_sqr2_lo
|
||||
sta sqr2_lo
|
||||
lda #>mul_sqr2_lo
|
||||
sta sqr2_lo+1
|
||||
ldx #-1
|
||||
b3:
|
||||
lda mul_sqr1_lo,x
|
||||
ldy #0
|
||||
sta (sqr2_lo),y
|
||||
lda mul_sqr1_hi,x
|
||||
sta (sqr2_hi),y
|
||||
inc sqr2_hi
|
||||
bne !+
|
||||
inc sqr2_hi+1
|
||||
!:
|
||||
txa
|
||||
clc
|
||||
adc dir
|
||||
tax
|
||||
cpx #0
|
||||
bne b4
|
||||
lda #1
|
||||
sta dir
|
||||
b4:
|
||||
inc sqr2_lo
|
||||
bne !+
|
||||
inc sqr2_lo+1
|
||||
!:
|
||||
lda sqr2_lo+1
|
||||
cmp #>mul_sqr2_lo+$1ff
|
||||
bne b3
|
||||
lda sqr2_lo
|
||||
cmp #<mul_sqr2_lo+$1ff
|
||||
bne b3
|
||||
lda mul_sqr1_lo+$100
|
||||
sta mul_sqr2_lo+$1ff
|
||||
lda mul_sqr1_hi+$100
|
||||
sta mul_sqr2_hi+$1ff
|
||||
rts
|
||||
}
|
||||
|
@ -1,13 +1,13 @@
|
||||
@begin: scope:[] from
|
||||
[0] phi() [ ] ( )
|
||||
to:@4
|
||||
@4: scope:[] from @begin
|
||||
to:@10
|
||||
@10: scope:[] from @begin
|
||||
[1] phi() [ ] ( )
|
||||
[2] call main param-assignment [ ] ( )
|
||||
to:@end
|
||||
@end: scope:[] from @4
|
||||
@end: scope:[] from @10
|
||||
[3] phi() [ ] ( )
|
||||
main: scope:[main] from @4
|
||||
main: scope:[main] from @10
|
||||
[4] phi() [ ] ( main:2 [ ] )
|
||||
[5] call init_mul_tables param-assignment [ ] ( main:2 [ ] )
|
||||
to:main::@1
|
||||
@ -25,73 +25,167 @@ main::@return: scope:[main] from main::@2
|
||||
mul_tables_compare: scope:[mul_tables_compare] from main::@2
|
||||
[11] *((const byte*) BGCOL#0) ← (byte/signed byte/word/signed word) 5 [ ] ( main:2::mul_tables_compare:9 [ ] )
|
||||
to:mul_tables_compare::@1
|
||||
mul_tables_compare::@1: scope:[mul_tables_compare] from mul_tables_compare mul_tables_compare::@5
|
||||
[12] (byte) mul_tables_compare::i#10 ← phi( mul_tables_compare/(byte/signed byte/word/signed word) 0 mul_tables_compare::@5/(byte) mul_tables_compare::i#1 ) [ mul_tables_compare::i#10 ] ( main:2::mul_tables_compare:9 [ mul_tables_compare::i#10 ] )
|
||||
[13] if(*((const byte[512]) mul_sqr_lo#0 + (byte) mul_tables_compare::i#10)==*((const byte[512]) asm_mul_sqr_lo#0 + (byte) mul_tables_compare::i#10)) goto mul_tables_compare::@2 [ mul_tables_compare::i#10 ] ( main:2::mul_tables_compare:9 [ mul_tables_compare::i#10 ] )
|
||||
to:mul_tables_compare::@6
|
||||
mul_tables_compare::@6: scope:[mul_tables_compare] from mul_tables_compare::@1
|
||||
[14] *((const byte*) BGCOL#0) ← (byte/signed byte/word/signed word) 2 [ mul_tables_compare::i#10 ] ( main:2::mul_tables_compare:9 [ mul_tables_compare::i#10 ] )
|
||||
to:mul_tables_compare::@2
|
||||
mul_tables_compare::@2: scope:[mul_tables_compare] from mul_tables_compare::@1 mul_tables_compare::@6
|
||||
[15] if(*((const byte[512]) mul_sqr_hi#0+(word/signed word) 256 + (byte) mul_tables_compare::i#10)==*((const byte[512]) asm_mul_sqr_hi#0+(word/signed word) 256 + (byte) mul_tables_compare::i#10)) goto mul_tables_compare::@3 [ mul_tables_compare::i#10 ] ( main:2::mul_tables_compare:9 [ mul_tables_compare::i#10 ] )
|
||||
to:mul_tables_compare::@7
|
||||
mul_tables_compare::@7: scope:[mul_tables_compare] from mul_tables_compare::@2
|
||||
[16] *((const byte*) BGCOL#0) ← (byte/signed byte/word/signed word) 2 [ mul_tables_compare::i#10 ] ( main:2::mul_tables_compare:9 [ mul_tables_compare::i#10 ] )
|
||||
mul_tables_compare::@1: scope:[mul_tables_compare] from mul_tables_compare mul_tables_compare::@2
|
||||
[12] (byte*) mul_tables_compare::asm_sqr#2 ← phi( mul_tables_compare/(const byte[512]) asm_mul_sqr1_lo#0 mul_tables_compare::@2/(byte*) mul_tables_compare::asm_sqr#1 ) [ mul_tables_compare::kc_sqr#2 mul_tables_compare::asm_sqr#2 ] ( main:2::mul_tables_compare:9 [ mul_tables_compare::kc_sqr#2 mul_tables_compare::asm_sqr#2 ] )
|
||||
[12] (byte*) mul_tables_compare::kc_sqr#2 ← phi( mul_tables_compare/(const byte[512]) mul_sqr1_lo#0 mul_tables_compare::@2/(byte*) mul_tables_compare::kc_sqr#1 ) [ mul_tables_compare::kc_sqr#2 mul_tables_compare::asm_sqr#2 ] ( main:2::mul_tables_compare:9 [ mul_tables_compare::kc_sqr#2 mul_tables_compare::asm_sqr#2 ] )
|
||||
[13] if(*((byte*) mul_tables_compare::kc_sqr#2)==*((byte*) mul_tables_compare::asm_sqr#2)) goto mul_tables_compare::@2 [ mul_tables_compare::kc_sqr#2 mul_tables_compare::asm_sqr#2 ] ( main:2::mul_tables_compare:9 [ mul_tables_compare::kc_sqr#2 mul_tables_compare::asm_sqr#2 ] )
|
||||
to:mul_tables_compare::@3
|
||||
mul_tables_compare::@3: scope:[mul_tables_compare] from mul_tables_compare::@2 mul_tables_compare::@7
|
||||
[17] if(*((const byte[512]) mul_sqr_lo#0 + (byte) mul_tables_compare::i#10)==*((const byte[512]) asm_mul_sqr_lo#0 + (byte) mul_tables_compare::i#10)) goto mul_tables_compare::@4 [ mul_tables_compare::i#10 ] ( main:2::mul_tables_compare:9 [ mul_tables_compare::i#10 ] )
|
||||
mul_tables_compare::@3: scope:[mul_tables_compare] from mul_tables_compare::@1
|
||||
[14] *((const byte*) BGCOL#0) ← (byte/signed byte/word/signed word) 2 [ mul_tables_compare::kc_sqr#2 mul_tables_compare::asm_sqr#2 ] ( main:2::mul_tables_compare:9 [ mul_tables_compare::kc_sqr#2 mul_tables_compare::asm_sqr#2 ] )
|
||||
[15] call print_cls param-assignment [ mul_tables_compare::kc_sqr#2 mul_tables_compare::asm_sqr#2 ] ( main:2::mul_tables_compare:9 [ mul_tables_compare::kc_sqr#2 mul_tables_compare::asm_sqr#2 ] )
|
||||
to:mul_tables_compare::@6
|
||||
mul_tables_compare::@6: scope:[mul_tables_compare] from mul_tables_compare::@3
|
||||
[16] phi() [ mul_tables_compare::kc_sqr#2 mul_tables_compare::asm_sqr#2 ] ( main:2::mul_tables_compare:9 [ mul_tables_compare::kc_sqr#2 mul_tables_compare::asm_sqr#2 ] )
|
||||
[17] call print_str param-assignment [ mul_tables_compare::kc_sqr#2 mul_tables_compare::asm_sqr#2 char_cursor#19 ] ( main:2::mul_tables_compare:9 [ mul_tables_compare::kc_sqr#2 mul_tables_compare::asm_sqr#2 char_cursor#19 ] )
|
||||
to:mul_tables_compare::@7
|
||||
mul_tables_compare::@7: scope:[mul_tables_compare] from mul_tables_compare::@6
|
||||
[18] (word) print_word::w#0 ← ((word)) (byte*) mul_tables_compare::asm_sqr#2 [ mul_tables_compare::kc_sqr#2 print_word::w#0 char_cursor#19 ] ( main:2::mul_tables_compare:9 [ mul_tables_compare::kc_sqr#2 print_word::w#0 char_cursor#19 ] )
|
||||
[19] call print_word param-assignment [ mul_tables_compare::kc_sqr#2 char_cursor#10 ] ( main:2::mul_tables_compare:9 [ mul_tables_compare::kc_sqr#2 char_cursor#10 ] )
|
||||
to:mul_tables_compare::@8
|
||||
mul_tables_compare::@8: scope:[mul_tables_compare] from mul_tables_compare::@3
|
||||
[18] *((const byte*) BGCOL#0) ← (byte/signed byte/word/signed word) 2 [ mul_tables_compare::i#10 ] ( main:2::mul_tables_compare:9 [ mul_tables_compare::i#10 ] )
|
||||
to:mul_tables_compare::@4
|
||||
mul_tables_compare::@4: scope:[mul_tables_compare] from mul_tables_compare::@3 mul_tables_compare::@8
|
||||
[19] if(*((const byte[512]) mul_sqr_hi#0+(word/signed word) 256 + (byte) mul_tables_compare::i#10)==*((const byte[512]) asm_mul_sqr_hi#0+(word/signed word) 256 + (byte) mul_tables_compare::i#10)) goto mul_tables_compare::@5 [ mul_tables_compare::i#10 ] ( main:2::mul_tables_compare:9 [ mul_tables_compare::i#10 ] )
|
||||
mul_tables_compare::@8: scope:[mul_tables_compare] from mul_tables_compare::@7
|
||||
[20] phi() [ mul_tables_compare::kc_sqr#2 char_cursor#10 ] ( main:2::mul_tables_compare:9 [ mul_tables_compare::kc_sqr#2 char_cursor#10 ] )
|
||||
[21] call print_str param-assignment [ mul_tables_compare::kc_sqr#2 char_cursor#19 ] ( main:2::mul_tables_compare:9 [ mul_tables_compare::kc_sqr#2 char_cursor#19 ] )
|
||||
to:mul_tables_compare::@9
|
||||
mul_tables_compare::@9: scope:[mul_tables_compare] from mul_tables_compare::@4
|
||||
[20] *((const byte*) BGCOL#0) ← (byte/signed byte/word/signed word) 2 [ mul_tables_compare::i#10 ] ( main:2::mul_tables_compare:9 [ mul_tables_compare::i#10 ] )
|
||||
to:mul_tables_compare::@5
|
||||
mul_tables_compare::@5: scope:[mul_tables_compare] from mul_tables_compare::@4 mul_tables_compare::@9
|
||||
[21] (byte) mul_tables_compare::i#1 ← ++ (byte) mul_tables_compare::i#10 [ mul_tables_compare::i#1 ] ( main:2::mul_tables_compare:9 [ mul_tables_compare::i#1 ] )
|
||||
[22] if((byte) mul_tables_compare::i#1!=(byte/signed byte/word/signed word) 0) goto mul_tables_compare::@1 [ mul_tables_compare::i#1 ] ( main:2::mul_tables_compare:9 [ mul_tables_compare::i#1 ] )
|
||||
mul_tables_compare::@9: scope:[mul_tables_compare] from mul_tables_compare::@8
|
||||
[22] (word) print_word::w#1 ← ((word)) (byte*) mul_tables_compare::kc_sqr#2 [ print_word::w#1 char_cursor#19 ] ( main:2::mul_tables_compare:9 [ print_word::w#1 char_cursor#19 ] )
|
||||
[23] call print_word param-assignment [ char_cursor#10 ] ( main:2::mul_tables_compare:9 [ char_cursor#10 ] )
|
||||
to:mul_tables_compare::@return
|
||||
mul_tables_compare::@return: scope:[mul_tables_compare] from mul_tables_compare::@5
|
||||
[23] return [ ] ( main:2::mul_tables_compare:9 [ ] )
|
||||
mul_tables_compare::@return: scope:[mul_tables_compare] from mul_tables_compare::@2 mul_tables_compare::@9
|
||||
[24] (byte*) char_cursor#17 ← phi( mul_tables_compare::@9/(byte*) char_cursor#10 mul_tables_compare::@2/((byte*))(word/signed word) 1024 ) [ ] ( main:2::mul_tables_compare:9 [ ] )
|
||||
[25] return [ ] ( main:2::mul_tables_compare:9 [ ] )
|
||||
to:@return
|
||||
mul_tables_compare::@2: scope:[mul_tables_compare] from mul_tables_compare::@1
|
||||
[26] (byte*) mul_tables_compare::asm_sqr#1 ← ++ (byte*) mul_tables_compare::asm_sqr#2 [ mul_tables_compare::kc_sqr#2 mul_tables_compare::asm_sqr#1 ] ( main:2::mul_tables_compare:9 [ mul_tables_compare::kc_sqr#2 mul_tables_compare::asm_sqr#1 ] )
|
||||
[27] (byte*) mul_tables_compare::kc_sqr#1 ← ++ (byte*) mul_tables_compare::kc_sqr#2 [ mul_tables_compare::kc_sqr#1 mul_tables_compare::asm_sqr#1 ] ( main:2::mul_tables_compare:9 [ mul_tables_compare::kc_sqr#1 mul_tables_compare::asm_sqr#1 ] )
|
||||
[28] if((byte*) mul_tables_compare::kc_sqr#1<(const byte[512]) mul_sqr1_lo#0+(word/signed word) 512*(byte/signed byte/word/signed word) 4) goto mul_tables_compare::@1 [ mul_tables_compare::kc_sqr#1 mul_tables_compare::asm_sqr#1 ] ( main:2::mul_tables_compare:9 [ mul_tables_compare::kc_sqr#1 mul_tables_compare::asm_sqr#1 ] )
|
||||
to:mul_tables_compare::@return
|
||||
print_word: scope:[print_word] from mul_tables_compare::@7 mul_tables_compare::@9
|
||||
[29] (word) print_word::w#2 ← phi( mul_tables_compare::@7/(word) print_word::w#0 mul_tables_compare::@9/(word) print_word::w#1 ) [ print_word::w#2 char_cursor#19 ] ( main:2::mul_tables_compare:9::print_word:19 [ mul_tables_compare::kc_sqr#2 print_word::w#2 char_cursor#19 ] main:2::mul_tables_compare:9::print_word:23 [ print_word::w#2 char_cursor#19 ] )
|
||||
[30] (byte) print_byte::b#0 ← > (word) print_word::w#2 [ print_word::w#2 print_byte::b#0 char_cursor#19 ] ( main:2::mul_tables_compare:9::print_word:19 [ mul_tables_compare::kc_sqr#2 print_word::w#2 print_byte::b#0 char_cursor#19 ] main:2::mul_tables_compare:9::print_word:23 [ print_word::w#2 print_byte::b#0 char_cursor#19 ] )
|
||||
[31] call print_byte param-assignment [ char_cursor#10 print_word::w#2 ] ( main:2::mul_tables_compare:9::print_word:19 [ mul_tables_compare::kc_sqr#2 char_cursor#10 print_word::w#2 ] main:2::mul_tables_compare:9::print_word:23 [ char_cursor#10 print_word::w#2 ] )
|
||||
to:print_word::@1
|
||||
print_word::@1: scope:[print_word] from print_word
|
||||
[32] (byte) print_byte::b#1 ← < (word) print_word::w#2 [ char_cursor#10 print_byte::b#1 ] ( main:2::mul_tables_compare:9::print_word:19 [ mul_tables_compare::kc_sqr#2 char_cursor#10 print_byte::b#1 ] main:2::mul_tables_compare:9::print_word:23 [ char_cursor#10 print_byte::b#1 ] )
|
||||
[33] call print_byte param-assignment [ char_cursor#10 ] ( main:2::mul_tables_compare:9::print_word:19 [ mul_tables_compare::kc_sqr#2 char_cursor#10 ] main:2::mul_tables_compare:9::print_word:23 [ char_cursor#10 ] )
|
||||
to:print_word::@return
|
||||
print_word::@return: scope:[print_word] from print_word::@1
|
||||
[34] return [ char_cursor#10 ] ( main:2::mul_tables_compare:9::print_word:19 [ mul_tables_compare::kc_sqr#2 char_cursor#10 ] main:2::mul_tables_compare:9::print_word:23 [ char_cursor#10 ] )
|
||||
to:@return
|
||||
print_byte: scope:[print_byte] from print_word print_word::@1
|
||||
[35] (byte*) char_cursor#39 ← phi( print_word/(byte*) char_cursor#19 print_word::@1/(byte*) char_cursor#10 ) [ print_byte::b#2 char_cursor#39 ] ( main:2::mul_tables_compare:9::print_word:19::print_byte:31 [ mul_tables_compare::kc_sqr#2 print_word::w#2 print_byte::b#2 char_cursor#39 ] main:2::mul_tables_compare:9::print_word:23::print_byte:31 [ print_word::w#2 print_byte::b#2 char_cursor#39 ] main:2::mul_tables_compare:9::print_word:19::print_byte:33 [ mul_tables_compare::kc_sqr#2 print_byte::b#2 char_cursor#39 ] main:2::mul_tables_compare:9::print_word:23::print_byte:33 [ print_byte::b#2 char_cursor#39 ] )
|
||||
[35] (byte) print_byte::b#2 ← phi( print_word/(byte) print_byte::b#0 print_word::@1/(byte) print_byte::b#1 ) [ print_byte::b#2 char_cursor#39 ] ( main:2::mul_tables_compare:9::print_word:19::print_byte:31 [ mul_tables_compare::kc_sqr#2 print_word::w#2 print_byte::b#2 char_cursor#39 ] main:2::mul_tables_compare:9::print_word:23::print_byte:31 [ print_word::w#2 print_byte::b#2 char_cursor#39 ] main:2::mul_tables_compare:9::print_word:19::print_byte:33 [ mul_tables_compare::kc_sqr#2 print_byte::b#2 char_cursor#39 ] main:2::mul_tables_compare:9::print_word:23::print_byte:33 [ print_byte::b#2 char_cursor#39 ] )
|
||||
[36] (byte~) print_byte::$0 ← (byte) print_byte::b#2 >> (byte/signed byte/word/signed word) 4 [ print_byte::b#2 char_cursor#39 print_byte::$0 ] ( main:2::mul_tables_compare:9::print_word:19::print_byte:31 [ mul_tables_compare::kc_sqr#2 print_word::w#2 print_byte::b#2 char_cursor#39 print_byte::$0 ] main:2::mul_tables_compare:9::print_word:23::print_byte:31 [ print_word::w#2 print_byte::b#2 char_cursor#39 print_byte::$0 ] main:2::mul_tables_compare:9::print_word:19::print_byte:33 [ mul_tables_compare::kc_sqr#2 print_byte::b#2 char_cursor#39 print_byte::$0 ] main:2::mul_tables_compare:9::print_word:23::print_byte:33 [ print_byte::b#2 char_cursor#39 print_byte::$0 ] )
|
||||
[37] (byte) print_char::ch#0 ← *((const byte[]) print_byte::hextab#0 + (byte~) print_byte::$0) [ print_byte::b#2 char_cursor#39 print_char::ch#0 ] ( main:2::mul_tables_compare:9::print_word:19::print_byte:31 [ mul_tables_compare::kc_sqr#2 print_word::w#2 print_byte::b#2 char_cursor#39 print_char::ch#0 ] main:2::mul_tables_compare:9::print_word:23::print_byte:31 [ print_word::w#2 print_byte::b#2 char_cursor#39 print_char::ch#0 ] main:2::mul_tables_compare:9::print_word:19::print_byte:33 [ mul_tables_compare::kc_sqr#2 print_byte::b#2 char_cursor#39 print_char::ch#0 ] main:2::mul_tables_compare:9::print_word:23::print_byte:33 [ print_byte::b#2 char_cursor#39 print_char::ch#0 ] )
|
||||
[38] call print_char param-assignment [ char_cursor#10 print_byte::b#2 ] ( main:2::mul_tables_compare:9::print_word:19::print_byte:31 [ mul_tables_compare::kc_sqr#2 print_word::w#2 char_cursor#10 print_byte::b#2 ] main:2::mul_tables_compare:9::print_word:23::print_byte:31 [ print_word::w#2 char_cursor#10 print_byte::b#2 ] main:2::mul_tables_compare:9::print_word:19::print_byte:33 [ mul_tables_compare::kc_sqr#2 char_cursor#10 print_byte::b#2 ] main:2::mul_tables_compare:9::print_word:23::print_byte:33 [ char_cursor#10 print_byte::b#2 ] )
|
||||
to:print_byte::@1
|
||||
print_byte::@1: scope:[print_byte] from print_byte
|
||||
[39] (byte~) print_byte::$2 ← (byte) print_byte::b#2 & (byte/signed byte/word/signed word) 15 [ char_cursor#10 print_byte::$2 ] ( main:2::mul_tables_compare:9::print_word:19::print_byte:31 [ mul_tables_compare::kc_sqr#2 print_word::w#2 char_cursor#10 print_byte::$2 ] main:2::mul_tables_compare:9::print_word:23::print_byte:31 [ print_word::w#2 char_cursor#10 print_byte::$2 ] main:2::mul_tables_compare:9::print_word:19::print_byte:33 [ mul_tables_compare::kc_sqr#2 char_cursor#10 print_byte::$2 ] main:2::mul_tables_compare:9::print_word:23::print_byte:33 [ char_cursor#10 print_byte::$2 ] )
|
||||
[40] (byte) print_char::ch#1 ← *((const byte[]) print_byte::hextab#0 + (byte~) print_byte::$2) [ char_cursor#10 print_char::ch#1 ] ( main:2::mul_tables_compare:9::print_word:19::print_byte:31 [ mul_tables_compare::kc_sqr#2 print_word::w#2 char_cursor#10 print_char::ch#1 ] main:2::mul_tables_compare:9::print_word:23::print_byte:31 [ print_word::w#2 char_cursor#10 print_char::ch#1 ] main:2::mul_tables_compare:9::print_word:19::print_byte:33 [ mul_tables_compare::kc_sqr#2 char_cursor#10 print_char::ch#1 ] main:2::mul_tables_compare:9::print_word:23::print_byte:33 [ char_cursor#10 print_char::ch#1 ] )
|
||||
[41] call print_char param-assignment [ char_cursor#10 ] ( main:2::mul_tables_compare:9::print_word:19::print_byte:31 [ mul_tables_compare::kc_sqr#2 print_word::w#2 char_cursor#10 ] main:2::mul_tables_compare:9::print_word:23::print_byte:31 [ print_word::w#2 char_cursor#10 ] main:2::mul_tables_compare:9::print_word:19::print_byte:33 [ mul_tables_compare::kc_sqr#2 char_cursor#10 ] main:2::mul_tables_compare:9::print_word:23::print_byte:33 [ char_cursor#10 ] )
|
||||
to:print_byte::@return
|
||||
print_byte::@return: scope:[print_byte] from print_byte::@1
|
||||
[42] return [ char_cursor#10 ] ( main:2::mul_tables_compare:9::print_word:19::print_byte:31 [ mul_tables_compare::kc_sqr#2 print_word::w#2 char_cursor#10 ] main:2::mul_tables_compare:9::print_word:23::print_byte:31 [ print_word::w#2 char_cursor#10 ] main:2::mul_tables_compare:9::print_word:19::print_byte:33 [ mul_tables_compare::kc_sqr#2 char_cursor#10 ] main:2::mul_tables_compare:9::print_word:23::print_byte:33 [ char_cursor#10 ] )
|
||||
to:@return
|
||||
print_char: scope:[print_char] from print_byte print_byte::@1
|
||||
[43] (byte*) char_cursor#27 ← phi( print_byte/(byte*) char_cursor#39 print_byte::@1/(byte*) char_cursor#10 ) [ print_char::ch#2 char_cursor#27 ] ( main:2::mul_tables_compare:9::print_word:19::print_byte:31::print_char:38 [ mul_tables_compare::kc_sqr#2 print_word::w#2 print_byte::b#2 print_char::ch#2 char_cursor#27 ] main:2::mul_tables_compare:9::print_word:23::print_byte:31::print_char:38 [ print_word::w#2 print_byte::b#2 print_char::ch#2 char_cursor#27 ] main:2::mul_tables_compare:9::print_word:19::print_byte:33::print_char:38 [ mul_tables_compare::kc_sqr#2 print_byte::b#2 print_char::ch#2 char_cursor#27 ] main:2::mul_tables_compare:9::print_word:23::print_byte:33::print_char:38 [ print_byte::b#2 print_char::ch#2 char_cursor#27 ] main:2::mul_tables_compare:9::print_word:19::print_byte:31::print_char:41 [ mul_tables_compare::kc_sqr#2 print_word::w#2 print_char::ch#2 char_cursor#27 ] main:2::mul_tables_compare:9::print_word:23::print_byte:31::print_char:41 [ print_word::w#2 print_char::ch#2 char_cursor#27 ] main:2::mul_tables_compare:9::print_word:19::print_byte:33::print_char:41 [ mul_tables_compare::kc_sqr#2 print_char::ch#2 char_cursor#27 ] main:2::mul_tables_compare:9::print_word:23::print_byte:33::print_char:41 [ print_char::ch#2 char_cursor#27 ] )
|
||||
[43] (byte) print_char::ch#2 ← phi( print_byte/(byte) print_char::ch#0 print_byte::@1/(byte) print_char::ch#1 ) [ print_char::ch#2 char_cursor#27 ] ( main:2::mul_tables_compare:9::print_word:19::print_byte:31::print_char:38 [ mul_tables_compare::kc_sqr#2 print_word::w#2 print_byte::b#2 print_char::ch#2 char_cursor#27 ] main:2::mul_tables_compare:9::print_word:23::print_byte:31::print_char:38 [ print_word::w#2 print_byte::b#2 print_char::ch#2 char_cursor#27 ] main:2::mul_tables_compare:9::print_word:19::print_byte:33::print_char:38 [ mul_tables_compare::kc_sqr#2 print_byte::b#2 print_char::ch#2 char_cursor#27 ] main:2::mul_tables_compare:9::print_word:23::print_byte:33::print_char:38 [ print_byte::b#2 print_char::ch#2 char_cursor#27 ] main:2::mul_tables_compare:9::print_word:19::print_byte:31::print_char:41 [ mul_tables_compare::kc_sqr#2 print_word::w#2 print_char::ch#2 char_cursor#27 ] main:2::mul_tables_compare:9::print_word:23::print_byte:31::print_char:41 [ print_word::w#2 print_char::ch#2 char_cursor#27 ] main:2::mul_tables_compare:9::print_word:19::print_byte:33::print_char:41 [ mul_tables_compare::kc_sqr#2 print_char::ch#2 char_cursor#27 ] main:2::mul_tables_compare:9::print_word:23::print_byte:33::print_char:41 [ print_char::ch#2 char_cursor#27 ] )
|
||||
[44] *((byte*) char_cursor#27) ← (byte) print_char::ch#2 [ char_cursor#27 ] ( main:2::mul_tables_compare:9::print_word:19::print_byte:31::print_char:38 [ mul_tables_compare::kc_sqr#2 print_word::w#2 print_byte::b#2 char_cursor#27 ] main:2::mul_tables_compare:9::print_word:23::print_byte:31::print_char:38 [ print_word::w#2 print_byte::b#2 char_cursor#27 ] main:2::mul_tables_compare:9::print_word:19::print_byte:33::print_char:38 [ mul_tables_compare::kc_sqr#2 print_byte::b#2 char_cursor#27 ] main:2::mul_tables_compare:9::print_word:23::print_byte:33::print_char:38 [ print_byte::b#2 char_cursor#27 ] main:2::mul_tables_compare:9::print_word:19::print_byte:31::print_char:41 [ mul_tables_compare::kc_sqr#2 print_word::w#2 char_cursor#27 ] main:2::mul_tables_compare:9::print_word:23::print_byte:31::print_char:41 [ print_word::w#2 char_cursor#27 ] main:2::mul_tables_compare:9::print_word:19::print_byte:33::print_char:41 [ mul_tables_compare::kc_sqr#2 char_cursor#27 ] main:2::mul_tables_compare:9::print_word:23::print_byte:33::print_char:41 [ char_cursor#27 ] )
|
||||
[45] (byte*) char_cursor#10 ← ++ (byte*) char_cursor#27 [ char_cursor#10 ] ( main:2::mul_tables_compare:9::print_word:19::print_byte:31::print_char:38 [ mul_tables_compare::kc_sqr#2 print_word::w#2 print_byte::b#2 char_cursor#10 ] main:2::mul_tables_compare:9::print_word:23::print_byte:31::print_char:38 [ print_word::w#2 print_byte::b#2 char_cursor#10 ] main:2::mul_tables_compare:9::print_word:19::print_byte:33::print_char:38 [ mul_tables_compare::kc_sqr#2 print_byte::b#2 char_cursor#10 ] main:2::mul_tables_compare:9::print_word:23::print_byte:33::print_char:38 [ print_byte::b#2 char_cursor#10 ] main:2::mul_tables_compare:9::print_word:19::print_byte:31::print_char:41 [ mul_tables_compare::kc_sqr#2 print_word::w#2 char_cursor#10 ] main:2::mul_tables_compare:9::print_word:23::print_byte:31::print_char:41 [ print_word::w#2 char_cursor#10 ] main:2::mul_tables_compare:9::print_word:19::print_byte:33::print_char:41 [ mul_tables_compare::kc_sqr#2 char_cursor#10 ] main:2::mul_tables_compare:9::print_word:23::print_byte:33::print_char:41 [ char_cursor#10 ] )
|
||||
to:print_char::@return
|
||||
print_char::@return: scope:[print_char] from print_char
|
||||
[46] return [ char_cursor#10 ] ( main:2::mul_tables_compare:9::print_word:19::print_byte:31::print_char:38 [ mul_tables_compare::kc_sqr#2 print_word::w#2 print_byte::b#2 char_cursor#10 ] main:2::mul_tables_compare:9::print_word:23::print_byte:31::print_char:38 [ print_word::w#2 print_byte::b#2 char_cursor#10 ] main:2::mul_tables_compare:9::print_word:19::print_byte:33::print_char:38 [ mul_tables_compare::kc_sqr#2 print_byte::b#2 char_cursor#10 ] main:2::mul_tables_compare:9::print_word:23::print_byte:33::print_char:38 [ print_byte::b#2 char_cursor#10 ] main:2::mul_tables_compare:9::print_word:19::print_byte:31::print_char:41 [ mul_tables_compare::kc_sqr#2 print_word::w#2 char_cursor#10 ] main:2::mul_tables_compare:9::print_word:23::print_byte:31::print_char:41 [ print_word::w#2 char_cursor#10 ] main:2::mul_tables_compare:9::print_word:19::print_byte:33::print_char:41 [ mul_tables_compare::kc_sqr#2 char_cursor#10 ] main:2::mul_tables_compare:9::print_word:23::print_byte:33::print_char:41 [ char_cursor#10 ] )
|
||||
to:@return
|
||||
print_str: scope:[print_str] from mul_tables_compare::@6 mul_tables_compare::@8
|
||||
[47] (byte*) char_cursor#44 ← phi( mul_tables_compare::@6/((byte*))(word/signed word) 1024 mul_tables_compare::@8/(byte*) char_cursor#10 ) [ print_str::str#5 char_cursor#44 ] ( main:2::mul_tables_compare:9::print_str:17 [ mul_tables_compare::kc_sqr#2 mul_tables_compare::asm_sqr#2 print_str::str#5 char_cursor#44 ] main:2::mul_tables_compare:9::print_str:21 [ mul_tables_compare::kc_sqr#2 print_str::str#5 char_cursor#44 ] )
|
||||
[47] (byte*) print_str::str#5 ← phi( mul_tables_compare::@6/(const string) mul_tables_compare::str mul_tables_compare::@8/(const string) mul_tables_compare::str1 ) [ print_str::str#5 char_cursor#44 ] ( main:2::mul_tables_compare:9::print_str:17 [ mul_tables_compare::kc_sqr#2 mul_tables_compare::asm_sqr#2 print_str::str#5 char_cursor#44 ] main:2::mul_tables_compare:9::print_str:21 [ mul_tables_compare::kc_sqr#2 print_str::str#5 char_cursor#44 ] )
|
||||
to:print_str::@1
|
||||
print_str::@1: scope:[print_str] from print_str print_str::@2
|
||||
[48] (byte*) char_cursor#19 ← phi( print_str/(byte*) char_cursor#44 print_str::@2/(byte*) char_cursor#1 ) [ char_cursor#19 print_str::str#3 ] ( main:2::mul_tables_compare:9::print_str:17 [ mul_tables_compare::kc_sqr#2 mul_tables_compare::asm_sqr#2 char_cursor#19 print_str::str#3 ] main:2::mul_tables_compare:9::print_str:21 [ mul_tables_compare::kc_sqr#2 char_cursor#19 print_str::str#3 ] )
|
||||
[48] (byte*) print_str::str#3 ← phi( print_str/(byte*) print_str::str#5 print_str::@2/(byte*) print_str::str#0 ) [ char_cursor#19 print_str::str#3 ] ( main:2::mul_tables_compare:9::print_str:17 [ mul_tables_compare::kc_sqr#2 mul_tables_compare::asm_sqr#2 char_cursor#19 print_str::str#3 ] main:2::mul_tables_compare:9::print_str:21 [ mul_tables_compare::kc_sqr#2 char_cursor#19 print_str::str#3 ] )
|
||||
[49] if(*((byte*) print_str::str#3)!=(byte) '@') goto print_str::@2 [ char_cursor#19 print_str::str#3 ] ( main:2::mul_tables_compare:9::print_str:17 [ mul_tables_compare::kc_sqr#2 mul_tables_compare::asm_sqr#2 char_cursor#19 print_str::str#3 ] main:2::mul_tables_compare:9::print_str:21 [ mul_tables_compare::kc_sqr#2 char_cursor#19 print_str::str#3 ] )
|
||||
to:print_str::@return
|
||||
print_str::@return: scope:[print_str] from print_str::@1
|
||||
[50] return [ char_cursor#19 ] ( main:2::mul_tables_compare:9::print_str:17 [ mul_tables_compare::kc_sqr#2 mul_tables_compare::asm_sqr#2 char_cursor#19 ] main:2::mul_tables_compare:9::print_str:21 [ mul_tables_compare::kc_sqr#2 char_cursor#19 ] )
|
||||
to:@return
|
||||
print_str::@2: scope:[print_str] from print_str::@1
|
||||
[51] *((byte*) char_cursor#19) ← *((byte*) print_str::str#3) [ char_cursor#19 print_str::str#3 ] ( main:2::mul_tables_compare:9::print_str:17 [ mul_tables_compare::kc_sqr#2 mul_tables_compare::asm_sqr#2 char_cursor#19 print_str::str#3 ] main:2::mul_tables_compare:9::print_str:21 [ mul_tables_compare::kc_sqr#2 char_cursor#19 print_str::str#3 ] )
|
||||
[52] (byte*) char_cursor#1 ← ++ (byte*) char_cursor#19 [ print_str::str#3 char_cursor#1 ] ( main:2::mul_tables_compare:9::print_str:17 [ mul_tables_compare::kc_sqr#2 mul_tables_compare::asm_sqr#2 print_str::str#3 char_cursor#1 ] main:2::mul_tables_compare:9::print_str:21 [ mul_tables_compare::kc_sqr#2 print_str::str#3 char_cursor#1 ] )
|
||||
[53] (byte*) print_str::str#0 ← ++ (byte*) print_str::str#3 [ print_str::str#0 char_cursor#1 ] ( main:2::mul_tables_compare:9::print_str:17 [ mul_tables_compare::kc_sqr#2 mul_tables_compare::asm_sqr#2 print_str::str#0 char_cursor#1 ] main:2::mul_tables_compare:9::print_str:21 [ mul_tables_compare::kc_sqr#2 print_str::str#0 char_cursor#1 ] )
|
||||
to:print_str::@1
|
||||
print_cls: scope:[print_cls] from mul_tables_compare::@3
|
||||
[54] phi() [ ] ( main:2::mul_tables_compare:9::print_cls:15 [ mul_tables_compare::kc_sqr#2 mul_tables_compare::asm_sqr#2 ] )
|
||||
to:print_cls::@1
|
||||
print_cls::@1: scope:[print_cls] from print_cls print_cls::@1
|
||||
[55] (byte*) print_cls::sc#2 ← phi( print_cls/((byte*))(word/signed word) 1024 print_cls::@1/(byte*) print_cls::sc#1 ) [ print_cls::sc#2 ] ( main:2::mul_tables_compare:9::print_cls:15 [ mul_tables_compare::kc_sqr#2 mul_tables_compare::asm_sqr#2 print_cls::sc#2 ] )
|
||||
[56] *((byte*) print_cls::sc#2) ← (byte) ' ' [ print_cls::sc#2 ] ( main:2::mul_tables_compare:9::print_cls:15 [ mul_tables_compare::kc_sqr#2 mul_tables_compare::asm_sqr#2 print_cls::sc#2 ] )
|
||||
[57] (byte*) print_cls::sc#1 ← ++ (byte*) print_cls::sc#2 [ print_cls::sc#1 ] ( main:2::mul_tables_compare:9::print_cls:15 [ mul_tables_compare::kc_sqr#2 mul_tables_compare::asm_sqr#2 print_cls::sc#1 ] )
|
||||
[58] if((byte*) print_cls::sc#1!=(word/signed word) 1024+(word/signed word) 1000) goto print_cls::@1 [ print_cls::sc#1 ] ( main:2::mul_tables_compare:9::print_cls:15 [ mul_tables_compare::kc_sqr#2 mul_tables_compare::asm_sqr#2 print_cls::sc#1 ] )
|
||||
to:print_cls::@return
|
||||
print_cls::@return: scope:[print_cls] from print_cls::@1
|
||||
[59] return [ ] ( main:2::mul_tables_compare:9::print_cls:15 [ mul_tables_compare::kc_sqr#2 mul_tables_compare::asm_sqr#2 ] )
|
||||
to:@return
|
||||
init_mul_tables_asm: scope:[init_mul_tables_asm] from main::@1
|
||||
asm { ldx#$00txa.byte$c9lb1:tyaadc#$00ml1:staasm_mul_sqr_hi,xtaycmp#$40txarorml9:adc#$00staml9+1inxml0:staasm_mul_sqr_lo,xbnelb1incml0+2incml1+2clcinybnelb1 }
|
||||
asm { ldx#$00txa.byte$c9lb1:tyaadc#$00ml1:staasm_mul_sqr1_hi,xtaycmp#$40txarorml9:adc#$00staml9+1inxml0:staasm_mul_sqr1_lo,xbnelb1incml0+2incml1+2clcinybnelb1ldx#$00ldy#$ff!:ldaasm_mul_sqr1_hi+1,xstaasm_mul_sqr2_hi+$100,xldaasm_mul_sqr1_hi,xstaasm_mul_sqr2_hi,yldaasm_mul_sqr1_lo+1,xstaasm_mul_sqr2_lo+$100,xldaasm_mul_sqr1_lo,xstaasm_mul_sqr2_lo,ydeyinxbne!- }
|
||||
[61] *((const byte*) init_mul_tables_asm::mem#0) ← *((const byte[512]) asm_mul_sqr1_lo#0) [ ] ( main:2::init_mul_tables_asm:7 [ ] )
|
||||
[62] *((const byte*) init_mul_tables_asm::mem#0) ← *((const byte[512]) asm_mul_sqr1_hi#0) [ ] ( main:2::init_mul_tables_asm:7 [ ] )
|
||||
[63] *((const byte*) init_mul_tables_asm::mem#0) ← *((const byte[512]) asm_mul_sqr2_lo#0) [ ] ( main:2::init_mul_tables_asm:7 [ ] )
|
||||
[64] *((const byte*) init_mul_tables_asm::mem#0) ← *((const byte[512]) asm_mul_sqr2_hi#0) [ ] ( main:2::init_mul_tables_asm:7 [ ] )
|
||||
to:init_mul_tables_asm::@return
|
||||
init_mul_tables_asm::@return: scope:[init_mul_tables_asm] from init_mul_tables_asm
|
||||
[25] return [ ] ( main:2::init_mul_tables_asm:7 [ ] )
|
||||
[65] return [ ] ( main:2::init_mul_tables_asm:7 [ ] )
|
||||
to:@return
|
||||
init_mul_tables: scope:[init_mul_tables] from main
|
||||
[26] phi() [ ] ( main:2::init_mul_tables:5 [ ] )
|
||||
[66] phi() [ ] ( main:2::init_mul_tables:5 [ ] )
|
||||
to:init_mul_tables::@1
|
||||
init_mul_tables::@1: scope:[init_mul_tables] from init_mul_tables init_mul_tables::@2
|
||||
[27] (byte) init_mul_tables::x_2#3 ← phi( init_mul_tables/(byte/signed byte/word/signed word) 0 init_mul_tables::@2/(byte) init_mul_tables::x_2#2 ) [ 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 ] ( main:2::init_mul_tables:5 [ 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 ] )
|
||||
[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::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 ] ( main:2::init_mul_tables:5 [ 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 ] )
|
||||
[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::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 ] ( main:2::init_mul_tables:5 [ 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 ] )
|
||||
[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::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 ] ( main:2::init_mul_tables:5 [ 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 ] )
|
||||
[27] (byte) init_mul_tables::c#2 ← phi( init_mul_tables/(byte/signed byte/word/signed word) 0 init_mul_tables::@2/(byte) init_mul_tables::c#1 ) [ 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 ] ( main:2::init_mul_tables:5 [ 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 ] )
|
||||
[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 ] )
|
||||
[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 ] )
|
||||
[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
|
||||
init_mul_tables::@3: scope:[init_mul_tables] from init_mul_tables::@1
|
||||
[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] (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 ] )
|
||||
[67] (byte) init_mul_tables::x_2#3 ← phi( init_mul_tables/(byte/signed byte/word/signed word) 0 init_mul_tables::@2/(byte) init_mul_tables::x_2#2 ) [ init_mul_tables::c#2 init_mul_tables::sqr#4 init_mul_tables::sqr1_lo#2 init_mul_tables::sqr1_hi#2 init_mul_tables::x_2#3 ] ( main:2::init_mul_tables:5 [ init_mul_tables::c#2 init_mul_tables::sqr#4 init_mul_tables::sqr1_lo#2 init_mul_tables::sqr1_hi#2 init_mul_tables::x_2#3 ] )
|
||||
[67] (byte*) init_mul_tables::sqr1_hi#2 ← phi( init_mul_tables/(const byte[512]) mul_sqr1_hi#0+(byte/signed byte/word/signed word) 1 init_mul_tables::@2/(byte*) init_mul_tables::sqr1_hi#1 ) [ init_mul_tables::c#2 init_mul_tables::sqr#4 init_mul_tables::sqr1_lo#2 init_mul_tables::sqr1_hi#2 init_mul_tables::x_2#3 ] ( main:2::init_mul_tables:5 [ init_mul_tables::c#2 init_mul_tables::sqr#4 init_mul_tables::sqr1_lo#2 init_mul_tables::sqr1_hi#2 init_mul_tables::x_2#3 ] )
|
||||
[67] (byte*) init_mul_tables::sqr1_lo#2 ← phi( init_mul_tables/(const byte[512]) mul_sqr1_lo#0+(byte/signed byte/word/signed word) 1 init_mul_tables::@2/(byte*) init_mul_tables::sqr1_lo#1 ) [ init_mul_tables::c#2 init_mul_tables::sqr#4 init_mul_tables::sqr1_lo#2 init_mul_tables::sqr1_hi#2 init_mul_tables::x_2#3 ] ( main:2::init_mul_tables:5 [ init_mul_tables::c#2 init_mul_tables::sqr#4 init_mul_tables::sqr1_lo#2 init_mul_tables::sqr1_hi#2 init_mul_tables::x_2#3 ] )
|
||||
[67] (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::c#2 init_mul_tables::sqr#4 init_mul_tables::sqr1_lo#2 init_mul_tables::sqr1_hi#2 init_mul_tables::x_2#3 ] ( main:2::init_mul_tables:5 [ init_mul_tables::c#2 init_mul_tables::sqr#4 init_mul_tables::sqr1_lo#2 init_mul_tables::sqr1_hi#2 init_mul_tables::x_2#3 ] )
|
||||
[67] (byte) init_mul_tables::c#2 ← phi( init_mul_tables/(byte/signed byte/word/signed word) 0 init_mul_tables::@2/(byte) init_mul_tables::c#1 ) [ init_mul_tables::c#2 init_mul_tables::sqr#4 init_mul_tables::sqr1_lo#2 init_mul_tables::sqr1_hi#2 init_mul_tables::x_2#3 ] ( main:2::init_mul_tables:5 [ init_mul_tables::c#2 init_mul_tables::sqr#4 init_mul_tables::sqr1_lo#2 init_mul_tables::sqr1_hi#2 init_mul_tables::x_2#3 ] )
|
||||
[68] (byte) init_mul_tables::c#1 ← ++ (byte) init_mul_tables::c#2 [ init_mul_tables::sqr#4 init_mul_tables::sqr1_lo#2 init_mul_tables::sqr1_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::sqr1_lo#2 init_mul_tables::sqr1_hi#2 init_mul_tables::x_2#3 init_mul_tables::c#1 ] )
|
||||
[69] (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::sqr1_lo#2 init_mul_tables::sqr1_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::sqr1_lo#2 init_mul_tables::sqr1_hi#2 init_mul_tables::x_2#3 init_mul_tables::c#1 init_mul_tables::$2 ] )
|
||||
[70] 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::sqr1_lo#2 init_mul_tables::sqr1_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::sqr1_lo#2 init_mul_tables::sqr1_hi#2 init_mul_tables::x_2#3 init_mul_tables::c#1 ] )
|
||||
to:init_mul_tables::@5
|
||||
init_mul_tables::@5: scope:[init_mul_tables] from init_mul_tables::@1
|
||||
[71] (byte) init_mul_tables::x_2#1 ← ++ (byte) init_mul_tables::x_2#3 [ init_mul_tables::sqr#4 init_mul_tables::sqr1_lo#2 init_mul_tables::sqr1_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::sqr1_lo#2 init_mul_tables::sqr1_hi#2 init_mul_tables::c#1 init_mul_tables::x_2#1 ] )
|
||||
[72] (word) init_mul_tables::sqr#2 ← ++ (word) init_mul_tables::sqr#4 [ init_mul_tables::sqr1_lo#2 init_mul_tables::sqr1_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::sqr1_lo#2 init_mul_tables::sqr1_hi#2 init_mul_tables::c#1 init_mul_tables::x_2#1 init_mul_tables::sqr#2 ] )
|
||||
to:init_mul_tables::@2
|
||||
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] (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::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 ] )
|
||||
[34] (byte~) init_mul_tables::$5 ← < (word) init_mul_tables::sqr#3 [ 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 init_mul_tables::$5 ] ( 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 init_mul_tables::$5 ] )
|
||||
[35] *((byte*) init_mul_tables::sqr_lo#2) ← (byte~) 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 ] ( 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 ] )
|
||||
[36] (byte~) init_mul_tables::$6 ← > (word) init_mul_tables::sqr#3 [ 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 init_mul_tables::$6 ] ( 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 init_mul_tables::$6 ] )
|
||||
[37] *((byte*) init_mul_tables::sqr_hi#2) ← (byte~) init_mul_tables::$6 [ 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 ] )
|
||||
[38] (byte*) init_mul_tables::sqr_hi#1 ← ++ (byte*) init_mul_tables::sqr_hi#2 [ init_mul_tables::sqr_lo#2 init_mul_tables::c#1 init_mul_tables::sqr_hi#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::c#1 init_mul_tables::sqr_hi#1 init_mul_tables::x_2#2 init_mul_tables::sqr#3 ] )
|
||||
[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 ] )
|
||||
[40] (byte*) init_mul_tables::sqr_lo#1 ← ++ (byte*) init_mul_tables::sqr_lo#2 [ init_mul_tables::c#1 init_mul_tables::sqr#1 init_mul_tables::sqr_lo#1 init_mul_tables::sqr_hi#1 init_mul_tables::x_2#2 ] ( main:2::init_mul_tables:5 [ init_mul_tables::c#1 init_mul_tables::sqr#1 init_mul_tables::sqr_lo#1 init_mul_tables::sqr_hi#1 init_mul_tables::x_2#2 ] )
|
||||
[41] if((byte*) init_mul_tables::sqr_lo#1!=(const byte[512]) mul_sqr_lo#0+(word/signed word) 512) goto init_mul_tables::@1 [ init_mul_tables::c#1 init_mul_tables::sqr#1 init_mul_tables::sqr_lo#1 init_mul_tables::sqr_hi#1 init_mul_tables::x_2#2 ] ( main:2::init_mul_tables:5 [ init_mul_tables::c#1 init_mul_tables::sqr#1 init_mul_tables::sqr_lo#1 init_mul_tables::sqr_hi#1 init_mul_tables::x_2#2 ] )
|
||||
init_mul_tables::@2: scope:[init_mul_tables] from init_mul_tables::@1 init_mul_tables::@5
|
||||
[73] (byte) init_mul_tables::x_2#2 ← phi( init_mul_tables::@1/(byte) init_mul_tables::x_2#3 init_mul_tables::@5/(byte) init_mul_tables::x_2#1 ) [ init_mul_tables::sqr1_lo#2 init_mul_tables::sqr1_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::sqr1_lo#2 init_mul_tables::sqr1_hi#2 init_mul_tables::c#1 init_mul_tables::x_2#2 init_mul_tables::sqr#3 ] )
|
||||
[73] (word) init_mul_tables::sqr#3 ← phi( init_mul_tables::@1/(word) init_mul_tables::sqr#4 init_mul_tables::@5/(word) init_mul_tables::sqr#2 ) [ init_mul_tables::sqr1_lo#2 init_mul_tables::sqr1_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::sqr1_lo#2 init_mul_tables::sqr1_hi#2 init_mul_tables::c#1 init_mul_tables::x_2#2 init_mul_tables::sqr#3 ] )
|
||||
[74] (byte~) init_mul_tables::$5 ← < (word) init_mul_tables::sqr#3 [ init_mul_tables::sqr1_lo#2 init_mul_tables::sqr1_hi#2 init_mul_tables::c#1 init_mul_tables::x_2#2 init_mul_tables::sqr#3 init_mul_tables::$5 ] ( main:2::init_mul_tables:5 [ init_mul_tables::sqr1_lo#2 init_mul_tables::sqr1_hi#2 init_mul_tables::c#1 init_mul_tables::x_2#2 init_mul_tables::sqr#3 init_mul_tables::$5 ] )
|
||||
[75] *((byte*) init_mul_tables::sqr1_lo#2) ← (byte~) init_mul_tables::$5 [ init_mul_tables::sqr1_lo#2 init_mul_tables::sqr1_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::sqr1_lo#2 init_mul_tables::sqr1_hi#2 init_mul_tables::c#1 init_mul_tables::x_2#2 init_mul_tables::sqr#3 ] )
|
||||
[76] (byte~) init_mul_tables::$6 ← > (word) init_mul_tables::sqr#3 [ init_mul_tables::sqr1_lo#2 init_mul_tables::sqr1_hi#2 init_mul_tables::c#1 init_mul_tables::x_2#2 init_mul_tables::sqr#3 init_mul_tables::$6 ] ( main:2::init_mul_tables:5 [ init_mul_tables::sqr1_lo#2 init_mul_tables::sqr1_hi#2 init_mul_tables::c#1 init_mul_tables::x_2#2 init_mul_tables::sqr#3 init_mul_tables::$6 ] )
|
||||
[77] *((byte*) init_mul_tables::sqr1_hi#2) ← (byte~) init_mul_tables::$6 [ init_mul_tables::sqr1_lo#2 init_mul_tables::sqr1_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::sqr1_lo#2 init_mul_tables::sqr1_hi#2 init_mul_tables::c#1 init_mul_tables::x_2#2 init_mul_tables::sqr#3 ] )
|
||||
[78] (byte*) init_mul_tables::sqr1_hi#1 ← ++ (byte*) init_mul_tables::sqr1_hi#2 [ init_mul_tables::sqr1_lo#2 init_mul_tables::c#1 init_mul_tables::sqr1_hi#1 init_mul_tables::x_2#2 init_mul_tables::sqr#3 ] ( main:2::init_mul_tables:5 [ init_mul_tables::sqr1_lo#2 init_mul_tables::c#1 init_mul_tables::sqr1_hi#1 init_mul_tables::x_2#2 init_mul_tables::sqr#3 ] )
|
||||
[79] (word) init_mul_tables::sqr#1 ← (word) init_mul_tables::sqr#3 + (byte) init_mul_tables::x_2#2 [ init_mul_tables::sqr1_lo#2 init_mul_tables::c#1 init_mul_tables::sqr#1 init_mul_tables::sqr1_hi#1 init_mul_tables::x_2#2 ] ( main:2::init_mul_tables:5 [ init_mul_tables::sqr1_lo#2 init_mul_tables::c#1 init_mul_tables::sqr#1 init_mul_tables::sqr1_hi#1 init_mul_tables::x_2#2 ] )
|
||||
[80] (byte*) init_mul_tables::sqr1_lo#1 ← ++ (byte*) init_mul_tables::sqr1_lo#2 [ init_mul_tables::c#1 init_mul_tables::sqr#1 init_mul_tables::sqr1_lo#1 init_mul_tables::sqr1_hi#1 init_mul_tables::x_2#2 ] ( main:2::init_mul_tables:5 [ init_mul_tables::c#1 init_mul_tables::sqr#1 init_mul_tables::sqr1_lo#1 init_mul_tables::sqr1_hi#1 init_mul_tables::x_2#2 ] )
|
||||
[81] if((byte*) init_mul_tables::sqr1_lo#1!=(const byte[512]) mul_sqr1_lo#0+(word/signed word) 512) goto init_mul_tables::@1 [ init_mul_tables::c#1 init_mul_tables::sqr#1 init_mul_tables::sqr1_lo#1 init_mul_tables::sqr1_hi#1 init_mul_tables::x_2#2 ] ( main:2::init_mul_tables:5 [ init_mul_tables::c#1 init_mul_tables::sqr#1 init_mul_tables::sqr1_lo#1 init_mul_tables::sqr1_hi#1 init_mul_tables::x_2#2 ] )
|
||||
to:init_mul_tables::@3
|
||||
init_mul_tables::@3: scope:[init_mul_tables] from init_mul_tables::@2 init_mul_tables::@4
|
||||
[82] (byte) init_mul_tables::dir#2 ← phi( init_mul_tables::@4/(byte) init_mul_tables::dir#3 init_mul_tables::@2/(byte/word/signed word) 255 ) [ init_mul_tables::x_255#2 init_mul_tables::sqr2_lo#2 init_mul_tables::sqr2_hi#2 init_mul_tables::dir#2 ] ( main:2::init_mul_tables:5 [ init_mul_tables::x_255#2 init_mul_tables::sqr2_lo#2 init_mul_tables::sqr2_hi#2 init_mul_tables::dir#2 ] )
|
||||
[82] (byte*) init_mul_tables::sqr2_hi#2 ← phi( init_mul_tables::@4/(byte*) init_mul_tables::sqr2_hi#1 init_mul_tables::@2/(const byte[512]) mul_sqr2_hi#0 ) [ init_mul_tables::x_255#2 init_mul_tables::sqr2_lo#2 init_mul_tables::sqr2_hi#2 init_mul_tables::dir#2 ] ( main:2::init_mul_tables:5 [ init_mul_tables::x_255#2 init_mul_tables::sqr2_lo#2 init_mul_tables::sqr2_hi#2 init_mul_tables::dir#2 ] )
|
||||
[82] (byte*) init_mul_tables::sqr2_lo#2 ← phi( init_mul_tables::@4/(byte*) init_mul_tables::sqr2_lo#1 init_mul_tables::@2/(const byte[512]) mul_sqr2_lo#0 ) [ init_mul_tables::x_255#2 init_mul_tables::sqr2_lo#2 init_mul_tables::sqr2_hi#2 init_mul_tables::dir#2 ] ( main:2::init_mul_tables:5 [ init_mul_tables::x_255#2 init_mul_tables::sqr2_lo#2 init_mul_tables::sqr2_hi#2 init_mul_tables::dir#2 ] )
|
||||
[82] (byte) init_mul_tables::x_255#2 ← phi( init_mul_tables::@4/(byte) init_mul_tables::x_255#1 init_mul_tables::@2/((byte))-(byte/signed byte/word/signed word) 1 ) [ init_mul_tables::x_255#2 init_mul_tables::sqr2_lo#2 init_mul_tables::sqr2_hi#2 init_mul_tables::dir#2 ] ( main:2::init_mul_tables:5 [ init_mul_tables::x_255#2 init_mul_tables::sqr2_lo#2 init_mul_tables::sqr2_hi#2 init_mul_tables::dir#2 ] )
|
||||
[83] *((byte*) init_mul_tables::sqr2_lo#2) ← *((const byte[512]) mul_sqr1_lo#0 + (byte) init_mul_tables::x_255#2) [ init_mul_tables::x_255#2 init_mul_tables::sqr2_lo#2 init_mul_tables::sqr2_hi#2 init_mul_tables::dir#2 ] ( main:2::init_mul_tables:5 [ init_mul_tables::x_255#2 init_mul_tables::sqr2_lo#2 init_mul_tables::sqr2_hi#2 init_mul_tables::dir#2 ] )
|
||||
[84] *((byte*) init_mul_tables::sqr2_hi#2) ← *((const byte[512]) mul_sqr1_hi#0 + (byte) init_mul_tables::x_255#2) [ init_mul_tables::x_255#2 init_mul_tables::sqr2_lo#2 init_mul_tables::sqr2_hi#2 init_mul_tables::dir#2 ] ( main:2::init_mul_tables:5 [ init_mul_tables::x_255#2 init_mul_tables::sqr2_lo#2 init_mul_tables::sqr2_hi#2 init_mul_tables::dir#2 ] )
|
||||
[85] (byte*) init_mul_tables::sqr2_hi#1 ← ++ (byte*) init_mul_tables::sqr2_hi#2 [ init_mul_tables::x_255#2 init_mul_tables::sqr2_lo#2 init_mul_tables::dir#2 init_mul_tables::sqr2_hi#1 ] ( main:2::init_mul_tables:5 [ init_mul_tables::x_255#2 init_mul_tables::sqr2_lo#2 init_mul_tables::dir#2 init_mul_tables::sqr2_hi#1 ] )
|
||||
[86] (byte) init_mul_tables::x_255#1 ← (byte) init_mul_tables::x_255#2 + (byte) init_mul_tables::dir#2 [ init_mul_tables::sqr2_lo#2 init_mul_tables::dir#2 init_mul_tables::x_255#1 init_mul_tables::sqr2_hi#1 ] ( main:2::init_mul_tables:5 [ init_mul_tables::sqr2_lo#2 init_mul_tables::dir#2 init_mul_tables::x_255#1 init_mul_tables::sqr2_hi#1 ] )
|
||||
[87] if((byte) init_mul_tables::x_255#1!=(byte/signed byte/word/signed word) 0) goto init_mul_tables::@12 [ init_mul_tables::sqr2_lo#2 init_mul_tables::dir#2 init_mul_tables::x_255#1 init_mul_tables::sqr2_hi#1 ] ( main:2::init_mul_tables:5 [ init_mul_tables::sqr2_lo#2 init_mul_tables::dir#2 init_mul_tables::x_255#1 init_mul_tables::sqr2_hi#1 ] )
|
||||
to:init_mul_tables::@4
|
||||
init_mul_tables::@4: scope:[init_mul_tables] from init_mul_tables::@12 init_mul_tables::@3
|
||||
[88] (byte) init_mul_tables::dir#3 ← phi( init_mul_tables::@12/(byte) init_mul_tables::dir#2 init_mul_tables::@3/(byte/signed byte/word/signed word) 1 ) [ init_mul_tables::sqr2_lo#2 init_mul_tables::x_255#1 init_mul_tables::sqr2_hi#1 init_mul_tables::dir#3 ] ( main:2::init_mul_tables:5 [ init_mul_tables::sqr2_lo#2 init_mul_tables::x_255#1 init_mul_tables::sqr2_hi#1 init_mul_tables::dir#3 ] )
|
||||
[89] (byte*) init_mul_tables::sqr2_lo#1 ← ++ (byte*) init_mul_tables::sqr2_lo#2 [ init_mul_tables::x_255#1 init_mul_tables::sqr2_lo#1 init_mul_tables::sqr2_hi#1 init_mul_tables::dir#3 ] ( main:2::init_mul_tables:5 [ init_mul_tables::x_255#1 init_mul_tables::sqr2_lo#1 init_mul_tables::sqr2_hi#1 init_mul_tables::dir#3 ] )
|
||||
[90] if((byte*) init_mul_tables::sqr2_lo#1!=(const byte[512]) mul_sqr2_lo#0+(word/signed word) 511) goto init_mul_tables::@3 [ init_mul_tables::x_255#1 init_mul_tables::sqr2_lo#1 init_mul_tables::sqr2_hi#1 init_mul_tables::dir#3 ] ( main:2::init_mul_tables:5 [ init_mul_tables::x_255#1 init_mul_tables::sqr2_lo#1 init_mul_tables::sqr2_hi#1 init_mul_tables::dir#3 ] )
|
||||
to:init_mul_tables::@8
|
||||
init_mul_tables::@8: scope:[init_mul_tables] from init_mul_tables::@4
|
||||
[91] *((const byte[512]) mul_sqr2_lo#0+(word/signed word) 511) ← *((const byte[512]) mul_sqr1_lo#0+(word/signed word) 256) [ ] ( main:2::init_mul_tables:5 [ ] )
|
||||
[92] *((const byte[512]) mul_sqr2_hi#0+(word/signed word) 511) ← *((const byte[512]) mul_sqr1_hi#0+(word/signed word) 256) [ ] ( main:2::init_mul_tables:5 [ ] )
|
||||
to:init_mul_tables::@return
|
||||
init_mul_tables::@return: scope:[init_mul_tables] from init_mul_tables::@2
|
||||
[42] return [ ] ( main:2::init_mul_tables:5 [ ] )
|
||||
init_mul_tables::@return: scope:[init_mul_tables] from init_mul_tables::@8
|
||||
[93] return [ ] ( main:2::init_mul_tables:5 [ ] )
|
||||
to:@return
|
||||
init_mul_tables::@12: scope:[init_mul_tables] from init_mul_tables::@3
|
||||
[94] phi() [ init_mul_tables::sqr2_lo#2 init_mul_tables::dir#2 init_mul_tables::x_255#1 init_mul_tables::sqr2_hi#1 ] ( main:2::init_mul_tables:5 [ init_mul_tables::sqr2_lo#2 init_mul_tables::dir#2 init_mul_tables::x_255#1 init_mul_tables::sqr2_hi#1 ] )
|
||||
to:init_mul_tables::@4
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -1,69 +1,150 @@
|
||||
(label) @4
|
||||
(label) @10
|
||||
(label) @begin
|
||||
(label) @end
|
||||
(byte*) BGCOL
|
||||
(const byte*) BGCOL#0 BGCOL = ((byte*))(word) 53281
|
||||
(byte[512]) asm_mul_sqr_hi
|
||||
(const byte[512]) asm_mul_sqr_hi#0 asm_mul_sqr_hi = { fill( 512, 0) }
|
||||
(byte[512]) asm_mul_sqr_lo
|
||||
(const byte[512]) asm_mul_sqr_lo#0 asm_mul_sqr_lo = { fill( 512, 0) }
|
||||
(byte[512]) asm_mul_sqr1_hi
|
||||
(const byte[512]) asm_mul_sqr1_hi#0 asm_mul_sqr1_hi = { fill( 512, 0) }
|
||||
(byte[512]) asm_mul_sqr1_lo
|
||||
(const byte[512]) asm_mul_sqr1_lo#0 asm_mul_sqr1_lo = { fill( 512, 0) }
|
||||
(byte[512]) asm_mul_sqr2_hi
|
||||
(const byte[512]) asm_mul_sqr2_hi#0 asm_mul_sqr2_hi = { fill( 512, 0) }
|
||||
(byte[512]) asm_mul_sqr2_lo
|
||||
(const byte[512]) asm_mul_sqr2_lo#0 asm_mul_sqr2_lo = { fill( 512, 0) }
|
||||
(byte*) char_cursor
|
||||
(byte*) char_cursor#1 char_cursor zp ZP_WORD:6 11.0
|
||||
(byte*) char_cursor#10 char_cursor zp ZP_WORD:6 0.7142857142857142
|
||||
(byte*) char_cursor#17 char_cursor zp ZP_WORD:6 20.0
|
||||
(byte*) char_cursor#19 char_cursor zp ZP_WORD:6 3.7
|
||||
(byte*) char_cursor#27 char_cursor zp ZP_WORD:6 4.0
|
||||
(byte*) char_cursor#39 char_cursor zp ZP_WORD:6 2.0
|
||||
(byte*) char_cursor#44 char_cursor zp ZP_WORD:6 4.0
|
||||
(void()) init_mul_tables()
|
||||
(byte~) init_mul_tables::$2 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
|
||||
(label) init_mul_tables::@1
|
||||
(label) init_mul_tables::@12
|
||||
(label) init_mul_tables::@2
|
||||
(label) init_mul_tables::@3
|
||||
(label) init_mul_tables::@4
|
||||
(label) init_mul_tables::@5
|
||||
(label) init_mul_tables::@8
|
||||
(label) init_mul_tables::@return
|
||||
(byte) init_mul_tables::c
|
||||
(byte) init_mul_tables::c#1 reg byte x 2.357142857142857
|
||||
(byte) init_mul_tables::c#2 reg byte x 22.0
|
||||
(byte) init_mul_tables::dir
|
||||
(byte) init_mul_tables::dir#2 dir zp ZP_BYTE:10 4.714285714285714
|
||||
(byte) init_mul_tables::dir#3 dir zp ZP_BYTE:10 7.333333333333333
|
||||
(word) init_mul_tables::sqr
|
||||
(word) init_mul_tables::sqr#1 sqr zp ZP_WORD:7 7.333333333333333
|
||||
(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#4 sqr zp ZP_WORD:7 6.6000000000000005
|
||||
(byte*) init_mul_tables::sqr_hi
|
||||
(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:4 3.0
|
||||
(byte*) init_mul_tables::sqr_lo
|
||||
(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:2 2.5384615384615383
|
||||
(word) init_mul_tables::sqr#1 sqr zp ZP_WORD:6 7.333333333333333
|
||||
(word) init_mul_tables::sqr#2 sqr zp ZP_WORD:6 22.0
|
||||
(word) init_mul_tables::sqr#3 sqr zp ZP_WORD:6 9.166666666666666
|
||||
(word) init_mul_tables::sqr#4 sqr zp ZP_WORD:6 6.6000000000000005
|
||||
(byte*) init_mul_tables::sqr1_hi
|
||||
(byte*) init_mul_tables::sqr1_hi#1 sqr1_hi zp ZP_WORD:4 5.5
|
||||
(byte*) init_mul_tables::sqr1_hi#2 sqr1_hi zp ZP_WORD:4 3.0
|
||||
(byte*) init_mul_tables::sqr1_lo
|
||||
(byte*) init_mul_tables::sqr1_lo#1 sqr1_lo zp ZP_WORD:2 16.5
|
||||
(byte*) init_mul_tables::sqr1_lo#2 sqr1_lo zp ZP_WORD:2 2.5384615384615383
|
||||
(byte*) init_mul_tables::sqr2_hi
|
||||
(byte*) init_mul_tables::sqr2_hi#1 sqr2_hi zp ZP_WORD:4 3.142857142857143
|
||||
(byte*) init_mul_tables::sqr2_hi#2 sqr2_hi zp ZP_WORD:4 11.0
|
||||
(byte*) init_mul_tables::sqr2_lo
|
||||
(byte*) init_mul_tables::sqr2_lo#1 sqr2_lo zp ZP_WORD:2 16.5
|
||||
(byte*) init_mul_tables::sqr2_lo#2 sqr2_lo zp ZP_WORD:2 4.125
|
||||
(byte) init_mul_tables::x_2
|
||||
(byte) init_mul_tables::x_2#1 x_2 zp ZP_BYTE:6 11.0
|
||||
(byte) init_mul_tables::x_2#2 x_2 zp ZP_BYTE:6 4.888888888888889
|
||||
(byte) init_mul_tables::x_2#3 x_2 zp ZP_BYTE:6 8.25
|
||||
(byte) init_mul_tables::x_2#1 x_2 zp ZP_BYTE:10 11.0
|
||||
(byte) init_mul_tables::x_2#2 x_2 zp ZP_BYTE:10 4.888888888888889
|
||||
(byte) init_mul_tables::x_2#3 x_2 zp ZP_BYTE:10 8.25
|
||||
(byte) init_mul_tables::x_255
|
||||
(byte) init_mul_tables::x_255#1 reg byte x 5.5
|
||||
(byte) init_mul_tables::x_255#2 reg byte x 11.0
|
||||
(void()) init_mul_tables_asm()
|
||||
(label) init_mul_tables_asm::@return
|
||||
(byte*) init_mul_tables_asm::mem
|
||||
(const byte*) init_mul_tables_asm::mem#0 mem = ((byte*))(byte/word/signed word) 255
|
||||
(byte*) line_cursor
|
||||
(void()) main()
|
||||
(label) main::@1
|
||||
(label) main::@2
|
||||
(label) main::@return
|
||||
(byte[512]) mul_sqr_hi
|
||||
(const byte[512]) mul_sqr_hi#0 mul_sqr_hi = { fill( 512, 0) }
|
||||
(byte[512]) mul_sqr_lo
|
||||
(const byte[512]) mul_sqr_lo#0 mul_sqr_lo = { fill( 512, 0) }
|
||||
(byte[512]) mul_sqr1_hi
|
||||
(const byte[512]) mul_sqr1_hi#0 mul_sqr1_hi = { fill( 512, 0) }
|
||||
(byte[512]) mul_sqr1_lo
|
||||
(const byte[512]) mul_sqr1_lo#0 mul_sqr1_lo = { fill( 512, 0) }
|
||||
(byte[512]) mul_sqr2_hi
|
||||
(const byte[512]) mul_sqr2_hi#0 mul_sqr2_hi = { fill( 512, 0) }
|
||||
(byte[512]) mul_sqr2_lo
|
||||
(const byte[512]) mul_sqr2_lo#0 mul_sqr2_lo = { fill( 512, 0) }
|
||||
(void()) mul_tables_compare()
|
||||
(label) mul_tables_compare::@1
|
||||
(label) mul_tables_compare::@2
|
||||
(label) mul_tables_compare::@3
|
||||
(label) mul_tables_compare::@4
|
||||
(label) mul_tables_compare::@5
|
||||
(label) mul_tables_compare::@6
|
||||
(label) mul_tables_compare::@7
|
||||
(label) mul_tables_compare::@8
|
||||
(label) mul_tables_compare::@9
|
||||
(label) mul_tables_compare::@return
|
||||
(byte) mul_tables_compare::i
|
||||
(byte) mul_tables_compare::i#1 reg byte x 16.5
|
||||
(byte) mul_tables_compare::i#10 reg byte x 12.222222222222221
|
||||
(byte*) mul_tables_compare::asm_sqr
|
||||
(byte*) mul_tables_compare::asm_sqr#1 asm_sqr zp ZP_WORD:4 7.333333333333333
|
||||
(byte*) mul_tables_compare::asm_sqr#2 asm_sqr zp ZP_WORD:4 5.833333333333333
|
||||
(byte*) mul_tables_compare::kc_sqr
|
||||
(byte*) mul_tables_compare::kc_sqr#1 kc_sqr zp ZP_WORD:2 16.5
|
||||
(byte*) mul_tables_compare::kc_sqr#2 kc_sqr zp ZP_WORD:2 3.1818181818181817
|
||||
(const string) mul_tables_compare::str str = (string) "mul table mismatch at @"
|
||||
(const string) mul_tables_compare::str1 str1 = (string) " / @"
|
||||
(void()) print_byte((byte) print_byte::b)
|
||||
(byte~) print_byte::$0 reg byte y 4.0
|
||||
(byte~) print_byte::$2 reg byte a 4.0
|
||||
(label) print_byte::@1
|
||||
(label) print_byte::@return
|
||||
(byte) print_byte::b
|
||||
(byte) print_byte::b#0 reg byte x 4.0
|
||||
(byte) print_byte::b#1 reg byte x 4.0
|
||||
(byte) print_byte::b#2 reg byte x 2.0
|
||||
(byte[]) print_byte::hextab
|
||||
(const byte[]) print_byte::hextab#0 hextab = { (byte) '0', (byte) '1', (byte) '2', (byte) '3', (byte) '4', (byte) '5', (byte) '6', (byte) '7', (byte) '8', (byte) '9', (byte) 'a', (byte) 'b', (byte) 'c', (byte) 'd', (byte) 'e', (byte) 'f' }
|
||||
(void()) print_char((byte) print_char::ch)
|
||||
(label) print_char::@return
|
||||
(byte) print_char::ch
|
||||
(byte) print_char::ch#0 reg byte a 4.0
|
||||
(byte) print_char::ch#1 reg byte a 4.0
|
||||
(byte) print_char::ch#2 reg byte a 6.0
|
||||
(void()) print_cls()
|
||||
(label) print_cls::@1
|
||||
(label) print_cls::@return
|
||||
(byte*) print_cls::sc
|
||||
(byte*) print_cls::sc#1 sc zp ZP_WORD:6 16.5
|
||||
(byte*) print_cls::sc#2 sc zp ZP_WORD:6 16.5
|
||||
(void()) print_str((byte*) print_str::str)
|
||||
(label) print_str::@1
|
||||
(label) print_str::@2
|
||||
(label) print_str::@return
|
||||
(byte*) print_str::str
|
||||
(byte*) print_str::str#0 str zp ZP_WORD:8 22.0
|
||||
(byte*) print_str::str#3 str zp ZP_WORD:8 11.5
|
||||
(byte*) print_str::str#5 str zp ZP_WORD:8 2.0
|
||||
(void()) print_word((word) print_word::w)
|
||||
(label) print_word::@1
|
||||
(label) print_word::@return
|
||||
(word) print_word::w
|
||||
(word) print_word::w#0 w zp ZP_WORD:4 4.0
|
||||
(word) print_word::w#1 w zp ZP_WORD:4 4.0
|
||||
(word) print_word::w#2 w zp ZP_WORD:4 2.6666666666666665
|
||||
|
||||
reg byte x [ mul_tables_compare::i#10 mul_tables_compare::i#1 ]
|
||||
zp ZP_WORD:2 [ mul_tables_compare::kc_sqr#2 mul_tables_compare::kc_sqr#1 init_mul_tables::sqr1_lo#2 init_mul_tables::sqr1_lo#1 init_mul_tables::sqr2_lo#2 init_mul_tables::sqr2_lo#1 ]
|
||||
zp ZP_WORD:4 [ mul_tables_compare::asm_sqr#2 mul_tables_compare::asm_sqr#1 print_word::w#2 print_word::w#0 print_word::w#1 init_mul_tables::sqr1_hi#2 init_mul_tables::sqr1_hi#1 init_mul_tables::sqr2_hi#2 init_mul_tables::sqr2_hi#1 ]
|
||||
reg byte x [ print_byte::b#2 print_byte::b#0 print_byte::b#1 ]
|
||||
reg byte a [ print_char::ch#2 print_char::ch#0 print_char::ch#1 ]
|
||||
zp ZP_WORD:6 [ char_cursor#44 char_cursor#27 char_cursor#39 char_cursor#19 char_cursor#17 char_cursor#10 char_cursor#1 print_cls::sc#2 print_cls::sc#1 init_mul_tables::sqr#3 init_mul_tables::sqr#4 init_mul_tables::sqr#1 init_mul_tables::sqr#2 ]
|
||||
zp ZP_WORD:8 [ print_str::str#3 print_str::str#5 print_str::str#0 ]
|
||||
reg byte x [ init_mul_tables::c#2 init_mul_tables::c#1 ]
|
||||
zp ZP_WORD:2 [ init_mul_tables::sqr_lo#2 init_mul_tables::sqr_lo#1 ]
|
||||
zp ZP_WORD:4 [ init_mul_tables::sqr_hi#2 init_mul_tables::sqr_hi#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_BYTE:10 [ init_mul_tables::x_2#3 init_mul_tables::x_2#2 init_mul_tables::x_2#1 init_mul_tables::dir#2 init_mul_tables::dir#3 ]
|
||||
reg byte x [ init_mul_tables::x_255#2 init_mul_tables::x_255#1 ]
|
||||
reg byte y [ print_byte::$0 ]
|
||||
reg byte a [ print_byte::$2 ]
|
||||
reg byte a [ init_mul_tables::$2 ]
|
||||
reg byte a [ init_mul_tables::$5 ]
|
||||
reg byte a [ init_mul_tables::$6 ]
|
||||
|
Loading…
Reference in New Issue
Block a user