mirror of
https://gitlab.com/camelot/kickc.git
synced 2024-09-08 17:54:40 +00:00
Implemented bitshift signed byte multiply.
This commit is contained in:
parent
c936da289e
commit
8b54f38640
@ -14,3 +14,15 @@ word mul8u(byte a, byte b) {
|
|||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Multiply of two signed bytes to a signed word
|
||||||
|
// Fixes offsets introduced by using unsigned multiplication
|
||||||
|
signed word mul8s(signed byte a, signed byte b) {
|
||||||
|
word m = mul8u((byte)a, (byte) b);
|
||||||
|
if(a<0) {
|
||||||
|
>m = (>m)-(byte)b;
|
||||||
|
}
|
||||||
|
if(b<0) {
|
||||||
|
>m = (>m)-(byte)a;
|
||||||
|
}
|
||||||
|
return (signed word)m;
|
||||||
|
}
|
@ -11,8 +11,8 @@ void main() {
|
|||||||
mulf_init();
|
mulf_init();
|
||||||
mulf_init_asm();
|
mulf_init_asm();
|
||||||
mulf_tables_cmp();
|
mulf_tables_cmp();
|
||||||
mul8u_slowfast_compare();
|
mul8u_compare();
|
||||||
mul8s_slowfast_compare();
|
mul8s_compare();
|
||||||
}
|
}
|
||||||
|
|
||||||
// Slow multiplication of unsigned bytes
|
// Slow multiplication of unsigned bytes
|
||||||
@ -123,7 +123,7 @@ void mulf_tables_cmp() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Perform all possible byte multiplications (slow and fast) and compare the results
|
// Perform all possible byte multiplications (slow and fast) and compare the results
|
||||||
void mul8u_slowfast_compare() {
|
void mul8u_compare() {
|
||||||
for(byte a: 0..255) {
|
for(byte a: 0..255) {
|
||||||
for(byte b: 0..255) {
|
for(byte b: 0..255) {
|
||||||
word ms = muls8u(a, b);
|
word ms = muls8u(a, b);
|
||||||
@ -138,7 +138,7 @@ void mul8u_slowfast_compare() {
|
|||||||
}
|
}
|
||||||
if(ok==0) {
|
if(ok==0) {
|
||||||
*BGCOL = 2;
|
*BGCOL = 2;
|
||||||
multiply_error(a,b, ms, mn, mf);
|
mul8u_error(a,b, ms, mn, mf);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -147,7 +147,7 @@ void mul8u_slowfast_compare() {
|
|||||||
print_ln();
|
print_ln();
|
||||||
}
|
}
|
||||||
|
|
||||||
void multiply_error(byte a, byte b, word ms, word mn, word mf) {
|
void mul8u_error(byte a, byte b, word ms, word mn, word mf) {
|
||||||
print_str("multiply mismatch @");
|
print_str("multiply mismatch @");
|
||||||
print_byte(a);
|
print_byte(a);
|
||||||
print_str("*@");
|
print_str("*@");
|
||||||
@ -162,14 +162,22 @@ void multiply_error(byte a, byte b, word ms, word mn, word mf) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Perform all possible signed byte multiplications (slow and fast) and compare the results
|
// Perform all possible signed byte multiplications (slow and fast) and compare the results
|
||||||
void mul8s_slowfast_compare() {
|
void mul8s_compare() {
|
||||||
for(signed byte a = -128; a!=-128; a++) {
|
for(signed byte a = -128; a!=-128; a++) {
|
||||||
for(signed byte b = -128; b!=-128; b++) {
|
for(signed byte b = -128; b!=-128; b++) {
|
||||||
signed word ms = muls8s(a, b);
|
signed word ms = muls8s(a, b);
|
||||||
signed word ma = mulf8s(a,b);
|
signed word mf = mulf8s(a,b);
|
||||||
if(ms!=ma) {
|
signed word mn = mul8s(a,b);
|
||||||
|
byte ok = 1;
|
||||||
|
if(ms!=mf) {
|
||||||
|
ok = 0;
|
||||||
|
}
|
||||||
|
if(ms!=mn) {
|
||||||
|
ok = 0;
|
||||||
|
}
|
||||||
|
if(ok==0) {
|
||||||
*BGCOL = 2;
|
*BGCOL = 2;
|
||||||
signed_multiply_error(a,b, ms, ma);
|
mul8s_error(a,b, ms, mn, mf);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -178,14 +186,16 @@ void mul8s_slowfast_compare() {
|
|||||||
print_ln();
|
print_ln();
|
||||||
}
|
}
|
||||||
|
|
||||||
void signed_multiply_error(signed byte a, signed byte b, signed word ms, signed word ma) {
|
void mul8s_error(signed byte a, signed byte b, signed word ms, signed word mn, signed word mf) {
|
||||||
print_str("signed multiply mismatch @");
|
print_str("signed multiply mismatch @");
|
||||||
print_sbyte(a);
|
print_sbyte(a);
|
||||||
print_str("*@");
|
print_str("*@");
|
||||||
print_sbyte(b);
|
print_sbyte(b);
|
||||||
print_str(" slow:@");
|
print_str(" slow:@");
|
||||||
print_sword(ms);
|
print_sword(ms);
|
||||||
print_str(" / fast asm:@");
|
print_str(" / normal:@");
|
||||||
print_sword(ma);
|
print_sword(mn);
|
||||||
|
print_str(" / fast:@");
|
||||||
|
print_sword(mf);
|
||||||
print_ln();
|
print_ln();
|
||||||
}
|
}
|
||||||
|
@ -13,13 +13,14 @@ main: {
|
|||||||
jsr mulf_init
|
jsr mulf_init
|
||||||
jsr mulf_init_asm
|
jsr mulf_init_asm
|
||||||
jsr mulf_tables_cmp
|
jsr mulf_tables_cmp
|
||||||
jsr mul8u_slowfast_compare
|
jsr mul8u_compare
|
||||||
jsr mul8s_slowfast_compare
|
jsr mul8s_compare
|
||||||
rts
|
rts
|
||||||
}
|
}
|
||||||
mul8s_slowfast_compare: {
|
mul8s_compare: {
|
||||||
.label ms = 8
|
.label ms = 8
|
||||||
.label ma = $c
|
.label mf = $e
|
||||||
|
.label mn = $c
|
||||||
.label b = 3
|
.label b = 3
|
||||||
.label a = 2
|
.label a = 2
|
||||||
lda #-$80
|
lda #-$80
|
||||||
@ -32,20 +33,38 @@ mul8s_slowfast_compare: {
|
|||||||
jsr muls8s
|
jsr muls8s
|
||||||
ldy a
|
ldy a
|
||||||
jsr mulf8s
|
jsr mulf8s
|
||||||
|
ldy b
|
||||||
|
jsr mul8s
|
||||||
lda ms
|
lda ms
|
||||||
cmp ma
|
cmp mf
|
||||||
bne !+
|
bne !+
|
||||||
lda ms+1
|
lda ms+1
|
||||||
cmp ma+1
|
cmp mf+1
|
||||||
beq b3
|
beq b6
|
||||||
!:
|
!:
|
||||||
|
ldx #0
|
||||||
|
jmp b3
|
||||||
|
b6:
|
||||||
|
ldx #1
|
||||||
|
b3:
|
||||||
|
lda ms
|
||||||
|
cmp mn
|
||||||
|
bne !+
|
||||||
|
lda ms+1
|
||||||
|
cmp mn+1
|
||||||
|
beq b4
|
||||||
|
!:
|
||||||
|
ldx #0
|
||||||
|
b4:
|
||||||
|
cpx #0
|
||||||
|
bne b5
|
||||||
lda #2
|
lda #2
|
||||||
sta BGCOL
|
sta BGCOL
|
||||||
ldx a
|
ldx a
|
||||||
jsr signed_multiply_error
|
jsr mul8s_error
|
||||||
breturn:
|
breturn:
|
||||||
rts
|
rts
|
||||||
b3:
|
b5:
|
||||||
inc b
|
inc b
|
||||||
lda b
|
lda b
|
||||||
cmp #-$80
|
cmp #-$80
|
||||||
@ -108,10 +127,11 @@ print_str: {
|
|||||||
!:
|
!:
|
||||||
jmp b1
|
jmp b1
|
||||||
}
|
}
|
||||||
signed_multiply_error: {
|
mul8s_error: {
|
||||||
.label b = 3
|
.label b = 3
|
||||||
.label ms = 8
|
.label ms = 8
|
||||||
.label ma = $c
|
.label mn = $c
|
||||||
|
.label mf = $e
|
||||||
lda line_cursor
|
lda line_cursor
|
||||||
sta char_cursor
|
sta char_cursor
|
||||||
lda line_cursor+1
|
lda line_cursor+1
|
||||||
@ -140,9 +160,19 @@ signed_multiply_error: {
|
|||||||
lda #>str3
|
lda #>str3
|
||||||
sta print_str.str+1
|
sta print_str.str+1
|
||||||
jsr print_str
|
jsr print_str
|
||||||
lda ma
|
lda mn
|
||||||
sta print_sword.w
|
sta print_sword.w
|
||||||
lda ma+1
|
lda mn+1
|
||||||
|
sta print_sword.w+1
|
||||||
|
jsr print_sword
|
||||||
|
lda #<str4
|
||||||
|
sta print_str.str
|
||||||
|
lda #>str4
|
||||||
|
sta print_str.str+1
|
||||||
|
jsr print_str
|
||||||
|
lda mf
|
||||||
|
sta print_sword.w
|
||||||
|
lda mf+1
|
||||||
sta print_sword.w+1
|
sta print_sword.w+1
|
||||||
jsr print_sword
|
jsr print_sword
|
||||||
jsr print_ln
|
jsr print_ln
|
||||||
@ -150,7 +180,8 @@ signed_multiply_error: {
|
|||||||
str: .text "signed multiply mismatch @"
|
str: .text "signed multiply mismatch @"
|
||||||
str1: .text "*@"
|
str1: .text "*@"
|
||||||
str2: .text " slow:@"
|
str2: .text " slow:@"
|
||||||
str3: .text " / fast asm:@"
|
str3: .text " / normal:@"
|
||||||
|
str4: .text " / fast:@"
|
||||||
}
|
}
|
||||||
print_sword: {
|
print_sword: {
|
||||||
.label w = 8
|
.label w = 8
|
||||||
@ -221,11 +252,69 @@ print_sbyte: {
|
|||||||
jsr print_byte
|
jsr print_byte
|
||||||
rts
|
rts
|
||||||
}
|
}
|
||||||
mulf8s: {
|
mul8s: {
|
||||||
.label m = $c
|
.label m = $c
|
||||||
.label b = 3
|
.label a = 2
|
||||||
.label return = $c
|
.label return = $c
|
||||||
tya
|
tya
|
||||||
|
ldx a
|
||||||
|
jsr mul8u
|
||||||
|
lda a
|
||||||
|
cmp #0
|
||||||
|
bpl b1
|
||||||
|
lda m+1
|
||||||
|
sty $ff
|
||||||
|
sec
|
||||||
|
sbc $ff
|
||||||
|
sta m+1
|
||||||
|
b1:
|
||||||
|
cpy #0
|
||||||
|
bpl b2
|
||||||
|
lda m+1
|
||||||
|
sec
|
||||||
|
sbc a
|
||||||
|
sta m+1
|
||||||
|
b2:
|
||||||
|
rts
|
||||||
|
}
|
||||||
|
mul8u: {
|
||||||
|
.label mb = 6
|
||||||
|
.label res = $c
|
||||||
|
.label return = $c
|
||||||
|
sta mb
|
||||||
|
lda #0
|
||||||
|
sta mb+1
|
||||||
|
sta res
|
||||||
|
sta res+1
|
||||||
|
b1:
|
||||||
|
cpx #0
|
||||||
|
bne b2
|
||||||
|
rts
|
||||||
|
b2:
|
||||||
|
txa
|
||||||
|
and #1
|
||||||
|
cmp #0
|
||||||
|
beq b4
|
||||||
|
lda res
|
||||||
|
clc
|
||||||
|
adc mb
|
||||||
|
sta res
|
||||||
|
lda res+1
|
||||||
|
adc mb+1
|
||||||
|
sta res+1
|
||||||
|
b4:
|
||||||
|
txa
|
||||||
|
lsr
|
||||||
|
tax
|
||||||
|
asl mb
|
||||||
|
rol mb+1
|
||||||
|
jmp b1
|
||||||
|
}
|
||||||
|
mulf8s: {
|
||||||
|
.label m = $e
|
||||||
|
.label b = 3
|
||||||
|
.label return = $e
|
||||||
|
tya
|
||||||
ldx b
|
ldx b
|
||||||
jsr mulf8u
|
jsr mulf8u
|
||||||
cpy #0
|
cpy #0
|
||||||
@ -249,7 +338,7 @@ mulf8s: {
|
|||||||
mulf8u: {
|
mulf8u: {
|
||||||
.label memA = $fe
|
.label memA = $fe
|
||||||
.label memB = $ff
|
.label memB = $ff
|
||||||
.label return = $c
|
.label return = $e
|
||||||
sta memA
|
sta memA
|
||||||
stx memB
|
stx memB
|
||||||
sta sm1+1
|
sta sm1+1
|
||||||
@ -338,10 +427,10 @@ muls8s: {
|
|||||||
bne b5
|
bne b5
|
||||||
jmp b3
|
jmp b3
|
||||||
}
|
}
|
||||||
mul8u_slowfast_compare: {
|
mul8u_compare: {
|
||||||
.label ms = 8
|
.label ms = 8
|
||||||
.label mf = $c
|
.label mf = $e
|
||||||
.label mn = $e
|
.label mn = $c
|
||||||
.label b = 3
|
.label b = 3
|
||||||
.label a = 2
|
.label a = 2
|
||||||
lda #0
|
lda #0
|
||||||
@ -384,7 +473,7 @@ mul8u_slowfast_compare: {
|
|||||||
lda #2
|
lda #2
|
||||||
sta BGCOL
|
sta BGCOL
|
||||||
ldx a
|
ldx a
|
||||||
jsr multiply_error
|
jsr mul8u_error
|
||||||
breturn:
|
breturn:
|
||||||
rts
|
rts
|
||||||
b5:
|
b5:
|
||||||
@ -403,11 +492,11 @@ mul8u_slowfast_compare: {
|
|||||||
jmp breturn
|
jmp breturn
|
||||||
str: .text "multiply results match!@"
|
str: .text "multiply results match!@"
|
||||||
}
|
}
|
||||||
multiply_error: {
|
mul8u_error: {
|
||||||
.label b = 3
|
.label b = 3
|
||||||
.label ms = 8
|
.label ms = 8
|
||||||
.label mn = $e
|
.label mn = $c
|
||||||
.label mf = $c
|
.label mf = $e
|
||||||
lda #<str
|
lda #<str
|
||||||
sta print_str.str
|
sta print_str.str
|
||||||
lda #>str
|
lda #>str
|
||||||
@ -455,39 +544,6 @@ multiply_error: {
|
|||||||
str3: .text " / normal:@"
|
str3: .text " / normal:@"
|
||||||
str4: .text " / fast:@"
|
str4: .text " / fast:@"
|
||||||
}
|
}
|
||||||
mul8u: {
|
|
||||||
.label mb = 6
|
|
||||||
.label res = $e
|
|
||||||
.label return = $e
|
|
||||||
sta mb
|
|
||||||
lda #0
|
|
||||||
sta mb+1
|
|
||||||
sta res
|
|
||||||
sta res+1
|
|
||||||
b1:
|
|
||||||
cpx #0
|
|
||||||
bne b2
|
|
||||||
rts
|
|
||||||
b2:
|
|
||||||
txa
|
|
||||||
and #1
|
|
||||||
cmp #0
|
|
||||||
beq b4
|
|
||||||
lda res
|
|
||||||
clc
|
|
||||||
adc mb
|
|
||||||
sta res
|
|
||||||
lda res+1
|
|
||||||
adc mb+1
|
|
||||||
sta res+1
|
|
||||||
b4:
|
|
||||||
txa
|
|
||||||
lsr
|
|
||||||
tax
|
|
||||||
asl mb
|
|
||||||
rol mb+1
|
|
||||||
jmp b1
|
|
||||||
}
|
|
||||||
muls8u: {
|
muls8u: {
|
||||||
.label return = 8
|
.label return = 8
|
||||||
.label m = 8
|
.label m = 8
|
||||||
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@ -1,4 +1,4 @@
|
|||||||
(label) @21
|
(label) @22
|
||||||
(label) @begin
|
(label) @begin
|
||||||
(label) @end
|
(label) @end
|
||||||
(byte*) BGCOL
|
(byte*) BGCOL
|
||||||
@ -7,21 +7,21 @@
|
|||||||
(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) 1024
|
(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) 1024
|
||||||
(byte*) char_cursor
|
(byte*) char_cursor
|
||||||
(byte*) char_cursor#1 char_cursor zp ZP_WORD:10 11.0
|
(byte*) char_cursor#1 char_cursor zp ZP_WORD:10 11.0
|
||||||
(byte*) char_cursor#126 char_cursor zp ZP_WORD:10 1.6578947368421046
|
(byte*) char_cursor#130 char_cursor zp ZP_WORD:10 1.5750000000000004
|
||||||
(byte*) char_cursor#127 char_cursor zp ZP_WORD:10 5.25
|
(byte*) char_cursor#131 char_cursor zp ZP_WORD:10 5.25
|
||||||
(byte*) char_cursor#128 char_cursor zp ZP_WORD:10 3.0
|
(byte*) char_cursor#132 char_cursor zp ZP_WORD:10 3.0
|
||||||
(byte*) char_cursor#130 char_cursor zp ZP_WORD:10 3.0
|
(byte*) char_cursor#134 char_cursor zp ZP_WORD:10 3.0
|
||||||
(byte*) char_cursor#132 char_cursor zp ZP_WORD:10 7.0
|
(byte*) char_cursor#136 char_cursor zp ZP_WORD:10 7.0
|
||||||
(byte*) char_cursor#133 char_cursor zp ZP_WORD:10 3.9999999999999996
|
(byte*) char_cursor#137 char_cursor zp ZP_WORD:10 3.9999999999999996
|
||||||
(byte*) char_cursor#145 char_cursor zp ZP_WORD:10 26.0
|
(byte*) char_cursor#149 char_cursor zp ZP_WORD:10 28.0
|
||||||
(byte*) char_cursor#17 char_cursor zp ZP_WORD:10 0.8000000000000002
|
(byte*) char_cursor#17 char_cursor zp ZP_WORD:10 0.8095238095238098
|
||||||
(byte*~) char_cursor#179 char_cursor zp ZP_WORD:10 4.0
|
(byte*~) char_cursor#188 char_cursor zp ZP_WORD:10 4.0
|
||||||
(byte*~) char_cursor#187 char_cursor zp ZP_WORD:10 4.0
|
(byte*~) char_cursor#189 char_cursor zp ZP_WORD:10 4.0
|
||||||
(byte*~) char_cursor#212 char_cursor zp ZP_WORD:10 4.0
|
(byte*~) char_cursor#222 char_cursor zp ZP_WORD:10 4.0
|
||||||
(byte*) char_cursor#30 char_cursor zp ZP_WORD:10 0.1951219512195122
|
(byte*) char_cursor#30 char_cursor zp ZP_WORD:10 0.1951219512195122
|
||||||
(byte*) char_cursor#80 char_cursor zp ZP_WORD:10 6.0
|
(byte*) char_cursor#82 char_cursor zp ZP_WORD:10 6.0
|
||||||
(byte*) line_cursor
|
(byte*) line_cursor
|
||||||
(byte*) line_cursor#1 line_cursor zp ZP_WORD:4 0.8181818181818181
|
(byte*) line_cursor#1 line_cursor zp ZP_WORD:4 0.6338028169014083
|
||||||
(byte*) line_cursor#10 line_cursor zp ZP_WORD:4 0.09523809523809523
|
(byte*) line_cursor#10 line_cursor zp ZP_WORD:4 0.09523809523809523
|
||||||
(byte*) line_cursor#23 line_cursor zp ZP_WORD:4 24.0
|
(byte*) line_cursor#23 line_cursor zp ZP_WORD:4 24.0
|
||||||
(byte*) line_cursor#45 line_cursor zp ZP_WORD:4 10.0
|
(byte*) line_cursor#45 line_cursor zp ZP_WORD:4 10.0
|
||||||
@ -32,28 +32,88 @@
|
|||||||
(label) main::@4
|
(label) main::@4
|
||||||
(label) main::@5
|
(label) main::@5
|
||||||
(label) main::@return
|
(label) main::@return
|
||||||
(void()) mul8s_slowfast_compare()
|
(signed word()) mul8s((signed byte) mul8s::a , (signed byte) mul8s::b)
|
||||||
(label) mul8s_slowfast_compare::@1
|
(byte~) mul8s::$12 reg byte a 4.0
|
||||||
(label) mul8s_slowfast_compare::@11
|
(byte/signed byte/word/signed word/dword/signed dword~) mul8s::$16 reg byte a 4.0
|
||||||
(label) mul8s_slowfast_compare::@2
|
(byte/signed byte/word/signed word/dword/signed dword~) mul8s::$17 reg byte a 4.0
|
||||||
(label) mul8s_slowfast_compare::@3
|
(byte~) mul8s::$6 reg byte a 4.0
|
||||||
(label) mul8s_slowfast_compare::@4
|
(label) mul8s::@1
|
||||||
(label) mul8s_slowfast_compare::@6
|
(label) mul8s::@2
|
||||||
(label) mul8s_slowfast_compare::@7
|
(label) mul8s::@3
|
||||||
(label) mul8s_slowfast_compare::@8
|
(label) mul8s::@4
|
||||||
(label) mul8s_slowfast_compare::@9
|
(label) mul8s::@6
|
||||||
(label) mul8s_slowfast_compare::@return
|
(label) mul8s::@return
|
||||||
(signed byte) mul8s_slowfast_compare::a
|
(signed byte) mul8s::a
|
||||||
(signed byte) mul8s_slowfast_compare::a#1 a zp ZP_BYTE:2 16.5
|
(signed byte) mul8s::a#0 a zp ZP_BYTE:2 7.357142857142858
|
||||||
(signed byte) mul8s_slowfast_compare::a#6 a zp ZP_BYTE:2 14.125
|
(signed byte) mul8s::b
|
||||||
(signed byte) mul8s_slowfast_compare::b
|
(signed byte) mul8s::b#0 reg byte y 9.363636363636363
|
||||||
(signed byte) mul8s_slowfast_compare::b#1 b zp ZP_BYTE:3 151.5
|
(word) mul8s::m
|
||||||
(signed byte) mul8s_slowfast_compare::b#2 b zp ZP_BYTE:3 29.0
|
(word) mul8s::m#0 m zp ZP_WORD:12 2.0
|
||||||
(signed word) mul8s_slowfast_compare::ma
|
(word) mul8s::m#1 m zp ZP_WORD:12 4.0
|
||||||
(signed word) mul8s_slowfast_compare::ma#0 ma zp ZP_WORD:12 34.0
|
(word) mul8s::m#2 m zp ZP_WORD:12 4.0
|
||||||
(signed word) mul8s_slowfast_compare::ms
|
(word) mul8s::m#4 m zp ZP_WORD:12 1.3333333333333333
|
||||||
(signed word) mul8s_slowfast_compare::ms#0 ms zp ZP_WORD:8 20.4
|
(word) mul8s::m#5 m zp ZP_WORD:12 2.5
|
||||||
(const string) mul8s_slowfast_compare::str str = (string) "signed multiply results match!@"
|
(signed word) mul8s::return
|
||||||
|
(signed word) mul8s::return#2 return zp ZP_WORD:12 202.0
|
||||||
|
(void()) mul8s_compare()
|
||||||
|
(label) mul8s_compare::@1
|
||||||
|
(label) mul8s_compare::@10
|
||||||
|
(label) mul8s_compare::@11
|
||||||
|
(label) mul8s_compare::@12
|
||||||
|
(label) mul8s_compare::@13
|
||||||
|
(label) mul8s_compare::@14
|
||||||
|
(label) mul8s_compare::@16
|
||||||
|
(label) mul8s_compare::@2
|
||||||
|
(label) mul8s_compare::@20
|
||||||
|
(label) mul8s_compare::@3
|
||||||
|
(label) mul8s_compare::@4
|
||||||
|
(label) mul8s_compare::@5
|
||||||
|
(label) mul8s_compare::@6
|
||||||
|
(label) mul8s_compare::@8
|
||||||
|
(label) mul8s_compare::@return
|
||||||
|
(signed byte) mul8s_compare::a
|
||||||
|
(signed byte) mul8s_compare::a#1 a zp ZP_BYTE:2 16.5
|
||||||
|
(signed byte) mul8s_compare::a#7 a zp ZP_BYTE:2 12.11111111111111
|
||||||
|
(signed byte) mul8s_compare::b
|
||||||
|
(signed byte) mul8s_compare::b#1 b zp ZP_BYTE:3 151.5
|
||||||
|
(signed byte) mul8s_compare::b#10 b zp ZP_BYTE:3 20.279999999999998
|
||||||
|
(signed word) mul8s_compare::mf
|
||||||
|
(signed word) mul8s_compare::mf#0 mf zp ZP_WORD:14 11.333333333333332
|
||||||
|
(signed word) mul8s_compare::mn
|
||||||
|
(signed word) mul8s_compare::mn#0 mn zp ZP_WORD:12 17.0
|
||||||
|
(signed word) mul8s_compare::ms
|
||||||
|
(signed word) mul8s_compare::ms#0 ms zp ZP_WORD:8 14.523809523809522
|
||||||
|
(byte) mul8s_compare::ok
|
||||||
|
(byte) mul8s_compare::ok#3 reg byte x 202.0
|
||||||
|
(byte) mul8s_compare::ok#4 reg byte x 33.666666666666664
|
||||||
|
(const string) mul8s_compare::str str = (string) "signed multiply results match!@"
|
||||||
|
(void()) mul8s_error((signed byte) mul8s_error::a , (signed byte) mul8s_error::b , (signed word) mul8s_error::ms , (signed word) mul8s_error::mn , (signed word) mul8s_error::mf)
|
||||||
|
(label) mul8s_error::@1
|
||||||
|
(label) mul8s_error::@10
|
||||||
|
(label) mul8s_error::@2
|
||||||
|
(label) mul8s_error::@3
|
||||||
|
(label) mul8s_error::@4
|
||||||
|
(label) mul8s_error::@5
|
||||||
|
(label) mul8s_error::@6
|
||||||
|
(label) mul8s_error::@7
|
||||||
|
(label) mul8s_error::@8
|
||||||
|
(label) mul8s_error::@9
|
||||||
|
(label) mul8s_error::@return
|
||||||
|
(signed byte) mul8s_error::a
|
||||||
|
(signed byte) mul8s_error::a#0 reg byte x 0.5714285714285714
|
||||||
|
(signed byte) mul8s_error::b
|
||||||
|
(signed byte) mul8s_error::b#0 b zp ZP_BYTE:3 0.4
|
||||||
|
(signed word) mul8s_error::mf
|
||||||
|
(signed word) mul8s_error::mf#0 mf zp ZP_WORD:14 0.21052631578947367
|
||||||
|
(signed word) mul8s_error::mn
|
||||||
|
(signed word) mul8s_error::mn#0 mn zp ZP_WORD:12 0.25
|
||||||
|
(signed word) mul8s_error::ms
|
||||||
|
(signed word) mul8s_error::ms#0 ms zp ZP_WORD:8 0.3076923076923077
|
||||||
|
(const string) mul8s_error::str str = (string) "signed multiply mismatch @"
|
||||||
|
(const string) mul8s_error::str1 str1 = (string) "*@"
|
||||||
|
(const string) mul8s_error::str2 str2 = (string) " slow:@"
|
||||||
|
(const string) mul8s_error::str3 str3 = (string) " / normal:@"
|
||||||
|
(const string) mul8s_error::str4 str4 = (string) " / fast:@"
|
||||||
(word()) mul8u((byte) mul8u::a , (byte) mul8u::b)
|
(word()) mul8u((byte) mul8u::a , (byte) mul8u::b)
|
||||||
(byte~) mul8u::$1 reg byte a 2002.0
|
(byte~) mul8u::$1 reg byte a 2002.0
|
||||||
(label) mul8u::@1
|
(label) mul8u::@1
|
||||||
@ -63,52 +123,84 @@
|
|||||||
(label) mul8u::@return
|
(label) mul8u::@return
|
||||||
(byte) mul8u::a
|
(byte) mul8u::a
|
||||||
(byte) mul8u::a#0 reg byte x 1001.0
|
(byte) mul8u::a#0 reg byte x 1001.0
|
||||||
(byte) mul8u::a#1 reg byte x 34.33333333333333
|
(byte) mul8u::a#2 reg byte x 101.0
|
||||||
(byte) mul8u::a#2 reg byte x 667.6666666666667
|
(byte) mul8u::a#3 reg byte x 667.6666666666667
|
||||||
|
(byte) mul8u::a#6 reg byte x 52.5
|
||||||
|
(byte~) mul8u::a#8 reg byte x 4.0
|
||||||
(byte) mul8u::b
|
(byte) mul8u::b
|
||||||
(byte) mul8u::b#0 reg byte a 103.0
|
(byte) mul8u::b#1 reg byte a 202.0
|
||||||
|
(byte) mul8u::b#2 reg byte a 105.0
|
||||||
|
(byte~) mul8u::b#3 reg byte a 2.0
|
||||||
(word) mul8u::mb
|
(word) mul8u::mb
|
||||||
(word) mul8u::mb#0 mb zp ZP_WORD:6 4.0
|
(word) mul8u::mb#0 mb zp ZP_WORD:6 4.0
|
||||||
(word) mul8u::mb#1 mb zp ZP_WORD:6 2002.0
|
(word) mul8u::mb#1 mb zp ZP_WORD:6 2002.0
|
||||||
(word) mul8u::mb#2 mb zp ZP_WORD:6 429.2857142857143
|
(word) mul8u::mb#2 mb zp ZP_WORD:6 429.2857142857143
|
||||||
(word) mul8u::res
|
(word) mul8u::res
|
||||||
(word) mul8u::res#1 res zp ZP_WORD:14 2002.0
|
(word) mul8u::res#1 res zp ZP_WORD:12 2002.0
|
||||||
(word) mul8u::res#2 res zp ZP_WORD:14 517.3333333333334
|
(word) mul8u::res#2 res zp ZP_WORD:12 443.7142857142857
|
||||||
(word) mul8u::res#6 res zp ZP_WORD:14 1001.0
|
(word) mul8u::res#6 res zp ZP_WORD:12 1001.0
|
||||||
(word) mul8u::return
|
(word) mul8u::return
|
||||||
(word) mul8u::return#2 return zp ZP_WORD:14 202.0
|
(word) mul8u::return#2 return zp ZP_WORD:12 4.0
|
||||||
(void()) mul8u_slowfast_compare()
|
(word) mul8u::return#3 return zp ZP_WORD:12 202.0
|
||||||
(label) mul8u_slowfast_compare::@1
|
(void()) mul8u_compare()
|
||||||
(label) mul8u_slowfast_compare::@10
|
(label) mul8u_compare::@1
|
||||||
(label) mul8u_slowfast_compare::@11
|
(label) mul8u_compare::@10
|
||||||
(label) mul8u_slowfast_compare::@12
|
(label) mul8u_compare::@11
|
||||||
(label) mul8u_slowfast_compare::@13
|
(label) mul8u_compare::@12
|
||||||
(label) mul8u_slowfast_compare::@14
|
(label) mul8u_compare::@13
|
||||||
(label) mul8u_slowfast_compare::@16
|
(label) mul8u_compare::@14
|
||||||
(label) mul8u_slowfast_compare::@2
|
(label) mul8u_compare::@16
|
||||||
(label) mul8u_slowfast_compare::@20
|
(label) mul8u_compare::@2
|
||||||
(label) mul8u_slowfast_compare::@3
|
(label) mul8u_compare::@20
|
||||||
(label) mul8u_slowfast_compare::@4
|
(label) mul8u_compare::@3
|
||||||
(label) mul8u_slowfast_compare::@5
|
(label) mul8u_compare::@4
|
||||||
(label) mul8u_slowfast_compare::@6
|
(label) mul8u_compare::@5
|
||||||
(label) mul8u_slowfast_compare::@8
|
(label) mul8u_compare::@6
|
||||||
(label) mul8u_slowfast_compare::@return
|
(label) mul8u_compare::@8
|
||||||
(byte) mul8u_slowfast_compare::a
|
(label) mul8u_compare::@return
|
||||||
(byte) mul8u_slowfast_compare::a#1 a zp ZP_BYTE:2 16.5
|
(byte) mul8u_compare::a
|
||||||
(byte) mul8u_slowfast_compare::a#7 a zp ZP_BYTE:2 12.11111111111111
|
(byte) mul8u_compare::a#1 a zp ZP_BYTE:2 16.5
|
||||||
(byte) mul8u_slowfast_compare::b
|
(byte) mul8u_compare::a#7 a zp ZP_BYTE:2 12.11111111111111
|
||||||
(byte) mul8u_slowfast_compare::b#1 b zp ZP_BYTE:3 151.5
|
(byte) mul8u_compare::b
|
||||||
(byte) mul8u_slowfast_compare::b#10 b zp ZP_BYTE:3 20.279999999999998
|
(byte) mul8u_compare::b#1 b zp ZP_BYTE:3 151.5
|
||||||
(word) mul8u_slowfast_compare::mf
|
(byte) mul8u_compare::b#10 b zp ZP_BYTE:3 20.279999999999998
|
||||||
(word) mul8u_slowfast_compare::mf#0 mf zp ZP_WORD:12 11.333333333333332
|
(word) mul8u_compare::mf
|
||||||
(word) mul8u_slowfast_compare::mn
|
(word) mul8u_compare::mf#0 mf zp ZP_WORD:14 11.333333333333332
|
||||||
(word) mul8u_slowfast_compare::mn#0 mn zp ZP_WORD:14 17.0
|
(word) mul8u_compare::mn
|
||||||
(word) mul8u_slowfast_compare::ms
|
(word) mul8u_compare::mn#0 mn zp ZP_WORD:12 17.0
|
||||||
(word) mul8u_slowfast_compare::ms#0 ms zp ZP_WORD:8 14.523809523809522
|
(word) mul8u_compare::ms
|
||||||
(byte) mul8u_slowfast_compare::ok
|
(word) mul8u_compare::ms#0 ms zp ZP_WORD:8 14.523809523809522
|
||||||
(byte) mul8u_slowfast_compare::ok#3 reg byte x 202.0
|
(byte) mul8u_compare::ok
|
||||||
(byte) mul8u_slowfast_compare::ok#4 reg byte x 33.666666666666664
|
(byte) mul8u_compare::ok#3 reg byte x 202.0
|
||||||
(const string) mul8u_slowfast_compare::str str = (string) "multiply results match!@"
|
(byte) mul8u_compare::ok#4 reg byte x 33.666666666666664
|
||||||
|
(const string) mul8u_compare::str str = (string) "multiply results match!@"
|
||||||
|
(void()) mul8u_error((byte) mul8u_error::a , (byte) mul8u_error::b , (word) mul8u_error::ms , (word) mul8u_error::mn , (word) mul8u_error::mf)
|
||||||
|
(label) mul8u_error::@1
|
||||||
|
(label) mul8u_error::@10
|
||||||
|
(label) mul8u_error::@2
|
||||||
|
(label) mul8u_error::@3
|
||||||
|
(label) mul8u_error::@4
|
||||||
|
(label) mul8u_error::@5
|
||||||
|
(label) mul8u_error::@6
|
||||||
|
(label) mul8u_error::@7
|
||||||
|
(label) mul8u_error::@8
|
||||||
|
(label) mul8u_error::@9
|
||||||
|
(label) mul8u_error::@return
|
||||||
|
(byte) mul8u_error::a
|
||||||
|
(byte) mul8u_error::a#0 reg byte x 0.5714285714285714
|
||||||
|
(byte) mul8u_error::b
|
||||||
|
(byte) mul8u_error::b#0 b zp ZP_BYTE:3 0.4
|
||||||
|
(word) mul8u_error::mf
|
||||||
|
(word) mul8u_error::mf#0 mf zp ZP_WORD:14 0.21052631578947367
|
||||||
|
(word) mul8u_error::mn
|
||||||
|
(word) mul8u_error::mn#0 mn zp ZP_WORD:12 0.25
|
||||||
|
(word) mul8u_error::ms
|
||||||
|
(word) mul8u_error::ms#0 ms zp ZP_WORD:8 0.3076923076923077
|
||||||
|
(const string) mul8u_error::str str = (string) "multiply mismatch @"
|
||||||
|
(const string) mul8u_error::str1 str1 = (string) "*@"
|
||||||
|
(const string) mul8u_error::str2 str2 = (string) " slow:@"
|
||||||
|
(const string) mul8u_error::str3 str3 = (string) " / normal:@"
|
||||||
|
(const string) mul8u_error::str4 str4 = (string) " / fast:@"
|
||||||
(byte[512]) mula_sqr1_hi
|
(byte[512]) mula_sqr1_hi
|
||||||
(const byte[512]) mula_sqr1_hi#0 mula_sqr1_hi = { fill( 512, 0) }
|
(const byte[512]) mula_sqr1_hi#0 mula_sqr1_hi = { fill( 512, 0) }
|
||||||
(byte[512]) mula_sqr1_lo
|
(byte[512]) mula_sqr1_lo
|
||||||
@ -133,13 +225,13 @@
|
|||||||
(signed byte) mulf8s::b
|
(signed byte) mulf8s::b
|
||||||
(signed byte) mulf8s::b#0 b zp ZP_BYTE:3 9.363636363636363
|
(signed byte) mulf8s::b#0 b zp ZP_BYTE:3 9.363636363636363
|
||||||
(word) mulf8s::m
|
(word) mulf8s::m
|
||||||
(word) mulf8s::m#0 m zp ZP_WORD:12 2.0
|
(word) mulf8s::m#0 m zp ZP_WORD:14 2.0
|
||||||
(word) mulf8s::m#1 m zp ZP_WORD:12 4.0
|
(word) mulf8s::m#1 m zp ZP_WORD:14 4.0
|
||||||
(word) mulf8s::m#2 m zp ZP_WORD:12 4.0
|
(word) mulf8s::m#2 m zp ZP_WORD:14 4.0
|
||||||
(word) mulf8s::m#4 m zp ZP_WORD:12 1.3333333333333333
|
(word) mulf8s::m#4 m zp ZP_WORD:14 1.3333333333333333
|
||||||
(word) mulf8s::m#5 m zp ZP_WORD:12 2.5
|
(word) mulf8s::m#5 m zp ZP_WORD:14 2.5
|
||||||
(signed word) mulf8s::return
|
(signed word) mulf8s::return
|
||||||
(signed word) mulf8s::return#2 return zp ZP_WORD:12 202.0
|
(signed word) mulf8s::return#2 return zp ZP_WORD:14 202.0
|
||||||
(word()) mulf8u((byte) mulf8u::a , (byte) mulf8u::b)
|
(word()) mulf8u((byte) mulf8u::a , (byte) mulf8u::b)
|
||||||
(label) mulf8u::@return
|
(label) mulf8u::@return
|
||||||
(byte) mulf8u::a
|
(byte) mulf8u::a
|
||||||
@ -155,9 +247,9 @@
|
|||||||
(byte*) mulf8u::memB
|
(byte*) mulf8u::memB
|
||||||
(const byte*) mulf8u::memB#0 memB = ((byte*))(byte/word/signed word/dword/signed dword) 255
|
(const byte*) mulf8u::memB#0 memB = ((byte*))(byte/word/signed word/dword/signed dword) 255
|
||||||
(word) mulf8u::return
|
(word) mulf8u::return
|
||||||
(word) mulf8u::return#0 return zp ZP_WORD:12 26.25
|
(word) mulf8u::return#0 return zp ZP_WORD:14 26.25
|
||||||
(word) mulf8u::return#2 return zp ZP_WORD:12 4.0
|
(word) mulf8u::return#2 return zp ZP_WORD:14 4.0
|
||||||
(word) mulf8u::return#3 return zp ZP_WORD:12 202.0
|
(word) mulf8u::return#3 return zp ZP_WORD:14 202.0
|
||||||
(void()) mulf_init()
|
(void()) mulf_init()
|
||||||
(byte~) mulf_init::$2 reg byte a 22.0
|
(byte~) mulf_init::$2 reg byte a 22.0
|
||||||
(byte~) mulf_init::$5 reg byte a 22.0
|
(byte~) mulf_init::$5 reg byte a 22.0
|
||||||
@ -272,33 +364,6 @@
|
|||||||
(word) muls8u::return
|
(word) muls8u::return
|
||||||
(word) muls8u::return#0 return zp ZP_WORD:8 367.33333333333337
|
(word) muls8u::return#0 return zp ZP_WORD:8 367.33333333333337
|
||||||
(word) muls8u::return#2 return zp ZP_WORD:8 202.0
|
(word) muls8u::return#2 return zp ZP_WORD:8 202.0
|
||||||
(void()) multiply_error((byte) multiply_error::a , (byte) multiply_error::b , (word) multiply_error::ms , (word) multiply_error::mn , (word) multiply_error::mf)
|
|
||||||
(label) multiply_error::@1
|
|
||||||
(label) multiply_error::@10
|
|
||||||
(label) multiply_error::@2
|
|
||||||
(label) multiply_error::@3
|
|
||||||
(label) multiply_error::@4
|
|
||||||
(label) multiply_error::@5
|
|
||||||
(label) multiply_error::@6
|
|
||||||
(label) multiply_error::@7
|
|
||||||
(label) multiply_error::@8
|
|
||||||
(label) multiply_error::@9
|
|
||||||
(label) multiply_error::@return
|
|
||||||
(byte) multiply_error::a
|
|
||||||
(byte) multiply_error::a#0 reg byte x 0.5714285714285714
|
|
||||||
(byte) multiply_error::b
|
|
||||||
(byte) multiply_error::b#0 b zp ZP_BYTE:3 0.4
|
|
||||||
(word) multiply_error::mf
|
|
||||||
(word) multiply_error::mf#0 mf zp ZP_WORD:12 0.21052631578947367
|
|
||||||
(word) multiply_error::mn
|
|
||||||
(word) multiply_error::mn#0 mn zp ZP_WORD:14 0.25
|
|
||||||
(word) multiply_error::ms
|
|
||||||
(word) multiply_error::ms#0 ms zp ZP_WORD:8 0.3076923076923077
|
|
||||||
(const string) multiply_error::str str = (string) "multiply mismatch @"
|
|
||||||
(const string) multiply_error::str1 str1 = (string) "*@"
|
|
||||||
(const string) multiply_error::str2 str2 = (string) " slow:@"
|
|
||||||
(const string) multiply_error::str3 str3 = (string) " / normal:@"
|
|
||||||
(const string) multiply_error::str4 str4 = (string) " / fast:@"
|
|
||||||
(void()) print_byte((byte) print_byte::b)
|
(void()) print_byte((byte) print_byte::b)
|
||||||
(byte~) print_byte::$0 reg byte a 4.0
|
(byte~) print_byte::$0 reg byte a 4.0
|
||||||
(byte~) print_byte::$2 reg byte a 4.0
|
(byte~) print_byte::$2 reg byte a 4.0
|
||||||
@ -345,8 +410,8 @@
|
|||||||
(label) print_str::@return
|
(label) print_str::@return
|
||||||
(byte*) print_str::str
|
(byte*) print_str::str
|
||||||
(byte*) print_str::str#0 str zp ZP_WORD:6 22.0
|
(byte*) print_str::str#0 str zp ZP_WORD:6 22.0
|
||||||
(byte*) print_str::str#15 str zp ZP_WORD:6 11.5
|
(byte*) print_str::str#16 str zp ZP_WORD:6 11.5
|
||||||
(byte*) print_str::str#17 str zp ZP_WORD:6 2.0
|
(byte*) print_str::str#18 str zp ZP_WORD:6 2.0
|
||||||
(void()) print_sword((signed word) print_sword::w)
|
(void()) print_sword((signed word) print_sword::w)
|
||||||
(label) print_sword::@1
|
(label) print_sword::@1
|
||||||
(label) print_sword::@2
|
(label) print_sword::@2
|
||||||
@ -356,75 +421,60 @@
|
|||||||
(signed word) print_sword::w#0 w zp ZP_WORD:8 4.0
|
(signed word) print_sword::w#0 w zp ZP_WORD:8 4.0
|
||||||
(signed word) print_sword::w#1 w zp ZP_WORD:8 4.0
|
(signed word) print_sword::w#1 w zp ZP_WORD:8 4.0
|
||||||
(signed word) print_sword::w#2 w zp ZP_WORD:8 4.0
|
(signed word) print_sword::w#2 w zp ZP_WORD:8 4.0
|
||||||
(signed word) print_sword::w#3 w zp ZP_WORD:8 2.5
|
(signed word) print_sword::w#3 w zp ZP_WORD:8 4.0
|
||||||
(signed word) print_sword::w#4 w zp ZP_WORD:8 4.0
|
(signed word) print_sword::w#4 w zp ZP_WORD:8 3.0
|
||||||
|
(signed word) print_sword::w#5 w zp ZP_WORD:8 4.0
|
||||||
(void()) print_word((word) print_word::w)
|
(void()) print_word((word) print_word::w)
|
||||||
(label) print_word::@1
|
(label) print_word::@1
|
||||||
(label) print_word::@return
|
(label) print_word::@return
|
||||||
(word) print_word::w
|
(word) print_word::w
|
||||||
|
(word~) print_word::w#11 w zp ZP_WORD:8 4.0
|
||||||
|
(word~) print_word::w#12 w zp ZP_WORD:8 4.0
|
||||||
(word~) print_word::w#13 w zp ZP_WORD:8 4.0
|
(word~) print_word::w#13 w zp ZP_WORD:8 4.0
|
||||||
(word) print_word::w#3 w zp ZP_WORD:8 4.0
|
(word) print_word::w#3 w zp ZP_WORD:8 4.0
|
||||||
(word) print_word::w#4 w zp ZP_WORD:8 4.0
|
(word) print_word::w#4 w zp ZP_WORD:8 4.0
|
||||||
(word) print_word::w#5 w zp ZP_WORD:8 4.0
|
(word) print_word::w#5 w zp ZP_WORD:8 4.0
|
||||||
(word) print_word::w#6 w zp ZP_WORD:8 5.333333333333333
|
(word) print_word::w#6 w zp ZP_WORD:8 5.333333333333333
|
||||||
(word~) print_word::w#8 w zp ZP_WORD:8 4.0
|
|
||||||
(word~) print_word::w#9 w zp ZP_WORD:8 4.0
|
|
||||||
(void()) signed_multiply_error((signed byte) signed_multiply_error::a , (signed byte) signed_multiply_error::b , (signed word) signed_multiply_error::ms , (signed word) signed_multiply_error::ma)
|
|
||||||
(label) signed_multiply_error::@1
|
|
||||||
(label) signed_multiply_error::@2
|
|
||||||
(label) signed_multiply_error::@3
|
|
||||||
(label) signed_multiply_error::@4
|
|
||||||
(label) signed_multiply_error::@5
|
|
||||||
(label) signed_multiply_error::@6
|
|
||||||
(label) signed_multiply_error::@7
|
|
||||||
(label) signed_multiply_error::@8
|
|
||||||
(label) signed_multiply_error::@return
|
|
||||||
(signed byte) signed_multiply_error::a
|
|
||||||
(signed byte) signed_multiply_error::a#0 reg byte x 0.6666666666666666
|
|
||||||
(signed byte) signed_multiply_error::b
|
|
||||||
(signed byte) signed_multiply_error::b#0 b zp ZP_BYTE:3 0.4444444444444444
|
|
||||||
(signed word) signed_multiply_error::ma
|
|
||||||
(signed word) signed_multiply_error::ma#0 ma zp ZP_WORD:12 0.26666666666666666
|
|
||||||
(signed word) signed_multiply_error::ms
|
|
||||||
(signed word) signed_multiply_error::ms#0 ms zp ZP_WORD:8 0.3333333333333333
|
|
||||||
(const string) signed_multiply_error::str str = (string) "signed multiply mismatch @"
|
|
||||||
(const string) signed_multiply_error::str1 str1 = (string) "*@"
|
|
||||||
(const string) signed_multiply_error::str2 str2 = (string) " slow:@"
|
|
||||||
(const string) signed_multiply_error::str3 str3 = (string) " / fast asm:@"
|
|
||||||
|
|
||||||
zp ZP_BYTE:2 [ mul8s_slowfast_compare::a#6 mul8s_slowfast_compare::a#1 muls8s::a#0 mul8u_slowfast_compare::a#7 mul8u_slowfast_compare::a#1 muls8u::a#0 mulf_init::x_2#3 mulf_init::x_2#2 mulf_init::x_2#1 mulf_init::dir#2 mulf_init::dir#3 ]
|
zp ZP_BYTE:2 [ mul8s_compare::a#7 mul8s_compare::a#1 muls8s::a#0 mul8s::a#0 mul8u_compare::a#7 mul8u_compare::a#1 muls8u::a#0 mulf_init::x_2#3 mulf_init::x_2#2 mulf_init::x_2#1 mulf_init::dir#2 mulf_init::dir#3 ]
|
||||||
zp ZP_BYTE:3 [ mul8s_slowfast_compare::b#2 mul8s_slowfast_compare::b#1 mulf8s::b#0 signed_multiply_error::b#0 mul8u_slowfast_compare::b#10 mul8u_slowfast_compare::b#1 multiply_error::b#0 ]
|
zp ZP_BYTE:3 [ mul8s_compare::b#10 mul8s_compare::b#1 mulf8s::b#0 mul8s_error::b#0 mul8u_compare::b#10 mul8u_compare::b#1 mul8u_error::b#0 ]
|
||||||
|
reg byte x [ mul8s_compare::ok#3 mul8s_compare::ok#4 ]
|
||||||
zp ZP_WORD:4 [ line_cursor#23 line_cursor#45 line_cursor#1 line_cursor#10 mulf_tables_cmp::kc_sqr#2 mulf_tables_cmp::kc_sqr#1 mulf_init::sqr1_lo#2 mulf_init::sqr1_lo#1 mulf_init::sqr2_lo#2 mulf_init::sqr2_lo#1 print_cls::sc#2 print_cls::sc#1 ]
|
zp ZP_WORD:4 [ line_cursor#23 line_cursor#45 line_cursor#1 line_cursor#10 mulf_tables_cmp::kc_sqr#2 mulf_tables_cmp::kc_sqr#1 mulf_init::sqr1_lo#2 mulf_init::sqr1_lo#1 mulf_init::sqr2_lo#2 mulf_init::sqr2_lo#1 print_cls::sc#2 print_cls::sc#1 ]
|
||||||
zp ZP_WORD:6 [ print_str::str#15 print_str::str#17 print_str::str#0 mul8u::mb#2 mul8u::mb#0 mul8u::mb#1 mulf_init::sqr1_hi#2 mulf_init::sqr1_hi#1 mulf_init::sqr2_hi#2 mulf_init::sqr2_hi#1 ]
|
zp ZP_WORD:6 [ print_str::str#16 print_str::str#18 print_str::str#0 mul8u::mb#2 mul8u::mb#0 mul8u::mb#1 mulf_init::sqr1_hi#2 mulf_init::sqr1_hi#1 mulf_init::sqr2_hi#2 mulf_init::sqr2_hi#1 ]
|
||||||
zp ZP_WORD:8 [ print_sword::w#4 print_sword::w#3 print_sword::w#1 print_sword::w#2 print_sword::w#0 print_word::w#6 print_word::w#8 print_word::w#9 print_word::w#3 print_word::w#4 print_word::w#5 print_word::w#13 mulf_tables_cmp::asm_sqr#2 mulf_tables_cmp::asm_sqr#1 signed_multiply_error::ms#0 mul8s_slowfast_compare::ms#0 muls8s::return#2 muls8s::m#5 muls8s::return#0 muls8s::m#3 muls8s::m#1 muls8s::m#2 multiply_error::ms#0 mul8u_slowfast_compare::ms#0 muls8u::return#2 muls8u::return#0 muls8u::m#3 muls8u::m#1 mulf_init::sqr#3 mulf_init::sqr#4 mulf_init::sqr#1 mulf_init::sqr#2 ]
|
zp ZP_WORD:8 [ print_sword::w#5 print_sword::w#4 print_sword::w#1 print_sword::w#2 print_sword::w#3 print_sword::w#0 print_word::w#6 print_word::w#3 print_word::w#4 print_word::w#5 print_word::w#11 print_word::w#12 print_word::w#13 mulf_tables_cmp::asm_sqr#2 mulf_tables_cmp::asm_sqr#1 mul8s_error::ms#0 mul8s_compare::ms#0 muls8s::return#2 muls8s::m#5 muls8s::return#0 muls8s::m#3 muls8s::m#1 muls8s::m#2 mul8u_error::ms#0 mul8u_compare::ms#0 muls8u::return#2 muls8u::return#0 muls8u::m#3 muls8u::m#1 mulf_init::sqr#3 mulf_init::sqr#4 mulf_init::sqr#1 mulf_init::sqr#2 ]
|
||||||
reg byte x [ print_byte::b#5 print_byte::b#3 print_byte::b#4 print_byte::b#9 print_byte::b#1 print_byte::b#2 ]
|
reg byte x [ print_byte::b#5 print_byte::b#3 print_byte::b#4 print_byte::b#9 print_byte::b#1 print_byte::b#2 ]
|
||||||
reg byte a [ print_char::ch#4 print_char::ch#2 print_char::ch#3 ]
|
reg byte a [ print_char::ch#4 print_char::ch#2 print_char::ch#3 ]
|
||||||
zp ZP_WORD:10 [ char_cursor#80 char_cursor#133 char_cursor#132 char_cursor#128 char_cursor#145 char_cursor#179 char_cursor#30 char_cursor#127 char_cursor#126 char_cursor#17 char_cursor#187 char_cursor#1 char_cursor#130 char_cursor#212 ]
|
zp ZP_WORD:10 [ char_cursor#82 char_cursor#137 char_cursor#136 char_cursor#132 char_cursor#149 char_cursor#188 char_cursor#189 char_cursor#131 char_cursor#130 char_cursor#17 char_cursor#30 char_cursor#1 char_cursor#134 char_cursor#222 ]
|
||||||
reg byte x [ print_sbyte::b#4 print_sbyte::b#3 print_sbyte::b#1 print_sbyte::b#2 print_sbyte::b#0 ]
|
reg byte x [ print_sbyte::b#4 print_sbyte::b#3 print_sbyte::b#1 print_sbyte::b#2 print_sbyte::b#0 ]
|
||||||
zp ZP_WORD:12 [ mulf8s::m#4 mulf8s::m#5 mulf8s::m#1 mulf8s::m#0 mulf8s::m#2 mulf8s::return#2 mul8s_slowfast_compare::ma#0 signed_multiply_error::ma#0 mulf8u::return#2 mulf8u::return#0 mulf8u::return#3 mul8u_slowfast_compare::mf#0 multiply_error::mf#0 ]
|
zp ZP_WORD:12 [ mul8s::m#4 mul8s::m#5 mul8s::m#1 mul8s::m#0 mul8s::m#2 mul8s::return#2 mul8s_compare::mn#0 mul8s_error::mn#0 mul8u::return#2 mul8u::res#2 mul8u::res#6 mul8u::res#1 mul8u::return#3 mul8u_compare::mn#0 mul8u_error::mn#0 ]
|
||||||
|
reg byte a [ mul8u::b#2 mul8u::b#3 mul8u::b#1 ]
|
||||||
|
reg byte x [ mul8u::a#3 mul8u::a#6 mul8u::a#8 mul8u::a#2 mul8u::a#0 ]
|
||||||
|
zp ZP_WORD:14 [ mulf8s::m#4 mulf8s::m#5 mulf8s::m#1 mulf8s::m#0 mulf8s::m#2 mulf8s::return#2 mul8s_compare::mf#0 mul8s_error::mf#0 mulf8u::return#2 mulf8u::return#0 mulf8u::return#3 mul8u_compare::mf#0 mul8u_error::mf#0 ]
|
||||||
reg byte a [ mulf8u::a#2 mulf8u::a#1 mulf8u::a#4 ]
|
reg byte a [ mulf8u::a#2 mulf8u::a#1 mulf8u::a#4 ]
|
||||||
reg byte x [ mulf8u::b#2 mulf8u::b#1 mulf8u::b#4 ]
|
reg byte x [ mulf8u::b#2 mulf8u::b#1 mulf8u::b#4 ]
|
||||||
reg byte y [ muls8s::i#2 muls8s::i#1 ]
|
reg byte y [ muls8s::i#2 muls8s::i#1 ]
|
||||||
reg byte y [ muls8s::j#2 muls8s::j#1 ]
|
reg byte y [ muls8s::j#2 muls8s::j#1 ]
|
||||||
reg byte x [ mul8u_slowfast_compare::ok#3 mul8u_slowfast_compare::ok#4 ]
|
reg byte x [ mul8u_compare::ok#3 mul8u_compare::ok#4 ]
|
||||||
reg byte x [ mul8u::a#2 mul8u::a#1 mul8u::a#0 ]
|
|
||||||
zp ZP_WORD:14 [ mul8u::res#2 mul8u::res#6 mul8u::res#1 mul8u::return#2 mul8u_slowfast_compare::mn#0 multiply_error::mn#0 ]
|
|
||||||
reg byte y [ muls8u::i#2 muls8u::i#1 ]
|
reg byte y [ muls8u::i#2 muls8u::i#1 ]
|
||||||
reg byte x [ mulf_init::c#2 mulf_init::c#1 ]
|
reg byte x [ mulf_init::c#2 mulf_init::c#1 ]
|
||||||
reg byte x [ mulf_init::x_255#2 mulf_init::x_255#1 ]
|
reg byte x [ mulf_init::x_255#2 mulf_init::x_255#1 ]
|
||||||
reg byte x [ muls8s::b#0 ]
|
reg byte x [ muls8s::b#0 ]
|
||||||
reg byte y [ mulf8s::a#0 ]
|
reg byte y [ mulf8s::a#0 ]
|
||||||
reg byte x [ signed_multiply_error::a#0 ]
|
reg byte y [ mul8s::b#0 ]
|
||||||
|
reg byte x [ mul8s_error::a#0 ]
|
||||||
reg byte a [ print_byte::$0 ]
|
reg byte a [ print_byte::$0 ]
|
||||||
reg byte a [ print_byte::$2 ]
|
reg byte a [ print_byte::$2 ]
|
||||||
|
reg byte a [ mul8s::$6 ]
|
||||||
|
reg byte a [ mul8s::$16 ]
|
||||||
|
reg byte a [ mul8s::$12 ]
|
||||||
|
reg byte a [ mul8s::$17 ]
|
||||||
|
reg byte a [ mul8u::$1 ]
|
||||||
reg byte a [ mulf8s::$6 ]
|
reg byte a [ mulf8s::$6 ]
|
||||||
reg byte a [ mulf8s::$16 ]
|
reg byte a [ mulf8s::$16 ]
|
||||||
reg byte a [ mulf8s::$12 ]
|
reg byte a [ mulf8s::$12 ]
|
||||||
reg byte a [ mulf8s::$17 ]
|
reg byte a [ mulf8s::$17 ]
|
||||||
reg byte x [ muls8u::b#0 ]
|
reg byte x [ muls8u::b#0 ]
|
||||||
reg byte a [ mul8u::b#0 ]
|
reg byte x [ mul8u_error::a#0 ]
|
||||||
reg byte x [ multiply_error::a#0 ]
|
|
||||||
reg byte a [ mul8u::$1 ]
|
|
||||||
reg byte a [ mulf_init::$2 ]
|
reg byte a [ mulf_init::$2 ]
|
||||||
reg byte a [ mulf_init::$5 ]
|
reg byte a [ mulf_init::$5 ]
|
||||||
reg byte a [ mulf_init::$6 ]
|
reg byte a [ mulf_init::$6 ]
|
||||||
|
Loading…
Reference in New Issue
Block a user