From 6d98f189606b641397e48852612262336cb45824 Mon Sep 17 00:00:00 2001 From: jespergravgaard Date: Sun, 21 Oct 2018 17:25:33 +0200 Subject: [PATCH] Implemented working 3d rotation. --- ...efidx_vbsxx_minus_pbsc1_derefidx_vbsxx.asm | 3 + ...efidx_vbsxx_minus_pbsc1_derefidx_vbsyy.asm | 3 + ...efidx_vbsxx_minus_pbsc2_derefidx_vbsxx.asm | 3 + ...efidx_vbsxx_minus_pbsc2_derefidx_vbsyy.asm | 3 + ...refidx_vbsxx_plus_pbsc1_derefidx_vbsxx.asm | 3 + ...refidx_vbsxx_plus_pbsc1_derefidx_vbsyy.asm | 3 + ...refidx_vbsxx_plus_pbsc2_derefidx_vbsxx.asm | 3 + ...refidx_vbsxx_plus_pbsc2_derefidx_vbsyy.asm | 3 + ...efidx_vbsyy_minus_pbsc1_derefidx_vbsxx.asm | 3 + ...efidx_vbsyy_minus_pbsc1_derefidx_vbsyy.asm | 3 + ...efidx_vbsyy_minus_pbsc2_derefidx_vbsxx.asm | 3 + ...efidx_vbsyy_minus_pbsc2_derefidx_vbsyy.asm | 3 + ...refidx_vbsyy_plus_pbsc1_derefidx_vbsyy.asm | 3 + ...refidx_vbsyy_plus_pbsc2_derefidx_vbsxx.asm | 3 + ...refidx_vbsyy_plus_pbsc2_derefidx_vbsyy.asm | 3 + ...efidx_vbuxx_minus_pbsc2_derefidx_vbuyy.asm | 3 + ...refidx_vbuxx_plus_pbsc1_derefidx_vbuxx.asm | 3 + ...refidx_vbuxx_plus_pbsc1_derefidx_vbuyy.asm | 3 + ...refidx_vbuxx_plus_pbsc2_derefidx_vbuxx.asm | 3 + ...refidx_vbuxx_plus_pbsc2_derefidx_vbuyy.asm | 3 + ...efidx_vbuyy_minus_pbsc2_derefidx_vbuxx.asm | 3 + ...refidx_vbuyy_plus_pbsc1_derefidx_vbuyy.asm | 3 + ...refidx_vbuyy_plus_pbsc2_derefidx_vbuxx.asm | 3 + ...refidx_vbuyy_plus_pbsc2_derefidx_vbuyy.asm | 3 + ...vbsaa=vbsaa_minus_pbsc1_derefidx_vbsxx.asm | 2 + ...vbsaa=vbsaa_minus_pbsc1_derefidx_vbsyy.asm | 2 + .../vbsaa=vbsaa_plus_pbsc1_derefidx_vbsxx.asm | 2 + .../vbsaa=vbsaa_plus_pbsc1_derefidx_vbsyy.asm | 2 + src/main/fragment/vbsaa=vbsaa_ror_1.asm | 2 + src/main/fragment/vbuaa=vbsaa_band_vbuc1.asm | 1 + src/test/kc/examples/3d/3d.kc | 80 +- src/test/kc/examples/3d/balloon.png | Bin 0 -> 1323 bytes src/test/ref/examples/3d/3d.asm | 362 +- src/test/ref/examples/3d/3d.cfg | 259 +- src/test/ref/examples/3d/3d.log | 4728 +++++++++++------ src/test/ref/examples/3d/3d.sym | 175 +- src/test/ref/test-multiply-16bit.cfg | 8 +- src/test/ref/test-multiply-16bit.log | 102 +- src/test/ref/test-multiply-16bit.sym | 2 +- src/test/ref/test-multiply-8bit.cfg | 8 +- src/test/ref/test-multiply-8bit.log | 118 +- src/test/ref/test-multiply-8bit.sym | 2 +- 42 files changed, 3846 insertions(+), 2081 deletions(-) create mode 100644 src/main/fragment/vbsaa=pbsc1_derefidx_vbsxx_minus_pbsc1_derefidx_vbsxx.asm create mode 100644 src/main/fragment/vbsaa=pbsc1_derefidx_vbsxx_minus_pbsc1_derefidx_vbsyy.asm create mode 100644 src/main/fragment/vbsaa=pbsc1_derefidx_vbsxx_minus_pbsc2_derefidx_vbsxx.asm create mode 100644 src/main/fragment/vbsaa=pbsc1_derefidx_vbsxx_minus_pbsc2_derefidx_vbsyy.asm create mode 100644 src/main/fragment/vbsaa=pbsc1_derefidx_vbsxx_plus_pbsc1_derefidx_vbsxx.asm create mode 100644 src/main/fragment/vbsaa=pbsc1_derefidx_vbsxx_plus_pbsc1_derefidx_vbsyy.asm create mode 100644 src/main/fragment/vbsaa=pbsc1_derefidx_vbsxx_plus_pbsc2_derefidx_vbsxx.asm create mode 100644 src/main/fragment/vbsaa=pbsc1_derefidx_vbsxx_plus_pbsc2_derefidx_vbsyy.asm create mode 100644 src/main/fragment/vbsaa=pbsc1_derefidx_vbsyy_minus_pbsc1_derefidx_vbsxx.asm create mode 100644 src/main/fragment/vbsaa=pbsc1_derefidx_vbsyy_minus_pbsc1_derefidx_vbsyy.asm create mode 100644 src/main/fragment/vbsaa=pbsc1_derefidx_vbsyy_minus_pbsc2_derefidx_vbsxx.asm create mode 100644 src/main/fragment/vbsaa=pbsc1_derefidx_vbsyy_minus_pbsc2_derefidx_vbsyy.asm create mode 100644 src/main/fragment/vbsaa=pbsc1_derefidx_vbsyy_plus_pbsc1_derefidx_vbsyy.asm create mode 100644 src/main/fragment/vbsaa=pbsc1_derefidx_vbsyy_plus_pbsc2_derefidx_vbsxx.asm create mode 100644 src/main/fragment/vbsaa=pbsc1_derefidx_vbsyy_plus_pbsc2_derefidx_vbsyy.asm create mode 100644 src/main/fragment/vbsaa=pbsc1_derefidx_vbuxx_minus_pbsc2_derefidx_vbuyy.asm create mode 100644 src/main/fragment/vbsaa=pbsc1_derefidx_vbuxx_plus_pbsc1_derefidx_vbuxx.asm create mode 100644 src/main/fragment/vbsaa=pbsc1_derefidx_vbuxx_plus_pbsc1_derefidx_vbuyy.asm create mode 100644 src/main/fragment/vbsaa=pbsc1_derefidx_vbuxx_plus_pbsc2_derefidx_vbuxx.asm create mode 100644 src/main/fragment/vbsaa=pbsc1_derefidx_vbuxx_plus_pbsc2_derefidx_vbuyy.asm create mode 100644 src/main/fragment/vbsaa=pbsc1_derefidx_vbuyy_minus_pbsc2_derefidx_vbuxx.asm create mode 100644 src/main/fragment/vbsaa=pbsc1_derefidx_vbuyy_plus_pbsc1_derefidx_vbuyy.asm create mode 100644 src/main/fragment/vbsaa=pbsc1_derefidx_vbuyy_plus_pbsc2_derefidx_vbuxx.asm create mode 100644 src/main/fragment/vbsaa=pbsc1_derefidx_vbuyy_plus_pbsc2_derefidx_vbuyy.asm create mode 100644 src/main/fragment/vbsaa=vbsaa_minus_pbsc1_derefidx_vbsxx.asm create mode 100644 src/main/fragment/vbsaa=vbsaa_minus_pbsc1_derefidx_vbsyy.asm create mode 100644 src/main/fragment/vbsaa=vbsaa_plus_pbsc1_derefidx_vbsxx.asm create mode 100644 src/main/fragment/vbsaa=vbsaa_plus_pbsc1_derefidx_vbsyy.asm create mode 100644 src/main/fragment/vbsaa=vbsaa_ror_1.asm create mode 100644 src/main/fragment/vbuaa=vbsaa_band_vbuc1.asm create mode 100644 src/test/kc/examples/3d/balloon.png diff --git a/src/main/fragment/vbsaa=pbsc1_derefidx_vbsxx_minus_pbsc1_derefidx_vbsxx.asm b/src/main/fragment/vbsaa=pbsc1_derefidx_vbsxx_minus_pbsc1_derefidx_vbsxx.asm new file mode 100644 index 000000000..91688acad --- /dev/null +++ b/src/main/fragment/vbsaa=pbsc1_derefidx_vbsxx_minus_pbsc1_derefidx_vbsxx.asm @@ -0,0 +1,3 @@ +sec +lda {c1},x +sbc {c1},x diff --git a/src/main/fragment/vbsaa=pbsc1_derefidx_vbsxx_minus_pbsc1_derefidx_vbsyy.asm b/src/main/fragment/vbsaa=pbsc1_derefidx_vbsxx_minus_pbsc1_derefidx_vbsyy.asm new file mode 100644 index 000000000..9bbd8e84a --- /dev/null +++ b/src/main/fragment/vbsaa=pbsc1_derefidx_vbsxx_minus_pbsc1_derefidx_vbsyy.asm @@ -0,0 +1,3 @@ +sec +lda {c1},x +sbc {c1},y diff --git a/src/main/fragment/vbsaa=pbsc1_derefidx_vbsxx_minus_pbsc2_derefidx_vbsxx.asm b/src/main/fragment/vbsaa=pbsc1_derefidx_vbsxx_minus_pbsc2_derefidx_vbsxx.asm new file mode 100644 index 000000000..184d62f10 --- /dev/null +++ b/src/main/fragment/vbsaa=pbsc1_derefidx_vbsxx_minus_pbsc2_derefidx_vbsxx.asm @@ -0,0 +1,3 @@ +sec +lda {c1},x +sbc {c2},x diff --git a/src/main/fragment/vbsaa=pbsc1_derefidx_vbsxx_minus_pbsc2_derefidx_vbsyy.asm b/src/main/fragment/vbsaa=pbsc1_derefidx_vbsxx_minus_pbsc2_derefidx_vbsyy.asm new file mode 100644 index 000000000..0a01b4508 --- /dev/null +++ b/src/main/fragment/vbsaa=pbsc1_derefidx_vbsxx_minus_pbsc2_derefidx_vbsyy.asm @@ -0,0 +1,3 @@ +sec +lda {c1},x +sbc {c2},y diff --git a/src/main/fragment/vbsaa=pbsc1_derefidx_vbsxx_plus_pbsc1_derefidx_vbsxx.asm b/src/main/fragment/vbsaa=pbsc1_derefidx_vbsxx_plus_pbsc1_derefidx_vbsxx.asm new file mode 100644 index 000000000..19097772d --- /dev/null +++ b/src/main/fragment/vbsaa=pbsc1_derefidx_vbsxx_plus_pbsc1_derefidx_vbsxx.asm @@ -0,0 +1,3 @@ +clc +lda {c1},x +adc {c1},x diff --git a/src/main/fragment/vbsaa=pbsc1_derefidx_vbsxx_plus_pbsc1_derefidx_vbsyy.asm b/src/main/fragment/vbsaa=pbsc1_derefidx_vbsxx_plus_pbsc1_derefidx_vbsyy.asm new file mode 100644 index 000000000..5a7649b43 --- /dev/null +++ b/src/main/fragment/vbsaa=pbsc1_derefidx_vbsxx_plus_pbsc1_derefidx_vbsyy.asm @@ -0,0 +1,3 @@ +clc +lda {c1},x +adc {c1},y diff --git a/src/main/fragment/vbsaa=pbsc1_derefidx_vbsxx_plus_pbsc2_derefidx_vbsxx.asm b/src/main/fragment/vbsaa=pbsc1_derefidx_vbsxx_plus_pbsc2_derefidx_vbsxx.asm new file mode 100644 index 000000000..ffe39a805 --- /dev/null +++ b/src/main/fragment/vbsaa=pbsc1_derefidx_vbsxx_plus_pbsc2_derefidx_vbsxx.asm @@ -0,0 +1,3 @@ +clc +lda {c1},x +adc {c2},x diff --git a/src/main/fragment/vbsaa=pbsc1_derefidx_vbsxx_plus_pbsc2_derefidx_vbsyy.asm b/src/main/fragment/vbsaa=pbsc1_derefidx_vbsxx_plus_pbsc2_derefidx_vbsyy.asm new file mode 100644 index 000000000..a33dee25d --- /dev/null +++ b/src/main/fragment/vbsaa=pbsc1_derefidx_vbsxx_plus_pbsc2_derefidx_vbsyy.asm @@ -0,0 +1,3 @@ +clc +lda {c1},x +adc {c2},y diff --git a/src/main/fragment/vbsaa=pbsc1_derefidx_vbsyy_minus_pbsc1_derefidx_vbsxx.asm b/src/main/fragment/vbsaa=pbsc1_derefidx_vbsyy_minus_pbsc1_derefidx_vbsxx.asm new file mode 100644 index 000000000..c0c6a9456 --- /dev/null +++ b/src/main/fragment/vbsaa=pbsc1_derefidx_vbsyy_minus_pbsc1_derefidx_vbsxx.asm @@ -0,0 +1,3 @@ +sec +lda {c1},y +sbc {c1},x diff --git a/src/main/fragment/vbsaa=pbsc1_derefidx_vbsyy_minus_pbsc1_derefidx_vbsyy.asm b/src/main/fragment/vbsaa=pbsc1_derefidx_vbsyy_minus_pbsc1_derefidx_vbsyy.asm new file mode 100644 index 000000000..bd1e9178d --- /dev/null +++ b/src/main/fragment/vbsaa=pbsc1_derefidx_vbsyy_minus_pbsc1_derefidx_vbsyy.asm @@ -0,0 +1,3 @@ +sec +lda {c1},y +sbc {c1},y diff --git a/src/main/fragment/vbsaa=pbsc1_derefidx_vbsyy_minus_pbsc2_derefidx_vbsxx.asm b/src/main/fragment/vbsaa=pbsc1_derefidx_vbsyy_minus_pbsc2_derefidx_vbsxx.asm new file mode 100644 index 000000000..beb52f153 --- /dev/null +++ b/src/main/fragment/vbsaa=pbsc1_derefidx_vbsyy_minus_pbsc2_derefidx_vbsxx.asm @@ -0,0 +1,3 @@ +sec +lda {c1},y +sbc {c2},x diff --git a/src/main/fragment/vbsaa=pbsc1_derefidx_vbsyy_minus_pbsc2_derefidx_vbsyy.asm b/src/main/fragment/vbsaa=pbsc1_derefidx_vbsyy_minus_pbsc2_derefidx_vbsyy.asm new file mode 100644 index 000000000..012bf3c5e --- /dev/null +++ b/src/main/fragment/vbsaa=pbsc1_derefidx_vbsyy_minus_pbsc2_derefidx_vbsyy.asm @@ -0,0 +1,3 @@ +sec +lda {c1},y +sbc {c2},y diff --git a/src/main/fragment/vbsaa=pbsc1_derefidx_vbsyy_plus_pbsc1_derefidx_vbsyy.asm b/src/main/fragment/vbsaa=pbsc1_derefidx_vbsyy_plus_pbsc1_derefidx_vbsyy.asm new file mode 100644 index 000000000..2a1247376 --- /dev/null +++ b/src/main/fragment/vbsaa=pbsc1_derefidx_vbsyy_plus_pbsc1_derefidx_vbsyy.asm @@ -0,0 +1,3 @@ +clc +lda {c1},y +adc {c1},y diff --git a/src/main/fragment/vbsaa=pbsc1_derefidx_vbsyy_plus_pbsc2_derefidx_vbsxx.asm b/src/main/fragment/vbsaa=pbsc1_derefidx_vbsyy_plus_pbsc2_derefidx_vbsxx.asm new file mode 100644 index 000000000..e6312b1a9 --- /dev/null +++ b/src/main/fragment/vbsaa=pbsc1_derefidx_vbsyy_plus_pbsc2_derefidx_vbsxx.asm @@ -0,0 +1,3 @@ +clc +lda {c1},y +adc {c2},x diff --git a/src/main/fragment/vbsaa=pbsc1_derefidx_vbsyy_plus_pbsc2_derefidx_vbsyy.asm b/src/main/fragment/vbsaa=pbsc1_derefidx_vbsyy_plus_pbsc2_derefidx_vbsyy.asm new file mode 100644 index 000000000..8ee830956 --- /dev/null +++ b/src/main/fragment/vbsaa=pbsc1_derefidx_vbsyy_plus_pbsc2_derefidx_vbsyy.asm @@ -0,0 +1,3 @@ +clc +lda {c1},y +adc {c2},y diff --git a/src/main/fragment/vbsaa=pbsc1_derefidx_vbuxx_minus_pbsc2_derefidx_vbuyy.asm b/src/main/fragment/vbsaa=pbsc1_derefidx_vbuxx_minus_pbsc2_derefidx_vbuyy.asm new file mode 100644 index 000000000..0a01b4508 --- /dev/null +++ b/src/main/fragment/vbsaa=pbsc1_derefidx_vbuxx_minus_pbsc2_derefidx_vbuyy.asm @@ -0,0 +1,3 @@ +sec +lda {c1},x +sbc {c2},y diff --git a/src/main/fragment/vbsaa=pbsc1_derefidx_vbuxx_plus_pbsc1_derefidx_vbuxx.asm b/src/main/fragment/vbsaa=pbsc1_derefidx_vbuxx_plus_pbsc1_derefidx_vbuxx.asm new file mode 100644 index 000000000..19097772d --- /dev/null +++ b/src/main/fragment/vbsaa=pbsc1_derefidx_vbuxx_plus_pbsc1_derefidx_vbuxx.asm @@ -0,0 +1,3 @@ +clc +lda {c1},x +adc {c1},x diff --git a/src/main/fragment/vbsaa=pbsc1_derefidx_vbuxx_plus_pbsc1_derefidx_vbuyy.asm b/src/main/fragment/vbsaa=pbsc1_derefidx_vbuxx_plus_pbsc1_derefidx_vbuyy.asm new file mode 100644 index 000000000..5a7649b43 --- /dev/null +++ b/src/main/fragment/vbsaa=pbsc1_derefidx_vbuxx_plus_pbsc1_derefidx_vbuyy.asm @@ -0,0 +1,3 @@ +clc +lda {c1},x +adc {c1},y diff --git a/src/main/fragment/vbsaa=pbsc1_derefidx_vbuxx_plus_pbsc2_derefidx_vbuxx.asm b/src/main/fragment/vbsaa=pbsc1_derefidx_vbuxx_plus_pbsc2_derefidx_vbuxx.asm new file mode 100644 index 000000000..ffe39a805 --- /dev/null +++ b/src/main/fragment/vbsaa=pbsc1_derefidx_vbuxx_plus_pbsc2_derefidx_vbuxx.asm @@ -0,0 +1,3 @@ +clc +lda {c1},x +adc {c2},x diff --git a/src/main/fragment/vbsaa=pbsc1_derefidx_vbuxx_plus_pbsc2_derefidx_vbuyy.asm b/src/main/fragment/vbsaa=pbsc1_derefidx_vbuxx_plus_pbsc2_derefidx_vbuyy.asm new file mode 100644 index 000000000..a33dee25d --- /dev/null +++ b/src/main/fragment/vbsaa=pbsc1_derefidx_vbuxx_plus_pbsc2_derefidx_vbuyy.asm @@ -0,0 +1,3 @@ +clc +lda {c1},x +adc {c2},y diff --git a/src/main/fragment/vbsaa=pbsc1_derefidx_vbuyy_minus_pbsc2_derefidx_vbuxx.asm b/src/main/fragment/vbsaa=pbsc1_derefidx_vbuyy_minus_pbsc2_derefidx_vbuxx.asm new file mode 100644 index 000000000..beb52f153 --- /dev/null +++ b/src/main/fragment/vbsaa=pbsc1_derefidx_vbuyy_minus_pbsc2_derefidx_vbuxx.asm @@ -0,0 +1,3 @@ +sec +lda {c1},y +sbc {c2},x diff --git a/src/main/fragment/vbsaa=pbsc1_derefidx_vbuyy_plus_pbsc1_derefidx_vbuyy.asm b/src/main/fragment/vbsaa=pbsc1_derefidx_vbuyy_plus_pbsc1_derefidx_vbuyy.asm new file mode 100644 index 000000000..2a1247376 --- /dev/null +++ b/src/main/fragment/vbsaa=pbsc1_derefidx_vbuyy_plus_pbsc1_derefidx_vbuyy.asm @@ -0,0 +1,3 @@ +clc +lda {c1},y +adc {c1},y diff --git a/src/main/fragment/vbsaa=pbsc1_derefidx_vbuyy_plus_pbsc2_derefidx_vbuxx.asm b/src/main/fragment/vbsaa=pbsc1_derefidx_vbuyy_plus_pbsc2_derefidx_vbuxx.asm new file mode 100644 index 000000000..e6312b1a9 --- /dev/null +++ b/src/main/fragment/vbsaa=pbsc1_derefidx_vbuyy_plus_pbsc2_derefidx_vbuxx.asm @@ -0,0 +1,3 @@ +clc +lda {c1},y +adc {c2},x diff --git a/src/main/fragment/vbsaa=pbsc1_derefidx_vbuyy_plus_pbsc2_derefidx_vbuyy.asm b/src/main/fragment/vbsaa=pbsc1_derefidx_vbuyy_plus_pbsc2_derefidx_vbuyy.asm new file mode 100644 index 000000000..8ee830956 --- /dev/null +++ b/src/main/fragment/vbsaa=pbsc1_derefidx_vbuyy_plus_pbsc2_derefidx_vbuyy.asm @@ -0,0 +1,3 @@ +clc +lda {c1},y +adc {c2},y diff --git a/src/main/fragment/vbsaa=vbsaa_minus_pbsc1_derefidx_vbsxx.asm b/src/main/fragment/vbsaa=vbsaa_minus_pbsc1_derefidx_vbsxx.asm new file mode 100644 index 000000000..9451f4f85 --- /dev/null +++ b/src/main/fragment/vbsaa=vbsaa_minus_pbsc1_derefidx_vbsxx.asm @@ -0,0 +1,2 @@ +sec +sbc {c1},x diff --git a/src/main/fragment/vbsaa=vbsaa_minus_pbsc1_derefidx_vbsyy.asm b/src/main/fragment/vbsaa=vbsaa_minus_pbsc1_derefidx_vbsyy.asm new file mode 100644 index 000000000..02a2b8f3d --- /dev/null +++ b/src/main/fragment/vbsaa=vbsaa_minus_pbsc1_derefidx_vbsyy.asm @@ -0,0 +1,2 @@ +sec +sbc {c1},y diff --git a/src/main/fragment/vbsaa=vbsaa_plus_pbsc1_derefidx_vbsxx.asm b/src/main/fragment/vbsaa=vbsaa_plus_pbsc1_derefidx_vbsxx.asm new file mode 100644 index 000000000..1b112105c --- /dev/null +++ b/src/main/fragment/vbsaa=vbsaa_plus_pbsc1_derefidx_vbsxx.asm @@ -0,0 +1,2 @@ +clc +adc {c1},x diff --git a/src/main/fragment/vbsaa=vbsaa_plus_pbsc1_derefidx_vbsyy.asm b/src/main/fragment/vbsaa=vbsaa_plus_pbsc1_derefidx_vbsyy.asm new file mode 100644 index 000000000..103dc1d13 --- /dev/null +++ b/src/main/fragment/vbsaa=vbsaa_plus_pbsc1_derefidx_vbsyy.asm @@ -0,0 +1,2 @@ +clc +adc {c1},y diff --git a/src/main/fragment/vbsaa=vbsaa_ror_1.asm b/src/main/fragment/vbsaa=vbsaa_ror_1.asm new file mode 100644 index 000000000..90d6894ce --- /dev/null +++ b/src/main/fragment/vbsaa=vbsaa_ror_1.asm @@ -0,0 +1,2 @@ +cmp #$80 +ror \ No newline at end of file diff --git a/src/main/fragment/vbuaa=vbsaa_band_vbuc1.asm b/src/main/fragment/vbuaa=vbsaa_band_vbuc1.asm new file mode 100644 index 000000000..6b7a84019 --- /dev/null +++ b/src/main/fragment/vbuaa=vbsaa_band_vbuc1.asm @@ -0,0 +1 @@ +and #{c1} diff --git a/src/test/kc/examples/3d/3d.kc b/src/test/kc/examples/3d/3d.kc index a86063c02..cab888aa6 100644 --- a/src/test/kc/examples/3d/3d.kc +++ b/src/test/kc/examples/3d/3d.kc @@ -5,6 +5,17 @@ import "c64" +byte* SCREEN = $400; + +// A single sprite +byte* SPRITE = $3000; +kickasm(pc SPRITE, resource "balloon.png") {{ + .var pic = LoadPicture("balloon.png", List().add($000000, $ffffff)) + .for (var y=0; y<21; y++) + .for (var x=0;x<3; x++) + .byte pic.getSinglecolorByte(x,y) +}} + // Sine and Cosine Tables // Angles: $00=0, $80=PI,$100=2*PI // Half Sine/Cosine: signed fixed [-$1f,$1f] @@ -48,42 +59,58 @@ void mulf_init() { signed word add = 1; for( byte i:0..128) { mulf_sqr1[i] = >sqr1; + (mulf_sqr1+$100)[i] = >sqr1; mulf_sqr1[-i] = >sqr1; + (mulf_sqr1+$100)[-i] = >sqr1; mulf_sqr2[i+1] = >sqr1; + (mulf_sqr2+$100)[i+1] = >sqr1; mulf_sqr2[1-i] = >sqr1; + (mulf_sqr2+$100)[1-i] = >sqr1; sqr1 += add; add +=2; } } +// Initialize sprites +void sprites_init() { + *SPRITES_ENABLE = %11111111; + byte* sprites_ptr = SCREEN+$3f8; + for(byte i: 0..7) { + sprites_ptr[i] = (byte)(SPRITE/$40); + SPRITES_COLS[i] = GREEN; + } +} + +// Positions to rotate (a cube) +signed byte[8] xs = { -63, -63, -63, -63, 63, 63, 63, 63}; +signed byte[8] ys = { -63, -63, 63, 63, -63, -63, 63, 63}; +signed byte[8] zs = { -63, 63, -63, 63, -63, 63, -63, 63}; + // The rotated point - updated by calling rotate() signed byte* xr = $f0; signed byte* yr = $f1; signed byte* zr = $f2; void main() { - byte* SCREEN = $400; asm { sei } + sprites_init(); mulf_init(); - prepare_matrix(0,0,0); + signed byte sx = 0; + signed byte sy = 0; + signed byte sz = 0; while(true) { while(*RASTER!=$ff) {} (*BORDERCOL)++; - rotate(0,0,$3f); - SCREEN[0] = (byte)*xr; - SCREEN[1] = (byte)*yr; - SCREEN[2] = (byte)*zr; - (*BORDERCOL)++; - rotate(0,$3f,0); - SCREEN[40] = (byte)*xr; - SCREEN[41] = (byte)*yr; - SCREEN[42] = (byte)*zr; - (*BORDERCOL)++; - rotate($3f,0,0); - SCREEN[80] = (byte)*xr; - SCREEN[81] = (byte)*yr; - SCREEN[82] = (byte)*zr; - *BORDERCOL = LIGHT_BLUE; + prepare_matrix(sx,sy--,sz++); + if((sy&1)==0) sx++; + for(byte i: 0..7) { + (*BORDERCOL)++; + rotate(xs[i], ys[i], zs[i]); + byte i2 = i<<1; + SPRITES_XPOS[i2] = $80+(byte)(*xr>>1); + SPRITES_YPOS[i2] = $80+(byte)(*yr>>1); + } + *BORDERCOL = LIGHT_BLUE; } } @@ -104,7 +131,6 @@ void prepare_matrix(signed byte sx, signed byte sy, signed byte sz) { signed byte t8 = t2-sx; // = sy+sz-sx signed byte t9 = sy-sx; signed byte t10 = sy+sx; - rotation_matrix[0] = COSH[t1]+COSH[t2]; rotation_matrix[1] = SINH[t1]-SINH[t2]; rotation_matrix[2] = SINH[sy]+SINH[sy]; @@ -113,8 +139,7 @@ void prepare_matrix(signed byte sx, signed byte sy, signed byte sz) { rotation_matrix[5] = SINH[t9]-SINH[t10]; rotation_matrix[6] = COSH[t4]-COSH[t3] + SINQ[t6]-SINQ[t5]-SINQ[t8]-SINQ[t7]; rotation_matrix[7] = SINH[t3]+SINH[t4] + COSQ[t6]-COSQ[t5]+COSQ[t7]-COSQ[t8]; - rotation_matrix[8] = COSH[t9]+COSH[t10]; - + rotation_matrix[8] = COSH[t9]+COSH[t10]; asm { lda rotation_matrix+0 sta rotate.A1+1 @@ -153,7 +178,6 @@ void prepare_matrix(signed byte sx, signed byte sy, signed byte sz) { eor #$ff sta rotate.I2+1 } - } @@ -162,47 +186,41 @@ void prepare_matrix(signed byte sx, signed byte sy, signed byte sz) { // The passed points must be in the interval [-$3f;$3f]. // Implemented in assembler to utilize seriously fast multiplication void rotate(signed byte x, signed byte y, signed byte z) { - *xr = x; *yr = y; *zr = z; - asm { clc ldx zr //z // C*z - lda #$80 + lda #$0 C1: adc mulf_sqr1,x C2: sbc mulf_sqr2,x sta C3+1 // F*z - lda #$80 + lda #0 F1: adc mulf_sqr1,x F2: sbc mulf_sqr2,x sta F3+1 // I*z - lda #$80 + lda #0 I1: adc mulf_sqr1,x I2: sbc mulf_sqr2,x sta I3+1 - ldx xr //x ldy yr //y - C3: lda #0 // C*z A1: adc mulf_sqr1,x A2: sbc mulf_sqr2,x B1: adc mulf_sqr1,y B2: sbc mulf_sqr2,y sta xr - F3: lda #0 // F*z D1: adc mulf_sqr1,x D2: sbc mulf_sqr2,x E1: adc mulf_sqr1,y E2: sbc mulf_sqr2,y sta yr - I3: lda #0 // I*z G1: adc mulf_sqr1,x G2: sbc mulf_sqr2,x @@ -210,5 +228,5 @@ void rotate(signed byte x, signed byte y, signed byte z) { H2: sbc mulf_sqr2,y sta zr } +} -} \ No newline at end of file diff --git a/src/test/kc/examples/3d/balloon.png b/src/test/kc/examples/3d/balloon.png new file mode 100644 index 0000000000000000000000000000000000000000..dd77df5feadddfddbf98f8b9eddc55b27eefea16 GIT binary patch literal 1323 zcmV+`1=RY9P)Hg1+lHrgWSWcKdPn90sKGrRqvPeo9CG3uKX#J{(IASm?@+di}}l?o-=)F3E6 zwD^Ni=!>T7nL9I?X}YoAW$t|Qo$sD|?zw001?ah|SeB6#0T!CBEf+H4bBB+JJu8re zhoBb*p;u8ID_yBf0ya+zcePvJL&AGs+11_tpRKn>9TgyPA7ZoSs0)aX0r00)%XR^J z`jH<$>RKN5V(7OqK*TS4xZz{h!*f1C3ECFkK$#7nA@pGN!$;%jYv zwjAKwmYb0gKL(K8-kPtb5${A?tlI~wzMrJ6wTdBr=Y%%%EaEMQ&o}4FQ^DA)s*}Z> z!FI&AHCpoWI|RUqx?7s@$8!5^Q=anY%X@i5{QA6kNcMelpE>R6eCYFpmMsVT zrI(b06~u#xf1yS}_UGdMvD``!0~u->P=lA4?YN`hilQ z|3tHka)7T{2CGqwjZfMwx$5irQN_*|e4l)UHmiYuz74Yp1t^#>hrJ3-SOXDcC_o0^ z7T9R1gAN8V6s;5)ieI5-7aQlmJn}lUna#nz!j%5V$X|o`xX!dHWQRV27P1=rj;t2b zW$~+pTw@bIek?ZvKPDL<64`^#UNTAck#RBsB6*5DP4<%UA_FqU$I>2EH_cM;u)Q~SI+rg`Rn{L z_AC5qq~L$#SMj%U$6Cz0vP{G5Y*=%5RT^yu;}-DInZ=349rJPVM6C3K^oO)8y(fJr{l>k`ead~!ea?NsT>_Ci%bnxC;Vy6= zb6>{xYV#Ue-+LB$7`JEXmTRm^AtP)R9u{)KHsMiWGV&)32xCG~*nyU<>-!d;FP=Re z4r3qYr~6#KE>;1F`>_J_P5xC?ROxV(DIHdCO*p$HRQI@7^PwV@Pvuf+ z5K}u-6REM(K@W$srgorh0{i?O)v0c>QtHxU-hBdD(>iYJ4b2sIOVX2K8m~4gmYVA5 zh^QEb$V`rCQ-|7ZS{nuL-t>?3n=-o(6I(7vocj#GzCZEo`!3>+v;dYIfPu#&ZWzzX z2i^rZ^Mu;6+rb@?NPG+6)c5T6zxpzGe*M(x+{AON=PiJ>H#?ob-|uwRK0yDg0B4PV z0id6JRRdfL?*IS*%}GQ-R5%gMQ_%_oF$`+Q{{NS|`5**Ob1mFpg`-Jh)C6vhG1m8s zXRTbGbH+XvfUpc5F`IdJLN9{qeL{}D4sQjj7-P8XoD!$^Wkt>ni1|(t=9Q4O`u48L zPV9)gzU>u}1TLLZ*7d%u2mt4jq^^b@))CjUy`n^1$y|KAB1h7_MS(Q3lHK8~0GhCp zyXGC76{s$gNP4fmh@$}A0iE_b}KBJTZa&la<*0WSm5?n*V%) h{}9l1Xs&Ci`3Is1J4vY+Soi<{002ovPDHLkV1n&siSGaa literal 0 HcmV?d00001 diff --git a/src/test/ref/examples/3d/3d.asm b/src/test/ref/examples/3d/3d.asm index 0b19d3ce9..ab6993d5b 100644 --- a/src/test/ref/examples/3d/3d.asm +++ b/src/test/ref/examples/3d/3d.asm @@ -1,9 +1,16 @@ .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" + .label SPRITES_XPOS = $d000 + .label SPRITES_YPOS = $d001 .label RASTER = $d012 + .label SPRITES_ENABLE = $d015 .label BORDERCOL = $d020 + .label SPRITES_COLS = $d027 + .const GREEN = 5 .const LIGHT_BLUE = $e + .label SCREEN = $400 + .label SPRITE = $3000 .label COSH = $2000 .label COSQ = $2200 .label xr = $f0 @@ -13,81 +20,91 @@ .label SINQ = COSQ+$40 jsr main main: { - .label SCREEN = $400 + .label sy = 3 + .label sz = 4 + .label sx = 2 + .label i = 5 sei + jsr sprites_init jsr mulf_init - jsr prepare_matrix + lda #0 + sta sz + sta sy + sta sx b4: lda RASTER cmp #$ff bne b4 inc BORDERCOL - lda #$3f - sta rotate.z + ldy sx + ldx sz + jsr prepare_matrix + dec sy + inc sz + lda sy + and #1 + cmp #0 + bne b7 + inc sx + b7: lda #0 - tax - tay - jsr rotate - lda xr - sta SCREEN - lda yr - sta SCREEN+1 - lda zr - sta SCREEN+2 + sta i + b8: inc BORDERCOL - lda #0 - sta rotate.z - lda #$3f + ldy i + lda xs,y + sta rotate.x + ldx i + ldy ys,x + lda zs,x tax - lda #0 - tay jsr rotate - lda xr - sta SCREEN+$28 - lda yr - sta SCREEN+$29 - lda zr - sta SCREEN+$2a - inc BORDERCOL - lda #0 - sta rotate.z + lda i + asl tax - lda #$3f - tay - jsr rotate lda xr - sta SCREEN+$50 + cmp #$80 + ror + clc + adc #$80 + sta SPRITES_XPOS,x lda yr - sta SCREEN+$51 - lda zr - sta SCREEN+$52 + cmp #$80 + ror + clc + adc #$80 + sta SPRITES_YPOS,x + inc i + lda i + cmp #8 + bne b8 lda #LIGHT_BLUE sta BORDERCOL jmp b4 } rotate: { - .label z = 2 - tya + .label x = $a + lda x sta xr - txa + tya sta yr - lda z + txa sta zr clc tax - lda #$80 + lda #0 C1: adc mulf_sqr1,x C2: sbc mulf_sqr2,x sta C3+1 - lda #$80 + lda #0 F1: adc mulf_sqr1,x F2: sbc mulf_sqr2,x sta F3+1 - lda #$80 + lda #0 I1: adc mulf_sqr1,x I2: @@ -131,142 +148,159 @@ rotate: { rts } prepare_matrix: { - .const sx = 0 - .const sy = 0 - .const sz = 0 - .const t1 = sy-sz - .const t2 = sy+sz - .const t3 = sx+sz - .const t4 = sx-sz - .const t9 = sy-sx - .const t10 = sy+sx - .const t5 = sx+t2 - .const t6 = sx-t1 - .const t7 = sx+t1 - .const t8 = t2-sx - .label _13 = 2 - .label _15 = 2 - .label _18 = 2 - .label _24 = 2 - .label _29 = 2 - .label _31 = 2 - lda COSH+t1 - ldy COSH+t2 + .label sy = 3 + .label t1 = 5 + .label t2 = $a + .label t3 = $b + .label t4 = $c + .label t5 = $d + .label t6 = $e + .label t7 = $f + .label t8 = $10 + .label t9 = $11 + .label t10 = $12 + txa + eor #$ff + sec + adc sy + sta t1 + txa + clc + adc sy + sta t2 + txa sty $ff clc adc $ff + sta t3 + tya + stx $ff + sec + sbc $ff + sta t4 + tya + clc + adc t2 + sta t5 + tya + sec + sbc t1 + sta t6 + tya + clc + adc t1 + sta t7 + tya + eor #$ff + sec + adc t2 + sta t8 + tya + eor #$ff + sec + adc sy + sta t9 + tya + clc + adc sy + sta t10 + ldx t1 + ldy t2 + clc + lda COSH,x + adc COSH,y sta rotation_matrix - lda SINH+t1 - ldy SINH+t2 - sty $ff sec - sbc $ff + lda SINH,x + sbc SINH,y sta rotation_matrix+1 - lda SINH+sy - tay - sty $ff + ldy sy clc - adc $ff + lda SINH,y + adc SINH,y sta rotation_matrix+2 - lda SINH+t3 - ldy SINH+t4 - sty $ff + ldx t3 + ldy t4 sec - sbc $ff - sta _13 - lda COSQ+t6 + lda SINH,x + sbc SINH,y + ldy t6 clc - adc _13 - ldy COSQ+t5 - sty $ff + adc COSQ,y + ldy t5 sec - sbc $ff - sta _15 - lda COSQ+t8 + sbc COSQ,y + ldy t8 clc - adc _15 - ldy COSQ+t7 - sty $ff + adc COSQ,y + ldy t7 sec - sbc $ff + sbc COSQ,y sta rotation_matrix+3 - lda COSH+t3 - ldy COSH+t4 - sty $ff + ldy t4 clc - adc $ff - sta _18 - lda SINQ+t5 + lda COSH,x + adc COSH,y + ldy t5 clc - adc _18 - ldy SINQ+t6 - sty $ff + adc SINQ,y + ldy t6 sec - sbc $ff - ldy SINQ+t7 - sty $ff + sbc SINQ,y + ldy t7 sec - sbc $ff - ldy SINQ+t8 - sty $ff + sbc SINQ,y + ldy t8 sec - sbc $ff + sbc SINQ,y sta rotation_matrix+4 - lda SINH+t9 - ldy SINH+t10 - sty $ff + ldx t9 + ldy t10 sec - sbc $ff + lda SINH,x + sbc SINH,y sta rotation_matrix+5 - lda COSH+t4 - ldy COSH+t3 - sty $ff + ldx t4 + ldy t3 sec - sbc $ff - sta _24 - lda SINQ+t6 + lda COSH,x + sbc COSH,y + ldy t6 clc - adc _24 - ldy SINQ+t5 - sty $ff + adc SINQ,y + ldy t5 sec - sbc $ff - ldy SINQ+t8 - sty $ff + sbc SINQ,y + ldy t8 sec - sbc $ff - ldy SINQ+t7 - sty $ff + sbc SINQ,y + ldy t7 sec - sbc $ff + sbc SINQ,y sta rotation_matrix+6 - lda SINH+t3 - ldy SINH+t4 - sty $ff + ldx t3 + ldy t4 clc - adc $ff - sta _29 - lda COSQ+t6 + lda SINH,x + adc SINH,y + ldy t6 clc - adc _29 - ldy COSQ+t5 - sty $ff + adc COSQ,y + ldy t5 sec - sbc $ff - sta _31 - lda COSQ+t7 + sbc COSQ,y + ldy t7 clc - adc _31 - ldy COSQ+t8 - sty $ff + adc COSQ,y + ldy t8 sec - sbc $ff + sbc COSQ,y sta rotation_matrix+7 - lda COSH+t9 - ldy COSH+t10 - sty $ff + ldx t9 + ldy t10 clc - adc $ff + lda COSH,x + adc COSH,y sta rotation_matrix+8 lda rotation_matrix+0 sta rotate.A1+1 @@ -307,8 +341,8 @@ prepare_matrix: { rts } mulf_init: { - .label sqr1 = 3 - .label add = 5 + .label sqr1 = 6 + .label add = 8 lda #<1 sta add lda #>1 @@ -319,6 +353,7 @@ mulf_init: { b1: lda sqr1+1 sta mulf_sqr1,x + sta mulf_sqr1+$100,x txa eor #$ff clc @@ -326,7 +361,15 @@ mulf_init: { tay lda sqr1+1 sta mulf_sqr1,y + txa + eor #$ff + clc + adc #1 + tay + lda sqr1+1 + sta mulf_sqr1+$100,y sta mulf_sqr2+1,x + sta mulf_sqr2+$100+1,x txa eor #$ff clc @@ -334,6 +377,13 @@ mulf_init: { tay lda sqr1+1 sta mulf_sqr2,y + txa + eor #$ff + clc + adc #1+1 + tay + lda sqr1+1 + sta mulf_sqr2+$100,y lda sqr1 clc adc add @@ -352,12 +402,36 @@ mulf_init: { cpx #$81 bne b1 rts +} +sprites_init: { + .label sprites_ptr = SCREEN+$3f8 + lda #$ff + sta SPRITES_ENABLE + ldx #0 + b1: + lda #$ff&SPRITE/$40 + sta sprites_ptr,x + lda #GREEN + sta SPRITES_COLS,x + inx + cpx #8 + bne b1 + rts } .align $100 mulf_sqr1: .fill $200, 0 .align $100 mulf_sqr2: .fill $200, 0 rotation_matrix: .fill 9, 0 + xs: .byte -$3f, -$3f, -$3f, -$3f, $3f, $3f, $3f, $3f + ys: .byte -$3f, -$3f, $3f, $3f, -$3f, -$3f, $3f, $3f + zs: .byte -$3f, $3f, -$3f, $3f, -$3f, $3f, -$3f, $3f +.pc = SPRITE "Inline" + .var pic = LoadPicture("balloon.png", List().add($000000, $ffffff)) + .for (var y=0; y<21; y++) + .for (var x=0;x<3; x++) + .byte pic.getSinglecolorByte(x,y) + .pc = COSH "Inline" { .var min = -$1fff diff --git a/src/test/ref/examples/3d/3d.cfg b/src/test/ref/examples/3d/3d.cfg index 5d7598d3b..2d6c86028 100644 --- a/src/test/ref/examples/3d/3d.cfg +++ b/src/test/ref/examples/3d/3d.cfg @@ -2,6 +2,11 @@ [0] phi() [ ] ( ) to:@3 @3: scope:[] from @begin + kickasm(location (const byte*) SPRITE#0) {{ .var pic = LoadPicture("balloon.png", List().add($000000, $ffffff)) + .for (var y=0; y<21; y++) + .for (var x=0;x<3; x++) + .byte pic.getSinglecolorByte(x,y) + }} kickasm(location (const signed byte*) COSH#0) {{ { .var min = -$1fff .var max = $1fff @@ -22,122 +27,174 @@ } } }} - to:@7 -@7: scope:[] from @3 - [3] phi() [ ] ( ) - [4] call main [ ] ( ) + to:@8 +@8: scope:[] from @3 + [4] phi() [ ] ( ) + [5] call main [ ] ( ) to:@end -@end: scope:[] from @7 - [5] phi() [ ] ( ) -main: scope:[main] from @7 +@end: scope:[] from @8 + [6] phi() [ ] ( ) +main: scope:[main] from @8 asm { sei } - [7] call mulf_init [ ] ( main:4 [ ] ) - to:main::@13 -main::@13: scope:[main] from main - [8] phi() [ ] ( main:4 [ ] ) - [9] call prepare_matrix [ ] ( main:4 [ ] ) + [8] call sprites_init [ ] ( main:5 [ ] ) + to:main::@17 +main::@17: scope:[main] from main + [9] phi() [ ] ( main:5 [ ] ) + [10] call mulf_init [ ] ( main:5 [ ] ) + to:main::@1 +main::@1: scope:[main] from main::@15 main::@17 + [11] (signed byte) main::sz#5 ← phi( main::@15/(signed byte) main::sz#1 main::@17/(byte/signed byte/word/signed word/dword/signed dword) 0 ) [ main::sx#6 main::sy#5 main::sz#5 ] ( main:5 [ main::sx#6 main::sy#5 main::sz#5 ] ) + [11] (signed byte) main::sy#5 ← phi( main::@15/(signed byte) main::sy#1 main::@17/(byte/signed byte/word/signed word/dword/signed dword) 0 ) [ main::sx#6 main::sy#5 main::sz#5 ] ( main:5 [ main::sx#6 main::sy#5 main::sz#5 ] ) + [11] (signed byte) main::sx#6 ← phi( main::@15/(signed byte) main::sx#12 main::@17/(byte/signed byte/word/signed word/dword/signed dword) 0 ) [ main::sx#6 main::sy#5 main::sz#5 ] ( main:5 [ main::sx#6 main::sy#5 main::sz#5 ] ) to:main::@4 -main::@4: scope:[main] from main::@13 main::@17 main::@4 - [10] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto main::@4 [ ] ( main:4 [ ] ) +main::@4: scope:[main] from main::@1 main::@4 + [12] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto main::@4 [ main::sx#6 main::sy#5 main::sz#5 ] ( main:5 [ main::sx#6 main::sy#5 main::sz#5 ] ) to:main::@6 main::@6: scope:[main] from main::@4 - [11] *((const byte*) BORDERCOL#0) ← ++ *((const byte*) BORDERCOL#0) [ ] ( main:4 [ ] ) - [12] call rotate [ ] ( main:4 [ ] ) + [13] *((const byte*) BORDERCOL#0) ← ++ *((const byte*) BORDERCOL#0) [ main::sx#6 main::sy#5 main::sz#5 ] ( main:5 [ main::sx#6 main::sy#5 main::sz#5 ] ) + [14] (signed byte) prepare_matrix::sx#0 ← (signed byte) main::sx#6 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::sx#0 ] ( main:5 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::sx#0 ] ) + [15] (signed byte) prepare_matrix::sy#0 ← (signed byte) main::sy#5 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::sx#0 prepare_matrix::sy#0 ] ( main:5 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::sx#0 prepare_matrix::sy#0 ] ) + [16] (signed byte) prepare_matrix::sz#0 ← (signed byte) main::sz#5 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::sx#0 prepare_matrix::sy#0 prepare_matrix::sz#0 ] ( main:5 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::sx#0 prepare_matrix::sy#0 prepare_matrix::sz#0 ] ) + [17] call prepare_matrix [ main::sx#6 main::sy#5 main::sz#5 ] ( main:5 [ main::sx#6 main::sy#5 main::sz#5 ] ) + to:main::@19 +main::@19: scope:[main] from main::@6 + [18] (signed byte) main::sy#1 ← -- (signed byte) main::sy#5 [ main::sx#6 main::sz#5 main::sy#1 ] ( main:5 [ main::sx#6 main::sz#5 main::sy#1 ] ) + [19] (signed byte) main::sz#1 ← ++ (signed byte) main::sz#5 [ main::sx#6 main::sy#1 main::sz#1 ] ( main:5 [ main::sx#6 main::sy#1 main::sz#1 ] ) + [20] (byte~) main::$4 ← (signed byte) main::sy#1 & (byte/signed byte/word/signed word/dword/signed dword) 1 [ main::sx#6 main::sy#1 main::sz#1 main::$4 ] ( main:5 [ main::sx#6 main::sy#1 main::sz#1 main::$4 ] ) + [21] if((byte~) main::$4!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto main::@7 [ main::sx#6 main::sy#1 main::sz#1 ] ( main:5 [ main::sx#6 main::sy#1 main::sz#1 ] ) + to:main::@14 +main::@14: scope:[main] from main::@19 + [22] (signed byte) main::sx#1 ← ++ (signed byte) main::sx#6 [ main::sy#1 main::sz#1 main::sx#1 ] ( main:5 [ main::sy#1 main::sz#1 main::sx#1 ] ) + to:main::@7 +main::@7: scope:[main] from main::@14 main::@19 + [23] (signed byte) main::sx#12 ← phi( main::@14/(signed byte) main::sx#1 main::@19/(signed byte) main::sx#6 ) [ main::sx#12 main::sy#1 main::sz#1 ] ( main:5 [ main::sx#12 main::sy#1 main::sz#1 ] ) + to:main::@8 +main::@8: scope:[main] from main::@20 main::@7 + [24] (byte) main::i#2 ← phi( main::@20/(byte) main::i#1 main::@7/(byte/signed byte/word/signed word/dword/signed dword) 0 ) [ main::sx#12 main::sy#1 main::sz#1 main::i#2 ] ( main:5 [ main::sx#12 main::sy#1 main::sz#1 main::i#2 ] ) + [25] *((const byte*) BORDERCOL#0) ← ++ *((const byte*) BORDERCOL#0) [ main::sx#12 main::sy#1 main::sz#1 main::i#2 ] ( main:5 [ main::sx#12 main::sy#1 main::sz#1 main::i#2 ] ) + [26] (signed byte) rotate::x#0 ← *((const signed byte[8]) xs#0 + (byte) main::i#2) [ main::sx#12 main::sy#1 main::sz#1 main::i#2 rotate::x#0 ] ( main:5 [ main::sx#12 main::sy#1 main::sz#1 main::i#2 rotate::x#0 ] ) + [27] (signed byte) rotate::y#0 ← *((const signed byte[8]) ys#0 + (byte) main::i#2) [ main::sx#12 main::sy#1 main::sz#1 main::i#2 rotate::x#0 rotate::y#0 ] ( main:5 [ main::sx#12 main::sy#1 main::sz#1 main::i#2 rotate::x#0 rotate::y#0 ] ) + [28] (signed byte) rotate::z#0 ← *((const signed byte[8]) zs#0 + (byte) main::i#2) [ main::sx#12 main::sy#1 main::sz#1 main::i#2 rotate::x#0 rotate::y#0 rotate::z#0 ] ( main:5 [ main::sx#12 main::sy#1 main::sz#1 main::i#2 rotate::x#0 rotate::y#0 rotate::z#0 ] ) + [29] call rotate [ main::sx#12 main::sy#1 main::sz#1 main::i#2 ] ( main:5 [ main::sx#12 main::sy#1 main::sz#1 main::i#2 ] ) + to:main::@20 +main::@20: scope:[main] from main::@8 + [30] (byte) main::i2#0 ← (byte) main::i#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ main::sx#12 main::sy#1 main::sz#1 main::i#2 main::i2#0 ] ( main:5 [ main::sx#12 main::sy#1 main::sz#1 main::i#2 main::i2#0 ] ) + [31] (signed byte~) main::$9 ← *((const signed byte*) xr#0) >> (byte/signed byte/word/signed word/dword/signed dword) 1 [ main::sx#12 main::sy#1 main::sz#1 main::i#2 main::i2#0 main::$9 ] ( main:5 [ main::sx#12 main::sy#1 main::sz#1 main::i#2 main::i2#0 main::$9 ] ) + [32] (byte/word/signed word/dword/signed dword~) main::$11 ← (byte/word/signed word/dword/signed dword) 128 + (byte)(signed byte~) main::$9 [ main::sx#12 main::sy#1 main::sz#1 main::i#2 main::i2#0 main::$11 ] ( main:5 [ main::sx#12 main::sy#1 main::sz#1 main::i#2 main::i2#0 main::$11 ] ) + [33] *((const byte*) SPRITES_XPOS#0 + (byte) main::i2#0) ← (byte/word/signed word/dword/signed dword~) main::$11 [ main::sx#12 main::sy#1 main::sz#1 main::i#2 main::i2#0 ] ( main:5 [ main::sx#12 main::sy#1 main::sz#1 main::i#2 main::i2#0 ] ) + [34] (signed byte~) main::$12 ← *((const signed byte*) yr#0) >> (byte/signed byte/word/signed word/dword/signed dword) 1 [ main::sx#12 main::sy#1 main::sz#1 main::i#2 main::i2#0 main::$12 ] ( main:5 [ main::sx#12 main::sy#1 main::sz#1 main::i#2 main::i2#0 main::$12 ] ) + [35] (byte/word/signed word/dword/signed dword~) main::$14 ← (byte/word/signed word/dword/signed dword) 128 + (byte)(signed byte~) main::$12 [ main::sx#12 main::sy#1 main::sz#1 main::i#2 main::i2#0 main::$14 ] ( main:5 [ main::sx#12 main::sy#1 main::sz#1 main::i#2 main::i2#0 main::$14 ] ) + [36] *((const byte*) SPRITES_YPOS#0 + (byte) main::i2#0) ← (byte/word/signed word/dword/signed dword~) main::$14 [ main::sx#12 main::sy#1 main::sz#1 main::i#2 ] ( main:5 [ main::sx#12 main::sy#1 main::sz#1 main::i#2 ] ) + [37] (byte) main::i#1 ← ++ (byte) main::i#2 [ main::sx#12 main::sy#1 main::sz#1 main::i#1 ] ( main:5 [ main::sx#12 main::sy#1 main::sz#1 main::i#1 ] ) + [38] if((byte) main::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 8) goto main::@8 [ main::sx#12 main::sy#1 main::sz#1 main::i#1 ] ( main:5 [ main::sx#12 main::sy#1 main::sz#1 main::i#1 ] ) to:main::@15 -main::@15: scope:[main] from main::@6 - [13] *((const byte*) main::SCREEN#0) ← (byte)*((const signed byte*) xr#0) [ ] ( main:4 [ ] ) - [14] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte)*((const signed byte*) yr#0) [ ] ( main:4 [ ] ) - [15] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte)*((const signed byte*) zr#0) [ ] ( main:4 [ ] ) - [16] *((const byte*) BORDERCOL#0) ← ++ *((const byte*) BORDERCOL#0) [ ] ( main:4 [ ] ) - [17] call rotate [ ] ( main:4 [ ] ) - to:main::@16 -main::@16: scope:[main] from main::@15 - [18] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40) ← (byte)*((const signed byte*) xr#0) [ ] ( main:4 [ ] ) - [19] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 41) ← (byte)*((const signed byte*) yr#0) [ ] ( main:4 [ ] ) - [20] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 42) ← (byte)*((const signed byte*) zr#0) [ ] ( main:4 [ ] ) - [21] *((const byte*) BORDERCOL#0) ← ++ *((const byte*) BORDERCOL#0) [ ] ( main:4 [ ] ) - [22] call rotate [ ] ( main:4 [ ] ) - to:main::@17 -main::@17: scope:[main] from main::@16 - [23] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 80) ← (byte)*((const signed byte*) xr#0) [ ] ( main:4 [ ] ) - [24] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 81) ← (byte)*((const signed byte*) yr#0) [ ] ( main:4 [ ] ) - [25] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 82) ← (byte)*((const signed byte*) zr#0) [ ] ( main:4 [ ] ) - [26] *((const byte*) BORDERCOL#0) ← (const byte) LIGHT_BLUE#0 [ ] ( main:4 [ ] ) - to:main::@4 -rotate: scope:[rotate] from main::@15 main::@16 main::@6 - [27] (signed byte) rotate::z#3 ← phi( main::@15/(byte/signed byte/word/signed word/dword/signed dword) 0 main::@16/(byte/signed byte/word/signed word/dword/signed dword) 0 main::@6/(byte/signed byte/word/signed word/dword/signed dword) 63 ) [ rotate::x#3 rotate::y#3 rotate::z#3 ] ( main:4::rotate:12 [ rotate::x#3 rotate::y#3 rotate::z#3 ] main:4::rotate:17 [ rotate::x#3 rotate::y#3 rotate::z#3 ] main:4::rotate:22 [ rotate::x#3 rotate::y#3 rotate::z#3 ] ) - [27] (signed byte) rotate::y#3 ← phi( main::@15/(byte/signed byte/word/signed word/dword/signed dword) 63 main::@16/(byte/signed byte/word/signed word/dword/signed dword) 0 main::@6/(byte/signed byte/word/signed word/dword/signed dword) 0 ) [ rotate::x#3 rotate::y#3 rotate::z#3 ] ( main:4::rotate:12 [ rotate::x#3 rotate::y#3 rotate::z#3 ] main:4::rotate:17 [ rotate::x#3 rotate::y#3 rotate::z#3 ] main:4::rotate:22 [ rotate::x#3 rotate::y#3 rotate::z#3 ] ) - [27] (signed byte) rotate::x#3 ← phi( main::@15/(byte/signed byte/word/signed word/dword/signed dword) 0 main::@16/(byte/signed byte/word/signed word/dword/signed dword) 63 main::@6/(byte/signed byte/word/signed word/dword/signed dword) 0 ) [ rotate::x#3 rotate::y#3 rotate::z#3 ] ( main:4::rotate:12 [ rotate::x#3 rotate::y#3 rotate::z#3 ] main:4::rotate:17 [ rotate::x#3 rotate::y#3 rotate::z#3 ] main:4::rotate:22 [ rotate::x#3 rotate::y#3 rotate::z#3 ] ) - [28] *((const signed byte*) xr#0) ← (signed byte) rotate::x#3 [ rotate::y#3 rotate::z#3 ] ( main:4::rotate:12 [ rotate::y#3 rotate::z#3 ] main:4::rotate:17 [ rotate::y#3 rotate::z#3 ] main:4::rotate:22 [ rotate::y#3 rotate::z#3 ] ) - [29] *((const signed byte*) yr#0) ← (signed byte) rotate::y#3 [ rotate::z#3 ] ( main:4::rotate:12 [ rotate::z#3 ] main:4::rotate:17 [ rotate::z#3 ] main:4::rotate:22 [ rotate::z#3 ] ) - [30] *((const signed byte*) zr#0) ← (signed byte) rotate::z#3 [ ] ( main:4::rotate:12 [ ] main:4::rotate:17 [ ] main:4::rotate:22 [ ] ) - asm { clc ldxzr lda#$80 C1: adcmulf_sqr1,x C2: sbcmulf_sqr2,x staC3+1 lda#$80 F1: adcmulf_sqr1,x F2: sbcmulf_sqr2,x staF3+1 lda#$80 I1: adcmulf_sqr1,x I2: sbcmulf_sqr2,x staI3+1 ldxxr ldyyr C3: lda#0 A1: adcmulf_sqr1,x A2: sbcmulf_sqr2,x B1: adcmulf_sqr1,y B2: sbcmulf_sqr2,y staxr F3: lda#0 D1: adcmulf_sqr1,x D2: sbcmulf_sqr2,x E1: adcmulf_sqr1,y E2: sbcmulf_sqr2,y stayr I3: lda#0 G1: adcmulf_sqr1,x G2: sbcmulf_sqr2,x H1: adcmulf_sqr1,y H2: sbcmulf_sqr2,y stazr } +main::@15: scope:[main] from main::@20 + [39] *((const byte*) BORDERCOL#0) ← (const byte) LIGHT_BLUE#0 [ main::sx#12 main::sy#1 main::sz#1 ] ( main:5 [ main::sx#12 main::sy#1 main::sz#1 ] ) + to:main::@1 +rotate: scope:[rotate] from main::@8 + [40] *((const signed byte*) xr#0) ← (signed byte) rotate::x#0 [ rotate::y#0 rotate::z#0 ] ( main:5::rotate:29 [ main::sx#12 main::sy#1 main::sz#1 main::i#2 rotate::y#0 rotate::z#0 ] ) + [41] *((const signed byte*) yr#0) ← (signed byte) rotate::y#0 [ rotate::z#0 ] ( main:5::rotate:29 [ main::sx#12 main::sy#1 main::sz#1 main::i#2 rotate::z#0 ] ) + [42] *((const signed byte*) zr#0) ← (signed byte) rotate::z#0 [ ] ( main:5::rotate:29 [ main::sx#12 main::sy#1 main::sz#1 main::i#2 ] ) + asm { clc ldxzr lda#$0 C1: adcmulf_sqr1,x C2: sbcmulf_sqr2,x staC3+1 lda#0 F1: adcmulf_sqr1,x F2: sbcmulf_sqr2,x staF3+1 lda#0 I1: adcmulf_sqr1,x I2: sbcmulf_sqr2,x staI3+1 ldxxr ldyyr C3: lda#0 A1: adcmulf_sqr1,x A2: sbcmulf_sqr2,x B1: adcmulf_sqr1,y B2: sbcmulf_sqr2,y staxr F3: lda#0 D1: adcmulf_sqr1,x D2: sbcmulf_sqr2,x E1: adcmulf_sqr1,y E2: sbcmulf_sqr2,y stayr I3: lda#0 G1: adcmulf_sqr1,x G2: sbcmulf_sqr2,x H1: adcmulf_sqr1,y H2: sbcmulf_sqr2,y stazr } to:rotate::@return rotate::@return: scope:[rotate] from rotate - [32] return [ ] ( main:4::rotate:12 [ ] main:4::rotate:17 [ ] main:4::rotate:22 [ ] ) + [44] return [ ] ( main:5::rotate:29 [ main::sx#12 main::sy#1 main::sz#1 main::i#2 ] ) to:@return -prepare_matrix: scope:[prepare_matrix] from main::@13 - [33] (signed byte~) prepare_matrix::$10 ← *((const signed byte*) COSH#0+(const signed byte) prepare_matrix::t1#0) + *((const signed byte*) COSH#0+(const signed byte) prepare_matrix::t2#0) [ prepare_matrix::$10 ] ( main:4::prepare_matrix:9 [ prepare_matrix::$10 ] ) - [34] *((const signed byte[9]) rotation_matrix#0) ← (signed byte~) prepare_matrix::$10 [ ] ( main:4::prepare_matrix:9 [ ] ) - [35] (signed byte~) prepare_matrix::$11 ← *((const signed byte*) SINH#0+(const signed byte) prepare_matrix::t1#0) - *((const signed byte*) SINH#0+(const signed byte) prepare_matrix::t2#0) [ prepare_matrix::$11 ] ( main:4::prepare_matrix:9 [ prepare_matrix::$11 ] ) - [36] *((const signed byte[9]) rotation_matrix#0+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (signed byte~) prepare_matrix::$11 [ ] ( main:4::prepare_matrix:9 [ ] ) - [37] (signed byte~) prepare_matrix::$12 ← *((const signed byte*) SINH#0+(const signed byte) prepare_matrix::sy#0) + *((const signed byte*) SINH#0+(const signed byte) prepare_matrix::sy#0) [ prepare_matrix::$12 ] ( main:4::prepare_matrix:9 [ prepare_matrix::$12 ] ) - [38] *((const signed byte[9]) rotation_matrix#0+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (signed byte~) prepare_matrix::$12 [ ] ( main:4::prepare_matrix:9 [ ] ) - [39] (signed byte~) prepare_matrix::$13 ← *((const signed byte*) SINH#0+(const signed byte) prepare_matrix::t3#0) - *((const signed byte*) SINH#0+(const signed byte) prepare_matrix::t4#0) [ prepare_matrix::$13 ] ( main:4::prepare_matrix:9 [ prepare_matrix::$13 ] ) - [40] (signed byte~) prepare_matrix::$14 ← (signed byte~) prepare_matrix::$13 + *((const signed byte*) COSQ#0+(const signed byte) prepare_matrix::t6#0) [ prepare_matrix::$14 ] ( main:4::prepare_matrix:9 [ prepare_matrix::$14 ] ) - [41] (signed byte~) prepare_matrix::$15 ← (signed byte~) prepare_matrix::$14 - *((const signed byte*) COSQ#0+(const signed byte) prepare_matrix::t5#0) [ prepare_matrix::$15 ] ( main:4::prepare_matrix:9 [ prepare_matrix::$15 ] ) - [42] (signed byte~) prepare_matrix::$16 ← (signed byte~) prepare_matrix::$15 + *((const signed byte*) COSQ#0+(const signed byte) prepare_matrix::t8#0) [ prepare_matrix::$16 ] ( main:4::prepare_matrix:9 [ prepare_matrix::$16 ] ) - [43] (signed byte~) prepare_matrix::$17 ← (signed byte~) prepare_matrix::$16 - *((const signed byte*) COSQ#0+(const signed byte) prepare_matrix::t7#0) [ prepare_matrix::$17 ] ( main:4::prepare_matrix:9 [ prepare_matrix::$17 ] ) - [44] *((const signed byte[9]) rotation_matrix#0+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (signed byte~) prepare_matrix::$17 [ ] ( main:4::prepare_matrix:9 [ ] ) - [45] (signed byte~) prepare_matrix::$18 ← *((const signed byte*) COSH#0+(const signed byte) prepare_matrix::t3#0) + *((const signed byte*) COSH#0+(const signed byte) prepare_matrix::t4#0) [ prepare_matrix::$18 ] ( main:4::prepare_matrix:9 [ prepare_matrix::$18 ] ) - [46] (signed byte~) prepare_matrix::$19 ← (signed byte~) prepare_matrix::$18 + *((const signed byte*) SINQ#0+(const signed byte) prepare_matrix::t5#0) [ prepare_matrix::$19 ] ( main:4::prepare_matrix:9 [ prepare_matrix::$19 ] ) - [47] (signed byte~) prepare_matrix::$20 ← (signed byte~) prepare_matrix::$19 - *((const signed byte*) SINQ#0+(const signed byte) prepare_matrix::t6#0) [ prepare_matrix::$20 ] ( main:4::prepare_matrix:9 [ prepare_matrix::$20 ] ) - [48] (signed byte~) prepare_matrix::$21 ← (signed byte~) prepare_matrix::$20 - *((const signed byte*) SINQ#0+(const signed byte) prepare_matrix::t7#0) [ prepare_matrix::$21 ] ( main:4::prepare_matrix:9 [ prepare_matrix::$21 ] ) - [49] (signed byte~) prepare_matrix::$22 ← (signed byte~) prepare_matrix::$21 - *((const signed byte*) SINQ#0+(const signed byte) prepare_matrix::t8#0) [ prepare_matrix::$22 ] ( main:4::prepare_matrix:9 [ prepare_matrix::$22 ] ) - [50] *((const signed byte[9]) rotation_matrix#0+(byte/signed byte/word/signed word/dword/signed dword) 4) ← (signed byte~) prepare_matrix::$22 [ ] ( main:4::prepare_matrix:9 [ ] ) - [51] (signed byte~) prepare_matrix::$23 ← *((const signed byte*) SINH#0+(const signed byte) prepare_matrix::t9#0) - *((const signed byte*) SINH#0+(const signed byte) prepare_matrix::t10#0) [ prepare_matrix::$23 ] ( main:4::prepare_matrix:9 [ prepare_matrix::$23 ] ) - [52] *((const signed byte[9]) rotation_matrix#0+(byte/signed byte/word/signed word/dword/signed dword) 5) ← (signed byte~) prepare_matrix::$23 [ ] ( main:4::prepare_matrix:9 [ ] ) - [53] (signed byte~) prepare_matrix::$24 ← *((const signed byte*) COSH#0+(const signed byte) prepare_matrix::t4#0) - *((const signed byte*) COSH#0+(const signed byte) prepare_matrix::t3#0) [ prepare_matrix::$24 ] ( main:4::prepare_matrix:9 [ prepare_matrix::$24 ] ) - [54] (signed byte~) prepare_matrix::$25 ← (signed byte~) prepare_matrix::$24 + *((const signed byte*) SINQ#0+(const signed byte) prepare_matrix::t6#0) [ prepare_matrix::$25 ] ( main:4::prepare_matrix:9 [ prepare_matrix::$25 ] ) - [55] (signed byte~) prepare_matrix::$26 ← (signed byte~) prepare_matrix::$25 - *((const signed byte*) SINQ#0+(const signed byte) prepare_matrix::t5#0) [ prepare_matrix::$26 ] ( main:4::prepare_matrix:9 [ prepare_matrix::$26 ] ) - [56] (signed byte~) prepare_matrix::$27 ← (signed byte~) prepare_matrix::$26 - *((const signed byte*) SINQ#0+(const signed byte) prepare_matrix::t8#0) [ prepare_matrix::$27 ] ( main:4::prepare_matrix:9 [ prepare_matrix::$27 ] ) - [57] (signed byte~) prepare_matrix::$28 ← (signed byte~) prepare_matrix::$27 - *((const signed byte*) SINQ#0+(const signed byte) prepare_matrix::t7#0) [ prepare_matrix::$28 ] ( main:4::prepare_matrix:9 [ prepare_matrix::$28 ] ) - [58] *((const signed byte[9]) rotation_matrix#0+(byte/signed byte/word/signed word/dword/signed dword) 6) ← (signed byte~) prepare_matrix::$28 [ ] ( main:4::prepare_matrix:9 [ ] ) - [59] (signed byte~) prepare_matrix::$29 ← *((const signed byte*) SINH#0+(const signed byte) prepare_matrix::t3#0) + *((const signed byte*) SINH#0+(const signed byte) prepare_matrix::t4#0) [ prepare_matrix::$29 ] ( main:4::prepare_matrix:9 [ prepare_matrix::$29 ] ) - [60] (signed byte~) prepare_matrix::$30 ← (signed byte~) prepare_matrix::$29 + *((const signed byte*) COSQ#0+(const signed byte) prepare_matrix::t6#0) [ prepare_matrix::$30 ] ( main:4::prepare_matrix:9 [ prepare_matrix::$30 ] ) - [61] (signed byte~) prepare_matrix::$31 ← (signed byte~) prepare_matrix::$30 - *((const signed byte*) COSQ#0+(const signed byte) prepare_matrix::t5#0) [ prepare_matrix::$31 ] ( main:4::prepare_matrix:9 [ prepare_matrix::$31 ] ) - [62] (signed byte~) prepare_matrix::$32 ← (signed byte~) prepare_matrix::$31 + *((const signed byte*) COSQ#0+(const signed byte) prepare_matrix::t7#0) [ prepare_matrix::$32 ] ( main:4::prepare_matrix:9 [ prepare_matrix::$32 ] ) - [63] (signed byte~) prepare_matrix::$33 ← (signed byte~) prepare_matrix::$32 - *((const signed byte*) COSQ#0+(const signed byte) prepare_matrix::t8#0) [ prepare_matrix::$33 ] ( main:4::prepare_matrix:9 [ prepare_matrix::$33 ] ) - [64] *((const signed byte[9]) rotation_matrix#0+(byte/signed byte/word/signed word/dword/signed dword) 7) ← (signed byte~) prepare_matrix::$33 [ ] ( main:4::prepare_matrix:9 [ ] ) - [65] (signed byte~) prepare_matrix::$34 ← *((const signed byte*) COSH#0+(const signed byte) prepare_matrix::t9#0) + *((const signed byte*) COSH#0+(const signed byte) prepare_matrix::t10#0) [ prepare_matrix::$34 ] ( main:4::prepare_matrix:9 [ prepare_matrix::$34 ] ) - [66] *((const signed byte[9]) rotation_matrix#0+(byte/signed byte/word/signed word/dword/signed dword) 8) ← (signed byte~) prepare_matrix::$34 [ ] ( main:4::prepare_matrix:9 [ ] ) +prepare_matrix: scope:[prepare_matrix] from main::@6 + [45] (signed byte) prepare_matrix::t1#0 ← (signed byte) prepare_matrix::sy#0 - (signed byte) prepare_matrix::sz#0 [ prepare_matrix::sx#0 prepare_matrix::sy#0 prepare_matrix::sz#0 prepare_matrix::t1#0 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::sx#0 prepare_matrix::sy#0 prepare_matrix::sz#0 prepare_matrix::t1#0 ] ) + [46] (signed byte) prepare_matrix::t2#0 ← (signed byte) prepare_matrix::sy#0 + (signed byte) prepare_matrix::sz#0 [ prepare_matrix::sx#0 prepare_matrix::sy#0 prepare_matrix::sz#0 prepare_matrix::t1#0 prepare_matrix::t2#0 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::sx#0 prepare_matrix::sy#0 prepare_matrix::sz#0 prepare_matrix::t1#0 prepare_matrix::t2#0 ] ) + [47] (signed byte) prepare_matrix::t3#0 ← (signed byte) prepare_matrix::sx#0 + (signed byte) prepare_matrix::sz#0 [ prepare_matrix::sx#0 prepare_matrix::sy#0 prepare_matrix::sz#0 prepare_matrix::t1#0 prepare_matrix::t2#0 prepare_matrix::t3#0 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::sx#0 prepare_matrix::sy#0 prepare_matrix::sz#0 prepare_matrix::t1#0 prepare_matrix::t2#0 prepare_matrix::t3#0 ] ) + [48] (signed byte) prepare_matrix::t4#0 ← (signed byte) prepare_matrix::sx#0 - (signed byte) prepare_matrix::sz#0 [ prepare_matrix::sx#0 prepare_matrix::sy#0 prepare_matrix::t1#0 prepare_matrix::t2#0 prepare_matrix::t3#0 prepare_matrix::t4#0 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::sx#0 prepare_matrix::sy#0 prepare_matrix::t1#0 prepare_matrix::t2#0 prepare_matrix::t3#0 prepare_matrix::t4#0 ] ) + [49] (signed byte) prepare_matrix::t5#0 ← (signed byte) prepare_matrix::sx#0 + (signed byte) prepare_matrix::t2#0 [ prepare_matrix::sx#0 prepare_matrix::sy#0 prepare_matrix::t1#0 prepare_matrix::t2#0 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::sx#0 prepare_matrix::sy#0 prepare_matrix::t1#0 prepare_matrix::t2#0 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 ] ) + [50] (signed byte) prepare_matrix::t6#0 ← (signed byte) prepare_matrix::sx#0 - (signed byte) prepare_matrix::t1#0 [ prepare_matrix::sx#0 prepare_matrix::sy#0 prepare_matrix::t1#0 prepare_matrix::t2#0 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::sx#0 prepare_matrix::sy#0 prepare_matrix::t1#0 prepare_matrix::t2#0 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 ] ) + [51] (signed byte) prepare_matrix::t7#0 ← (signed byte) prepare_matrix::sx#0 + (signed byte) prepare_matrix::t1#0 [ prepare_matrix::sx#0 prepare_matrix::sy#0 prepare_matrix::t1#0 prepare_matrix::t2#0 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::sx#0 prepare_matrix::sy#0 prepare_matrix::t1#0 prepare_matrix::t2#0 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 ] ) + [52] (signed byte) prepare_matrix::t8#0 ← (signed byte) prepare_matrix::t2#0 - (signed byte) prepare_matrix::sx#0 [ prepare_matrix::sx#0 prepare_matrix::sy#0 prepare_matrix::t1#0 prepare_matrix::t2#0 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::sx#0 prepare_matrix::sy#0 prepare_matrix::t1#0 prepare_matrix::t2#0 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 ] ) + [53] (signed byte) prepare_matrix::t9#0 ← (signed byte) prepare_matrix::sy#0 - (signed byte) prepare_matrix::sx#0 [ prepare_matrix::sx#0 prepare_matrix::sy#0 prepare_matrix::t1#0 prepare_matrix::t2#0 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::sx#0 prepare_matrix::sy#0 prepare_matrix::t1#0 prepare_matrix::t2#0 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 ] ) + [54] (signed byte) prepare_matrix::t10#0 ← (signed byte) prepare_matrix::sy#0 + (signed byte) prepare_matrix::sx#0 [ prepare_matrix::sy#0 prepare_matrix::t1#0 prepare_matrix::t2#0 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::sy#0 prepare_matrix::t1#0 prepare_matrix::t2#0 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 ] ) + [55] (signed byte~) prepare_matrix::$10 ← *((const signed byte*) COSH#0 + (signed byte) prepare_matrix::t1#0) + *((const signed byte*) COSH#0 + (signed byte) prepare_matrix::t2#0) [ prepare_matrix::sy#0 prepare_matrix::t1#0 prepare_matrix::t2#0 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$10 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::sy#0 prepare_matrix::t1#0 prepare_matrix::t2#0 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$10 ] ) + [56] *((const signed byte[9]) rotation_matrix#0) ← (signed byte~) prepare_matrix::$10 [ prepare_matrix::sy#0 prepare_matrix::t1#0 prepare_matrix::t2#0 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::sy#0 prepare_matrix::t1#0 prepare_matrix::t2#0 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 ] ) + [57] (signed byte~) prepare_matrix::$11 ← *((const signed byte*) SINH#0 + (signed byte) prepare_matrix::t1#0) - *((const signed byte*) SINH#0 + (signed byte) prepare_matrix::t2#0) [ prepare_matrix::sy#0 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$11 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::sy#0 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$11 ] ) + [58] *((const signed byte[9]) rotation_matrix#0+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (signed byte~) prepare_matrix::$11 [ prepare_matrix::sy#0 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::sy#0 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 ] ) + [59] (signed byte~) prepare_matrix::$12 ← *((const signed byte*) SINH#0 + (signed byte) prepare_matrix::sy#0) + *((const signed byte*) SINH#0 + (signed byte) prepare_matrix::sy#0) [ prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$12 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$12 ] ) + [60] *((const signed byte[9]) rotation_matrix#0+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (signed byte~) prepare_matrix::$12 [ prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 ] ) + [61] (signed byte~) prepare_matrix::$13 ← *((const signed byte*) SINH#0 + (signed byte) prepare_matrix::t3#0) - *((const signed byte*) SINH#0 + (signed byte) prepare_matrix::t4#0) [ prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$13 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$13 ] ) + [62] (signed byte~) prepare_matrix::$14 ← (signed byte~) prepare_matrix::$13 + *((const signed byte*) COSQ#0 + (signed byte) prepare_matrix::t6#0) [ prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$14 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$14 ] ) + [63] (signed byte~) prepare_matrix::$15 ← (signed byte~) prepare_matrix::$14 - *((const signed byte*) COSQ#0 + (signed byte) prepare_matrix::t5#0) [ prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$15 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$15 ] ) + [64] (signed byte~) prepare_matrix::$16 ← (signed byte~) prepare_matrix::$15 + *((const signed byte*) COSQ#0 + (signed byte) prepare_matrix::t8#0) [ prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$16 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$16 ] ) + [65] (signed byte~) prepare_matrix::$17 ← (signed byte~) prepare_matrix::$16 - *((const signed byte*) COSQ#0 + (signed byte) prepare_matrix::t7#0) [ prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$17 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$17 ] ) + [66] *((const signed byte[9]) rotation_matrix#0+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (signed byte~) prepare_matrix::$17 [ prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 ] ) + [67] (signed byte~) prepare_matrix::$18 ← *((const signed byte*) COSH#0 + (signed byte) prepare_matrix::t3#0) + *((const signed byte*) COSH#0 + (signed byte) prepare_matrix::t4#0) [ prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$18 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$18 ] ) + [68] (signed byte~) prepare_matrix::$19 ← (signed byte~) prepare_matrix::$18 + *((const signed byte*) SINQ#0 + (signed byte) prepare_matrix::t5#0) [ prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$19 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$19 ] ) + [69] (signed byte~) prepare_matrix::$20 ← (signed byte~) prepare_matrix::$19 - *((const signed byte*) SINQ#0 + (signed byte) prepare_matrix::t6#0) [ prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$20 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$20 ] ) + [70] (signed byte~) prepare_matrix::$21 ← (signed byte~) prepare_matrix::$20 - *((const signed byte*) SINQ#0 + (signed byte) prepare_matrix::t7#0) [ prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$21 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$21 ] ) + [71] (signed byte~) prepare_matrix::$22 ← (signed byte~) prepare_matrix::$21 - *((const signed byte*) SINQ#0 + (signed byte) prepare_matrix::t8#0) [ prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$22 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$22 ] ) + [72] *((const signed byte[9]) rotation_matrix#0+(byte/signed byte/word/signed word/dword/signed dword) 4) ← (signed byte~) prepare_matrix::$22 [ prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 ] ) + [73] (signed byte~) prepare_matrix::$23 ← *((const signed byte*) SINH#0 + (signed byte) prepare_matrix::t9#0) - *((const signed byte*) SINH#0 + (signed byte) prepare_matrix::t10#0) [ prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$23 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$23 ] ) + [74] *((const signed byte[9]) rotation_matrix#0+(byte/signed byte/word/signed word/dword/signed dword) 5) ← (signed byte~) prepare_matrix::$23 [ prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 ] ) + [75] (signed byte~) prepare_matrix::$24 ← *((const signed byte*) COSH#0 + (signed byte) prepare_matrix::t4#0) - *((const signed byte*) COSH#0 + (signed byte) prepare_matrix::t3#0) [ prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$24 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$24 ] ) + [76] (signed byte~) prepare_matrix::$25 ← (signed byte~) prepare_matrix::$24 + *((const signed byte*) SINQ#0 + (signed byte) prepare_matrix::t6#0) [ prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$25 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$25 ] ) + [77] (signed byte~) prepare_matrix::$26 ← (signed byte~) prepare_matrix::$25 - *((const signed byte*) SINQ#0 + (signed byte) prepare_matrix::t5#0) [ prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$26 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$26 ] ) + [78] (signed byte~) prepare_matrix::$27 ← (signed byte~) prepare_matrix::$26 - *((const signed byte*) SINQ#0 + (signed byte) prepare_matrix::t8#0) [ prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$27 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$27 ] ) + [79] (signed byte~) prepare_matrix::$28 ← (signed byte~) prepare_matrix::$27 - *((const signed byte*) SINQ#0 + (signed byte) prepare_matrix::t7#0) [ prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$28 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$28 ] ) + [80] *((const signed byte[9]) rotation_matrix#0+(byte/signed byte/word/signed word/dword/signed dword) 6) ← (signed byte~) prepare_matrix::$28 [ prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 ] ) + [81] (signed byte~) prepare_matrix::$29 ← *((const signed byte*) SINH#0 + (signed byte) prepare_matrix::t3#0) + *((const signed byte*) SINH#0 + (signed byte) prepare_matrix::t4#0) [ prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$29 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$29 ] ) + [82] (signed byte~) prepare_matrix::$30 ← (signed byte~) prepare_matrix::$29 + *((const signed byte*) COSQ#0 + (signed byte) prepare_matrix::t6#0) [ prepare_matrix::t5#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$30 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::t5#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$30 ] ) + [83] (signed byte~) prepare_matrix::$31 ← (signed byte~) prepare_matrix::$30 - *((const signed byte*) COSQ#0 + (signed byte) prepare_matrix::t5#0) [ prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$31 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$31 ] ) + [84] (signed byte~) prepare_matrix::$32 ← (signed byte~) prepare_matrix::$31 + *((const signed byte*) COSQ#0 + (signed byte) prepare_matrix::t7#0) [ prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$32 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$32 ] ) + [85] (signed byte~) prepare_matrix::$33 ← (signed byte~) prepare_matrix::$32 - *((const signed byte*) COSQ#0 + (signed byte) prepare_matrix::t8#0) [ prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$33 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$33 ] ) + [86] *((const signed byte[9]) rotation_matrix#0+(byte/signed byte/word/signed word/dword/signed dword) 7) ← (signed byte~) prepare_matrix::$33 [ prepare_matrix::t9#0 prepare_matrix::t10#0 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::t9#0 prepare_matrix::t10#0 ] ) + [87] (signed byte~) prepare_matrix::$34 ← *((const signed byte*) COSH#0 + (signed byte) prepare_matrix::t9#0) + *((const signed byte*) COSH#0 + (signed byte) prepare_matrix::t10#0) [ prepare_matrix::$34 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::$34 ] ) + [88] *((const signed byte[9]) rotation_matrix#0+(byte/signed byte/word/signed word/dword/signed dword) 8) ← (signed byte~) prepare_matrix::$34 [ ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 ] ) asm { ldarotation_matrix+0 starotate.A1+1 eor#$ff starotate.A2+1 ldarotation_matrix+1 starotate.B1+1 eor#$ff starotate.B2+1 ldarotation_matrix+2 starotate.C1+1 eor#$ff starotate.C2+1 ldarotation_matrix+3 starotate.D1+1 eor#$ff starotate.D2+1 ldarotation_matrix+4 starotate.E1+1 eor#$ff starotate.E2+1 ldarotation_matrix+5 starotate.F1+1 eor#$ff starotate.F2+1 ldarotation_matrix+6 starotate.G1+1 eor#$ff starotate.G2+1 ldarotation_matrix+7 starotate.H1+1 eor#$ff starotate.H2+1 ldarotation_matrix+8 starotate.I1+1 eor#$ff starotate.I2+1 } to:prepare_matrix::@return prepare_matrix::@return: scope:[prepare_matrix] from prepare_matrix - [68] return [ ] ( main:4::prepare_matrix:9 [ ] ) + [90] return [ ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 ] ) to:@return -mulf_init: scope:[mulf_init] from main - [69] phi() [ ] ( main:4::mulf_init:7 [ ] ) +mulf_init: scope:[mulf_init] from main::@17 + [91] phi() [ ] ( main:5::mulf_init:10 [ ] ) to:mulf_init::@1 mulf_init::@1: scope:[mulf_init] from mulf_init mulf_init::@1 - [70] (signed word) mulf_init::add#2 ← phi( mulf_init/(byte/signed byte/word/signed word/dword/signed dword) 1 mulf_init::@1/(signed word) mulf_init::add#1 ) [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 ] ( main:4::mulf_init:7 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 ] ) - [70] (byte) mulf_init::i#2 ← phi( mulf_init/(byte/signed byte/word/signed word/dword/signed dword) 0 mulf_init::@1/(byte) mulf_init::i#1 ) [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 ] ( main:4::mulf_init:7 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 ] ) - [70] (signed word) mulf_init::sqr1#2 ← phi( mulf_init/(byte/signed byte/word/signed word/dword/signed dword) 0 mulf_init::@1/(signed word) mulf_init::sqr1#1 ) [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 ] ( main:4::mulf_init:7 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 ] ) - [71] (byte~) mulf_init::$0 ← > (signed word) mulf_init::sqr1#2 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 mulf_init::$0 ] ( main:4::mulf_init:7 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 mulf_init::$0 ] ) - [72] *((const byte[512]) mulf_sqr1#0 + (byte) mulf_init::i#2) ← (byte~) mulf_init::$0 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 ] ( main:4::mulf_init:7 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 ] ) - [73] (byte~) mulf_init::$1 ← - (byte) mulf_init::i#2 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 mulf_init::$1 ] ( main:4::mulf_init:7 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 mulf_init::$1 ] ) - [74] (byte~) mulf_init::$2 ← > (signed word) mulf_init::sqr1#2 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 mulf_init::$1 mulf_init::$2 ] ( main:4::mulf_init:7 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 mulf_init::$1 mulf_init::$2 ] ) - [75] *((const byte[512]) mulf_sqr1#0 + (byte~) mulf_init::$1) ← (byte~) mulf_init::$2 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 ] ( main:4::mulf_init:7 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 ] ) - [76] (byte~) mulf_init::$4 ← > (signed word) mulf_init::sqr1#2 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 mulf_init::$4 ] ( main:4::mulf_init:7 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 mulf_init::$4 ] ) - [77] *((const byte[512]) mulf_sqr2#0+(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) mulf_init::i#2) ← (byte~) mulf_init::$4 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 ] ( main:4::mulf_init:7 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 ] ) - [78] (byte/signed word/word/dword/signed dword~) mulf_init::$5 ← (byte/signed byte/word/signed word/dword/signed dword) 1 - (byte) mulf_init::i#2 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 mulf_init::$5 ] ( main:4::mulf_init:7 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 mulf_init::$5 ] ) - [79] (byte~) mulf_init::$6 ← > (signed word) mulf_init::sqr1#2 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 mulf_init::$5 mulf_init::$6 ] ( main:4::mulf_init:7 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 mulf_init::$5 mulf_init::$6 ] ) - [80] *((const byte[512]) mulf_sqr2#0 + (byte/signed word/word/dword/signed dword~) mulf_init::$5) ← (byte~) mulf_init::$6 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 ] ( main:4::mulf_init:7 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 ] ) - [81] (signed word) mulf_init::sqr1#1 ← (signed word) mulf_init::sqr1#2 + (signed word) mulf_init::add#2 [ mulf_init::i#2 mulf_init::add#2 mulf_init::sqr1#1 ] ( main:4::mulf_init:7 [ mulf_init::i#2 mulf_init::add#2 mulf_init::sqr1#1 ] ) - [82] (signed word) mulf_init::add#1 ← (signed word) mulf_init::add#2 + (byte/signed byte/word/signed word/dword/signed dword) 2 [ mulf_init::i#2 mulf_init::sqr1#1 mulf_init::add#1 ] ( main:4::mulf_init:7 [ mulf_init::i#2 mulf_init::sqr1#1 mulf_init::add#1 ] ) - [83] (byte) mulf_init::i#1 ← ++ (byte) mulf_init::i#2 [ mulf_init::sqr1#1 mulf_init::i#1 mulf_init::add#1 ] ( main:4::mulf_init:7 [ mulf_init::sqr1#1 mulf_init::i#1 mulf_init::add#1 ] ) - [84] if((byte) mulf_init::i#1!=(byte/word/signed word/dword/signed dword) 129) goto mulf_init::@1 [ mulf_init::sqr1#1 mulf_init::i#1 mulf_init::add#1 ] ( main:4::mulf_init:7 [ mulf_init::sqr1#1 mulf_init::i#1 mulf_init::add#1 ] ) + [92] (signed word) mulf_init::add#2 ← phi( mulf_init/(byte/signed byte/word/signed word/dword/signed dword) 1 mulf_init::@1/(signed word) mulf_init::add#1 ) [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 ] ( main:5::mulf_init:10 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 ] ) + [92] (byte) mulf_init::i#2 ← phi( mulf_init/(byte/signed byte/word/signed word/dword/signed dword) 0 mulf_init::@1/(byte) mulf_init::i#1 ) [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 ] ( main:5::mulf_init:10 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 ] ) + [92] (signed word) mulf_init::sqr1#2 ← phi( mulf_init/(byte/signed byte/word/signed word/dword/signed dword) 0 mulf_init::@1/(signed word) mulf_init::sqr1#1 ) [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 ] ( main:5::mulf_init:10 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 ] ) + [93] (byte~) mulf_init::$0 ← > (signed word) mulf_init::sqr1#2 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 mulf_init::$0 ] ( main:5::mulf_init:10 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 mulf_init::$0 ] ) + [94] *((const byte[512]) mulf_sqr1#0 + (byte) mulf_init::i#2) ← (byte~) mulf_init::$0 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 ] ( main:5::mulf_init:10 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 ] ) + [95] (byte~) mulf_init::$2 ← > (signed word) mulf_init::sqr1#2 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 mulf_init::$2 ] ( main:5::mulf_init:10 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 mulf_init::$2 ] ) + [96] *((const byte[512]) mulf_sqr1#0+(word/signed word/dword/signed dword) 256 + (byte) mulf_init::i#2) ← (byte~) mulf_init::$2 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 ] ( main:5::mulf_init:10 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 ] ) + [97] (byte~) mulf_init::$3 ← - (byte) mulf_init::i#2 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 mulf_init::$3 ] ( main:5::mulf_init:10 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 mulf_init::$3 ] ) + [98] (byte~) mulf_init::$4 ← > (signed word) mulf_init::sqr1#2 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 mulf_init::$3 mulf_init::$4 ] ( main:5::mulf_init:10 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 mulf_init::$3 mulf_init::$4 ] ) + [99] *((const byte[512]) mulf_sqr1#0 + (byte~) mulf_init::$3) ← (byte~) mulf_init::$4 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 ] ( main:5::mulf_init:10 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 ] ) + [100] (byte~) mulf_init::$6 ← - (byte) mulf_init::i#2 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 mulf_init::$6 ] ( main:5::mulf_init:10 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 mulf_init::$6 ] ) + [101] (byte~) mulf_init::$7 ← > (signed word) mulf_init::sqr1#2 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 mulf_init::$6 mulf_init::$7 ] ( main:5::mulf_init:10 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 mulf_init::$6 mulf_init::$7 ] ) + [102] *((const byte[512]) mulf_sqr1#0+(word/signed word/dword/signed dword) 256 + (byte~) mulf_init::$6) ← (byte~) mulf_init::$7 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 ] ( main:5::mulf_init:10 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 ] ) + [103] (byte~) mulf_init::$9 ← > (signed word) mulf_init::sqr1#2 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 mulf_init::$9 ] ( main:5::mulf_init:10 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 mulf_init::$9 ] ) + [104] *((const byte[512]) mulf_sqr2#0+(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) mulf_init::i#2) ← (byte~) mulf_init::$9 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 ] ( main:5::mulf_init:10 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 ] ) + [105] (byte~) mulf_init::$12 ← > (signed word) mulf_init::sqr1#2 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 mulf_init::$12 ] ( main:5::mulf_init:10 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 mulf_init::$12 ] ) + [106] *((const byte[512]) mulf_sqr2#0+(word/signed word/dword/signed dword) 256+(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) mulf_init::i#2) ← (byte~) mulf_init::$12 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 ] ( main:5::mulf_init:10 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 ] ) + [107] (byte/signed word/word/dword/signed dword~) mulf_init::$13 ← (byte/signed byte/word/signed word/dword/signed dword) 1 - (byte) mulf_init::i#2 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 mulf_init::$13 ] ( main:5::mulf_init:10 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 mulf_init::$13 ] ) + [108] (byte~) mulf_init::$14 ← > (signed word) mulf_init::sqr1#2 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 mulf_init::$13 mulf_init::$14 ] ( main:5::mulf_init:10 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 mulf_init::$13 mulf_init::$14 ] ) + [109] *((const byte[512]) mulf_sqr2#0 + (byte/signed word/word/dword/signed dword~) mulf_init::$13) ← (byte~) mulf_init::$14 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 ] ( main:5::mulf_init:10 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 ] ) + [110] (byte/signed word/word/dword/signed dword~) mulf_init::$16 ← (byte/signed byte/word/signed word/dword/signed dword) 1 - (byte) mulf_init::i#2 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 mulf_init::$16 ] ( main:5::mulf_init:10 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 mulf_init::$16 ] ) + [111] (byte~) mulf_init::$17 ← > (signed word) mulf_init::sqr1#2 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 mulf_init::$16 mulf_init::$17 ] ( main:5::mulf_init:10 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 mulf_init::$16 mulf_init::$17 ] ) + [112] *((const byte[512]) mulf_sqr2#0+(word/signed word/dword/signed dword) 256 + (byte/signed word/word/dword/signed dword~) mulf_init::$16) ← (byte~) mulf_init::$17 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 ] ( main:5::mulf_init:10 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 ] ) + [113] (signed word) mulf_init::sqr1#1 ← (signed word) mulf_init::sqr1#2 + (signed word) mulf_init::add#2 [ mulf_init::i#2 mulf_init::add#2 mulf_init::sqr1#1 ] ( main:5::mulf_init:10 [ mulf_init::i#2 mulf_init::add#2 mulf_init::sqr1#1 ] ) + [114] (signed word) mulf_init::add#1 ← (signed word) mulf_init::add#2 + (byte/signed byte/word/signed word/dword/signed dword) 2 [ mulf_init::i#2 mulf_init::sqr1#1 mulf_init::add#1 ] ( main:5::mulf_init:10 [ mulf_init::i#2 mulf_init::sqr1#1 mulf_init::add#1 ] ) + [115] (byte) mulf_init::i#1 ← ++ (byte) mulf_init::i#2 [ mulf_init::sqr1#1 mulf_init::i#1 mulf_init::add#1 ] ( main:5::mulf_init:10 [ mulf_init::sqr1#1 mulf_init::i#1 mulf_init::add#1 ] ) + [116] if((byte) mulf_init::i#1!=(byte/word/signed word/dword/signed dword) 129) goto mulf_init::@1 [ mulf_init::sqr1#1 mulf_init::i#1 mulf_init::add#1 ] ( main:5::mulf_init:10 [ mulf_init::sqr1#1 mulf_init::i#1 mulf_init::add#1 ] ) to:mulf_init::@return mulf_init::@return: scope:[mulf_init] from mulf_init::@1 - [85] return [ ] ( main:4::mulf_init:7 [ ] ) + [117] return [ ] ( main:5::mulf_init:10 [ ] ) + to:@return +sprites_init: scope:[sprites_init] from main + [118] *((const byte*) SPRITES_ENABLE#0) ← (byte/word/signed word/dword/signed dword) 255 [ ] ( main:5::sprites_init:8 [ ] ) + to:sprites_init::@1 +sprites_init::@1: scope:[sprites_init] from sprites_init sprites_init::@1 + [119] (byte) sprites_init::i#2 ← phi( sprites_init/(byte/signed byte/word/signed word/dword/signed dword) 0 sprites_init::@1/(byte) sprites_init::i#1 ) [ sprites_init::i#2 ] ( main:5::sprites_init:8 [ sprites_init::i#2 ] ) + [120] *((const byte*) sprites_init::sprites_ptr#0 + (byte) sprites_init::i#2) ← ((byte))(const byte*) SPRITE#0/(byte/signed byte/word/signed word/dword/signed dword) 64 [ sprites_init::i#2 ] ( main:5::sprites_init:8 [ sprites_init::i#2 ] ) + [121] *((const byte*) SPRITES_COLS#0 + (byte) sprites_init::i#2) ← (const byte) GREEN#0 [ sprites_init::i#2 ] ( main:5::sprites_init:8 [ sprites_init::i#2 ] ) + [122] (byte) sprites_init::i#1 ← ++ (byte) sprites_init::i#2 [ sprites_init::i#1 ] ( main:5::sprites_init:8 [ sprites_init::i#1 ] ) + [123] if((byte) sprites_init::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 8) goto sprites_init::@1 [ sprites_init::i#1 ] ( main:5::sprites_init:8 [ sprites_init::i#1 ] ) + to:sprites_init::@return +sprites_init::@return: scope:[sprites_init] from sprites_init::@1 + [124] return [ ] ( main:5::sprites_init:8 [ ] ) to:@return diff --git a/src/test/ref/examples/3d/3d.log b/src/test/ref/examples/3d/3d.log index 9901a3abb..0bd289fa5 100644 --- a/src/test/ref/examples/3d/3d.log +++ b/src/test/ref/examples/3d/3d.log @@ -2,11 +2,23 @@ Inlined call (byte~) vicSelectGfxBank::$0 ← call toDd00 (byte*) vicSelectGfxBa CONTROL FLOW GRAPH SSA @begin: scope:[] from + (byte*) SPRITES_XPOS#0 ← ((byte*)) (word/dword/signed dword) 53248 + (byte*) SPRITES_YPOS#0 ← ((byte*)) (word/dword/signed dword) 53249 (byte*) RASTER#0 ← ((byte*)) (word/dword/signed dword) 53266 + (byte*) SPRITES_ENABLE#0 ← ((byte*)) (word/dword/signed dword) 53269 (byte*) BORDERCOL#0 ← ((byte*)) (word/dword/signed dword) 53280 + (byte*) SPRITES_COLS#0 ← ((byte*)) (word/dword/signed dword) 53287 + (byte) GREEN#0 ← (byte/signed byte/word/signed word/dword/signed dword) 5 (byte) LIGHT_BLUE#0 ← (byte/signed byte/word/signed word/dword/signed dword) 14 to:@3 @3: scope:[] from @begin + (byte*) SCREEN#0 ← ((byte*)) (word/signed word/dword/signed dword) 1024 + (byte*) SPRITE#0 ← ((byte*)) (word/signed word/dword/signed dword) 12288 + kickasm(location (byte*) SPRITE#0) {{ .var pic = LoadPicture("balloon.png", List().add($000000, $ffffff)) + .for (var y=0; y<21; y++) + .for (var x=0;x<3; x++) + .byte pic.getSinglecolorByte(x,y) + }} (signed byte*) COSH#0 ← ((signed byte*)) (word/signed word/dword/signed dword) 8192 (signed byte*~) $0 ← (signed byte*) COSH#0 + (byte/signed byte/word/signed word/dword/signed dword) 64 (signed byte*) SINH#0 ← (signed byte*~) $0 @@ -35,8 +47,8 @@ CONTROL FLOW GRAPH SSA }} (byte[512]) mulf_sqr1#0 ← { fill( 512, 0) } (byte[512]) mulf_sqr2#0 ← { fill( 512, 0) } - to:@4 -mulf_init: scope:[mulf_init] from main + to:@5 +mulf_init: scope:[mulf_init] from main::@17 (signed word) mulf_init::sqr1#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 (signed word) mulf_init::add#0 ← (byte/signed byte/word/signed word/dword/signed dword) 1 (byte) mulf_init::i#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 @@ -47,171 +59,315 @@ mulf_init::@1: scope:[mulf_init] from mulf_init mulf_init::@1 (signed word) mulf_init::sqr1#2 ← phi( mulf_init/(signed word) mulf_init::sqr1#0 mulf_init::@1/(signed word) mulf_init::sqr1#1 ) (byte~) mulf_init::$0 ← > (signed word) mulf_init::sqr1#2 *((byte[512]) mulf_sqr1#0 + (byte) mulf_init::i#2) ← (byte~) mulf_init::$0 - (byte~) mulf_init::$1 ← - (byte) mulf_init::i#2 + (byte*~) mulf_init::$1 ← (byte[512]) mulf_sqr1#0 + (word/signed word/dword/signed dword) 256 (byte~) mulf_init::$2 ← > (signed word) mulf_init::sqr1#2 - *((byte[512]) mulf_sqr1#0 + (byte~) mulf_init::$1) ← (byte~) mulf_init::$2 - (byte/signed word/word/dword/signed dword~) mulf_init::$3 ← (byte) mulf_init::i#2 + (byte/signed byte/word/signed word/dword/signed dword) 1 + *((byte*~) mulf_init::$1 + (byte) mulf_init::i#2) ← (byte~) mulf_init::$2 + (byte~) mulf_init::$3 ← - (byte) mulf_init::i#2 (byte~) mulf_init::$4 ← > (signed word) mulf_init::sqr1#2 - *((byte[512]) mulf_sqr2#0 + (byte/signed word/word/dword/signed dword~) mulf_init::$3) ← (byte~) mulf_init::$4 - (byte/signed word/word/dword/signed dword~) mulf_init::$5 ← (byte/signed byte/word/signed word/dword/signed dword) 1 - (byte) mulf_init::i#2 - (byte~) mulf_init::$6 ← > (signed word) mulf_init::sqr1#2 - *((byte[512]) mulf_sqr2#0 + (byte/signed word/word/dword/signed dword~) mulf_init::$5) ← (byte~) mulf_init::$6 + *((byte[512]) mulf_sqr1#0 + (byte~) mulf_init::$3) ← (byte~) mulf_init::$4 + (byte*~) mulf_init::$5 ← (byte[512]) mulf_sqr1#0 + (word/signed word/dword/signed dword) 256 + (byte~) mulf_init::$6 ← - (byte) mulf_init::i#2 + (byte~) mulf_init::$7 ← > (signed word) mulf_init::sqr1#2 + *((byte*~) mulf_init::$5 + (byte~) mulf_init::$6) ← (byte~) mulf_init::$7 + (byte/signed word/word/dword/signed dword~) mulf_init::$8 ← (byte) mulf_init::i#2 + (byte/signed byte/word/signed word/dword/signed dword) 1 + (byte~) mulf_init::$9 ← > (signed word) mulf_init::sqr1#2 + *((byte[512]) mulf_sqr2#0 + (byte/signed word/word/dword/signed dword~) mulf_init::$8) ← (byte~) mulf_init::$9 + (byte*~) mulf_init::$10 ← (byte[512]) mulf_sqr2#0 + (word/signed word/dword/signed dword) 256 + (byte/signed word/word/dword/signed dword~) mulf_init::$11 ← (byte) mulf_init::i#2 + (byte/signed byte/word/signed word/dword/signed dword) 1 + (byte~) mulf_init::$12 ← > (signed word) mulf_init::sqr1#2 + *((byte*~) mulf_init::$10 + (byte/signed word/word/dword/signed dword~) mulf_init::$11) ← (byte~) mulf_init::$12 + (byte/signed word/word/dword/signed dword~) mulf_init::$13 ← (byte/signed byte/word/signed word/dword/signed dword) 1 - (byte) mulf_init::i#2 + (byte~) mulf_init::$14 ← > (signed word) mulf_init::sqr1#2 + *((byte[512]) mulf_sqr2#0 + (byte/signed word/word/dword/signed dword~) mulf_init::$13) ← (byte~) mulf_init::$14 + (byte*~) mulf_init::$15 ← (byte[512]) mulf_sqr2#0 + (word/signed word/dword/signed dword) 256 + (byte/signed word/word/dword/signed dword~) mulf_init::$16 ← (byte/signed byte/word/signed word/dword/signed dword) 1 - (byte) mulf_init::i#2 + (byte~) mulf_init::$17 ← > (signed word) mulf_init::sqr1#2 + *((byte*~) mulf_init::$15 + (byte/signed word/word/dword/signed dword~) mulf_init::$16) ← (byte~) mulf_init::$17 (signed word) mulf_init::sqr1#1 ← (signed word) mulf_init::sqr1#2 + (signed word) mulf_init::add#2 (signed word) mulf_init::add#1 ← (signed word) mulf_init::add#2 + (byte/signed byte/word/signed word/dword/signed dword) 2 (byte) mulf_init::i#1 ← (byte) mulf_init::i#2 + rangenext(0,128) - (bool~) mulf_init::$7 ← (byte) mulf_init::i#1 != rangelast(0,128) - if((bool~) mulf_init::$7) goto mulf_init::@1 + (bool~) mulf_init::$18 ← (byte) mulf_init::i#1 != rangelast(0,128) + if((bool~) mulf_init::$18) goto mulf_init::@1 to:mulf_init::@return mulf_init::@return: scope:[mulf_init] from mulf_init::@1 return to:@return -@4: scope:[] from @3 - (signed byte*) SINQ#6 ← phi( @3/(signed byte*) SINQ#0 ) - (signed byte*) COSQ#6 ← phi( @3/(signed byte*) COSQ#0 ) - (signed byte*) SINH#6 ← phi( @3/(signed byte*) SINH#0 ) - (signed byte*) COSH#6 ← phi( @3/(signed byte*) COSH#0 ) +sprites_init: scope:[sprites_init] from main + (byte*) SPRITE#2 ← phi( main/(byte*) SPRITE#3 ) + (byte*) SCREEN#1 ← phi( main/(byte*) SCREEN#2 ) + *((byte*) SPRITES_ENABLE#0) ← (byte/word/signed word/dword/signed dword) 255 + (byte*~) sprites_init::$0 ← (byte*) SCREEN#1 + (word/signed word/dword/signed dword) 1016 + (byte*) sprites_init::sprites_ptr#0 ← (byte*~) sprites_init::$0 + (byte) sprites_init::i#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 + to:sprites_init::@1 +sprites_init::@1: scope:[sprites_init] from sprites_init sprites_init::@1 + (byte) sprites_init::i#2 ← phi( sprites_init/(byte) sprites_init::i#0 sprites_init::@1/(byte) sprites_init::i#1 ) + (byte*) sprites_init::sprites_ptr#1 ← phi( sprites_init/(byte*) sprites_init::sprites_ptr#0 sprites_init::@1/(byte*) sprites_init::sprites_ptr#1 ) + (byte*) SPRITE#1 ← phi( sprites_init/(byte*) SPRITE#2 sprites_init::@1/(byte*) SPRITE#1 ) + (byte*~) sprites_init::$1 ← (byte*) SPRITE#1 / (byte/signed byte/word/signed word/dword/signed dword) 64 + (byte~) sprites_init::$2 ← ((byte)) (byte*~) sprites_init::$1 + *((byte*) sprites_init::sprites_ptr#1 + (byte) sprites_init::i#2) ← (byte~) sprites_init::$2 + *((byte*) SPRITES_COLS#0 + (byte) sprites_init::i#2) ← (byte) GREEN#0 + (byte) sprites_init::i#1 ← (byte) sprites_init::i#2 + rangenext(0,7) + (bool~) sprites_init::$3 ← (byte) sprites_init::i#1 != rangelast(0,7) + if((bool~) sprites_init::$3) goto sprites_init::@1 + to:sprites_init::@return +sprites_init::@return: scope:[sprites_init] from sprites_init::@1 + return + to:@return +@5: scope:[] from @3 + (signed byte*) SINQ#18 ← phi( @3/(signed byte*) SINQ#0 ) + (signed byte*) COSQ#18 ← phi( @3/(signed byte*) COSQ#0 ) + (signed byte*) SINH#18 ← phi( @3/(signed byte*) SINH#0 ) + (signed byte*) COSH#18 ← phi( @3/(signed byte*) COSH#0 ) + (byte*) SPRITE#6 ← phi( @3/(byte*) SPRITE#0 ) + (byte*) SCREEN#5 ← phi( @3/(byte*) SCREEN#0 ) + (signed byte/signed word/signed dword~) $2 ← - (byte/signed byte/word/signed word/dword/signed dword) 63 + (signed byte/signed word/signed dword~) $3 ← - (byte/signed byte/word/signed word/dword/signed dword) 63 + (signed byte/signed word/signed dword~) $4 ← - (byte/signed byte/word/signed word/dword/signed dword) 63 + (signed byte/signed word/signed dword~) $5 ← - (byte/signed byte/word/signed word/dword/signed dword) 63 + (signed byte[8]) xs#0 ← { (signed byte/signed word/signed dword~) $2, (signed byte/signed word/signed dword~) $3, (signed byte/signed word/signed dword~) $4, (signed byte/signed word/signed dword~) $5, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63 } + (signed byte/signed word/signed dword~) $6 ← - (byte/signed byte/word/signed word/dword/signed dword) 63 + (signed byte/signed word/signed dword~) $7 ← - (byte/signed byte/word/signed word/dword/signed dword) 63 + (signed byte/signed word/signed dword~) $8 ← - (byte/signed byte/word/signed word/dword/signed dword) 63 + (signed byte/signed word/signed dword~) $9 ← - (byte/signed byte/word/signed word/dword/signed dword) 63 + (signed byte[8]) ys#0 ← { (signed byte/signed word/signed dword~) $6, (signed byte/signed word/signed dword~) $7, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (signed byte/signed word/signed dword~) $8, (signed byte/signed word/signed dword~) $9, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63 } + (signed byte/signed word/signed dword~) $10 ← - (byte/signed byte/word/signed word/dword/signed dword) 63 + (signed byte/signed word/signed dword~) $11 ← - (byte/signed byte/word/signed word/dword/signed dword) 63 + (signed byte/signed word/signed dword~) $12 ← - (byte/signed byte/word/signed word/dword/signed dword) 63 + (signed byte/signed word/signed dword~) $13 ← - (byte/signed byte/word/signed word/dword/signed dword) 63 + (signed byte[8]) zs#0 ← { (signed byte/signed word/signed dword~) $10, (byte/signed byte/word/signed word/dword/signed dword) 63, (signed byte/signed word/signed dword~) $11, (byte/signed byte/word/signed word/dword/signed dword) 63, (signed byte/signed word/signed dword~) $12, (byte/signed byte/word/signed word/dword/signed dword) 63, (signed byte/signed word/signed dword~) $13, (byte/signed byte/word/signed word/dword/signed dword) 63 } (signed byte*) xr#0 ← ((signed byte*)) (byte/word/signed word/dword/signed dword) 240 (signed byte*) yr#0 ← ((signed byte*)) (byte/word/signed word/dword/signed dword) 241 (signed byte*) zr#0 ← ((signed byte*)) (byte/word/signed word/dword/signed dword) 242 - to:@5 -main: scope:[main] from @7 - (signed byte*) zr#12 ← phi( @7/(signed byte*) zr#13 ) - (signed byte*) yr#12 ← phi( @7/(signed byte*) yr#13 ) - (signed byte*) xr#12 ← phi( @7/(signed byte*) xr#13 ) - (signed byte*) SINQ#3 ← phi( @7/(signed byte*) SINQ#4 ) - (signed byte*) COSQ#3 ← phi( @7/(signed byte*) COSQ#4 ) - (signed byte*) SINH#3 ← phi( @7/(signed byte*) SINH#4 ) - (signed byte*) COSH#3 ← phi( @7/(signed byte*) COSH#4 ) - (byte*) main::SCREEN#0 ← ((byte*)) (word/signed word/dword/signed dword) 1024 + to:@6 +main: scope:[main] from @8 + (signed byte*) zr#15 ← phi( @8/(signed byte*) zr#16 ) + (signed byte*) yr#15 ← phi( @8/(signed byte*) yr#16 ) + (signed byte*) xr#15 ← phi( @8/(signed byte*) xr#16 ) + (signed byte*) SINQ#11 ← phi( @8/(signed byte*) SINQ#13 ) + (signed byte*) COSQ#11 ← phi( @8/(signed byte*) COSQ#13 ) + (signed byte*) SINH#11 ← phi( @8/(signed byte*) SINH#13 ) + (signed byte*) COSH#11 ← phi( @8/(signed byte*) COSH#13 ) + (byte*) SPRITE#3 ← phi( @8/(byte*) SPRITE#4 ) + (byte*) SCREEN#2 ← phi( @8/(byte*) SCREEN#3 ) asm { sei } + call sprites_init + to:main::@17 +main::@17: scope:[main] from main + (signed byte*) zr#14 ← phi( main/(signed byte*) zr#15 ) + (signed byte*) yr#14 ← phi( main/(signed byte*) yr#15 ) + (signed byte*) xr#14 ← phi( main/(signed byte*) xr#15 ) + (signed byte*) SINQ#9 ← phi( main/(signed byte*) SINQ#11 ) + (signed byte*) COSQ#9 ← phi( main/(signed byte*) COSQ#11 ) + (signed byte*) SINH#9 ← phi( main/(signed byte*) SINH#11 ) + (signed byte*) COSH#9 ← phi( main/(signed byte*) COSH#11 ) call mulf_init - to:main::@13 -main::@13: scope:[main] from main - (signed byte*) zr#11 ← phi( main/(signed byte*) zr#12 ) - (signed byte*) yr#11 ← phi( main/(signed byte*) yr#12 ) - (byte*) main::SCREEN#10 ← phi( main/(byte*) main::SCREEN#0 ) - (signed byte*) xr#11 ← phi( main/(signed byte*) xr#12 ) - (signed byte*) SINQ#2 ← phi( main/(signed byte*) SINQ#3 ) - (signed byte*) COSQ#2 ← phi( main/(signed byte*) COSQ#3 ) - (signed byte*) SINH#2 ← phi( main/(signed byte*) SINH#3 ) - (signed byte*) COSH#2 ← phi( main/(signed byte*) COSH#3 ) - (signed byte) prepare_matrix::sx#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 - (signed byte) prepare_matrix::sy#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 - (signed byte) prepare_matrix::sz#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 - call prepare_matrix - to:main::@14 -main::@14: scope:[main] from main::@13 - (signed byte*) zr#10 ← phi( main::@13/(signed byte*) zr#11 ) - (signed byte*) yr#10 ← phi( main::@13/(signed byte*) yr#11 ) - (byte*) main::SCREEN#9 ← phi( main::@13/(byte*) main::SCREEN#10 ) - (signed byte*) xr#10 ← phi( main::@13/(signed byte*) xr#11 ) + to:main::@18 +main::@18: scope:[main] from main::@17 + (signed byte*) zr#13 ← phi( main::@17/(signed byte*) zr#14 ) + (signed byte*) yr#13 ← phi( main::@17/(signed byte*) yr#14 ) + (signed byte*) xr#13 ← phi( main::@17/(signed byte*) xr#14 ) + (signed byte*) SINQ#8 ← phi( main::@17/(signed byte*) SINQ#9 ) + (signed byte*) COSQ#8 ← phi( main::@17/(signed byte*) COSQ#9 ) + (signed byte*) SINH#8 ← phi( main::@17/(signed byte*) SINH#9 ) + (signed byte*) COSH#8 ← phi( main::@17/(signed byte*) COSH#9 ) + (signed byte) main::sx#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 + (signed byte) main::sy#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 + (signed byte) main::sz#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 to:main::@1 -main::@1: scope:[main] from main::@14 main::@17 - (signed byte*) zr#9 ← phi( main::@14/(signed byte*) zr#10 main::@17/(signed byte*) zr#3 ) - (signed byte*) yr#9 ← phi( main::@14/(signed byte*) yr#10 main::@17/(signed byte*) yr#3 ) - (byte*) main::SCREEN#8 ← phi( main::@14/(byte*) main::SCREEN#9 main::@17/(byte*) main::SCREEN#3 ) - (signed byte*) xr#9 ← phi( main::@14/(signed byte*) xr#10 main::@17/(signed byte*) xr#3 ) +main::@1: scope:[main] from main::@15 main::@18 + (signed byte*) zr#11 ← phi( main::@15/(signed byte*) zr#12 main::@18/(signed byte*) zr#13 ) + (signed byte*) yr#11 ← phi( main::@15/(signed byte*) yr#12 main::@18/(signed byte*) yr#13 ) + (signed byte*) xr#11 ← phi( main::@15/(signed byte*) xr#12 main::@18/(signed byte*) xr#13 ) + (signed byte*) SINQ#6 ← phi( main::@15/(signed byte*) SINQ#7 main::@18/(signed byte*) SINQ#8 ) + (signed byte*) COSQ#6 ← phi( main::@15/(signed byte*) COSQ#7 main::@18/(signed byte*) COSQ#8 ) + (signed byte*) SINH#6 ← phi( main::@15/(signed byte*) SINH#7 main::@18/(signed byte*) SINH#8 ) + (signed byte*) COSH#6 ← phi( main::@15/(signed byte*) COSH#7 main::@18/(signed byte*) COSH#8 ) + (signed byte) main::sz#7 ← phi( main::@15/(signed byte) main::sz#8 main::@18/(signed byte) main::sz#0 ) + (signed byte) main::sy#7 ← phi( main::@15/(signed byte) main::sy#8 main::@18/(signed byte) main::sy#0 ) + (signed byte) main::sx#8 ← phi( main::@15/(signed byte) main::sx#9 main::@18/(signed byte) main::sx#0 ) if(true) goto main::@2 to:main::@return main::@2: scope:[main] from main::@1 - (signed byte*) zr#7 ← phi( main::@1/(signed byte*) zr#9 ) - (signed byte*) yr#7 ← phi( main::@1/(signed byte*) yr#9 ) - (byte*) main::SCREEN#6 ← phi( main::@1/(byte*) main::SCREEN#8 ) - (signed byte*) xr#7 ← phi( main::@1/(signed byte*) xr#9 ) + (signed byte*) zr#9 ← phi( main::@1/(signed byte*) zr#11 ) + (signed byte*) yr#9 ← phi( main::@1/(signed byte*) yr#11 ) + (signed byte*) xr#9 ← phi( main::@1/(signed byte*) xr#11 ) + (signed byte*) SINQ#4 ← phi( main::@1/(signed byte*) SINQ#6 ) + (signed byte*) COSQ#4 ← phi( main::@1/(signed byte*) COSQ#6 ) + (signed byte*) SINH#4 ← phi( main::@1/(signed byte*) SINH#6 ) + (signed byte*) COSH#4 ← phi( main::@1/(signed byte*) COSH#6 ) + (signed byte) main::sz#5 ← phi( main::@1/(signed byte) main::sz#7 ) + (signed byte) main::sy#5 ← phi( main::@1/(signed byte) main::sy#7 ) + (signed byte) main::sx#6 ← phi( main::@1/(signed byte) main::sx#8 ) to:main::@4 main::@4: scope:[main] from main::@2 main::@5 - (signed byte*) zr#6 ← phi( main::@2/(signed byte*) zr#7 main::@5/(signed byte*) zr#8 ) - (signed byte*) yr#6 ← phi( main::@2/(signed byte*) yr#7 main::@5/(signed byte*) yr#8 ) - (byte*) main::SCREEN#5 ← phi( main::@2/(byte*) main::SCREEN#6 main::@5/(byte*) main::SCREEN#7 ) - (signed byte*) xr#6 ← phi( main::@2/(signed byte*) xr#7 main::@5/(signed byte*) xr#8 ) + (signed byte*) zr#8 ← phi( main::@2/(signed byte*) zr#9 main::@5/(signed byte*) zr#10 ) + (signed byte*) yr#8 ← phi( main::@2/(signed byte*) yr#9 main::@5/(signed byte*) yr#10 ) + (signed byte*) xr#8 ← phi( main::@2/(signed byte*) xr#9 main::@5/(signed byte*) xr#10 ) + (signed byte*) SINQ#3 ← phi( main::@2/(signed byte*) SINQ#4 main::@5/(signed byte*) SINQ#5 ) + (signed byte*) COSQ#3 ← phi( main::@2/(signed byte*) COSQ#4 main::@5/(signed byte*) COSQ#5 ) + (signed byte*) SINH#3 ← phi( main::@2/(signed byte*) SINH#4 main::@5/(signed byte*) SINH#5 ) + (signed byte*) COSH#3 ← phi( main::@2/(signed byte*) COSH#4 main::@5/(signed byte*) COSH#5 ) + (signed byte) main::sz#4 ← phi( main::@2/(signed byte) main::sz#5 main::@5/(signed byte) main::sz#6 ) + (signed byte) main::sy#4 ← phi( main::@2/(signed byte) main::sy#5 main::@5/(signed byte) main::sy#6 ) + (signed byte) main::sx#4 ← phi( main::@2/(signed byte) main::sx#6 main::@5/(signed byte) main::sx#7 ) (bool~) main::$2 ← *((byte*) RASTER#0) != (byte/word/signed word/dword/signed dword) 255 if((bool~) main::$2) goto main::@5 to:main::@6 main::@5: scope:[main] from main::@4 - (signed byte*) zr#8 ← phi( main::@4/(signed byte*) zr#6 ) - (signed byte*) yr#8 ← phi( main::@4/(signed byte*) yr#6 ) - (byte*) main::SCREEN#7 ← phi( main::@4/(byte*) main::SCREEN#5 ) - (signed byte*) xr#8 ← phi( main::@4/(signed byte*) xr#6 ) + (signed byte*) zr#10 ← phi( main::@4/(signed byte*) zr#8 ) + (signed byte*) yr#10 ← phi( main::@4/(signed byte*) yr#8 ) + (signed byte*) xr#10 ← phi( main::@4/(signed byte*) xr#8 ) + (signed byte*) SINQ#5 ← phi( main::@4/(signed byte*) SINQ#3 ) + (signed byte*) COSQ#5 ← phi( main::@4/(signed byte*) COSQ#3 ) + (signed byte*) SINH#5 ← phi( main::@4/(signed byte*) SINH#3 ) + (signed byte*) COSH#5 ← phi( main::@4/(signed byte*) COSH#3 ) + (signed byte) main::sz#6 ← phi( main::@4/(signed byte) main::sz#4 ) + (signed byte) main::sy#6 ← phi( main::@4/(signed byte) main::sy#4 ) + (signed byte) main::sx#7 ← phi( main::@4/(signed byte) main::sx#4 ) to:main::@4 main::@6: scope:[main] from main::@4 - (signed byte*) zr#5 ← phi( main::@4/(signed byte*) zr#6 ) - (signed byte*) yr#5 ← phi( main::@4/(signed byte*) yr#6 ) - (byte*) main::SCREEN#4 ← phi( main::@4/(byte*) main::SCREEN#5 ) - (signed byte*) xr#5 ← phi( main::@4/(signed byte*) xr#6 ) + (signed byte*) zr#7 ← phi( main::@4/(signed byte*) zr#8 ) + (signed byte*) yr#7 ← phi( main::@4/(signed byte*) yr#8 ) + (signed byte*) xr#7 ← phi( main::@4/(signed byte*) xr#8 ) + (signed byte*) SINQ#2 ← phi( main::@4/(signed byte*) SINQ#3 ) + (signed byte*) COSQ#2 ← phi( main::@4/(signed byte*) COSQ#3 ) + (signed byte*) SINH#2 ← phi( main::@4/(signed byte*) SINH#3 ) + (signed byte*) COSH#2 ← phi( main::@4/(signed byte*) COSH#3 ) + (signed byte) main::sz#2 ← phi( main::@4/(signed byte) main::sz#4 ) + (signed byte) main::sy#2 ← phi( main::@4/(signed byte) main::sy#4 ) + (signed byte) main::sx#2 ← phi( main::@4/(signed byte) main::sx#4 ) *((byte*) BORDERCOL#0) ← ++ *((byte*) BORDERCOL#0) - (signed byte) rotate::x#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 - (signed byte) rotate::y#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 - (signed byte) rotate::z#0 ← (byte/signed byte/word/signed word/dword/signed dword) 63 + (signed byte) prepare_matrix::sx#0 ← (signed byte) main::sx#2 + (signed byte) prepare_matrix::sy#0 ← (signed byte) main::sy#2 + (signed byte) prepare_matrix::sz#0 ← (signed byte) main::sz#2 + call prepare_matrix + to:main::@19 +main::@19: scope:[main] from main::@6 + (signed byte*) SINQ#16 ← phi( main::@6/(signed byte*) SINQ#2 ) + (signed byte*) COSQ#16 ← phi( main::@6/(signed byte*) COSQ#2 ) + (signed byte*) SINH#16 ← phi( main::@6/(signed byte*) SINH#2 ) + (signed byte*) COSH#16 ← phi( main::@6/(signed byte*) COSH#2 ) + (signed byte*) zr#6 ← phi( main::@6/(signed byte*) zr#7 ) + (signed byte*) yr#6 ← phi( main::@6/(signed byte*) yr#7 ) + (signed byte*) xr#6 ← phi( main::@6/(signed byte*) xr#7 ) + (signed byte) main::sx#5 ← phi( main::@6/(signed byte) main::sx#2 ) + (signed byte) main::sz#3 ← phi( main::@6/(signed byte) main::sz#2 ) + (signed byte) main::sy#3 ← phi( main::@6/(signed byte) main::sy#2 ) + (signed byte) main::sy#1 ← -- (signed byte) main::sy#3 + (signed byte) main::sz#1 ← ++ (signed byte) main::sz#3 + (byte~) main::$4 ← (signed byte) main::sy#1 & (byte/signed byte/word/signed word/dword/signed dword) 1 + (bool~) main::$5 ← (byte~) main::$4 == (byte/signed byte/word/signed word/dword/signed dword) 0 + (bool~) main::$6 ← ! (bool~) main::$5 + if((bool~) main::$6) goto main::@7 + to:main::@14 +main::@7: scope:[main] from main::@14 main::@19 + (signed byte*) SINQ#14 ← phi( main::@14/(signed byte*) SINQ#15 main::@19/(signed byte*) SINQ#16 ) + (signed byte*) COSQ#14 ← phi( main::@14/(signed byte*) COSQ#15 main::@19/(signed byte*) COSQ#16 ) + (signed byte*) SINH#14 ← phi( main::@14/(signed byte*) SINH#15 main::@19/(signed byte*) SINH#16 ) + (signed byte*) COSH#14 ← phi( main::@14/(signed byte*) COSH#15 main::@19/(signed byte*) COSH#16 ) + (signed byte) main::sz#11 ← phi( main::@14/(signed byte) main::sz#12 main::@19/(signed byte) main::sz#1 ) + (signed byte) main::sy#11 ← phi( main::@14/(signed byte) main::sy#12 main::@19/(signed byte) main::sy#1 ) + (signed byte) main::sx#12 ← phi( main::@14/(signed byte) main::sx#1 main::@19/(signed byte) main::sx#5 ) + (signed byte*) zr#4 ← phi( main::@14/(signed byte*) zr#5 main::@19/(signed byte*) zr#6 ) + (signed byte*) yr#4 ← phi( main::@14/(signed byte*) yr#5 main::@19/(signed byte*) yr#6 ) + (signed byte*) xr#4 ← phi( main::@14/(signed byte*) xr#5 main::@19/(signed byte*) xr#6 ) + (byte) main::i#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 + to:main::@8 +main::@14: scope:[main] from main::@19 + (signed byte*) SINQ#15 ← phi( main::@19/(signed byte*) SINQ#16 ) + (signed byte*) COSQ#15 ← phi( main::@19/(signed byte*) COSQ#16 ) + (signed byte*) SINH#15 ← phi( main::@19/(signed byte*) SINH#16 ) + (signed byte*) COSH#15 ← phi( main::@19/(signed byte*) COSH#16 ) + (signed byte) main::sz#12 ← phi( main::@19/(signed byte) main::sz#1 ) + (signed byte) main::sy#12 ← phi( main::@19/(signed byte) main::sy#1 ) + (signed byte*) zr#5 ← phi( main::@19/(signed byte*) zr#6 ) + (signed byte*) yr#5 ← phi( main::@19/(signed byte*) yr#6 ) + (signed byte*) xr#5 ← phi( main::@19/(signed byte*) xr#6 ) + (signed byte) main::sx#3 ← phi( main::@19/(signed byte) main::sx#5 ) + (signed byte) main::sx#1 ← ++ (signed byte) main::sx#3 + to:main::@7 +main::@8: scope:[main] from main::@20 main::@7 + (signed byte*) SINQ#12 ← phi( main::@20/(signed byte*) SINQ#10 main::@7/(signed byte*) SINQ#14 ) + (signed byte*) COSQ#12 ← phi( main::@20/(signed byte*) COSQ#10 main::@7/(signed byte*) COSQ#14 ) + (signed byte*) SINH#12 ← phi( main::@20/(signed byte*) SINH#10 main::@7/(signed byte*) SINH#14 ) + (signed byte*) COSH#12 ← phi( main::@20/(signed byte*) COSH#10 main::@7/(signed byte*) COSH#14 ) + (signed byte) main::sz#10 ← phi( main::@20/(signed byte) main::sz#9 main::@7/(signed byte) main::sz#11 ) + (signed byte) main::sy#10 ← phi( main::@20/(signed byte) main::sy#9 main::@7/(signed byte) main::sy#11 ) + (signed byte) main::sx#11 ← phi( main::@20/(signed byte) main::sx#10 main::@7/(signed byte) main::sx#12 ) + (signed byte*) zr#2 ← phi( main::@20/(signed byte*) zr#3 main::@7/(signed byte*) zr#4 ) + (signed byte*) yr#3 ← phi( main::@20/(signed byte*) yr#1 main::@7/(signed byte*) yr#4 ) + (signed byte*) xr#3 ← phi( main::@20/(signed byte*) xr#1 main::@7/(signed byte*) xr#4 ) + (byte) main::i#2 ← phi( main::@20/(byte) main::i#1 main::@7/(byte) main::i#0 ) + *((byte*) BORDERCOL#0) ← ++ *((byte*) BORDERCOL#0) + (signed byte) rotate::x#0 ← *((signed byte[8]) xs#0 + (byte) main::i#2) + (signed byte) rotate::y#0 ← *((signed byte[8]) ys#0 + (byte) main::i#2) + (signed byte) rotate::z#0 ← *((signed byte[8]) zs#0 + (byte) main::i#2) call rotate + to:main::@20 +main::@20: scope:[main] from main::@8 + (signed byte*) SINQ#10 ← phi( main::@8/(signed byte*) SINQ#12 ) + (signed byte*) COSQ#10 ← phi( main::@8/(signed byte*) COSQ#12 ) + (signed byte*) SINH#10 ← phi( main::@8/(signed byte*) SINH#12 ) + (signed byte*) COSH#10 ← phi( main::@8/(signed byte*) COSH#12 ) + (signed byte) main::sz#9 ← phi( main::@8/(signed byte) main::sz#10 ) + (signed byte) main::sy#9 ← phi( main::@8/(signed byte) main::sy#10 ) + (signed byte) main::sx#10 ← phi( main::@8/(signed byte) main::sx#11 ) + (signed byte*) zr#3 ← phi( main::@8/(signed byte*) zr#2 ) + (signed byte*) yr#1 ← phi( main::@8/(signed byte*) yr#3 ) + (signed byte*) xr#1 ← phi( main::@8/(signed byte*) xr#3 ) + (byte) main::i#3 ← phi( main::@8/(byte) main::i#2 ) + (byte~) main::$8 ← (byte) main::i#3 << (byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) main::i2#0 ← (byte~) main::$8 + (signed byte~) main::$9 ← *((signed byte*) xr#1) >> (byte/signed byte/word/signed word/dword/signed dword) 1 + (byte~) main::$10 ← ((byte)) (signed byte~) main::$9 + (byte/word/signed word/dword/signed dword~) main::$11 ← (byte/word/signed word/dword/signed dword) 128 + (byte~) main::$10 + *((byte*) SPRITES_XPOS#0 + (byte) main::i2#0) ← (byte/word/signed word/dword/signed dword~) main::$11 + (signed byte~) main::$12 ← *((signed byte*) yr#1) >> (byte/signed byte/word/signed word/dword/signed dword) 1 + (byte~) main::$13 ← ((byte)) (signed byte~) main::$12 + (byte/word/signed word/dword/signed dword~) main::$14 ← (byte/word/signed word/dword/signed dword) 128 + (byte~) main::$13 + *((byte*) SPRITES_YPOS#0 + (byte) main::i2#0) ← (byte/word/signed word/dword/signed dword~) main::$14 + (byte) main::i#1 ← (byte) main::i#3 + rangenext(0,7) + (bool~) main::$15 ← (byte) main::i#1 != rangelast(0,7) + if((bool~) main::$15) goto main::@8 to:main::@15 -main::@15: scope:[main] from main::@6 - (signed byte*) zr#1 ← phi( main::@6/(signed byte*) zr#5 ) - (signed byte*) yr#1 ← phi( main::@6/(signed byte*) yr#5 ) - (byte*) main::SCREEN#1 ← phi( main::@6/(byte*) main::SCREEN#4 ) - (signed byte*) xr#1 ← phi( main::@6/(signed byte*) xr#5 ) - (byte~) main::$4 ← ((byte)) *((signed byte*) xr#1) - *((byte*) main::SCREEN#1 + (byte/signed byte/word/signed word/dword/signed dword) 0) ← (byte~) main::$4 - (byte~) main::$5 ← ((byte)) *((signed byte*) yr#1) - *((byte*) main::SCREEN#1 + (byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte~) main::$5 - (byte~) main::$6 ← ((byte)) *((signed byte*) zr#1) - *((byte*) main::SCREEN#1 + (byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte~) main::$6 - *((byte*) BORDERCOL#0) ← ++ *((byte*) BORDERCOL#0) - (signed byte) rotate::x#1 ← (byte/signed byte/word/signed word/dword/signed dword) 0 - (signed byte) rotate::y#1 ← (byte/signed byte/word/signed word/dword/signed dword) 63 - (signed byte) rotate::z#1 ← (byte/signed byte/word/signed word/dword/signed dword) 0 - call rotate - to:main::@16 -main::@16: scope:[main] from main::@15 - (signed byte*) zr#2 ← phi( main::@15/(signed byte*) zr#1 ) - (signed byte*) yr#2 ← phi( main::@15/(signed byte*) yr#1 ) - (byte*) main::SCREEN#2 ← phi( main::@15/(byte*) main::SCREEN#1 ) - (signed byte*) xr#2 ← phi( main::@15/(signed byte*) xr#1 ) - (byte~) main::$8 ← ((byte)) *((signed byte*) xr#2) - *((byte*) main::SCREEN#2 + (byte/signed byte/word/signed word/dword/signed dword) 40) ← (byte~) main::$8 - (byte~) main::$9 ← ((byte)) *((signed byte*) yr#2) - *((byte*) main::SCREEN#2 + (byte/signed byte/word/signed word/dword/signed dword) 41) ← (byte~) main::$9 - (byte~) main::$10 ← ((byte)) *((signed byte*) zr#2) - *((byte*) main::SCREEN#2 + (byte/signed byte/word/signed word/dword/signed dword) 42) ← (byte~) main::$10 - *((byte*) BORDERCOL#0) ← ++ *((byte*) BORDERCOL#0) - (signed byte) rotate::x#2 ← (byte/signed byte/word/signed word/dword/signed dword) 63 - (signed byte) rotate::y#2 ← (byte/signed byte/word/signed word/dword/signed dword) 0 - (signed byte) rotate::z#2 ← (byte/signed byte/word/signed word/dword/signed dword) 0 - call rotate - to:main::@17 -main::@17: scope:[main] from main::@16 - (signed byte*) zr#3 ← phi( main::@16/(signed byte*) zr#2 ) - (signed byte*) yr#3 ← phi( main::@16/(signed byte*) yr#2 ) - (byte*) main::SCREEN#3 ← phi( main::@16/(byte*) main::SCREEN#2 ) - (signed byte*) xr#3 ← phi( main::@16/(signed byte*) xr#2 ) - (byte~) main::$12 ← ((byte)) *((signed byte*) xr#3) - *((byte*) main::SCREEN#3 + (byte/signed byte/word/signed word/dword/signed dword) 80) ← (byte~) main::$12 - (byte~) main::$13 ← ((byte)) *((signed byte*) yr#3) - *((byte*) main::SCREEN#3 + (byte/signed byte/word/signed word/dword/signed dword) 81) ← (byte~) main::$13 - (byte~) main::$14 ← ((byte)) *((signed byte*) zr#3) - *((byte*) main::SCREEN#3 + (byte/signed byte/word/signed word/dword/signed dword) 82) ← (byte~) main::$14 +main::@15: scope:[main] from main::@20 + (signed byte*) zr#12 ← phi( main::@20/(signed byte*) zr#3 ) + (signed byte*) yr#12 ← phi( main::@20/(signed byte*) yr#1 ) + (signed byte*) xr#12 ← phi( main::@20/(signed byte*) xr#1 ) + (signed byte*) SINQ#7 ← phi( main::@20/(signed byte*) SINQ#10 ) + (signed byte*) COSQ#7 ← phi( main::@20/(signed byte*) COSQ#10 ) + (signed byte*) SINH#7 ← phi( main::@20/(signed byte*) SINH#10 ) + (signed byte*) COSH#7 ← phi( main::@20/(signed byte*) COSH#10 ) + (signed byte) main::sz#8 ← phi( main::@20/(signed byte) main::sz#9 ) + (signed byte) main::sy#8 ← phi( main::@20/(signed byte) main::sy#9 ) + (signed byte) main::sx#9 ← phi( main::@20/(signed byte) main::sx#10 ) *((byte*) BORDERCOL#0) ← (byte) LIGHT_BLUE#0 to:main::@1 main::@return: scope:[main] from main::@1 return to:@return -@5: scope:[] from @4 - (signed byte*) zr#14 ← phi( @4/(signed byte*) zr#0 ) - (signed byte*) yr#14 ← phi( @4/(signed byte*) yr#0 ) - (signed byte*) xr#14 ← phi( @4/(signed byte*) xr#0 ) - (signed byte*) SINQ#5 ← phi( @4/(signed byte*) SINQ#6 ) - (signed byte*) COSQ#5 ← phi( @4/(signed byte*) COSQ#6 ) - (signed byte*) SINH#5 ← phi( @4/(signed byte*) SINH#6 ) - (signed byte*) COSH#5 ← phi( @4/(signed byte*) COSH#6 ) +@6: scope:[] from @5 + (signed byte*) zr#17 ← phi( @5/(signed byte*) zr#0 ) + (signed byte*) yr#17 ← phi( @5/(signed byte*) yr#0 ) + (signed byte*) xr#17 ← phi( @5/(signed byte*) xr#0 ) + (signed byte*) SINQ#17 ← phi( @5/(signed byte*) SINQ#18 ) + (signed byte*) COSQ#17 ← phi( @5/(signed byte*) COSQ#18 ) + (signed byte*) SINH#17 ← phi( @5/(signed byte*) SINH#18 ) + (signed byte*) COSH#17 ← phi( @5/(signed byte*) COSH#18 ) + (byte*) SPRITE#5 ← phi( @5/(byte*) SPRITE#6 ) + (byte*) SCREEN#4 ← phi( @5/(byte*) SCREEN#5 ) (signed byte[9]) rotation_matrix#0 ← { fill( 9, 0) } - to:@7 -prepare_matrix: scope:[prepare_matrix] from main::@13 - (signed byte*) SINQ#1 ← phi( main::@13/(signed byte*) SINQ#2 ) - (signed byte*) COSQ#1 ← phi( main::@13/(signed byte*) COSQ#2 ) - (signed byte*) SINH#1 ← phi( main::@13/(signed byte*) SINH#2 ) - (signed byte*) COSH#1 ← phi( main::@13/(signed byte*) COSH#2 ) - (signed byte) prepare_matrix::sx#1 ← phi( main::@13/(signed byte) prepare_matrix::sx#0 ) - (signed byte) prepare_matrix::sz#1 ← phi( main::@13/(signed byte) prepare_matrix::sz#0 ) - (signed byte) prepare_matrix::sy#1 ← phi( main::@13/(signed byte) prepare_matrix::sy#0 ) + to:@8 +prepare_matrix: scope:[prepare_matrix] from main::@6 + (signed byte*) SINQ#1 ← phi( main::@6/(signed byte*) SINQ#2 ) + (signed byte*) COSQ#1 ← phi( main::@6/(signed byte*) COSQ#2 ) + (signed byte*) SINH#1 ← phi( main::@6/(signed byte*) SINH#2 ) + (signed byte*) COSH#1 ← phi( main::@6/(signed byte*) COSH#2 ) + (signed byte) prepare_matrix::sx#1 ← phi( main::@6/(signed byte) prepare_matrix::sx#0 ) + (signed byte) prepare_matrix::sz#1 ← phi( main::@6/(signed byte) prepare_matrix::sz#0 ) + (signed byte) prepare_matrix::sy#1 ← phi( main::@6/(signed byte) prepare_matrix::sy#0 ) (signed byte~) prepare_matrix::$0 ← (signed byte) prepare_matrix::sy#1 - (signed byte) prepare_matrix::sz#1 (signed byte) prepare_matrix::t1#0 ← (signed byte~) prepare_matrix::$0 (signed byte~) prepare_matrix::$1 ← (signed byte) prepare_matrix::sy#1 + (signed byte) prepare_matrix::sz#1 @@ -271,43 +427,57 @@ prepare_matrix: scope:[prepare_matrix] from main::@13 prepare_matrix::@return: scope:[prepare_matrix] from prepare_matrix return to:@return -rotate: scope:[rotate] from main::@15 main::@16 main::@6 - (signed byte*) zr#4 ← phi( main::@15/(signed byte*) zr#1 main::@16/(signed byte*) zr#2 main::@6/(signed byte*) zr#5 ) - (signed byte) rotate::z#3 ← phi( main::@15/(signed byte) rotate::z#1 main::@16/(signed byte) rotate::z#2 main::@6/(signed byte) rotate::z#0 ) - (signed byte*) yr#4 ← phi( main::@15/(signed byte*) yr#1 main::@16/(signed byte*) yr#2 main::@6/(signed byte*) yr#5 ) - (signed byte) rotate::y#3 ← phi( main::@15/(signed byte) rotate::y#1 main::@16/(signed byte) rotate::y#2 main::@6/(signed byte) rotate::y#0 ) - (signed byte*) xr#4 ← phi( main::@15/(signed byte*) xr#1 main::@16/(signed byte*) xr#2 main::@6/(signed byte*) xr#5 ) - (signed byte) rotate::x#3 ← phi( main::@15/(signed byte) rotate::x#1 main::@16/(signed byte) rotate::x#2 main::@6/(signed byte) rotate::x#0 ) - *((signed byte*) xr#4) ← (signed byte) rotate::x#3 - *((signed byte*) yr#4) ← (signed byte) rotate::y#3 - *((signed byte*) zr#4) ← (signed byte) rotate::z#3 - asm { clc ldxzr lda#$80 C1: adcmulf_sqr1,x C2: sbcmulf_sqr2,x staC3+1 lda#$80 F1: adcmulf_sqr1,x F2: sbcmulf_sqr2,x staF3+1 lda#$80 I1: adcmulf_sqr1,x I2: sbcmulf_sqr2,x staI3+1 ldxxr ldyyr C3: lda#0 A1: adcmulf_sqr1,x A2: sbcmulf_sqr2,x B1: adcmulf_sqr1,y B2: sbcmulf_sqr2,y staxr F3: lda#0 D1: adcmulf_sqr1,x D2: sbcmulf_sqr2,x E1: adcmulf_sqr1,y E2: sbcmulf_sqr2,y stayr I3: lda#0 G1: adcmulf_sqr1,x G2: sbcmulf_sqr2,x H1: adcmulf_sqr1,y H2: sbcmulf_sqr2,y stazr } +rotate: scope:[rotate] from main::@8 + (signed byte*) zr#1 ← phi( main::@8/(signed byte*) zr#2 ) + (signed byte) rotate::z#1 ← phi( main::@8/(signed byte) rotate::z#0 ) + (signed byte*) yr#2 ← phi( main::@8/(signed byte*) yr#3 ) + (signed byte) rotate::y#1 ← phi( main::@8/(signed byte) rotate::y#0 ) + (signed byte*) xr#2 ← phi( main::@8/(signed byte*) xr#3 ) + (signed byte) rotate::x#1 ← phi( main::@8/(signed byte) rotate::x#0 ) + *((signed byte*) xr#2) ← (signed byte) rotate::x#1 + *((signed byte*) yr#2) ← (signed byte) rotate::y#1 + *((signed byte*) zr#1) ← (signed byte) rotate::z#1 + asm { clc ldxzr lda#$0 C1: adcmulf_sqr1,x C2: sbcmulf_sqr2,x staC3+1 lda#0 F1: adcmulf_sqr1,x F2: sbcmulf_sqr2,x staF3+1 lda#0 I1: adcmulf_sqr1,x I2: sbcmulf_sqr2,x staI3+1 ldxxr ldyyr C3: lda#0 A1: adcmulf_sqr1,x A2: sbcmulf_sqr2,x B1: adcmulf_sqr1,y B2: sbcmulf_sqr2,y staxr F3: lda#0 D1: adcmulf_sqr1,x D2: sbcmulf_sqr2,x E1: adcmulf_sqr1,y E2: sbcmulf_sqr2,y stayr I3: lda#0 G1: adcmulf_sqr1,x G2: sbcmulf_sqr2,x H1: adcmulf_sqr1,y H2: sbcmulf_sqr2,y stazr } to:rotate::@return rotate::@return: scope:[rotate] from rotate return to:@return -@7: scope:[] from @5 - (signed byte*) zr#13 ← phi( @5/(signed byte*) zr#14 ) - (signed byte*) yr#13 ← phi( @5/(signed byte*) yr#14 ) - (signed byte*) xr#13 ← phi( @5/(signed byte*) xr#14 ) - (signed byte*) SINQ#4 ← phi( @5/(signed byte*) SINQ#5 ) - (signed byte*) COSQ#4 ← phi( @5/(signed byte*) COSQ#5 ) - (signed byte*) SINH#4 ← phi( @5/(signed byte*) SINH#5 ) - (signed byte*) COSH#4 ← phi( @5/(signed byte*) COSH#5 ) +@8: scope:[] from @6 + (signed byte*) zr#16 ← phi( @6/(signed byte*) zr#17 ) + (signed byte*) yr#16 ← phi( @6/(signed byte*) yr#17 ) + (signed byte*) xr#16 ← phi( @6/(signed byte*) xr#17 ) + (signed byte*) SINQ#13 ← phi( @6/(signed byte*) SINQ#17 ) + (signed byte*) COSQ#13 ← phi( @6/(signed byte*) COSQ#17 ) + (signed byte*) SINH#13 ← phi( @6/(signed byte*) SINH#17 ) + (signed byte*) COSH#13 ← phi( @6/(signed byte*) COSH#17 ) + (byte*) SPRITE#4 ← phi( @6/(byte*) SPRITE#5 ) + (byte*) SCREEN#3 ← phi( @6/(byte*) SCREEN#4 ) call main - to:@8 -@8: scope:[] from @7 + to:@9 +@9: scope:[] from @8 to:@end -@end: scope:[] from @8 +@end: scope:[] from @9 SYMBOL TABLE SSA (signed byte*~) $0 (signed byte*~) $1 +(signed byte/signed word/signed dword~) $10 +(signed byte/signed word/signed dword~) $11 +(signed byte/signed word/signed dword~) $12 +(signed byte/signed word/signed dword~) $13 +(signed byte/signed word/signed dword~) $2 +(signed byte/signed word/signed dword~) $3 +(signed byte/signed word/signed dword~) $4 +(signed byte/signed word/signed dword~) $5 +(signed byte/signed word/signed dword~) $6 +(signed byte/signed word/signed dword~) $7 +(signed byte/signed word/signed dword~) $8 +(signed byte/signed word/signed dword~) $9 (label) @3 -(label) @4 (label) @5 -(label) @7 +(label) @6 (label) @8 +(label) @9 (label) @begin (label) @end (byte*) BORDERCOL @@ -315,82 +485,208 @@ SYMBOL TABLE SSA (signed byte*) COSH (signed byte*) COSH#0 (signed byte*) COSH#1 +(signed byte*) COSH#10 +(signed byte*) COSH#11 +(signed byte*) COSH#12 +(signed byte*) COSH#13 +(signed byte*) COSH#14 +(signed byte*) COSH#15 +(signed byte*) COSH#16 +(signed byte*) COSH#17 +(signed byte*) COSH#18 (signed byte*) COSH#2 (signed byte*) COSH#3 (signed byte*) COSH#4 (signed byte*) COSH#5 (signed byte*) COSH#6 +(signed byte*) COSH#7 +(signed byte*) COSH#8 +(signed byte*) COSH#9 (signed byte*) COSQ (signed byte*) COSQ#0 (signed byte*) COSQ#1 +(signed byte*) COSQ#10 +(signed byte*) COSQ#11 +(signed byte*) COSQ#12 +(signed byte*) COSQ#13 +(signed byte*) COSQ#14 +(signed byte*) COSQ#15 +(signed byte*) COSQ#16 +(signed byte*) COSQ#17 +(signed byte*) COSQ#18 (signed byte*) COSQ#2 (signed byte*) COSQ#3 (signed byte*) COSQ#4 (signed byte*) COSQ#5 (signed byte*) COSQ#6 +(signed byte*) COSQ#7 +(signed byte*) COSQ#8 +(signed byte*) COSQ#9 +(byte) GREEN +(byte) GREEN#0 (byte) LIGHT_BLUE (byte) LIGHT_BLUE#0 (byte*) RASTER (byte*) RASTER#0 +(byte*) SCREEN +(byte*) SCREEN#0 +(byte*) SCREEN#1 +(byte*) SCREEN#2 +(byte*) SCREEN#3 +(byte*) SCREEN#4 +(byte*) SCREEN#5 (signed byte*) SINH (signed byte*) SINH#0 (signed byte*) SINH#1 +(signed byte*) SINH#10 +(signed byte*) SINH#11 +(signed byte*) SINH#12 +(signed byte*) SINH#13 +(signed byte*) SINH#14 +(signed byte*) SINH#15 +(signed byte*) SINH#16 +(signed byte*) SINH#17 +(signed byte*) SINH#18 (signed byte*) SINH#2 (signed byte*) SINH#3 (signed byte*) SINH#4 (signed byte*) SINH#5 (signed byte*) SINH#6 +(signed byte*) SINH#7 +(signed byte*) SINH#8 +(signed byte*) SINH#9 (signed byte*) SINQ (signed byte*) SINQ#0 (signed byte*) SINQ#1 +(signed byte*) SINQ#10 +(signed byte*) SINQ#11 +(signed byte*) SINQ#12 +(signed byte*) SINQ#13 +(signed byte*) SINQ#14 +(signed byte*) SINQ#15 +(signed byte*) SINQ#16 +(signed byte*) SINQ#17 +(signed byte*) SINQ#18 (signed byte*) SINQ#2 (signed byte*) SINQ#3 (signed byte*) SINQ#4 (signed byte*) SINQ#5 (signed byte*) SINQ#6 +(signed byte*) SINQ#7 +(signed byte*) SINQ#8 +(signed byte*) SINQ#9 +(byte*) SPRITE +(byte*) SPRITE#0 +(byte*) SPRITE#1 +(byte*) SPRITE#2 +(byte*) SPRITE#3 +(byte*) SPRITE#4 +(byte*) SPRITE#5 +(byte*) SPRITE#6 +(byte*) SPRITES_COLS +(byte*) SPRITES_COLS#0 +(byte*) SPRITES_ENABLE +(byte*) SPRITES_ENABLE#0 +(byte*) SPRITES_XPOS +(byte*) SPRITES_XPOS#0 +(byte*) SPRITES_YPOS +(byte*) SPRITES_YPOS#0 (void()) main() (byte~) main::$10 -(byte~) main::$12 +(byte/word/signed word/dword/signed dword~) main::$11 +(signed byte~) main::$12 (byte~) main::$13 -(byte~) main::$14 +(byte/word/signed word/dword/signed dword~) main::$14 +(bool~) main::$15 (bool~) main::$2 (byte~) main::$4 -(byte~) main::$5 -(byte~) main::$6 +(bool~) main::$5 +(bool~) main::$6 (byte~) main::$8 -(byte~) main::$9 +(signed byte~) main::$9 (label) main::@1 -(label) main::@13 (label) main::@14 (label) main::@15 -(label) main::@16 (label) main::@17 +(label) main::@18 +(label) main::@19 (label) main::@2 +(label) main::@20 (label) main::@4 (label) main::@5 (label) main::@6 +(label) main::@7 +(label) main::@8 (label) main::@return -(byte*) main::SCREEN -(byte*) main::SCREEN#0 -(byte*) main::SCREEN#1 -(byte*) main::SCREEN#10 -(byte*) main::SCREEN#2 -(byte*) main::SCREEN#3 -(byte*) main::SCREEN#4 -(byte*) main::SCREEN#5 -(byte*) main::SCREEN#6 -(byte*) main::SCREEN#7 -(byte*) main::SCREEN#8 -(byte*) main::SCREEN#9 +(byte) main::i +(byte) main::i#0 +(byte) main::i#1 +(byte) main::i#2 +(byte) main::i#3 +(byte) main::i2 +(byte) main::i2#0 +(signed byte) main::sx +(signed byte) main::sx#0 +(signed byte) main::sx#1 +(signed byte) main::sx#10 +(signed byte) main::sx#11 +(signed byte) main::sx#12 +(signed byte) main::sx#2 +(signed byte) main::sx#3 +(signed byte) main::sx#4 +(signed byte) main::sx#5 +(signed byte) main::sx#6 +(signed byte) main::sx#7 +(signed byte) main::sx#8 +(signed byte) main::sx#9 +(signed byte) main::sy +(signed byte) main::sy#0 +(signed byte) main::sy#1 +(signed byte) main::sy#10 +(signed byte) main::sy#11 +(signed byte) main::sy#12 +(signed byte) main::sy#2 +(signed byte) main::sy#3 +(signed byte) main::sy#4 +(signed byte) main::sy#5 +(signed byte) main::sy#6 +(signed byte) main::sy#7 +(signed byte) main::sy#8 +(signed byte) main::sy#9 +(signed byte) main::sz +(signed byte) main::sz#0 +(signed byte) main::sz#1 +(signed byte) main::sz#10 +(signed byte) main::sz#11 +(signed byte) main::sz#12 +(signed byte) main::sz#2 +(signed byte) main::sz#3 +(signed byte) main::sz#4 +(signed byte) main::sz#5 +(signed byte) main::sz#6 +(signed byte) main::sz#7 +(signed byte) main::sz#8 +(signed byte) main::sz#9 (void()) mulf_init() (byte~) mulf_init::$0 -(byte~) mulf_init::$1 +(byte*~) mulf_init::$1 +(byte*~) mulf_init::$10 +(byte/signed word/word/dword/signed dword~) mulf_init::$11 +(byte~) mulf_init::$12 +(byte/signed word/word/dword/signed dword~) mulf_init::$13 +(byte~) mulf_init::$14 +(byte*~) mulf_init::$15 +(byte/signed word/word/dword/signed dword~) mulf_init::$16 +(byte~) mulf_init::$17 +(bool~) mulf_init::$18 (byte~) mulf_init::$2 -(byte/signed word/word/dword/signed dword~) mulf_init::$3 +(byte~) mulf_init::$3 (byte~) mulf_init::$4 -(byte/signed word/word/dword/signed dword~) mulf_init::$5 +(byte*~) mulf_init::$5 (byte~) mulf_init::$6 -(bool~) mulf_init::$7 +(byte~) mulf_init::$7 +(byte/signed word/word/dword/signed dword~) mulf_init::$8 +(byte~) mulf_init::$9 (label) mulf_init::@1 (label) mulf_init::@return (signed word) mulf_init::add @@ -480,20 +776,28 @@ SYMBOL TABLE SSA (signed byte) rotate::x (signed byte) rotate::x#0 (signed byte) rotate::x#1 -(signed byte) rotate::x#2 -(signed byte) rotate::x#3 (signed byte) rotate::y (signed byte) rotate::y#0 (signed byte) rotate::y#1 -(signed byte) rotate::y#2 -(signed byte) rotate::y#3 (signed byte) rotate::z (signed byte) rotate::z#0 (signed byte) rotate::z#1 -(signed byte) rotate::z#2 -(signed byte) rotate::z#3 (signed byte[9]) rotation_matrix (signed byte[9]) rotation_matrix#0 +(void()) sprites_init() +(byte*~) sprites_init::$0 +(byte*~) sprites_init::$1 +(byte~) sprites_init::$2 +(bool~) sprites_init::$3 +(label) sprites_init::@1 +(label) sprites_init::@return +(byte) sprites_init::i +(byte) sprites_init::i#0 +(byte) sprites_init::i#1 +(byte) sprites_init::i#2 +(byte*) sprites_init::sprites_ptr +(byte*) sprites_init::sprites_ptr#0 +(byte*) sprites_init::sprites_ptr#1 (signed byte*) xr (signed byte*) xr#0 (signed byte*) xr#1 @@ -502,6 +806,9 @@ SYMBOL TABLE SSA (signed byte*) xr#12 (signed byte*) xr#13 (signed byte*) xr#14 +(signed byte*) xr#15 +(signed byte*) xr#16 +(signed byte*) xr#17 (signed byte*) xr#2 (signed byte*) xr#3 (signed byte*) xr#4 @@ -510,6 +817,8 @@ SYMBOL TABLE SSA (signed byte*) xr#7 (signed byte*) xr#8 (signed byte*) xr#9 +(signed byte[8]) xs +(signed byte[8]) xs#0 (signed byte*) yr (signed byte*) yr#0 (signed byte*) yr#1 @@ -518,6 +827,9 @@ SYMBOL TABLE SSA (signed byte*) yr#12 (signed byte*) yr#13 (signed byte*) yr#14 +(signed byte*) yr#15 +(signed byte*) yr#16 +(signed byte*) yr#17 (signed byte*) yr#2 (signed byte*) yr#3 (signed byte*) yr#4 @@ -526,6 +838,8 @@ SYMBOL TABLE SSA (signed byte*) yr#7 (signed byte*) yr#8 (signed byte*) yr#9 +(signed byte[8]) ys +(signed byte[8]) ys#0 (signed byte*) zr (signed byte*) zr#0 (signed byte*) zr#1 @@ -534,6 +848,9 @@ SYMBOL TABLE SSA (signed byte*) zr#12 (signed byte*) zr#13 (signed byte*) zr#14 +(signed byte*) zr#15 +(signed byte*) zr#16 +(signed byte*) zr#17 (signed byte*) zr#2 (signed byte*) zr#3 (signed byte*) zr#4 @@ -542,32 +859,64 @@ SYMBOL TABLE SSA (signed byte*) zr#7 (signed byte*) zr#8 (signed byte*) zr#9 +(signed byte[8]) zs +(signed byte[8]) zs#0 -Culled Empty Block (label) @8 +Culled Empty Block (label) @9 Successful SSA optimization Pass2CullEmptyBlocks -Alias (signed byte*) SINH#0 = (signed byte*~) $0 (signed byte*) SINH#6 (signed byte*) SINH#5 (signed byte*) SINH#4 -Alias (signed byte*) SINQ#0 = (signed byte*~) $1 (signed byte*) SINQ#6 (signed byte*) SINQ#5 (signed byte*) SINQ#4 -Alias (signed byte*) COSH#0 = (signed byte*) COSH#6 (signed byte*) COSH#5 (signed byte*) COSH#4 -Alias (signed byte*) COSQ#0 = (signed byte*) COSQ#6 (signed byte*) COSQ#5 (signed byte*) COSQ#4 -Alias (signed byte*) COSH#2 = (signed byte*) COSH#3 -Alias (signed byte*) SINH#2 = (signed byte*) SINH#3 -Alias (signed byte*) COSQ#2 = (signed byte*) COSQ#3 -Alias (signed byte*) SINQ#2 = (signed byte*) SINQ#3 -Alias (signed byte*) xr#10 = (signed byte*) xr#11 (signed byte*) xr#12 -Alias (byte*) main::SCREEN#0 = (byte*) main::SCREEN#10 (byte*) main::SCREEN#9 -Alias (signed byte*) yr#10 = (signed byte*) yr#11 (signed byte*) yr#12 -Alias (signed byte*) zr#10 = (signed byte*) zr#11 (signed byte*) zr#12 -Alias (signed byte*) xr#7 = (signed byte*) xr#9 -Alias (byte*) main::SCREEN#6 = (byte*) main::SCREEN#8 -Alias (signed byte*) yr#7 = (signed byte*) yr#9 -Alias (signed byte*) zr#7 = (signed byte*) zr#9 -Alias (signed byte*) xr#1 = (signed byte*) xr#8 (signed byte*) xr#6 (signed byte*) xr#5 (signed byte*) xr#2 (signed byte*) xr#3 -Alias (byte*) main::SCREEN#1 = (byte*) main::SCREEN#7 (byte*) main::SCREEN#5 (byte*) main::SCREEN#4 (byte*) main::SCREEN#2 (byte*) main::SCREEN#3 -Alias (signed byte*) yr#1 = (signed byte*) yr#8 (signed byte*) yr#6 (signed byte*) yr#5 (signed byte*) yr#2 (signed byte*) yr#3 -Alias (signed byte*) zr#1 = (signed byte*) zr#8 (signed byte*) zr#6 (signed byte*) zr#5 (signed byte*) zr#2 (signed byte*) zr#3 -Alias (signed byte*) xr#0 = (signed byte*) xr#14 (signed byte*) xr#13 -Alias (signed byte*) yr#0 = (signed byte*) yr#14 (signed byte*) yr#13 -Alias (signed byte*) zr#0 = (signed byte*) zr#14 (signed byte*) zr#13 +Inversing boolean not (bool~) main::$6 ← (byte~) main::$4 != (byte/signed byte/word/signed word/dword/signed dword) 0 from (bool~) main::$5 ← (byte~) main::$4 == (byte/signed byte/word/signed word/dword/signed dword) 0 +Successful SSA optimization Pass2UnaryNotSimplification +Alias (signed byte*) SINH#0 = (signed byte*~) $0 (signed byte*) SINH#18 (signed byte*) SINH#17 (signed byte*) SINH#13 +Alias (signed byte*) SINQ#0 = (signed byte*~) $1 (signed byte*) SINQ#18 (signed byte*) SINQ#17 (signed byte*) SINQ#13 +Alias (byte*) sprites_init::sprites_ptr#0 = (byte*~) sprites_init::$0 +Alias (byte*) SCREEN#0 = (byte*) SCREEN#5 (byte*) SCREEN#4 (byte*) SCREEN#3 +Alias (byte*) SPRITE#0 = (byte*) SPRITE#6 (byte*) SPRITE#5 (byte*) SPRITE#4 +Alias (signed byte*) COSH#0 = (signed byte*) COSH#18 (signed byte*) COSH#17 (signed byte*) COSH#13 +Alias (signed byte*) COSQ#0 = (signed byte*) COSQ#18 (signed byte*) COSQ#17 (signed byte*) COSQ#13 +Alias (signed byte*) COSH#11 = (signed byte*) COSH#9 (signed byte*) COSH#8 +Alias (signed byte*) SINH#11 = (signed byte*) SINH#9 (signed byte*) SINH#8 +Alias (signed byte*) COSQ#11 = (signed byte*) COSQ#9 (signed byte*) COSQ#8 +Alias (signed byte*) SINQ#11 = (signed byte*) SINQ#9 (signed byte*) SINQ#8 +Alias (signed byte*) xr#13 = (signed byte*) xr#14 (signed byte*) xr#15 +Alias (signed byte*) yr#13 = (signed byte*) yr#14 (signed byte*) yr#15 +Alias (signed byte*) zr#13 = (signed byte*) zr#14 (signed byte*) zr#15 +Alias (signed byte) main::sx#6 = (signed byte) main::sx#8 +Alias (signed byte) main::sy#5 = (signed byte) main::sy#7 +Alias (signed byte) main::sz#5 = (signed byte) main::sz#7 +Alias (signed byte*) COSH#4 = (signed byte*) COSH#6 +Alias (signed byte*) SINH#4 = (signed byte*) SINH#6 +Alias (signed byte*) COSQ#4 = (signed byte*) COSQ#6 +Alias (signed byte*) SINQ#4 = (signed byte*) SINQ#6 +Alias (signed byte*) xr#11 = (signed byte*) xr#9 +Alias (signed byte*) yr#11 = (signed byte*) yr#9 +Alias (signed byte*) zr#11 = (signed byte*) zr#9 +Alias (signed byte) main::sx#2 = (signed byte) main::sx#7 (signed byte) main::sx#4 (signed byte) main::sx#5 (signed byte) main::sx#3 +Alias (signed byte) main::sy#2 = (signed byte) main::sy#6 (signed byte) main::sy#4 (signed byte) main::sy#3 +Alias (signed byte) main::sz#2 = (signed byte) main::sz#6 (signed byte) main::sz#4 (signed byte) main::sz#3 +Alias (signed byte*) COSH#15 = (signed byte*) COSH#5 (signed byte*) COSH#3 (signed byte*) COSH#2 (signed byte*) COSH#16 +Alias (signed byte*) SINH#15 = (signed byte*) SINH#5 (signed byte*) SINH#3 (signed byte*) SINH#2 (signed byte*) SINH#16 +Alias (signed byte*) COSQ#15 = (signed byte*) COSQ#5 (signed byte*) COSQ#3 (signed byte*) COSQ#2 (signed byte*) COSQ#16 +Alias (signed byte*) SINQ#15 = (signed byte*) SINQ#5 (signed byte*) SINQ#3 (signed byte*) SINQ#2 (signed byte*) SINQ#16 +Alias (signed byte*) xr#10 = (signed byte*) xr#8 (signed byte*) xr#7 (signed byte*) xr#6 (signed byte*) xr#5 +Alias (signed byte*) yr#10 = (signed byte*) yr#8 (signed byte*) yr#7 (signed byte*) yr#6 (signed byte*) yr#5 +Alias (signed byte*) zr#10 = (signed byte*) zr#8 (signed byte*) zr#7 (signed byte*) zr#6 (signed byte*) zr#5 +Alias (signed byte) main::sy#1 = (signed byte) main::sy#12 +Alias (signed byte) main::sz#1 = (signed byte) main::sz#12 +Alias (byte) main::i#2 = (byte) main::i#3 +Alias (signed byte*) xr#1 = (signed byte*) xr#3 (signed byte*) xr#12 +Alias (signed byte*) yr#1 = (signed byte*) yr#3 (signed byte*) yr#12 +Alias (signed byte*) zr#12 = (signed byte*) zr#3 (signed byte*) zr#2 +Alias (signed byte) main::sx#10 = (signed byte) main::sx#11 (signed byte) main::sx#9 +Alias (signed byte) main::sy#10 = (signed byte) main::sy#9 (signed byte) main::sy#8 +Alias (signed byte) main::sz#10 = (signed byte) main::sz#9 (signed byte) main::sz#8 +Alias (signed byte*) COSH#10 = (signed byte*) COSH#12 (signed byte*) COSH#7 +Alias (signed byte*) SINH#10 = (signed byte*) SINH#12 (signed byte*) SINH#7 +Alias (signed byte*) COSQ#10 = (signed byte*) COSQ#12 (signed byte*) COSQ#7 +Alias (signed byte*) SINQ#10 = (signed byte*) SINQ#12 (signed byte*) SINQ#7 +Alias (byte) main::i2#0 = (byte~) main::$8 +Alias (signed byte*) xr#0 = (signed byte*) xr#17 (signed byte*) xr#16 +Alias (signed byte*) yr#0 = (signed byte*) yr#17 (signed byte*) yr#16 +Alias (signed byte*) zr#0 = (signed byte*) zr#17 (signed byte*) zr#16 Alias (signed byte) prepare_matrix::t1#0 = (signed byte~) prepare_matrix::$0 Alias (signed byte) prepare_matrix::t2#0 = (signed byte~) prepare_matrix::$1 Alias (signed byte) prepare_matrix::t3#0 = (signed byte~) prepare_matrix::$2 @@ -579,39 +928,102 @@ Alias (signed byte) prepare_matrix::t8#0 = (signed byte~) prepare_matrix::$7 Alias (signed byte) prepare_matrix::t9#0 = (signed byte~) prepare_matrix::$8 Alias (signed byte) prepare_matrix::t10#0 = (signed byte~) prepare_matrix::$9 Successful SSA optimization Pass2AliasElimination +Alias (signed byte*) xr#10 = (signed byte*) xr#4 +Alias (signed byte*) yr#10 = (signed byte*) yr#4 +Alias (signed byte*) zr#10 = (signed byte*) zr#4 +Alias (signed byte) main::sy#1 = (signed byte) main::sy#11 +Alias (signed byte) main::sz#1 = (signed byte) main::sz#11 +Alias (signed byte*) COSH#14 = (signed byte*) COSH#15 +Alias (signed byte*) SINH#14 = (signed byte*) SINH#15 +Alias (signed byte*) COSQ#14 = (signed byte*) COSQ#15 +Alias (signed byte*) SINQ#14 = (signed byte*) SINQ#15 +Successful SSA optimization Pass2AliasElimination +Self Phi Eliminated (byte*) SPRITE#1 +Self Phi Eliminated (byte*) sprites_init::sprites_ptr#1 +Self Phi Eliminated (signed byte) main::sx#2 +Self Phi Eliminated (signed byte) main::sy#2 +Self Phi Eliminated (signed byte) main::sz#2 +Self Phi Eliminated (signed byte*) COSH#14 +Self Phi Eliminated (signed byte*) SINH#14 +Self Phi Eliminated (signed byte*) COSQ#14 +Self Phi Eliminated (signed byte*) SINQ#14 +Self Phi Eliminated (signed byte*) xr#10 +Self Phi Eliminated (signed byte*) yr#10 +Self Phi Eliminated (signed byte*) zr#10 Self Phi Eliminated (signed byte*) xr#1 -Self Phi Eliminated (byte*) main::SCREEN#1 Self Phi Eliminated (signed byte*) yr#1 -Self Phi Eliminated (signed byte*) zr#1 +Self Phi Eliminated (signed byte*) zr#12 +Self Phi Eliminated (signed byte) main::sx#10 +Self Phi Eliminated (signed byte) main::sy#10 +Self Phi Eliminated (signed byte) main::sz#10 +Self Phi Eliminated (signed byte*) COSH#10 +Self Phi Eliminated (signed byte*) SINH#10 +Self Phi Eliminated (signed byte*) COSQ#10 +Self Phi Eliminated (signed byte*) SINQ#10 Successful SSA optimization Pass2SelfPhiElimination -Redundant Phi (signed byte*) COSH#2 (signed byte*) COSH#0 -Redundant Phi (signed byte*) SINH#2 (signed byte*) SINH#0 -Redundant Phi (signed byte*) COSQ#2 (signed byte*) COSQ#0 -Redundant Phi (signed byte*) SINQ#2 (signed byte*) SINQ#0 -Redundant Phi (signed byte*) xr#10 (signed byte*) xr#0 -Redundant Phi (signed byte*) yr#10 (signed byte*) yr#0 -Redundant Phi (signed byte*) zr#10 (signed byte*) zr#0 -Redundant Phi (signed byte*) xr#1 (signed byte*) xr#7 -Redundant Phi (byte*) main::SCREEN#1 (byte*) main::SCREEN#6 -Redundant Phi (signed byte*) yr#1 (signed byte*) yr#7 -Redundant Phi (signed byte*) zr#1 (signed byte*) zr#7 +Redundant Phi (byte*) SCREEN#1 (byte*) SCREEN#2 +Redundant Phi (byte*) SPRITE#2 (byte*) SPRITE#3 +Redundant Phi (byte*) SPRITE#1 (byte*) SPRITE#2 +Redundant Phi (byte*) sprites_init::sprites_ptr#1 (byte*) sprites_init::sprites_ptr#0 +Redundant Phi (byte*) SCREEN#2 (byte*) SCREEN#0 +Redundant Phi (byte*) SPRITE#3 (byte*) SPRITE#0 +Redundant Phi (signed byte*) COSH#11 (signed byte*) COSH#0 +Redundant Phi (signed byte*) SINH#11 (signed byte*) SINH#0 +Redundant Phi (signed byte*) COSQ#11 (signed byte*) COSQ#0 +Redundant Phi (signed byte*) SINQ#11 (signed byte*) SINQ#0 +Redundant Phi (signed byte*) xr#13 (signed byte*) xr#0 +Redundant Phi (signed byte*) yr#13 (signed byte*) yr#0 +Redundant Phi (signed byte*) zr#13 (signed byte*) zr#0 +Redundant Phi (signed byte) main::sx#2 (signed byte) main::sx#6 +Redundant Phi (signed byte) main::sy#2 (signed byte) main::sy#5 +Redundant Phi (signed byte) main::sz#2 (signed byte) main::sz#5 +Redundant Phi (signed byte*) COSH#14 (signed byte*) COSH#4 +Redundant Phi (signed byte*) SINH#14 (signed byte*) SINH#4 +Redundant Phi (signed byte*) COSQ#14 (signed byte*) COSQ#4 +Redundant Phi (signed byte*) SINQ#14 (signed byte*) SINQ#4 +Redundant Phi (signed byte*) xr#10 (signed byte*) xr#11 +Redundant Phi (signed byte*) yr#10 (signed byte*) yr#11 +Redundant Phi (signed byte*) zr#10 (signed byte*) zr#11 +Redundant Phi (signed byte*) xr#1 (signed byte*) xr#10 +Redundant Phi (signed byte*) yr#1 (signed byte*) yr#10 +Redundant Phi (signed byte*) zr#12 (signed byte*) zr#10 +Redundant Phi (signed byte) main::sx#10 (signed byte) main::sx#12 +Redundant Phi (signed byte) main::sy#10 (signed byte) main::sy#1 +Redundant Phi (signed byte) main::sz#10 (signed byte) main::sz#1 +Redundant Phi (signed byte*) COSH#10 (signed byte*) COSH#14 +Redundant Phi (signed byte*) SINH#10 (signed byte*) SINH#14 +Redundant Phi (signed byte*) COSQ#10 (signed byte*) COSQ#14 +Redundant Phi (signed byte*) SINQ#10 (signed byte*) SINQ#14 Redundant Phi (signed byte) prepare_matrix::sy#1 (signed byte) prepare_matrix::sy#0 Redundant Phi (signed byte) prepare_matrix::sz#1 (signed byte) prepare_matrix::sz#0 Redundant Phi (signed byte) prepare_matrix::sx#1 (signed byte) prepare_matrix::sx#0 -Redundant Phi (signed byte*) COSH#1 (signed byte*) COSH#2 -Redundant Phi (signed byte*) SINH#1 (signed byte*) SINH#2 -Redundant Phi (signed byte*) COSQ#1 (signed byte*) COSQ#2 -Redundant Phi (signed byte*) SINQ#1 (signed byte*) SINQ#2 -Redundant Phi (signed byte*) xr#4 (signed byte*) xr#1 -Redundant Phi (signed byte*) yr#4 (signed byte*) yr#1 -Redundant Phi (signed byte*) zr#4 (signed byte*) zr#1 +Redundant Phi (signed byte*) COSH#1 (signed byte*) COSH#14 +Redundant Phi (signed byte*) SINH#1 (signed byte*) SINH#14 +Redundant Phi (signed byte*) COSQ#1 (signed byte*) COSQ#14 +Redundant Phi (signed byte*) SINQ#1 (signed byte*) SINQ#14 +Redundant Phi (signed byte) rotate::x#1 (signed byte) rotate::x#0 +Redundant Phi (signed byte*) xr#2 (signed byte*) xr#1 +Redundant Phi (signed byte) rotate::y#1 (signed byte) rotate::y#0 +Redundant Phi (signed byte*) yr#2 (signed byte*) yr#1 +Redundant Phi (signed byte) rotate::z#1 (signed byte) rotate::z#0 +Redundant Phi (signed byte*) zr#1 (signed byte*) zr#12 Successful SSA optimization Pass2RedundantPhiElimination -Simple Condition (bool~) mulf_init::$7 if((byte) mulf_init::i#1!=rangelast(0,128)) goto mulf_init::@1 +Simple Condition (bool~) mulf_init::$18 if((byte) mulf_init::i#1!=rangelast(0,128)) goto mulf_init::@1 +Simple Condition (bool~) sprites_init::$3 if((byte) sprites_init::i#1!=rangelast(0,7)) goto sprites_init::@1 Simple Condition (bool~) main::$2 if(*((byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto main::@5 +Simple Condition (bool~) main::$6 if((byte~) main::$4!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto main::@7 +Simple Condition (bool~) main::$15 if((byte) main::i#1!=rangelast(0,7)) goto main::@8 Successful SSA optimization Pass2ConditionalJumpSimplification +Constant (const byte*) SPRITES_XPOS#0 = ((byte*))53248 +Constant (const byte*) SPRITES_YPOS#0 = ((byte*))53249 Constant (const byte*) RASTER#0 = ((byte*))53266 +Constant (const byte*) SPRITES_ENABLE#0 = ((byte*))53269 Constant (const byte*) BORDERCOL#0 = ((byte*))53280 +Constant (const byte*) SPRITES_COLS#0 = ((byte*))53287 +Constant (const byte) GREEN#0 = 5 Constant (const byte) LIGHT_BLUE#0 = 14 +Constant (const byte*) SCREEN#0 = ((byte*))1024 +Constant (const byte*) SPRITE#0 = ((byte*))12288 Constant (const signed byte*) COSH#0 = ((signed byte*))8192 Constant (const signed byte*) COSQ#0 = ((signed byte*))8704 Constant (const byte[512]) mulf_sqr1#0 = { fill( 512, 0) } @@ -619,177 +1031,162 @@ Constant (const byte[512]) mulf_sqr2#0 = { fill( 512, 0) } Constant (const signed word) mulf_init::sqr1#0 = 0 Constant (const signed word) mulf_init::add#0 = 1 Constant (const byte) mulf_init::i#0 = 0 +Constant (const byte) sprites_init::i#0 = 0 +Constant (const signed byte/signed word/signed dword) $2 = -63 +Constant (const signed byte/signed word/signed dword) $3 = -63 +Constant (const signed byte/signed word/signed dword) $4 = -63 +Constant (const signed byte/signed word/signed dword) $5 = -63 +Constant (const signed byte/signed word/signed dword) $6 = -63 +Constant (const signed byte/signed word/signed dword) $7 = -63 +Constant (const signed byte/signed word/signed dword) $8 = -63 +Constant (const signed byte/signed word/signed dword) $9 = -63 +Constant (const signed byte/signed word/signed dword) $10 = -63 +Constant (const signed byte/signed word/signed dword) $11 = -63 +Constant (const signed byte/signed word/signed dword) $12 = -63 +Constant (const signed byte/signed word/signed dword) $13 = -63 Constant (const signed byte*) xr#0 = ((signed byte*))240 Constant (const signed byte*) yr#0 = ((signed byte*))241 Constant (const signed byte*) zr#0 = ((signed byte*))242 -Constant (const byte*) main::SCREEN#0 = ((byte*))1024 -Constant (const signed byte) prepare_matrix::sx#0 = 0 -Constant (const signed byte) prepare_matrix::sy#0 = 0 -Constant (const signed byte) prepare_matrix::sz#0 = 0 -Constant (const signed byte) rotate::x#0 = 0 -Constant (const signed byte) rotate::y#0 = 0 -Constant (const signed byte) rotate::z#0 = 63 -Constant (const signed byte) rotate::x#1 = 0 -Constant (const signed byte) rotate::y#1 = 63 -Constant (const signed byte) rotate::z#1 = 0 -Constant (const signed byte) rotate::x#2 = 63 -Constant (const signed byte) rotate::y#2 = 0 -Constant (const signed byte) rotate::z#2 = 0 +Constant (const signed byte) main::sx#0 = 0 +Constant (const signed byte) main::sy#0 = 0 +Constant (const signed byte) main::sz#0 = 0 +Constant (const byte) main::i#0 = 0 Constant (const signed byte[9]) rotation_matrix#0 = { fill( 9, 0) } Successful SSA optimization Pass2ConstantIdentification Constant (const signed byte*) SINH#0 = COSH#0+64 Constant (const signed byte*) SINQ#0 = COSQ#0+64 -Constant (const signed byte) prepare_matrix::t1#0 = prepare_matrix::sy#0-prepare_matrix::sz#0 -Constant (const signed byte) prepare_matrix::t2#0 = prepare_matrix::sy#0+prepare_matrix::sz#0 -Constant (const signed byte) prepare_matrix::t3#0 = prepare_matrix::sx#0+prepare_matrix::sz#0 -Constant (const signed byte) prepare_matrix::t4#0 = prepare_matrix::sx#0-prepare_matrix::sz#0 -Constant (const signed byte) prepare_matrix::t9#0 = prepare_matrix::sy#0-prepare_matrix::sx#0 -Constant (const signed byte) prepare_matrix::t10#0 = prepare_matrix::sy#0+prepare_matrix::sx#0 +Constant (const byte*) mulf_init::$1 = mulf_sqr1#0+256 +Constant (const byte*) mulf_init::$5 = mulf_sqr1#0+256 +Constant (const byte*) mulf_init::$10 = mulf_sqr2#0+256 +Constant (const byte*) mulf_init::$15 = mulf_sqr2#0+256 +Constant (const byte*) sprites_init::sprites_ptr#0 = SCREEN#0+1016 +Constant (const byte*) sprites_init::$1 = SPRITE#0/64 +Constant (const signed byte[8]) xs#0 = { $2, $3, $4, $5, 63, 63, 63, 63 } +Constant (const signed byte[8]) ys#0 = { $6, $7, 63, 63, $8, $9, 63, 63 } +Constant (const signed byte[8]) zs#0 = { $10, 63, $11, 63, $12, 63, $13, 63 } Successful SSA optimization Pass2ConstantIdentification -Constant (const signed byte) prepare_matrix::t5#0 = prepare_matrix::sx#0+prepare_matrix::t2#0 -Constant (const signed byte) prepare_matrix::t6#0 = prepare_matrix::sx#0-prepare_matrix::t1#0 -Constant (const signed byte) prepare_matrix::t7#0 = prepare_matrix::sx#0+prepare_matrix::t1#0 -Constant (const signed byte) prepare_matrix::t8#0 = prepare_matrix::t2#0-prepare_matrix::sx#0 +Constant (const byte) sprites_init::$2 = ((byte))sprites_init::$1 Successful SSA optimization Pass2ConstantIdentification -Consolidated array index constant in assignment *(mulf_sqr2#0+1 + mulf_init::$3) -Consolidated array index constant in *(COSH#0+prepare_matrix::t1#0) -Consolidated array index constant in *(COSH#0+prepare_matrix::t2#0) +Consolidated array index constant in assignment *(mulf_sqr2#0+1 + mulf_init::$8) +Consolidated array index constant in assignment *(mulf_init::$10+1 + mulf_init::$11) Consolidated array index constant in *(rotation_matrix#0+0) -Consolidated array index constant in *(SINH#0+prepare_matrix::t1#0) -Consolidated array index constant in *(SINH#0+prepare_matrix::t2#0) Consolidated array index constant in *(rotation_matrix#0+1) -Consolidated array index constant in *(SINH#0+prepare_matrix::sy#0) -Consolidated array index constant in *(SINH#0+prepare_matrix::sy#0) Consolidated array index constant in *(rotation_matrix#0+2) -Consolidated array index constant in *(SINH#0+prepare_matrix::t3#0) -Consolidated array index constant in *(SINH#0+prepare_matrix::t4#0) -Consolidated array index constant in *(COSQ#0+prepare_matrix::t6#0) -Consolidated array index constant in *(COSQ#0+prepare_matrix::t5#0) -Consolidated array index constant in *(COSQ#0+prepare_matrix::t8#0) -Consolidated array index constant in *(COSQ#0+prepare_matrix::t7#0) Consolidated array index constant in *(rotation_matrix#0+3) -Consolidated array index constant in *(COSH#0+prepare_matrix::t3#0) -Consolidated array index constant in *(COSH#0+prepare_matrix::t4#0) -Consolidated array index constant in *(SINQ#0+prepare_matrix::t5#0) -Consolidated array index constant in *(SINQ#0+prepare_matrix::t6#0) -Consolidated array index constant in *(SINQ#0+prepare_matrix::t7#0) -Consolidated array index constant in *(SINQ#0+prepare_matrix::t8#0) Consolidated array index constant in *(rotation_matrix#0+4) -Consolidated array index constant in *(SINH#0+prepare_matrix::t9#0) -Consolidated array index constant in *(SINH#0+prepare_matrix::t10#0) Consolidated array index constant in *(rotation_matrix#0+5) -Consolidated array index constant in *(COSH#0+prepare_matrix::t4#0) -Consolidated array index constant in *(COSH#0+prepare_matrix::t3#0) -Consolidated array index constant in *(SINQ#0+prepare_matrix::t6#0) -Consolidated array index constant in *(SINQ#0+prepare_matrix::t5#0) -Consolidated array index constant in *(SINQ#0+prepare_matrix::t8#0) -Consolidated array index constant in *(SINQ#0+prepare_matrix::t7#0) Consolidated array index constant in *(rotation_matrix#0+6) -Consolidated array index constant in *(SINH#0+prepare_matrix::t3#0) -Consolidated array index constant in *(SINH#0+prepare_matrix::t4#0) -Consolidated array index constant in *(COSQ#0+prepare_matrix::t6#0) -Consolidated array index constant in *(COSQ#0+prepare_matrix::t5#0) -Consolidated array index constant in *(COSQ#0+prepare_matrix::t7#0) -Consolidated array index constant in *(COSQ#0+prepare_matrix::t8#0) Consolidated array index constant in *(rotation_matrix#0+7) -Consolidated array index constant in *(COSH#0+prepare_matrix::t9#0) -Consolidated array index constant in *(COSH#0+prepare_matrix::t10#0) Consolidated array index constant in *(rotation_matrix#0+8) Successful SSA optimization Pass2ConstantAdditionElimination if() condition always true - replacing block destination if(true) goto main::@2 Successful SSA optimization Pass2ConstantIfs -Inferred type updated to byte in (byte/signed word/word/dword/signed dword~) mulf_init::$3 ← (byte) mulf_init::i#2 -Eliminating Noop Cast (byte~) main::$4 ← ((byte)) *((signed byte*) xr#7) -Eliminating Noop Cast (byte~) main::$5 ← ((byte)) *((signed byte*) yr#7) -Eliminating Noop Cast (byte~) main::$6 ← ((byte)) *((signed byte*) zr#7) -Eliminating Noop Cast (byte~) main::$8 ← ((byte)) *((signed byte*) xr#7) -Eliminating Noop Cast (byte~) main::$9 ← ((byte)) *((signed byte*) yr#7) -Eliminating Noop Cast (byte~) main::$10 ← ((byte)) *((signed byte*) zr#7) -Eliminating Noop Cast (byte~) main::$12 ← ((byte)) *((signed byte*) xr#7) -Eliminating Noop Cast (byte~) main::$13 ← ((byte)) *((signed byte*) yr#7) -Eliminating Noop Cast (byte~) main::$14 ← ((byte)) *((signed byte*) zr#7) +Inferred type updated to byte in (byte/signed word/word/dword/signed dword~) mulf_init::$8 ← (byte) mulf_init::i#2 +Inferred type updated to byte in (byte/signed word/word/dword/signed dword~) mulf_init::$11 ← (byte) mulf_init::i#2 +Eliminating Noop Cast (byte~) main::$10 ← ((byte)) (signed byte~) main::$9 +Eliminating Noop Cast (byte~) main::$13 ← ((byte)) (signed byte~) main::$12 Successful SSA optimization Pass2NopCastElimination Removing unused block main::@return Successful SSA optimization Pass2EliminateUnusedBlocks Resolved ranged next value mulf_init::i#1 ← ++ mulf_init::i#2 to ++ Resolved ranged comparison value if(mulf_init::i#1!=rangelast(0,128)) goto mulf_init::@1 to (byte/word/signed word/dword/signed dword) 129 -Culled Empty Block (label) @4 -Culled Empty Block (label) main::@14 +Resolved ranged next value sprites_init::i#1 ← ++ sprites_init::i#2 to ++ +Resolved ranged comparison value if(sprites_init::i#1!=rangelast(0,7)) goto sprites_init::@1 to (byte/signed byte/word/signed word/dword/signed dword) 8 +Resolved ranged next value main::i#1 ← ++ main::i#2 to ++ +Resolved ranged comparison value if(main::i#1!=rangelast(0,7)) goto main::@8 to (byte/signed byte/word/signed word/dword/signed dword) 8 +Culled Empty Block (label) @5 +Culled Empty Block (label) main::@18 Culled Empty Block (label) main::@2 Culled Empty Block (label) main::@5 -Culled Empty Block (label) @5 +Culled Empty Block (label) @6 Successful SSA optimization Pass2CullEmptyBlocks -Alias (byte) mulf_init::i#2 = (byte~) mulf_init::$3 +Alias (byte) mulf_init::i#2 = (byte~) mulf_init::$8 (byte~) mulf_init::$11 Successful SSA optimization Pass2AliasElimination -Self Phi Eliminated (signed byte*) xr#7 -Self Phi Eliminated (byte*) main::SCREEN#6 -Self Phi Eliminated (signed byte*) yr#7 -Self Phi Eliminated (signed byte*) zr#7 +Self Phi Eliminated (signed byte*) COSH#4 +Self Phi Eliminated (signed byte*) SINH#4 +Self Phi Eliminated (signed byte*) COSQ#4 +Self Phi Eliminated (signed byte*) SINQ#4 +Self Phi Eliminated (signed byte*) xr#11 +Self Phi Eliminated (signed byte*) yr#11 +Self Phi Eliminated (signed byte*) zr#11 Successful SSA optimization Pass2SelfPhiElimination -Redundant Phi (signed byte*) xr#7 (const signed byte*) xr#0 -Redundant Phi (byte*) main::SCREEN#6 (const byte*) main::SCREEN#0 -Redundant Phi (signed byte*) yr#7 (const signed byte*) yr#0 -Redundant Phi (signed byte*) zr#7 (const signed byte*) zr#0 +Redundant Phi (signed byte*) COSH#4 (const signed byte*) COSH#0 +Redundant Phi (signed byte*) SINH#4 (const signed byte*) SINH#0 +Redundant Phi (signed byte*) COSQ#4 (const signed byte*) COSQ#0 +Redundant Phi (signed byte*) SINQ#4 (const signed byte*) SINQ#0 +Redundant Phi (signed byte*) xr#11 (const signed byte*) xr#0 +Redundant Phi (signed byte*) yr#11 (const signed byte*) yr#0 +Redundant Phi (signed byte*) zr#11 (const signed byte*) zr#0 Successful SSA optimization Pass2RedundantPhiElimination -Consolidated array index constant in *(main::SCREEN#0+0) -Consolidated array index constant in *(main::SCREEN#0+1) -Consolidated array index constant in *(main::SCREEN#0+2) -Consolidated array index constant in *(main::SCREEN#0+40) -Consolidated array index constant in *(main::SCREEN#0+41) -Consolidated array index constant in *(main::SCREEN#0+42) -Consolidated array index constant in *(main::SCREEN#0+80) -Consolidated array index constant in *(main::SCREEN#0+81) -Consolidated array index constant in *(main::SCREEN#0+82) -Successful SSA optimization Pass2ConstantAdditionElimination -Culled Empty Block (label) main::@1 -Successful SSA optimization Pass2CullEmptyBlocks Inlining constant with var siblings (const signed word) mulf_init::sqr1#0 Inlining constant with var siblings (const signed word) mulf_init::add#0 Inlining constant with var siblings (const byte) mulf_init::i#0 -Inlining constant with var siblings (const signed byte) rotate::x#0 -Inlining constant with var siblings (const signed byte) rotate::y#0 -Inlining constant with var siblings (const signed byte) rotate::z#0 -Inlining constant with var siblings (const signed byte) rotate::x#1 -Inlining constant with var siblings (const signed byte) rotate::y#1 -Inlining constant with var siblings (const signed byte) rotate::z#1 -Inlining constant with var siblings (const signed byte) rotate::x#2 -Inlining constant with var siblings (const signed byte) rotate::y#2 -Inlining constant with var siblings (const signed byte) rotate::z#2 +Inlining constant with var siblings (const byte) sprites_init::i#0 +Inlining constant with var siblings (const signed byte) main::sx#0 +Inlining constant with var siblings (const signed byte) main::sy#0 +Inlining constant with var siblings (const signed byte) main::sz#0 +Inlining constant with var siblings (const byte) main::i#0 +Constant inlined $10 = -(byte/signed byte/word/signed word/dword/signed dword) 63 +Constant inlined $11 = -(byte/signed byte/word/signed word/dword/signed dword) 63 +Constant inlined $12 = -(byte/signed byte/word/signed word/dword/signed dword) 63 +Constant inlined $13 = -(byte/signed byte/word/signed word/dword/signed dword) 63 Constant inlined mulf_init::i#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 -Constant inlined mulf_init::sqr1#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 -Constant inlined rotate::z#1 = (byte/signed byte/word/signed word/dword/signed dword) 0 -Constant inlined rotate::y#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 -Constant inlined rotate::z#0 = (byte/signed byte/word/signed word/dword/signed dword) 63 -Constant inlined rotate::y#1 = (byte/signed byte/word/signed word/dword/signed dword) 63 -Constant inlined rotate::x#2 = (byte/signed byte/word/signed word/dword/signed dword) 63 +Constant inlined mulf_init::$1 = (const byte[512]) mulf_sqr1#0+(word/signed word/dword/signed dword) 256 +Constant inlined $2 = -(byte/signed byte/word/signed word/dword/signed dword) 63 +Constant inlined mulf_init::$5 = (const byte[512]) mulf_sqr1#0+(word/signed word/dword/signed dword) 256 +Constant inlined $3 = -(byte/signed byte/word/signed word/dword/signed dword) 63 +Constant inlined $4 = -(byte/signed byte/word/signed word/dword/signed dword) 63 +Constant inlined main::sy#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 +Constant inlined $5 = -(byte/signed byte/word/signed word/dword/signed dword) 63 +Constant inlined main::sz#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 +Constant inlined $6 = -(byte/signed byte/word/signed word/dword/signed dword) 63 Constant inlined mulf_init::add#0 = (byte/signed byte/word/signed word/dword/signed dword) 1 -Constant inlined rotate::z#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 -Constant inlined rotate::y#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 -Constant inlined rotate::x#1 = (byte/signed byte/word/signed word/dword/signed dword) 0 -Constant inlined rotate::x#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 +Constant inlined $7 = -(byte/signed byte/word/signed word/dword/signed dword) 63 +Constant inlined $8 = -(byte/signed byte/word/signed word/dword/signed dword) 63 +Constant inlined $9 = -(byte/signed byte/word/signed word/dword/signed dword) 63 +Constant inlined main::sx#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 +Constant inlined main::i#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 +Constant inlined sprites_init::i#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 +Constant inlined mulf_init::sqr1#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 +Constant inlined mulf_init::$10 = (const byte[512]) mulf_sqr2#0+(word/signed word/dword/signed dword) 256 +Constant inlined sprites_init::$1 = (const byte*) SPRITE#0/(byte/signed byte/word/signed word/dword/signed dword) 64 +Constant inlined mulf_init::$15 = (const byte[512]) mulf_sqr2#0+(word/signed word/dword/signed dword) 256 +Constant inlined sprites_init::$2 = ((byte))(const byte*) SPRITE#0/(byte/signed byte/word/signed word/dword/signed dword) 64 Successful SSA optimization Pass2ConstantInlining -Simplifying constant plus zero main::SCREEN#0+0 Simplifying constant plus zero rotation_matrix#0+0 +Added new block during phi lifting main::@21(between main::@19 and main::@7) +Added new block during phi lifting main::@22(between main::@20 and main::@8) Added new block during phi lifting mulf_init::@3(between mulf_init::@1 and mulf_init::@1) +Added new block during phi lifting sprites_init::@3(between sprites_init::@1 and sprites_init::@1) Adding NOP phi() at start of @begin -Adding NOP phi() at start of @7 +Adding NOP phi() at start of @8 Adding NOP phi() at start of @end -Adding NOP phi() at start of main::@13 +Adding NOP phi() at start of main::@17 Adding NOP phi() at start of mulf_init CALL GRAPH -Calls in [] to main:4 -Calls in [main] to mulf_init:7 prepare_matrix:9 rotate:12 rotate:17 rotate:22 +Calls in [] to main:5 +Calls in [main] to sprites_init:8 mulf_init:10 prepare_matrix:17 rotate:30 -Created 6 initial phi equivalence classes -Coalesced [86] mulf_init::sqr1#3 ← mulf_init::sqr1#1 -Coalesced [87] mulf_init::i#3 ← mulf_init::i#1 -Coalesced [88] mulf_init::add#3 ← mulf_init::add#1 -Coalesced down to 6 phi equivalence classes +Created 9 initial phi equivalence classes +Coalesced [23] main::sx#14 ← main::sx#1 +Coalesced [41] main::sx#13 ← main::sx#12 +Coalesced [42] main::sy#13 ← main::sy#1 +Coalesced [43] main::sz#13 ← main::sz#1 +Coalesced [44] main::i#4 ← main::i#1 +Coalesced (already) [45] main::sx#15 ← main::sx#6 +Coalesced [124] mulf_init::sqr1#3 ← mulf_init::sqr1#1 +Coalesced [125] mulf_init::i#3 ← mulf_init::i#1 +Coalesced [126] mulf_init::add#3 ← mulf_init::add#1 +Coalesced [134] sprites_init::i#3 ← sprites_init::i#1 +Coalesced down to 8 phi equivalence classes +Culled Empty Block (label) main::@22 +Culled Empty Block (label) main::@21 Culled Empty Block (label) mulf_init::@3 +Culled Empty Block (label) sprites_init::@3 Adding NOP phi() at start of @begin -Adding NOP phi() at start of @7 +Adding NOP phi() at start of @8 Adding NOP phi() at start of @end -Adding NOP phi() at start of main::@13 +Adding NOP phi() at start of main::@17 Adding NOP phi() at start of mulf_init FINAL CONTROL FLOW GRAPH @@ -797,6 +1194,11 @@ FINAL CONTROL FLOW GRAPH [0] phi() [ ] ( ) to:@3 @3: scope:[] from @begin + kickasm(location (const byte*) SPRITE#0) {{ .var pic = LoadPicture("balloon.png", List().add($000000, $ffffff)) + .for (var y=0; y<21; y++) + .for (var x=0;x<3; x++) + .byte pic.getSinglecolorByte(x,y) + }} kickasm(location (const signed byte*) COSH#0) {{ { .var min = -$1fff .var max = $1fff @@ -817,124 +1219,176 @@ FINAL CONTROL FLOW GRAPH } } }} - to:@7 -@7: scope:[] from @3 - [3] phi() [ ] ( ) - [4] call main [ ] ( ) + to:@8 +@8: scope:[] from @3 + [4] phi() [ ] ( ) + [5] call main [ ] ( ) to:@end -@end: scope:[] from @7 - [5] phi() [ ] ( ) -main: scope:[main] from @7 +@end: scope:[] from @8 + [6] phi() [ ] ( ) +main: scope:[main] from @8 asm { sei } - [7] call mulf_init [ ] ( main:4 [ ] ) - to:main::@13 -main::@13: scope:[main] from main - [8] phi() [ ] ( main:4 [ ] ) - [9] call prepare_matrix [ ] ( main:4 [ ] ) + [8] call sprites_init [ ] ( main:5 [ ] ) + to:main::@17 +main::@17: scope:[main] from main + [9] phi() [ ] ( main:5 [ ] ) + [10] call mulf_init [ ] ( main:5 [ ] ) + to:main::@1 +main::@1: scope:[main] from main::@15 main::@17 + [11] (signed byte) main::sz#5 ← phi( main::@15/(signed byte) main::sz#1 main::@17/(byte/signed byte/word/signed word/dword/signed dword) 0 ) [ main::sx#6 main::sy#5 main::sz#5 ] ( main:5 [ main::sx#6 main::sy#5 main::sz#5 ] ) + [11] (signed byte) main::sy#5 ← phi( main::@15/(signed byte) main::sy#1 main::@17/(byte/signed byte/word/signed word/dword/signed dword) 0 ) [ main::sx#6 main::sy#5 main::sz#5 ] ( main:5 [ main::sx#6 main::sy#5 main::sz#5 ] ) + [11] (signed byte) main::sx#6 ← phi( main::@15/(signed byte) main::sx#12 main::@17/(byte/signed byte/word/signed word/dword/signed dword) 0 ) [ main::sx#6 main::sy#5 main::sz#5 ] ( main:5 [ main::sx#6 main::sy#5 main::sz#5 ] ) to:main::@4 -main::@4: scope:[main] from main::@13 main::@17 main::@4 - [10] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto main::@4 [ ] ( main:4 [ ] ) +main::@4: scope:[main] from main::@1 main::@4 + [12] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto main::@4 [ main::sx#6 main::sy#5 main::sz#5 ] ( main:5 [ main::sx#6 main::sy#5 main::sz#5 ] ) to:main::@6 main::@6: scope:[main] from main::@4 - [11] *((const byte*) BORDERCOL#0) ← ++ *((const byte*) BORDERCOL#0) [ ] ( main:4 [ ] ) - [12] call rotate [ ] ( main:4 [ ] ) + [13] *((const byte*) BORDERCOL#0) ← ++ *((const byte*) BORDERCOL#0) [ main::sx#6 main::sy#5 main::sz#5 ] ( main:5 [ main::sx#6 main::sy#5 main::sz#5 ] ) + [14] (signed byte) prepare_matrix::sx#0 ← (signed byte) main::sx#6 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::sx#0 ] ( main:5 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::sx#0 ] ) + [15] (signed byte) prepare_matrix::sy#0 ← (signed byte) main::sy#5 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::sx#0 prepare_matrix::sy#0 ] ( main:5 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::sx#0 prepare_matrix::sy#0 ] ) + [16] (signed byte) prepare_matrix::sz#0 ← (signed byte) main::sz#5 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::sx#0 prepare_matrix::sy#0 prepare_matrix::sz#0 ] ( main:5 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::sx#0 prepare_matrix::sy#0 prepare_matrix::sz#0 ] ) + [17] call prepare_matrix [ main::sx#6 main::sy#5 main::sz#5 ] ( main:5 [ main::sx#6 main::sy#5 main::sz#5 ] ) + to:main::@19 +main::@19: scope:[main] from main::@6 + [18] (signed byte) main::sy#1 ← -- (signed byte) main::sy#5 [ main::sx#6 main::sz#5 main::sy#1 ] ( main:5 [ main::sx#6 main::sz#5 main::sy#1 ] ) + [19] (signed byte) main::sz#1 ← ++ (signed byte) main::sz#5 [ main::sx#6 main::sy#1 main::sz#1 ] ( main:5 [ main::sx#6 main::sy#1 main::sz#1 ] ) + [20] (byte~) main::$4 ← (signed byte) main::sy#1 & (byte/signed byte/word/signed word/dword/signed dword) 1 [ main::sx#6 main::sy#1 main::sz#1 main::$4 ] ( main:5 [ main::sx#6 main::sy#1 main::sz#1 main::$4 ] ) + [21] if((byte~) main::$4!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto main::@7 [ main::sx#6 main::sy#1 main::sz#1 ] ( main:5 [ main::sx#6 main::sy#1 main::sz#1 ] ) + to:main::@14 +main::@14: scope:[main] from main::@19 + [22] (signed byte) main::sx#1 ← ++ (signed byte) main::sx#6 [ main::sy#1 main::sz#1 main::sx#1 ] ( main:5 [ main::sy#1 main::sz#1 main::sx#1 ] ) + to:main::@7 +main::@7: scope:[main] from main::@14 main::@19 + [23] (signed byte) main::sx#12 ← phi( main::@14/(signed byte) main::sx#1 main::@19/(signed byte) main::sx#6 ) [ main::sx#12 main::sy#1 main::sz#1 ] ( main:5 [ main::sx#12 main::sy#1 main::sz#1 ] ) + to:main::@8 +main::@8: scope:[main] from main::@20 main::@7 + [24] (byte) main::i#2 ← phi( main::@20/(byte) main::i#1 main::@7/(byte/signed byte/word/signed word/dword/signed dword) 0 ) [ main::sx#12 main::sy#1 main::sz#1 main::i#2 ] ( main:5 [ main::sx#12 main::sy#1 main::sz#1 main::i#2 ] ) + [25] *((const byte*) BORDERCOL#0) ← ++ *((const byte*) BORDERCOL#0) [ main::sx#12 main::sy#1 main::sz#1 main::i#2 ] ( main:5 [ main::sx#12 main::sy#1 main::sz#1 main::i#2 ] ) + [26] (signed byte) rotate::x#0 ← *((const signed byte[8]) xs#0 + (byte) main::i#2) [ main::sx#12 main::sy#1 main::sz#1 main::i#2 rotate::x#0 ] ( main:5 [ main::sx#12 main::sy#1 main::sz#1 main::i#2 rotate::x#0 ] ) + [27] (signed byte) rotate::y#0 ← *((const signed byte[8]) ys#0 + (byte) main::i#2) [ main::sx#12 main::sy#1 main::sz#1 main::i#2 rotate::x#0 rotate::y#0 ] ( main:5 [ main::sx#12 main::sy#1 main::sz#1 main::i#2 rotate::x#0 rotate::y#0 ] ) + [28] (signed byte) rotate::z#0 ← *((const signed byte[8]) zs#0 + (byte) main::i#2) [ main::sx#12 main::sy#1 main::sz#1 main::i#2 rotate::x#0 rotate::y#0 rotate::z#0 ] ( main:5 [ main::sx#12 main::sy#1 main::sz#1 main::i#2 rotate::x#0 rotate::y#0 rotate::z#0 ] ) + [29] call rotate [ main::sx#12 main::sy#1 main::sz#1 main::i#2 ] ( main:5 [ main::sx#12 main::sy#1 main::sz#1 main::i#2 ] ) + to:main::@20 +main::@20: scope:[main] from main::@8 + [30] (byte) main::i2#0 ← (byte) main::i#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ main::sx#12 main::sy#1 main::sz#1 main::i#2 main::i2#0 ] ( main:5 [ main::sx#12 main::sy#1 main::sz#1 main::i#2 main::i2#0 ] ) + [31] (signed byte~) main::$9 ← *((const signed byte*) xr#0) >> (byte/signed byte/word/signed word/dword/signed dword) 1 [ main::sx#12 main::sy#1 main::sz#1 main::i#2 main::i2#0 main::$9 ] ( main:5 [ main::sx#12 main::sy#1 main::sz#1 main::i#2 main::i2#0 main::$9 ] ) + [32] (byte/word/signed word/dword/signed dword~) main::$11 ← (byte/word/signed word/dword/signed dword) 128 + (byte)(signed byte~) main::$9 [ main::sx#12 main::sy#1 main::sz#1 main::i#2 main::i2#0 main::$11 ] ( main:5 [ main::sx#12 main::sy#1 main::sz#1 main::i#2 main::i2#0 main::$11 ] ) + [33] *((const byte*) SPRITES_XPOS#0 + (byte) main::i2#0) ← (byte/word/signed word/dword/signed dword~) main::$11 [ main::sx#12 main::sy#1 main::sz#1 main::i#2 main::i2#0 ] ( main:5 [ main::sx#12 main::sy#1 main::sz#1 main::i#2 main::i2#0 ] ) + [34] (signed byte~) main::$12 ← *((const signed byte*) yr#0) >> (byte/signed byte/word/signed word/dword/signed dword) 1 [ main::sx#12 main::sy#1 main::sz#1 main::i#2 main::i2#0 main::$12 ] ( main:5 [ main::sx#12 main::sy#1 main::sz#1 main::i#2 main::i2#0 main::$12 ] ) + [35] (byte/word/signed word/dword/signed dword~) main::$14 ← (byte/word/signed word/dword/signed dword) 128 + (byte)(signed byte~) main::$12 [ main::sx#12 main::sy#1 main::sz#1 main::i#2 main::i2#0 main::$14 ] ( main:5 [ main::sx#12 main::sy#1 main::sz#1 main::i#2 main::i2#0 main::$14 ] ) + [36] *((const byte*) SPRITES_YPOS#0 + (byte) main::i2#0) ← (byte/word/signed word/dword/signed dword~) main::$14 [ main::sx#12 main::sy#1 main::sz#1 main::i#2 ] ( main:5 [ main::sx#12 main::sy#1 main::sz#1 main::i#2 ] ) + [37] (byte) main::i#1 ← ++ (byte) main::i#2 [ main::sx#12 main::sy#1 main::sz#1 main::i#1 ] ( main:5 [ main::sx#12 main::sy#1 main::sz#1 main::i#1 ] ) + [38] if((byte) main::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 8) goto main::@8 [ main::sx#12 main::sy#1 main::sz#1 main::i#1 ] ( main:5 [ main::sx#12 main::sy#1 main::sz#1 main::i#1 ] ) to:main::@15 -main::@15: scope:[main] from main::@6 - [13] *((const byte*) main::SCREEN#0) ← (byte)*((const signed byte*) xr#0) [ ] ( main:4 [ ] ) - [14] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte)*((const signed byte*) yr#0) [ ] ( main:4 [ ] ) - [15] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte)*((const signed byte*) zr#0) [ ] ( main:4 [ ] ) - [16] *((const byte*) BORDERCOL#0) ← ++ *((const byte*) BORDERCOL#0) [ ] ( main:4 [ ] ) - [17] call rotate [ ] ( main:4 [ ] ) - to:main::@16 -main::@16: scope:[main] from main::@15 - [18] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40) ← (byte)*((const signed byte*) xr#0) [ ] ( main:4 [ ] ) - [19] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 41) ← (byte)*((const signed byte*) yr#0) [ ] ( main:4 [ ] ) - [20] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 42) ← (byte)*((const signed byte*) zr#0) [ ] ( main:4 [ ] ) - [21] *((const byte*) BORDERCOL#0) ← ++ *((const byte*) BORDERCOL#0) [ ] ( main:4 [ ] ) - [22] call rotate [ ] ( main:4 [ ] ) - to:main::@17 -main::@17: scope:[main] from main::@16 - [23] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 80) ← (byte)*((const signed byte*) xr#0) [ ] ( main:4 [ ] ) - [24] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 81) ← (byte)*((const signed byte*) yr#0) [ ] ( main:4 [ ] ) - [25] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 82) ← (byte)*((const signed byte*) zr#0) [ ] ( main:4 [ ] ) - [26] *((const byte*) BORDERCOL#0) ← (const byte) LIGHT_BLUE#0 [ ] ( main:4 [ ] ) - to:main::@4 -rotate: scope:[rotate] from main::@15 main::@16 main::@6 - [27] (signed byte) rotate::z#3 ← phi( main::@15/(byte/signed byte/word/signed word/dword/signed dword) 0 main::@16/(byte/signed byte/word/signed word/dword/signed dword) 0 main::@6/(byte/signed byte/word/signed word/dword/signed dword) 63 ) [ rotate::x#3 rotate::y#3 rotate::z#3 ] ( main:4::rotate:12 [ rotate::x#3 rotate::y#3 rotate::z#3 ] main:4::rotate:17 [ rotate::x#3 rotate::y#3 rotate::z#3 ] main:4::rotate:22 [ rotate::x#3 rotate::y#3 rotate::z#3 ] ) - [27] (signed byte) rotate::y#3 ← phi( main::@15/(byte/signed byte/word/signed word/dword/signed dword) 63 main::@16/(byte/signed byte/word/signed word/dword/signed dword) 0 main::@6/(byte/signed byte/word/signed word/dword/signed dword) 0 ) [ rotate::x#3 rotate::y#3 rotate::z#3 ] ( main:4::rotate:12 [ rotate::x#3 rotate::y#3 rotate::z#3 ] main:4::rotate:17 [ rotate::x#3 rotate::y#3 rotate::z#3 ] main:4::rotate:22 [ rotate::x#3 rotate::y#3 rotate::z#3 ] ) - [27] (signed byte) rotate::x#3 ← phi( main::@15/(byte/signed byte/word/signed word/dword/signed dword) 0 main::@16/(byte/signed byte/word/signed word/dword/signed dword) 63 main::@6/(byte/signed byte/word/signed word/dword/signed dword) 0 ) [ rotate::x#3 rotate::y#3 rotate::z#3 ] ( main:4::rotate:12 [ rotate::x#3 rotate::y#3 rotate::z#3 ] main:4::rotate:17 [ rotate::x#3 rotate::y#3 rotate::z#3 ] main:4::rotate:22 [ rotate::x#3 rotate::y#3 rotate::z#3 ] ) - [28] *((const signed byte*) xr#0) ← (signed byte) rotate::x#3 [ rotate::y#3 rotate::z#3 ] ( main:4::rotate:12 [ rotate::y#3 rotate::z#3 ] main:4::rotate:17 [ rotate::y#3 rotate::z#3 ] main:4::rotate:22 [ rotate::y#3 rotate::z#3 ] ) - [29] *((const signed byte*) yr#0) ← (signed byte) rotate::y#3 [ rotate::z#3 ] ( main:4::rotate:12 [ rotate::z#3 ] main:4::rotate:17 [ rotate::z#3 ] main:4::rotate:22 [ rotate::z#3 ] ) - [30] *((const signed byte*) zr#0) ← (signed byte) rotate::z#3 [ ] ( main:4::rotate:12 [ ] main:4::rotate:17 [ ] main:4::rotate:22 [ ] ) - asm { clc ldxzr lda#$80 C1: adcmulf_sqr1,x C2: sbcmulf_sqr2,x staC3+1 lda#$80 F1: adcmulf_sqr1,x F2: sbcmulf_sqr2,x staF3+1 lda#$80 I1: adcmulf_sqr1,x I2: sbcmulf_sqr2,x staI3+1 ldxxr ldyyr C3: lda#0 A1: adcmulf_sqr1,x A2: sbcmulf_sqr2,x B1: adcmulf_sqr1,y B2: sbcmulf_sqr2,y staxr F3: lda#0 D1: adcmulf_sqr1,x D2: sbcmulf_sqr2,x E1: adcmulf_sqr1,y E2: sbcmulf_sqr2,y stayr I3: lda#0 G1: adcmulf_sqr1,x G2: sbcmulf_sqr2,x H1: adcmulf_sqr1,y H2: sbcmulf_sqr2,y stazr } +main::@15: scope:[main] from main::@20 + [39] *((const byte*) BORDERCOL#0) ← (const byte) LIGHT_BLUE#0 [ main::sx#12 main::sy#1 main::sz#1 ] ( main:5 [ main::sx#12 main::sy#1 main::sz#1 ] ) + to:main::@1 +rotate: scope:[rotate] from main::@8 + [40] *((const signed byte*) xr#0) ← (signed byte) rotate::x#0 [ rotate::y#0 rotate::z#0 ] ( main:5::rotate:29 [ main::sx#12 main::sy#1 main::sz#1 main::i#2 rotate::y#0 rotate::z#0 ] ) + [41] *((const signed byte*) yr#0) ← (signed byte) rotate::y#0 [ rotate::z#0 ] ( main:5::rotate:29 [ main::sx#12 main::sy#1 main::sz#1 main::i#2 rotate::z#0 ] ) + [42] *((const signed byte*) zr#0) ← (signed byte) rotate::z#0 [ ] ( main:5::rotate:29 [ main::sx#12 main::sy#1 main::sz#1 main::i#2 ] ) + asm { clc ldxzr lda#$0 C1: adcmulf_sqr1,x C2: sbcmulf_sqr2,x staC3+1 lda#0 F1: adcmulf_sqr1,x F2: sbcmulf_sqr2,x staF3+1 lda#0 I1: adcmulf_sqr1,x I2: sbcmulf_sqr2,x staI3+1 ldxxr ldyyr C3: lda#0 A1: adcmulf_sqr1,x A2: sbcmulf_sqr2,x B1: adcmulf_sqr1,y B2: sbcmulf_sqr2,y staxr F3: lda#0 D1: adcmulf_sqr1,x D2: sbcmulf_sqr2,x E1: adcmulf_sqr1,y E2: sbcmulf_sqr2,y stayr I3: lda#0 G1: adcmulf_sqr1,x G2: sbcmulf_sqr2,x H1: adcmulf_sqr1,y H2: sbcmulf_sqr2,y stazr } to:rotate::@return rotate::@return: scope:[rotate] from rotate - [32] return [ ] ( main:4::rotate:12 [ ] main:4::rotate:17 [ ] main:4::rotate:22 [ ] ) + [44] return [ ] ( main:5::rotate:29 [ main::sx#12 main::sy#1 main::sz#1 main::i#2 ] ) to:@return -prepare_matrix: scope:[prepare_matrix] from main::@13 - [33] (signed byte~) prepare_matrix::$10 ← *((const signed byte*) COSH#0+(const signed byte) prepare_matrix::t1#0) + *((const signed byte*) COSH#0+(const signed byte) prepare_matrix::t2#0) [ prepare_matrix::$10 ] ( main:4::prepare_matrix:9 [ prepare_matrix::$10 ] ) - [34] *((const signed byte[9]) rotation_matrix#0) ← (signed byte~) prepare_matrix::$10 [ ] ( main:4::prepare_matrix:9 [ ] ) - [35] (signed byte~) prepare_matrix::$11 ← *((const signed byte*) SINH#0+(const signed byte) prepare_matrix::t1#0) - *((const signed byte*) SINH#0+(const signed byte) prepare_matrix::t2#0) [ prepare_matrix::$11 ] ( main:4::prepare_matrix:9 [ prepare_matrix::$11 ] ) - [36] *((const signed byte[9]) rotation_matrix#0+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (signed byte~) prepare_matrix::$11 [ ] ( main:4::prepare_matrix:9 [ ] ) - [37] (signed byte~) prepare_matrix::$12 ← *((const signed byte*) SINH#0+(const signed byte) prepare_matrix::sy#0) + *((const signed byte*) SINH#0+(const signed byte) prepare_matrix::sy#0) [ prepare_matrix::$12 ] ( main:4::prepare_matrix:9 [ prepare_matrix::$12 ] ) - [38] *((const signed byte[9]) rotation_matrix#0+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (signed byte~) prepare_matrix::$12 [ ] ( main:4::prepare_matrix:9 [ ] ) - [39] (signed byte~) prepare_matrix::$13 ← *((const signed byte*) SINH#0+(const signed byte) prepare_matrix::t3#0) - *((const signed byte*) SINH#0+(const signed byte) prepare_matrix::t4#0) [ prepare_matrix::$13 ] ( main:4::prepare_matrix:9 [ prepare_matrix::$13 ] ) - [40] (signed byte~) prepare_matrix::$14 ← (signed byte~) prepare_matrix::$13 + *((const signed byte*) COSQ#0+(const signed byte) prepare_matrix::t6#0) [ prepare_matrix::$14 ] ( main:4::prepare_matrix:9 [ prepare_matrix::$14 ] ) - [41] (signed byte~) prepare_matrix::$15 ← (signed byte~) prepare_matrix::$14 - *((const signed byte*) COSQ#0+(const signed byte) prepare_matrix::t5#0) [ prepare_matrix::$15 ] ( main:4::prepare_matrix:9 [ prepare_matrix::$15 ] ) - [42] (signed byte~) prepare_matrix::$16 ← (signed byte~) prepare_matrix::$15 + *((const signed byte*) COSQ#0+(const signed byte) prepare_matrix::t8#0) [ prepare_matrix::$16 ] ( main:4::prepare_matrix:9 [ prepare_matrix::$16 ] ) - [43] (signed byte~) prepare_matrix::$17 ← (signed byte~) prepare_matrix::$16 - *((const signed byte*) COSQ#0+(const signed byte) prepare_matrix::t7#0) [ prepare_matrix::$17 ] ( main:4::prepare_matrix:9 [ prepare_matrix::$17 ] ) - [44] *((const signed byte[9]) rotation_matrix#0+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (signed byte~) prepare_matrix::$17 [ ] ( main:4::prepare_matrix:9 [ ] ) - [45] (signed byte~) prepare_matrix::$18 ← *((const signed byte*) COSH#0+(const signed byte) prepare_matrix::t3#0) + *((const signed byte*) COSH#0+(const signed byte) prepare_matrix::t4#0) [ prepare_matrix::$18 ] ( main:4::prepare_matrix:9 [ prepare_matrix::$18 ] ) - [46] (signed byte~) prepare_matrix::$19 ← (signed byte~) prepare_matrix::$18 + *((const signed byte*) SINQ#0+(const signed byte) prepare_matrix::t5#0) [ prepare_matrix::$19 ] ( main:4::prepare_matrix:9 [ prepare_matrix::$19 ] ) - [47] (signed byte~) prepare_matrix::$20 ← (signed byte~) prepare_matrix::$19 - *((const signed byte*) SINQ#0+(const signed byte) prepare_matrix::t6#0) [ prepare_matrix::$20 ] ( main:4::prepare_matrix:9 [ prepare_matrix::$20 ] ) - [48] (signed byte~) prepare_matrix::$21 ← (signed byte~) prepare_matrix::$20 - *((const signed byte*) SINQ#0+(const signed byte) prepare_matrix::t7#0) [ prepare_matrix::$21 ] ( main:4::prepare_matrix:9 [ prepare_matrix::$21 ] ) - [49] (signed byte~) prepare_matrix::$22 ← (signed byte~) prepare_matrix::$21 - *((const signed byte*) SINQ#0+(const signed byte) prepare_matrix::t8#0) [ prepare_matrix::$22 ] ( main:4::prepare_matrix:9 [ prepare_matrix::$22 ] ) - [50] *((const signed byte[9]) rotation_matrix#0+(byte/signed byte/word/signed word/dword/signed dword) 4) ← (signed byte~) prepare_matrix::$22 [ ] ( main:4::prepare_matrix:9 [ ] ) - [51] (signed byte~) prepare_matrix::$23 ← *((const signed byte*) SINH#0+(const signed byte) prepare_matrix::t9#0) - *((const signed byte*) SINH#0+(const signed byte) prepare_matrix::t10#0) [ prepare_matrix::$23 ] ( main:4::prepare_matrix:9 [ prepare_matrix::$23 ] ) - [52] *((const signed byte[9]) rotation_matrix#0+(byte/signed byte/word/signed word/dword/signed dword) 5) ← (signed byte~) prepare_matrix::$23 [ ] ( main:4::prepare_matrix:9 [ ] ) - [53] (signed byte~) prepare_matrix::$24 ← *((const signed byte*) COSH#0+(const signed byte) prepare_matrix::t4#0) - *((const signed byte*) COSH#0+(const signed byte) prepare_matrix::t3#0) [ prepare_matrix::$24 ] ( main:4::prepare_matrix:9 [ prepare_matrix::$24 ] ) - [54] (signed byte~) prepare_matrix::$25 ← (signed byte~) prepare_matrix::$24 + *((const signed byte*) SINQ#0+(const signed byte) prepare_matrix::t6#0) [ prepare_matrix::$25 ] ( main:4::prepare_matrix:9 [ prepare_matrix::$25 ] ) - [55] (signed byte~) prepare_matrix::$26 ← (signed byte~) prepare_matrix::$25 - *((const signed byte*) SINQ#0+(const signed byte) prepare_matrix::t5#0) [ prepare_matrix::$26 ] ( main:4::prepare_matrix:9 [ prepare_matrix::$26 ] ) - [56] (signed byte~) prepare_matrix::$27 ← (signed byte~) prepare_matrix::$26 - *((const signed byte*) SINQ#0+(const signed byte) prepare_matrix::t8#0) [ prepare_matrix::$27 ] ( main:4::prepare_matrix:9 [ prepare_matrix::$27 ] ) - [57] (signed byte~) prepare_matrix::$28 ← (signed byte~) prepare_matrix::$27 - *((const signed byte*) SINQ#0+(const signed byte) prepare_matrix::t7#0) [ prepare_matrix::$28 ] ( main:4::prepare_matrix:9 [ prepare_matrix::$28 ] ) - [58] *((const signed byte[9]) rotation_matrix#0+(byte/signed byte/word/signed word/dword/signed dword) 6) ← (signed byte~) prepare_matrix::$28 [ ] ( main:4::prepare_matrix:9 [ ] ) - [59] (signed byte~) prepare_matrix::$29 ← *((const signed byte*) SINH#0+(const signed byte) prepare_matrix::t3#0) + *((const signed byte*) SINH#0+(const signed byte) prepare_matrix::t4#0) [ prepare_matrix::$29 ] ( main:4::prepare_matrix:9 [ prepare_matrix::$29 ] ) - [60] (signed byte~) prepare_matrix::$30 ← (signed byte~) prepare_matrix::$29 + *((const signed byte*) COSQ#0+(const signed byte) prepare_matrix::t6#0) [ prepare_matrix::$30 ] ( main:4::prepare_matrix:9 [ prepare_matrix::$30 ] ) - [61] (signed byte~) prepare_matrix::$31 ← (signed byte~) prepare_matrix::$30 - *((const signed byte*) COSQ#0+(const signed byte) prepare_matrix::t5#0) [ prepare_matrix::$31 ] ( main:4::prepare_matrix:9 [ prepare_matrix::$31 ] ) - [62] (signed byte~) prepare_matrix::$32 ← (signed byte~) prepare_matrix::$31 + *((const signed byte*) COSQ#0+(const signed byte) prepare_matrix::t7#0) [ prepare_matrix::$32 ] ( main:4::prepare_matrix:9 [ prepare_matrix::$32 ] ) - [63] (signed byte~) prepare_matrix::$33 ← (signed byte~) prepare_matrix::$32 - *((const signed byte*) COSQ#0+(const signed byte) prepare_matrix::t8#0) [ prepare_matrix::$33 ] ( main:4::prepare_matrix:9 [ prepare_matrix::$33 ] ) - [64] *((const signed byte[9]) rotation_matrix#0+(byte/signed byte/word/signed word/dword/signed dword) 7) ← (signed byte~) prepare_matrix::$33 [ ] ( main:4::prepare_matrix:9 [ ] ) - [65] (signed byte~) prepare_matrix::$34 ← *((const signed byte*) COSH#0+(const signed byte) prepare_matrix::t9#0) + *((const signed byte*) COSH#0+(const signed byte) prepare_matrix::t10#0) [ prepare_matrix::$34 ] ( main:4::prepare_matrix:9 [ prepare_matrix::$34 ] ) - [66] *((const signed byte[9]) rotation_matrix#0+(byte/signed byte/word/signed word/dword/signed dword) 8) ← (signed byte~) prepare_matrix::$34 [ ] ( main:4::prepare_matrix:9 [ ] ) +prepare_matrix: scope:[prepare_matrix] from main::@6 + [45] (signed byte) prepare_matrix::t1#0 ← (signed byte) prepare_matrix::sy#0 - (signed byte) prepare_matrix::sz#0 [ prepare_matrix::sx#0 prepare_matrix::sy#0 prepare_matrix::sz#0 prepare_matrix::t1#0 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::sx#0 prepare_matrix::sy#0 prepare_matrix::sz#0 prepare_matrix::t1#0 ] ) + [46] (signed byte) prepare_matrix::t2#0 ← (signed byte) prepare_matrix::sy#0 + (signed byte) prepare_matrix::sz#0 [ prepare_matrix::sx#0 prepare_matrix::sy#0 prepare_matrix::sz#0 prepare_matrix::t1#0 prepare_matrix::t2#0 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::sx#0 prepare_matrix::sy#0 prepare_matrix::sz#0 prepare_matrix::t1#0 prepare_matrix::t2#0 ] ) + [47] (signed byte) prepare_matrix::t3#0 ← (signed byte) prepare_matrix::sx#0 + (signed byte) prepare_matrix::sz#0 [ prepare_matrix::sx#0 prepare_matrix::sy#0 prepare_matrix::sz#0 prepare_matrix::t1#0 prepare_matrix::t2#0 prepare_matrix::t3#0 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::sx#0 prepare_matrix::sy#0 prepare_matrix::sz#0 prepare_matrix::t1#0 prepare_matrix::t2#0 prepare_matrix::t3#0 ] ) + [48] (signed byte) prepare_matrix::t4#0 ← (signed byte) prepare_matrix::sx#0 - (signed byte) prepare_matrix::sz#0 [ prepare_matrix::sx#0 prepare_matrix::sy#0 prepare_matrix::t1#0 prepare_matrix::t2#0 prepare_matrix::t3#0 prepare_matrix::t4#0 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::sx#0 prepare_matrix::sy#0 prepare_matrix::t1#0 prepare_matrix::t2#0 prepare_matrix::t3#0 prepare_matrix::t4#0 ] ) + [49] (signed byte) prepare_matrix::t5#0 ← (signed byte) prepare_matrix::sx#0 + (signed byte) prepare_matrix::t2#0 [ prepare_matrix::sx#0 prepare_matrix::sy#0 prepare_matrix::t1#0 prepare_matrix::t2#0 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::sx#0 prepare_matrix::sy#0 prepare_matrix::t1#0 prepare_matrix::t2#0 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 ] ) + [50] (signed byte) prepare_matrix::t6#0 ← (signed byte) prepare_matrix::sx#0 - (signed byte) prepare_matrix::t1#0 [ prepare_matrix::sx#0 prepare_matrix::sy#0 prepare_matrix::t1#0 prepare_matrix::t2#0 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::sx#0 prepare_matrix::sy#0 prepare_matrix::t1#0 prepare_matrix::t2#0 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 ] ) + [51] (signed byte) prepare_matrix::t7#0 ← (signed byte) prepare_matrix::sx#0 + (signed byte) prepare_matrix::t1#0 [ prepare_matrix::sx#0 prepare_matrix::sy#0 prepare_matrix::t1#0 prepare_matrix::t2#0 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::sx#0 prepare_matrix::sy#0 prepare_matrix::t1#0 prepare_matrix::t2#0 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 ] ) + [52] (signed byte) prepare_matrix::t8#0 ← (signed byte) prepare_matrix::t2#0 - (signed byte) prepare_matrix::sx#0 [ prepare_matrix::sx#0 prepare_matrix::sy#0 prepare_matrix::t1#0 prepare_matrix::t2#0 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::sx#0 prepare_matrix::sy#0 prepare_matrix::t1#0 prepare_matrix::t2#0 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 ] ) + [53] (signed byte) prepare_matrix::t9#0 ← (signed byte) prepare_matrix::sy#0 - (signed byte) prepare_matrix::sx#0 [ prepare_matrix::sx#0 prepare_matrix::sy#0 prepare_matrix::t1#0 prepare_matrix::t2#0 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::sx#0 prepare_matrix::sy#0 prepare_matrix::t1#0 prepare_matrix::t2#0 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 ] ) + [54] (signed byte) prepare_matrix::t10#0 ← (signed byte) prepare_matrix::sy#0 + (signed byte) prepare_matrix::sx#0 [ prepare_matrix::sy#0 prepare_matrix::t1#0 prepare_matrix::t2#0 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::sy#0 prepare_matrix::t1#0 prepare_matrix::t2#0 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 ] ) + [55] (signed byte~) prepare_matrix::$10 ← *((const signed byte*) COSH#0 + (signed byte) prepare_matrix::t1#0) + *((const signed byte*) COSH#0 + (signed byte) prepare_matrix::t2#0) [ prepare_matrix::sy#0 prepare_matrix::t1#0 prepare_matrix::t2#0 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$10 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::sy#0 prepare_matrix::t1#0 prepare_matrix::t2#0 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$10 ] ) + [56] *((const signed byte[9]) rotation_matrix#0) ← (signed byte~) prepare_matrix::$10 [ prepare_matrix::sy#0 prepare_matrix::t1#0 prepare_matrix::t2#0 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::sy#0 prepare_matrix::t1#0 prepare_matrix::t2#0 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 ] ) + [57] (signed byte~) prepare_matrix::$11 ← *((const signed byte*) SINH#0 + (signed byte) prepare_matrix::t1#0) - *((const signed byte*) SINH#0 + (signed byte) prepare_matrix::t2#0) [ prepare_matrix::sy#0 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$11 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::sy#0 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$11 ] ) + [58] *((const signed byte[9]) rotation_matrix#0+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (signed byte~) prepare_matrix::$11 [ prepare_matrix::sy#0 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::sy#0 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 ] ) + [59] (signed byte~) prepare_matrix::$12 ← *((const signed byte*) SINH#0 + (signed byte) prepare_matrix::sy#0) + *((const signed byte*) SINH#0 + (signed byte) prepare_matrix::sy#0) [ prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$12 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$12 ] ) + [60] *((const signed byte[9]) rotation_matrix#0+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (signed byte~) prepare_matrix::$12 [ prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 ] ) + [61] (signed byte~) prepare_matrix::$13 ← *((const signed byte*) SINH#0 + (signed byte) prepare_matrix::t3#0) - *((const signed byte*) SINH#0 + (signed byte) prepare_matrix::t4#0) [ prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$13 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$13 ] ) + [62] (signed byte~) prepare_matrix::$14 ← (signed byte~) prepare_matrix::$13 + *((const signed byte*) COSQ#0 + (signed byte) prepare_matrix::t6#0) [ prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$14 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$14 ] ) + [63] (signed byte~) prepare_matrix::$15 ← (signed byte~) prepare_matrix::$14 - *((const signed byte*) COSQ#0 + (signed byte) prepare_matrix::t5#0) [ prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$15 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$15 ] ) + [64] (signed byte~) prepare_matrix::$16 ← (signed byte~) prepare_matrix::$15 + *((const signed byte*) COSQ#0 + (signed byte) prepare_matrix::t8#0) [ prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$16 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$16 ] ) + [65] (signed byte~) prepare_matrix::$17 ← (signed byte~) prepare_matrix::$16 - *((const signed byte*) COSQ#0 + (signed byte) prepare_matrix::t7#0) [ prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$17 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$17 ] ) + [66] *((const signed byte[9]) rotation_matrix#0+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (signed byte~) prepare_matrix::$17 [ prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 ] ) + [67] (signed byte~) prepare_matrix::$18 ← *((const signed byte*) COSH#0 + (signed byte) prepare_matrix::t3#0) + *((const signed byte*) COSH#0 + (signed byte) prepare_matrix::t4#0) [ prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$18 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$18 ] ) + [68] (signed byte~) prepare_matrix::$19 ← (signed byte~) prepare_matrix::$18 + *((const signed byte*) SINQ#0 + (signed byte) prepare_matrix::t5#0) [ prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$19 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$19 ] ) + [69] (signed byte~) prepare_matrix::$20 ← (signed byte~) prepare_matrix::$19 - *((const signed byte*) SINQ#0 + (signed byte) prepare_matrix::t6#0) [ prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$20 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$20 ] ) + [70] (signed byte~) prepare_matrix::$21 ← (signed byte~) prepare_matrix::$20 - *((const signed byte*) SINQ#0 + (signed byte) prepare_matrix::t7#0) [ prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$21 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$21 ] ) + [71] (signed byte~) prepare_matrix::$22 ← (signed byte~) prepare_matrix::$21 - *((const signed byte*) SINQ#0 + (signed byte) prepare_matrix::t8#0) [ prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$22 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$22 ] ) + [72] *((const signed byte[9]) rotation_matrix#0+(byte/signed byte/word/signed word/dword/signed dword) 4) ← (signed byte~) prepare_matrix::$22 [ prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 ] ) + [73] (signed byte~) prepare_matrix::$23 ← *((const signed byte*) SINH#0 + (signed byte) prepare_matrix::t9#0) - *((const signed byte*) SINH#0 + (signed byte) prepare_matrix::t10#0) [ prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$23 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$23 ] ) + [74] *((const signed byte[9]) rotation_matrix#0+(byte/signed byte/word/signed word/dword/signed dword) 5) ← (signed byte~) prepare_matrix::$23 [ prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 ] ) + [75] (signed byte~) prepare_matrix::$24 ← *((const signed byte*) COSH#0 + (signed byte) prepare_matrix::t4#0) - *((const signed byte*) COSH#0 + (signed byte) prepare_matrix::t3#0) [ prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$24 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$24 ] ) + [76] (signed byte~) prepare_matrix::$25 ← (signed byte~) prepare_matrix::$24 + *((const signed byte*) SINQ#0 + (signed byte) prepare_matrix::t6#0) [ prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$25 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$25 ] ) + [77] (signed byte~) prepare_matrix::$26 ← (signed byte~) prepare_matrix::$25 - *((const signed byte*) SINQ#0 + (signed byte) prepare_matrix::t5#0) [ prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$26 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$26 ] ) + [78] (signed byte~) prepare_matrix::$27 ← (signed byte~) prepare_matrix::$26 - *((const signed byte*) SINQ#0 + (signed byte) prepare_matrix::t8#0) [ prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$27 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$27 ] ) + [79] (signed byte~) prepare_matrix::$28 ← (signed byte~) prepare_matrix::$27 - *((const signed byte*) SINQ#0 + (signed byte) prepare_matrix::t7#0) [ prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$28 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$28 ] ) + [80] *((const signed byte[9]) rotation_matrix#0+(byte/signed byte/word/signed word/dword/signed dword) 6) ← (signed byte~) prepare_matrix::$28 [ prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 ] ) + [81] (signed byte~) prepare_matrix::$29 ← *((const signed byte*) SINH#0 + (signed byte) prepare_matrix::t3#0) + *((const signed byte*) SINH#0 + (signed byte) prepare_matrix::t4#0) [ prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$29 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$29 ] ) + [82] (signed byte~) prepare_matrix::$30 ← (signed byte~) prepare_matrix::$29 + *((const signed byte*) COSQ#0 + (signed byte) prepare_matrix::t6#0) [ prepare_matrix::t5#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$30 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::t5#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$30 ] ) + [83] (signed byte~) prepare_matrix::$31 ← (signed byte~) prepare_matrix::$30 - *((const signed byte*) COSQ#0 + (signed byte) prepare_matrix::t5#0) [ prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$31 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$31 ] ) + [84] (signed byte~) prepare_matrix::$32 ← (signed byte~) prepare_matrix::$31 + *((const signed byte*) COSQ#0 + (signed byte) prepare_matrix::t7#0) [ prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$32 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$32 ] ) + [85] (signed byte~) prepare_matrix::$33 ← (signed byte~) prepare_matrix::$32 - *((const signed byte*) COSQ#0 + (signed byte) prepare_matrix::t8#0) [ prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$33 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$33 ] ) + [86] *((const signed byte[9]) rotation_matrix#0+(byte/signed byte/word/signed word/dword/signed dword) 7) ← (signed byte~) prepare_matrix::$33 [ prepare_matrix::t9#0 prepare_matrix::t10#0 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::t9#0 prepare_matrix::t10#0 ] ) + [87] (signed byte~) prepare_matrix::$34 ← *((const signed byte*) COSH#0 + (signed byte) prepare_matrix::t9#0) + *((const signed byte*) COSH#0 + (signed byte) prepare_matrix::t10#0) [ prepare_matrix::$34 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::$34 ] ) + [88] *((const signed byte[9]) rotation_matrix#0+(byte/signed byte/word/signed word/dword/signed dword) 8) ← (signed byte~) prepare_matrix::$34 [ ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 ] ) asm { ldarotation_matrix+0 starotate.A1+1 eor#$ff starotate.A2+1 ldarotation_matrix+1 starotate.B1+1 eor#$ff starotate.B2+1 ldarotation_matrix+2 starotate.C1+1 eor#$ff starotate.C2+1 ldarotation_matrix+3 starotate.D1+1 eor#$ff starotate.D2+1 ldarotation_matrix+4 starotate.E1+1 eor#$ff starotate.E2+1 ldarotation_matrix+5 starotate.F1+1 eor#$ff starotate.F2+1 ldarotation_matrix+6 starotate.G1+1 eor#$ff starotate.G2+1 ldarotation_matrix+7 starotate.H1+1 eor#$ff starotate.H2+1 ldarotation_matrix+8 starotate.I1+1 eor#$ff starotate.I2+1 } to:prepare_matrix::@return prepare_matrix::@return: scope:[prepare_matrix] from prepare_matrix - [68] return [ ] ( main:4::prepare_matrix:9 [ ] ) + [90] return [ ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 ] ) to:@return -mulf_init: scope:[mulf_init] from main - [69] phi() [ ] ( main:4::mulf_init:7 [ ] ) +mulf_init: scope:[mulf_init] from main::@17 + [91] phi() [ ] ( main:5::mulf_init:10 [ ] ) to:mulf_init::@1 mulf_init::@1: scope:[mulf_init] from mulf_init mulf_init::@1 - [70] (signed word) mulf_init::add#2 ← phi( mulf_init/(byte/signed byte/word/signed word/dword/signed dword) 1 mulf_init::@1/(signed word) mulf_init::add#1 ) [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 ] ( main:4::mulf_init:7 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 ] ) - [70] (byte) mulf_init::i#2 ← phi( mulf_init/(byte/signed byte/word/signed word/dword/signed dword) 0 mulf_init::@1/(byte) mulf_init::i#1 ) [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 ] ( main:4::mulf_init:7 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 ] ) - [70] (signed word) mulf_init::sqr1#2 ← phi( mulf_init/(byte/signed byte/word/signed word/dword/signed dword) 0 mulf_init::@1/(signed word) mulf_init::sqr1#1 ) [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 ] ( main:4::mulf_init:7 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 ] ) - [71] (byte~) mulf_init::$0 ← > (signed word) mulf_init::sqr1#2 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 mulf_init::$0 ] ( main:4::mulf_init:7 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 mulf_init::$0 ] ) - [72] *((const byte[512]) mulf_sqr1#0 + (byte) mulf_init::i#2) ← (byte~) mulf_init::$0 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 ] ( main:4::mulf_init:7 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 ] ) - [73] (byte~) mulf_init::$1 ← - (byte) mulf_init::i#2 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 mulf_init::$1 ] ( main:4::mulf_init:7 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 mulf_init::$1 ] ) - [74] (byte~) mulf_init::$2 ← > (signed word) mulf_init::sqr1#2 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 mulf_init::$1 mulf_init::$2 ] ( main:4::mulf_init:7 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 mulf_init::$1 mulf_init::$2 ] ) - [75] *((const byte[512]) mulf_sqr1#0 + (byte~) mulf_init::$1) ← (byte~) mulf_init::$2 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 ] ( main:4::mulf_init:7 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 ] ) - [76] (byte~) mulf_init::$4 ← > (signed word) mulf_init::sqr1#2 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 mulf_init::$4 ] ( main:4::mulf_init:7 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 mulf_init::$4 ] ) - [77] *((const byte[512]) mulf_sqr2#0+(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) mulf_init::i#2) ← (byte~) mulf_init::$4 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 ] ( main:4::mulf_init:7 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 ] ) - [78] (byte/signed word/word/dword/signed dword~) mulf_init::$5 ← (byte/signed byte/word/signed word/dword/signed dword) 1 - (byte) mulf_init::i#2 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 mulf_init::$5 ] ( main:4::mulf_init:7 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 mulf_init::$5 ] ) - [79] (byte~) mulf_init::$6 ← > (signed word) mulf_init::sqr1#2 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 mulf_init::$5 mulf_init::$6 ] ( main:4::mulf_init:7 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 mulf_init::$5 mulf_init::$6 ] ) - [80] *((const byte[512]) mulf_sqr2#0 + (byte/signed word/word/dword/signed dword~) mulf_init::$5) ← (byte~) mulf_init::$6 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 ] ( main:4::mulf_init:7 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 ] ) - [81] (signed word) mulf_init::sqr1#1 ← (signed word) mulf_init::sqr1#2 + (signed word) mulf_init::add#2 [ mulf_init::i#2 mulf_init::add#2 mulf_init::sqr1#1 ] ( main:4::mulf_init:7 [ mulf_init::i#2 mulf_init::add#2 mulf_init::sqr1#1 ] ) - [82] (signed word) mulf_init::add#1 ← (signed word) mulf_init::add#2 + (byte/signed byte/word/signed word/dword/signed dword) 2 [ mulf_init::i#2 mulf_init::sqr1#1 mulf_init::add#1 ] ( main:4::mulf_init:7 [ mulf_init::i#2 mulf_init::sqr1#1 mulf_init::add#1 ] ) - [83] (byte) mulf_init::i#1 ← ++ (byte) mulf_init::i#2 [ mulf_init::sqr1#1 mulf_init::i#1 mulf_init::add#1 ] ( main:4::mulf_init:7 [ mulf_init::sqr1#1 mulf_init::i#1 mulf_init::add#1 ] ) - [84] if((byte) mulf_init::i#1!=(byte/word/signed word/dword/signed dword) 129) goto mulf_init::@1 [ mulf_init::sqr1#1 mulf_init::i#1 mulf_init::add#1 ] ( main:4::mulf_init:7 [ mulf_init::sqr1#1 mulf_init::i#1 mulf_init::add#1 ] ) + [92] (signed word) mulf_init::add#2 ← phi( mulf_init/(byte/signed byte/word/signed word/dword/signed dword) 1 mulf_init::@1/(signed word) mulf_init::add#1 ) [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 ] ( main:5::mulf_init:10 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 ] ) + [92] (byte) mulf_init::i#2 ← phi( mulf_init/(byte/signed byte/word/signed word/dword/signed dword) 0 mulf_init::@1/(byte) mulf_init::i#1 ) [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 ] ( main:5::mulf_init:10 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 ] ) + [92] (signed word) mulf_init::sqr1#2 ← phi( mulf_init/(byte/signed byte/word/signed word/dword/signed dword) 0 mulf_init::@1/(signed word) mulf_init::sqr1#1 ) [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 ] ( main:5::mulf_init:10 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 ] ) + [93] (byte~) mulf_init::$0 ← > (signed word) mulf_init::sqr1#2 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 mulf_init::$0 ] ( main:5::mulf_init:10 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 mulf_init::$0 ] ) + [94] *((const byte[512]) mulf_sqr1#0 + (byte) mulf_init::i#2) ← (byte~) mulf_init::$0 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 ] ( main:5::mulf_init:10 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 ] ) + [95] (byte~) mulf_init::$2 ← > (signed word) mulf_init::sqr1#2 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 mulf_init::$2 ] ( main:5::mulf_init:10 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 mulf_init::$2 ] ) + [96] *((const byte[512]) mulf_sqr1#0+(word/signed word/dword/signed dword) 256 + (byte) mulf_init::i#2) ← (byte~) mulf_init::$2 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 ] ( main:5::mulf_init:10 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 ] ) + [97] (byte~) mulf_init::$3 ← - (byte) mulf_init::i#2 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 mulf_init::$3 ] ( main:5::mulf_init:10 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 mulf_init::$3 ] ) + [98] (byte~) mulf_init::$4 ← > (signed word) mulf_init::sqr1#2 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 mulf_init::$3 mulf_init::$4 ] ( main:5::mulf_init:10 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 mulf_init::$3 mulf_init::$4 ] ) + [99] *((const byte[512]) mulf_sqr1#0 + (byte~) mulf_init::$3) ← (byte~) mulf_init::$4 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 ] ( main:5::mulf_init:10 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 ] ) + [100] (byte~) mulf_init::$6 ← - (byte) mulf_init::i#2 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 mulf_init::$6 ] ( main:5::mulf_init:10 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 mulf_init::$6 ] ) + [101] (byte~) mulf_init::$7 ← > (signed word) mulf_init::sqr1#2 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 mulf_init::$6 mulf_init::$7 ] ( main:5::mulf_init:10 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 mulf_init::$6 mulf_init::$7 ] ) + [102] *((const byte[512]) mulf_sqr1#0+(word/signed word/dword/signed dword) 256 + (byte~) mulf_init::$6) ← (byte~) mulf_init::$7 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 ] ( main:5::mulf_init:10 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 ] ) + [103] (byte~) mulf_init::$9 ← > (signed word) mulf_init::sqr1#2 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 mulf_init::$9 ] ( main:5::mulf_init:10 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 mulf_init::$9 ] ) + [104] *((const byte[512]) mulf_sqr2#0+(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) mulf_init::i#2) ← (byte~) mulf_init::$9 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 ] ( main:5::mulf_init:10 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 ] ) + [105] (byte~) mulf_init::$12 ← > (signed word) mulf_init::sqr1#2 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 mulf_init::$12 ] ( main:5::mulf_init:10 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 mulf_init::$12 ] ) + [106] *((const byte[512]) mulf_sqr2#0+(word/signed word/dword/signed dword) 256+(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) mulf_init::i#2) ← (byte~) mulf_init::$12 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 ] ( main:5::mulf_init:10 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 ] ) + [107] (byte/signed word/word/dword/signed dword~) mulf_init::$13 ← (byte/signed byte/word/signed word/dword/signed dword) 1 - (byte) mulf_init::i#2 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 mulf_init::$13 ] ( main:5::mulf_init:10 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 mulf_init::$13 ] ) + [108] (byte~) mulf_init::$14 ← > (signed word) mulf_init::sqr1#2 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 mulf_init::$13 mulf_init::$14 ] ( main:5::mulf_init:10 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 mulf_init::$13 mulf_init::$14 ] ) + [109] *((const byte[512]) mulf_sqr2#0 + (byte/signed word/word/dword/signed dword~) mulf_init::$13) ← (byte~) mulf_init::$14 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 ] ( main:5::mulf_init:10 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 ] ) + [110] (byte/signed word/word/dword/signed dword~) mulf_init::$16 ← (byte/signed byte/word/signed word/dword/signed dword) 1 - (byte) mulf_init::i#2 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 mulf_init::$16 ] ( main:5::mulf_init:10 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 mulf_init::$16 ] ) + [111] (byte~) mulf_init::$17 ← > (signed word) mulf_init::sqr1#2 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 mulf_init::$16 mulf_init::$17 ] ( main:5::mulf_init:10 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 mulf_init::$16 mulf_init::$17 ] ) + [112] *((const byte[512]) mulf_sqr2#0+(word/signed word/dword/signed dword) 256 + (byte/signed word/word/dword/signed dword~) mulf_init::$16) ← (byte~) mulf_init::$17 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 ] ( main:5::mulf_init:10 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 ] ) + [113] (signed word) mulf_init::sqr1#1 ← (signed word) mulf_init::sqr1#2 + (signed word) mulf_init::add#2 [ mulf_init::i#2 mulf_init::add#2 mulf_init::sqr1#1 ] ( main:5::mulf_init:10 [ mulf_init::i#2 mulf_init::add#2 mulf_init::sqr1#1 ] ) + [114] (signed word) mulf_init::add#1 ← (signed word) mulf_init::add#2 + (byte/signed byte/word/signed word/dword/signed dword) 2 [ mulf_init::i#2 mulf_init::sqr1#1 mulf_init::add#1 ] ( main:5::mulf_init:10 [ mulf_init::i#2 mulf_init::sqr1#1 mulf_init::add#1 ] ) + [115] (byte) mulf_init::i#1 ← ++ (byte) mulf_init::i#2 [ mulf_init::sqr1#1 mulf_init::i#1 mulf_init::add#1 ] ( main:5::mulf_init:10 [ mulf_init::sqr1#1 mulf_init::i#1 mulf_init::add#1 ] ) + [116] if((byte) mulf_init::i#1!=(byte/word/signed word/dword/signed dword) 129) goto mulf_init::@1 [ mulf_init::sqr1#1 mulf_init::i#1 mulf_init::add#1 ] ( main:5::mulf_init:10 [ mulf_init::sqr1#1 mulf_init::i#1 mulf_init::add#1 ] ) to:mulf_init::@return mulf_init::@return: scope:[mulf_init] from mulf_init::@1 - [85] return [ ] ( main:4::mulf_init:7 [ ] ) + [117] return [ ] ( main:5::mulf_init:10 [ ] ) + to:@return +sprites_init: scope:[sprites_init] from main + [118] *((const byte*) SPRITES_ENABLE#0) ← (byte/word/signed word/dword/signed dword) 255 [ ] ( main:5::sprites_init:8 [ ] ) + to:sprites_init::@1 +sprites_init::@1: scope:[sprites_init] from sprites_init sprites_init::@1 + [119] (byte) sprites_init::i#2 ← phi( sprites_init/(byte/signed byte/word/signed word/dword/signed dword) 0 sprites_init::@1/(byte) sprites_init::i#1 ) [ sprites_init::i#2 ] ( main:5::sprites_init:8 [ sprites_init::i#2 ] ) + [120] *((const byte*) sprites_init::sprites_ptr#0 + (byte) sprites_init::i#2) ← ((byte))(const byte*) SPRITE#0/(byte/signed byte/word/signed word/dword/signed dword) 64 [ sprites_init::i#2 ] ( main:5::sprites_init:8 [ sprites_init::i#2 ] ) + [121] *((const byte*) SPRITES_COLS#0 + (byte) sprites_init::i#2) ← (const byte) GREEN#0 [ sprites_init::i#2 ] ( main:5::sprites_init:8 [ sprites_init::i#2 ] ) + [122] (byte) sprites_init::i#1 ← ++ (byte) sprites_init::i#2 [ sprites_init::i#1 ] ( main:5::sprites_init:8 [ sprites_init::i#1 ] ) + [123] if((byte) sprites_init::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 8) goto sprites_init::@1 [ sprites_init::i#1 ] ( main:5::sprites_init:8 [ sprites_init::i#1 ] ) + to:sprites_init::@return +sprites_init::@return: scope:[sprites_init] from sprites_init::@1 + [124] return [ ] ( main:5::sprites_init:8 [ ] ) to:@return @@ -942,28 +1396,60 @@ VARIABLE REGISTER WEIGHTS (byte*) BORDERCOL (signed byte*) COSH (signed byte*) COSQ +(byte) GREEN (byte) LIGHT_BLUE (byte*) RASTER +(byte*) SCREEN (signed byte*) SINH (signed byte*) SINQ +(byte*) SPRITE +(byte*) SPRITES_COLS +(byte*) SPRITES_ENABLE +(byte*) SPRITES_XPOS +(byte*) SPRITES_YPOS (void()) main() -(byte*) main::SCREEN +(byte/word/signed word/dword/signed dword~) main::$11 202.0 +(signed byte~) main::$12 101.0 +(byte/word/signed word/dword/signed dword~) main::$14 202.0 +(byte~) main::$4 22.0 +(signed byte~) main::$9 101.0 +(byte) main::i +(byte) main::i#1 151.5 +(byte) main::i#2 46.61538461538461 +(byte) main::i2 +(byte) main::i2#0 50.5 +(signed byte) main::sx +(signed byte) main::sx#1 22.0 +(signed byte) main::sx#12 1.9411764705882355 +(signed byte) main::sx#6 4.0 +(signed byte) main::sy +(signed byte) main::sy#1 1.5 +(signed byte) main::sy#5 4.714285714285714 +(signed byte) main::sz +(signed byte) main::sz#1 1.0476190476190477 +(signed byte) main::sz#5 4.125 (void()) mulf_init() (byte~) mulf_init::$0 22.0 -(byte~) mulf_init::$1 11.0 +(byte~) mulf_init::$12 22.0 +(byte/signed word/word/dword/signed dword~) mulf_init::$13 11.0 +(byte~) mulf_init::$14 22.0 +(byte/signed word/word/dword/signed dword~) mulf_init::$16 11.0 +(byte~) mulf_init::$17 22.0 (byte~) mulf_init::$2 22.0 +(byte~) mulf_init::$3 11.0 (byte~) mulf_init::$4 22.0 -(byte/signed word/word/dword/signed dword~) mulf_init::$5 11.0 -(byte~) mulf_init::$6 22.0 +(byte~) mulf_init::$6 11.0 +(byte~) mulf_init::$7 22.0 +(byte~) mulf_init::$9 22.0 (signed word) mulf_init::add (signed word) mulf_init::add#1 7.333333333333333 -(signed word) mulf_init::add#2 2.75 +(signed word) mulf_init::add#2 1.5 (byte) mulf_init::i (byte) mulf_init::i#1 16.5 -(byte) mulf_init::i#2 5.076923076923077 +(byte) mulf_init::i#2 4.782608695652174 (signed word) mulf_init::sqr1 (signed word) mulf_init::sqr1#1 5.5 -(signed word) mulf_init::sqr1#2 6.0 +(signed word) mulf_init::sqr1#2 5.238095238095238 (byte[512]) mulf_sqr1 (byte[512]) mulf_sqr2 (void()) prepare_matrix((signed byte) prepare_matrix::sx , (signed byte) prepare_matrix::sy , (signed byte) prepare_matrix::sz) @@ -993,37 +1479,82 @@ VARIABLE REGISTER WEIGHTS (signed byte~) prepare_matrix::$33 4.0 (signed byte~) prepare_matrix::$34 4.0 (signed byte) prepare_matrix::sx +(signed byte) prepare_matrix::sx#0 2.25 (signed byte) prepare_matrix::sy +(signed byte) prepare_matrix::sy#0 1.4375 (signed byte) prepare_matrix::sz +(signed byte) prepare_matrix::sz#0 4.75 (signed byte) prepare_matrix::t1 +(signed byte) prepare_matrix::t1#0 0.8333333333333333 (signed byte) prepare_matrix::t10 +(signed byte) prepare_matrix::t10#0 0.18181818181818182 (signed byte) prepare_matrix::t2 +(signed byte) prepare_matrix::t2#0 0.9090909090909092 (signed byte) prepare_matrix::t3 +(signed byte) prepare_matrix::t3#0 0.29411764705882354 (signed byte) prepare_matrix::t4 +(signed byte) prepare_matrix::t4#0 0.30303030303030304 (signed byte) prepare_matrix::t5 +(signed byte) prepare_matrix::t5#0 0.29411764705882354 (signed byte) prepare_matrix::t6 +(signed byte) prepare_matrix::t6#0 0.3125 (signed byte) prepare_matrix::t7 +(signed byte) prepare_matrix::t7#0 0.30303030303030304 (signed byte) prepare_matrix::t8 +(signed byte) prepare_matrix::t8#0 0.30303030303030304 (signed byte) prepare_matrix::t9 +(signed byte) prepare_matrix::t9#0 0.1764705882352941 (void()) rotate((signed byte) rotate::x , (signed byte) rotate::y , (signed byte) rotate::z) (signed byte) rotate::x -(signed byte) rotate::x#3 2.0 +(signed byte) rotate::x#0 34.33333333333333 (signed byte) rotate::y -(signed byte) rotate::y#3 1.0 +(signed byte) rotate::y#0 34.33333333333333 (signed byte) rotate::z -(signed byte) rotate::z#3 0.6666666666666666 +(signed byte) rotate::z#0 34.33333333333333 (signed byte[9]) rotation_matrix +(void()) sprites_init() +(byte) sprites_init::i +(byte) sprites_init::i#1 16.5 +(byte) sprites_init::i#2 14.666666666666666 +(byte*) sprites_init::sprites_ptr (signed byte*) xr +(signed byte[8]) xs (signed byte*) yr +(signed byte[8]) ys (signed byte*) zr +(signed byte[8]) zs Initial phi equivalence classes -[ rotate::x#3 ] -[ rotate::y#3 ] -[ rotate::z#3 ] +[ main::sx#6 main::sx#12 main::sx#1 ] +[ main::sy#5 main::sy#1 ] +[ main::sz#5 main::sz#1 ] +[ main::i#2 main::i#1 ] [ mulf_init::sqr1#2 mulf_init::sqr1#1 ] [ mulf_init::i#2 mulf_init::i#1 ] [ mulf_init::add#2 mulf_init::add#1 ] +[ sprites_init::i#2 sprites_init::i#1 ] +Added variable prepare_matrix::sx#0 to zero page equivalence class [ prepare_matrix::sx#0 ] +Added variable prepare_matrix::sy#0 to zero page equivalence class [ prepare_matrix::sy#0 ] +Added variable prepare_matrix::sz#0 to zero page equivalence class [ prepare_matrix::sz#0 ] +Added variable main::$4 to zero page equivalence class [ main::$4 ] +Added variable rotate::x#0 to zero page equivalence class [ rotate::x#0 ] +Added variable rotate::y#0 to zero page equivalence class [ rotate::y#0 ] +Added variable rotate::z#0 to zero page equivalence class [ rotate::z#0 ] +Added variable main::i2#0 to zero page equivalence class [ main::i2#0 ] +Added variable main::$9 to zero page equivalence class [ main::$9 ] +Added variable main::$11 to zero page equivalence class [ main::$11 ] +Added variable main::$12 to zero page equivalence class [ main::$12 ] +Added variable main::$14 to zero page equivalence class [ main::$14 ] +Added variable prepare_matrix::t1#0 to zero page equivalence class [ prepare_matrix::t1#0 ] +Added variable prepare_matrix::t2#0 to zero page equivalence class [ prepare_matrix::t2#0 ] +Added variable prepare_matrix::t3#0 to zero page equivalence class [ prepare_matrix::t3#0 ] +Added variable prepare_matrix::t4#0 to zero page equivalence class [ prepare_matrix::t4#0 ] +Added variable prepare_matrix::t5#0 to zero page equivalence class [ prepare_matrix::t5#0 ] +Added variable prepare_matrix::t6#0 to zero page equivalence class [ prepare_matrix::t6#0 ] +Added variable prepare_matrix::t7#0 to zero page equivalence class [ prepare_matrix::t7#0 ] +Added variable prepare_matrix::t8#0 to zero page equivalence class [ prepare_matrix::t8#0 ] +Added variable prepare_matrix::t9#0 to zero page equivalence class [ prepare_matrix::t9#0 ] +Added variable prepare_matrix::t10#0 to zero page equivalence class [ prepare_matrix::t10#0 ] Added variable prepare_matrix::$10 to zero page equivalence class [ prepare_matrix::$10 ] Added variable prepare_matrix::$11 to zero page equivalence class [ prepare_matrix::$11 ] Added variable prepare_matrix::$12 to zero page equivalence class [ prepare_matrix::$12 ] @@ -1050,18 +1581,48 @@ Added variable prepare_matrix::$32 to zero page equivalence class [ prepare_matr Added variable prepare_matrix::$33 to zero page equivalence class [ prepare_matrix::$33 ] Added variable prepare_matrix::$34 to zero page equivalence class [ prepare_matrix::$34 ] Added variable mulf_init::$0 to zero page equivalence class [ mulf_init::$0 ] -Added variable mulf_init::$1 to zero page equivalence class [ mulf_init::$1 ] Added variable mulf_init::$2 to zero page equivalence class [ mulf_init::$2 ] +Added variable mulf_init::$3 to zero page equivalence class [ mulf_init::$3 ] Added variable mulf_init::$4 to zero page equivalence class [ mulf_init::$4 ] -Added variable mulf_init::$5 to zero page equivalence class [ mulf_init::$5 ] Added variable mulf_init::$6 to zero page equivalence class [ mulf_init::$6 ] +Added variable mulf_init::$7 to zero page equivalence class [ mulf_init::$7 ] +Added variable mulf_init::$9 to zero page equivalence class [ mulf_init::$9 ] +Added variable mulf_init::$12 to zero page equivalence class [ mulf_init::$12 ] +Added variable mulf_init::$13 to zero page equivalence class [ mulf_init::$13 ] +Added variable mulf_init::$14 to zero page equivalence class [ mulf_init::$14 ] +Added variable mulf_init::$16 to zero page equivalence class [ mulf_init::$16 ] +Added variable mulf_init::$17 to zero page equivalence class [ mulf_init::$17 ] Complete equivalence classes -[ rotate::x#3 ] -[ rotate::y#3 ] -[ rotate::z#3 ] +[ main::sx#6 main::sx#12 main::sx#1 ] +[ main::sy#5 main::sy#1 ] +[ main::sz#5 main::sz#1 ] +[ main::i#2 main::i#1 ] [ mulf_init::sqr1#2 mulf_init::sqr1#1 ] [ mulf_init::i#2 mulf_init::i#1 ] [ mulf_init::add#2 mulf_init::add#1 ] +[ sprites_init::i#2 sprites_init::i#1 ] +[ prepare_matrix::sx#0 ] +[ prepare_matrix::sy#0 ] +[ prepare_matrix::sz#0 ] +[ main::$4 ] +[ rotate::x#0 ] +[ rotate::y#0 ] +[ rotate::z#0 ] +[ main::i2#0 ] +[ main::$9 ] +[ main::$11 ] +[ main::$12 ] +[ main::$14 ] +[ prepare_matrix::t1#0 ] +[ prepare_matrix::t2#0 ] +[ prepare_matrix::t3#0 ] +[ prepare_matrix::t4#0 ] +[ prepare_matrix::t5#0 ] +[ prepare_matrix::t6#0 ] +[ prepare_matrix::t7#0 ] +[ prepare_matrix::t8#0 ] +[ prepare_matrix::t9#0 ] +[ prepare_matrix::t10#0 ] [ prepare_matrix::$10 ] [ prepare_matrix::$11 ] [ prepare_matrix::$12 ] @@ -1088,48 +1649,84 @@ Complete equivalence classes [ prepare_matrix::$33 ] [ prepare_matrix::$34 ] [ mulf_init::$0 ] -[ mulf_init::$1 ] [ mulf_init::$2 ] +[ mulf_init::$3 ] [ mulf_init::$4 ] -[ mulf_init::$5 ] [ mulf_init::$6 ] -Allocated zp ZP_BYTE:2 [ rotate::x#3 ] -Allocated zp ZP_BYTE:3 [ rotate::y#3 ] -Allocated zp ZP_BYTE:4 [ rotate::z#3 ] -Allocated zp ZP_WORD:5 [ mulf_init::sqr1#2 mulf_init::sqr1#1 ] -Allocated zp ZP_BYTE:7 [ mulf_init::i#2 mulf_init::i#1 ] -Allocated zp ZP_WORD:8 [ mulf_init::add#2 mulf_init::add#1 ] -Allocated zp ZP_BYTE:10 [ prepare_matrix::$10 ] -Allocated zp ZP_BYTE:11 [ prepare_matrix::$11 ] -Allocated zp ZP_BYTE:12 [ prepare_matrix::$12 ] -Allocated zp ZP_BYTE:13 [ prepare_matrix::$13 ] -Allocated zp ZP_BYTE:14 [ prepare_matrix::$14 ] -Allocated zp ZP_BYTE:15 [ prepare_matrix::$15 ] -Allocated zp ZP_BYTE:16 [ prepare_matrix::$16 ] -Allocated zp ZP_BYTE:17 [ prepare_matrix::$17 ] -Allocated zp ZP_BYTE:18 [ prepare_matrix::$18 ] -Allocated zp ZP_BYTE:19 [ prepare_matrix::$19 ] -Allocated zp ZP_BYTE:20 [ prepare_matrix::$20 ] -Allocated zp ZP_BYTE:21 [ prepare_matrix::$21 ] -Allocated zp ZP_BYTE:22 [ prepare_matrix::$22 ] -Allocated zp ZP_BYTE:23 [ prepare_matrix::$23 ] -Allocated zp ZP_BYTE:24 [ prepare_matrix::$24 ] -Allocated zp ZP_BYTE:25 [ prepare_matrix::$25 ] -Allocated zp ZP_BYTE:26 [ prepare_matrix::$26 ] -Allocated zp ZP_BYTE:27 [ prepare_matrix::$27 ] -Allocated zp ZP_BYTE:28 [ prepare_matrix::$28 ] -Allocated zp ZP_BYTE:29 [ prepare_matrix::$29 ] -Allocated zp ZP_BYTE:30 [ prepare_matrix::$30 ] -Allocated zp ZP_BYTE:31 [ prepare_matrix::$31 ] -Allocated zp ZP_BYTE:32 [ prepare_matrix::$32 ] -Allocated zp ZP_BYTE:33 [ prepare_matrix::$33 ] -Allocated zp ZP_BYTE:34 [ prepare_matrix::$34 ] -Allocated zp ZP_BYTE:35 [ mulf_init::$0 ] -Allocated zp ZP_BYTE:36 [ mulf_init::$1 ] -Allocated zp ZP_BYTE:37 [ mulf_init::$2 ] -Allocated zp ZP_BYTE:38 [ mulf_init::$4 ] -Allocated zp ZP_BYTE:39 [ mulf_init::$5 ] -Allocated zp ZP_BYTE:40 [ mulf_init::$6 ] +[ mulf_init::$7 ] +[ mulf_init::$9 ] +[ mulf_init::$12 ] +[ mulf_init::$13 ] +[ mulf_init::$14 ] +[ mulf_init::$16 ] +[ mulf_init::$17 ] +Allocated zp ZP_BYTE:2 [ main::sx#6 main::sx#12 main::sx#1 ] +Allocated zp ZP_BYTE:3 [ main::sy#5 main::sy#1 ] +Allocated zp ZP_BYTE:4 [ main::sz#5 main::sz#1 ] +Allocated zp ZP_BYTE:5 [ main::i#2 main::i#1 ] +Allocated zp ZP_WORD:6 [ mulf_init::sqr1#2 mulf_init::sqr1#1 ] +Allocated zp ZP_BYTE:8 [ mulf_init::i#2 mulf_init::i#1 ] +Allocated zp ZP_WORD:9 [ mulf_init::add#2 mulf_init::add#1 ] +Allocated zp ZP_BYTE:11 [ sprites_init::i#2 sprites_init::i#1 ] +Allocated zp ZP_BYTE:12 [ prepare_matrix::sx#0 ] +Allocated zp ZP_BYTE:13 [ prepare_matrix::sy#0 ] +Allocated zp ZP_BYTE:14 [ prepare_matrix::sz#0 ] +Allocated zp ZP_BYTE:15 [ main::$4 ] +Allocated zp ZP_BYTE:16 [ rotate::x#0 ] +Allocated zp ZP_BYTE:17 [ rotate::y#0 ] +Allocated zp ZP_BYTE:18 [ rotate::z#0 ] +Allocated zp ZP_BYTE:19 [ main::i2#0 ] +Allocated zp ZP_BYTE:20 [ main::$9 ] +Allocated zp ZP_BYTE:21 [ main::$11 ] +Allocated zp ZP_BYTE:22 [ main::$12 ] +Allocated zp ZP_BYTE:23 [ main::$14 ] +Allocated zp ZP_BYTE:24 [ prepare_matrix::t1#0 ] +Allocated zp ZP_BYTE:25 [ prepare_matrix::t2#0 ] +Allocated zp ZP_BYTE:26 [ prepare_matrix::t3#0 ] +Allocated zp ZP_BYTE:27 [ prepare_matrix::t4#0 ] +Allocated zp ZP_BYTE:28 [ prepare_matrix::t5#0 ] +Allocated zp ZP_BYTE:29 [ prepare_matrix::t6#0 ] +Allocated zp ZP_BYTE:30 [ prepare_matrix::t7#0 ] +Allocated zp ZP_BYTE:31 [ prepare_matrix::t8#0 ] +Allocated zp ZP_BYTE:32 [ prepare_matrix::t9#0 ] +Allocated zp ZP_BYTE:33 [ prepare_matrix::t10#0 ] +Allocated zp ZP_BYTE:34 [ prepare_matrix::$10 ] +Allocated zp ZP_BYTE:35 [ prepare_matrix::$11 ] +Allocated zp ZP_BYTE:36 [ prepare_matrix::$12 ] +Allocated zp ZP_BYTE:37 [ prepare_matrix::$13 ] +Allocated zp ZP_BYTE:38 [ prepare_matrix::$14 ] +Allocated zp ZP_BYTE:39 [ prepare_matrix::$15 ] +Allocated zp ZP_BYTE:40 [ prepare_matrix::$16 ] +Allocated zp ZP_BYTE:41 [ prepare_matrix::$17 ] +Allocated zp ZP_BYTE:42 [ prepare_matrix::$18 ] +Allocated zp ZP_BYTE:43 [ prepare_matrix::$19 ] +Allocated zp ZP_BYTE:44 [ prepare_matrix::$20 ] +Allocated zp ZP_BYTE:45 [ prepare_matrix::$21 ] +Allocated zp ZP_BYTE:46 [ prepare_matrix::$22 ] +Allocated zp ZP_BYTE:47 [ prepare_matrix::$23 ] +Allocated zp ZP_BYTE:48 [ prepare_matrix::$24 ] +Allocated zp ZP_BYTE:49 [ prepare_matrix::$25 ] +Allocated zp ZP_BYTE:50 [ prepare_matrix::$26 ] +Allocated zp ZP_BYTE:51 [ prepare_matrix::$27 ] +Allocated zp ZP_BYTE:52 [ prepare_matrix::$28 ] +Allocated zp ZP_BYTE:53 [ prepare_matrix::$29 ] +Allocated zp ZP_BYTE:54 [ prepare_matrix::$30 ] +Allocated zp ZP_BYTE:55 [ prepare_matrix::$31 ] +Allocated zp ZP_BYTE:56 [ prepare_matrix::$32 ] +Allocated zp ZP_BYTE:57 [ prepare_matrix::$33 ] +Allocated zp ZP_BYTE:58 [ prepare_matrix::$34 ] +Allocated zp ZP_BYTE:59 [ mulf_init::$0 ] +Allocated zp ZP_BYTE:60 [ mulf_init::$2 ] +Allocated zp ZP_BYTE:61 [ mulf_init::$3 ] +Allocated zp ZP_BYTE:62 [ mulf_init::$4 ] +Allocated zp ZP_BYTE:63 [ mulf_init::$6 ] +Allocated zp ZP_BYTE:64 [ mulf_init::$7 ] +Allocated zp ZP_BYTE:65 [ mulf_init::$9 ] +Allocated zp ZP_BYTE:66 [ mulf_init::$12 ] +Allocated zp ZP_BYTE:67 [ mulf_init::$13 ] +Allocated zp ZP_BYTE:68 [ mulf_init::$14 ] +Allocated zp ZP_BYTE:69 [ mulf_init::$16 ] +Allocated zp ZP_BYTE:70 [ mulf_init::$17 ] INITIAL ASM //SEG0 Basic Upstart @@ -1137,9 +1734,16 @@ INITIAL ASM :BasicUpstart(main) .pc = $80d "Program" //SEG1 Global Constants & labels + .label SPRITES_XPOS = $d000 + .label SPRITES_YPOS = $d001 .label RASTER = $d012 + .label SPRITES_ENABLE = $d015 .label BORDERCOL = $d020 + .label SPRITES_COLS = $d027 + .const GREEN = 5 .const LIGHT_BLUE = $e + .label SCREEN = $400 + .label SPRITE = $3000 .label COSH = $2000 .label COSQ = $2200 .label xr = $f0 @@ -1152,162 +1756,221 @@ bbegin: jmp b3 //SEG3 @3 b3: -//SEG4 kickasm(location (const signed byte*) COSH#0) {{ { .var min = -$1fff .var max = $1fff .var ampl = max-min; .for(var i=0;i<$140;i++) { .var rad = i*2*PI/256; .byte >round(min+(ampl/2)+(ampl/2)*cos(rad)) } } }} -//SEG5 kickasm(location (const signed byte*) COSQ#0) {{ { .var min = -$0fff .var max = $0fff .var ampl = max-min; .for(var i=0;i<$140;i++) { .var rad = i*2*PI/256; .byte >round(min+(ampl/2)+(ampl/2)*cos(rad)) } } }} -//SEG6 [3] phi from @3 to @7 [phi:@3->@7] -b7_from_b3: - jmp b7 -//SEG7 @7 -b7: -//SEG8 [4] call main [ ] ( ) +//SEG4 kickasm(location (const byte*) SPRITE#0) {{ .var pic = LoadPicture("balloon.png", List().add($000000, $ffffff)) .for (var y=0; y<21; y++) .for (var x=0;x<3; x++) .byte pic.getSinglecolorByte(x,y) }} +//SEG5 kickasm(location (const signed byte*) COSH#0) {{ { .var min = -$1fff .var max = $1fff .var ampl = max-min; .for(var i=0;i<$140;i++) { .var rad = i*2*PI/256; .byte >round(min+(ampl/2)+(ampl/2)*cos(rad)) } } }} +//SEG6 kickasm(location (const signed byte*) COSQ#0) {{ { .var min = -$0fff .var max = $0fff .var ampl = max-min; .for(var i=0;i<$140;i++) { .var rad = i*2*PI/256; .byte >round(min+(ampl/2)+(ampl/2)*cos(rad)) } } }} +//SEG7 [4] phi from @3 to @8 [phi:@3->@8] +b8_from_b3: + jmp b8 +//SEG8 @8 +b8: +//SEG9 [5] call main [ ] ( ) jsr main -//SEG9 [5] phi from @7 to @end [phi:@7->@end] -bend_from_b7: +//SEG10 [6] phi from @8 to @end [phi:@8->@end] +bend_from_b8: jmp bend -//SEG10 @end +//SEG11 @end bend: -//SEG11 main +//SEG12 main main: { - .label SCREEN = $400 - //SEG12 asm { sei } + .label _4 = $f + .label _9 = $14 + .label _11 = $15 + .label _12 = $16 + .label _14 = $17 + .label sy = 3 + .label sz = 4 + .label sx = 2 + .label i2 = $13 + .label i = 5 + //SEG13 asm { sei } sei - //SEG13 [7] call mulf_init [ ] ( main:4 [ ] ) - //SEG14 [69] phi from main to mulf_init [phi:main->mulf_init] - mulf_init_from_main: + //SEG14 [8] call sprites_init [ ] ( main:5 [ ] ) + jsr sprites_init + //SEG15 [9] phi from main to main::@17 [phi:main->main::@17] + b17_from_main: + jmp b17 + //SEG16 main::@17 + b17: + //SEG17 [10] call mulf_init [ ] ( main:5 [ ] ) + //SEG18 [91] phi from main::@17 to mulf_init [phi:main::@17->mulf_init] + mulf_init_from_b17: jsr mulf_init - //SEG15 [8] phi from main to main::@13 [phi:main->main::@13] - b13_from_main: - jmp b13 - //SEG16 main::@13 - b13: - //SEG17 [9] call prepare_matrix [ ] ( main:4 [ ] ) - jsr prepare_matrix + //SEG19 [11] phi from main::@17 to main::@1 [phi:main::@17->main::@1] + b1_from_b17: + //SEG20 [11] phi (signed byte) main::sz#5 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@17->main::@1#0] -- vbsz1=vbuc1 + lda #0 + sta sz + //SEG21 [11] phi (signed byte) main::sy#5 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@17->main::@1#1] -- vbsz1=vbuc1 + lda #0 + sta sy + //SEG22 [11] phi (signed byte) main::sx#6 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@17->main::@1#2] -- vbsz1=vbuc1 + lda #0 + sta sx + jmp b1 + //SEG23 main::@1 + b1: jmp b4 - //SEG18 main::@4 + //SEG24 main::@4 b4: - //SEG19 [10] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto main::@4 [ ] ( main:4 [ ] ) -- _deref_pbuc1_neq_vbuc2_then_la1 + //SEG25 [12] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto main::@4 [ main::sx#6 main::sy#5 main::sz#5 ] ( main:5 [ main::sx#6 main::sy#5 main::sz#5 ] ) -- _deref_pbuc1_neq_vbuc2_then_la1 lda RASTER cmp #$ff bne b4 jmp b6 - //SEG20 main::@6 + //SEG26 main::@6 b6: - //SEG21 [11] *((const byte*) BORDERCOL#0) ← ++ *((const byte*) BORDERCOL#0) [ ] ( main:4 [ ] ) -- _deref_pbuc1=_inc__deref_pbuc1 + //SEG27 [13] *((const byte*) BORDERCOL#0) ← ++ *((const byte*) BORDERCOL#0) [ main::sx#6 main::sy#5 main::sz#5 ] ( main:5 [ main::sx#6 main::sy#5 main::sz#5 ] ) -- _deref_pbuc1=_inc__deref_pbuc1 inc BORDERCOL - //SEG22 [12] call rotate [ ] ( main:4 [ ] ) - //SEG23 [27] phi from main::@6 to rotate [phi:main::@6->rotate] - rotate_from_b6: - //SEG24 [27] phi (signed byte) rotate::z#3 = (byte/signed byte/word/signed word/dword/signed dword) 63 [phi:main::@6->rotate#0] -- vbsz1=vbuc1 - lda #$3f - sta rotate.z - //SEG25 [27] phi (signed byte) rotate::y#3 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@6->rotate#1] -- vbsz1=vbuc1 - lda #0 - sta rotate.y - //SEG26 [27] phi (signed byte) rotate::x#3 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@6->rotate#2] -- vbsz1=vbuc1 + //SEG28 [14] (signed byte) prepare_matrix::sx#0 ← (signed byte) main::sx#6 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::sx#0 ] ( main:5 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::sx#0 ] ) -- vbsz1=vbsz2 + lda sx + sta prepare_matrix.sx + //SEG29 [15] (signed byte) prepare_matrix::sy#0 ← (signed byte) main::sy#5 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::sx#0 prepare_matrix::sy#0 ] ( main:5 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::sx#0 prepare_matrix::sy#0 ] ) -- vbsz1=vbsz2 + lda sy + sta prepare_matrix.sy + //SEG30 [16] (signed byte) prepare_matrix::sz#0 ← (signed byte) main::sz#5 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::sx#0 prepare_matrix::sy#0 prepare_matrix::sz#0 ] ( main:5 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::sx#0 prepare_matrix::sy#0 prepare_matrix::sz#0 ] ) -- vbsz1=vbsz2 + lda sz + sta prepare_matrix.sz + //SEG31 [17] call prepare_matrix [ main::sx#6 main::sy#5 main::sz#5 ] ( main:5 [ main::sx#6 main::sy#5 main::sz#5 ] ) + jsr prepare_matrix + jmp b19 + //SEG32 main::@19 + b19: + //SEG33 [18] (signed byte) main::sy#1 ← -- (signed byte) main::sy#5 [ main::sx#6 main::sz#5 main::sy#1 ] ( main:5 [ main::sx#6 main::sz#5 main::sy#1 ] ) -- vbsz1=_dec_vbsz1 + dec sy + //SEG34 [19] (signed byte) main::sz#1 ← ++ (signed byte) main::sz#5 [ main::sx#6 main::sy#1 main::sz#1 ] ( main:5 [ main::sx#6 main::sy#1 main::sz#1 ] ) -- vbsz1=_inc_vbsz1 + inc sz + //SEG35 [20] (byte~) main::$4 ← (signed byte) main::sy#1 & (byte/signed byte/word/signed word/dword/signed dword) 1 [ main::sx#6 main::sy#1 main::sz#1 main::$4 ] ( main:5 [ main::sx#6 main::sy#1 main::sz#1 main::$4 ] ) -- vbuz1=vbsz2_band_vbuc1 + lda sy + and #1 + sta _4 + //SEG36 [21] if((byte~) main::$4!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto main::@7 [ main::sx#6 main::sy#1 main::sz#1 ] ( main:5 [ main::sx#6 main::sy#1 main::sz#1 ] ) -- vbuz1_neq_0_then_la1 + lda _4 + bne b7_from_b19 + jmp b14 + //SEG37 main::@14 + b14: + //SEG38 [22] (signed byte) main::sx#1 ← ++ (signed byte) main::sx#6 [ main::sy#1 main::sz#1 main::sx#1 ] ( main:5 [ main::sy#1 main::sz#1 main::sx#1 ] ) -- vbsz1=_inc_vbsz1 + inc sx + //SEG39 [23] phi from main::@14 main::@19 to main::@7 [phi:main::@14/main::@19->main::@7] + b7_from_b14: + b7_from_b19: + //SEG40 [23] phi (signed byte) main::sx#12 = (signed byte) main::sx#1 [phi:main::@14/main::@19->main::@7#0] -- register_copy + jmp b7 + //SEG41 main::@7 + b7: + //SEG42 [24] phi from main::@7 to main::@8 [phi:main::@7->main::@8] + b8_from_b7: + //SEG43 [24] phi (byte) main::i#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@7->main::@8#0] -- vbuz1=vbuc1 lda #0 + sta i + jmp b8 + //SEG44 [24] phi from main::@20 to main::@8 [phi:main::@20->main::@8] + b8_from_b20: + //SEG45 [24] phi (byte) main::i#2 = (byte) main::i#1 [phi:main::@20->main::@8#0] -- register_copy + jmp b8 + //SEG46 main::@8 + b8: + //SEG47 [25] *((const byte*) BORDERCOL#0) ← ++ *((const byte*) BORDERCOL#0) [ main::sx#12 main::sy#1 main::sz#1 main::i#2 ] ( main:5 [ main::sx#12 main::sy#1 main::sz#1 main::i#2 ] ) -- _deref_pbuc1=_inc__deref_pbuc1 + inc BORDERCOL + //SEG48 [26] (signed byte) rotate::x#0 ← *((const signed byte[8]) xs#0 + (byte) main::i#2) [ main::sx#12 main::sy#1 main::sz#1 main::i#2 rotate::x#0 ] ( main:5 [ main::sx#12 main::sy#1 main::sz#1 main::i#2 rotate::x#0 ] ) -- vbsz1=pbsc1_derefidx_vbuz2 + ldy i + lda xs,y sta rotate.x + //SEG49 [27] (signed byte) rotate::y#0 ← *((const signed byte[8]) ys#0 + (byte) main::i#2) [ main::sx#12 main::sy#1 main::sz#1 main::i#2 rotate::x#0 rotate::y#0 ] ( main:5 [ main::sx#12 main::sy#1 main::sz#1 main::i#2 rotate::x#0 rotate::y#0 ] ) -- vbsz1=pbsc1_derefidx_vbuz2 + ldy i + lda ys,y + sta rotate.y + //SEG50 [28] (signed byte) rotate::z#0 ← *((const signed byte[8]) zs#0 + (byte) main::i#2) [ main::sx#12 main::sy#1 main::sz#1 main::i#2 rotate::x#0 rotate::y#0 rotate::z#0 ] ( main:5 [ main::sx#12 main::sy#1 main::sz#1 main::i#2 rotate::x#0 rotate::y#0 rotate::z#0 ] ) -- vbsz1=pbsc1_derefidx_vbuz2 + ldy i + lda zs,y + sta rotate.z + //SEG51 [29] call rotate [ main::sx#12 main::sy#1 main::sz#1 main::i#2 ] ( main:5 [ main::sx#12 main::sy#1 main::sz#1 main::i#2 ] ) jsr rotate + jmp b20 + //SEG52 main::@20 + b20: + //SEG53 [30] (byte) main::i2#0 ← (byte) main::i#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ main::sx#12 main::sy#1 main::sz#1 main::i#2 main::i2#0 ] ( main:5 [ main::sx#12 main::sy#1 main::sz#1 main::i#2 main::i2#0 ] ) -- vbuz1=vbuz2_rol_1 + lda i + asl + sta i2 + //SEG54 [31] (signed byte~) main::$9 ← *((const signed byte*) xr#0) >> (byte/signed byte/word/signed word/dword/signed dword) 1 [ main::sx#12 main::sy#1 main::sz#1 main::i#2 main::i2#0 main::$9 ] ( main:5 [ main::sx#12 main::sy#1 main::sz#1 main::i#2 main::i2#0 main::$9 ] ) -- vbsz1=_deref_pbsc1_ror_1 + lda xr + cmp #$80 + ror + sta _9 + //SEG55 [32] (byte/word/signed word/dword/signed dword~) main::$11 ← (byte/word/signed word/dword/signed dword) 128 + (byte)(signed byte~) main::$9 [ main::sx#12 main::sy#1 main::sz#1 main::i#2 main::i2#0 main::$11 ] ( main:5 [ main::sx#12 main::sy#1 main::sz#1 main::i#2 main::i2#0 main::$11 ] ) -- vbuz1=vbuc1_plus_vbuz2 + lda #$80 + clc + adc _9 + sta _11 + //SEG56 [33] *((const byte*) SPRITES_XPOS#0 + (byte) main::i2#0) ← (byte/word/signed word/dword/signed dword~) main::$11 [ main::sx#12 main::sy#1 main::sz#1 main::i#2 main::i2#0 ] ( main:5 [ main::sx#12 main::sy#1 main::sz#1 main::i#2 main::i2#0 ] ) -- pbuc1_derefidx_vbuz1=vbuz2 + lda _11 + ldy i2 + sta SPRITES_XPOS,y + //SEG57 [34] (signed byte~) main::$12 ← *((const signed byte*) yr#0) >> (byte/signed byte/word/signed word/dword/signed dword) 1 [ main::sx#12 main::sy#1 main::sz#1 main::i#2 main::i2#0 main::$12 ] ( main:5 [ main::sx#12 main::sy#1 main::sz#1 main::i#2 main::i2#0 main::$12 ] ) -- vbsz1=_deref_pbsc1_ror_1 + lda yr + cmp #$80 + ror + sta _12 + //SEG58 [35] (byte/word/signed word/dword/signed dword~) main::$14 ← (byte/word/signed word/dword/signed dword) 128 + (byte)(signed byte~) main::$12 [ main::sx#12 main::sy#1 main::sz#1 main::i#2 main::i2#0 main::$14 ] ( main:5 [ main::sx#12 main::sy#1 main::sz#1 main::i#2 main::i2#0 main::$14 ] ) -- vbuz1=vbuc1_plus_vbuz2 + lda #$80 + clc + adc _12 + sta _14 + //SEG59 [36] *((const byte*) SPRITES_YPOS#0 + (byte) main::i2#0) ← (byte/word/signed word/dword/signed dword~) main::$14 [ main::sx#12 main::sy#1 main::sz#1 main::i#2 ] ( main:5 [ main::sx#12 main::sy#1 main::sz#1 main::i#2 ] ) -- pbuc1_derefidx_vbuz1=vbuz2 + lda _14 + ldy i2 + sta SPRITES_YPOS,y + //SEG60 [37] (byte) main::i#1 ← ++ (byte) main::i#2 [ main::sx#12 main::sy#1 main::sz#1 main::i#1 ] ( main:5 [ main::sx#12 main::sy#1 main::sz#1 main::i#1 ] ) -- vbuz1=_inc_vbuz1 + inc i + //SEG61 [38] if((byte) main::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 8) goto main::@8 [ main::sx#12 main::sy#1 main::sz#1 main::i#1 ] ( main:5 [ main::sx#12 main::sy#1 main::sz#1 main::i#1 ] ) -- vbuz1_neq_vbuc1_then_la1 + lda i + cmp #8 + bne b8_from_b20 jmp b15 - //SEG27 main::@15 + //SEG62 main::@15 b15: - //SEG28 [13] *((const byte*) main::SCREEN#0) ← (byte)*((const signed byte*) xr#0) [ ] ( main:4 [ ] ) -- _deref_pbuc1=_deref_pbuc2 - lda xr - sta SCREEN - //SEG29 [14] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte)*((const signed byte*) yr#0) [ ] ( main:4 [ ] ) -- _deref_pbuc1=_deref_pbuc2 - lda yr - sta SCREEN+1 - //SEG30 [15] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte)*((const signed byte*) zr#0) [ ] ( main:4 [ ] ) -- _deref_pbuc1=_deref_pbuc2 - lda zr - sta SCREEN+2 - //SEG31 [16] *((const byte*) BORDERCOL#0) ← ++ *((const byte*) BORDERCOL#0) [ ] ( main:4 [ ] ) -- _deref_pbuc1=_inc__deref_pbuc1 - inc BORDERCOL - //SEG32 [17] call rotate [ ] ( main:4 [ ] ) - //SEG33 [27] phi from main::@15 to rotate [phi:main::@15->rotate] - rotate_from_b15: - //SEG34 [27] phi (signed byte) rotate::z#3 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@15->rotate#0] -- vbsz1=vbuc1 - lda #0 - sta rotate.z - //SEG35 [27] phi (signed byte) rotate::y#3 = (byte/signed byte/word/signed word/dword/signed dword) 63 [phi:main::@15->rotate#1] -- vbsz1=vbuc1 - lda #$3f - sta rotate.y - //SEG36 [27] phi (signed byte) rotate::x#3 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@15->rotate#2] -- vbsz1=vbuc1 - lda #0 - sta rotate.x - jsr rotate - jmp b16 - //SEG37 main::@16 - b16: - //SEG38 [18] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40) ← (byte)*((const signed byte*) xr#0) [ ] ( main:4 [ ] ) -- _deref_pbuc1=_deref_pbuc2 - lda xr - sta SCREEN+$28 - //SEG39 [19] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 41) ← (byte)*((const signed byte*) yr#0) [ ] ( main:4 [ ] ) -- _deref_pbuc1=_deref_pbuc2 - lda yr - sta SCREEN+$29 - //SEG40 [20] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 42) ← (byte)*((const signed byte*) zr#0) [ ] ( main:4 [ ] ) -- _deref_pbuc1=_deref_pbuc2 - lda zr - sta SCREEN+$2a - //SEG41 [21] *((const byte*) BORDERCOL#0) ← ++ *((const byte*) BORDERCOL#0) [ ] ( main:4 [ ] ) -- _deref_pbuc1=_inc__deref_pbuc1 - inc BORDERCOL - //SEG42 [22] call rotate [ ] ( main:4 [ ] ) - //SEG43 [27] phi from main::@16 to rotate [phi:main::@16->rotate] - rotate_from_b16: - //SEG44 [27] phi (signed byte) rotate::z#3 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@16->rotate#0] -- vbsz1=vbuc1 - lda #0 - sta rotate.z - //SEG45 [27] phi (signed byte) rotate::y#3 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@16->rotate#1] -- vbsz1=vbuc1 - lda #0 - sta rotate.y - //SEG46 [27] phi (signed byte) rotate::x#3 = (byte/signed byte/word/signed word/dword/signed dword) 63 [phi:main::@16->rotate#2] -- vbsz1=vbuc1 - lda #$3f - sta rotate.x - jsr rotate - jmp b17 - //SEG47 main::@17 - b17: - //SEG48 [23] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 80) ← (byte)*((const signed byte*) xr#0) [ ] ( main:4 [ ] ) -- _deref_pbuc1=_deref_pbuc2 - lda xr - sta SCREEN+$50 - //SEG49 [24] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 81) ← (byte)*((const signed byte*) yr#0) [ ] ( main:4 [ ] ) -- _deref_pbuc1=_deref_pbuc2 - lda yr - sta SCREEN+$51 - //SEG50 [25] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 82) ← (byte)*((const signed byte*) zr#0) [ ] ( main:4 [ ] ) -- _deref_pbuc1=_deref_pbuc2 - lda zr - sta SCREEN+$52 - //SEG51 [26] *((const byte*) BORDERCOL#0) ← (const byte) LIGHT_BLUE#0 [ ] ( main:4 [ ] ) -- _deref_pbuc1=vbuc2 + //SEG63 [39] *((const byte*) BORDERCOL#0) ← (const byte) LIGHT_BLUE#0 [ main::sx#12 main::sy#1 main::sz#1 ] ( main:5 [ main::sx#12 main::sy#1 main::sz#1 ] ) -- _deref_pbuc1=vbuc2 lda #LIGHT_BLUE sta BORDERCOL - jmp b4 + //SEG64 [11] phi from main::@15 to main::@1 [phi:main::@15->main::@1] + b1_from_b15: + //SEG65 [11] phi (signed byte) main::sz#5 = (signed byte) main::sz#1 [phi:main::@15->main::@1#0] -- register_copy + //SEG66 [11] phi (signed byte) main::sy#5 = (signed byte) main::sy#1 [phi:main::@15->main::@1#1] -- register_copy + //SEG67 [11] phi (signed byte) main::sx#6 = (signed byte) main::sx#12 [phi:main::@15->main::@1#2] -- register_copy + jmp b1 } -//SEG52 rotate +//SEG68 rotate rotate: { - .label x = 2 - .label y = 3 - .label z = 4 - //SEG53 [28] *((const signed byte*) xr#0) ← (signed byte) rotate::x#3 [ rotate::y#3 rotate::z#3 ] ( main:4::rotate:12 [ rotate::y#3 rotate::z#3 ] main:4::rotate:17 [ rotate::y#3 rotate::z#3 ] main:4::rotate:22 [ rotate::y#3 rotate::z#3 ] ) -- _deref_pbsc1=vbsz1 + .label x = $10 + .label y = $11 + .label z = $12 + //SEG69 [40] *((const signed byte*) xr#0) ← (signed byte) rotate::x#0 [ rotate::y#0 rotate::z#0 ] ( main:5::rotate:29 [ main::sx#12 main::sy#1 main::sz#1 main::i#2 rotate::y#0 rotate::z#0 ] ) -- _deref_pbsc1=vbsz1 lda x sta xr - //SEG54 [29] *((const signed byte*) yr#0) ← (signed byte) rotate::y#3 [ rotate::z#3 ] ( main:4::rotate:12 [ rotate::z#3 ] main:4::rotate:17 [ rotate::z#3 ] main:4::rotate:22 [ rotate::z#3 ] ) -- _deref_pbsc1=vbsz1 + //SEG70 [41] *((const signed byte*) yr#0) ← (signed byte) rotate::y#0 [ rotate::z#0 ] ( main:5::rotate:29 [ main::sx#12 main::sy#1 main::sz#1 main::i#2 rotate::z#0 ] ) -- _deref_pbsc1=vbsz1 lda y sta yr - //SEG55 [30] *((const signed byte*) zr#0) ← (signed byte) rotate::z#3 [ ] ( main:4::rotate:12 [ ] main:4::rotate:17 [ ] main:4::rotate:22 [ ] ) -- _deref_pbsc1=vbsz1 + //SEG71 [42] *((const signed byte*) zr#0) ← (signed byte) rotate::z#0 [ ] ( main:5::rotate:29 [ main::sx#12 main::sy#1 main::sz#1 main::i#2 ] ) -- _deref_pbsc1=vbsz1 lda z sta zr - //SEG56 asm { clc ldxzr lda#$80 C1: adcmulf_sqr1,x C2: sbcmulf_sqr2,x staC3+1 lda#$80 F1: adcmulf_sqr1,x F2: sbcmulf_sqr2,x staF3+1 lda#$80 I1: adcmulf_sqr1,x I2: sbcmulf_sqr2,x staI3+1 ldxxr ldyyr C3: lda#0 A1: adcmulf_sqr1,x A2: sbcmulf_sqr2,x B1: adcmulf_sqr1,y B2: sbcmulf_sqr2,y staxr F3: lda#0 D1: adcmulf_sqr1,x D2: sbcmulf_sqr2,x E1: adcmulf_sqr1,y E2: sbcmulf_sqr2,y stayr I3: lda#0 G1: adcmulf_sqr1,x G2: sbcmulf_sqr2,x H1: adcmulf_sqr1,y H2: sbcmulf_sqr2,y stazr } + //SEG72 asm { clc ldxzr lda#$0 C1: adcmulf_sqr1,x C2: sbcmulf_sqr2,x staC3+1 lda#0 F1: adcmulf_sqr1,x F2: sbcmulf_sqr2,x staF3+1 lda#0 I1: adcmulf_sqr1,x I2: sbcmulf_sqr2,x staI3+1 ldxxr ldyyr C3: lda#0 A1: adcmulf_sqr1,x A2: sbcmulf_sqr2,x B1: adcmulf_sqr1,y B2: sbcmulf_sqr2,y staxr F3: lda#0 D1: adcmulf_sqr1,x D2: sbcmulf_sqr2,x E1: adcmulf_sqr1,y E2: sbcmulf_sqr2,y stayr I3: lda#0 G1: adcmulf_sqr1,x G2: sbcmulf_sqr2,x H1: adcmulf_sqr1,y H2: sbcmulf_sqr2,y stazr } clc ldx zr - lda #$80 + lda #0 C1: adc mulf_sqr1,x C2: sbc mulf_sqr2,x sta C3+1 - lda #$80 + lda #0 F1: adc mulf_sqr1,x F2: sbc mulf_sqr2,x sta F3+1 - lda #$80 + lda #0 I1: adc mulf_sqr1,x I2: @@ -1349,232 +2012,287 @@ rotate: { sbc mulf_sqr2,y sta zr jmp breturn - //SEG57 rotate::@return + //SEG73 rotate::@return breturn: - //SEG58 [32] return [ ] ( main:4::rotate:12 [ ] main:4::rotate:17 [ ] main:4::rotate:22 [ ] ) + //SEG74 [44] return [ ] ( main:5::rotate:29 [ main::sx#12 main::sy#1 main::sz#1 main::i#2 ] ) rts } -//SEG59 prepare_matrix +//SEG75 prepare_matrix prepare_matrix: { - .const sx = 0 - .const sy = 0 - .const sz = 0 - .const t1 = sy-sz - .const t2 = sy+sz - .const t3 = sx+sz - .const t4 = sx-sz - .const t9 = sy-sx - .const t10 = sy+sx - .const t5 = sx+t2 - .const t6 = sx-t1 - .const t7 = sx+t1 - .const t8 = t2-sx - .label _10 = $a - .label _11 = $b - .label _12 = $c - .label _13 = $d - .label _14 = $e - .label _15 = $f - .label _16 = $10 - .label _17 = $11 - .label _18 = $12 - .label _19 = $13 - .label _20 = $14 - .label _21 = $15 - .label _22 = $16 - .label _23 = $17 - .label _24 = $18 - .label _25 = $19 - .label _26 = $1a - .label _27 = $1b - .label _28 = $1c - .label _29 = $1d - .label _30 = $1e - .label _31 = $1f - .label _32 = $20 - .label _33 = $21 - .label _34 = $22 - //SEG60 [33] (signed byte~) prepare_matrix::$10 ← *((const signed byte*) COSH#0+(const signed byte) prepare_matrix::t1#0) + *((const signed byte*) COSH#0+(const signed byte) prepare_matrix::t2#0) [ prepare_matrix::$10 ] ( main:4::prepare_matrix:9 [ prepare_matrix::$10 ] ) -- vbsz1=_deref_pbsc1_plus__deref_pbsc2 - lda COSH+t1 - ldy COSH+t2 - sty $ff + .label _10 = $22 + .label _11 = $23 + .label _12 = $24 + .label _13 = $25 + .label _14 = $26 + .label _15 = $27 + .label _16 = $28 + .label _17 = $29 + .label _18 = $2a + .label _19 = $2b + .label _20 = $2c + .label _21 = $2d + .label _22 = $2e + .label _23 = $2f + .label _24 = $30 + .label _25 = $31 + .label _26 = $32 + .label _27 = $33 + .label _28 = $34 + .label _29 = $35 + .label _30 = $36 + .label _31 = $37 + .label _32 = $38 + .label _33 = $39 + .label _34 = $3a + .label sx = $c + .label sy = $d + .label sz = $e + .label t1 = $18 + .label t2 = $19 + .label t3 = $1a + .label t4 = $1b + .label t5 = $1c + .label t6 = $1d + .label t7 = $1e + .label t8 = $1f + .label t9 = $20 + .label t10 = $21 + //SEG76 [45] (signed byte) prepare_matrix::t1#0 ← (signed byte) prepare_matrix::sy#0 - (signed byte) prepare_matrix::sz#0 [ prepare_matrix::sx#0 prepare_matrix::sy#0 prepare_matrix::sz#0 prepare_matrix::t1#0 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::sx#0 prepare_matrix::sy#0 prepare_matrix::sz#0 prepare_matrix::t1#0 ] ) -- vbsz1=vbsz2_minus_vbsz3 + lda sy + sec + sbc sz + sta t1 + //SEG77 [46] (signed byte) prepare_matrix::t2#0 ← (signed byte) prepare_matrix::sy#0 + (signed byte) prepare_matrix::sz#0 [ prepare_matrix::sx#0 prepare_matrix::sy#0 prepare_matrix::sz#0 prepare_matrix::t1#0 prepare_matrix::t2#0 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::sx#0 prepare_matrix::sy#0 prepare_matrix::sz#0 prepare_matrix::t1#0 prepare_matrix::t2#0 ] ) -- vbsz1=vbsz2_plus_vbsz3 + lda sy clc - adc $ff + adc sz + sta t2 + //SEG78 [47] (signed byte) prepare_matrix::t3#0 ← (signed byte) prepare_matrix::sx#0 + (signed byte) prepare_matrix::sz#0 [ prepare_matrix::sx#0 prepare_matrix::sy#0 prepare_matrix::sz#0 prepare_matrix::t1#0 prepare_matrix::t2#0 prepare_matrix::t3#0 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::sx#0 prepare_matrix::sy#0 prepare_matrix::sz#0 prepare_matrix::t1#0 prepare_matrix::t2#0 prepare_matrix::t3#0 ] ) -- vbsz1=vbsz2_plus_vbsz3 + lda sx + clc + adc sz + sta t3 + //SEG79 [48] (signed byte) prepare_matrix::t4#0 ← (signed byte) prepare_matrix::sx#0 - (signed byte) prepare_matrix::sz#0 [ prepare_matrix::sx#0 prepare_matrix::sy#0 prepare_matrix::t1#0 prepare_matrix::t2#0 prepare_matrix::t3#0 prepare_matrix::t4#0 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::sx#0 prepare_matrix::sy#0 prepare_matrix::t1#0 prepare_matrix::t2#0 prepare_matrix::t3#0 prepare_matrix::t4#0 ] ) -- vbsz1=vbsz2_minus_vbsz3 + lda sx + sec + sbc sz + sta t4 + //SEG80 [49] (signed byte) prepare_matrix::t5#0 ← (signed byte) prepare_matrix::sx#0 + (signed byte) prepare_matrix::t2#0 [ prepare_matrix::sx#0 prepare_matrix::sy#0 prepare_matrix::t1#0 prepare_matrix::t2#0 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::sx#0 prepare_matrix::sy#0 prepare_matrix::t1#0 prepare_matrix::t2#0 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 ] ) -- vbsz1=vbsz2_plus_vbsz3 + lda sx + clc + adc t2 + sta t5 + //SEG81 [50] (signed byte) prepare_matrix::t6#0 ← (signed byte) prepare_matrix::sx#0 - (signed byte) prepare_matrix::t1#0 [ prepare_matrix::sx#0 prepare_matrix::sy#0 prepare_matrix::t1#0 prepare_matrix::t2#0 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::sx#0 prepare_matrix::sy#0 prepare_matrix::t1#0 prepare_matrix::t2#0 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 ] ) -- vbsz1=vbsz2_minus_vbsz3 + lda sx + sec + sbc t1 + sta t6 + //SEG82 [51] (signed byte) prepare_matrix::t7#0 ← (signed byte) prepare_matrix::sx#0 + (signed byte) prepare_matrix::t1#0 [ prepare_matrix::sx#0 prepare_matrix::sy#0 prepare_matrix::t1#0 prepare_matrix::t2#0 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::sx#0 prepare_matrix::sy#0 prepare_matrix::t1#0 prepare_matrix::t2#0 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 ] ) -- vbsz1=vbsz2_plus_vbsz3 + lda sx + clc + adc t1 + sta t7 + //SEG83 [52] (signed byte) prepare_matrix::t8#0 ← (signed byte) prepare_matrix::t2#0 - (signed byte) prepare_matrix::sx#0 [ prepare_matrix::sx#0 prepare_matrix::sy#0 prepare_matrix::t1#0 prepare_matrix::t2#0 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::sx#0 prepare_matrix::sy#0 prepare_matrix::t1#0 prepare_matrix::t2#0 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 ] ) -- vbsz1=vbsz2_minus_vbsz3 + lda t2 + sec + sbc sx + sta t8 + //SEG84 [53] (signed byte) prepare_matrix::t9#0 ← (signed byte) prepare_matrix::sy#0 - (signed byte) prepare_matrix::sx#0 [ prepare_matrix::sx#0 prepare_matrix::sy#0 prepare_matrix::t1#0 prepare_matrix::t2#0 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::sx#0 prepare_matrix::sy#0 prepare_matrix::t1#0 prepare_matrix::t2#0 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 ] ) -- vbsz1=vbsz2_minus_vbsz3 + lda sy + sec + sbc sx + sta t9 + //SEG85 [54] (signed byte) prepare_matrix::t10#0 ← (signed byte) prepare_matrix::sy#0 + (signed byte) prepare_matrix::sx#0 [ prepare_matrix::sy#0 prepare_matrix::t1#0 prepare_matrix::t2#0 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::sy#0 prepare_matrix::t1#0 prepare_matrix::t2#0 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 ] ) -- vbsz1=vbsz2_plus_vbsz3 + lda sy + clc + adc sx + sta t10 + //SEG86 [55] (signed byte~) prepare_matrix::$10 ← *((const signed byte*) COSH#0 + (signed byte) prepare_matrix::t1#0) + *((const signed byte*) COSH#0 + (signed byte) prepare_matrix::t2#0) [ prepare_matrix::sy#0 prepare_matrix::t1#0 prepare_matrix::t2#0 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$10 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::sy#0 prepare_matrix::t1#0 prepare_matrix::t2#0 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$10 ] ) -- vbsz1=pbsc1_derefidx_vbsz2_plus_pbsc1_derefidx_vbsz3 + ldx t1 + ldy t2 + clc + lda COSH,x + adc COSH,y sta _10 - //SEG61 [34] *((const signed byte[9]) rotation_matrix#0) ← (signed byte~) prepare_matrix::$10 [ ] ( main:4::prepare_matrix:9 [ ] ) -- _deref_pbsc1=vbsz1 + //SEG87 [56] *((const signed byte[9]) rotation_matrix#0) ← (signed byte~) prepare_matrix::$10 [ prepare_matrix::sy#0 prepare_matrix::t1#0 prepare_matrix::t2#0 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::sy#0 prepare_matrix::t1#0 prepare_matrix::t2#0 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 ] ) -- _deref_pbsc1=vbsz1 lda _10 sta rotation_matrix - //SEG62 [35] (signed byte~) prepare_matrix::$11 ← *((const signed byte*) SINH#0+(const signed byte) prepare_matrix::t1#0) - *((const signed byte*) SINH#0+(const signed byte) prepare_matrix::t2#0) [ prepare_matrix::$11 ] ( main:4::prepare_matrix:9 [ prepare_matrix::$11 ] ) -- vbsz1=_deref_pbsc1_minus__deref_pbsc2 - lda SINH+t1 - ldy SINH+t2 - sty $ff + //SEG88 [57] (signed byte~) prepare_matrix::$11 ← *((const signed byte*) SINH#0 + (signed byte) prepare_matrix::t1#0) - *((const signed byte*) SINH#0 + (signed byte) prepare_matrix::t2#0) [ prepare_matrix::sy#0 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$11 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::sy#0 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$11 ] ) -- vbsz1=pbsc1_derefidx_vbsz2_minus_pbsc1_derefidx_vbsz3 + ldx t1 + ldy t2 sec - sbc $ff + lda SINH,x + sbc SINH,y sta _11 - //SEG63 [36] *((const signed byte[9]) rotation_matrix#0+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (signed byte~) prepare_matrix::$11 [ ] ( main:4::prepare_matrix:9 [ ] ) -- _deref_pbsc1=vbsz1 + //SEG89 [58] *((const signed byte[9]) rotation_matrix#0+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (signed byte~) prepare_matrix::$11 [ prepare_matrix::sy#0 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::sy#0 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 ] ) -- _deref_pbsc1=vbsz1 lda _11 sta rotation_matrix+1 - //SEG64 [37] (signed byte~) prepare_matrix::$12 ← *((const signed byte*) SINH#0+(const signed byte) prepare_matrix::sy#0) + *((const signed byte*) SINH#0+(const signed byte) prepare_matrix::sy#0) [ prepare_matrix::$12 ] ( main:4::prepare_matrix:9 [ prepare_matrix::$12 ] ) -- vbsz1=_deref_pbsc1_plus__deref_pbsc2 - lda SINH+sy - ldy SINH+sy - sty $ff + //SEG90 [59] (signed byte~) prepare_matrix::$12 ← *((const signed byte*) SINH#0 + (signed byte) prepare_matrix::sy#0) + *((const signed byte*) SINH#0 + (signed byte) prepare_matrix::sy#0) [ prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$12 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$12 ] ) -- vbsz1=pbsc1_derefidx_vbsz2_plus_pbsc1_derefidx_vbsz2 + ldy sy clc - adc $ff + lda SINH,y + adc SINH,y sta _12 - //SEG65 [38] *((const signed byte[9]) rotation_matrix#0+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (signed byte~) prepare_matrix::$12 [ ] ( main:4::prepare_matrix:9 [ ] ) -- _deref_pbsc1=vbsz1 + //SEG91 [60] *((const signed byte[9]) rotation_matrix#0+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (signed byte~) prepare_matrix::$12 [ prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 ] ) -- _deref_pbsc1=vbsz1 lda _12 sta rotation_matrix+2 - //SEG66 [39] (signed byte~) prepare_matrix::$13 ← *((const signed byte*) SINH#0+(const signed byte) prepare_matrix::t3#0) - *((const signed byte*) SINH#0+(const signed byte) prepare_matrix::t4#0) [ prepare_matrix::$13 ] ( main:4::prepare_matrix:9 [ prepare_matrix::$13 ] ) -- vbsz1=_deref_pbsc1_minus__deref_pbsc2 - lda SINH+t3 - ldy SINH+t4 - sty $ff + //SEG92 [61] (signed byte~) prepare_matrix::$13 ← *((const signed byte*) SINH#0 + (signed byte) prepare_matrix::t3#0) - *((const signed byte*) SINH#0 + (signed byte) prepare_matrix::t4#0) [ prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$13 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$13 ] ) -- vbsz1=pbsc1_derefidx_vbsz2_minus_pbsc1_derefidx_vbsz3 + ldx t3 + ldy t4 sec - sbc $ff + lda SINH,x + sbc SINH,y sta _13 - //SEG67 [40] (signed byte~) prepare_matrix::$14 ← (signed byte~) prepare_matrix::$13 + *((const signed byte*) COSQ#0+(const signed byte) prepare_matrix::t6#0) [ prepare_matrix::$14 ] ( main:4::prepare_matrix:9 [ prepare_matrix::$14 ] ) -- vbsz1=vbsz2_plus__deref_pbsc1 - lda COSQ+t6 + //SEG93 [62] (signed byte~) prepare_matrix::$14 ← (signed byte~) prepare_matrix::$13 + *((const signed byte*) COSQ#0 + (signed byte) prepare_matrix::t6#0) [ prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$14 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$14 ] ) -- vbsz1=vbsz2_plus_pbsc1_derefidx_vbsz3 + lda _13 + ldy t6 clc - adc _13 + adc COSQ,y sta _14 - //SEG68 [41] (signed byte~) prepare_matrix::$15 ← (signed byte~) prepare_matrix::$14 - *((const signed byte*) COSQ#0+(const signed byte) prepare_matrix::t5#0) [ prepare_matrix::$15 ] ( main:4::prepare_matrix:9 [ prepare_matrix::$15 ] ) -- vbsz1=vbsz2_minus__deref_pbsc1 - lda COSQ+t5 - eor #$ff + //SEG94 [63] (signed byte~) prepare_matrix::$15 ← (signed byte~) prepare_matrix::$14 - *((const signed byte*) COSQ#0 + (signed byte) prepare_matrix::t5#0) [ prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$15 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$15 ] ) -- vbsz1=vbsz2_minus_pbsc1_derefidx_vbsz3 + lda _14 + ldy t5 sec - adc _14 + sbc COSQ,y sta _15 - //SEG69 [42] (signed byte~) prepare_matrix::$16 ← (signed byte~) prepare_matrix::$15 + *((const signed byte*) COSQ#0+(const signed byte) prepare_matrix::t8#0) [ prepare_matrix::$16 ] ( main:4::prepare_matrix:9 [ prepare_matrix::$16 ] ) -- vbsz1=vbsz2_plus__deref_pbsc1 - lda COSQ+t8 + //SEG95 [64] (signed byte~) prepare_matrix::$16 ← (signed byte~) prepare_matrix::$15 + *((const signed byte*) COSQ#0 + (signed byte) prepare_matrix::t8#0) [ prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$16 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$16 ] ) -- vbsz1=vbsz2_plus_pbsc1_derefidx_vbsz3 + lda _15 + ldy t8 clc - adc _15 + adc COSQ,y sta _16 - //SEG70 [43] (signed byte~) prepare_matrix::$17 ← (signed byte~) prepare_matrix::$16 - *((const signed byte*) COSQ#0+(const signed byte) prepare_matrix::t7#0) [ prepare_matrix::$17 ] ( main:4::prepare_matrix:9 [ prepare_matrix::$17 ] ) -- vbsz1=vbsz2_minus__deref_pbsc1 - lda COSQ+t7 - eor #$ff + //SEG96 [65] (signed byte~) prepare_matrix::$17 ← (signed byte~) prepare_matrix::$16 - *((const signed byte*) COSQ#0 + (signed byte) prepare_matrix::t7#0) [ prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$17 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$17 ] ) -- vbsz1=vbsz2_minus_pbsc1_derefidx_vbsz3 + lda _16 + ldy t7 sec - adc _16 + sbc COSQ,y sta _17 - //SEG71 [44] *((const signed byte[9]) rotation_matrix#0+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (signed byte~) prepare_matrix::$17 [ ] ( main:4::prepare_matrix:9 [ ] ) -- _deref_pbsc1=vbsz1 + //SEG97 [66] *((const signed byte[9]) rotation_matrix#0+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (signed byte~) prepare_matrix::$17 [ prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 ] ) -- _deref_pbsc1=vbsz1 lda _17 sta rotation_matrix+3 - //SEG72 [45] (signed byte~) prepare_matrix::$18 ← *((const signed byte*) COSH#0+(const signed byte) prepare_matrix::t3#0) + *((const signed byte*) COSH#0+(const signed byte) prepare_matrix::t4#0) [ prepare_matrix::$18 ] ( main:4::prepare_matrix:9 [ prepare_matrix::$18 ] ) -- vbsz1=_deref_pbsc1_plus__deref_pbsc2 - lda COSH+t3 - ldy COSH+t4 - sty $ff + //SEG98 [67] (signed byte~) prepare_matrix::$18 ← *((const signed byte*) COSH#0 + (signed byte) prepare_matrix::t3#0) + *((const signed byte*) COSH#0 + (signed byte) prepare_matrix::t4#0) [ prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$18 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$18 ] ) -- vbsz1=pbsc1_derefidx_vbsz2_plus_pbsc1_derefidx_vbsz3 + ldx t3 + ldy t4 clc - adc $ff + lda COSH,x + adc COSH,y sta _18 - //SEG73 [46] (signed byte~) prepare_matrix::$19 ← (signed byte~) prepare_matrix::$18 + *((const signed byte*) SINQ#0+(const signed byte) prepare_matrix::t5#0) [ prepare_matrix::$19 ] ( main:4::prepare_matrix:9 [ prepare_matrix::$19 ] ) -- vbsz1=vbsz2_plus__deref_pbsc1 - lda SINQ+t5 + //SEG99 [68] (signed byte~) prepare_matrix::$19 ← (signed byte~) prepare_matrix::$18 + *((const signed byte*) SINQ#0 + (signed byte) prepare_matrix::t5#0) [ prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$19 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$19 ] ) -- vbsz1=vbsz2_plus_pbsc1_derefidx_vbsz3 + lda _18 + ldy t5 clc - adc _18 + adc SINQ,y sta _19 - //SEG74 [47] (signed byte~) prepare_matrix::$20 ← (signed byte~) prepare_matrix::$19 - *((const signed byte*) SINQ#0+(const signed byte) prepare_matrix::t6#0) [ prepare_matrix::$20 ] ( main:4::prepare_matrix:9 [ prepare_matrix::$20 ] ) -- vbsz1=vbsz2_minus__deref_pbsc1 - lda SINQ+t6 - eor #$ff + //SEG100 [69] (signed byte~) prepare_matrix::$20 ← (signed byte~) prepare_matrix::$19 - *((const signed byte*) SINQ#0 + (signed byte) prepare_matrix::t6#0) [ prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$20 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$20 ] ) -- vbsz1=vbsz2_minus_pbsc1_derefidx_vbsz3 + lda _19 + ldy t6 sec - adc _19 + sbc SINQ,y sta _20 - //SEG75 [48] (signed byte~) prepare_matrix::$21 ← (signed byte~) prepare_matrix::$20 - *((const signed byte*) SINQ#0+(const signed byte) prepare_matrix::t7#0) [ prepare_matrix::$21 ] ( main:4::prepare_matrix:9 [ prepare_matrix::$21 ] ) -- vbsz1=vbsz2_minus__deref_pbsc1 - lda SINQ+t7 - eor #$ff + //SEG101 [70] (signed byte~) prepare_matrix::$21 ← (signed byte~) prepare_matrix::$20 - *((const signed byte*) SINQ#0 + (signed byte) prepare_matrix::t7#0) [ prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$21 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$21 ] ) -- vbsz1=vbsz2_minus_pbsc1_derefidx_vbsz3 + lda _20 + ldy t7 sec - adc _20 + sbc SINQ,y sta _21 - //SEG76 [49] (signed byte~) prepare_matrix::$22 ← (signed byte~) prepare_matrix::$21 - *((const signed byte*) SINQ#0+(const signed byte) prepare_matrix::t8#0) [ prepare_matrix::$22 ] ( main:4::prepare_matrix:9 [ prepare_matrix::$22 ] ) -- vbsz1=vbsz2_minus__deref_pbsc1 - lda SINQ+t8 - eor #$ff + //SEG102 [71] (signed byte~) prepare_matrix::$22 ← (signed byte~) prepare_matrix::$21 - *((const signed byte*) SINQ#0 + (signed byte) prepare_matrix::t8#0) [ prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$22 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$22 ] ) -- vbsz1=vbsz2_minus_pbsc1_derefidx_vbsz3 + lda _21 + ldy t8 sec - adc _21 + sbc SINQ,y sta _22 - //SEG77 [50] *((const signed byte[9]) rotation_matrix#0+(byte/signed byte/word/signed word/dword/signed dword) 4) ← (signed byte~) prepare_matrix::$22 [ ] ( main:4::prepare_matrix:9 [ ] ) -- _deref_pbsc1=vbsz1 + //SEG103 [72] *((const signed byte[9]) rotation_matrix#0+(byte/signed byte/word/signed word/dword/signed dword) 4) ← (signed byte~) prepare_matrix::$22 [ prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 ] ) -- _deref_pbsc1=vbsz1 lda _22 sta rotation_matrix+4 - //SEG78 [51] (signed byte~) prepare_matrix::$23 ← *((const signed byte*) SINH#0+(const signed byte) prepare_matrix::t9#0) - *((const signed byte*) SINH#0+(const signed byte) prepare_matrix::t10#0) [ prepare_matrix::$23 ] ( main:4::prepare_matrix:9 [ prepare_matrix::$23 ] ) -- vbsz1=_deref_pbsc1_minus__deref_pbsc2 - lda SINH+t9 - ldy SINH+t10 - sty $ff + //SEG104 [73] (signed byte~) prepare_matrix::$23 ← *((const signed byte*) SINH#0 + (signed byte) prepare_matrix::t9#0) - *((const signed byte*) SINH#0 + (signed byte) prepare_matrix::t10#0) [ prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$23 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$23 ] ) -- vbsz1=pbsc1_derefidx_vbsz2_minus_pbsc1_derefidx_vbsz3 + ldx t9 + ldy t10 sec - sbc $ff + lda SINH,x + sbc SINH,y sta _23 - //SEG79 [52] *((const signed byte[9]) rotation_matrix#0+(byte/signed byte/word/signed word/dword/signed dword) 5) ← (signed byte~) prepare_matrix::$23 [ ] ( main:4::prepare_matrix:9 [ ] ) -- _deref_pbsc1=vbsz1 + //SEG105 [74] *((const signed byte[9]) rotation_matrix#0+(byte/signed byte/word/signed word/dword/signed dword) 5) ← (signed byte~) prepare_matrix::$23 [ prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 ] ) -- _deref_pbsc1=vbsz1 lda _23 sta rotation_matrix+5 - //SEG80 [53] (signed byte~) prepare_matrix::$24 ← *((const signed byte*) COSH#0+(const signed byte) prepare_matrix::t4#0) - *((const signed byte*) COSH#0+(const signed byte) prepare_matrix::t3#0) [ prepare_matrix::$24 ] ( main:4::prepare_matrix:9 [ prepare_matrix::$24 ] ) -- vbsz1=_deref_pbsc1_minus__deref_pbsc2 - lda COSH+t4 - ldy COSH+t3 - sty $ff + //SEG106 [75] (signed byte~) prepare_matrix::$24 ← *((const signed byte*) COSH#0 + (signed byte) prepare_matrix::t4#0) - *((const signed byte*) COSH#0 + (signed byte) prepare_matrix::t3#0) [ prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$24 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$24 ] ) -- vbsz1=pbsc1_derefidx_vbsz2_minus_pbsc1_derefidx_vbsz3 + ldx t4 + ldy t3 sec - sbc $ff + lda COSH,x + sbc COSH,y sta _24 - //SEG81 [54] (signed byte~) prepare_matrix::$25 ← (signed byte~) prepare_matrix::$24 + *((const signed byte*) SINQ#0+(const signed byte) prepare_matrix::t6#0) [ prepare_matrix::$25 ] ( main:4::prepare_matrix:9 [ prepare_matrix::$25 ] ) -- vbsz1=vbsz2_plus__deref_pbsc1 - lda SINQ+t6 + //SEG107 [76] (signed byte~) prepare_matrix::$25 ← (signed byte~) prepare_matrix::$24 + *((const signed byte*) SINQ#0 + (signed byte) prepare_matrix::t6#0) [ prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$25 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$25 ] ) -- vbsz1=vbsz2_plus_pbsc1_derefidx_vbsz3 + lda _24 + ldy t6 clc - adc _24 + adc SINQ,y sta _25 - //SEG82 [55] (signed byte~) prepare_matrix::$26 ← (signed byte~) prepare_matrix::$25 - *((const signed byte*) SINQ#0+(const signed byte) prepare_matrix::t5#0) [ prepare_matrix::$26 ] ( main:4::prepare_matrix:9 [ prepare_matrix::$26 ] ) -- vbsz1=vbsz2_minus__deref_pbsc1 - lda SINQ+t5 - eor #$ff + //SEG108 [77] (signed byte~) prepare_matrix::$26 ← (signed byte~) prepare_matrix::$25 - *((const signed byte*) SINQ#0 + (signed byte) prepare_matrix::t5#0) [ prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$26 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$26 ] ) -- vbsz1=vbsz2_minus_pbsc1_derefidx_vbsz3 + lda _25 + ldy t5 sec - adc _25 + sbc SINQ,y sta _26 - //SEG83 [56] (signed byte~) prepare_matrix::$27 ← (signed byte~) prepare_matrix::$26 - *((const signed byte*) SINQ#0+(const signed byte) prepare_matrix::t8#0) [ prepare_matrix::$27 ] ( main:4::prepare_matrix:9 [ prepare_matrix::$27 ] ) -- vbsz1=vbsz2_minus__deref_pbsc1 - lda SINQ+t8 - eor #$ff + //SEG109 [78] (signed byte~) prepare_matrix::$27 ← (signed byte~) prepare_matrix::$26 - *((const signed byte*) SINQ#0 + (signed byte) prepare_matrix::t8#0) [ prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$27 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$27 ] ) -- vbsz1=vbsz2_minus_pbsc1_derefidx_vbsz3 + lda _26 + ldy t8 sec - adc _26 + sbc SINQ,y sta _27 - //SEG84 [57] (signed byte~) prepare_matrix::$28 ← (signed byte~) prepare_matrix::$27 - *((const signed byte*) SINQ#0+(const signed byte) prepare_matrix::t7#0) [ prepare_matrix::$28 ] ( main:4::prepare_matrix:9 [ prepare_matrix::$28 ] ) -- vbsz1=vbsz2_minus__deref_pbsc1 - lda SINQ+t7 - eor #$ff + //SEG110 [79] (signed byte~) prepare_matrix::$28 ← (signed byte~) prepare_matrix::$27 - *((const signed byte*) SINQ#0 + (signed byte) prepare_matrix::t7#0) [ prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$28 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$28 ] ) -- vbsz1=vbsz2_minus_pbsc1_derefidx_vbsz3 + lda _27 + ldy t7 sec - adc _27 + sbc SINQ,y sta _28 - //SEG85 [58] *((const signed byte[9]) rotation_matrix#0+(byte/signed byte/word/signed word/dword/signed dword) 6) ← (signed byte~) prepare_matrix::$28 [ ] ( main:4::prepare_matrix:9 [ ] ) -- _deref_pbsc1=vbsz1 + //SEG111 [80] *((const signed byte[9]) rotation_matrix#0+(byte/signed byte/word/signed word/dword/signed dword) 6) ← (signed byte~) prepare_matrix::$28 [ prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 ] ) -- _deref_pbsc1=vbsz1 lda _28 sta rotation_matrix+6 - //SEG86 [59] (signed byte~) prepare_matrix::$29 ← *((const signed byte*) SINH#0+(const signed byte) prepare_matrix::t3#0) + *((const signed byte*) SINH#0+(const signed byte) prepare_matrix::t4#0) [ prepare_matrix::$29 ] ( main:4::prepare_matrix:9 [ prepare_matrix::$29 ] ) -- vbsz1=_deref_pbsc1_plus__deref_pbsc2 - lda SINH+t3 - ldy SINH+t4 - sty $ff + //SEG112 [81] (signed byte~) prepare_matrix::$29 ← *((const signed byte*) SINH#0 + (signed byte) prepare_matrix::t3#0) + *((const signed byte*) SINH#0 + (signed byte) prepare_matrix::t4#0) [ prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$29 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$29 ] ) -- vbsz1=pbsc1_derefidx_vbsz2_plus_pbsc1_derefidx_vbsz3 + ldx t3 + ldy t4 clc - adc $ff + lda SINH,x + adc SINH,y sta _29 - //SEG87 [60] (signed byte~) prepare_matrix::$30 ← (signed byte~) prepare_matrix::$29 + *((const signed byte*) COSQ#0+(const signed byte) prepare_matrix::t6#0) [ prepare_matrix::$30 ] ( main:4::prepare_matrix:9 [ prepare_matrix::$30 ] ) -- vbsz1=vbsz2_plus__deref_pbsc1 - lda COSQ+t6 + //SEG113 [82] (signed byte~) prepare_matrix::$30 ← (signed byte~) prepare_matrix::$29 + *((const signed byte*) COSQ#0 + (signed byte) prepare_matrix::t6#0) [ prepare_matrix::t5#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$30 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::t5#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$30 ] ) -- vbsz1=vbsz2_plus_pbsc1_derefidx_vbsz3 + lda _29 + ldy t6 clc - adc _29 + adc COSQ,y sta _30 - //SEG88 [61] (signed byte~) prepare_matrix::$31 ← (signed byte~) prepare_matrix::$30 - *((const signed byte*) COSQ#0+(const signed byte) prepare_matrix::t5#0) [ prepare_matrix::$31 ] ( main:4::prepare_matrix:9 [ prepare_matrix::$31 ] ) -- vbsz1=vbsz2_minus__deref_pbsc1 - lda COSQ+t5 - eor #$ff + //SEG114 [83] (signed byte~) prepare_matrix::$31 ← (signed byte~) prepare_matrix::$30 - *((const signed byte*) COSQ#0 + (signed byte) prepare_matrix::t5#0) [ prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$31 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$31 ] ) -- vbsz1=vbsz2_minus_pbsc1_derefidx_vbsz3 + lda _30 + ldy t5 sec - adc _30 + sbc COSQ,y sta _31 - //SEG89 [62] (signed byte~) prepare_matrix::$32 ← (signed byte~) prepare_matrix::$31 + *((const signed byte*) COSQ#0+(const signed byte) prepare_matrix::t7#0) [ prepare_matrix::$32 ] ( main:4::prepare_matrix:9 [ prepare_matrix::$32 ] ) -- vbsz1=vbsz2_plus__deref_pbsc1 - lda COSQ+t7 + //SEG115 [84] (signed byte~) prepare_matrix::$32 ← (signed byte~) prepare_matrix::$31 + *((const signed byte*) COSQ#0 + (signed byte) prepare_matrix::t7#0) [ prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$32 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$32 ] ) -- vbsz1=vbsz2_plus_pbsc1_derefidx_vbsz3 + lda _31 + ldy t7 clc - adc _31 + adc COSQ,y sta _32 - //SEG90 [63] (signed byte~) prepare_matrix::$33 ← (signed byte~) prepare_matrix::$32 - *((const signed byte*) COSQ#0+(const signed byte) prepare_matrix::t8#0) [ prepare_matrix::$33 ] ( main:4::prepare_matrix:9 [ prepare_matrix::$33 ] ) -- vbsz1=vbsz2_minus__deref_pbsc1 - lda COSQ+t8 - eor #$ff + //SEG116 [85] (signed byte~) prepare_matrix::$33 ← (signed byte~) prepare_matrix::$32 - *((const signed byte*) COSQ#0 + (signed byte) prepare_matrix::t8#0) [ prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$33 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$33 ] ) -- vbsz1=vbsz2_minus_pbsc1_derefidx_vbsz3 + lda _32 + ldy t8 sec - adc _32 + sbc COSQ,y sta _33 - //SEG91 [64] *((const signed byte[9]) rotation_matrix#0+(byte/signed byte/word/signed word/dword/signed dword) 7) ← (signed byte~) prepare_matrix::$33 [ ] ( main:4::prepare_matrix:9 [ ] ) -- _deref_pbsc1=vbsz1 + //SEG117 [86] *((const signed byte[9]) rotation_matrix#0+(byte/signed byte/word/signed word/dword/signed dword) 7) ← (signed byte~) prepare_matrix::$33 [ prepare_matrix::t9#0 prepare_matrix::t10#0 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::t9#0 prepare_matrix::t10#0 ] ) -- _deref_pbsc1=vbsz1 lda _33 sta rotation_matrix+7 - //SEG92 [65] (signed byte~) prepare_matrix::$34 ← *((const signed byte*) COSH#0+(const signed byte) prepare_matrix::t9#0) + *((const signed byte*) COSH#0+(const signed byte) prepare_matrix::t10#0) [ prepare_matrix::$34 ] ( main:4::prepare_matrix:9 [ prepare_matrix::$34 ] ) -- vbsz1=_deref_pbsc1_plus__deref_pbsc2 - lda COSH+t9 - ldy COSH+t10 - sty $ff + //SEG118 [87] (signed byte~) prepare_matrix::$34 ← *((const signed byte*) COSH#0 + (signed byte) prepare_matrix::t9#0) + *((const signed byte*) COSH#0 + (signed byte) prepare_matrix::t10#0) [ prepare_matrix::$34 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::$34 ] ) -- vbsz1=pbsc1_derefidx_vbsz2_plus_pbsc1_derefidx_vbsz3 + ldx t9 + ldy t10 clc - adc $ff + lda COSH,x + adc COSH,y sta _34 - //SEG93 [66] *((const signed byte[9]) rotation_matrix#0+(byte/signed byte/word/signed word/dword/signed dword) 8) ← (signed byte~) prepare_matrix::$34 [ ] ( main:4::prepare_matrix:9 [ ] ) -- _deref_pbsc1=vbsz1 + //SEG119 [88] *((const signed byte[9]) rotation_matrix#0+(byte/signed byte/word/signed word/dword/signed dword) 8) ← (signed byte~) prepare_matrix::$34 [ ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 ] ) -- _deref_pbsc1=vbsz1 lda _34 sta rotation_matrix+8 - //SEG94 asm { ldarotation_matrix+0 starotate.A1+1 eor#$ff starotate.A2+1 ldarotation_matrix+1 starotate.B1+1 eor#$ff starotate.B2+1 ldarotation_matrix+2 starotate.C1+1 eor#$ff starotate.C2+1 ldarotation_matrix+3 starotate.D1+1 eor#$ff starotate.D2+1 ldarotation_matrix+4 starotate.E1+1 eor#$ff starotate.E2+1 ldarotation_matrix+5 starotate.F1+1 eor#$ff starotate.F2+1 ldarotation_matrix+6 starotate.G1+1 eor#$ff starotate.G2+1 ldarotation_matrix+7 starotate.H1+1 eor#$ff starotate.H2+1 ldarotation_matrix+8 starotate.I1+1 eor#$ff starotate.I2+1 } + //SEG120 asm { ldarotation_matrix+0 starotate.A1+1 eor#$ff starotate.A2+1 ldarotation_matrix+1 starotate.B1+1 eor#$ff starotate.B2+1 ldarotation_matrix+2 starotate.C1+1 eor#$ff starotate.C2+1 ldarotation_matrix+3 starotate.D1+1 eor#$ff starotate.D2+1 ldarotation_matrix+4 starotate.E1+1 eor#$ff starotate.E2+1 ldarotation_matrix+5 starotate.F1+1 eor#$ff starotate.F2+1 ldarotation_matrix+6 starotate.G1+1 eor#$ff starotate.G2+1 ldarotation_matrix+7 starotate.H1+1 eor#$ff starotate.H2+1 ldarotation_matrix+8 starotate.I1+1 eor#$ff starotate.I2+1 } lda rotation_matrix+0 sta rotate.A1+1 eor #$ff @@ -1612,86 +2330,131 @@ prepare_matrix: { eor #$ff sta rotate.I2+1 jmp breturn - //SEG95 prepare_matrix::@return + //SEG121 prepare_matrix::@return breturn: - //SEG96 [68] return [ ] ( main:4::prepare_matrix:9 [ ] ) + //SEG122 [90] return [ ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 ] ) rts } -//SEG97 mulf_init +//SEG123 mulf_init mulf_init: { - .label _0 = $23 - .label _1 = $24 - .label _2 = $25 - .label _4 = $26 - .label _5 = $27 - .label _6 = $28 - .label sqr1 = 5 - .label add = 8 - .label i = 7 - //SEG98 [70] phi from mulf_init to mulf_init::@1 [phi:mulf_init->mulf_init::@1] + .label _0 = $3b + .label _2 = $3c + .label _3 = $3d + .label _4 = $3e + .label _6 = $3f + .label _7 = $40 + .label _9 = $41 + .label _12 = $42 + .label _13 = $43 + .label _14 = $44 + .label _16 = $45 + .label _17 = $46 + .label sqr1 = 6 + .label add = 9 + .label i = 8 + //SEG124 [92] phi from mulf_init to mulf_init::@1 [phi:mulf_init->mulf_init::@1] b1_from_mulf_init: - //SEG99 [70] phi (signed word) mulf_init::add#2 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:mulf_init->mulf_init::@1#0] -- vwsz1=vbuc1 + //SEG125 [92] phi (signed word) mulf_init::add#2 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:mulf_init->mulf_init::@1#0] -- vwsz1=vbuc1 lda #<1 sta add lda #>1 sta add+1 - //SEG100 [70] phi (byte) mulf_init::i#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:mulf_init->mulf_init::@1#1] -- vbuz1=vbuc1 + //SEG126 [92] phi (byte) mulf_init::i#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:mulf_init->mulf_init::@1#1] -- vbuz1=vbuc1 lda #0 sta i - //SEG101 [70] phi (signed word) mulf_init::sqr1#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:mulf_init->mulf_init::@1#2] -- vwsz1=vbuc1 + //SEG127 [92] phi (signed word) mulf_init::sqr1#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:mulf_init->mulf_init::@1#2] -- vwsz1=vbuc1 lda #<0 sta sqr1 lda #>0 sta sqr1+1 jmp b1 - //SEG102 [70] phi from mulf_init::@1 to mulf_init::@1 [phi:mulf_init::@1->mulf_init::@1] + //SEG128 [92] phi from mulf_init::@1 to mulf_init::@1 [phi:mulf_init::@1->mulf_init::@1] b1_from_b1: - //SEG103 [70] phi (signed word) mulf_init::add#2 = (signed word) mulf_init::add#1 [phi:mulf_init::@1->mulf_init::@1#0] -- register_copy - //SEG104 [70] phi (byte) mulf_init::i#2 = (byte) mulf_init::i#1 [phi:mulf_init::@1->mulf_init::@1#1] -- register_copy - //SEG105 [70] phi (signed word) mulf_init::sqr1#2 = (signed word) mulf_init::sqr1#1 [phi:mulf_init::@1->mulf_init::@1#2] -- register_copy + //SEG129 [92] phi (signed word) mulf_init::add#2 = (signed word) mulf_init::add#1 [phi:mulf_init::@1->mulf_init::@1#0] -- register_copy + //SEG130 [92] phi (byte) mulf_init::i#2 = (byte) mulf_init::i#1 [phi:mulf_init::@1->mulf_init::@1#1] -- register_copy + //SEG131 [92] phi (signed word) mulf_init::sqr1#2 = (signed word) mulf_init::sqr1#1 [phi:mulf_init::@1->mulf_init::@1#2] -- register_copy jmp b1 - //SEG106 mulf_init::@1 + //SEG132 mulf_init::@1 b1: - //SEG107 [71] (byte~) mulf_init::$0 ← > (signed word) mulf_init::sqr1#2 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 mulf_init::$0 ] ( main:4::mulf_init:7 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 mulf_init::$0 ] ) -- vbuz1=_hi_vwsz2 + //SEG133 [93] (byte~) mulf_init::$0 ← > (signed word) mulf_init::sqr1#2 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 mulf_init::$0 ] ( main:5::mulf_init:10 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 mulf_init::$0 ] ) -- vbuz1=_hi_vwsz2 lda sqr1+1 sta _0 - //SEG108 [72] *((const byte[512]) mulf_sqr1#0 + (byte) mulf_init::i#2) ← (byte~) mulf_init::$0 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 ] ( main:4::mulf_init:7 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 ] ) -- pbuc1_derefidx_vbuz1=vbuz2 + //SEG134 [94] *((const byte[512]) mulf_sqr1#0 + (byte) mulf_init::i#2) ← (byte~) mulf_init::$0 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 ] ( main:5::mulf_init:10 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 ] ) -- pbuc1_derefidx_vbuz1=vbuz2 lda _0 ldy i sta mulf_sqr1,y - //SEG109 [73] (byte~) mulf_init::$1 ← - (byte) mulf_init::i#2 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 mulf_init::$1 ] ( main:4::mulf_init:7 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 mulf_init::$1 ] ) -- vbuz1=_neg_vbuz2 + //SEG135 [95] (byte~) mulf_init::$2 ← > (signed word) mulf_init::sqr1#2 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 mulf_init::$2 ] ( main:5::mulf_init:10 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 mulf_init::$2 ] ) -- vbuz1=_hi_vwsz2 + lda sqr1+1 + sta _2 + //SEG136 [96] *((const byte[512]) mulf_sqr1#0+(word/signed word/dword/signed dword) 256 + (byte) mulf_init::i#2) ← (byte~) mulf_init::$2 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 ] ( main:5::mulf_init:10 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 ] ) -- pbuc1_derefidx_vbuz1=vbuz2 + lda _2 + ldy i + sta mulf_sqr1+$100,y + //SEG137 [97] (byte~) mulf_init::$3 ← - (byte) mulf_init::i#2 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 mulf_init::$3 ] ( main:5::mulf_init:10 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 mulf_init::$3 ] ) -- vbuz1=_neg_vbuz2 lda i eor #$ff clc adc #1 - sta _1 - //SEG110 [74] (byte~) mulf_init::$2 ← > (signed word) mulf_init::sqr1#2 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 mulf_init::$1 mulf_init::$2 ] ( main:4::mulf_init:7 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 mulf_init::$1 mulf_init::$2 ] ) -- vbuz1=_hi_vwsz2 - lda sqr1+1 - sta _2 - //SEG111 [75] *((const byte[512]) mulf_sqr1#0 + (byte~) mulf_init::$1) ← (byte~) mulf_init::$2 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 ] ( main:4::mulf_init:7 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 ] ) -- pbuc1_derefidx_vbuz1=vbuz2 - lda _2 - ldy _1 - sta mulf_sqr1,y - //SEG112 [76] (byte~) mulf_init::$4 ← > (signed word) mulf_init::sqr1#2 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 mulf_init::$4 ] ( main:4::mulf_init:7 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 mulf_init::$4 ] ) -- vbuz1=_hi_vwsz2 + sta _3 + //SEG138 [98] (byte~) mulf_init::$4 ← > (signed word) mulf_init::sqr1#2 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 mulf_init::$3 mulf_init::$4 ] ( main:5::mulf_init:10 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 mulf_init::$3 mulf_init::$4 ] ) -- vbuz1=_hi_vwsz2 lda sqr1+1 sta _4 - //SEG113 [77] *((const byte[512]) mulf_sqr2#0+(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) mulf_init::i#2) ← (byte~) mulf_init::$4 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 ] ( main:4::mulf_init:7 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 ] ) -- pbuc1_derefidx_vbuz1=vbuz2 + //SEG139 [99] *((const byte[512]) mulf_sqr1#0 + (byte~) mulf_init::$3) ← (byte~) mulf_init::$4 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 ] ( main:5::mulf_init:10 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 ] ) -- pbuc1_derefidx_vbuz1=vbuz2 lda _4 + ldy _3 + sta mulf_sqr1,y + //SEG140 [100] (byte~) mulf_init::$6 ← - (byte) mulf_init::i#2 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 mulf_init::$6 ] ( main:5::mulf_init:10 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 mulf_init::$6 ] ) -- vbuz1=_neg_vbuz2 + lda i + eor #$ff + clc + adc #1 + sta _6 + //SEG141 [101] (byte~) mulf_init::$7 ← > (signed word) mulf_init::sqr1#2 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 mulf_init::$6 mulf_init::$7 ] ( main:5::mulf_init:10 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 mulf_init::$6 mulf_init::$7 ] ) -- vbuz1=_hi_vwsz2 + lda sqr1+1 + sta _7 + //SEG142 [102] *((const byte[512]) mulf_sqr1#0+(word/signed word/dword/signed dword) 256 + (byte~) mulf_init::$6) ← (byte~) mulf_init::$7 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 ] ( main:5::mulf_init:10 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 ] ) -- pbuc1_derefidx_vbuz1=vbuz2 + lda _7 + ldy _6 + sta mulf_sqr1+$100,y + //SEG143 [103] (byte~) mulf_init::$9 ← > (signed word) mulf_init::sqr1#2 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 mulf_init::$9 ] ( main:5::mulf_init:10 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 mulf_init::$9 ] ) -- vbuz1=_hi_vwsz2 + lda sqr1+1 + sta _9 + //SEG144 [104] *((const byte[512]) mulf_sqr2#0+(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) mulf_init::i#2) ← (byte~) mulf_init::$9 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 ] ( main:5::mulf_init:10 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 ] ) -- pbuc1_derefidx_vbuz1=vbuz2 + lda _9 ldy i sta mulf_sqr2+1,y - //SEG114 [78] (byte/signed word/word/dword/signed dword~) mulf_init::$5 ← (byte/signed byte/word/signed word/dword/signed dword) 1 - (byte) mulf_init::i#2 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 mulf_init::$5 ] ( main:4::mulf_init:7 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 mulf_init::$5 ] ) -- vbuz1=vbuc1_minus_vbuz2 + //SEG145 [105] (byte~) mulf_init::$12 ← > (signed word) mulf_init::sqr1#2 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 mulf_init::$12 ] ( main:5::mulf_init:10 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 mulf_init::$12 ] ) -- vbuz1=_hi_vwsz2 + lda sqr1+1 + sta _12 + //SEG146 [106] *((const byte[512]) mulf_sqr2#0+(word/signed word/dword/signed dword) 256+(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) mulf_init::i#2) ← (byte~) mulf_init::$12 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 ] ( main:5::mulf_init:10 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 ] ) -- pbuc1_derefidx_vbuz1=vbuz2 + lda _12 + ldy i + sta mulf_sqr2+$100+1,y + //SEG147 [107] (byte/signed word/word/dword/signed dword~) mulf_init::$13 ← (byte/signed byte/word/signed word/dword/signed dword) 1 - (byte) mulf_init::i#2 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 mulf_init::$13 ] ( main:5::mulf_init:10 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 mulf_init::$13 ] ) -- vbuz1=vbuc1_minus_vbuz2 lda #1 sec sbc i - sta _5 - //SEG115 [79] (byte~) mulf_init::$6 ← > (signed word) mulf_init::sqr1#2 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 mulf_init::$5 mulf_init::$6 ] ( main:4::mulf_init:7 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 mulf_init::$5 mulf_init::$6 ] ) -- vbuz1=_hi_vwsz2 + sta _13 + //SEG148 [108] (byte~) mulf_init::$14 ← > (signed word) mulf_init::sqr1#2 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 mulf_init::$13 mulf_init::$14 ] ( main:5::mulf_init:10 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 mulf_init::$13 mulf_init::$14 ] ) -- vbuz1=_hi_vwsz2 lda sqr1+1 - sta _6 - //SEG116 [80] *((const byte[512]) mulf_sqr2#0 + (byte/signed word/word/dword/signed dword~) mulf_init::$5) ← (byte~) mulf_init::$6 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 ] ( main:4::mulf_init:7 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 ] ) -- pbuc1_derefidx_vbuz1=vbuz2 - lda _6 - ldy _5 + sta _14 + //SEG149 [109] *((const byte[512]) mulf_sqr2#0 + (byte/signed word/word/dword/signed dword~) mulf_init::$13) ← (byte~) mulf_init::$14 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 ] ( main:5::mulf_init:10 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 ] ) -- pbuc1_derefidx_vbuz1=vbuz2 + lda _14 + ldy _13 sta mulf_sqr2,y - //SEG117 [81] (signed word) mulf_init::sqr1#1 ← (signed word) mulf_init::sqr1#2 + (signed word) mulf_init::add#2 [ mulf_init::i#2 mulf_init::add#2 mulf_init::sqr1#1 ] ( main:4::mulf_init:7 [ mulf_init::i#2 mulf_init::add#2 mulf_init::sqr1#1 ] ) -- vwsz1=vwsz1_plus_vwsz2 + //SEG150 [110] (byte/signed word/word/dword/signed dword~) mulf_init::$16 ← (byte/signed byte/word/signed word/dword/signed dword) 1 - (byte) mulf_init::i#2 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 mulf_init::$16 ] ( main:5::mulf_init:10 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 mulf_init::$16 ] ) -- vbuz1=vbuc1_minus_vbuz2 + lda #1 + sec + sbc i + sta _16 + //SEG151 [111] (byte~) mulf_init::$17 ← > (signed word) mulf_init::sqr1#2 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 mulf_init::$16 mulf_init::$17 ] ( main:5::mulf_init:10 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 mulf_init::$16 mulf_init::$17 ] ) -- vbuz1=_hi_vwsz2 + lda sqr1+1 + sta _17 + //SEG152 [112] *((const byte[512]) mulf_sqr2#0+(word/signed word/dword/signed dword) 256 + (byte/signed word/word/dword/signed dword~) mulf_init::$16) ← (byte~) mulf_init::$17 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 ] ( main:5::mulf_init:10 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 ] ) -- pbuc1_derefidx_vbuz1=vbuz2 + lda _17 + ldy _16 + sta mulf_sqr2+$100,y + //SEG153 [113] (signed word) mulf_init::sqr1#1 ← (signed word) mulf_init::sqr1#2 + (signed word) mulf_init::add#2 [ mulf_init::i#2 mulf_init::add#2 mulf_init::sqr1#1 ] ( main:5::mulf_init:10 [ mulf_init::i#2 mulf_init::add#2 mulf_init::sqr1#1 ] ) -- vwsz1=vwsz1_plus_vwsz2 lda sqr1 clc adc add @@ -1699,7 +2462,7 @@ mulf_init: { lda sqr1+1 adc add+1 sta sqr1+1 - //SEG118 [82] (signed word) mulf_init::add#1 ← (signed word) mulf_init::add#2 + (byte/signed byte/word/signed word/dword/signed dword) 2 [ mulf_init::i#2 mulf_init::sqr1#1 mulf_init::add#1 ] ( main:4::mulf_init:7 [ mulf_init::i#2 mulf_init::sqr1#1 mulf_init::add#1 ] ) -- vwsz1=vwsz1_plus_2 + //SEG154 [114] (signed word) mulf_init::add#1 ← (signed word) mulf_init::add#2 + (byte/signed byte/word/signed word/dword/signed dword) 2 [ mulf_init::i#2 mulf_init::sqr1#1 mulf_init::add#1 ] ( main:5::mulf_init:10 [ mulf_init::i#2 mulf_init::sqr1#1 mulf_init::add#1 ] ) -- vwsz1=vwsz1_plus_2 lda add clc adc #2 @@ -1707,16 +2470,55 @@ mulf_init: { bcc !+ inc add+1 !: - //SEG119 [83] (byte) mulf_init::i#1 ← ++ (byte) mulf_init::i#2 [ mulf_init::sqr1#1 mulf_init::i#1 mulf_init::add#1 ] ( main:4::mulf_init:7 [ mulf_init::sqr1#1 mulf_init::i#1 mulf_init::add#1 ] ) -- vbuz1=_inc_vbuz1 + //SEG155 [115] (byte) mulf_init::i#1 ← ++ (byte) mulf_init::i#2 [ mulf_init::sqr1#1 mulf_init::i#1 mulf_init::add#1 ] ( main:5::mulf_init:10 [ mulf_init::sqr1#1 mulf_init::i#1 mulf_init::add#1 ] ) -- vbuz1=_inc_vbuz1 inc i - //SEG120 [84] if((byte) mulf_init::i#1!=(byte/word/signed word/dword/signed dword) 129) goto mulf_init::@1 [ mulf_init::sqr1#1 mulf_init::i#1 mulf_init::add#1 ] ( main:4::mulf_init:7 [ mulf_init::sqr1#1 mulf_init::i#1 mulf_init::add#1 ] ) -- vbuz1_neq_vbuc1_then_la1 + //SEG156 [116] if((byte) mulf_init::i#1!=(byte/word/signed word/dword/signed dword) 129) goto mulf_init::@1 [ mulf_init::sqr1#1 mulf_init::i#1 mulf_init::add#1 ] ( main:5::mulf_init:10 [ mulf_init::sqr1#1 mulf_init::i#1 mulf_init::add#1 ] ) -- vbuz1_neq_vbuc1_then_la1 lda i cmp #$81 bne b1_from_b1 jmp breturn - //SEG121 mulf_init::@return + //SEG157 mulf_init::@return breturn: - //SEG122 [85] return [ ] ( main:4::mulf_init:7 [ ] ) + //SEG158 [117] return [ ] ( main:5::mulf_init:10 [ ] ) + rts +} +//SEG159 sprites_init +sprites_init: { + .label sprites_ptr = SCREEN+$3f8 + .label i = $b + //SEG160 [118] *((const byte*) SPRITES_ENABLE#0) ← (byte/word/signed word/dword/signed dword) 255 [ ] ( main:5::sprites_init:8 [ ] ) -- _deref_pbuc1=vbuc2 + lda #$ff + sta SPRITES_ENABLE + //SEG161 [119] phi from sprites_init to sprites_init::@1 [phi:sprites_init->sprites_init::@1] + b1_from_sprites_init: + //SEG162 [119] phi (byte) sprites_init::i#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:sprites_init->sprites_init::@1#0] -- vbuz1=vbuc1 + lda #0 + sta i + jmp b1 + //SEG163 [119] phi from sprites_init::@1 to sprites_init::@1 [phi:sprites_init::@1->sprites_init::@1] + b1_from_b1: + //SEG164 [119] phi (byte) sprites_init::i#2 = (byte) sprites_init::i#1 [phi:sprites_init::@1->sprites_init::@1#0] -- register_copy + jmp b1 + //SEG165 sprites_init::@1 + b1: + //SEG166 [120] *((const byte*) sprites_init::sprites_ptr#0 + (byte) sprites_init::i#2) ← ((byte))(const byte*) SPRITE#0/(byte/signed byte/word/signed word/dword/signed dword) 64 [ sprites_init::i#2 ] ( main:5::sprites_init:8 [ sprites_init::i#2 ] ) -- pbuc1_derefidx_vbuz1=vbuc2 + ldy i + lda #$ff&SPRITE/$40 + sta sprites_ptr,y + //SEG167 [121] *((const byte*) SPRITES_COLS#0 + (byte) sprites_init::i#2) ← (const byte) GREEN#0 [ sprites_init::i#2 ] ( main:5::sprites_init:8 [ sprites_init::i#2 ] ) -- pbuc1_derefidx_vbuz1=vbuc2 + ldy i + lda #GREEN + sta SPRITES_COLS,y + //SEG168 [122] (byte) sprites_init::i#1 ← ++ (byte) sprites_init::i#2 [ sprites_init::i#1 ] ( main:5::sprites_init:8 [ sprites_init::i#1 ] ) -- vbuz1=_inc_vbuz1 + inc i + //SEG169 [123] if((byte) sprites_init::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 8) goto sprites_init::@1 [ sprites_init::i#1 ] ( main:5::sprites_init:8 [ sprites_init::i#1 ] ) -- vbuz1_neq_vbuc1_then_la1 + lda i + cmp #8 + bne b1_from_b1 + jmp breturn + //SEG170 sprites_init::@return + breturn: + //SEG171 [124] return [ ] ( main:5::sprites_init:8 [ ] ) rts } .align $100 @@ -1724,6 +2526,15 @@ mulf_init: { .align $100 mulf_sqr2: .fill $200, 0 rotation_matrix: .fill 9, 0 + xs: .byte -$3f, -$3f, -$3f, -$3f, $3f, $3f, $3f, $3f + ys: .byte -$3f, -$3f, $3f, $3f, -$3f, -$3f, $3f, $3f + zs: .byte -$3f, $3f, -$3f, $3f, -$3f, $3f, -$3f, $3f +.pc = SPRITE "Inline" + .var pic = LoadPicture("balloon.png", List().add($000000, $ffffff)) + .for (var y=0; y<21; y++) + .for (var x=0;x<3; x++) + .byte pic.getSinglecolorByte(x,y) + .pc = COSH "Inline" { .var min = -$1fff @@ -1748,218 +2559,467 @@ mulf_init: { REGISTER UPLIFT POTENTIAL REGISTERS -Statement [10] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto main::@4 [ ] ( main:4 [ ] ) always clobbers reg byte a -Statement [13] *((const byte*) main::SCREEN#0) ← (byte)*((const signed byte*) xr#0) [ ] ( main:4 [ ] ) always clobbers reg byte a -Statement [14] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte)*((const signed byte*) yr#0) [ ] ( main:4 [ ] ) always clobbers reg byte a -Statement [15] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte)*((const signed byte*) zr#0) [ ] ( main:4 [ ] ) always clobbers reg byte a -Statement [18] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40) ← (byte)*((const signed byte*) xr#0) [ ] ( main:4 [ ] ) always clobbers reg byte a -Statement [19] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 41) ← (byte)*((const signed byte*) yr#0) [ ] ( main:4 [ ] ) always clobbers reg byte a -Statement [20] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 42) ← (byte)*((const signed byte*) zr#0) [ ] ( main:4 [ ] ) always clobbers reg byte a -Statement [23] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 80) ← (byte)*((const signed byte*) xr#0) [ ] ( main:4 [ ] ) always clobbers reg byte a -Statement [24] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 81) ← (byte)*((const signed byte*) yr#0) [ ] ( main:4 [ ] ) always clobbers reg byte a -Statement [25] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 82) ← (byte)*((const signed byte*) zr#0) [ ] ( main:4 [ ] ) always clobbers reg byte a -Statement [26] *((const byte*) BORDERCOL#0) ← (const byte) LIGHT_BLUE#0 [ ] ( main:4 [ ] ) always clobbers reg byte a -Statement asm { clc ldxzr lda#$80 C1: adcmulf_sqr1,x C2: sbcmulf_sqr2,x staC3+1 lda#$80 F1: adcmulf_sqr1,x F2: sbcmulf_sqr2,x staF3+1 lda#$80 I1: adcmulf_sqr1,x I2: sbcmulf_sqr2,x staI3+1 ldxxr ldyyr C3: lda#0 A1: adcmulf_sqr1,x A2: sbcmulf_sqr2,x B1: adcmulf_sqr1,y B2: sbcmulf_sqr2,y staxr F3: lda#0 D1: adcmulf_sqr1,x D2: sbcmulf_sqr2,x E1: adcmulf_sqr1,y E2: sbcmulf_sqr2,y stayr I3: lda#0 G1: adcmulf_sqr1,x G2: sbcmulf_sqr2,x H1: adcmulf_sqr1,y H2: sbcmulf_sqr2,y stazr } always clobbers reg byte a reg byte x reg byte y -Statement [33] (signed byte~) prepare_matrix::$10 ← *((const signed byte*) COSH#0+(const signed byte) prepare_matrix::t1#0) + *((const signed byte*) COSH#0+(const signed byte) prepare_matrix::t2#0) [ prepare_matrix::$10 ] ( main:4::prepare_matrix:9 [ prepare_matrix::$10 ] ) always clobbers reg byte a -Statement [35] (signed byte~) prepare_matrix::$11 ← *((const signed byte*) SINH#0+(const signed byte) prepare_matrix::t1#0) - *((const signed byte*) SINH#0+(const signed byte) prepare_matrix::t2#0) [ prepare_matrix::$11 ] ( main:4::prepare_matrix:9 [ prepare_matrix::$11 ] ) always clobbers reg byte a -Statement [37] (signed byte~) prepare_matrix::$12 ← *((const signed byte*) SINH#0+(const signed byte) prepare_matrix::sy#0) + *((const signed byte*) SINH#0+(const signed byte) prepare_matrix::sy#0) [ prepare_matrix::$12 ] ( main:4::prepare_matrix:9 [ prepare_matrix::$12 ] ) always clobbers reg byte a -Statement [39] (signed byte~) prepare_matrix::$13 ← *((const signed byte*) SINH#0+(const signed byte) prepare_matrix::t3#0) - *((const signed byte*) SINH#0+(const signed byte) prepare_matrix::t4#0) [ prepare_matrix::$13 ] ( main:4::prepare_matrix:9 [ prepare_matrix::$13 ] ) always clobbers reg byte a -Statement [40] (signed byte~) prepare_matrix::$14 ← (signed byte~) prepare_matrix::$13 + *((const signed byte*) COSQ#0+(const signed byte) prepare_matrix::t6#0) [ prepare_matrix::$14 ] ( main:4::prepare_matrix:9 [ prepare_matrix::$14 ] ) always clobbers reg byte a -Statement [41] (signed byte~) prepare_matrix::$15 ← (signed byte~) prepare_matrix::$14 - *((const signed byte*) COSQ#0+(const signed byte) prepare_matrix::t5#0) [ prepare_matrix::$15 ] ( main:4::prepare_matrix:9 [ prepare_matrix::$15 ] ) always clobbers reg byte a -Statement [42] (signed byte~) prepare_matrix::$16 ← (signed byte~) prepare_matrix::$15 + *((const signed byte*) COSQ#0+(const signed byte) prepare_matrix::t8#0) [ prepare_matrix::$16 ] ( main:4::prepare_matrix:9 [ prepare_matrix::$16 ] ) always clobbers reg byte a -Statement [43] (signed byte~) prepare_matrix::$17 ← (signed byte~) prepare_matrix::$16 - *((const signed byte*) COSQ#0+(const signed byte) prepare_matrix::t7#0) [ prepare_matrix::$17 ] ( main:4::prepare_matrix:9 [ prepare_matrix::$17 ] ) always clobbers reg byte a -Statement [45] (signed byte~) prepare_matrix::$18 ← *((const signed byte*) COSH#0+(const signed byte) prepare_matrix::t3#0) + *((const signed byte*) COSH#0+(const signed byte) prepare_matrix::t4#0) [ prepare_matrix::$18 ] ( main:4::prepare_matrix:9 [ prepare_matrix::$18 ] ) always clobbers reg byte a -Statement [46] (signed byte~) prepare_matrix::$19 ← (signed byte~) prepare_matrix::$18 + *((const signed byte*) SINQ#0+(const signed byte) prepare_matrix::t5#0) [ prepare_matrix::$19 ] ( main:4::prepare_matrix:9 [ prepare_matrix::$19 ] ) always clobbers reg byte a -Statement [47] (signed byte~) prepare_matrix::$20 ← (signed byte~) prepare_matrix::$19 - *((const signed byte*) SINQ#0+(const signed byte) prepare_matrix::t6#0) [ prepare_matrix::$20 ] ( main:4::prepare_matrix:9 [ prepare_matrix::$20 ] ) always clobbers reg byte a -Statement [48] (signed byte~) prepare_matrix::$21 ← (signed byte~) prepare_matrix::$20 - *((const signed byte*) SINQ#0+(const signed byte) prepare_matrix::t7#0) [ prepare_matrix::$21 ] ( main:4::prepare_matrix:9 [ prepare_matrix::$21 ] ) always clobbers reg byte a -Statement [49] (signed byte~) prepare_matrix::$22 ← (signed byte~) prepare_matrix::$21 - *((const signed byte*) SINQ#0+(const signed byte) prepare_matrix::t8#0) [ prepare_matrix::$22 ] ( main:4::prepare_matrix:9 [ prepare_matrix::$22 ] ) always clobbers reg byte a -Statement [51] (signed byte~) prepare_matrix::$23 ← *((const signed byte*) SINH#0+(const signed byte) prepare_matrix::t9#0) - *((const signed byte*) SINH#0+(const signed byte) prepare_matrix::t10#0) [ prepare_matrix::$23 ] ( main:4::prepare_matrix:9 [ prepare_matrix::$23 ] ) always clobbers reg byte a -Statement [53] (signed byte~) prepare_matrix::$24 ← *((const signed byte*) COSH#0+(const signed byte) prepare_matrix::t4#0) - *((const signed byte*) COSH#0+(const signed byte) prepare_matrix::t3#0) [ prepare_matrix::$24 ] ( main:4::prepare_matrix:9 [ prepare_matrix::$24 ] ) always clobbers reg byte a -Statement [54] (signed byte~) prepare_matrix::$25 ← (signed byte~) prepare_matrix::$24 + *((const signed byte*) SINQ#0+(const signed byte) prepare_matrix::t6#0) [ prepare_matrix::$25 ] ( main:4::prepare_matrix:9 [ prepare_matrix::$25 ] ) always clobbers reg byte a -Statement [55] (signed byte~) prepare_matrix::$26 ← (signed byte~) prepare_matrix::$25 - *((const signed byte*) SINQ#0+(const signed byte) prepare_matrix::t5#0) [ prepare_matrix::$26 ] ( main:4::prepare_matrix:9 [ prepare_matrix::$26 ] ) always clobbers reg byte a -Statement [56] (signed byte~) prepare_matrix::$27 ← (signed byte~) prepare_matrix::$26 - *((const signed byte*) SINQ#0+(const signed byte) prepare_matrix::t8#0) [ prepare_matrix::$27 ] ( main:4::prepare_matrix:9 [ prepare_matrix::$27 ] ) always clobbers reg byte a -Statement [57] (signed byte~) prepare_matrix::$28 ← (signed byte~) prepare_matrix::$27 - *((const signed byte*) SINQ#0+(const signed byte) prepare_matrix::t7#0) [ prepare_matrix::$28 ] ( main:4::prepare_matrix:9 [ prepare_matrix::$28 ] ) always clobbers reg byte a -Statement [59] (signed byte~) prepare_matrix::$29 ← *((const signed byte*) SINH#0+(const signed byte) prepare_matrix::t3#0) + *((const signed byte*) SINH#0+(const signed byte) prepare_matrix::t4#0) [ prepare_matrix::$29 ] ( main:4::prepare_matrix:9 [ prepare_matrix::$29 ] ) always clobbers reg byte a -Statement [60] (signed byte~) prepare_matrix::$30 ← (signed byte~) prepare_matrix::$29 + *((const signed byte*) COSQ#0+(const signed byte) prepare_matrix::t6#0) [ prepare_matrix::$30 ] ( main:4::prepare_matrix:9 [ prepare_matrix::$30 ] ) always clobbers reg byte a -Statement [61] (signed byte~) prepare_matrix::$31 ← (signed byte~) prepare_matrix::$30 - *((const signed byte*) COSQ#0+(const signed byte) prepare_matrix::t5#0) [ prepare_matrix::$31 ] ( main:4::prepare_matrix:9 [ prepare_matrix::$31 ] ) always clobbers reg byte a -Statement [62] (signed byte~) prepare_matrix::$32 ← (signed byte~) prepare_matrix::$31 + *((const signed byte*) COSQ#0+(const signed byte) prepare_matrix::t7#0) [ prepare_matrix::$32 ] ( main:4::prepare_matrix:9 [ prepare_matrix::$32 ] ) always clobbers reg byte a -Statement [63] (signed byte~) prepare_matrix::$33 ← (signed byte~) prepare_matrix::$32 - *((const signed byte*) COSQ#0+(const signed byte) prepare_matrix::t8#0) [ prepare_matrix::$33 ] ( main:4::prepare_matrix:9 [ prepare_matrix::$33 ] ) always clobbers reg byte a -Statement [65] (signed byte~) prepare_matrix::$34 ← *((const signed byte*) COSH#0+(const signed byte) prepare_matrix::t9#0) + *((const signed byte*) COSH#0+(const signed byte) prepare_matrix::t10#0) [ prepare_matrix::$34 ] ( main:4::prepare_matrix:9 [ prepare_matrix::$34 ] ) always clobbers reg byte a +Statement [12] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto main::@4 [ main::sx#6 main::sy#5 main::sz#5 ] ( main:5 [ main::sx#6 main::sy#5 main::sz#5 ] ) always clobbers reg byte a +Removing always clobbered register reg byte a as potential for zp ZP_BYTE:2 [ main::sx#6 main::sx#12 main::sx#1 ] +Removing always clobbered register reg byte a as potential for zp ZP_BYTE:3 [ main::sy#5 main::sy#1 ] +Removing always clobbered register reg byte a as potential for zp ZP_BYTE:4 [ main::sz#5 main::sz#1 ] +Statement [20] (byte~) main::$4 ← (signed byte) main::sy#1 & (byte/signed byte/word/signed word/dword/signed dword) 1 [ main::sx#6 main::sy#1 main::sz#1 main::$4 ] ( main:5 [ main::sx#6 main::sy#1 main::sz#1 main::$4 ] ) always clobbers reg byte a +Statement [30] (byte) main::i2#0 ← (byte) main::i#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ main::sx#12 main::sy#1 main::sz#1 main::i#2 main::i2#0 ] ( main:5 [ main::sx#12 main::sy#1 main::sz#1 main::i#2 main::i2#0 ] ) always clobbers reg byte a +Removing always clobbered register reg byte a as potential for zp ZP_BYTE:5 [ main::i#2 main::i#1 ] +Statement [31] (signed byte~) main::$9 ← *((const signed byte*) xr#0) >> (byte/signed byte/word/signed word/dword/signed dword) 1 [ main::sx#12 main::sy#1 main::sz#1 main::i#2 main::i2#0 main::$9 ] ( main:5 [ main::sx#12 main::sy#1 main::sz#1 main::i#2 main::i2#0 main::$9 ] ) always clobbers reg byte a +Removing always clobbered register reg byte a as potential for zp ZP_BYTE:19 [ main::i2#0 ] +Statement [32] (byte/word/signed word/dword/signed dword~) main::$11 ← (byte/word/signed word/dword/signed dword) 128 + (byte)(signed byte~) main::$9 [ main::sx#12 main::sy#1 main::sz#1 main::i#2 main::i2#0 main::$11 ] ( main:5 [ main::sx#12 main::sy#1 main::sz#1 main::i#2 main::i2#0 main::$11 ] ) always clobbers reg byte a +Statement [34] (signed byte~) main::$12 ← *((const signed byte*) yr#0) >> (byte/signed byte/word/signed word/dword/signed dword) 1 [ main::sx#12 main::sy#1 main::sz#1 main::i#2 main::i2#0 main::$12 ] ( main:5 [ main::sx#12 main::sy#1 main::sz#1 main::i#2 main::i2#0 main::$12 ] ) always clobbers reg byte a +Statement [35] (byte/word/signed word/dword/signed dword~) main::$14 ← (byte/word/signed word/dword/signed dword) 128 + (byte)(signed byte~) main::$12 [ main::sx#12 main::sy#1 main::sz#1 main::i#2 main::i2#0 main::$14 ] ( main:5 [ main::sx#12 main::sy#1 main::sz#1 main::i#2 main::i2#0 main::$14 ] ) always clobbers reg byte a +Statement [39] *((const byte*) BORDERCOL#0) ← (const byte) LIGHT_BLUE#0 [ main::sx#12 main::sy#1 main::sz#1 ] ( main:5 [ main::sx#12 main::sy#1 main::sz#1 ] ) always clobbers reg byte a +Statement asm { clc ldxzr lda#$0 C1: adcmulf_sqr1,x C2: sbcmulf_sqr2,x staC3+1 lda#0 F1: adcmulf_sqr1,x F2: sbcmulf_sqr2,x staF3+1 lda#0 I1: adcmulf_sqr1,x I2: sbcmulf_sqr2,x staI3+1 ldxxr ldyyr C3: lda#0 A1: adcmulf_sqr1,x A2: sbcmulf_sqr2,x B1: adcmulf_sqr1,y B2: sbcmulf_sqr2,y staxr F3: lda#0 D1: adcmulf_sqr1,x D2: sbcmulf_sqr2,x E1: adcmulf_sqr1,y E2: sbcmulf_sqr2,y stayr I3: lda#0 G1: adcmulf_sqr1,x G2: sbcmulf_sqr2,x H1: adcmulf_sqr1,y H2: sbcmulf_sqr2,y stazr } always clobbers reg byte a reg byte x reg byte y +Removing always clobbered register reg byte x as potential for zp ZP_BYTE:2 [ main::sx#6 main::sx#12 main::sx#1 ] +Removing always clobbered register reg byte y as potential for zp ZP_BYTE:2 [ main::sx#6 main::sx#12 main::sx#1 ] +Removing always clobbered register reg byte x as potential for zp ZP_BYTE:3 [ main::sy#5 main::sy#1 ] +Removing always clobbered register reg byte y as potential for zp ZP_BYTE:3 [ main::sy#5 main::sy#1 ] +Removing always clobbered register reg byte x as potential for zp ZP_BYTE:4 [ main::sz#5 main::sz#1 ] +Removing always clobbered register reg byte y as potential for zp ZP_BYTE:4 [ main::sz#5 main::sz#1 ] +Removing always clobbered register reg byte x as potential for zp ZP_BYTE:5 [ main::i#2 main::i#1 ] +Removing always clobbered register reg byte y as potential for zp ZP_BYTE:5 [ main::i#2 main::i#1 ] +Statement [45] (signed byte) prepare_matrix::t1#0 ← (signed byte) prepare_matrix::sy#0 - (signed byte) prepare_matrix::sz#0 [ prepare_matrix::sx#0 prepare_matrix::sy#0 prepare_matrix::sz#0 prepare_matrix::t1#0 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::sx#0 prepare_matrix::sy#0 prepare_matrix::sz#0 prepare_matrix::t1#0 ] ) always clobbers reg byte a +Removing always clobbered register reg byte a as potential for zp ZP_BYTE:12 [ prepare_matrix::sx#0 ] +Removing always clobbered register reg byte a as potential for zp ZP_BYTE:13 [ prepare_matrix::sy#0 ] +Removing always clobbered register reg byte a as potential for zp ZP_BYTE:14 [ prepare_matrix::sz#0 ] +Statement [46] (signed byte) prepare_matrix::t2#0 ← (signed byte) prepare_matrix::sy#0 + (signed byte) prepare_matrix::sz#0 [ prepare_matrix::sx#0 prepare_matrix::sy#0 prepare_matrix::sz#0 prepare_matrix::t1#0 prepare_matrix::t2#0 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::sx#0 prepare_matrix::sy#0 prepare_matrix::sz#0 prepare_matrix::t1#0 prepare_matrix::t2#0 ] ) always clobbers reg byte a +Removing always clobbered register reg byte a as potential for zp ZP_BYTE:24 [ prepare_matrix::t1#0 ] +Statement [47] (signed byte) prepare_matrix::t3#0 ← (signed byte) prepare_matrix::sx#0 + (signed byte) prepare_matrix::sz#0 [ prepare_matrix::sx#0 prepare_matrix::sy#0 prepare_matrix::sz#0 prepare_matrix::t1#0 prepare_matrix::t2#0 prepare_matrix::t3#0 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::sx#0 prepare_matrix::sy#0 prepare_matrix::sz#0 prepare_matrix::t1#0 prepare_matrix::t2#0 prepare_matrix::t3#0 ] ) always clobbers reg byte a +Removing always clobbered register reg byte a as potential for zp ZP_BYTE:25 [ prepare_matrix::t2#0 ] +Statement [48] (signed byte) prepare_matrix::t4#0 ← (signed byte) prepare_matrix::sx#0 - (signed byte) prepare_matrix::sz#0 [ prepare_matrix::sx#0 prepare_matrix::sy#0 prepare_matrix::t1#0 prepare_matrix::t2#0 prepare_matrix::t3#0 prepare_matrix::t4#0 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::sx#0 prepare_matrix::sy#0 prepare_matrix::t1#0 prepare_matrix::t2#0 prepare_matrix::t3#0 prepare_matrix::t4#0 ] ) always clobbers reg byte a +Removing always clobbered register reg byte a as potential for zp ZP_BYTE:26 [ prepare_matrix::t3#0 ] +Statement [49] (signed byte) prepare_matrix::t5#0 ← (signed byte) prepare_matrix::sx#0 + (signed byte) prepare_matrix::t2#0 [ prepare_matrix::sx#0 prepare_matrix::sy#0 prepare_matrix::t1#0 prepare_matrix::t2#0 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::sx#0 prepare_matrix::sy#0 prepare_matrix::t1#0 prepare_matrix::t2#0 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 ] ) always clobbers reg byte a +Removing always clobbered register reg byte a as potential for zp ZP_BYTE:27 [ prepare_matrix::t4#0 ] +Statement [50] (signed byte) prepare_matrix::t6#0 ← (signed byte) prepare_matrix::sx#0 - (signed byte) prepare_matrix::t1#0 [ prepare_matrix::sx#0 prepare_matrix::sy#0 prepare_matrix::t1#0 prepare_matrix::t2#0 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::sx#0 prepare_matrix::sy#0 prepare_matrix::t1#0 prepare_matrix::t2#0 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 ] ) always clobbers reg byte a +Removing always clobbered register reg byte a as potential for zp ZP_BYTE:28 [ prepare_matrix::t5#0 ] +Statement [51] (signed byte) prepare_matrix::t7#0 ← (signed byte) prepare_matrix::sx#0 + (signed byte) prepare_matrix::t1#0 [ prepare_matrix::sx#0 prepare_matrix::sy#0 prepare_matrix::t1#0 prepare_matrix::t2#0 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::sx#0 prepare_matrix::sy#0 prepare_matrix::t1#0 prepare_matrix::t2#0 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 ] ) always clobbers reg byte a +Removing always clobbered register reg byte a as potential for zp ZP_BYTE:29 [ prepare_matrix::t6#0 ] +Statement [52] (signed byte) prepare_matrix::t8#0 ← (signed byte) prepare_matrix::t2#0 - (signed byte) prepare_matrix::sx#0 [ prepare_matrix::sx#0 prepare_matrix::sy#0 prepare_matrix::t1#0 prepare_matrix::t2#0 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::sx#0 prepare_matrix::sy#0 prepare_matrix::t1#0 prepare_matrix::t2#0 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 ] ) always clobbers reg byte a +Removing always clobbered register reg byte a as potential for zp ZP_BYTE:30 [ prepare_matrix::t7#0 ] +Statement [53] (signed byte) prepare_matrix::t9#0 ← (signed byte) prepare_matrix::sy#0 - (signed byte) prepare_matrix::sx#0 [ prepare_matrix::sx#0 prepare_matrix::sy#0 prepare_matrix::t1#0 prepare_matrix::t2#0 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::sx#0 prepare_matrix::sy#0 prepare_matrix::t1#0 prepare_matrix::t2#0 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 ] ) always clobbers reg byte a +Removing always clobbered register reg byte a as potential for zp ZP_BYTE:31 [ prepare_matrix::t8#0 ] +Statement [54] (signed byte) prepare_matrix::t10#0 ← (signed byte) prepare_matrix::sy#0 + (signed byte) prepare_matrix::sx#0 [ prepare_matrix::sy#0 prepare_matrix::t1#0 prepare_matrix::t2#0 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::sy#0 prepare_matrix::t1#0 prepare_matrix::t2#0 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 ] ) always clobbers reg byte a +Removing always clobbered register reg byte a as potential for zp ZP_BYTE:32 [ prepare_matrix::t9#0 ] +Statement [55] (signed byte~) prepare_matrix::$10 ← *((const signed byte*) COSH#0 + (signed byte) prepare_matrix::t1#0) + *((const signed byte*) COSH#0 + (signed byte) prepare_matrix::t2#0) [ prepare_matrix::sy#0 prepare_matrix::t1#0 prepare_matrix::t2#0 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$10 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::sy#0 prepare_matrix::t1#0 prepare_matrix::t2#0 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$10 ] ) always clobbers reg byte a +Removing always clobbered register reg byte a as potential for zp ZP_BYTE:33 [ prepare_matrix::t10#0 ] +Statement [57] (signed byte~) prepare_matrix::$11 ← *((const signed byte*) SINH#0 + (signed byte) prepare_matrix::t1#0) - *((const signed byte*) SINH#0 + (signed byte) prepare_matrix::t2#0) [ prepare_matrix::sy#0 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$11 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::sy#0 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$11 ] ) always clobbers reg byte a +Statement [59] (signed byte~) prepare_matrix::$12 ← *((const signed byte*) SINH#0 + (signed byte) prepare_matrix::sy#0) + *((const signed byte*) SINH#0 + (signed byte) prepare_matrix::sy#0) [ prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$12 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$12 ] ) always clobbers reg byte a +Statement [61] (signed byte~) prepare_matrix::$13 ← *((const signed byte*) SINH#0 + (signed byte) prepare_matrix::t3#0) - *((const signed byte*) SINH#0 + (signed byte) prepare_matrix::t4#0) [ prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$13 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$13 ] ) always clobbers reg byte a +Statement [62] (signed byte~) prepare_matrix::$14 ← (signed byte~) prepare_matrix::$13 + *((const signed byte*) COSQ#0 + (signed byte) prepare_matrix::t6#0) [ prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$14 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$14 ] ) always clobbers reg byte a +Potential register analysis [63] prepare_matrix::$15 ← prepare_matrix::$14 - *(COSQ#0 + prepare_matrix::t5#0) missing fragment vbsaa=vbsxx_minus_pbsc1_derefidx_vbsxx allocation: reg byte x [ prepare_matrix::$14 ] reg byte a [ prepare_matrix::$15 ] reg byte x [ prepare_matrix::t5#0 ] +Potential register analysis [63] prepare_matrix::$15 ← prepare_matrix::$14 - *(COSQ#0 + prepare_matrix::t5#0) missing fragment vbsaa=vbsyy_minus_pbsc1_derefidx_vbsyy allocation: reg byte y [ prepare_matrix::$14 ] reg byte a [ prepare_matrix::$15 ] reg byte y [ prepare_matrix::t5#0 ] +MISSING FRAGMENTS + vbsaa=vbsxx_minus_pbsc1_derefidx_vbsxx + vbsaa=vbsyy_minus_pbsc1_derefidx_vbsyy +Statement [63] (signed byte~) prepare_matrix::$15 ← (signed byte~) prepare_matrix::$14 - *((const signed byte*) COSQ#0 + (signed byte) prepare_matrix::t5#0) [ prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$15 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$15 ] ) always clobbers reg byte a +Statement [64] (signed byte~) prepare_matrix::$16 ← (signed byte~) prepare_matrix::$15 + *((const signed byte*) COSQ#0 + (signed byte) prepare_matrix::t8#0) [ prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$16 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$16 ] ) always clobbers reg byte a +Potential register analysis [65] prepare_matrix::$17 ← prepare_matrix::$16 - *(COSQ#0 + prepare_matrix::t7#0) missing fragment vbsaa=vbsxx_minus_pbsc1_derefidx_vbsxx allocation: reg byte x [ prepare_matrix::t7#0 ] reg byte x [ prepare_matrix::$16 ] reg byte a [ prepare_matrix::$17 ] +Potential register analysis [65] prepare_matrix::$17 ← prepare_matrix::$16 - *(COSQ#0 + prepare_matrix::t7#0) missing fragment vbsaa=vbsyy_minus_pbsc1_derefidx_vbsyy allocation: reg byte y [ prepare_matrix::t7#0 ] reg byte y [ prepare_matrix::$16 ] reg byte a [ prepare_matrix::$17 ] +MISSING FRAGMENTS + vbsaa=vbsxx_minus_pbsc1_derefidx_vbsxx + vbsaa=vbsyy_minus_pbsc1_derefidx_vbsyy +Statement [65] (signed byte~) prepare_matrix::$17 ← (signed byte~) prepare_matrix::$16 - *((const signed byte*) COSQ#0 + (signed byte) prepare_matrix::t7#0) [ prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$17 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$17 ] ) always clobbers reg byte a +Statement [67] (signed byte~) prepare_matrix::$18 ← *((const signed byte*) COSH#0 + (signed byte) prepare_matrix::t3#0) + *((const signed byte*) COSH#0 + (signed byte) prepare_matrix::t4#0) [ prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$18 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$18 ] ) always clobbers reg byte a +Statement [68] (signed byte~) prepare_matrix::$19 ← (signed byte~) prepare_matrix::$18 + *((const signed byte*) SINQ#0 + (signed byte) prepare_matrix::t5#0) [ prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$19 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$19 ] ) always clobbers reg byte a +Potential register analysis [69] prepare_matrix::$20 ← prepare_matrix::$19 - *(SINQ#0 + prepare_matrix::t6#0) missing fragment vbsaa=vbsxx_minus_pbsc1_derefidx_vbsxx allocation: reg byte x [ prepare_matrix::t6#0 ] reg byte a [ prepare_matrix::$20 ] reg byte x [ prepare_matrix::$19 ] +Potential register analysis [69] prepare_matrix::$20 ← prepare_matrix::$19 - *(SINQ#0 + prepare_matrix::t6#0) missing fragment vbsaa=vbsyy_minus_pbsc1_derefidx_vbsyy allocation: reg byte y [ prepare_matrix::t6#0 ] reg byte a [ prepare_matrix::$20 ] reg byte y [ prepare_matrix::$19 ] +MISSING FRAGMENTS + vbsaa=vbsxx_minus_pbsc1_derefidx_vbsxx + vbsaa=vbsyy_minus_pbsc1_derefidx_vbsyy +Statement [69] (signed byte~) prepare_matrix::$20 ← (signed byte~) prepare_matrix::$19 - *((const signed byte*) SINQ#0 + (signed byte) prepare_matrix::t6#0) [ prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$20 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$20 ] ) always clobbers reg byte a +Potential register analysis [70] prepare_matrix::$21 ← prepare_matrix::$20 - *(SINQ#0 + prepare_matrix::t7#0) missing fragment vbsaa=vbsxx_minus_pbsc1_derefidx_vbsxx allocation: reg byte x [ prepare_matrix::t7#0 ] reg byte x [ prepare_matrix::$20 ] reg byte a [ prepare_matrix::$21 ] +Potential register analysis [70] prepare_matrix::$21 ← prepare_matrix::$20 - *(SINQ#0 + prepare_matrix::t7#0) missing fragment vbsaa=vbsyy_minus_pbsc1_derefidx_vbsyy allocation: reg byte y [ prepare_matrix::t7#0 ] reg byte y [ prepare_matrix::$20 ] reg byte a [ prepare_matrix::$21 ] +MISSING FRAGMENTS + vbsaa=vbsxx_minus_pbsc1_derefidx_vbsxx + vbsaa=vbsyy_minus_pbsc1_derefidx_vbsyy +Statement [70] (signed byte~) prepare_matrix::$21 ← (signed byte~) prepare_matrix::$20 - *((const signed byte*) SINQ#0 + (signed byte) prepare_matrix::t7#0) [ prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$21 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$21 ] ) always clobbers reg byte a +Potential register analysis [71] prepare_matrix::$22 ← prepare_matrix::$21 - *(SINQ#0 + prepare_matrix::t8#0) missing fragment vbsaa=vbsxx_minus_pbsc1_derefidx_vbsxx allocation: reg byte x [ prepare_matrix::$21 ] reg byte x [ prepare_matrix::t8#0 ] reg byte a [ prepare_matrix::$22 ] +Potential register analysis [71] prepare_matrix::$22 ← prepare_matrix::$21 - *(SINQ#0 + prepare_matrix::t8#0) missing fragment vbsaa=vbsyy_minus_pbsc1_derefidx_vbsyy allocation: reg byte y [ prepare_matrix::$21 ] reg byte y [ prepare_matrix::t8#0 ] reg byte a [ prepare_matrix::$22 ] +MISSING FRAGMENTS + vbsaa=vbsxx_minus_pbsc1_derefidx_vbsxx + vbsaa=vbsyy_minus_pbsc1_derefidx_vbsyy +Statement [71] (signed byte~) prepare_matrix::$22 ← (signed byte~) prepare_matrix::$21 - *((const signed byte*) SINQ#0 + (signed byte) prepare_matrix::t8#0) [ prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$22 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$22 ] ) always clobbers reg byte a +Statement [73] (signed byte~) prepare_matrix::$23 ← *((const signed byte*) SINH#0 + (signed byte) prepare_matrix::t9#0) - *((const signed byte*) SINH#0 + (signed byte) prepare_matrix::t10#0) [ prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$23 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$23 ] ) always clobbers reg byte a +Statement [75] (signed byte~) prepare_matrix::$24 ← *((const signed byte*) COSH#0 + (signed byte) prepare_matrix::t4#0) - *((const signed byte*) COSH#0 + (signed byte) prepare_matrix::t3#0) [ prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$24 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$24 ] ) always clobbers reg byte a +Statement [76] (signed byte~) prepare_matrix::$25 ← (signed byte~) prepare_matrix::$24 + *((const signed byte*) SINQ#0 + (signed byte) prepare_matrix::t6#0) [ prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$25 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$25 ] ) always clobbers reg byte a +Potential register analysis [77] prepare_matrix::$26 ← prepare_matrix::$25 - *(SINQ#0 + prepare_matrix::t5#0) missing fragment vbsaa=vbsxx_minus_pbsc1_derefidx_vbsxx allocation: reg byte x [ prepare_matrix::$25 ] reg byte a [ prepare_matrix::$26 ] reg byte x [ prepare_matrix::t5#0 ] +Potential register analysis [77] prepare_matrix::$26 ← prepare_matrix::$25 - *(SINQ#0 + prepare_matrix::t5#0) missing fragment vbsaa=vbsyy_minus_pbsc1_derefidx_vbsyy allocation: reg byte y [ prepare_matrix::$25 ] reg byte a [ prepare_matrix::$26 ] reg byte y [ prepare_matrix::t5#0 ] +MISSING FRAGMENTS + vbsaa=vbsxx_minus_pbsc1_derefidx_vbsxx + vbsaa=vbsyy_minus_pbsc1_derefidx_vbsyy +Statement [77] (signed byte~) prepare_matrix::$26 ← (signed byte~) prepare_matrix::$25 - *((const signed byte*) SINQ#0 + (signed byte) prepare_matrix::t5#0) [ prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$26 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$26 ] ) always clobbers reg byte a +Potential register analysis [78] prepare_matrix::$27 ← prepare_matrix::$26 - *(SINQ#0 + prepare_matrix::t8#0) missing fragment vbsaa=vbsxx_minus_pbsc1_derefidx_vbsxx allocation: reg byte x [ prepare_matrix::t8#0 ] reg byte x [ prepare_matrix::$26 ] reg byte a [ prepare_matrix::$27 ] +Potential register analysis [78] prepare_matrix::$27 ← prepare_matrix::$26 - *(SINQ#0 + prepare_matrix::t8#0) missing fragment vbsaa=vbsyy_minus_pbsc1_derefidx_vbsyy allocation: reg byte y [ prepare_matrix::t8#0 ] reg byte y [ prepare_matrix::$26 ] reg byte a [ prepare_matrix::$27 ] +MISSING FRAGMENTS + vbsaa=vbsxx_minus_pbsc1_derefidx_vbsxx + vbsaa=vbsyy_minus_pbsc1_derefidx_vbsyy +Statement [78] (signed byte~) prepare_matrix::$27 ← (signed byte~) prepare_matrix::$26 - *((const signed byte*) SINQ#0 + (signed byte) prepare_matrix::t8#0) [ prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$27 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$27 ] ) always clobbers reg byte a +Potential register analysis [79] prepare_matrix::$28 ← prepare_matrix::$27 - *(SINQ#0 + prepare_matrix::t7#0) missing fragment vbsaa=vbsxx_minus_pbsc1_derefidx_vbsxx allocation: reg byte x [ prepare_matrix::t7#0 ] reg byte x [ prepare_matrix::$27 ] reg byte a [ prepare_matrix::$28 ] +Potential register analysis [79] prepare_matrix::$28 ← prepare_matrix::$27 - *(SINQ#0 + prepare_matrix::t7#0) missing fragment vbsaa=vbsyy_minus_pbsc1_derefidx_vbsyy allocation: reg byte y [ prepare_matrix::t7#0 ] reg byte y [ prepare_matrix::$27 ] reg byte a [ prepare_matrix::$28 ] +MISSING FRAGMENTS + vbsaa=vbsxx_minus_pbsc1_derefidx_vbsxx + vbsaa=vbsyy_minus_pbsc1_derefidx_vbsyy +Statement [79] (signed byte~) prepare_matrix::$28 ← (signed byte~) prepare_matrix::$27 - *((const signed byte*) SINQ#0 + (signed byte) prepare_matrix::t7#0) [ prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$28 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$28 ] ) always clobbers reg byte a +Statement [81] (signed byte~) prepare_matrix::$29 ← *((const signed byte*) SINH#0 + (signed byte) prepare_matrix::t3#0) + *((const signed byte*) SINH#0 + (signed byte) prepare_matrix::t4#0) [ prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$29 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$29 ] ) always clobbers reg byte a +Statement [82] (signed byte~) prepare_matrix::$30 ← (signed byte~) prepare_matrix::$29 + *((const signed byte*) COSQ#0 + (signed byte) prepare_matrix::t6#0) [ prepare_matrix::t5#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$30 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::t5#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$30 ] ) always clobbers reg byte a +Potential register analysis [83] prepare_matrix::$31 ← prepare_matrix::$30 - *(COSQ#0 + prepare_matrix::t5#0) missing fragment vbsaa=vbsxx_minus_pbsc1_derefidx_vbsxx allocation: reg byte x [ prepare_matrix::$30 ] reg byte a [ prepare_matrix::$31 ] reg byte x [ prepare_matrix::t5#0 ] +Potential register analysis [83] prepare_matrix::$31 ← prepare_matrix::$30 - *(COSQ#0 + prepare_matrix::t5#0) missing fragment vbsaa=vbsyy_minus_pbsc1_derefidx_vbsyy allocation: reg byte y [ prepare_matrix::$30 ] reg byte a [ prepare_matrix::$31 ] reg byte y [ prepare_matrix::t5#0 ] +MISSING FRAGMENTS + vbsaa=vbsxx_minus_pbsc1_derefidx_vbsxx + vbsaa=vbsyy_minus_pbsc1_derefidx_vbsyy +Statement [83] (signed byte~) prepare_matrix::$31 ← (signed byte~) prepare_matrix::$30 - *((const signed byte*) COSQ#0 + (signed byte) prepare_matrix::t5#0) [ prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$31 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$31 ] ) always clobbers reg byte a +Statement [84] (signed byte~) prepare_matrix::$32 ← (signed byte~) prepare_matrix::$31 + *((const signed byte*) COSQ#0 + (signed byte) prepare_matrix::t7#0) [ prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$32 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$32 ] ) always clobbers reg byte a +Potential register analysis [85] prepare_matrix::$33 ← prepare_matrix::$32 - *(COSQ#0 + prepare_matrix::t8#0) missing fragment vbsaa=vbsxx_minus_pbsc1_derefidx_vbsxx allocation: reg byte x [ prepare_matrix::$32 ] reg byte x [ prepare_matrix::t8#0 ] reg byte a [ prepare_matrix::$33 ] +Potential register analysis [85] prepare_matrix::$33 ← prepare_matrix::$32 - *(COSQ#0 + prepare_matrix::t8#0) missing fragment vbsaa=vbsyy_minus_pbsc1_derefidx_vbsyy allocation: reg byte y [ prepare_matrix::$32 ] reg byte y [ prepare_matrix::t8#0 ] reg byte a [ prepare_matrix::$33 ] +MISSING FRAGMENTS + vbsaa=vbsxx_minus_pbsc1_derefidx_vbsxx + vbsaa=vbsyy_minus_pbsc1_derefidx_vbsyy +Statement [85] (signed byte~) prepare_matrix::$33 ← (signed byte~) prepare_matrix::$32 - *((const signed byte*) COSQ#0 + (signed byte) prepare_matrix::t8#0) [ prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$33 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$33 ] ) always clobbers reg byte a +Statement [87] (signed byte~) prepare_matrix::$34 ← *((const signed byte*) COSH#0 + (signed byte) prepare_matrix::t9#0) + *((const signed byte*) COSH#0 + (signed byte) prepare_matrix::t10#0) [ prepare_matrix::$34 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::$34 ] ) always clobbers reg byte a Statement asm { ldarotation_matrix+0 starotate.A1+1 eor#$ff starotate.A2+1 ldarotation_matrix+1 starotate.B1+1 eor#$ff starotate.B2+1 ldarotation_matrix+2 starotate.C1+1 eor#$ff starotate.C2+1 ldarotation_matrix+3 starotate.D1+1 eor#$ff starotate.D2+1 ldarotation_matrix+4 starotate.E1+1 eor#$ff starotate.E2+1 ldarotation_matrix+5 starotate.F1+1 eor#$ff starotate.F2+1 ldarotation_matrix+6 starotate.G1+1 eor#$ff starotate.G2+1 ldarotation_matrix+7 starotate.H1+1 eor#$ff starotate.H2+1 ldarotation_matrix+8 starotate.I1+1 eor#$ff starotate.I2+1 } always clobbers reg byte a -Statement [71] (byte~) mulf_init::$0 ← > (signed word) mulf_init::sqr1#2 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 mulf_init::$0 ] ( main:4::mulf_init:7 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 mulf_init::$0 ] ) always clobbers reg byte a -Removing always clobbered register reg byte a as potential for zp ZP_BYTE:7 [ mulf_init::i#2 mulf_init::i#1 ] -Statement [73] (byte~) mulf_init::$1 ← - (byte) mulf_init::i#2 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 mulf_init::$1 ] ( main:4::mulf_init:7 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 mulf_init::$1 ] ) always clobbers reg byte a -Statement [74] (byte~) mulf_init::$2 ← > (signed word) mulf_init::sqr1#2 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 mulf_init::$1 mulf_init::$2 ] ( main:4::mulf_init:7 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 mulf_init::$1 mulf_init::$2 ] ) always clobbers reg byte a -Removing always clobbered register reg byte a as potential for zp ZP_BYTE:36 [ mulf_init::$1 ] -Statement [76] (byte~) mulf_init::$4 ← > (signed word) mulf_init::sqr1#2 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 mulf_init::$4 ] ( main:4::mulf_init:7 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 mulf_init::$4 ] ) always clobbers reg byte a -Statement [78] (byte/signed word/word/dword/signed dword~) mulf_init::$5 ← (byte/signed byte/word/signed word/dword/signed dword) 1 - (byte) mulf_init::i#2 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 mulf_init::$5 ] ( main:4::mulf_init:7 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 mulf_init::$5 ] ) always clobbers reg byte a -Statement [79] (byte~) mulf_init::$6 ← > (signed word) mulf_init::sqr1#2 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 mulf_init::$5 mulf_init::$6 ] ( main:4::mulf_init:7 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 mulf_init::$5 mulf_init::$6 ] ) always clobbers reg byte a -Removing always clobbered register reg byte a as potential for zp ZP_BYTE:39 [ mulf_init::$5 ] -Statement [81] (signed word) mulf_init::sqr1#1 ← (signed word) mulf_init::sqr1#2 + (signed word) mulf_init::add#2 [ mulf_init::i#2 mulf_init::add#2 mulf_init::sqr1#1 ] ( main:4::mulf_init:7 [ mulf_init::i#2 mulf_init::add#2 mulf_init::sqr1#1 ] ) always clobbers reg byte a -Statement [82] (signed word) mulf_init::add#1 ← (signed word) mulf_init::add#2 + (byte/signed byte/word/signed word/dword/signed dword) 2 [ mulf_init::i#2 mulf_init::sqr1#1 mulf_init::add#1 ] ( main:4::mulf_init:7 [ mulf_init::i#2 mulf_init::sqr1#1 mulf_init::add#1 ] ) always clobbers reg byte a -Statement [10] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto main::@4 [ ] ( main:4 [ ] ) always clobbers reg byte a -Statement [13] *((const byte*) main::SCREEN#0) ← (byte)*((const signed byte*) xr#0) [ ] ( main:4 [ ] ) always clobbers reg byte a -Statement [14] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte)*((const signed byte*) yr#0) [ ] ( main:4 [ ] ) always clobbers reg byte a -Statement [15] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte)*((const signed byte*) zr#0) [ ] ( main:4 [ ] ) always clobbers reg byte a -Statement [18] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40) ← (byte)*((const signed byte*) xr#0) [ ] ( main:4 [ ] ) always clobbers reg byte a -Statement [19] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 41) ← (byte)*((const signed byte*) yr#0) [ ] ( main:4 [ ] ) always clobbers reg byte a -Statement [20] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 42) ← (byte)*((const signed byte*) zr#0) [ ] ( main:4 [ ] ) always clobbers reg byte a -Statement [23] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 80) ← (byte)*((const signed byte*) xr#0) [ ] ( main:4 [ ] ) always clobbers reg byte a -Statement [24] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 81) ← (byte)*((const signed byte*) yr#0) [ ] ( main:4 [ ] ) always clobbers reg byte a -Statement [25] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 82) ← (byte)*((const signed byte*) zr#0) [ ] ( main:4 [ ] ) always clobbers reg byte a -Statement [26] *((const byte*) BORDERCOL#0) ← (const byte) LIGHT_BLUE#0 [ ] ( main:4 [ ] ) always clobbers reg byte a -Statement asm { clc ldxzr lda#$80 C1: adcmulf_sqr1,x C2: sbcmulf_sqr2,x staC3+1 lda#$80 F1: adcmulf_sqr1,x F2: sbcmulf_sqr2,x staF3+1 lda#$80 I1: adcmulf_sqr1,x I2: sbcmulf_sqr2,x staI3+1 ldxxr ldyyr C3: lda#0 A1: adcmulf_sqr1,x A2: sbcmulf_sqr2,x B1: adcmulf_sqr1,y B2: sbcmulf_sqr2,y staxr F3: lda#0 D1: adcmulf_sqr1,x D2: sbcmulf_sqr2,x E1: adcmulf_sqr1,y E2: sbcmulf_sqr2,y stayr I3: lda#0 G1: adcmulf_sqr1,x G2: sbcmulf_sqr2,x H1: adcmulf_sqr1,y H2: sbcmulf_sqr2,y stazr } always clobbers reg byte a reg byte x reg byte y -Statement [33] (signed byte~) prepare_matrix::$10 ← *((const signed byte*) COSH#0+(const signed byte) prepare_matrix::t1#0) + *((const signed byte*) COSH#0+(const signed byte) prepare_matrix::t2#0) [ prepare_matrix::$10 ] ( main:4::prepare_matrix:9 [ prepare_matrix::$10 ] ) always clobbers reg byte a -Statement [35] (signed byte~) prepare_matrix::$11 ← *((const signed byte*) SINH#0+(const signed byte) prepare_matrix::t1#0) - *((const signed byte*) SINH#0+(const signed byte) prepare_matrix::t2#0) [ prepare_matrix::$11 ] ( main:4::prepare_matrix:9 [ prepare_matrix::$11 ] ) always clobbers reg byte a -Statement [37] (signed byte~) prepare_matrix::$12 ← *((const signed byte*) SINH#0+(const signed byte) prepare_matrix::sy#0) + *((const signed byte*) SINH#0+(const signed byte) prepare_matrix::sy#0) [ prepare_matrix::$12 ] ( main:4::prepare_matrix:9 [ prepare_matrix::$12 ] ) always clobbers reg byte a -Statement [39] (signed byte~) prepare_matrix::$13 ← *((const signed byte*) SINH#0+(const signed byte) prepare_matrix::t3#0) - *((const signed byte*) SINH#0+(const signed byte) prepare_matrix::t4#0) [ prepare_matrix::$13 ] ( main:4::prepare_matrix:9 [ prepare_matrix::$13 ] ) always clobbers reg byte a -Statement [40] (signed byte~) prepare_matrix::$14 ← (signed byte~) prepare_matrix::$13 + *((const signed byte*) COSQ#0+(const signed byte) prepare_matrix::t6#0) [ prepare_matrix::$14 ] ( main:4::prepare_matrix:9 [ prepare_matrix::$14 ] ) always clobbers reg byte a -Statement [41] (signed byte~) prepare_matrix::$15 ← (signed byte~) prepare_matrix::$14 - *((const signed byte*) COSQ#0+(const signed byte) prepare_matrix::t5#0) [ prepare_matrix::$15 ] ( main:4::prepare_matrix:9 [ prepare_matrix::$15 ] ) always clobbers reg byte a -Statement [42] (signed byte~) prepare_matrix::$16 ← (signed byte~) prepare_matrix::$15 + *((const signed byte*) COSQ#0+(const signed byte) prepare_matrix::t8#0) [ prepare_matrix::$16 ] ( main:4::prepare_matrix:9 [ prepare_matrix::$16 ] ) always clobbers reg byte a -Statement [43] (signed byte~) prepare_matrix::$17 ← (signed byte~) prepare_matrix::$16 - *((const signed byte*) COSQ#0+(const signed byte) prepare_matrix::t7#0) [ prepare_matrix::$17 ] ( main:4::prepare_matrix:9 [ prepare_matrix::$17 ] ) always clobbers reg byte a -Statement [45] (signed byte~) prepare_matrix::$18 ← *((const signed byte*) COSH#0+(const signed byte) prepare_matrix::t3#0) + *((const signed byte*) COSH#0+(const signed byte) prepare_matrix::t4#0) [ prepare_matrix::$18 ] ( main:4::prepare_matrix:9 [ prepare_matrix::$18 ] ) always clobbers reg byte a -Statement [46] (signed byte~) prepare_matrix::$19 ← (signed byte~) prepare_matrix::$18 + *((const signed byte*) SINQ#0+(const signed byte) prepare_matrix::t5#0) [ prepare_matrix::$19 ] ( main:4::prepare_matrix:9 [ prepare_matrix::$19 ] ) always clobbers reg byte a -Statement [47] (signed byte~) prepare_matrix::$20 ← (signed byte~) prepare_matrix::$19 - *((const signed byte*) SINQ#0+(const signed byte) prepare_matrix::t6#0) [ prepare_matrix::$20 ] ( main:4::prepare_matrix:9 [ prepare_matrix::$20 ] ) always clobbers reg byte a -Statement [48] (signed byte~) prepare_matrix::$21 ← (signed byte~) prepare_matrix::$20 - *((const signed byte*) SINQ#0+(const signed byte) prepare_matrix::t7#0) [ prepare_matrix::$21 ] ( main:4::prepare_matrix:9 [ prepare_matrix::$21 ] ) always clobbers reg byte a -Statement [49] (signed byte~) prepare_matrix::$22 ← (signed byte~) prepare_matrix::$21 - *((const signed byte*) SINQ#0+(const signed byte) prepare_matrix::t8#0) [ prepare_matrix::$22 ] ( main:4::prepare_matrix:9 [ prepare_matrix::$22 ] ) always clobbers reg byte a -Statement [51] (signed byte~) prepare_matrix::$23 ← *((const signed byte*) SINH#0+(const signed byte) prepare_matrix::t9#0) - *((const signed byte*) SINH#0+(const signed byte) prepare_matrix::t10#0) [ prepare_matrix::$23 ] ( main:4::prepare_matrix:9 [ prepare_matrix::$23 ] ) always clobbers reg byte a -Statement [53] (signed byte~) prepare_matrix::$24 ← *((const signed byte*) COSH#0+(const signed byte) prepare_matrix::t4#0) - *((const signed byte*) COSH#0+(const signed byte) prepare_matrix::t3#0) [ prepare_matrix::$24 ] ( main:4::prepare_matrix:9 [ prepare_matrix::$24 ] ) always clobbers reg byte a -Statement [54] (signed byte~) prepare_matrix::$25 ← (signed byte~) prepare_matrix::$24 + *((const signed byte*) SINQ#0+(const signed byte) prepare_matrix::t6#0) [ prepare_matrix::$25 ] ( main:4::prepare_matrix:9 [ prepare_matrix::$25 ] ) always clobbers reg byte a -Statement [55] (signed byte~) prepare_matrix::$26 ← (signed byte~) prepare_matrix::$25 - *((const signed byte*) SINQ#0+(const signed byte) prepare_matrix::t5#0) [ prepare_matrix::$26 ] ( main:4::prepare_matrix:9 [ prepare_matrix::$26 ] ) always clobbers reg byte a -Statement [56] (signed byte~) prepare_matrix::$27 ← (signed byte~) prepare_matrix::$26 - *((const signed byte*) SINQ#0+(const signed byte) prepare_matrix::t8#0) [ prepare_matrix::$27 ] ( main:4::prepare_matrix:9 [ prepare_matrix::$27 ] ) always clobbers reg byte a -Statement [57] (signed byte~) prepare_matrix::$28 ← (signed byte~) prepare_matrix::$27 - *((const signed byte*) SINQ#0+(const signed byte) prepare_matrix::t7#0) [ prepare_matrix::$28 ] ( main:4::prepare_matrix:9 [ prepare_matrix::$28 ] ) always clobbers reg byte a -Statement [59] (signed byte~) prepare_matrix::$29 ← *((const signed byte*) SINH#0+(const signed byte) prepare_matrix::t3#0) + *((const signed byte*) SINH#0+(const signed byte) prepare_matrix::t4#0) [ prepare_matrix::$29 ] ( main:4::prepare_matrix:9 [ prepare_matrix::$29 ] ) always clobbers reg byte a -Statement [60] (signed byte~) prepare_matrix::$30 ← (signed byte~) prepare_matrix::$29 + *((const signed byte*) COSQ#0+(const signed byte) prepare_matrix::t6#0) [ prepare_matrix::$30 ] ( main:4::prepare_matrix:9 [ prepare_matrix::$30 ] ) always clobbers reg byte a -Statement [61] (signed byte~) prepare_matrix::$31 ← (signed byte~) prepare_matrix::$30 - *((const signed byte*) COSQ#0+(const signed byte) prepare_matrix::t5#0) [ prepare_matrix::$31 ] ( main:4::prepare_matrix:9 [ prepare_matrix::$31 ] ) always clobbers reg byte a -Statement [62] (signed byte~) prepare_matrix::$32 ← (signed byte~) prepare_matrix::$31 + *((const signed byte*) COSQ#0+(const signed byte) prepare_matrix::t7#0) [ prepare_matrix::$32 ] ( main:4::prepare_matrix:9 [ prepare_matrix::$32 ] ) always clobbers reg byte a -Statement [63] (signed byte~) prepare_matrix::$33 ← (signed byte~) prepare_matrix::$32 - *((const signed byte*) COSQ#0+(const signed byte) prepare_matrix::t8#0) [ prepare_matrix::$33 ] ( main:4::prepare_matrix:9 [ prepare_matrix::$33 ] ) always clobbers reg byte a -Statement [65] (signed byte~) prepare_matrix::$34 ← *((const signed byte*) COSH#0+(const signed byte) prepare_matrix::t9#0) + *((const signed byte*) COSH#0+(const signed byte) prepare_matrix::t10#0) [ prepare_matrix::$34 ] ( main:4::prepare_matrix:9 [ prepare_matrix::$34 ] ) always clobbers reg byte a +Statement [93] (byte~) mulf_init::$0 ← > (signed word) mulf_init::sqr1#2 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 mulf_init::$0 ] ( main:5::mulf_init:10 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 mulf_init::$0 ] ) always clobbers reg byte a +Removing always clobbered register reg byte a as potential for zp ZP_BYTE:8 [ mulf_init::i#2 mulf_init::i#1 ] +Statement [95] (byte~) mulf_init::$2 ← > (signed word) mulf_init::sqr1#2 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 mulf_init::$2 ] ( main:5::mulf_init:10 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 mulf_init::$2 ] ) always clobbers reg byte a +Statement [97] (byte~) mulf_init::$3 ← - (byte) mulf_init::i#2 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 mulf_init::$3 ] ( main:5::mulf_init:10 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 mulf_init::$3 ] ) always clobbers reg byte a +Statement [98] (byte~) mulf_init::$4 ← > (signed word) mulf_init::sqr1#2 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 mulf_init::$3 mulf_init::$4 ] ( main:5::mulf_init:10 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 mulf_init::$3 mulf_init::$4 ] ) always clobbers reg byte a +Removing always clobbered register reg byte a as potential for zp ZP_BYTE:61 [ mulf_init::$3 ] +Statement [100] (byte~) mulf_init::$6 ← - (byte) mulf_init::i#2 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 mulf_init::$6 ] ( main:5::mulf_init:10 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 mulf_init::$6 ] ) always clobbers reg byte a +Statement [101] (byte~) mulf_init::$7 ← > (signed word) mulf_init::sqr1#2 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 mulf_init::$6 mulf_init::$7 ] ( main:5::mulf_init:10 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 mulf_init::$6 mulf_init::$7 ] ) always clobbers reg byte a +Removing always clobbered register reg byte a as potential for zp ZP_BYTE:63 [ mulf_init::$6 ] +Statement [103] (byte~) mulf_init::$9 ← > (signed word) mulf_init::sqr1#2 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 mulf_init::$9 ] ( main:5::mulf_init:10 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 mulf_init::$9 ] ) always clobbers reg byte a +Statement [105] (byte~) mulf_init::$12 ← > (signed word) mulf_init::sqr1#2 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 mulf_init::$12 ] ( main:5::mulf_init:10 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 mulf_init::$12 ] ) always clobbers reg byte a +Statement [107] (byte/signed word/word/dword/signed dword~) mulf_init::$13 ← (byte/signed byte/word/signed word/dword/signed dword) 1 - (byte) mulf_init::i#2 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 mulf_init::$13 ] ( main:5::mulf_init:10 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 mulf_init::$13 ] ) always clobbers reg byte a +Statement [108] (byte~) mulf_init::$14 ← > (signed word) mulf_init::sqr1#2 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 mulf_init::$13 mulf_init::$14 ] ( main:5::mulf_init:10 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 mulf_init::$13 mulf_init::$14 ] ) always clobbers reg byte a +Removing always clobbered register reg byte a as potential for zp ZP_BYTE:67 [ mulf_init::$13 ] +Statement [110] (byte/signed word/word/dword/signed dword~) mulf_init::$16 ← (byte/signed byte/word/signed word/dword/signed dword) 1 - (byte) mulf_init::i#2 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 mulf_init::$16 ] ( main:5::mulf_init:10 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 mulf_init::$16 ] ) always clobbers reg byte a +Statement [111] (byte~) mulf_init::$17 ← > (signed word) mulf_init::sqr1#2 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 mulf_init::$16 mulf_init::$17 ] ( main:5::mulf_init:10 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 mulf_init::$16 mulf_init::$17 ] ) always clobbers reg byte a +Removing always clobbered register reg byte a as potential for zp ZP_BYTE:69 [ mulf_init::$16 ] +Statement [113] (signed word) mulf_init::sqr1#1 ← (signed word) mulf_init::sqr1#2 + (signed word) mulf_init::add#2 [ mulf_init::i#2 mulf_init::add#2 mulf_init::sqr1#1 ] ( main:5::mulf_init:10 [ mulf_init::i#2 mulf_init::add#2 mulf_init::sqr1#1 ] ) always clobbers reg byte a +Statement [114] (signed word) mulf_init::add#1 ← (signed word) mulf_init::add#2 + (byte/signed byte/word/signed word/dword/signed dword) 2 [ mulf_init::i#2 mulf_init::sqr1#1 mulf_init::add#1 ] ( main:5::mulf_init:10 [ mulf_init::i#2 mulf_init::sqr1#1 mulf_init::add#1 ] ) always clobbers reg byte a +Statement [118] *((const byte*) SPRITES_ENABLE#0) ← (byte/word/signed word/dword/signed dword) 255 [ ] ( main:5::sprites_init:8 [ ] ) always clobbers reg byte a +Statement [120] *((const byte*) sprites_init::sprites_ptr#0 + (byte) sprites_init::i#2) ← ((byte))(const byte*) SPRITE#0/(byte/signed byte/word/signed word/dword/signed dword) 64 [ sprites_init::i#2 ] ( main:5::sprites_init:8 [ sprites_init::i#2 ] ) always clobbers reg byte a +Removing always clobbered register reg byte a as potential for zp ZP_BYTE:11 [ sprites_init::i#2 sprites_init::i#1 ] +Statement [121] *((const byte*) SPRITES_COLS#0 + (byte) sprites_init::i#2) ← (const byte) GREEN#0 [ sprites_init::i#2 ] ( main:5::sprites_init:8 [ sprites_init::i#2 ] ) always clobbers reg byte a +Statement [12] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto main::@4 [ main::sx#6 main::sy#5 main::sz#5 ] ( main:5 [ main::sx#6 main::sy#5 main::sz#5 ] ) always clobbers reg byte a +Statement [20] (byte~) main::$4 ← (signed byte) main::sy#1 & (byte/signed byte/word/signed word/dword/signed dword) 1 [ main::sx#6 main::sy#1 main::sz#1 main::$4 ] ( main:5 [ main::sx#6 main::sy#1 main::sz#1 main::$4 ] ) always clobbers reg byte a +Statement [30] (byte) main::i2#0 ← (byte) main::i#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ main::sx#12 main::sy#1 main::sz#1 main::i#2 main::i2#0 ] ( main:5 [ main::sx#12 main::sy#1 main::sz#1 main::i#2 main::i2#0 ] ) always clobbers reg byte a +Statement [31] (signed byte~) main::$9 ← *((const signed byte*) xr#0) >> (byte/signed byte/word/signed word/dword/signed dword) 1 [ main::sx#12 main::sy#1 main::sz#1 main::i#2 main::i2#0 main::$9 ] ( main:5 [ main::sx#12 main::sy#1 main::sz#1 main::i#2 main::i2#0 main::$9 ] ) always clobbers reg byte a +Statement [32] (byte/word/signed word/dword/signed dword~) main::$11 ← (byte/word/signed word/dword/signed dword) 128 + (byte)(signed byte~) main::$9 [ main::sx#12 main::sy#1 main::sz#1 main::i#2 main::i2#0 main::$11 ] ( main:5 [ main::sx#12 main::sy#1 main::sz#1 main::i#2 main::i2#0 main::$11 ] ) always clobbers reg byte a +Statement [34] (signed byte~) main::$12 ← *((const signed byte*) yr#0) >> (byte/signed byte/word/signed word/dword/signed dword) 1 [ main::sx#12 main::sy#1 main::sz#1 main::i#2 main::i2#0 main::$12 ] ( main:5 [ main::sx#12 main::sy#1 main::sz#1 main::i#2 main::i2#0 main::$12 ] ) always clobbers reg byte a +Statement [35] (byte/word/signed word/dword/signed dword~) main::$14 ← (byte/word/signed word/dword/signed dword) 128 + (byte)(signed byte~) main::$12 [ main::sx#12 main::sy#1 main::sz#1 main::i#2 main::i2#0 main::$14 ] ( main:5 [ main::sx#12 main::sy#1 main::sz#1 main::i#2 main::i2#0 main::$14 ] ) always clobbers reg byte a +Statement [38] if((byte) main::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 8) goto main::@8 [ main::sx#12 main::sy#1 main::sz#1 main::i#1 ] ( main:5 [ main::sx#12 main::sy#1 main::sz#1 main::i#1 ] ) always clobbers reg byte a +Statement [39] *((const byte*) BORDERCOL#0) ← (const byte) LIGHT_BLUE#0 [ main::sx#12 main::sy#1 main::sz#1 ] ( main:5 [ main::sx#12 main::sy#1 main::sz#1 ] ) always clobbers reg byte a +Statement asm { clc ldxzr lda#$0 C1: adcmulf_sqr1,x C2: sbcmulf_sqr2,x staC3+1 lda#0 F1: adcmulf_sqr1,x F2: sbcmulf_sqr2,x staF3+1 lda#0 I1: adcmulf_sqr1,x I2: sbcmulf_sqr2,x staI3+1 ldxxr ldyyr C3: lda#0 A1: adcmulf_sqr1,x A2: sbcmulf_sqr2,x B1: adcmulf_sqr1,y B2: sbcmulf_sqr2,y staxr F3: lda#0 D1: adcmulf_sqr1,x D2: sbcmulf_sqr2,x E1: adcmulf_sqr1,y E2: sbcmulf_sqr2,y stayr I3: lda#0 G1: adcmulf_sqr1,x G2: sbcmulf_sqr2,x H1: adcmulf_sqr1,y H2: sbcmulf_sqr2,y stazr } always clobbers reg byte a reg byte x reg byte y +Statement [45] (signed byte) prepare_matrix::t1#0 ← (signed byte) prepare_matrix::sy#0 - (signed byte) prepare_matrix::sz#0 [ prepare_matrix::sx#0 prepare_matrix::sy#0 prepare_matrix::sz#0 prepare_matrix::t1#0 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::sx#0 prepare_matrix::sy#0 prepare_matrix::sz#0 prepare_matrix::t1#0 ] ) always clobbers reg byte a +Statement [46] (signed byte) prepare_matrix::t2#0 ← (signed byte) prepare_matrix::sy#0 + (signed byte) prepare_matrix::sz#0 [ prepare_matrix::sx#0 prepare_matrix::sy#0 prepare_matrix::sz#0 prepare_matrix::t1#0 prepare_matrix::t2#0 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::sx#0 prepare_matrix::sy#0 prepare_matrix::sz#0 prepare_matrix::t1#0 prepare_matrix::t2#0 ] ) always clobbers reg byte a +Statement [47] (signed byte) prepare_matrix::t3#0 ← (signed byte) prepare_matrix::sx#0 + (signed byte) prepare_matrix::sz#0 [ prepare_matrix::sx#0 prepare_matrix::sy#0 prepare_matrix::sz#0 prepare_matrix::t1#0 prepare_matrix::t2#0 prepare_matrix::t3#0 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::sx#0 prepare_matrix::sy#0 prepare_matrix::sz#0 prepare_matrix::t1#0 prepare_matrix::t2#0 prepare_matrix::t3#0 ] ) always clobbers reg byte a +Statement [48] (signed byte) prepare_matrix::t4#0 ← (signed byte) prepare_matrix::sx#0 - (signed byte) prepare_matrix::sz#0 [ prepare_matrix::sx#0 prepare_matrix::sy#0 prepare_matrix::t1#0 prepare_matrix::t2#0 prepare_matrix::t3#0 prepare_matrix::t4#0 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::sx#0 prepare_matrix::sy#0 prepare_matrix::t1#0 prepare_matrix::t2#0 prepare_matrix::t3#0 prepare_matrix::t4#0 ] ) always clobbers reg byte a +Statement [49] (signed byte) prepare_matrix::t5#0 ← (signed byte) prepare_matrix::sx#0 + (signed byte) prepare_matrix::t2#0 [ prepare_matrix::sx#0 prepare_matrix::sy#0 prepare_matrix::t1#0 prepare_matrix::t2#0 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::sx#0 prepare_matrix::sy#0 prepare_matrix::t1#0 prepare_matrix::t2#0 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 ] ) always clobbers reg byte a +Statement [50] (signed byte) prepare_matrix::t6#0 ← (signed byte) prepare_matrix::sx#0 - (signed byte) prepare_matrix::t1#0 [ prepare_matrix::sx#0 prepare_matrix::sy#0 prepare_matrix::t1#0 prepare_matrix::t2#0 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::sx#0 prepare_matrix::sy#0 prepare_matrix::t1#0 prepare_matrix::t2#0 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 ] ) always clobbers reg byte a +Statement [51] (signed byte) prepare_matrix::t7#0 ← (signed byte) prepare_matrix::sx#0 + (signed byte) prepare_matrix::t1#0 [ prepare_matrix::sx#0 prepare_matrix::sy#0 prepare_matrix::t1#0 prepare_matrix::t2#0 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::sx#0 prepare_matrix::sy#0 prepare_matrix::t1#0 prepare_matrix::t2#0 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 ] ) always clobbers reg byte a +Statement [52] (signed byte) prepare_matrix::t8#0 ← (signed byte) prepare_matrix::t2#0 - (signed byte) prepare_matrix::sx#0 [ prepare_matrix::sx#0 prepare_matrix::sy#0 prepare_matrix::t1#0 prepare_matrix::t2#0 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::sx#0 prepare_matrix::sy#0 prepare_matrix::t1#0 prepare_matrix::t2#0 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 ] ) always clobbers reg byte a +Statement [53] (signed byte) prepare_matrix::t9#0 ← (signed byte) prepare_matrix::sy#0 - (signed byte) prepare_matrix::sx#0 [ prepare_matrix::sx#0 prepare_matrix::sy#0 prepare_matrix::t1#0 prepare_matrix::t2#0 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::sx#0 prepare_matrix::sy#0 prepare_matrix::t1#0 prepare_matrix::t2#0 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 ] ) always clobbers reg byte a +Statement [54] (signed byte) prepare_matrix::t10#0 ← (signed byte) prepare_matrix::sy#0 + (signed byte) prepare_matrix::sx#0 [ prepare_matrix::sy#0 prepare_matrix::t1#0 prepare_matrix::t2#0 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::sy#0 prepare_matrix::t1#0 prepare_matrix::t2#0 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 ] ) always clobbers reg byte a +Statement [55] (signed byte~) prepare_matrix::$10 ← *((const signed byte*) COSH#0 + (signed byte) prepare_matrix::t1#0) + *((const signed byte*) COSH#0 + (signed byte) prepare_matrix::t2#0) [ prepare_matrix::sy#0 prepare_matrix::t1#0 prepare_matrix::t2#0 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$10 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::sy#0 prepare_matrix::t1#0 prepare_matrix::t2#0 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$10 ] ) always clobbers reg byte a +Statement [57] (signed byte~) prepare_matrix::$11 ← *((const signed byte*) SINH#0 + (signed byte) prepare_matrix::t1#0) - *((const signed byte*) SINH#0 + (signed byte) prepare_matrix::t2#0) [ prepare_matrix::sy#0 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$11 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::sy#0 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$11 ] ) always clobbers reg byte a +Statement [59] (signed byte~) prepare_matrix::$12 ← *((const signed byte*) SINH#0 + (signed byte) prepare_matrix::sy#0) + *((const signed byte*) SINH#0 + (signed byte) prepare_matrix::sy#0) [ prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$12 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$12 ] ) always clobbers reg byte a +Statement [61] (signed byte~) prepare_matrix::$13 ← *((const signed byte*) SINH#0 + (signed byte) prepare_matrix::t3#0) - *((const signed byte*) SINH#0 + (signed byte) prepare_matrix::t4#0) [ prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$13 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$13 ] ) always clobbers reg byte a +Statement [62] (signed byte~) prepare_matrix::$14 ← (signed byte~) prepare_matrix::$13 + *((const signed byte*) COSQ#0 + (signed byte) prepare_matrix::t6#0) [ prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$14 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$14 ] ) always clobbers reg byte a +Potential register analysis [63] prepare_matrix::$15 ← prepare_matrix::$14 - *(COSQ#0 + prepare_matrix::t5#0) missing fragment vbsaa=vbsxx_minus_pbsc1_derefidx_vbsxx allocation: reg byte x [ prepare_matrix::$14 ] reg byte a [ prepare_matrix::$15 ] reg byte x [ prepare_matrix::t5#0 ] +Potential register analysis [63] prepare_matrix::$15 ← prepare_matrix::$14 - *(COSQ#0 + prepare_matrix::t5#0) missing fragment vbsaa=vbsyy_minus_pbsc1_derefidx_vbsyy allocation: reg byte y [ prepare_matrix::$14 ] reg byte a [ prepare_matrix::$15 ] reg byte y [ prepare_matrix::t5#0 ] +MISSING FRAGMENTS + vbsaa=vbsxx_minus_pbsc1_derefidx_vbsxx + vbsaa=vbsyy_minus_pbsc1_derefidx_vbsyy +Statement [63] (signed byte~) prepare_matrix::$15 ← (signed byte~) prepare_matrix::$14 - *((const signed byte*) COSQ#0 + (signed byte) prepare_matrix::t5#0) [ prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$15 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$15 ] ) always clobbers reg byte a +Statement [64] (signed byte~) prepare_matrix::$16 ← (signed byte~) prepare_matrix::$15 + *((const signed byte*) COSQ#0 + (signed byte) prepare_matrix::t8#0) [ prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$16 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$16 ] ) always clobbers reg byte a +Potential register analysis [65] prepare_matrix::$17 ← prepare_matrix::$16 - *(COSQ#0 + prepare_matrix::t7#0) missing fragment vbsaa=vbsxx_minus_pbsc1_derefidx_vbsxx allocation: reg byte x [ prepare_matrix::t7#0 ] reg byte x [ prepare_matrix::$16 ] reg byte a [ prepare_matrix::$17 ] +Potential register analysis [65] prepare_matrix::$17 ← prepare_matrix::$16 - *(COSQ#0 + prepare_matrix::t7#0) missing fragment vbsaa=vbsyy_minus_pbsc1_derefidx_vbsyy allocation: reg byte y [ prepare_matrix::t7#0 ] reg byte y [ prepare_matrix::$16 ] reg byte a [ prepare_matrix::$17 ] +MISSING FRAGMENTS + vbsaa=vbsxx_minus_pbsc1_derefidx_vbsxx + vbsaa=vbsyy_minus_pbsc1_derefidx_vbsyy +Statement [65] (signed byte~) prepare_matrix::$17 ← (signed byte~) prepare_matrix::$16 - *((const signed byte*) COSQ#0 + (signed byte) prepare_matrix::t7#0) [ prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$17 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$17 ] ) always clobbers reg byte a +Statement [67] (signed byte~) prepare_matrix::$18 ← *((const signed byte*) COSH#0 + (signed byte) prepare_matrix::t3#0) + *((const signed byte*) COSH#0 + (signed byte) prepare_matrix::t4#0) [ prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$18 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$18 ] ) always clobbers reg byte a +Statement [68] (signed byte~) prepare_matrix::$19 ← (signed byte~) prepare_matrix::$18 + *((const signed byte*) SINQ#0 + (signed byte) prepare_matrix::t5#0) [ prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$19 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$19 ] ) always clobbers reg byte a +Potential register analysis [69] prepare_matrix::$20 ← prepare_matrix::$19 - *(SINQ#0 + prepare_matrix::t6#0) missing fragment vbsaa=vbsxx_minus_pbsc1_derefidx_vbsxx allocation: reg byte x [ prepare_matrix::t6#0 ] reg byte a [ prepare_matrix::$20 ] reg byte x [ prepare_matrix::$19 ] +Potential register analysis [69] prepare_matrix::$20 ← prepare_matrix::$19 - *(SINQ#0 + prepare_matrix::t6#0) missing fragment vbsaa=vbsyy_minus_pbsc1_derefidx_vbsyy allocation: reg byte y [ prepare_matrix::t6#0 ] reg byte a [ prepare_matrix::$20 ] reg byte y [ prepare_matrix::$19 ] +MISSING FRAGMENTS + vbsaa=vbsxx_minus_pbsc1_derefidx_vbsxx + vbsaa=vbsyy_minus_pbsc1_derefidx_vbsyy +Statement [69] (signed byte~) prepare_matrix::$20 ← (signed byte~) prepare_matrix::$19 - *((const signed byte*) SINQ#0 + (signed byte) prepare_matrix::t6#0) [ prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$20 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$20 ] ) always clobbers reg byte a +Potential register analysis [70] prepare_matrix::$21 ← prepare_matrix::$20 - *(SINQ#0 + prepare_matrix::t7#0) missing fragment vbsaa=vbsxx_minus_pbsc1_derefidx_vbsxx allocation: reg byte x [ prepare_matrix::t7#0 ] reg byte x [ prepare_matrix::$20 ] reg byte a [ prepare_matrix::$21 ] +Potential register analysis [70] prepare_matrix::$21 ← prepare_matrix::$20 - *(SINQ#0 + prepare_matrix::t7#0) missing fragment vbsaa=vbsyy_minus_pbsc1_derefidx_vbsyy allocation: reg byte y [ prepare_matrix::t7#0 ] reg byte y [ prepare_matrix::$20 ] reg byte a [ prepare_matrix::$21 ] +MISSING FRAGMENTS + vbsaa=vbsxx_minus_pbsc1_derefidx_vbsxx + vbsaa=vbsyy_minus_pbsc1_derefidx_vbsyy +Statement [70] (signed byte~) prepare_matrix::$21 ← (signed byte~) prepare_matrix::$20 - *((const signed byte*) SINQ#0 + (signed byte) prepare_matrix::t7#0) [ prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$21 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$21 ] ) always clobbers reg byte a +Potential register analysis [71] prepare_matrix::$22 ← prepare_matrix::$21 - *(SINQ#0 + prepare_matrix::t8#0) missing fragment vbsaa=vbsxx_minus_pbsc1_derefidx_vbsxx allocation: reg byte x [ prepare_matrix::$21 ] reg byte x [ prepare_matrix::t8#0 ] reg byte a [ prepare_matrix::$22 ] +Potential register analysis [71] prepare_matrix::$22 ← prepare_matrix::$21 - *(SINQ#0 + prepare_matrix::t8#0) missing fragment vbsaa=vbsyy_minus_pbsc1_derefidx_vbsyy allocation: reg byte y [ prepare_matrix::$21 ] reg byte y [ prepare_matrix::t8#0 ] reg byte a [ prepare_matrix::$22 ] +MISSING FRAGMENTS + vbsaa=vbsxx_minus_pbsc1_derefidx_vbsxx + vbsaa=vbsyy_minus_pbsc1_derefidx_vbsyy +Statement [71] (signed byte~) prepare_matrix::$22 ← (signed byte~) prepare_matrix::$21 - *((const signed byte*) SINQ#0 + (signed byte) prepare_matrix::t8#0) [ prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$22 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$22 ] ) always clobbers reg byte a +Statement [73] (signed byte~) prepare_matrix::$23 ← *((const signed byte*) SINH#0 + (signed byte) prepare_matrix::t9#0) - *((const signed byte*) SINH#0 + (signed byte) prepare_matrix::t10#0) [ prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$23 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$23 ] ) always clobbers reg byte a +Statement [75] (signed byte~) prepare_matrix::$24 ← *((const signed byte*) COSH#0 + (signed byte) prepare_matrix::t4#0) - *((const signed byte*) COSH#0 + (signed byte) prepare_matrix::t3#0) [ prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$24 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$24 ] ) always clobbers reg byte a +Statement [76] (signed byte~) prepare_matrix::$25 ← (signed byte~) prepare_matrix::$24 + *((const signed byte*) SINQ#0 + (signed byte) prepare_matrix::t6#0) [ prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$25 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$25 ] ) always clobbers reg byte a +Potential register analysis [77] prepare_matrix::$26 ← prepare_matrix::$25 - *(SINQ#0 + prepare_matrix::t5#0) missing fragment vbsaa=vbsxx_minus_pbsc1_derefidx_vbsxx allocation: reg byte x [ prepare_matrix::$25 ] reg byte a [ prepare_matrix::$26 ] reg byte x [ prepare_matrix::t5#0 ] +Potential register analysis [77] prepare_matrix::$26 ← prepare_matrix::$25 - *(SINQ#0 + prepare_matrix::t5#0) missing fragment vbsaa=vbsyy_minus_pbsc1_derefidx_vbsyy allocation: reg byte y [ prepare_matrix::$25 ] reg byte a [ prepare_matrix::$26 ] reg byte y [ prepare_matrix::t5#0 ] +MISSING FRAGMENTS + vbsaa=vbsxx_minus_pbsc1_derefidx_vbsxx + vbsaa=vbsyy_minus_pbsc1_derefidx_vbsyy +Statement [77] (signed byte~) prepare_matrix::$26 ← (signed byte~) prepare_matrix::$25 - *((const signed byte*) SINQ#0 + (signed byte) prepare_matrix::t5#0) [ prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$26 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$26 ] ) always clobbers reg byte a +Potential register analysis [78] prepare_matrix::$27 ← prepare_matrix::$26 - *(SINQ#0 + prepare_matrix::t8#0) missing fragment vbsaa=vbsxx_minus_pbsc1_derefidx_vbsxx allocation: reg byte x [ prepare_matrix::t8#0 ] reg byte x [ prepare_matrix::$26 ] reg byte a [ prepare_matrix::$27 ] +Potential register analysis [78] prepare_matrix::$27 ← prepare_matrix::$26 - *(SINQ#0 + prepare_matrix::t8#0) missing fragment vbsaa=vbsyy_minus_pbsc1_derefidx_vbsyy allocation: reg byte y [ prepare_matrix::t8#0 ] reg byte y [ prepare_matrix::$26 ] reg byte a [ prepare_matrix::$27 ] +MISSING FRAGMENTS + vbsaa=vbsxx_minus_pbsc1_derefidx_vbsxx + vbsaa=vbsyy_minus_pbsc1_derefidx_vbsyy +Statement [78] (signed byte~) prepare_matrix::$27 ← (signed byte~) prepare_matrix::$26 - *((const signed byte*) SINQ#0 + (signed byte) prepare_matrix::t8#0) [ prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$27 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$27 ] ) always clobbers reg byte a +Potential register analysis [79] prepare_matrix::$28 ← prepare_matrix::$27 - *(SINQ#0 + prepare_matrix::t7#0) missing fragment vbsaa=vbsxx_minus_pbsc1_derefidx_vbsxx allocation: reg byte x [ prepare_matrix::t7#0 ] reg byte x [ prepare_matrix::$27 ] reg byte a [ prepare_matrix::$28 ] +Potential register analysis [79] prepare_matrix::$28 ← prepare_matrix::$27 - *(SINQ#0 + prepare_matrix::t7#0) missing fragment vbsaa=vbsyy_minus_pbsc1_derefidx_vbsyy allocation: reg byte y [ prepare_matrix::t7#0 ] reg byte y [ prepare_matrix::$27 ] reg byte a [ prepare_matrix::$28 ] +MISSING FRAGMENTS + vbsaa=vbsxx_minus_pbsc1_derefidx_vbsxx + vbsaa=vbsyy_minus_pbsc1_derefidx_vbsyy +Statement [79] (signed byte~) prepare_matrix::$28 ← (signed byte~) prepare_matrix::$27 - *((const signed byte*) SINQ#0 + (signed byte) prepare_matrix::t7#0) [ prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$28 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$28 ] ) always clobbers reg byte a +Statement [81] (signed byte~) prepare_matrix::$29 ← *((const signed byte*) SINH#0 + (signed byte) prepare_matrix::t3#0) + *((const signed byte*) SINH#0 + (signed byte) prepare_matrix::t4#0) [ prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$29 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$29 ] ) always clobbers reg byte a +Statement [82] (signed byte~) prepare_matrix::$30 ← (signed byte~) prepare_matrix::$29 + *((const signed byte*) COSQ#0 + (signed byte) prepare_matrix::t6#0) [ prepare_matrix::t5#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$30 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::t5#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$30 ] ) always clobbers reg byte a +Potential register analysis [83] prepare_matrix::$31 ← prepare_matrix::$30 - *(COSQ#0 + prepare_matrix::t5#0) missing fragment vbsaa=vbsxx_minus_pbsc1_derefidx_vbsxx allocation: reg byte x [ prepare_matrix::$30 ] reg byte a [ prepare_matrix::$31 ] reg byte x [ prepare_matrix::t5#0 ] +Potential register analysis [83] prepare_matrix::$31 ← prepare_matrix::$30 - *(COSQ#0 + prepare_matrix::t5#0) missing fragment vbsaa=vbsyy_minus_pbsc1_derefidx_vbsyy allocation: reg byte y [ prepare_matrix::$30 ] reg byte a [ prepare_matrix::$31 ] reg byte y [ prepare_matrix::t5#0 ] +MISSING FRAGMENTS + vbsaa=vbsxx_minus_pbsc1_derefidx_vbsxx + vbsaa=vbsyy_minus_pbsc1_derefidx_vbsyy +Statement [83] (signed byte~) prepare_matrix::$31 ← (signed byte~) prepare_matrix::$30 - *((const signed byte*) COSQ#0 + (signed byte) prepare_matrix::t5#0) [ prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$31 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$31 ] ) always clobbers reg byte a +Statement [84] (signed byte~) prepare_matrix::$32 ← (signed byte~) prepare_matrix::$31 + *((const signed byte*) COSQ#0 + (signed byte) prepare_matrix::t7#0) [ prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$32 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$32 ] ) always clobbers reg byte a +Potential register analysis [85] prepare_matrix::$33 ← prepare_matrix::$32 - *(COSQ#0 + prepare_matrix::t8#0) missing fragment vbsaa=vbsxx_minus_pbsc1_derefidx_vbsxx allocation: reg byte x [ prepare_matrix::$32 ] reg byte x [ prepare_matrix::t8#0 ] reg byte a [ prepare_matrix::$33 ] +Potential register analysis [85] prepare_matrix::$33 ← prepare_matrix::$32 - *(COSQ#0 + prepare_matrix::t8#0) missing fragment vbsaa=vbsyy_minus_pbsc1_derefidx_vbsyy allocation: reg byte y [ prepare_matrix::$32 ] reg byte y [ prepare_matrix::t8#0 ] reg byte a [ prepare_matrix::$33 ] +MISSING FRAGMENTS + vbsaa=vbsxx_minus_pbsc1_derefidx_vbsxx + vbsaa=vbsyy_minus_pbsc1_derefidx_vbsyy +Statement [85] (signed byte~) prepare_matrix::$33 ← (signed byte~) prepare_matrix::$32 - *((const signed byte*) COSQ#0 + (signed byte) prepare_matrix::t8#0) [ prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$33 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$33 ] ) always clobbers reg byte a +Statement [87] (signed byte~) prepare_matrix::$34 ← *((const signed byte*) COSH#0 + (signed byte) prepare_matrix::t9#0) + *((const signed byte*) COSH#0 + (signed byte) prepare_matrix::t10#0) [ prepare_matrix::$34 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::$34 ] ) always clobbers reg byte a Statement asm { ldarotation_matrix+0 starotate.A1+1 eor#$ff starotate.A2+1 ldarotation_matrix+1 starotate.B1+1 eor#$ff starotate.B2+1 ldarotation_matrix+2 starotate.C1+1 eor#$ff starotate.C2+1 ldarotation_matrix+3 starotate.D1+1 eor#$ff starotate.D2+1 ldarotation_matrix+4 starotate.E1+1 eor#$ff starotate.E2+1 ldarotation_matrix+5 starotate.F1+1 eor#$ff starotate.F2+1 ldarotation_matrix+6 starotate.G1+1 eor#$ff starotate.G2+1 ldarotation_matrix+7 starotate.H1+1 eor#$ff starotate.H2+1 ldarotation_matrix+8 starotate.I1+1 eor#$ff starotate.I2+1 } always clobbers reg byte a -Statement [71] (byte~) mulf_init::$0 ← > (signed word) mulf_init::sqr1#2 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 mulf_init::$0 ] ( main:4::mulf_init:7 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 mulf_init::$0 ] ) always clobbers reg byte a -Statement [73] (byte~) mulf_init::$1 ← - (byte) mulf_init::i#2 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 mulf_init::$1 ] ( main:4::mulf_init:7 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 mulf_init::$1 ] ) always clobbers reg byte a -Statement [74] (byte~) mulf_init::$2 ← > (signed word) mulf_init::sqr1#2 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 mulf_init::$1 mulf_init::$2 ] ( main:4::mulf_init:7 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 mulf_init::$1 mulf_init::$2 ] ) always clobbers reg byte a -Statement [76] (byte~) mulf_init::$4 ← > (signed word) mulf_init::sqr1#2 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 mulf_init::$4 ] ( main:4::mulf_init:7 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 mulf_init::$4 ] ) always clobbers reg byte a -Statement [78] (byte/signed word/word/dword/signed dword~) mulf_init::$5 ← (byte/signed byte/word/signed word/dword/signed dword) 1 - (byte) mulf_init::i#2 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 mulf_init::$5 ] ( main:4::mulf_init:7 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 mulf_init::$5 ] ) always clobbers reg byte a -Statement [79] (byte~) mulf_init::$6 ← > (signed word) mulf_init::sqr1#2 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 mulf_init::$5 mulf_init::$6 ] ( main:4::mulf_init:7 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 mulf_init::$5 mulf_init::$6 ] ) always clobbers reg byte a -Statement [81] (signed word) mulf_init::sqr1#1 ← (signed word) mulf_init::sqr1#2 + (signed word) mulf_init::add#2 [ mulf_init::i#2 mulf_init::add#2 mulf_init::sqr1#1 ] ( main:4::mulf_init:7 [ mulf_init::i#2 mulf_init::add#2 mulf_init::sqr1#1 ] ) always clobbers reg byte a -Statement [82] (signed word) mulf_init::add#1 ← (signed word) mulf_init::add#2 + (byte/signed byte/word/signed word/dword/signed dword) 2 [ mulf_init::i#2 mulf_init::sqr1#1 mulf_init::add#1 ] ( main:4::mulf_init:7 [ mulf_init::i#2 mulf_init::sqr1#1 mulf_init::add#1 ] ) always clobbers reg byte a -Potential registers zp ZP_BYTE:2 [ rotate::x#3 ] : zp ZP_BYTE:2 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:3 [ rotate::y#3 ] : zp ZP_BYTE:3 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:4 [ rotate::z#3 ] : zp ZP_BYTE:4 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_WORD:5 [ mulf_init::sqr1#2 mulf_init::sqr1#1 ] : zp ZP_WORD:5 , -Potential registers zp ZP_BYTE:7 [ mulf_init::i#2 mulf_init::i#1 ] : zp ZP_BYTE:7 , reg byte x , reg byte y , -Potential registers zp ZP_WORD:8 [ mulf_init::add#2 mulf_init::add#1 ] : zp ZP_WORD:8 , -Potential registers zp ZP_BYTE:10 [ prepare_matrix::$10 ] : zp ZP_BYTE:10 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:11 [ prepare_matrix::$11 ] : zp ZP_BYTE:11 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:12 [ prepare_matrix::$12 ] : zp ZP_BYTE:12 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:13 [ prepare_matrix::$13 ] : zp ZP_BYTE:13 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:14 [ prepare_matrix::$14 ] : zp ZP_BYTE:14 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:15 [ prepare_matrix::$15 ] : zp ZP_BYTE:15 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:16 [ prepare_matrix::$16 ] : zp ZP_BYTE:16 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:17 [ prepare_matrix::$17 ] : zp ZP_BYTE:17 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:18 [ prepare_matrix::$18 ] : zp ZP_BYTE:18 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:19 [ prepare_matrix::$19 ] : zp ZP_BYTE:19 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:20 [ prepare_matrix::$20 ] : zp ZP_BYTE:20 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:21 [ prepare_matrix::$21 ] : zp ZP_BYTE:21 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:22 [ prepare_matrix::$22 ] : zp ZP_BYTE:22 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:23 [ prepare_matrix::$23 ] : zp ZP_BYTE:23 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:24 [ prepare_matrix::$24 ] : zp ZP_BYTE:24 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:25 [ prepare_matrix::$25 ] : zp ZP_BYTE:25 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:26 [ prepare_matrix::$26 ] : zp ZP_BYTE:26 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:27 [ prepare_matrix::$27 ] : zp ZP_BYTE:27 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:28 [ prepare_matrix::$28 ] : zp ZP_BYTE:28 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:29 [ prepare_matrix::$29 ] : zp ZP_BYTE:29 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:30 [ prepare_matrix::$30 ] : zp ZP_BYTE:30 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:31 [ prepare_matrix::$31 ] : zp ZP_BYTE:31 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:32 [ prepare_matrix::$32 ] : zp ZP_BYTE:32 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:33 [ prepare_matrix::$33 ] : zp ZP_BYTE:33 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:34 [ prepare_matrix::$34 ] : zp ZP_BYTE:34 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:35 [ mulf_init::$0 ] : zp ZP_BYTE:35 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:36 [ mulf_init::$1 ] : zp ZP_BYTE:36 , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:37 [ mulf_init::$2 ] : zp ZP_BYTE:37 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:38 [ mulf_init::$4 ] : zp ZP_BYTE:38 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:39 [ mulf_init::$5 ] : zp ZP_BYTE:39 , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:40 [ mulf_init::$6 ] : zp ZP_BYTE:40 , reg byte a , reg byte x , reg byte y , +Statement [93] (byte~) mulf_init::$0 ← > (signed word) mulf_init::sqr1#2 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 mulf_init::$0 ] ( main:5::mulf_init:10 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 mulf_init::$0 ] ) always clobbers reg byte a +Statement [95] (byte~) mulf_init::$2 ← > (signed word) mulf_init::sqr1#2 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 mulf_init::$2 ] ( main:5::mulf_init:10 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 mulf_init::$2 ] ) always clobbers reg byte a +Statement [97] (byte~) mulf_init::$3 ← - (byte) mulf_init::i#2 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 mulf_init::$3 ] ( main:5::mulf_init:10 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 mulf_init::$3 ] ) always clobbers reg byte a +Statement [98] (byte~) mulf_init::$4 ← > (signed word) mulf_init::sqr1#2 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 mulf_init::$3 mulf_init::$4 ] ( main:5::mulf_init:10 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 mulf_init::$3 mulf_init::$4 ] ) always clobbers reg byte a +Statement [100] (byte~) mulf_init::$6 ← - (byte) mulf_init::i#2 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 mulf_init::$6 ] ( main:5::mulf_init:10 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 mulf_init::$6 ] ) always clobbers reg byte a +Statement [101] (byte~) mulf_init::$7 ← > (signed word) mulf_init::sqr1#2 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 mulf_init::$6 mulf_init::$7 ] ( main:5::mulf_init:10 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 mulf_init::$6 mulf_init::$7 ] ) always clobbers reg byte a +Statement [103] (byte~) mulf_init::$9 ← > (signed word) mulf_init::sqr1#2 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 mulf_init::$9 ] ( main:5::mulf_init:10 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 mulf_init::$9 ] ) always clobbers reg byte a +Statement [105] (byte~) mulf_init::$12 ← > (signed word) mulf_init::sqr1#2 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 mulf_init::$12 ] ( main:5::mulf_init:10 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 mulf_init::$12 ] ) always clobbers reg byte a +Statement [107] (byte/signed word/word/dword/signed dword~) mulf_init::$13 ← (byte/signed byte/word/signed word/dword/signed dword) 1 - (byte) mulf_init::i#2 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 mulf_init::$13 ] ( main:5::mulf_init:10 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 mulf_init::$13 ] ) always clobbers reg byte a +Statement [108] (byte~) mulf_init::$14 ← > (signed word) mulf_init::sqr1#2 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 mulf_init::$13 mulf_init::$14 ] ( main:5::mulf_init:10 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 mulf_init::$13 mulf_init::$14 ] ) always clobbers reg byte a +Statement [110] (byte/signed word/word/dword/signed dword~) mulf_init::$16 ← (byte/signed byte/word/signed word/dword/signed dword) 1 - (byte) mulf_init::i#2 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 mulf_init::$16 ] ( main:5::mulf_init:10 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 mulf_init::$16 ] ) always clobbers reg byte a +Statement [111] (byte~) mulf_init::$17 ← > (signed word) mulf_init::sqr1#2 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 mulf_init::$16 mulf_init::$17 ] ( main:5::mulf_init:10 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 mulf_init::$16 mulf_init::$17 ] ) always clobbers reg byte a +Statement [113] (signed word) mulf_init::sqr1#1 ← (signed word) mulf_init::sqr1#2 + (signed word) mulf_init::add#2 [ mulf_init::i#2 mulf_init::add#2 mulf_init::sqr1#1 ] ( main:5::mulf_init:10 [ mulf_init::i#2 mulf_init::add#2 mulf_init::sqr1#1 ] ) always clobbers reg byte a +Statement [114] (signed word) mulf_init::add#1 ← (signed word) mulf_init::add#2 + (byte/signed byte/word/signed word/dword/signed dword) 2 [ mulf_init::i#2 mulf_init::sqr1#1 mulf_init::add#1 ] ( main:5::mulf_init:10 [ mulf_init::i#2 mulf_init::sqr1#1 mulf_init::add#1 ] ) always clobbers reg byte a +Statement [118] *((const byte*) SPRITES_ENABLE#0) ← (byte/word/signed word/dword/signed dword) 255 [ ] ( main:5::sprites_init:8 [ ] ) always clobbers reg byte a +Statement [120] *((const byte*) sprites_init::sprites_ptr#0 + (byte) sprites_init::i#2) ← ((byte))(const byte*) SPRITE#0/(byte/signed byte/word/signed word/dword/signed dword) 64 [ sprites_init::i#2 ] ( main:5::sprites_init:8 [ sprites_init::i#2 ] ) always clobbers reg byte a +Statement [121] *((const byte*) SPRITES_COLS#0 + (byte) sprites_init::i#2) ← (const byte) GREEN#0 [ sprites_init::i#2 ] ( main:5::sprites_init:8 [ sprites_init::i#2 ] ) always clobbers reg byte a +Potential registers zp ZP_BYTE:2 [ main::sx#6 main::sx#12 main::sx#1 ] : zp ZP_BYTE:2 , +Potential registers zp ZP_BYTE:3 [ main::sy#5 main::sy#1 ] : zp ZP_BYTE:3 , +Potential registers zp ZP_BYTE:4 [ main::sz#5 main::sz#1 ] : zp ZP_BYTE:4 , +Potential registers zp ZP_BYTE:5 [ main::i#2 main::i#1 ] : zp ZP_BYTE:5 , +Potential registers zp ZP_WORD:6 [ mulf_init::sqr1#2 mulf_init::sqr1#1 ] : zp ZP_WORD:6 , +Potential registers zp ZP_BYTE:8 [ mulf_init::i#2 mulf_init::i#1 ] : zp ZP_BYTE:8 , reg byte x , reg byte y , +Potential registers zp ZP_WORD:9 [ mulf_init::add#2 mulf_init::add#1 ] : zp ZP_WORD:9 , +Potential registers zp ZP_BYTE:11 [ sprites_init::i#2 sprites_init::i#1 ] : zp ZP_BYTE:11 , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:12 [ prepare_matrix::sx#0 ] : zp ZP_BYTE:12 , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:13 [ prepare_matrix::sy#0 ] : zp ZP_BYTE:13 , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:14 [ prepare_matrix::sz#0 ] : zp ZP_BYTE:14 , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:15 [ main::$4 ] : zp ZP_BYTE:15 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:16 [ rotate::x#0 ] : zp ZP_BYTE:16 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:17 [ rotate::y#0 ] : zp ZP_BYTE:17 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:18 [ rotate::z#0 ] : zp ZP_BYTE:18 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:19 [ main::i2#0 ] : zp ZP_BYTE:19 , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:20 [ main::$9 ] : zp ZP_BYTE:20 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:21 [ main::$11 ] : zp ZP_BYTE:21 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:22 [ main::$12 ] : zp ZP_BYTE:22 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:23 [ main::$14 ] : zp ZP_BYTE:23 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:24 [ prepare_matrix::t1#0 ] : zp ZP_BYTE:24 , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:25 [ prepare_matrix::t2#0 ] : zp ZP_BYTE:25 , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:26 [ prepare_matrix::t3#0 ] : zp ZP_BYTE:26 , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:27 [ prepare_matrix::t4#0 ] : zp ZP_BYTE:27 , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:28 [ prepare_matrix::t5#0 ] : zp ZP_BYTE:28 , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:29 [ prepare_matrix::t6#0 ] : zp ZP_BYTE:29 , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:30 [ prepare_matrix::t7#0 ] : zp ZP_BYTE:30 , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:31 [ prepare_matrix::t8#0 ] : zp ZP_BYTE:31 , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:32 [ prepare_matrix::t9#0 ] : zp ZP_BYTE:32 , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:33 [ prepare_matrix::t10#0 ] : zp ZP_BYTE:33 , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:34 [ prepare_matrix::$10 ] : zp ZP_BYTE:34 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:35 [ prepare_matrix::$11 ] : zp ZP_BYTE:35 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:36 [ prepare_matrix::$12 ] : zp ZP_BYTE:36 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:37 [ prepare_matrix::$13 ] : zp ZP_BYTE:37 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:38 [ prepare_matrix::$14 ] : zp ZP_BYTE:38 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:39 [ prepare_matrix::$15 ] : zp ZP_BYTE:39 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:40 [ prepare_matrix::$16 ] : zp ZP_BYTE:40 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:41 [ prepare_matrix::$17 ] : zp ZP_BYTE:41 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:42 [ prepare_matrix::$18 ] : zp ZP_BYTE:42 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:43 [ prepare_matrix::$19 ] : zp ZP_BYTE:43 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:44 [ prepare_matrix::$20 ] : zp ZP_BYTE:44 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:45 [ prepare_matrix::$21 ] : zp ZP_BYTE:45 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:46 [ prepare_matrix::$22 ] : zp ZP_BYTE:46 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:47 [ prepare_matrix::$23 ] : zp ZP_BYTE:47 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:48 [ prepare_matrix::$24 ] : zp ZP_BYTE:48 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:49 [ prepare_matrix::$25 ] : zp ZP_BYTE:49 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:50 [ prepare_matrix::$26 ] : zp ZP_BYTE:50 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:51 [ prepare_matrix::$27 ] : zp ZP_BYTE:51 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:52 [ prepare_matrix::$28 ] : zp ZP_BYTE:52 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:53 [ prepare_matrix::$29 ] : zp ZP_BYTE:53 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:54 [ prepare_matrix::$30 ] : zp ZP_BYTE:54 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:55 [ prepare_matrix::$31 ] : zp ZP_BYTE:55 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:56 [ prepare_matrix::$32 ] : zp ZP_BYTE:56 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:57 [ prepare_matrix::$33 ] : zp ZP_BYTE:57 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:58 [ prepare_matrix::$34 ] : zp ZP_BYTE:58 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:59 [ mulf_init::$0 ] : zp ZP_BYTE:59 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:60 [ mulf_init::$2 ] : zp ZP_BYTE:60 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:61 [ mulf_init::$3 ] : zp ZP_BYTE:61 , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:62 [ mulf_init::$4 ] : zp ZP_BYTE:62 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:63 [ mulf_init::$6 ] : zp ZP_BYTE:63 , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:64 [ mulf_init::$7 ] : zp ZP_BYTE:64 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:65 [ mulf_init::$9 ] : zp ZP_BYTE:65 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:66 [ mulf_init::$12 ] : zp ZP_BYTE:66 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:67 [ mulf_init::$13 ] : zp ZP_BYTE:67 , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:68 [ mulf_init::$14 ] : zp ZP_BYTE:68 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:69 [ mulf_init::$16 ] : zp ZP_BYTE:69 , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:70 [ mulf_init::$17 ] : zp ZP_BYTE:70 , reg byte a , reg byte x , reg byte y , REGISTER UPLIFT SCOPES -Uplift Scope [mulf_init] 22: zp ZP_BYTE:35 [ mulf_init::$0 ] 22: zp ZP_BYTE:37 [ mulf_init::$2 ] 22: zp ZP_BYTE:38 [ mulf_init::$4 ] 22: zp ZP_BYTE:40 [ mulf_init::$6 ] 21.58: zp ZP_BYTE:7 [ mulf_init::i#2 mulf_init::i#1 ] 11.5: zp ZP_WORD:5 [ mulf_init::sqr1#2 mulf_init::sqr1#1 ] 11: zp ZP_BYTE:36 [ mulf_init::$1 ] 11: zp ZP_BYTE:39 [ mulf_init::$5 ] 10.08: zp ZP_WORD:8 [ mulf_init::add#2 mulf_init::add#1 ] -Uplift Scope [prepare_matrix] 4: zp ZP_BYTE:10 [ prepare_matrix::$10 ] 4: zp ZP_BYTE:11 [ prepare_matrix::$11 ] 4: zp ZP_BYTE:12 [ prepare_matrix::$12 ] 4: zp ZP_BYTE:13 [ prepare_matrix::$13 ] 4: zp ZP_BYTE:14 [ prepare_matrix::$14 ] 4: zp ZP_BYTE:15 [ prepare_matrix::$15 ] 4: zp ZP_BYTE:16 [ prepare_matrix::$16 ] 4: zp ZP_BYTE:17 [ prepare_matrix::$17 ] 4: zp ZP_BYTE:18 [ prepare_matrix::$18 ] 4: zp ZP_BYTE:19 [ prepare_matrix::$19 ] 4: zp ZP_BYTE:20 [ prepare_matrix::$20 ] 4: zp ZP_BYTE:21 [ prepare_matrix::$21 ] 4: zp ZP_BYTE:22 [ prepare_matrix::$22 ] 4: zp ZP_BYTE:23 [ prepare_matrix::$23 ] 4: zp ZP_BYTE:24 [ prepare_matrix::$24 ] 4: zp ZP_BYTE:25 [ prepare_matrix::$25 ] 4: zp ZP_BYTE:26 [ prepare_matrix::$26 ] 4: zp ZP_BYTE:27 [ prepare_matrix::$27 ] 4: zp ZP_BYTE:28 [ prepare_matrix::$28 ] 4: zp ZP_BYTE:29 [ prepare_matrix::$29 ] 4: zp ZP_BYTE:30 [ prepare_matrix::$30 ] 4: zp ZP_BYTE:31 [ prepare_matrix::$31 ] 4: zp ZP_BYTE:32 [ prepare_matrix::$32 ] 4: zp ZP_BYTE:33 [ prepare_matrix::$33 ] 4: zp ZP_BYTE:34 [ prepare_matrix::$34 ] -Uplift Scope [rotate] 2: zp ZP_BYTE:2 [ rotate::x#3 ] 1: zp ZP_BYTE:3 [ rotate::y#3 ] 0.67: zp ZP_BYTE:4 [ rotate::z#3 ] -Uplift Scope [main] +Uplift Scope [main] 202: zp ZP_BYTE:21 [ main::$11 ] 202: zp ZP_BYTE:23 [ main::$14 ] 198.12: zp ZP_BYTE:5 [ main::i#2 main::i#1 ] 101: zp ZP_BYTE:20 [ main::$9 ] 101: zp ZP_BYTE:22 [ main::$12 ] 50.5: zp ZP_BYTE:19 [ main::i2#0 ] 27.94: zp ZP_BYTE:2 [ main::sx#6 main::sx#12 main::sx#1 ] 22: zp ZP_BYTE:15 [ main::$4 ] 6.21: zp ZP_BYTE:3 [ main::sy#5 main::sy#1 ] 5.17: zp ZP_BYTE:4 [ main::sz#5 main::sz#1 ] +Uplift Scope [mulf_init] 22: zp ZP_BYTE:59 [ mulf_init::$0 ] 22: zp ZP_BYTE:60 [ mulf_init::$2 ] 22: zp ZP_BYTE:62 [ mulf_init::$4 ] 22: zp ZP_BYTE:64 [ mulf_init::$7 ] 22: zp ZP_BYTE:65 [ mulf_init::$9 ] 22: zp ZP_BYTE:66 [ mulf_init::$12 ] 22: zp ZP_BYTE:68 [ mulf_init::$14 ] 22: zp ZP_BYTE:70 [ mulf_init::$17 ] 21.28: zp ZP_BYTE:8 [ mulf_init::i#2 mulf_init::i#1 ] 11: zp ZP_BYTE:61 [ mulf_init::$3 ] 11: zp ZP_BYTE:63 [ mulf_init::$6 ] 11: zp ZP_BYTE:67 [ mulf_init::$13 ] 11: zp ZP_BYTE:69 [ mulf_init::$16 ] 10.74: zp ZP_WORD:6 [ mulf_init::sqr1#2 mulf_init::sqr1#1 ] 8.83: zp ZP_WORD:9 [ mulf_init::add#2 mulf_init::add#1 ] +Uplift Scope [prepare_matrix] 4.75: zp ZP_BYTE:14 [ prepare_matrix::sz#0 ] 4: zp ZP_BYTE:34 [ prepare_matrix::$10 ] 4: zp ZP_BYTE:35 [ prepare_matrix::$11 ] 4: zp ZP_BYTE:36 [ prepare_matrix::$12 ] 4: zp ZP_BYTE:37 [ prepare_matrix::$13 ] 4: zp ZP_BYTE:38 [ prepare_matrix::$14 ] 4: zp ZP_BYTE:39 [ prepare_matrix::$15 ] 4: zp ZP_BYTE:40 [ prepare_matrix::$16 ] 4: zp ZP_BYTE:41 [ prepare_matrix::$17 ] 4: zp ZP_BYTE:42 [ prepare_matrix::$18 ] 4: zp ZP_BYTE:43 [ prepare_matrix::$19 ] 4: zp ZP_BYTE:44 [ prepare_matrix::$20 ] 4: zp ZP_BYTE:45 [ prepare_matrix::$21 ] 4: zp ZP_BYTE:46 [ prepare_matrix::$22 ] 4: zp ZP_BYTE:47 [ prepare_matrix::$23 ] 4: zp ZP_BYTE:48 [ prepare_matrix::$24 ] 4: zp ZP_BYTE:49 [ prepare_matrix::$25 ] 4: zp ZP_BYTE:50 [ prepare_matrix::$26 ] 4: zp ZP_BYTE:51 [ prepare_matrix::$27 ] 4: zp ZP_BYTE:52 [ prepare_matrix::$28 ] 4: zp ZP_BYTE:53 [ prepare_matrix::$29 ] 4: zp ZP_BYTE:54 [ prepare_matrix::$30 ] 4: zp ZP_BYTE:55 [ prepare_matrix::$31 ] 4: zp ZP_BYTE:56 [ prepare_matrix::$32 ] 4: zp ZP_BYTE:57 [ prepare_matrix::$33 ] 4: zp ZP_BYTE:58 [ prepare_matrix::$34 ] 2.25: zp ZP_BYTE:12 [ prepare_matrix::sx#0 ] 1.44: zp ZP_BYTE:13 [ prepare_matrix::sy#0 ] 0.91: zp ZP_BYTE:25 [ prepare_matrix::t2#0 ] 0.83: zp ZP_BYTE:24 [ prepare_matrix::t1#0 ] 0.31: zp ZP_BYTE:29 [ prepare_matrix::t6#0 ] 0.3: zp ZP_BYTE:27 [ prepare_matrix::t4#0 ] 0.3: zp ZP_BYTE:30 [ prepare_matrix::t7#0 ] 0.3: zp ZP_BYTE:31 [ prepare_matrix::t8#0 ] 0.29: zp ZP_BYTE:26 [ prepare_matrix::t3#0 ] 0.29: zp ZP_BYTE:28 [ prepare_matrix::t5#0 ] 0.18: zp ZP_BYTE:33 [ prepare_matrix::t10#0 ] 0.18: zp ZP_BYTE:32 [ prepare_matrix::t9#0 ] +Uplift Scope [rotate] 34.33: zp ZP_BYTE:16 [ rotate::x#0 ] 34.33: zp ZP_BYTE:17 [ rotate::y#0 ] 34.33: zp ZP_BYTE:18 [ rotate::z#0 ] +Uplift Scope [sprites_init] 31.17: zp ZP_BYTE:11 [ sprites_init::i#2 sprites_init::i#1 ] Uplift Scope [] -Uplifting [mulf_init] best 5034 combination reg byte a [ mulf_init::$0 ] reg byte a [ mulf_init::$2 ] reg byte a [ mulf_init::$4 ] reg byte a [ mulf_init::$6 ] zp ZP_BYTE:7 [ mulf_init::i#2 mulf_init::i#1 ] zp ZP_WORD:5 [ mulf_init::sqr1#2 mulf_init::sqr1#1 ] zp ZP_BYTE:36 [ mulf_init::$1 ] zp ZP_BYTE:39 [ mulf_init::$5 ] zp ZP_WORD:8 [ mulf_init::add#2 mulf_init::add#1 ] -Limited combination testing to 100 combinations of 6912 possible. -Uplifting [rotate] best 5026 combination reg byte y [ rotate::x#3 ] reg byte x [ rotate::y#3 ] zp ZP_BYTE:4 [ rotate::z#3 ] -Uplifting [main] best 5026 combination -Uplifting [] best 5026 combination -Attempting to uplift remaining variables inzp ZP_BYTE:7 [ mulf_init::i#2 mulf_init::i#1 ] -Uplifting [mulf_init] best 4876 combination reg byte x [ mulf_init::i#2 mulf_init::i#1 ] -Attempting to uplift remaining variables inzp ZP_BYTE:36 [ mulf_init::$1 ] -Uplifting [mulf_init] best 4836 combination reg byte y [ mulf_init::$1 ] -Attempting to uplift remaining variables inzp ZP_BYTE:39 [ mulf_init::$5 ] -Uplifting [mulf_init] best 4796 combination reg byte y [ mulf_init::$5 ] -Attempting to uplift remaining variables inzp ZP_BYTE:10 [ prepare_matrix::$10 ] -Uplifting [prepare_matrix] best 4790 combination reg byte a [ prepare_matrix::$10 ] -Attempting to uplift remaining variables inzp ZP_BYTE:11 [ prepare_matrix::$11 ] -Uplifting [prepare_matrix] best 4784 combination reg byte a [ prepare_matrix::$11 ] -Attempting to uplift remaining variables inzp ZP_BYTE:12 [ prepare_matrix::$12 ] -Uplifting [prepare_matrix] best 4778 combination reg byte a [ prepare_matrix::$12 ] -Attempting to uplift remaining variables inzp ZP_BYTE:13 [ prepare_matrix::$13 ] -Uplifting [prepare_matrix] best 4778 combination zp ZP_BYTE:13 [ prepare_matrix::$13 ] -Attempting to uplift remaining variables inzp ZP_BYTE:14 [ prepare_matrix::$14 ] -Uplifting [prepare_matrix] best 4776 combination reg byte a [ prepare_matrix::$14 ] -Attempting to uplift remaining variables inzp ZP_BYTE:15 [ prepare_matrix::$15 ] -Uplifting [prepare_matrix] best 4776 combination zp ZP_BYTE:15 [ prepare_matrix::$15 ] -Attempting to uplift remaining variables inzp ZP_BYTE:16 [ prepare_matrix::$16 ] -Uplifting [prepare_matrix] best 4774 combination reg byte a [ prepare_matrix::$16 ] -Attempting to uplift remaining variables inzp ZP_BYTE:17 [ prepare_matrix::$17 ] -Uplifting [prepare_matrix] best 4768 combination reg byte a [ prepare_matrix::$17 ] -Attempting to uplift remaining variables inzp ZP_BYTE:18 [ prepare_matrix::$18 ] -Uplifting [prepare_matrix] best 4768 combination zp ZP_BYTE:18 [ prepare_matrix::$18 ] -Attempting to uplift remaining variables inzp ZP_BYTE:19 [ prepare_matrix::$19 ] -Uplifting [prepare_matrix] best 4766 combination reg byte a [ prepare_matrix::$19 ] -Attempting to uplift remaining variables inzp ZP_BYTE:20 [ prepare_matrix::$20 ] -Uplifting [prepare_matrix] best 4764 combination reg byte a [ prepare_matrix::$20 ] -Attempting to uplift remaining variables inzp ZP_BYTE:21 [ prepare_matrix::$21 ] -Uplifting [prepare_matrix] best 4762 combination reg byte a [ prepare_matrix::$21 ] -Attempting to uplift remaining variables inzp ZP_BYTE:22 [ prepare_matrix::$22 ] -Uplifting [prepare_matrix] best 4756 combination reg byte a [ prepare_matrix::$22 ] -Attempting to uplift remaining variables inzp ZP_BYTE:23 [ prepare_matrix::$23 ] -Uplifting [prepare_matrix] best 4750 combination reg byte a [ prepare_matrix::$23 ] -Attempting to uplift remaining variables inzp ZP_BYTE:24 [ prepare_matrix::$24 ] -Uplifting [prepare_matrix] best 4750 combination zp ZP_BYTE:24 [ prepare_matrix::$24 ] -Attempting to uplift remaining variables inzp ZP_BYTE:25 [ prepare_matrix::$25 ] -Uplifting [prepare_matrix] best 4748 combination reg byte a [ prepare_matrix::$25 ] -Attempting to uplift remaining variables inzp ZP_BYTE:26 [ prepare_matrix::$26 ] -Uplifting [prepare_matrix] best 4746 combination reg byte a [ prepare_matrix::$26 ] -Attempting to uplift remaining variables inzp ZP_BYTE:27 [ prepare_matrix::$27 ] -Uplifting [prepare_matrix] best 4744 combination reg byte a [ prepare_matrix::$27 ] -Attempting to uplift remaining variables inzp ZP_BYTE:28 [ prepare_matrix::$28 ] -Uplifting [prepare_matrix] best 4738 combination reg byte a [ prepare_matrix::$28 ] -Attempting to uplift remaining variables inzp ZP_BYTE:29 [ prepare_matrix::$29 ] -Uplifting [prepare_matrix] best 4738 combination zp ZP_BYTE:29 [ prepare_matrix::$29 ] -Attempting to uplift remaining variables inzp ZP_BYTE:30 [ prepare_matrix::$30 ] -Uplifting [prepare_matrix] best 4736 combination reg byte a [ prepare_matrix::$30 ] -Attempting to uplift remaining variables inzp ZP_BYTE:31 [ prepare_matrix::$31 ] -Uplifting [prepare_matrix] best 4736 combination zp ZP_BYTE:31 [ prepare_matrix::$31 ] -Attempting to uplift remaining variables inzp ZP_BYTE:32 [ prepare_matrix::$32 ] -Uplifting [prepare_matrix] best 4734 combination reg byte a [ prepare_matrix::$32 ] -Attempting to uplift remaining variables inzp ZP_BYTE:33 [ prepare_matrix::$33 ] -Uplifting [prepare_matrix] best 4728 combination reg byte a [ prepare_matrix::$33 ] -Attempting to uplift remaining variables inzp ZP_BYTE:34 [ prepare_matrix::$34 ] -Uplifting [prepare_matrix] best 4722 combination reg byte a [ prepare_matrix::$34 ] -Attempting to uplift remaining variables inzp ZP_BYTE:4 [ rotate::z#3 ] -Uplifting [rotate] best 4722 combination zp ZP_BYTE:4 [ rotate::z#3 ] -Coalescing zero page register [ zp ZP_BYTE:4 [ rotate::z#3 ] ] with [ zp ZP_BYTE:13 [ prepare_matrix::$13 ] ] -Coalescing zero page register [ zp ZP_BYTE:4 [ rotate::z#3 prepare_matrix::$13 ] ] with [ zp ZP_BYTE:15 [ prepare_matrix::$15 ] ] -Coalescing zero page register [ zp ZP_BYTE:4 [ rotate::z#3 prepare_matrix::$13 prepare_matrix::$15 ] ] with [ zp ZP_BYTE:18 [ prepare_matrix::$18 ] ] -Coalescing zero page register [ zp ZP_BYTE:4 [ rotate::z#3 prepare_matrix::$13 prepare_matrix::$15 prepare_matrix::$18 ] ] with [ zp ZP_BYTE:24 [ prepare_matrix::$24 ] ] -Coalescing zero page register [ zp ZP_BYTE:4 [ rotate::z#3 prepare_matrix::$13 prepare_matrix::$15 prepare_matrix::$18 prepare_matrix::$24 ] ] with [ zp ZP_BYTE:29 [ prepare_matrix::$29 ] ] -Coalescing zero page register [ zp ZP_BYTE:4 [ rotate::z#3 prepare_matrix::$13 prepare_matrix::$15 prepare_matrix::$18 prepare_matrix::$24 prepare_matrix::$29 ] ] with [ zp ZP_BYTE:31 [ prepare_matrix::$31 ] ] -Allocated (was zp ZP_BYTE:4) zp ZP_BYTE:2 [ rotate::z#3 prepare_matrix::$13 prepare_matrix::$15 prepare_matrix::$18 prepare_matrix::$24 prepare_matrix::$29 prepare_matrix::$31 ] -Allocated (was zp ZP_WORD:5) zp ZP_WORD:3 [ mulf_init::sqr1#2 mulf_init::sqr1#1 ] -Allocated (was zp ZP_WORD:8) zp ZP_WORD:5 [ mulf_init::add#2 mulf_init::add#1 ] +Uplifting [main] best 19061 combination reg byte a [ main::$11 ] reg byte a [ main::$14 ] zp ZP_BYTE:5 [ main::i#2 main::i#1 ] reg byte a [ main::$9 ] reg byte a [ main::$12 ] zp ZP_BYTE:19 [ main::i2#0 ] zp ZP_BYTE:2 [ main::sx#6 main::sx#12 main::sx#1 ] zp ZP_BYTE:15 [ main::$4 ] zp ZP_BYTE:3 [ main::sy#5 main::sy#1 ] zp ZP_BYTE:4 [ main::sz#5 main::sz#1 ] +Limited combination testing to 100 combinations of 3072 possible. +Uplifting [mulf_init] best 18821 combination reg byte a [ mulf_init::$0 ] reg byte a [ mulf_init::$2 ] reg byte a [ mulf_init::$4 ] reg byte a [ mulf_init::$7 ] zp ZP_BYTE:65 [ mulf_init::$9 ] zp ZP_BYTE:66 [ mulf_init::$12 ] zp ZP_BYTE:68 [ mulf_init::$14 ] zp ZP_BYTE:70 [ mulf_init::$17 ] zp ZP_BYTE:8 [ mulf_init::i#2 mulf_init::i#1 ] zp ZP_BYTE:61 [ mulf_init::$3 ] zp ZP_BYTE:63 [ mulf_init::$6 ] zp ZP_BYTE:67 [ mulf_init::$13 ] zp ZP_BYTE:69 [ mulf_init::$16 ] zp ZP_WORD:6 [ mulf_init::sqr1#2 mulf_init::sqr1#1 ] zp ZP_WORD:9 [ mulf_init::add#2 mulf_init::add#1 ] +Limited combination testing to 100 combinations of 15925248 possible. +Uplifting [rotate] best 18419 combination zp ZP_BYTE:16 [ rotate::x#0 ] reg byte y [ rotate::y#0 ] reg byte x [ rotate::z#0 ] +Uplifting [sprites_init] best 18269 combination reg byte x [ sprites_init::i#2 sprites_init::i#1 ] +Uplifting [] best 18269 combination +Attempting to uplift remaining variables inzp ZP_BYTE:5 [ main::i#2 main::i#1 ] +Uplifting [main] best 18269 combination zp ZP_BYTE:5 [ main::i#2 main::i#1 ] +Attempting to uplift remaining variables inzp ZP_BYTE:19 [ main::i2#0 ] +Uplifting [main] best 17569 combination reg byte x [ main::i2#0 ] +Attempting to uplift remaining variables inzp ZP_BYTE:16 [ rotate::x#0 ] +Uplifting [rotate] best 17569 combination zp ZP_BYTE:16 [ rotate::x#0 ] +Attempting to uplift remaining variables inzp ZP_BYTE:2 [ main::sx#6 main::sx#12 main::sx#1 ] +Uplifting [main] best 17569 combination zp ZP_BYTE:2 [ main::sx#6 main::sx#12 main::sx#1 ] +Attempting to uplift remaining variables inzp ZP_BYTE:15 [ main::$4 ] +Uplifting [main] best 17529 combination reg byte a [ main::$4 ] +Attempting to uplift remaining variables inzp ZP_BYTE:65 [ mulf_init::$9 ] +Uplifting [mulf_init] best 17469 combination reg byte a [ mulf_init::$9 ] +Attempting to uplift remaining variables inzp ZP_BYTE:66 [ mulf_init::$12 ] +Uplifting [mulf_init] best 17409 combination reg byte a [ mulf_init::$12 ] +Attempting to uplift remaining variables inzp ZP_BYTE:68 [ mulf_init::$14 ] +Uplifting [mulf_init] best 17349 combination reg byte a [ mulf_init::$14 ] +Attempting to uplift remaining variables inzp ZP_BYTE:70 [ mulf_init::$17 ] +Uplifting [mulf_init] best 17289 combination reg byte a [ mulf_init::$17 ] +Attempting to uplift remaining variables inzp ZP_BYTE:8 [ mulf_init::i#2 mulf_init::i#1 ] +Uplifting [mulf_init] best 17079 combination reg byte x [ mulf_init::i#2 mulf_init::i#1 ] +Attempting to uplift remaining variables inzp ZP_BYTE:61 [ mulf_init::$3 ] +Uplifting [mulf_init] best 17039 combination reg byte y [ mulf_init::$3 ] +Attempting to uplift remaining variables inzp ZP_BYTE:63 [ mulf_init::$6 ] +Uplifting [mulf_init] best 16999 combination reg byte y [ mulf_init::$6 ] +Attempting to uplift remaining variables inzp ZP_BYTE:67 [ mulf_init::$13 ] +Uplifting [mulf_init] best 16959 combination reg byte y [ mulf_init::$13 ] +Attempting to uplift remaining variables inzp ZP_BYTE:69 [ mulf_init::$16 ] +Uplifting [mulf_init] best 16919 combination reg byte y [ mulf_init::$16 ] +Attempting to uplift remaining variables inzp ZP_BYTE:3 [ main::sy#5 main::sy#1 ] +Uplifting [main] best 16919 combination zp ZP_BYTE:3 [ main::sy#5 main::sy#1 ] +Attempting to uplift remaining variables inzp ZP_BYTE:4 [ main::sz#5 main::sz#1 ] +Uplifting [main] best 16919 combination zp ZP_BYTE:4 [ main::sz#5 main::sz#1 ] +Attempting to uplift remaining variables inzp ZP_BYTE:14 [ prepare_matrix::sz#0 ] +Uplifting [prepare_matrix] best 16889 combination reg byte x [ prepare_matrix::sz#0 ] +Attempting to uplift remaining variables inzp ZP_BYTE:34 [ prepare_matrix::$10 ] +Uplifting [prepare_matrix] best 16883 combination reg byte a [ prepare_matrix::$10 ] +Attempting to uplift remaining variables inzp ZP_BYTE:35 [ prepare_matrix::$11 ] +Uplifting [prepare_matrix] best 16877 combination reg byte a [ prepare_matrix::$11 ] +Attempting to uplift remaining variables inzp ZP_BYTE:36 [ prepare_matrix::$12 ] +Uplifting [prepare_matrix] best 16871 combination reg byte a [ prepare_matrix::$12 ] +Attempting to uplift remaining variables inzp ZP_BYTE:37 [ prepare_matrix::$13 ] +Uplifting [prepare_matrix] best 16865 combination reg byte a [ prepare_matrix::$13 ] +Attempting to uplift remaining variables inzp ZP_BYTE:38 [ prepare_matrix::$14 ] +Uplifting [prepare_matrix] best 16859 combination reg byte a [ prepare_matrix::$14 ] +Attempting to uplift remaining variables inzp ZP_BYTE:39 [ prepare_matrix::$15 ] +Uplifting [prepare_matrix] best 16853 combination reg byte a [ prepare_matrix::$15 ] +Attempting to uplift remaining variables inzp ZP_BYTE:40 [ prepare_matrix::$16 ] +Uplifting [prepare_matrix] best 16847 combination reg byte a [ prepare_matrix::$16 ] +Attempting to uplift remaining variables inzp ZP_BYTE:41 [ prepare_matrix::$17 ] +Uplifting [prepare_matrix] best 16841 combination reg byte a [ prepare_matrix::$17 ] +Attempting to uplift remaining variables inzp ZP_BYTE:42 [ prepare_matrix::$18 ] +Uplifting [prepare_matrix] best 16835 combination reg byte a [ prepare_matrix::$18 ] +Attempting to uplift remaining variables inzp ZP_BYTE:43 [ prepare_matrix::$19 ] +Uplifting [prepare_matrix] best 16829 combination reg byte a [ prepare_matrix::$19 ] +Attempting to uplift remaining variables inzp ZP_BYTE:44 [ prepare_matrix::$20 ] +Uplifting [prepare_matrix] best 16823 combination reg byte a [ prepare_matrix::$20 ] +Attempting to uplift remaining variables inzp ZP_BYTE:45 [ prepare_matrix::$21 ] +Uplifting [prepare_matrix] best 16817 combination reg byte a [ prepare_matrix::$21 ] +Attempting to uplift remaining variables inzp ZP_BYTE:46 [ prepare_matrix::$22 ] +Uplifting [prepare_matrix] best 16811 combination reg byte a [ prepare_matrix::$22 ] +Attempting to uplift remaining variables inzp ZP_BYTE:47 [ prepare_matrix::$23 ] +Uplifting [prepare_matrix] best 16805 combination reg byte a [ prepare_matrix::$23 ] +Attempting to uplift remaining variables inzp ZP_BYTE:48 [ prepare_matrix::$24 ] +Uplifting [prepare_matrix] best 16799 combination reg byte a [ prepare_matrix::$24 ] +Attempting to uplift remaining variables inzp ZP_BYTE:49 [ prepare_matrix::$25 ] +Uplifting [prepare_matrix] best 16793 combination reg byte a [ prepare_matrix::$25 ] +Attempting to uplift remaining variables inzp ZP_BYTE:50 [ prepare_matrix::$26 ] +Uplifting [prepare_matrix] best 16787 combination reg byte a [ prepare_matrix::$26 ] +Attempting to uplift remaining variables inzp ZP_BYTE:51 [ prepare_matrix::$27 ] +Uplifting [prepare_matrix] best 16781 combination reg byte a [ prepare_matrix::$27 ] +Attempting to uplift remaining variables inzp ZP_BYTE:52 [ prepare_matrix::$28 ] +Uplifting [prepare_matrix] best 16775 combination reg byte a [ prepare_matrix::$28 ] +Attempting to uplift remaining variables inzp ZP_BYTE:53 [ prepare_matrix::$29 ] +Uplifting [prepare_matrix] best 16769 combination reg byte a [ prepare_matrix::$29 ] +Attempting to uplift remaining variables inzp ZP_BYTE:54 [ prepare_matrix::$30 ] +Uplifting [prepare_matrix] best 16763 combination reg byte a [ prepare_matrix::$30 ] +Attempting to uplift remaining variables inzp ZP_BYTE:55 [ prepare_matrix::$31 ] +Uplifting [prepare_matrix] best 16757 combination reg byte a [ prepare_matrix::$31 ] +Attempting to uplift remaining variables inzp ZP_BYTE:56 [ prepare_matrix::$32 ] +Uplifting [prepare_matrix] best 16751 combination reg byte a [ prepare_matrix::$32 ] +Attempting to uplift remaining variables inzp ZP_BYTE:57 [ prepare_matrix::$33 ] +Uplifting [prepare_matrix] best 16745 combination reg byte a [ prepare_matrix::$33 ] +Attempting to uplift remaining variables inzp ZP_BYTE:58 [ prepare_matrix::$34 ] +Uplifting [prepare_matrix] best 16739 combination reg byte a [ prepare_matrix::$34 ] +Attempting to uplift remaining variables inzp ZP_BYTE:12 [ prepare_matrix::sx#0 ] +Uplifting [prepare_matrix] best 16711 combination reg byte y [ prepare_matrix::sx#0 ] +Attempting to uplift remaining variables inzp ZP_BYTE:13 [ prepare_matrix::sy#0 ] +Uplifting [prepare_matrix] best 16711 combination zp ZP_BYTE:13 [ prepare_matrix::sy#0 ] +Attempting to uplift remaining variables inzp ZP_BYTE:25 [ prepare_matrix::t2#0 ] +Uplifting [prepare_matrix] best 16711 combination zp ZP_BYTE:25 [ prepare_matrix::t2#0 ] +Attempting to uplift remaining variables inzp ZP_BYTE:24 [ prepare_matrix::t1#0 ] +Uplifting [prepare_matrix] best 16711 combination zp ZP_BYTE:24 [ prepare_matrix::t1#0 ] +Attempting to uplift remaining variables inzp ZP_BYTE:29 [ prepare_matrix::t6#0 ] +Uplifting [prepare_matrix] best 16711 combination zp ZP_BYTE:29 [ prepare_matrix::t6#0 ] +Attempting to uplift remaining variables inzp ZP_BYTE:27 [ prepare_matrix::t4#0 ] +Uplifting [prepare_matrix] best 16711 combination zp ZP_BYTE:27 [ prepare_matrix::t4#0 ] +Attempting to uplift remaining variables inzp ZP_BYTE:30 [ prepare_matrix::t7#0 ] +Uplifting [prepare_matrix] best 16711 combination zp ZP_BYTE:30 [ prepare_matrix::t7#0 ] +Attempting to uplift remaining variables inzp ZP_BYTE:31 [ prepare_matrix::t8#0 ] +Uplifting [prepare_matrix] best 16711 combination zp ZP_BYTE:31 [ prepare_matrix::t8#0 ] +Attempting to uplift remaining variables inzp ZP_BYTE:26 [ prepare_matrix::t3#0 ] +Uplifting [prepare_matrix] best 16711 combination zp ZP_BYTE:26 [ prepare_matrix::t3#0 ] +Attempting to uplift remaining variables inzp ZP_BYTE:28 [ prepare_matrix::t5#0 ] +Uplifting [prepare_matrix] best 16711 combination zp ZP_BYTE:28 [ prepare_matrix::t5#0 ] +Attempting to uplift remaining variables inzp ZP_BYTE:33 [ prepare_matrix::t10#0 ] +Uplifting [prepare_matrix] best 16711 combination zp ZP_BYTE:33 [ prepare_matrix::t10#0 ] +Attempting to uplift remaining variables inzp ZP_BYTE:32 [ prepare_matrix::t9#0 ] +Uplifting [prepare_matrix] best 16711 combination zp ZP_BYTE:32 [ prepare_matrix::t9#0 ] +Coalescing zero page register with common assignment [ zp ZP_BYTE:3 [ main::sy#5 main::sy#1 ] ] with [ zp ZP_BYTE:13 [ prepare_matrix::sy#0 ] ] - score: 1 +Coalescing zero page register [ zp ZP_BYTE:5 [ main::i#2 main::i#1 ] ] with [ zp ZP_BYTE:24 [ prepare_matrix::t1#0 ] ] +Coalescing zero page register [ zp ZP_BYTE:16 [ rotate::x#0 ] ] with [ zp ZP_BYTE:25 [ prepare_matrix::t2#0 ] ] +Allocated (was zp ZP_WORD:9) zp ZP_WORD:8 [ mulf_init::add#2 mulf_init::add#1 ] +Allocated (was zp ZP_BYTE:16) zp ZP_BYTE:10 [ rotate::x#0 prepare_matrix::t2#0 ] +Allocated (was zp ZP_BYTE:26) zp ZP_BYTE:11 [ prepare_matrix::t3#0 ] +Allocated (was zp ZP_BYTE:27) zp ZP_BYTE:12 [ prepare_matrix::t4#0 ] +Allocated (was zp ZP_BYTE:28) zp ZP_BYTE:13 [ prepare_matrix::t5#0 ] +Allocated (was zp ZP_BYTE:29) zp ZP_BYTE:14 [ prepare_matrix::t6#0 ] +Allocated (was zp ZP_BYTE:30) zp ZP_BYTE:15 [ prepare_matrix::t7#0 ] +Allocated (was zp ZP_BYTE:31) zp ZP_BYTE:16 [ prepare_matrix::t8#0 ] +Allocated (was zp ZP_BYTE:32) zp ZP_BYTE:17 [ prepare_matrix::t9#0 ] +Allocated (was zp ZP_BYTE:33) zp ZP_BYTE:18 [ prepare_matrix::t10#0 ] ASSEMBLER BEFORE OPTIMIZATION //SEG0 Basic Upstart @@ -1967,9 +3027,16 @@ ASSEMBLER BEFORE OPTIMIZATION :BasicUpstart(main) .pc = $80d "Program" //SEG1 Global Constants & labels + .label SPRITES_XPOS = $d000 + .label SPRITES_YPOS = $d001 .label RASTER = $d012 + .label SPRITES_ENABLE = $d015 .label BORDERCOL = $d020 + .label SPRITES_COLS = $d027 + .const GREEN = 5 .const LIGHT_BLUE = $e + .label SCREEN = $400 + .label SPRITE = $3000 .label COSH = $2000 .label COSQ = $2200 .label xr = $f0 @@ -1982,160 +3049,198 @@ bbegin: jmp b3 //SEG3 @3 b3: -//SEG4 kickasm(location (const signed byte*) COSH#0) {{ { .var min = -$1fff .var max = $1fff .var ampl = max-min; .for(var i=0;i<$140;i++) { .var rad = i*2*PI/256; .byte >round(min+(ampl/2)+(ampl/2)*cos(rad)) } } }} -//SEG5 kickasm(location (const signed byte*) COSQ#0) {{ { .var min = -$0fff .var max = $0fff .var ampl = max-min; .for(var i=0;i<$140;i++) { .var rad = i*2*PI/256; .byte >round(min+(ampl/2)+(ampl/2)*cos(rad)) } } }} -//SEG6 [3] phi from @3 to @7 [phi:@3->@7] -b7_from_b3: - jmp b7 -//SEG7 @7 -b7: -//SEG8 [4] call main [ ] ( ) +//SEG4 kickasm(location (const byte*) SPRITE#0) {{ .var pic = LoadPicture("balloon.png", List().add($000000, $ffffff)) .for (var y=0; y<21; y++) .for (var x=0;x<3; x++) .byte pic.getSinglecolorByte(x,y) }} +//SEG5 kickasm(location (const signed byte*) COSH#0) {{ { .var min = -$1fff .var max = $1fff .var ampl = max-min; .for(var i=0;i<$140;i++) { .var rad = i*2*PI/256; .byte >round(min+(ampl/2)+(ampl/2)*cos(rad)) } } }} +//SEG6 kickasm(location (const signed byte*) COSQ#0) {{ { .var min = -$0fff .var max = $0fff .var ampl = max-min; .for(var i=0;i<$140;i++) { .var rad = i*2*PI/256; .byte >round(min+(ampl/2)+(ampl/2)*cos(rad)) } } }} +//SEG7 [4] phi from @3 to @8 [phi:@3->@8] +b8_from_b3: + jmp b8 +//SEG8 @8 +b8: +//SEG9 [5] call main [ ] ( ) jsr main -//SEG9 [5] phi from @7 to @end [phi:@7->@end] -bend_from_b7: +//SEG10 [6] phi from @8 to @end [phi:@8->@end] +bend_from_b8: jmp bend -//SEG10 @end +//SEG11 @end bend: -//SEG11 main +//SEG12 main main: { - .label SCREEN = $400 - //SEG12 asm { sei } + .label sy = 3 + .label sz = 4 + .label sx = 2 + .label i = 5 + //SEG13 asm { sei } sei - //SEG13 [7] call mulf_init [ ] ( main:4 [ ] ) - //SEG14 [69] phi from main to mulf_init [phi:main->mulf_init] - mulf_init_from_main: + //SEG14 [8] call sprites_init [ ] ( main:5 [ ] ) + jsr sprites_init + //SEG15 [9] phi from main to main::@17 [phi:main->main::@17] + b17_from_main: + jmp b17 + //SEG16 main::@17 + b17: + //SEG17 [10] call mulf_init [ ] ( main:5 [ ] ) + //SEG18 [91] phi from main::@17 to mulf_init [phi:main::@17->mulf_init] + mulf_init_from_b17: jsr mulf_init - //SEG15 [8] phi from main to main::@13 [phi:main->main::@13] - b13_from_main: - jmp b13 - //SEG16 main::@13 - b13: - //SEG17 [9] call prepare_matrix [ ] ( main:4 [ ] ) - jsr prepare_matrix + //SEG19 [11] phi from main::@17 to main::@1 [phi:main::@17->main::@1] + b1_from_b17: + //SEG20 [11] phi (signed byte) main::sz#5 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@17->main::@1#0] -- vbsz1=vbuc1 + lda #0 + sta sz + //SEG21 [11] phi (signed byte) main::sy#5 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@17->main::@1#1] -- vbsz1=vbuc1 + lda #0 + sta sy + //SEG22 [11] phi (signed byte) main::sx#6 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@17->main::@1#2] -- vbsz1=vbuc1 + lda #0 + sta sx + jmp b1 + //SEG23 main::@1 + b1: jmp b4 - //SEG18 main::@4 + //SEG24 main::@4 b4: - //SEG19 [10] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto main::@4 [ ] ( main:4 [ ] ) -- _deref_pbuc1_neq_vbuc2_then_la1 + //SEG25 [12] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto main::@4 [ main::sx#6 main::sy#5 main::sz#5 ] ( main:5 [ main::sx#6 main::sy#5 main::sz#5 ] ) -- _deref_pbuc1_neq_vbuc2_then_la1 lda RASTER cmp #$ff bne b4 jmp b6 - //SEG20 main::@6 + //SEG26 main::@6 b6: - //SEG21 [11] *((const byte*) BORDERCOL#0) ← ++ *((const byte*) BORDERCOL#0) [ ] ( main:4 [ ] ) -- _deref_pbuc1=_inc__deref_pbuc1 + //SEG27 [13] *((const byte*) BORDERCOL#0) ← ++ *((const byte*) BORDERCOL#0) [ main::sx#6 main::sy#5 main::sz#5 ] ( main:5 [ main::sx#6 main::sy#5 main::sz#5 ] ) -- _deref_pbuc1=_inc__deref_pbuc1 inc BORDERCOL - //SEG22 [12] call rotate [ ] ( main:4 [ ] ) - //SEG23 [27] phi from main::@6 to rotate [phi:main::@6->rotate] - rotate_from_b6: - //SEG24 [27] phi (signed byte) rotate::z#3 = (byte/signed byte/word/signed word/dword/signed dword) 63 [phi:main::@6->rotate#0] -- vbsz1=vbuc1 - lda #$3f - sta rotate.z - //SEG25 [27] phi (signed byte) rotate::y#3 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@6->rotate#1] -- vbsxx=vbuc1 + //SEG28 [14] (signed byte) prepare_matrix::sx#0 ← (signed byte) main::sx#6 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::sx#0 ] ( main:5 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::sx#0 ] ) -- vbsyy=vbsz1 + ldy sx + //SEG29 [15] (signed byte) prepare_matrix::sy#0 ← (signed byte) main::sy#5 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::sx#0 prepare_matrix::sy#0 ] ( main:5 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::sx#0 prepare_matrix::sy#0 ] ) + // (signed byte) prepare_matrix::sy#0 = (signed byte) main::sy#5 // register copy zp ZP_BYTE:3 + //SEG30 [16] (signed byte) prepare_matrix::sz#0 ← (signed byte) main::sz#5 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::sx#0 prepare_matrix::sy#0 prepare_matrix::sz#0 ] ( main:5 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::sx#0 prepare_matrix::sy#0 prepare_matrix::sz#0 ] ) -- vbsxx=vbsz1 + ldx sz + //SEG31 [17] call prepare_matrix [ main::sx#6 main::sy#5 main::sz#5 ] ( main:5 [ main::sx#6 main::sy#5 main::sz#5 ] ) + jsr prepare_matrix + jmp b19 + //SEG32 main::@19 + b19: + //SEG33 [18] (signed byte) main::sy#1 ← -- (signed byte) main::sy#5 [ main::sx#6 main::sz#5 main::sy#1 ] ( main:5 [ main::sx#6 main::sz#5 main::sy#1 ] ) -- vbsz1=_dec_vbsz1 + dec sy + //SEG34 [19] (signed byte) main::sz#1 ← ++ (signed byte) main::sz#5 [ main::sx#6 main::sy#1 main::sz#1 ] ( main:5 [ main::sx#6 main::sy#1 main::sz#1 ] ) -- vbsz1=_inc_vbsz1 + inc sz + //SEG35 [20] (byte~) main::$4 ← (signed byte) main::sy#1 & (byte/signed byte/word/signed word/dword/signed dword) 1 [ main::sx#6 main::sy#1 main::sz#1 main::$4 ] ( main:5 [ main::sx#6 main::sy#1 main::sz#1 main::$4 ] ) -- vbuaa=vbsz1_band_vbuc1 + lda sy + and #1 + //SEG36 [21] if((byte~) main::$4!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto main::@7 [ main::sx#6 main::sy#1 main::sz#1 ] ( main:5 [ main::sx#6 main::sy#1 main::sz#1 ] ) -- vbuaa_neq_0_then_la1 + cmp #0 + bne b7_from_b19 + jmp b14 + //SEG37 main::@14 + b14: + //SEG38 [22] (signed byte) main::sx#1 ← ++ (signed byte) main::sx#6 [ main::sy#1 main::sz#1 main::sx#1 ] ( main:5 [ main::sy#1 main::sz#1 main::sx#1 ] ) -- vbsz1=_inc_vbsz1 + inc sx + //SEG39 [23] phi from main::@14 main::@19 to main::@7 [phi:main::@14/main::@19->main::@7] + b7_from_b14: + b7_from_b19: + //SEG40 [23] phi (signed byte) main::sx#12 = (signed byte) main::sx#1 [phi:main::@14/main::@19->main::@7#0] -- register_copy + jmp b7 + //SEG41 main::@7 + b7: + //SEG42 [24] phi from main::@7 to main::@8 [phi:main::@7->main::@8] + b8_from_b7: + //SEG43 [24] phi (byte) main::i#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@7->main::@8#0] -- vbuz1=vbuc1 lda #0 + sta i + jmp b8 + //SEG44 [24] phi from main::@20 to main::@8 [phi:main::@20->main::@8] + b8_from_b20: + //SEG45 [24] phi (byte) main::i#2 = (byte) main::i#1 [phi:main::@20->main::@8#0] -- register_copy + jmp b8 + //SEG46 main::@8 + b8: + //SEG47 [25] *((const byte*) BORDERCOL#0) ← ++ *((const byte*) BORDERCOL#0) [ main::sx#12 main::sy#1 main::sz#1 main::i#2 ] ( main:5 [ main::sx#12 main::sy#1 main::sz#1 main::i#2 ] ) -- _deref_pbuc1=_inc__deref_pbuc1 + inc BORDERCOL + //SEG48 [26] (signed byte) rotate::x#0 ← *((const signed byte[8]) xs#0 + (byte) main::i#2) [ main::sx#12 main::sy#1 main::sz#1 main::i#2 rotate::x#0 ] ( main:5 [ main::sx#12 main::sy#1 main::sz#1 main::i#2 rotate::x#0 ] ) -- vbsz1=pbsc1_derefidx_vbuz2 + ldy i + lda xs,y + sta rotate.x + //SEG49 [27] (signed byte) rotate::y#0 ← *((const signed byte[8]) ys#0 + (byte) main::i#2) [ main::sx#12 main::sy#1 main::sz#1 main::i#2 rotate::x#0 rotate::y#0 ] ( main:5 [ main::sx#12 main::sy#1 main::sz#1 main::i#2 rotate::x#0 rotate::y#0 ] ) -- vbsyy=pbsc1_derefidx_vbuz1 + ldx i + ldy ys,x + //SEG50 [28] (signed byte) rotate::z#0 ← *((const signed byte[8]) zs#0 + (byte) main::i#2) [ main::sx#12 main::sy#1 main::sz#1 main::i#2 rotate::x#0 rotate::y#0 rotate::z#0 ] ( main:5 [ main::sx#12 main::sy#1 main::sz#1 main::i#2 rotate::x#0 rotate::y#0 rotate::z#0 ] ) -- vbsxx=pbsc1_derefidx_vbuz1 + ldx i + lda zs,x tax - //SEG26 [27] phi (signed byte) rotate::x#3 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@6->rotate#2] -- vbsyy=vbuc1 - lda #0 - tay + //SEG51 [29] call rotate [ main::sx#12 main::sy#1 main::sz#1 main::i#2 ] ( main:5 [ main::sx#12 main::sy#1 main::sz#1 main::i#2 ] ) jsr rotate + jmp b20 + //SEG52 main::@20 + b20: + //SEG53 [30] (byte) main::i2#0 ← (byte) main::i#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ main::sx#12 main::sy#1 main::sz#1 main::i#2 main::i2#0 ] ( main:5 [ main::sx#12 main::sy#1 main::sz#1 main::i#2 main::i2#0 ] ) -- vbuxx=vbuz1_rol_1 + lda i + asl + tax + //SEG54 [31] (signed byte~) main::$9 ← *((const signed byte*) xr#0) >> (byte/signed byte/word/signed word/dword/signed dword) 1 [ main::sx#12 main::sy#1 main::sz#1 main::i#2 main::i2#0 main::$9 ] ( main:5 [ main::sx#12 main::sy#1 main::sz#1 main::i#2 main::i2#0 main::$9 ] ) -- vbsaa=_deref_pbsc1_ror_1 + lda xr + cmp #$80 + ror + //SEG55 [32] (byte/word/signed word/dword/signed dword~) main::$11 ← (byte/word/signed word/dword/signed dword) 128 + (byte)(signed byte~) main::$9 [ main::sx#12 main::sy#1 main::sz#1 main::i#2 main::i2#0 main::$11 ] ( main:5 [ main::sx#12 main::sy#1 main::sz#1 main::i#2 main::i2#0 main::$11 ] ) -- vbuaa=vbuc1_plus_vbuaa + clc + adc #$80 + //SEG56 [33] *((const byte*) SPRITES_XPOS#0 + (byte) main::i2#0) ← (byte/word/signed word/dword/signed dword~) main::$11 [ main::sx#12 main::sy#1 main::sz#1 main::i#2 main::i2#0 ] ( main:5 [ main::sx#12 main::sy#1 main::sz#1 main::i#2 main::i2#0 ] ) -- pbuc1_derefidx_vbuxx=vbuaa + sta SPRITES_XPOS,x + //SEG57 [34] (signed byte~) main::$12 ← *((const signed byte*) yr#0) >> (byte/signed byte/word/signed word/dword/signed dword) 1 [ main::sx#12 main::sy#1 main::sz#1 main::i#2 main::i2#0 main::$12 ] ( main:5 [ main::sx#12 main::sy#1 main::sz#1 main::i#2 main::i2#0 main::$12 ] ) -- vbsaa=_deref_pbsc1_ror_1 + lda yr + cmp #$80 + ror + //SEG58 [35] (byte/word/signed word/dword/signed dword~) main::$14 ← (byte/word/signed word/dword/signed dword) 128 + (byte)(signed byte~) main::$12 [ main::sx#12 main::sy#1 main::sz#1 main::i#2 main::i2#0 main::$14 ] ( main:5 [ main::sx#12 main::sy#1 main::sz#1 main::i#2 main::i2#0 main::$14 ] ) -- vbuaa=vbuc1_plus_vbuaa + clc + adc #$80 + //SEG59 [36] *((const byte*) SPRITES_YPOS#0 + (byte) main::i2#0) ← (byte/word/signed word/dword/signed dword~) main::$14 [ main::sx#12 main::sy#1 main::sz#1 main::i#2 ] ( main:5 [ main::sx#12 main::sy#1 main::sz#1 main::i#2 ] ) -- pbuc1_derefidx_vbuxx=vbuaa + sta SPRITES_YPOS,x + //SEG60 [37] (byte) main::i#1 ← ++ (byte) main::i#2 [ main::sx#12 main::sy#1 main::sz#1 main::i#1 ] ( main:5 [ main::sx#12 main::sy#1 main::sz#1 main::i#1 ] ) -- vbuz1=_inc_vbuz1 + inc i + //SEG61 [38] if((byte) main::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 8) goto main::@8 [ main::sx#12 main::sy#1 main::sz#1 main::i#1 ] ( main:5 [ main::sx#12 main::sy#1 main::sz#1 main::i#1 ] ) -- vbuz1_neq_vbuc1_then_la1 + lda i + cmp #8 + bne b8_from_b20 jmp b15 - //SEG27 main::@15 + //SEG62 main::@15 b15: - //SEG28 [13] *((const byte*) main::SCREEN#0) ← (byte)*((const signed byte*) xr#0) [ ] ( main:4 [ ] ) -- _deref_pbuc1=_deref_pbuc2 - lda xr - sta SCREEN - //SEG29 [14] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte)*((const signed byte*) yr#0) [ ] ( main:4 [ ] ) -- _deref_pbuc1=_deref_pbuc2 - lda yr - sta SCREEN+1 - //SEG30 [15] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte)*((const signed byte*) zr#0) [ ] ( main:4 [ ] ) -- _deref_pbuc1=_deref_pbuc2 - lda zr - sta SCREEN+2 - //SEG31 [16] *((const byte*) BORDERCOL#0) ← ++ *((const byte*) BORDERCOL#0) [ ] ( main:4 [ ] ) -- _deref_pbuc1=_inc__deref_pbuc1 - inc BORDERCOL - //SEG32 [17] call rotate [ ] ( main:4 [ ] ) - //SEG33 [27] phi from main::@15 to rotate [phi:main::@15->rotate] - rotate_from_b15: - //SEG34 [27] phi (signed byte) rotate::z#3 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@15->rotate#0] -- vbsz1=vbuc1 - lda #0 - sta rotate.z - //SEG35 [27] phi (signed byte) rotate::y#3 = (byte/signed byte/word/signed word/dword/signed dword) 63 [phi:main::@15->rotate#1] -- vbsxx=vbuc1 - lda #$3f - tax - //SEG36 [27] phi (signed byte) rotate::x#3 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@15->rotate#2] -- vbsyy=vbuc1 - lda #0 - tay - jsr rotate - jmp b16 - //SEG37 main::@16 - b16: - //SEG38 [18] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40) ← (byte)*((const signed byte*) xr#0) [ ] ( main:4 [ ] ) -- _deref_pbuc1=_deref_pbuc2 - lda xr - sta SCREEN+$28 - //SEG39 [19] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 41) ← (byte)*((const signed byte*) yr#0) [ ] ( main:4 [ ] ) -- _deref_pbuc1=_deref_pbuc2 - lda yr - sta SCREEN+$29 - //SEG40 [20] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 42) ← (byte)*((const signed byte*) zr#0) [ ] ( main:4 [ ] ) -- _deref_pbuc1=_deref_pbuc2 - lda zr - sta SCREEN+$2a - //SEG41 [21] *((const byte*) BORDERCOL#0) ← ++ *((const byte*) BORDERCOL#0) [ ] ( main:4 [ ] ) -- _deref_pbuc1=_inc__deref_pbuc1 - inc BORDERCOL - //SEG42 [22] call rotate [ ] ( main:4 [ ] ) - //SEG43 [27] phi from main::@16 to rotate [phi:main::@16->rotate] - rotate_from_b16: - //SEG44 [27] phi (signed byte) rotate::z#3 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@16->rotate#0] -- vbsz1=vbuc1 - lda #0 - sta rotate.z - //SEG45 [27] phi (signed byte) rotate::y#3 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@16->rotate#1] -- vbsxx=vbuc1 - lda #0 - tax - //SEG46 [27] phi (signed byte) rotate::x#3 = (byte/signed byte/word/signed word/dword/signed dword) 63 [phi:main::@16->rotate#2] -- vbsyy=vbuc1 - lda #$3f - tay - jsr rotate - jmp b17 - //SEG47 main::@17 - b17: - //SEG48 [23] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 80) ← (byte)*((const signed byte*) xr#0) [ ] ( main:4 [ ] ) -- _deref_pbuc1=_deref_pbuc2 - lda xr - sta SCREEN+$50 - //SEG49 [24] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 81) ← (byte)*((const signed byte*) yr#0) [ ] ( main:4 [ ] ) -- _deref_pbuc1=_deref_pbuc2 - lda yr - sta SCREEN+$51 - //SEG50 [25] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 82) ← (byte)*((const signed byte*) zr#0) [ ] ( main:4 [ ] ) -- _deref_pbuc1=_deref_pbuc2 - lda zr - sta SCREEN+$52 - //SEG51 [26] *((const byte*) BORDERCOL#0) ← (const byte) LIGHT_BLUE#0 [ ] ( main:4 [ ] ) -- _deref_pbuc1=vbuc2 + //SEG63 [39] *((const byte*) BORDERCOL#0) ← (const byte) LIGHT_BLUE#0 [ main::sx#12 main::sy#1 main::sz#1 ] ( main:5 [ main::sx#12 main::sy#1 main::sz#1 ] ) -- _deref_pbuc1=vbuc2 lda #LIGHT_BLUE sta BORDERCOL - jmp b4 + //SEG64 [11] phi from main::@15 to main::@1 [phi:main::@15->main::@1] + b1_from_b15: + //SEG65 [11] phi (signed byte) main::sz#5 = (signed byte) main::sz#1 [phi:main::@15->main::@1#0] -- register_copy + //SEG66 [11] phi (signed byte) main::sy#5 = (signed byte) main::sy#1 [phi:main::@15->main::@1#1] -- register_copy + //SEG67 [11] phi (signed byte) main::sx#6 = (signed byte) main::sx#12 [phi:main::@15->main::@1#2] -- register_copy + jmp b1 } -//SEG52 rotate +//SEG68 rotate rotate: { - .label z = 2 - //SEG53 [28] *((const signed byte*) xr#0) ← (signed byte) rotate::x#3 [ rotate::y#3 rotate::z#3 ] ( main:4::rotate:12 [ rotate::y#3 rotate::z#3 ] main:4::rotate:17 [ rotate::y#3 rotate::z#3 ] main:4::rotate:22 [ rotate::y#3 rotate::z#3 ] ) -- _deref_pbsc1=vbsyy - tya + .label x = $a + //SEG69 [40] *((const signed byte*) xr#0) ← (signed byte) rotate::x#0 [ rotate::y#0 rotate::z#0 ] ( main:5::rotate:29 [ main::sx#12 main::sy#1 main::sz#1 main::i#2 rotate::y#0 rotate::z#0 ] ) -- _deref_pbsc1=vbsz1 + lda x sta xr - //SEG54 [29] *((const signed byte*) yr#0) ← (signed byte) rotate::y#3 [ rotate::z#3 ] ( main:4::rotate:12 [ rotate::z#3 ] main:4::rotate:17 [ rotate::z#3 ] main:4::rotate:22 [ rotate::z#3 ] ) -- _deref_pbsc1=vbsxx - txa + //SEG70 [41] *((const signed byte*) yr#0) ← (signed byte) rotate::y#0 [ rotate::z#0 ] ( main:5::rotate:29 [ main::sx#12 main::sy#1 main::sz#1 main::i#2 rotate::z#0 ] ) -- _deref_pbsc1=vbsyy + tya sta yr - //SEG55 [30] *((const signed byte*) zr#0) ← (signed byte) rotate::z#3 [ ] ( main:4::rotate:12 [ ] main:4::rotate:17 [ ] main:4::rotate:22 [ ] ) -- _deref_pbsc1=vbsz1 - lda z + //SEG71 [42] *((const signed byte*) zr#0) ← (signed byte) rotate::z#0 [ ] ( main:5::rotate:29 [ main::sx#12 main::sy#1 main::sz#1 main::i#2 ] ) -- _deref_pbsc1=vbsxx + txa sta zr - //SEG56 asm { clc ldxzr lda#$80 C1: adcmulf_sqr1,x C2: sbcmulf_sqr2,x staC3+1 lda#$80 F1: adcmulf_sqr1,x F2: sbcmulf_sqr2,x staF3+1 lda#$80 I1: adcmulf_sqr1,x I2: sbcmulf_sqr2,x staI3+1 ldxxr ldyyr C3: lda#0 A1: adcmulf_sqr1,x A2: sbcmulf_sqr2,x B1: adcmulf_sqr1,y B2: sbcmulf_sqr2,y staxr F3: lda#0 D1: adcmulf_sqr1,x D2: sbcmulf_sqr2,x E1: adcmulf_sqr1,y E2: sbcmulf_sqr2,y stayr I3: lda#0 G1: adcmulf_sqr1,x G2: sbcmulf_sqr2,x H1: adcmulf_sqr1,y H2: sbcmulf_sqr2,y stazr } + //SEG72 asm { clc ldxzr lda#$0 C1: adcmulf_sqr1,x C2: sbcmulf_sqr2,x staC3+1 lda#0 F1: adcmulf_sqr1,x F2: sbcmulf_sqr2,x staF3+1 lda#0 I1: adcmulf_sqr1,x I2: sbcmulf_sqr2,x staI3+1 ldxxr ldyyr C3: lda#0 A1: adcmulf_sqr1,x A2: sbcmulf_sqr2,x B1: adcmulf_sqr1,y B2: sbcmulf_sqr2,y staxr F3: lda#0 D1: adcmulf_sqr1,x D2: sbcmulf_sqr2,x E1: adcmulf_sqr1,y E2: sbcmulf_sqr2,y stayr I3: lda#0 G1: adcmulf_sqr1,x G2: sbcmulf_sqr2,x H1: adcmulf_sqr1,y H2: sbcmulf_sqr2,y stazr } clc ldx zr - lda #$80 + lda #0 C1: adc mulf_sqr1,x C2: sbc mulf_sqr2,x sta C3+1 - lda #$80 + lda #0 F1: adc mulf_sqr1,x F2: sbc mulf_sqr2,x sta F3+1 - lda #$80 + lda #0 I1: adc mulf_sqr1,x I2: @@ -2177,185 +3282,215 @@ rotate: { sbc mulf_sqr2,y sta zr jmp breturn - //SEG57 rotate::@return + //SEG73 rotate::@return breturn: - //SEG58 [32] return [ ] ( main:4::rotate:12 [ ] main:4::rotate:17 [ ] main:4::rotate:22 [ ] ) + //SEG74 [44] return [ ] ( main:5::rotate:29 [ main::sx#12 main::sy#1 main::sz#1 main::i#2 ] ) rts } -//SEG59 prepare_matrix +//SEG75 prepare_matrix prepare_matrix: { - .const sx = 0 - .const sy = 0 - .const sz = 0 - .const t1 = sy-sz - .const t2 = sy+sz - .const t3 = sx+sz - .const t4 = sx-sz - .const t9 = sy-sx - .const t10 = sy+sx - .const t5 = sx+t2 - .const t6 = sx-t1 - .const t7 = sx+t1 - .const t8 = t2-sx - .label _13 = 2 - .label _15 = 2 - .label _18 = 2 - .label _24 = 2 - .label _29 = 2 - .label _31 = 2 - //SEG60 [33] (signed byte~) prepare_matrix::$10 ← *((const signed byte*) COSH#0+(const signed byte) prepare_matrix::t1#0) + *((const signed byte*) COSH#0+(const signed byte) prepare_matrix::t2#0) [ prepare_matrix::$10 ] ( main:4::prepare_matrix:9 [ prepare_matrix::$10 ] ) -- vbsaa=_deref_pbsc1_plus__deref_pbsc2 - lda COSH+t1 - ldy COSH+t2 + .label sy = 3 + .label t1 = 5 + .label t2 = $a + .label t3 = $b + .label t4 = $c + .label t5 = $d + .label t6 = $e + .label t7 = $f + .label t8 = $10 + .label t9 = $11 + .label t10 = $12 + //SEG76 [45] (signed byte) prepare_matrix::t1#0 ← (signed byte) prepare_matrix::sy#0 - (signed byte) prepare_matrix::sz#0 [ prepare_matrix::sx#0 prepare_matrix::sy#0 prepare_matrix::sz#0 prepare_matrix::t1#0 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::sx#0 prepare_matrix::sy#0 prepare_matrix::sz#0 prepare_matrix::t1#0 ] ) -- vbsz1=vbsz2_minus_vbsxx + txa + eor #$ff + sec + adc sy + sta t1 + //SEG77 [46] (signed byte) prepare_matrix::t2#0 ← (signed byte) prepare_matrix::sy#0 + (signed byte) prepare_matrix::sz#0 [ prepare_matrix::sx#0 prepare_matrix::sy#0 prepare_matrix::sz#0 prepare_matrix::t1#0 prepare_matrix::t2#0 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::sx#0 prepare_matrix::sy#0 prepare_matrix::sz#0 prepare_matrix::t1#0 prepare_matrix::t2#0 ] ) -- vbsz1=vbsz2_plus_vbsxx + txa + clc + adc sy + sta t2 + //SEG78 [47] (signed byte) prepare_matrix::t3#0 ← (signed byte) prepare_matrix::sx#0 + (signed byte) prepare_matrix::sz#0 [ prepare_matrix::sx#0 prepare_matrix::sy#0 prepare_matrix::sz#0 prepare_matrix::t1#0 prepare_matrix::t2#0 prepare_matrix::t3#0 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::sx#0 prepare_matrix::sy#0 prepare_matrix::sz#0 prepare_matrix::t1#0 prepare_matrix::t2#0 prepare_matrix::t3#0 ] ) -- vbsz1=vbsyy_plus_vbsxx + txa sty $ff clc adc $ff - //SEG61 [34] *((const signed byte[9]) rotation_matrix#0) ← (signed byte~) prepare_matrix::$10 [ ] ( main:4::prepare_matrix:9 [ ] ) -- _deref_pbsc1=vbsaa + sta t3 + //SEG79 [48] (signed byte) prepare_matrix::t4#0 ← (signed byte) prepare_matrix::sx#0 - (signed byte) prepare_matrix::sz#0 [ prepare_matrix::sx#0 prepare_matrix::sy#0 prepare_matrix::t1#0 prepare_matrix::t2#0 prepare_matrix::t3#0 prepare_matrix::t4#0 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::sx#0 prepare_matrix::sy#0 prepare_matrix::t1#0 prepare_matrix::t2#0 prepare_matrix::t3#0 prepare_matrix::t4#0 ] ) -- vbsz1=vbsyy_minus_vbsxx + tya + stx $ff + sec + sbc $ff + sta t4 + //SEG80 [49] (signed byte) prepare_matrix::t5#0 ← (signed byte) prepare_matrix::sx#0 + (signed byte) prepare_matrix::t2#0 [ prepare_matrix::sx#0 prepare_matrix::sy#0 prepare_matrix::t1#0 prepare_matrix::t2#0 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::sx#0 prepare_matrix::sy#0 prepare_matrix::t1#0 prepare_matrix::t2#0 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 ] ) -- vbsz1=vbsyy_plus_vbsz2 + tya + clc + adc t2 + sta t5 + //SEG81 [50] (signed byte) prepare_matrix::t6#0 ← (signed byte) prepare_matrix::sx#0 - (signed byte) prepare_matrix::t1#0 [ prepare_matrix::sx#0 prepare_matrix::sy#0 prepare_matrix::t1#0 prepare_matrix::t2#0 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::sx#0 prepare_matrix::sy#0 prepare_matrix::t1#0 prepare_matrix::t2#0 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 ] ) -- vbsz1=vbsyy_minus_vbsz2 + tya + sec + sbc t1 + sta t6 + //SEG82 [51] (signed byte) prepare_matrix::t7#0 ← (signed byte) prepare_matrix::sx#0 + (signed byte) prepare_matrix::t1#0 [ prepare_matrix::sx#0 prepare_matrix::sy#0 prepare_matrix::t1#0 prepare_matrix::t2#0 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::sx#0 prepare_matrix::sy#0 prepare_matrix::t1#0 prepare_matrix::t2#0 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 ] ) -- vbsz1=vbsyy_plus_vbsz2 + tya + clc + adc t1 + sta t7 + //SEG83 [52] (signed byte) prepare_matrix::t8#0 ← (signed byte) prepare_matrix::t2#0 - (signed byte) prepare_matrix::sx#0 [ prepare_matrix::sx#0 prepare_matrix::sy#0 prepare_matrix::t1#0 prepare_matrix::t2#0 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::sx#0 prepare_matrix::sy#0 prepare_matrix::t1#0 prepare_matrix::t2#0 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 ] ) -- vbsz1=vbsz2_minus_vbsyy + tya + eor #$ff + sec + adc t2 + sta t8 + //SEG84 [53] (signed byte) prepare_matrix::t9#0 ← (signed byte) prepare_matrix::sy#0 - (signed byte) prepare_matrix::sx#0 [ prepare_matrix::sx#0 prepare_matrix::sy#0 prepare_matrix::t1#0 prepare_matrix::t2#0 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::sx#0 prepare_matrix::sy#0 prepare_matrix::t1#0 prepare_matrix::t2#0 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 ] ) -- vbsz1=vbsz2_minus_vbsyy + tya + eor #$ff + sec + adc sy + sta t9 + //SEG85 [54] (signed byte) prepare_matrix::t10#0 ← (signed byte) prepare_matrix::sy#0 + (signed byte) prepare_matrix::sx#0 [ prepare_matrix::sy#0 prepare_matrix::t1#0 prepare_matrix::t2#0 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::sy#0 prepare_matrix::t1#0 prepare_matrix::t2#0 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 ] ) -- vbsz1=vbsz2_plus_vbsyy + tya + clc + adc sy + sta t10 + //SEG86 [55] (signed byte~) prepare_matrix::$10 ← *((const signed byte*) COSH#0 + (signed byte) prepare_matrix::t1#0) + *((const signed byte*) COSH#0 + (signed byte) prepare_matrix::t2#0) [ prepare_matrix::sy#0 prepare_matrix::t1#0 prepare_matrix::t2#0 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$10 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::sy#0 prepare_matrix::t1#0 prepare_matrix::t2#0 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$10 ] ) -- vbsaa=pbsc1_derefidx_vbsz1_plus_pbsc1_derefidx_vbsz2 + ldx t1 + ldy t2 + clc + lda COSH,x + adc COSH,y + //SEG87 [56] *((const signed byte[9]) rotation_matrix#0) ← (signed byte~) prepare_matrix::$10 [ prepare_matrix::sy#0 prepare_matrix::t1#0 prepare_matrix::t2#0 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::sy#0 prepare_matrix::t1#0 prepare_matrix::t2#0 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 ] ) -- _deref_pbsc1=vbsaa sta rotation_matrix - //SEG62 [35] (signed byte~) prepare_matrix::$11 ← *((const signed byte*) SINH#0+(const signed byte) prepare_matrix::t1#0) - *((const signed byte*) SINH#0+(const signed byte) prepare_matrix::t2#0) [ prepare_matrix::$11 ] ( main:4::prepare_matrix:9 [ prepare_matrix::$11 ] ) -- vbsaa=_deref_pbsc1_minus__deref_pbsc2 - lda SINH+t1 - ldy SINH+t2 - sty $ff + //SEG88 [57] (signed byte~) prepare_matrix::$11 ← *((const signed byte*) SINH#0 + (signed byte) prepare_matrix::t1#0) - *((const signed byte*) SINH#0 + (signed byte) prepare_matrix::t2#0) [ prepare_matrix::sy#0 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$11 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::sy#0 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$11 ] ) -- vbsaa=pbsc1_derefidx_vbsz1_minus_pbsc1_derefidx_vbsz2 + ldx t1 + ldy t2 sec - sbc $ff - //SEG63 [36] *((const signed byte[9]) rotation_matrix#0+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (signed byte~) prepare_matrix::$11 [ ] ( main:4::prepare_matrix:9 [ ] ) -- _deref_pbsc1=vbsaa + lda SINH,x + sbc SINH,y + //SEG89 [58] *((const signed byte[9]) rotation_matrix#0+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (signed byte~) prepare_matrix::$11 [ prepare_matrix::sy#0 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::sy#0 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 ] ) -- _deref_pbsc1=vbsaa sta rotation_matrix+1 - //SEG64 [37] (signed byte~) prepare_matrix::$12 ← *((const signed byte*) SINH#0+(const signed byte) prepare_matrix::sy#0) + *((const signed byte*) SINH#0+(const signed byte) prepare_matrix::sy#0) [ prepare_matrix::$12 ] ( main:4::prepare_matrix:9 [ prepare_matrix::$12 ] ) -- vbsaa=_deref_pbsc1_plus__deref_pbsc2 - lda SINH+sy - ldy SINH+sy - sty $ff + //SEG90 [59] (signed byte~) prepare_matrix::$12 ← *((const signed byte*) SINH#0 + (signed byte) prepare_matrix::sy#0) + *((const signed byte*) SINH#0 + (signed byte) prepare_matrix::sy#0) [ prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$12 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$12 ] ) -- vbsaa=pbsc1_derefidx_vbsz1_plus_pbsc1_derefidx_vbsz1 + ldy sy clc - adc $ff - //SEG65 [38] *((const signed byte[9]) rotation_matrix#0+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (signed byte~) prepare_matrix::$12 [ ] ( main:4::prepare_matrix:9 [ ] ) -- _deref_pbsc1=vbsaa + lda SINH,y + adc SINH,y + //SEG91 [60] *((const signed byte[9]) rotation_matrix#0+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (signed byte~) prepare_matrix::$12 [ prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 ] ) -- _deref_pbsc1=vbsaa sta rotation_matrix+2 - //SEG66 [39] (signed byte~) prepare_matrix::$13 ← *((const signed byte*) SINH#0+(const signed byte) prepare_matrix::t3#0) - *((const signed byte*) SINH#0+(const signed byte) prepare_matrix::t4#0) [ prepare_matrix::$13 ] ( main:4::prepare_matrix:9 [ prepare_matrix::$13 ] ) -- vbsz1=_deref_pbsc1_minus__deref_pbsc2 - lda SINH+t3 - ldy SINH+t4 - sty $ff + //SEG92 [61] (signed byte~) prepare_matrix::$13 ← *((const signed byte*) SINH#0 + (signed byte) prepare_matrix::t3#0) - *((const signed byte*) SINH#0 + (signed byte) prepare_matrix::t4#0) [ prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$13 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$13 ] ) -- vbsaa=pbsc1_derefidx_vbsz1_minus_pbsc1_derefidx_vbsz2 + ldx t3 + ldy t4 sec - sbc $ff - sta _13 - //SEG67 [40] (signed byte~) prepare_matrix::$14 ← (signed byte~) prepare_matrix::$13 + *((const signed byte*) COSQ#0+(const signed byte) prepare_matrix::t6#0) [ prepare_matrix::$14 ] ( main:4::prepare_matrix:9 [ prepare_matrix::$14 ] ) -- vbsaa=vbsz1_plus__deref_pbsc1 - lda COSQ+t6 + lda SINH,x + sbc SINH,y + //SEG93 [62] (signed byte~) prepare_matrix::$14 ← (signed byte~) prepare_matrix::$13 + *((const signed byte*) COSQ#0 + (signed byte) prepare_matrix::t6#0) [ prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$14 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$14 ] ) -- vbsaa=vbsaa_plus_pbsc1_derefidx_vbsz1 + ldy t6 clc - adc _13 - //SEG68 [41] (signed byte~) prepare_matrix::$15 ← (signed byte~) prepare_matrix::$14 - *((const signed byte*) COSQ#0+(const signed byte) prepare_matrix::t5#0) [ prepare_matrix::$15 ] ( main:4::prepare_matrix:9 [ prepare_matrix::$15 ] ) -- vbsz1=vbsaa_minus__deref_pbsc1 - ldy COSQ+t5 - sty $ff + adc COSQ,y + //SEG94 [63] (signed byte~) prepare_matrix::$15 ← (signed byte~) prepare_matrix::$14 - *((const signed byte*) COSQ#0 + (signed byte) prepare_matrix::t5#0) [ prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$15 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$15 ] ) -- vbsaa=vbsaa_minus_pbsc1_derefidx_vbsz1 + ldy t5 sec - sbc $ff - sta _15 - //SEG69 [42] (signed byte~) prepare_matrix::$16 ← (signed byte~) prepare_matrix::$15 + *((const signed byte*) COSQ#0+(const signed byte) prepare_matrix::t8#0) [ prepare_matrix::$16 ] ( main:4::prepare_matrix:9 [ prepare_matrix::$16 ] ) -- vbsaa=vbsz1_plus__deref_pbsc1 - lda COSQ+t8 + sbc COSQ,y + //SEG95 [64] (signed byte~) prepare_matrix::$16 ← (signed byte~) prepare_matrix::$15 + *((const signed byte*) COSQ#0 + (signed byte) prepare_matrix::t8#0) [ prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$16 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$16 ] ) -- vbsaa=vbsaa_plus_pbsc1_derefidx_vbsz1 + ldy t8 clc - adc _15 - //SEG70 [43] (signed byte~) prepare_matrix::$17 ← (signed byte~) prepare_matrix::$16 - *((const signed byte*) COSQ#0+(const signed byte) prepare_matrix::t7#0) [ prepare_matrix::$17 ] ( main:4::prepare_matrix:9 [ prepare_matrix::$17 ] ) -- vbsaa=vbsaa_minus__deref_pbsc1 - ldy COSQ+t7 - sty $ff + adc COSQ,y + //SEG96 [65] (signed byte~) prepare_matrix::$17 ← (signed byte~) prepare_matrix::$16 - *((const signed byte*) COSQ#0 + (signed byte) prepare_matrix::t7#0) [ prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$17 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$17 ] ) -- vbsaa=vbsaa_minus_pbsc1_derefidx_vbsz1 + ldy t7 sec - sbc $ff - //SEG71 [44] *((const signed byte[9]) rotation_matrix#0+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (signed byte~) prepare_matrix::$17 [ ] ( main:4::prepare_matrix:9 [ ] ) -- _deref_pbsc1=vbsaa + sbc COSQ,y + //SEG97 [66] *((const signed byte[9]) rotation_matrix#0+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (signed byte~) prepare_matrix::$17 [ prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 ] ) -- _deref_pbsc1=vbsaa sta rotation_matrix+3 - //SEG72 [45] (signed byte~) prepare_matrix::$18 ← *((const signed byte*) COSH#0+(const signed byte) prepare_matrix::t3#0) + *((const signed byte*) COSH#0+(const signed byte) prepare_matrix::t4#0) [ prepare_matrix::$18 ] ( main:4::prepare_matrix:9 [ prepare_matrix::$18 ] ) -- vbsz1=_deref_pbsc1_plus__deref_pbsc2 - lda COSH+t3 - ldy COSH+t4 - sty $ff + //SEG98 [67] (signed byte~) prepare_matrix::$18 ← *((const signed byte*) COSH#0 + (signed byte) prepare_matrix::t3#0) + *((const signed byte*) COSH#0 + (signed byte) prepare_matrix::t4#0) [ prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$18 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$18 ] ) -- vbsaa=pbsc1_derefidx_vbsz1_plus_pbsc1_derefidx_vbsz2 + ldx t3 + ldy t4 clc - adc $ff - sta _18 - //SEG73 [46] (signed byte~) prepare_matrix::$19 ← (signed byte~) prepare_matrix::$18 + *((const signed byte*) SINQ#0+(const signed byte) prepare_matrix::t5#0) [ prepare_matrix::$19 ] ( main:4::prepare_matrix:9 [ prepare_matrix::$19 ] ) -- vbsaa=vbsz1_plus__deref_pbsc1 - lda SINQ+t5 + lda COSH,x + adc COSH,y + //SEG99 [68] (signed byte~) prepare_matrix::$19 ← (signed byte~) prepare_matrix::$18 + *((const signed byte*) SINQ#0 + (signed byte) prepare_matrix::t5#0) [ prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$19 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$19 ] ) -- vbsaa=vbsaa_plus_pbsc1_derefidx_vbsz1 + ldy t5 clc - adc _18 - //SEG74 [47] (signed byte~) prepare_matrix::$20 ← (signed byte~) prepare_matrix::$19 - *((const signed byte*) SINQ#0+(const signed byte) prepare_matrix::t6#0) [ prepare_matrix::$20 ] ( main:4::prepare_matrix:9 [ prepare_matrix::$20 ] ) -- vbsaa=vbsaa_minus__deref_pbsc1 - ldy SINQ+t6 - sty $ff + adc SINQ,y + //SEG100 [69] (signed byte~) prepare_matrix::$20 ← (signed byte~) prepare_matrix::$19 - *((const signed byte*) SINQ#0 + (signed byte) prepare_matrix::t6#0) [ prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$20 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$20 ] ) -- vbsaa=vbsaa_minus_pbsc1_derefidx_vbsz1 + ldy t6 sec - sbc $ff - //SEG75 [48] (signed byte~) prepare_matrix::$21 ← (signed byte~) prepare_matrix::$20 - *((const signed byte*) SINQ#0+(const signed byte) prepare_matrix::t7#0) [ prepare_matrix::$21 ] ( main:4::prepare_matrix:9 [ prepare_matrix::$21 ] ) -- vbsaa=vbsaa_minus__deref_pbsc1 - ldy SINQ+t7 - sty $ff + sbc SINQ,y + //SEG101 [70] (signed byte~) prepare_matrix::$21 ← (signed byte~) prepare_matrix::$20 - *((const signed byte*) SINQ#0 + (signed byte) prepare_matrix::t7#0) [ prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$21 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$21 ] ) -- vbsaa=vbsaa_minus_pbsc1_derefidx_vbsz1 + ldy t7 sec - sbc $ff - //SEG76 [49] (signed byte~) prepare_matrix::$22 ← (signed byte~) prepare_matrix::$21 - *((const signed byte*) SINQ#0+(const signed byte) prepare_matrix::t8#0) [ prepare_matrix::$22 ] ( main:4::prepare_matrix:9 [ prepare_matrix::$22 ] ) -- vbsaa=vbsaa_minus__deref_pbsc1 - ldy SINQ+t8 - sty $ff + sbc SINQ,y + //SEG102 [71] (signed byte~) prepare_matrix::$22 ← (signed byte~) prepare_matrix::$21 - *((const signed byte*) SINQ#0 + (signed byte) prepare_matrix::t8#0) [ prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$22 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$22 ] ) -- vbsaa=vbsaa_minus_pbsc1_derefidx_vbsz1 + ldy t8 sec - sbc $ff - //SEG77 [50] *((const signed byte[9]) rotation_matrix#0+(byte/signed byte/word/signed word/dword/signed dword) 4) ← (signed byte~) prepare_matrix::$22 [ ] ( main:4::prepare_matrix:9 [ ] ) -- _deref_pbsc1=vbsaa + sbc SINQ,y + //SEG103 [72] *((const signed byte[9]) rotation_matrix#0+(byte/signed byte/word/signed word/dword/signed dword) 4) ← (signed byte~) prepare_matrix::$22 [ prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 ] ) -- _deref_pbsc1=vbsaa sta rotation_matrix+4 - //SEG78 [51] (signed byte~) prepare_matrix::$23 ← *((const signed byte*) SINH#0+(const signed byte) prepare_matrix::t9#0) - *((const signed byte*) SINH#0+(const signed byte) prepare_matrix::t10#0) [ prepare_matrix::$23 ] ( main:4::prepare_matrix:9 [ prepare_matrix::$23 ] ) -- vbsaa=_deref_pbsc1_minus__deref_pbsc2 - lda SINH+t9 - ldy SINH+t10 - sty $ff + //SEG104 [73] (signed byte~) prepare_matrix::$23 ← *((const signed byte*) SINH#0 + (signed byte) prepare_matrix::t9#0) - *((const signed byte*) SINH#0 + (signed byte) prepare_matrix::t10#0) [ prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$23 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$23 ] ) -- vbsaa=pbsc1_derefidx_vbsz1_minus_pbsc1_derefidx_vbsz2 + ldx t9 + ldy t10 sec - sbc $ff - //SEG79 [52] *((const signed byte[9]) rotation_matrix#0+(byte/signed byte/word/signed word/dword/signed dword) 5) ← (signed byte~) prepare_matrix::$23 [ ] ( main:4::prepare_matrix:9 [ ] ) -- _deref_pbsc1=vbsaa + lda SINH,x + sbc SINH,y + //SEG105 [74] *((const signed byte[9]) rotation_matrix#0+(byte/signed byte/word/signed word/dword/signed dword) 5) ← (signed byte~) prepare_matrix::$23 [ prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 ] ) -- _deref_pbsc1=vbsaa sta rotation_matrix+5 - //SEG80 [53] (signed byte~) prepare_matrix::$24 ← *((const signed byte*) COSH#0+(const signed byte) prepare_matrix::t4#0) - *((const signed byte*) COSH#0+(const signed byte) prepare_matrix::t3#0) [ prepare_matrix::$24 ] ( main:4::prepare_matrix:9 [ prepare_matrix::$24 ] ) -- vbsz1=_deref_pbsc1_minus__deref_pbsc2 - lda COSH+t4 - ldy COSH+t3 - sty $ff + //SEG106 [75] (signed byte~) prepare_matrix::$24 ← *((const signed byte*) COSH#0 + (signed byte) prepare_matrix::t4#0) - *((const signed byte*) COSH#0 + (signed byte) prepare_matrix::t3#0) [ prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$24 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$24 ] ) -- vbsaa=pbsc1_derefidx_vbsz1_minus_pbsc1_derefidx_vbsz2 + ldx t4 + ldy t3 sec - sbc $ff - sta _24 - //SEG81 [54] (signed byte~) prepare_matrix::$25 ← (signed byte~) prepare_matrix::$24 + *((const signed byte*) SINQ#0+(const signed byte) prepare_matrix::t6#0) [ prepare_matrix::$25 ] ( main:4::prepare_matrix:9 [ prepare_matrix::$25 ] ) -- vbsaa=vbsz1_plus__deref_pbsc1 - lda SINQ+t6 + lda COSH,x + sbc COSH,y + //SEG107 [76] (signed byte~) prepare_matrix::$25 ← (signed byte~) prepare_matrix::$24 + *((const signed byte*) SINQ#0 + (signed byte) prepare_matrix::t6#0) [ prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$25 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$25 ] ) -- vbsaa=vbsaa_plus_pbsc1_derefidx_vbsz1 + ldy t6 clc - adc _24 - //SEG82 [55] (signed byte~) prepare_matrix::$26 ← (signed byte~) prepare_matrix::$25 - *((const signed byte*) SINQ#0+(const signed byte) prepare_matrix::t5#0) [ prepare_matrix::$26 ] ( main:4::prepare_matrix:9 [ prepare_matrix::$26 ] ) -- vbsaa=vbsaa_minus__deref_pbsc1 - ldy SINQ+t5 - sty $ff + adc SINQ,y + //SEG108 [77] (signed byte~) prepare_matrix::$26 ← (signed byte~) prepare_matrix::$25 - *((const signed byte*) SINQ#0 + (signed byte) prepare_matrix::t5#0) [ prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$26 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$26 ] ) -- vbsaa=vbsaa_minus_pbsc1_derefidx_vbsz1 + ldy t5 sec - sbc $ff - //SEG83 [56] (signed byte~) prepare_matrix::$27 ← (signed byte~) prepare_matrix::$26 - *((const signed byte*) SINQ#0+(const signed byte) prepare_matrix::t8#0) [ prepare_matrix::$27 ] ( main:4::prepare_matrix:9 [ prepare_matrix::$27 ] ) -- vbsaa=vbsaa_minus__deref_pbsc1 - ldy SINQ+t8 - sty $ff + sbc SINQ,y + //SEG109 [78] (signed byte~) prepare_matrix::$27 ← (signed byte~) prepare_matrix::$26 - *((const signed byte*) SINQ#0 + (signed byte) prepare_matrix::t8#0) [ prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$27 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$27 ] ) -- vbsaa=vbsaa_minus_pbsc1_derefidx_vbsz1 + ldy t8 sec - sbc $ff - //SEG84 [57] (signed byte~) prepare_matrix::$28 ← (signed byte~) prepare_matrix::$27 - *((const signed byte*) SINQ#0+(const signed byte) prepare_matrix::t7#0) [ prepare_matrix::$28 ] ( main:4::prepare_matrix:9 [ prepare_matrix::$28 ] ) -- vbsaa=vbsaa_minus__deref_pbsc1 - ldy SINQ+t7 - sty $ff + sbc SINQ,y + //SEG110 [79] (signed byte~) prepare_matrix::$28 ← (signed byte~) prepare_matrix::$27 - *((const signed byte*) SINQ#0 + (signed byte) prepare_matrix::t7#0) [ prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$28 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$28 ] ) -- vbsaa=vbsaa_minus_pbsc1_derefidx_vbsz1 + ldy t7 sec - sbc $ff - //SEG85 [58] *((const signed byte[9]) rotation_matrix#0+(byte/signed byte/word/signed word/dword/signed dword) 6) ← (signed byte~) prepare_matrix::$28 [ ] ( main:4::prepare_matrix:9 [ ] ) -- _deref_pbsc1=vbsaa + sbc SINQ,y + //SEG111 [80] *((const signed byte[9]) rotation_matrix#0+(byte/signed byte/word/signed word/dword/signed dword) 6) ← (signed byte~) prepare_matrix::$28 [ prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 ] ) -- _deref_pbsc1=vbsaa sta rotation_matrix+6 - //SEG86 [59] (signed byte~) prepare_matrix::$29 ← *((const signed byte*) SINH#0+(const signed byte) prepare_matrix::t3#0) + *((const signed byte*) SINH#0+(const signed byte) prepare_matrix::t4#0) [ prepare_matrix::$29 ] ( main:4::prepare_matrix:9 [ prepare_matrix::$29 ] ) -- vbsz1=_deref_pbsc1_plus__deref_pbsc2 - lda SINH+t3 - ldy SINH+t4 - sty $ff + //SEG112 [81] (signed byte~) prepare_matrix::$29 ← *((const signed byte*) SINH#0 + (signed byte) prepare_matrix::t3#0) + *((const signed byte*) SINH#0 + (signed byte) prepare_matrix::t4#0) [ prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$29 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$29 ] ) -- vbsaa=pbsc1_derefidx_vbsz1_plus_pbsc1_derefidx_vbsz2 + ldx t3 + ldy t4 clc - adc $ff - sta _29 - //SEG87 [60] (signed byte~) prepare_matrix::$30 ← (signed byte~) prepare_matrix::$29 + *((const signed byte*) COSQ#0+(const signed byte) prepare_matrix::t6#0) [ prepare_matrix::$30 ] ( main:4::prepare_matrix:9 [ prepare_matrix::$30 ] ) -- vbsaa=vbsz1_plus__deref_pbsc1 - lda COSQ+t6 + lda SINH,x + adc SINH,y + //SEG113 [82] (signed byte~) prepare_matrix::$30 ← (signed byte~) prepare_matrix::$29 + *((const signed byte*) COSQ#0 + (signed byte) prepare_matrix::t6#0) [ prepare_matrix::t5#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$30 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::t5#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$30 ] ) -- vbsaa=vbsaa_plus_pbsc1_derefidx_vbsz1 + ldy t6 clc - adc _29 - //SEG88 [61] (signed byte~) prepare_matrix::$31 ← (signed byte~) prepare_matrix::$30 - *((const signed byte*) COSQ#0+(const signed byte) prepare_matrix::t5#0) [ prepare_matrix::$31 ] ( main:4::prepare_matrix:9 [ prepare_matrix::$31 ] ) -- vbsz1=vbsaa_minus__deref_pbsc1 - ldy COSQ+t5 - sty $ff + adc COSQ,y + //SEG114 [83] (signed byte~) prepare_matrix::$31 ← (signed byte~) prepare_matrix::$30 - *((const signed byte*) COSQ#0 + (signed byte) prepare_matrix::t5#0) [ prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$31 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$31 ] ) -- vbsaa=vbsaa_minus_pbsc1_derefidx_vbsz1 + ldy t5 sec - sbc $ff - sta _31 - //SEG89 [62] (signed byte~) prepare_matrix::$32 ← (signed byte~) prepare_matrix::$31 + *((const signed byte*) COSQ#0+(const signed byte) prepare_matrix::t7#0) [ prepare_matrix::$32 ] ( main:4::prepare_matrix:9 [ prepare_matrix::$32 ] ) -- vbsaa=vbsz1_plus__deref_pbsc1 - lda COSQ+t7 + sbc COSQ,y + //SEG115 [84] (signed byte~) prepare_matrix::$32 ← (signed byte~) prepare_matrix::$31 + *((const signed byte*) COSQ#0 + (signed byte) prepare_matrix::t7#0) [ prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$32 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$32 ] ) -- vbsaa=vbsaa_plus_pbsc1_derefidx_vbsz1 + ldy t7 clc - adc _31 - //SEG90 [63] (signed byte~) prepare_matrix::$33 ← (signed byte~) prepare_matrix::$32 - *((const signed byte*) COSQ#0+(const signed byte) prepare_matrix::t8#0) [ prepare_matrix::$33 ] ( main:4::prepare_matrix:9 [ prepare_matrix::$33 ] ) -- vbsaa=vbsaa_minus__deref_pbsc1 - ldy COSQ+t8 - sty $ff + adc COSQ,y + //SEG116 [85] (signed byte~) prepare_matrix::$33 ← (signed byte~) prepare_matrix::$32 - *((const signed byte*) COSQ#0 + (signed byte) prepare_matrix::t8#0) [ prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$33 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$33 ] ) -- vbsaa=vbsaa_minus_pbsc1_derefidx_vbsz1 + ldy t8 sec - sbc $ff - //SEG91 [64] *((const signed byte[9]) rotation_matrix#0+(byte/signed byte/word/signed word/dword/signed dword) 7) ← (signed byte~) prepare_matrix::$33 [ ] ( main:4::prepare_matrix:9 [ ] ) -- _deref_pbsc1=vbsaa + sbc COSQ,y + //SEG117 [86] *((const signed byte[9]) rotation_matrix#0+(byte/signed byte/word/signed word/dword/signed dword) 7) ← (signed byte~) prepare_matrix::$33 [ prepare_matrix::t9#0 prepare_matrix::t10#0 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::t9#0 prepare_matrix::t10#0 ] ) -- _deref_pbsc1=vbsaa sta rotation_matrix+7 - //SEG92 [65] (signed byte~) prepare_matrix::$34 ← *((const signed byte*) COSH#0+(const signed byte) prepare_matrix::t9#0) + *((const signed byte*) COSH#0+(const signed byte) prepare_matrix::t10#0) [ prepare_matrix::$34 ] ( main:4::prepare_matrix:9 [ prepare_matrix::$34 ] ) -- vbsaa=_deref_pbsc1_plus__deref_pbsc2 - lda COSH+t9 - ldy COSH+t10 - sty $ff + //SEG118 [87] (signed byte~) prepare_matrix::$34 ← *((const signed byte*) COSH#0 + (signed byte) prepare_matrix::t9#0) + *((const signed byte*) COSH#0 + (signed byte) prepare_matrix::t10#0) [ prepare_matrix::$34 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::$34 ] ) -- vbsaa=pbsc1_derefidx_vbsz1_plus_pbsc1_derefidx_vbsz2 + ldx t9 + ldy t10 clc - adc $ff - //SEG93 [66] *((const signed byte[9]) rotation_matrix#0+(byte/signed byte/word/signed word/dword/signed dword) 8) ← (signed byte~) prepare_matrix::$34 [ ] ( main:4::prepare_matrix:9 [ ] ) -- _deref_pbsc1=vbsaa + lda COSH,x + adc COSH,y + //SEG119 [88] *((const signed byte[9]) rotation_matrix#0+(byte/signed byte/word/signed word/dword/signed dword) 8) ← (signed byte~) prepare_matrix::$34 [ ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 ] ) -- _deref_pbsc1=vbsaa sta rotation_matrix+8 - //SEG94 asm { ldarotation_matrix+0 starotate.A1+1 eor#$ff starotate.A2+1 ldarotation_matrix+1 starotate.B1+1 eor#$ff starotate.B2+1 ldarotation_matrix+2 starotate.C1+1 eor#$ff starotate.C2+1 ldarotation_matrix+3 starotate.D1+1 eor#$ff starotate.D2+1 ldarotation_matrix+4 starotate.E1+1 eor#$ff starotate.E2+1 ldarotation_matrix+5 starotate.F1+1 eor#$ff starotate.F2+1 ldarotation_matrix+6 starotate.G1+1 eor#$ff starotate.G2+1 ldarotation_matrix+7 starotate.H1+1 eor#$ff starotate.H2+1 ldarotation_matrix+8 starotate.I1+1 eor#$ff starotate.I2+1 } + //SEG120 asm { ldarotation_matrix+0 starotate.A1+1 eor#$ff starotate.A2+1 ldarotation_matrix+1 starotate.B1+1 eor#$ff starotate.B2+1 ldarotation_matrix+2 starotate.C1+1 eor#$ff starotate.C2+1 ldarotation_matrix+3 starotate.D1+1 eor#$ff starotate.D2+1 ldarotation_matrix+4 starotate.E1+1 eor#$ff starotate.E2+1 ldarotation_matrix+5 starotate.F1+1 eor#$ff starotate.F2+1 ldarotation_matrix+6 starotate.G1+1 eor#$ff starotate.G2+1 ldarotation_matrix+7 starotate.H1+1 eor#$ff starotate.H2+1 ldarotation_matrix+8 starotate.I1+1 eor#$ff starotate.I2+1 } lda rotation_matrix+0 sta rotate.A1+1 eor #$ff @@ -2393,67 +3528,95 @@ prepare_matrix: { eor #$ff sta rotate.I2+1 jmp breturn - //SEG95 prepare_matrix::@return + //SEG121 prepare_matrix::@return breturn: - //SEG96 [68] return [ ] ( main:4::prepare_matrix:9 [ ] ) + //SEG122 [90] return [ ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 ] ) rts } -//SEG97 mulf_init +//SEG123 mulf_init mulf_init: { - .label sqr1 = 3 - .label add = 5 - //SEG98 [70] phi from mulf_init to mulf_init::@1 [phi:mulf_init->mulf_init::@1] + .label sqr1 = 6 + .label add = 8 + //SEG124 [92] phi from mulf_init to mulf_init::@1 [phi:mulf_init->mulf_init::@1] b1_from_mulf_init: - //SEG99 [70] phi (signed word) mulf_init::add#2 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:mulf_init->mulf_init::@1#0] -- vwsz1=vbuc1 + //SEG125 [92] phi (signed word) mulf_init::add#2 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:mulf_init->mulf_init::@1#0] -- vwsz1=vbuc1 lda #<1 sta add lda #>1 sta add+1 - //SEG100 [70] phi (byte) mulf_init::i#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:mulf_init->mulf_init::@1#1] -- vbuxx=vbuc1 + //SEG126 [92] phi (byte) mulf_init::i#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:mulf_init->mulf_init::@1#1] -- vbuxx=vbuc1 ldx #0 - //SEG101 [70] phi (signed word) mulf_init::sqr1#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:mulf_init->mulf_init::@1#2] -- vwsz1=vbuc1 + //SEG127 [92] phi (signed word) mulf_init::sqr1#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:mulf_init->mulf_init::@1#2] -- vwsz1=vbuc1 lda #<0 sta sqr1 lda #>0 sta sqr1+1 jmp b1 - //SEG102 [70] phi from mulf_init::@1 to mulf_init::@1 [phi:mulf_init::@1->mulf_init::@1] + //SEG128 [92] phi from mulf_init::@1 to mulf_init::@1 [phi:mulf_init::@1->mulf_init::@1] b1_from_b1: - //SEG103 [70] phi (signed word) mulf_init::add#2 = (signed word) mulf_init::add#1 [phi:mulf_init::@1->mulf_init::@1#0] -- register_copy - //SEG104 [70] phi (byte) mulf_init::i#2 = (byte) mulf_init::i#1 [phi:mulf_init::@1->mulf_init::@1#1] -- register_copy - //SEG105 [70] phi (signed word) mulf_init::sqr1#2 = (signed word) mulf_init::sqr1#1 [phi:mulf_init::@1->mulf_init::@1#2] -- register_copy + //SEG129 [92] phi (signed word) mulf_init::add#2 = (signed word) mulf_init::add#1 [phi:mulf_init::@1->mulf_init::@1#0] -- register_copy + //SEG130 [92] phi (byte) mulf_init::i#2 = (byte) mulf_init::i#1 [phi:mulf_init::@1->mulf_init::@1#1] -- register_copy + //SEG131 [92] phi (signed word) mulf_init::sqr1#2 = (signed word) mulf_init::sqr1#1 [phi:mulf_init::@1->mulf_init::@1#2] -- register_copy jmp b1 - //SEG106 mulf_init::@1 + //SEG132 mulf_init::@1 b1: - //SEG107 [71] (byte~) mulf_init::$0 ← > (signed word) mulf_init::sqr1#2 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 mulf_init::$0 ] ( main:4::mulf_init:7 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 mulf_init::$0 ] ) -- vbuaa=_hi_vwsz1 + //SEG133 [93] (byte~) mulf_init::$0 ← > (signed word) mulf_init::sqr1#2 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 mulf_init::$0 ] ( main:5::mulf_init:10 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 mulf_init::$0 ] ) -- vbuaa=_hi_vwsz1 lda sqr1+1 - //SEG108 [72] *((const byte[512]) mulf_sqr1#0 + (byte) mulf_init::i#2) ← (byte~) mulf_init::$0 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 ] ( main:4::mulf_init:7 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 ] ) -- pbuc1_derefidx_vbuxx=vbuaa + //SEG134 [94] *((const byte[512]) mulf_sqr1#0 + (byte) mulf_init::i#2) ← (byte~) mulf_init::$0 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 ] ( main:5::mulf_init:10 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 ] ) -- pbuc1_derefidx_vbuxx=vbuaa sta mulf_sqr1,x - //SEG109 [73] (byte~) mulf_init::$1 ← - (byte) mulf_init::i#2 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 mulf_init::$1 ] ( main:4::mulf_init:7 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 mulf_init::$1 ] ) -- vbuyy=_neg_vbuxx + //SEG135 [95] (byte~) mulf_init::$2 ← > (signed word) mulf_init::sqr1#2 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 mulf_init::$2 ] ( main:5::mulf_init:10 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 mulf_init::$2 ] ) -- vbuaa=_hi_vwsz1 + lda sqr1+1 + //SEG136 [96] *((const byte[512]) mulf_sqr1#0+(word/signed word/dword/signed dword) 256 + (byte) mulf_init::i#2) ← (byte~) mulf_init::$2 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 ] ( main:5::mulf_init:10 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 ] ) -- pbuc1_derefidx_vbuxx=vbuaa + sta mulf_sqr1+$100,x + //SEG137 [97] (byte~) mulf_init::$3 ← - (byte) mulf_init::i#2 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 mulf_init::$3 ] ( main:5::mulf_init:10 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 mulf_init::$3 ] ) -- vbuyy=_neg_vbuxx txa eor #$ff clc adc #1 tay - //SEG110 [74] (byte~) mulf_init::$2 ← > (signed word) mulf_init::sqr1#2 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 mulf_init::$1 mulf_init::$2 ] ( main:4::mulf_init:7 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 mulf_init::$1 mulf_init::$2 ] ) -- vbuaa=_hi_vwsz1 + //SEG138 [98] (byte~) mulf_init::$4 ← > (signed word) mulf_init::sqr1#2 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 mulf_init::$3 mulf_init::$4 ] ( main:5::mulf_init:10 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 mulf_init::$3 mulf_init::$4 ] ) -- vbuaa=_hi_vwsz1 lda sqr1+1 - //SEG111 [75] *((const byte[512]) mulf_sqr1#0 + (byte~) mulf_init::$1) ← (byte~) mulf_init::$2 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 ] ( main:4::mulf_init:7 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 ] ) -- pbuc1_derefidx_vbuyy=vbuaa + //SEG139 [99] *((const byte[512]) mulf_sqr1#0 + (byte~) mulf_init::$3) ← (byte~) mulf_init::$4 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 ] ( main:5::mulf_init:10 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 ] ) -- pbuc1_derefidx_vbuyy=vbuaa sta mulf_sqr1,y - //SEG112 [76] (byte~) mulf_init::$4 ← > (signed word) mulf_init::sqr1#2 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 mulf_init::$4 ] ( main:4::mulf_init:7 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 mulf_init::$4 ] ) -- vbuaa=_hi_vwsz1 + //SEG140 [100] (byte~) mulf_init::$6 ← - (byte) mulf_init::i#2 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 mulf_init::$6 ] ( main:5::mulf_init:10 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 mulf_init::$6 ] ) -- vbuyy=_neg_vbuxx + txa + eor #$ff + clc + adc #1 + tay + //SEG141 [101] (byte~) mulf_init::$7 ← > (signed word) mulf_init::sqr1#2 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 mulf_init::$6 mulf_init::$7 ] ( main:5::mulf_init:10 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 mulf_init::$6 mulf_init::$7 ] ) -- vbuaa=_hi_vwsz1 lda sqr1+1 - //SEG113 [77] *((const byte[512]) mulf_sqr2#0+(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) mulf_init::i#2) ← (byte~) mulf_init::$4 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 ] ( main:4::mulf_init:7 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 ] ) -- pbuc1_derefidx_vbuxx=vbuaa + //SEG142 [102] *((const byte[512]) mulf_sqr1#0+(word/signed word/dword/signed dword) 256 + (byte~) mulf_init::$6) ← (byte~) mulf_init::$7 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 ] ( main:5::mulf_init:10 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 ] ) -- pbuc1_derefidx_vbuyy=vbuaa + sta mulf_sqr1+$100,y + //SEG143 [103] (byte~) mulf_init::$9 ← > (signed word) mulf_init::sqr1#2 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 mulf_init::$9 ] ( main:5::mulf_init:10 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 mulf_init::$9 ] ) -- vbuaa=_hi_vwsz1 + lda sqr1+1 + //SEG144 [104] *((const byte[512]) mulf_sqr2#0+(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) mulf_init::i#2) ← (byte~) mulf_init::$9 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 ] ( main:5::mulf_init:10 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 ] ) -- pbuc1_derefidx_vbuxx=vbuaa sta mulf_sqr2+1,x - //SEG114 [78] (byte/signed word/word/dword/signed dword~) mulf_init::$5 ← (byte/signed byte/word/signed word/dword/signed dword) 1 - (byte) mulf_init::i#2 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 mulf_init::$5 ] ( main:4::mulf_init:7 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 mulf_init::$5 ] ) -- vbuyy=vbuc1_minus_vbuxx + //SEG145 [105] (byte~) mulf_init::$12 ← > (signed word) mulf_init::sqr1#2 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 mulf_init::$12 ] ( main:5::mulf_init:10 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 mulf_init::$12 ] ) -- vbuaa=_hi_vwsz1 + lda sqr1+1 + //SEG146 [106] *((const byte[512]) mulf_sqr2#0+(word/signed word/dword/signed dword) 256+(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) mulf_init::i#2) ← (byte~) mulf_init::$12 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 ] ( main:5::mulf_init:10 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 ] ) -- pbuc1_derefidx_vbuxx=vbuaa + sta mulf_sqr2+$100+1,x + //SEG147 [107] (byte/signed word/word/dword/signed dword~) mulf_init::$13 ← (byte/signed byte/word/signed word/dword/signed dword) 1 - (byte) mulf_init::i#2 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 mulf_init::$13 ] ( main:5::mulf_init:10 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 mulf_init::$13 ] ) -- vbuyy=vbuc1_minus_vbuxx txa eor #$ff clc adc #1+1 tay - //SEG115 [79] (byte~) mulf_init::$6 ← > (signed word) mulf_init::sqr1#2 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 mulf_init::$5 mulf_init::$6 ] ( main:4::mulf_init:7 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 mulf_init::$5 mulf_init::$6 ] ) -- vbuaa=_hi_vwsz1 + //SEG148 [108] (byte~) mulf_init::$14 ← > (signed word) mulf_init::sqr1#2 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 mulf_init::$13 mulf_init::$14 ] ( main:5::mulf_init:10 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 mulf_init::$13 mulf_init::$14 ] ) -- vbuaa=_hi_vwsz1 lda sqr1+1 - //SEG116 [80] *((const byte[512]) mulf_sqr2#0 + (byte/signed word/word/dword/signed dword~) mulf_init::$5) ← (byte~) mulf_init::$6 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 ] ( main:4::mulf_init:7 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 ] ) -- pbuc1_derefidx_vbuyy=vbuaa + //SEG149 [109] *((const byte[512]) mulf_sqr2#0 + (byte/signed word/word/dword/signed dword~) mulf_init::$13) ← (byte~) mulf_init::$14 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 ] ( main:5::mulf_init:10 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 ] ) -- pbuc1_derefidx_vbuyy=vbuaa sta mulf_sqr2,y - //SEG117 [81] (signed word) mulf_init::sqr1#1 ← (signed word) mulf_init::sqr1#2 + (signed word) mulf_init::add#2 [ mulf_init::i#2 mulf_init::add#2 mulf_init::sqr1#1 ] ( main:4::mulf_init:7 [ mulf_init::i#2 mulf_init::add#2 mulf_init::sqr1#1 ] ) -- vwsz1=vwsz1_plus_vwsz2 + //SEG150 [110] (byte/signed word/word/dword/signed dword~) mulf_init::$16 ← (byte/signed byte/word/signed word/dword/signed dword) 1 - (byte) mulf_init::i#2 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 mulf_init::$16 ] ( main:5::mulf_init:10 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 mulf_init::$16 ] ) -- vbuyy=vbuc1_minus_vbuxx + txa + eor #$ff + clc + adc #1+1 + tay + //SEG151 [111] (byte~) mulf_init::$17 ← > (signed word) mulf_init::sqr1#2 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 mulf_init::$16 mulf_init::$17 ] ( main:5::mulf_init:10 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 mulf_init::$16 mulf_init::$17 ] ) -- vbuaa=_hi_vwsz1 + lda sqr1+1 + //SEG152 [112] *((const byte[512]) mulf_sqr2#0+(word/signed word/dword/signed dword) 256 + (byte/signed word/word/dword/signed dword~) mulf_init::$16) ← (byte~) mulf_init::$17 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 ] ( main:5::mulf_init:10 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 ] ) -- pbuc1_derefidx_vbuyy=vbuaa + sta mulf_sqr2+$100,y + //SEG153 [113] (signed word) mulf_init::sqr1#1 ← (signed word) mulf_init::sqr1#2 + (signed word) mulf_init::add#2 [ mulf_init::i#2 mulf_init::add#2 mulf_init::sqr1#1 ] ( main:5::mulf_init:10 [ mulf_init::i#2 mulf_init::add#2 mulf_init::sqr1#1 ] ) -- vwsz1=vwsz1_plus_vwsz2 lda sqr1 clc adc add @@ -2461,7 +3624,7 @@ mulf_init: { lda sqr1+1 adc add+1 sta sqr1+1 - //SEG118 [82] (signed word) mulf_init::add#1 ← (signed word) mulf_init::add#2 + (byte/signed byte/word/signed word/dword/signed dword) 2 [ mulf_init::i#2 mulf_init::sqr1#1 mulf_init::add#1 ] ( main:4::mulf_init:7 [ mulf_init::i#2 mulf_init::sqr1#1 mulf_init::add#1 ] ) -- vwsz1=vwsz1_plus_2 + //SEG154 [114] (signed word) mulf_init::add#1 ← (signed word) mulf_init::add#2 + (byte/signed byte/word/signed word/dword/signed dword) 2 [ mulf_init::i#2 mulf_init::sqr1#1 mulf_init::add#1 ] ( main:5::mulf_init:10 [ mulf_init::i#2 mulf_init::sqr1#1 mulf_init::add#1 ] ) -- vwsz1=vwsz1_plus_2 lda add clc adc #2 @@ -2469,15 +3632,49 @@ mulf_init: { bcc !+ inc add+1 !: - //SEG119 [83] (byte) mulf_init::i#1 ← ++ (byte) mulf_init::i#2 [ mulf_init::sqr1#1 mulf_init::i#1 mulf_init::add#1 ] ( main:4::mulf_init:7 [ mulf_init::sqr1#1 mulf_init::i#1 mulf_init::add#1 ] ) -- vbuxx=_inc_vbuxx + //SEG155 [115] (byte) mulf_init::i#1 ← ++ (byte) mulf_init::i#2 [ mulf_init::sqr1#1 mulf_init::i#1 mulf_init::add#1 ] ( main:5::mulf_init:10 [ mulf_init::sqr1#1 mulf_init::i#1 mulf_init::add#1 ] ) -- vbuxx=_inc_vbuxx inx - //SEG120 [84] if((byte) mulf_init::i#1!=(byte/word/signed word/dword/signed dword) 129) goto mulf_init::@1 [ mulf_init::sqr1#1 mulf_init::i#1 mulf_init::add#1 ] ( main:4::mulf_init:7 [ mulf_init::sqr1#1 mulf_init::i#1 mulf_init::add#1 ] ) -- vbuxx_neq_vbuc1_then_la1 + //SEG156 [116] if((byte) mulf_init::i#1!=(byte/word/signed word/dword/signed dword) 129) goto mulf_init::@1 [ mulf_init::sqr1#1 mulf_init::i#1 mulf_init::add#1 ] ( main:5::mulf_init:10 [ mulf_init::sqr1#1 mulf_init::i#1 mulf_init::add#1 ] ) -- vbuxx_neq_vbuc1_then_la1 cpx #$81 bne b1_from_b1 jmp breturn - //SEG121 mulf_init::@return + //SEG157 mulf_init::@return breturn: - //SEG122 [85] return [ ] ( main:4::mulf_init:7 [ ] ) + //SEG158 [117] return [ ] ( main:5::mulf_init:10 [ ] ) + rts +} +//SEG159 sprites_init +sprites_init: { + .label sprites_ptr = SCREEN+$3f8 + //SEG160 [118] *((const byte*) SPRITES_ENABLE#0) ← (byte/word/signed word/dword/signed dword) 255 [ ] ( main:5::sprites_init:8 [ ] ) -- _deref_pbuc1=vbuc2 + lda #$ff + sta SPRITES_ENABLE + //SEG161 [119] phi from sprites_init to sprites_init::@1 [phi:sprites_init->sprites_init::@1] + b1_from_sprites_init: + //SEG162 [119] phi (byte) sprites_init::i#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:sprites_init->sprites_init::@1#0] -- vbuxx=vbuc1 + ldx #0 + jmp b1 + //SEG163 [119] phi from sprites_init::@1 to sprites_init::@1 [phi:sprites_init::@1->sprites_init::@1] + b1_from_b1: + //SEG164 [119] phi (byte) sprites_init::i#2 = (byte) sprites_init::i#1 [phi:sprites_init::@1->sprites_init::@1#0] -- register_copy + jmp b1 + //SEG165 sprites_init::@1 + b1: + //SEG166 [120] *((const byte*) sprites_init::sprites_ptr#0 + (byte) sprites_init::i#2) ← ((byte))(const byte*) SPRITE#0/(byte/signed byte/word/signed word/dword/signed dword) 64 [ sprites_init::i#2 ] ( main:5::sprites_init:8 [ sprites_init::i#2 ] ) -- pbuc1_derefidx_vbuxx=vbuc2 + lda #$ff&SPRITE/$40 + sta sprites_ptr,x + //SEG167 [121] *((const byte*) SPRITES_COLS#0 + (byte) sprites_init::i#2) ← (const byte) GREEN#0 [ sprites_init::i#2 ] ( main:5::sprites_init:8 [ sprites_init::i#2 ] ) -- pbuc1_derefidx_vbuxx=vbuc2 + lda #GREEN + sta SPRITES_COLS,x + //SEG168 [122] (byte) sprites_init::i#1 ← ++ (byte) sprites_init::i#2 [ sprites_init::i#1 ] ( main:5::sprites_init:8 [ sprites_init::i#1 ] ) -- vbuxx=_inc_vbuxx + inx + //SEG169 [123] if((byte) sprites_init::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 8) goto sprites_init::@1 [ sprites_init::i#1 ] ( main:5::sprites_init:8 [ sprites_init::i#1 ] ) -- vbuxx_neq_vbuc1_then_la1 + cpx #8 + bne b1_from_b1 + jmp breturn + //SEG170 sprites_init::@return + breturn: + //SEG171 [124] return [ ] ( main:5::sprites_init:8 [ ] ) rts } .align $100 @@ -2485,6 +3682,15 @@ mulf_init: { .align $100 mulf_sqr2: .fill $200, 0 rotation_matrix: .fill 9, 0 + xs: .byte -$3f, -$3f, -$3f, -$3f, $3f, $3f, $3f, $3f + ys: .byte -$3f, -$3f, $3f, $3f, -$3f, -$3f, $3f, $3f + zs: .byte -$3f, $3f, -$3f, $3f, -$3f, $3f, -$3f, $3f +.pc = SPRITE "Inline" + .var pic = LoadPicture("balloon.png", List().add($000000, $ffffff)) + .for (var y=0; y<21; y++) + .for (var x=0;x<3; x++) + .byte pic.getSinglecolorByte(x,y) + .pc = COSH "Inline" { .var min = -$1fff @@ -2510,58 +3716,83 @@ mulf_init: { ASSEMBLER OPTIMIZATIONS Removing instruction jmp b3 -Removing instruction jmp b7 +Removing instruction jmp b8 Removing instruction jmp bend -Removing instruction jmp b13 +Removing instruction jmp b17 +Removing instruction jmp b1 Removing instruction jmp b4 Removing instruction jmp b6 +Removing instruction jmp b19 +Removing instruction jmp b14 +Removing instruction jmp b7 +Removing instruction jmp b8 +Removing instruction jmp b20 Removing instruction jmp b15 -Removing instruction jmp b16 -Removing instruction jmp b17 Removing instruction jmp breturn Removing instruction jmp breturn Removing instruction jmp b1 Removing instruction jmp breturn +Removing instruction jmp b1 +Removing instruction jmp breturn Succesful ASM optimization Pass5NextJumpElimination Removing instruction lda #0 Removing instruction lda #0 +Removing instruction ldx i Replacing instruction ldx zr with TAX -Replacing instruction ldy SINH+sy with TAY +Removing instruction ldx t1 +Removing instruction ldy t2 +Removing instruction ldx t3 Replacing instruction ldx #0 with TAX Removing instruction lda #<0 Removing instruction lda #>0 Removing instruction lda sqr1+1 +Removing instruction lda sqr1+1 +Removing instruction lda sqr1+1 Succesful ASM optimization Pass5UnnecesaryLoadElimination +Replacing label b7_from_b19 with b7 +Replacing label b8_from_b20 with b8 +Replacing label b1 with b4 +Replacing label b1_from_b1 with b1 Replacing label b1_from_b1 with b1 Removing instruction bbegin: Removing instruction b3: -Removing instruction b7_from_b3: -Removing instruction bend_from_b7: -Removing instruction b13_from_main: +Removing instruction b8_from_b3: +Removing instruction bend_from_b8: +Removing instruction b17_from_main: +Removing instruction mulf_init_from_b17: +Removing instruction b1: +Removing instruction b7_from_b14: +Removing instruction b7_from_b19: +Removing instruction b8_from_b7: +Removing instruction b8_from_b20: +Removing instruction b1_from_b1: Removing instruction b1_from_b1: Succesful ASM optimization Pass5RedundantLabelElimination -Removing instruction b7: +Removing instruction b8: Removing instruction bend: -Removing instruction mulf_init_from_main: -Removing instruction b13: -Removing instruction b6: -Removing instruction rotate_from_b6: -Removing instruction b15: -Removing instruction rotate_from_b15: -Removing instruction b16: -Removing instruction rotate_from_b16: Removing instruction b17: +Removing instruction b1_from_b17: +Removing instruction b6: +Removing instruction b19: +Removing instruction b14: +Removing instruction b20: +Removing instruction b15: +Removing instruction b1_from_b15: Removing instruction breturn: Removing instruction breturn: Removing instruction b1_from_mulf_init: Removing instruction breturn: +Removing instruction b1_from_sprites_init: +Removing instruction breturn: Succesful ASM optimization Pass5UnusedLabelElimination +Removing instruction jmp b8 +Removing instruction jmp b1 Removing instruction jmp b1 Succesful ASM optimization Pass5NextJumpElimination FINAL SYMBOL TABLE (label) @3 -(label) @7 +(label) @8 (label) @begin (label) @end (byte*) BORDERCOL @@ -2570,41 +3801,83 @@ FINAL SYMBOL TABLE (const signed byte*) COSH#0 COSH = ((signed byte*))(word/signed word/dword/signed dword) 8192 (signed byte*) COSQ (const signed byte*) COSQ#0 COSQ = ((signed byte*))(word/signed word/dword/signed dword) 8704 +(byte) GREEN +(const byte) GREEN#0 GREEN = (byte/signed byte/word/signed word/dword/signed dword) 5 (byte) LIGHT_BLUE (const byte) LIGHT_BLUE#0 LIGHT_BLUE = (byte/signed byte/word/signed word/dword/signed dword) 14 (byte*) RASTER (const byte*) RASTER#0 RASTER = ((byte*))(word/dword/signed dword) 53266 +(byte*) SCREEN +(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) 1024 (signed byte*) SINH (const signed byte*) SINH#0 SINH = (const signed byte*) COSH#0+(byte/signed byte/word/signed word/dword/signed dword) 64 (signed byte*) SINQ (const signed byte*) SINQ#0 SINQ = (const signed byte*) COSQ#0+(byte/signed byte/word/signed word/dword/signed dword) 64 +(byte*) SPRITE +(const byte*) SPRITE#0 SPRITE = ((byte*))(word/signed word/dword/signed dword) 12288 +(byte*) SPRITES_COLS +(const byte*) SPRITES_COLS#0 SPRITES_COLS = ((byte*))(word/dword/signed dword) 53287 +(byte*) SPRITES_ENABLE +(const byte*) SPRITES_ENABLE#0 SPRITES_ENABLE = ((byte*))(word/dword/signed dword) 53269 +(byte*) SPRITES_XPOS +(const byte*) SPRITES_XPOS#0 SPRITES_XPOS = ((byte*))(word/dword/signed dword) 53248 +(byte*) SPRITES_YPOS +(const byte*) SPRITES_YPOS#0 SPRITES_YPOS = ((byte*))(word/dword/signed dword) 53249 (void()) main() -(label) main::@13 +(byte/word/signed word/dword/signed dword~) main::$11 reg byte a 202.0 +(signed byte~) main::$12 reg byte a 101.0 +(byte/word/signed word/dword/signed dword~) main::$14 reg byte a 202.0 +(byte~) main::$4 reg byte a 22.0 +(signed byte~) main::$9 reg byte a 101.0 +(label) main::@1 +(label) main::@14 (label) main::@15 -(label) main::@16 (label) main::@17 +(label) main::@19 +(label) main::@20 (label) main::@4 (label) main::@6 -(byte*) main::SCREEN -(const byte*) main::SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) 1024 +(label) main::@7 +(label) main::@8 +(byte) main::i +(byte) main::i#1 i zp ZP_BYTE:5 151.5 +(byte) main::i#2 i zp ZP_BYTE:5 46.61538461538461 +(byte) main::i2 +(byte) main::i2#0 reg byte x 50.5 +(signed byte) main::sx +(signed byte) main::sx#1 sx zp ZP_BYTE:2 22.0 +(signed byte) main::sx#12 sx zp ZP_BYTE:2 1.9411764705882355 +(signed byte) main::sx#6 sx zp ZP_BYTE:2 4.0 +(signed byte) main::sy +(signed byte) main::sy#1 sy zp ZP_BYTE:3 1.5 +(signed byte) main::sy#5 sy zp ZP_BYTE:3 4.714285714285714 +(signed byte) main::sz +(signed byte) main::sz#1 sz zp ZP_BYTE:4 1.0476190476190477 +(signed byte) main::sz#5 sz zp ZP_BYTE:4 4.125 (void()) mulf_init() (byte~) mulf_init::$0 reg byte a 22.0 -(byte~) mulf_init::$1 reg byte y 11.0 +(byte~) mulf_init::$12 reg byte a 22.0 +(byte/signed word/word/dword/signed dword~) mulf_init::$13 reg byte y 11.0 +(byte~) mulf_init::$14 reg byte a 22.0 +(byte/signed word/word/dword/signed dword~) mulf_init::$16 reg byte y 11.0 +(byte~) mulf_init::$17 reg byte a 22.0 (byte~) mulf_init::$2 reg byte a 22.0 +(byte~) mulf_init::$3 reg byte y 11.0 (byte~) mulf_init::$4 reg byte a 22.0 -(byte/signed word/word/dword/signed dword~) mulf_init::$5 reg byte y 11.0 -(byte~) mulf_init::$6 reg byte a 22.0 +(byte~) mulf_init::$6 reg byte y 11.0 +(byte~) mulf_init::$7 reg byte a 22.0 +(byte~) mulf_init::$9 reg byte a 22.0 (label) mulf_init::@1 (label) mulf_init::@return (signed word) mulf_init::add -(signed word) mulf_init::add#1 add zp ZP_WORD:5 7.333333333333333 -(signed word) mulf_init::add#2 add zp ZP_WORD:5 2.75 +(signed word) mulf_init::add#1 add zp ZP_WORD:8 7.333333333333333 +(signed word) mulf_init::add#2 add zp ZP_WORD:8 1.5 (byte) mulf_init::i (byte) mulf_init::i#1 reg byte x 16.5 -(byte) mulf_init::i#2 reg byte x 5.076923076923077 +(byte) mulf_init::i#2 reg byte x 4.782608695652174 (signed word) mulf_init::sqr1 -(signed word) mulf_init::sqr1#1 sqr1 zp ZP_WORD:3 5.5 -(signed word) mulf_init::sqr1#2 sqr1 zp ZP_WORD:3 6.0 +(signed word) mulf_init::sqr1#1 sqr1 zp ZP_WORD:6 5.5 +(signed word) mulf_init::sqr1#2 sqr1 zp ZP_WORD:6 5.238095238095238 (byte[512]) mulf_sqr1 (const byte[512]) mulf_sqr1#0 mulf_sqr1 = { fill( 512, 0) } (byte[512]) mulf_sqr2 @@ -2613,116 +3886,170 @@ FINAL SYMBOL TABLE (signed byte~) prepare_matrix::$10 reg byte a 4.0 (signed byte~) prepare_matrix::$11 reg byte a 4.0 (signed byte~) prepare_matrix::$12 reg byte a 4.0 -(signed byte~) prepare_matrix::$13 $13 zp ZP_BYTE:2 4.0 +(signed byte~) prepare_matrix::$13 reg byte a 4.0 (signed byte~) prepare_matrix::$14 reg byte a 4.0 -(signed byte~) prepare_matrix::$15 $15 zp ZP_BYTE:2 4.0 +(signed byte~) prepare_matrix::$15 reg byte a 4.0 (signed byte~) prepare_matrix::$16 reg byte a 4.0 (signed byte~) prepare_matrix::$17 reg byte a 4.0 -(signed byte~) prepare_matrix::$18 $18 zp ZP_BYTE:2 4.0 +(signed byte~) prepare_matrix::$18 reg byte a 4.0 (signed byte~) prepare_matrix::$19 reg byte a 4.0 (signed byte~) prepare_matrix::$20 reg byte a 4.0 (signed byte~) prepare_matrix::$21 reg byte a 4.0 (signed byte~) prepare_matrix::$22 reg byte a 4.0 (signed byte~) prepare_matrix::$23 reg byte a 4.0 -(signed byte~) prepare_matrix::$24 $24 zp ZP_BYTE:2 4.0 +(signed byte~) prepare_matrix::$24 reg byte a 4.0 (signed byte~) prepare_matrix::$25 reg byte a 4.0 (signed byte~) prepare_matrix::$26 reg byte a 4.0 (signed byte~) prepare_matrix::$27 reg byte a 4.0 (signed byte~) prepare_matrix::$28 reg byte a 4.0 -(signed byte~) prepare_matrix::$29 $29 zp ZP_BYTE:2 4.0 +(signed byte~) prepare_matrix::$29 reg byte a 4.0 (signed byte~) prepare_matrix::$30 reg byte a 4.0 -(signed byte~) prepare_matrix::$31 $31 zp ZP_BYTE:2 4.0 +(signed byte~) prepare_matrix::$31 reg byte a 4.0 (signed byte~) prepare_matrix::$32 reg byte a 4.0 (signed byte~) prepare_matrix::$33 reg byte a 4.0 (signed byte~) prepare_matrix::$34 reg byte a 4.0 (label) prepare_matrix::@return (signed byte) prepare_matrix::sx -(const signed byte) prepare_matrix::sx#0 sx = (byte/signed byte/word/signed word/dword/signed dword) 0 +(signed byte) prepare_matrix::sx#0 reg byte y 2.25 (signed byte) prepare_matrix::sy -(const signed byte) prepare_matrix::sy#0 sy = (byte/signed byte/word/signed word/dword/signed dword) 0 +(signed byte) prepare_matrix::sy#0 sy zp ZP_BYTE:3 1.4375 (signed byte) prepare_matrix::sz -(const signed byte) prepare_matrix::sz#0 sz = (byte/signed byte/word/signed word/dword/signed dword) 0 +(signed byte) prepare_matrix::sz#0 reg byte x 4.75 (signed byte) prepare_matrix::t1 -(const signed byte) prepare_matrix::t1#0 t1 = (const signed byte) prepare_matrix::sy#0-(const signed byte) prepare_matrix::sz#0 +(signed byte) prepare_matrix::t1#0 t1 zp ZP_BYTE:5 0.8333333333333333 (signed byte) prepare_matrix::t10 -(const signed byte) prepare_matrix::t10#0 t10 = (const signed byte) prepare_matrix::sy#0+(const signed byte) prepare_matrix::sx#0 +(signed byte) prepare_matrix::t10#0 t10 zp ZP_BYTE:18 0.18181818181818182 (signed byte) prepare_matrix::t2 -(const signed byte) prepare_matrix::t2#0 t2 = (const signed byte) prepare_matrix::sy#0+(const signed byte) prepare_matrix::sz#0 +(signed byte) prepare_matrix::t2#0 t2 zp ZP_BYTE:10 0.9090909090909092 (signed byte) prepare_matrix::t3 -(const signed byte) prepare_matrix::t3#0 t3 = (const signed byte) prepare_matrix::sx#0+(const signed byte) prepare_matrix::sz#0 +(signed byte) prepare_matrix::t3#0 t3 zp ZP_BYTE:11 0.29411764705882354 (signed byte) prepare_matrix::t4 -(const signed byte) prepare_matrix::t4#0 t4 = (const signed byte) prepare_matrix::sx#0-(const signed byte) prepare_matrix::sz#0 +(signed byte) prepare_matrix::t4#0 t4 zp ZP_BYTE:12 0.30303030303030304 (signed byte) prepare_matrix::t5 -(const signed byte) prepare_matrix::t5#0 t5 = (const signed byte) prepare_matrix::sx#0+(const signed byte) prepare_matrix::t2#0 +(signed byte) prepare_matrix::t5#0 t5 zp ZP_BYTE:13 0.29411764705882354 (signed byte) prepare_matrix::t6 -(const signed byte) prepare_matrix::t6#0 t6 = (const signed byte) prepare_matrix::sx#0-(const signed byte) prepare_matrix::t1#0 +(signed byte) prepare_matrix::t6#0 t6 zp ZP_BYTE:14 0.3125 (signed byte) prepare_matrix::t7 -(const signed byte) prepare_matrix::t7#0 t7 = (const signed byte) prepare_matrix::sx#0+(const signed byte) prepare_matrix::t1#0 +(signed byte) prepare_matrix::t7#0 t7 zp ZP_BYTE:15 0.30303030303030304 (signed byte) prepare_matrix::t8 -(const signed byte) prepare_matrix::t8#0 t8 = (const signed byte) prepare_matrix::t2#0-(const signed byte) prepare_matrix::sx#0 +(signed byte) prepare_matrix::t8#0 t8 zp ZP_BYTE:16 0.30303030303030304 (signed byte) prepare_matrix::t9 -(const signed byte) prepare_matrix::t9#0 t9 = (const signed byte) prepare_matrix::sy#0-(const signed byte) prepare_matrix::sx#0 +(signed byte) prepare_matrix::t9#0 t9 zp ZP_BYTE:17 0.1764705882352941 (void()) rotate((signed byte) rotate::x , (signed byte) rotate::y , (signed byte) rotate::z) (label) rotate::@return (signed byte) rotate::x -(signed byte) rotate::x#3 reg byte y 2.0 +(signed byte) rotate::x#0 x zp ZP_BYTE:10 34.33333333333333 (signed byte) rotate::y -(signed byte) rotate::y#3 reg byte x 1.0 +(signed byte) rotate::y#0 reg byte y 34.33333333333333 (signed byte) rotate::z -(signed byte) rotate::z#3 z zp ZP_BYTE:2 0.6666666666666666 +(signed byte) rotate::z#0 reg byte x 34.33333333333333 (signed byte[9]) rotation_matrix (const signed byte[9]) rotation_matrix#0 rotation_matrix = { fill( 9, 0) } +(void()) sprites_init() +(label) sprites_init::@1 +(label) sprites_init::@return +(byte) sprites_init::i +(byte) sprites_init::i#1 reg byte x 16.5 +(byte) sprites_init::i#2 reg byte x 14.666666666666666 +(byte*) sprites_init::sprites_ptr +(const byte*) sprites_init::sprites_ptr#0 sprites_ptr = (const byte*) SCREEN#0+(word/signed word/dword/signed dword) 1016 (signed byte*) xr (const signed byte*) xr#0 xr = ((signed byte*))(byte/word/signed word/dword/signed dword) 240 +(signed byte[8]) xs +(const signed byte[8]) xs#0 xs = { -(byte/signed byte/word/signed word/dword/signed dword) 63, -(byte/signed byte/word/signed word/dword/signed dword) 63, -(byte/signed byte/word/signed word/dword/signed dword) 63, -(byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63 } (signed byte*) yr (const signed byte*) yr#0 yr = ((signed byte*))(byte/word/signed word/dword/signed dword) 241 +(signed byte[8]) ys +(const signed byte[8]) ys#0 ys = { -(byte/signed byte/word/signed word/dword/signed dword) 63, -(byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, -(byte/signed byte/word/signed word/dword/signed dword) 63, -(byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63 } (signed byte*) zr (const signed byte*) zr#0 zr = ((signed byte*))(byte/word/signed word/dword/signed dword) 242 +(signed byte[8]) zs +(const signed byte[8]) zs#0 zs = { -(byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, -(byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, -(byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, -(byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63 } -reg byte y [ rotate::x#3 ] -reg byte x [ rotate::y#3 ] -zp ZP_BYTE:2 [ rotate::z#3 prepare_matrix::$13 prepare_matrix::$15 prepare_matrix::$18 prepare_matrix::$24 prepare_matrix::$29 prepare_matrix::$31 ] -zp ZP_WORD:3 [ mulf_init::sqr1#2 mulf_init::sqr1#1 ] +zp ZP_BYTE:2 [ main::sx#6 main::sx#12 main::sx#1 ] +zp ZP_BYTE:3 [ main::sy#5 main::sy#1 prepare_matrix::sy#0 ] +zp ZP_BYTE:4 [ main::sz#5 main::sz#1 ] +zp ZP_BYTE:5 [ main::i#2 main::i#1 prepare_matrix::t1#0 ] +zp ZP_WORD:6 [ mulf_init::sqr1#2 mulf_init::sqr1#1 ] reg byte x [ mulf_init::i#2 mulf_init::i#1 ] -zp ZP_WORD:5 [ mulf_init::add#2 mulf_init::add#1 ] +zp ZP_WORD:8 [ mulf_init::add#2 mulf_init::add#1 ] +reg byte x [ sprites_init::i#2 sprites_init::i#1 ] +reg byte y [ prepare_matrix::sx#0 ] +reg byte x [ prepare_matrix::sz#0 ] +reg byte a [ main::$4 ] +zp ZP_BYTE:10 [ rotate::x#0 prepare_matrix::t2#0 ] +reg byte y [ rotate::y#0 ] +reg byte x [ rotate::z#0 ] +reg byte x [ main::i2#0 ] +reg byte a [ main::$9 ] +reg byte a [ main::$11 ] +reg byte a [ main::$12 ] +reg byte a [ main::$14 ] +zp ZP_BYTE:11 [ prepare_matrix::t3#0 ] +zp ZP_BYTE:12 [ prepare_matrix::t4#0 ] +zp ZP_BYTE:13 [ prepare_matrix::t5#0 ] +zp ZP_BYTE:14 [ prepare_matrix::t6#0 ] +zp ZP_BYTE:15 [ prepare_matrix::t7#0 ] +zp ZP_BYTE:16 [ prepare_matrix::t8#0 ] +zp ZP_BYTE:17 [ prepare_matrix::t9#0 ] +zp ZP_BYTE:18 [ prepare_matrix::t10#0 ] reg byte a [ prepare_matrix::$10 ] reg byte a [ prepare_matrix::$11 ] reg byte a [ prepare_matrix::$12 ] +reg byte a [ prepare_matrix::$13 ] reg byte a [ prepare_matrix::$14 ] +reg byte a [ prepare_matrix::$15 ] reg byte a [ prepare_matrix::$16 ] reg byte a [ prepare_matrix::$17 ] +reg byte a [ prepare_matrix::$18 ] reg byte a [ prepare_matrix::$19 ] reg byte a [ prepare_matrix::$20 ] reg byte a [ prepare_matrix::$21 ] reg byte a [ prepare_matrix::$22 ] reg byte a [ prepare_matrix::$23 ] +reg byte a [ prepare_matrix::$24 ] reg byte a [ prepare_matrix::$25 ] reg byte a [ prepare_matrix::$26 ] reg byte a [ prepare_matrix::$27 ] reg byte a [ prepare_matrix::$28 ] +reg byte a [ prepare_matrix::$29 ] reg byte a [ prepare_matrix::$30 ] +reg byte a [ prepare_matrix::$31 ] reg byte a [ prepare_matrix::$32 ] reg byte a [ prepare_matrix::$33 ] reg byte a [ prepare_matrix::$34 ] reg byte a [ mulf_init::$0 ] -reg byte y [ mulf_init::$1 ] reg byte a [ mulf_init::$2 ] +reg byte y [ mulf_init::$3 ] reg byte a [ mulf_init::$4 ] -reg byte y [ mulf_init::$5 ] -reg byte a [ mulf_init::$6 ] +reg byte y [ mulf_init::$6 ] +reg byte a [ mulf_init::$7 ] +reg byte a [ mulf_init::$9 ] +reg byte a [ mulf_init::$12 ] +reg byte y [ mulf_init::$13 ] +reg byte a [ mulf_init::$14 ] +reg byte y [ mulf_init::$16 ] +reg byte a [ mulf_init::$17 ] FINAL ASSEMBLER -Score: 4197 +Score: 14295 //SEG0 Basic Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" //SEG1 Global Constants & labels + .label SPRITES_XPOS = $d000 + .label SPRITES_YPOS = $d001 .label RASTER = $d012 + .label SPRITES_ENABLE = $d015 .label BORDERCOL = $d020 + .label SPRITES_COLS = $d027 + .const GREEN = 5 .const LIGHT_BLUE = $e + .label SCREEN = $400 + .label SPRITE = $3000 .label COSH = $2000 .label COSQ = $2200 .label xr = $f0 @@ -2732,136 +4059,163 @@ Score: 4197 .label SINQ = COSQ+$40 //SEG2 @begin //SEG3 @3 -//SEG4 kickasm(location (const signed byte*) COSH#0) {{ { .var min = -$1fff .var max = $1fff .var ampl = max-min; .for(var i=0;i<$140;i++) { .var rad = i*2*PI/256; .byte >round(min+(ampl/2)+(ampl/2)*cos(rad)) } } }} -//SEG5 kickasm(location (const signed byte*) COSQ#0) {{ { .var min = -$0fff .var max = $0fff .var ampl = max-min; .for(var i=0;i<$140;i++) { .var rad = i*2*PI/256; .byte >round(min+(ampl/2)+(ampl/2)*cos(rad)) } } }} -//SEG6 [3] phi from @3 to @7 [phi:@3->@7] -//SEG7 @7 -//SEG8 [4] call main [ ] ( ) +//SEG4 kickasm(location (const byte*) SPRITE#0) {{ .var pic = LoadPicture("balloon.png", List().add($000000, $ffffff)) .for (var y=0; y<21; y++) .for (var x=0;x<3; x++) .byte pic.getSinglecolorByte(x,y) }} +//SEG5 kickasm(location (const signed byte*) COSH#0) {{ { .var min = -$1fff .var max = $1fff .var ampl = max-min; .for(var i=0;i<$140;i++) { .var rad = i*2*PI/256; .byte >round(min+(ampl/2)+(ampl/2)*cos(rad)) } } }} +//SEG6 kickasm(location (const signed byte*) COSQ#0) {{ { .var min = -$0fff .var max = $0fff .var ampl = max-min; .for(var i=0;i<$140;i++) { .var rad = i*2*PI/256; .byte >round(min+(ampl/2)+(ampl/2)*cos(rad)) } } }} +//SEG7 [4] phi from @3 to @8 [phi:@3->@8] +//SEG8 @8 +//SEG9 [5] call main [ ] ( ) jsr main -//SEG9 [5] phi from @7 to @end [phi:@7->@end] -//SEG10 @end -//SEG11 main +//SEG10 [6] phi from @8 to @end [phi:@8->@end] +//SEG11 @end +//SEG12 main main: { - .label SCREEN = $400 - //SEG12 asm { sei } + .label sy = 3 + .label sz = 4 + .label sx = 2 + .label i = 5 + //SEG13 asm { sei } sei - //SEG13 [7] call mulf_init [ ] ( main:4 [ ] ) - //SEG14 [69] phi from main to mulf_init [phi:main->mulf_init] + //SEG14 [8] call sprites_init [ ] ( main:5 [ ] ) + jsr sprites_init + //SEG15 [9] phi from main to main::@17 [phi:main->main::@17] + //SEG16 main::@17 + //SEG17 [10] call mulf_init [ ] ( main:5 [ ] ) + //SEG18 [91] phi from main::@17 to mulf_init [phi:main::@17->mulf_init] jsr mulf_init - //SEG15 [8] phi from main to main::@13 [phi:main->main::@13] - //SEG16 main::@13 - //SEG17 [9] call prepare_matrix [ ] ( main:4 [ ] ) - jsr prepare_matrix - //SEG18 main::@4 + //SEG19 [11] phi from main::@17 to main::@1 [phi:main::@17->main::@1] + //SEG20 [11] phi (signed byte) main::sz#5 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@17->main::@1#0] -- vbsz1=vbuc1 + lda #0 + sta sz + //SEG21 [11] phi (signed byte) main::sy#5 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@17->main::@1#1] -- vbsz1=vbuc1 + sta sy + //SEG22 [11] phi (signed byte) main::sx#6 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@17->main::@1#2] -- vbsz1=vbuc1 + sta sx + //SEG23 main::@1 + //SEG24 main::@4 b4: - //SEG19 [10] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto main::@4 [ ] ( main:4 [ ] ) -- _deref_pbuc1_neq_vbuc2_then_la1 + //SEG25 [12] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto main::@4 [ main::sx#6 main::sy#5 main::sz#5 ] ( main:5 [ main::sx#6 main::sy#5 main::sz#5 ] ) -- _deref_pbuc1_neq_vbuc2_then_la1 lda RASTER cmp #$ff bne b4 - //SEG20 main::@6 - //SEG21 [11] *((const byte*) BORDERCOL#0) ← ++ *((const byte*) BORDERCOL#0) [ ] ( main:4 [ ] ) -- _deref_pbuc1=_inc__deref_pbuc1 + //SEG26 main::@6 + //SEG27 [13] *((const byte*) BORDERCOL#0) ← ++ *((const byte*) BORDERCOL#0) [ main::sx#6 main::sy#5 main::sz#5 ] ( main:5 [ main::sx#6 main::sy#5 main::sz#5 ] ) -- _deref_pbuc1=_inc__deref_pbuc1 inc BORDERCOL - //SEG22 [12] call rotate [ ] ( main:4 [ ] ) - //SEG23 [27] phi from main::@6 to rotate [phi:main::@6->rotate] - //SEG24 [27] phi (signed byte) rotate::z#3 = (byte/signed byte/word/signed word/dword/signed dword) 63 [phi:main::@6->rotate#0] -- vbsz1=vbuc1 - lda #$3f - sta rotate.z - //SEG25 [27] phi (signed byte) rotate::y#3 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@6->rotate#1] -- vbsxx=vbuc1 + //SEG28 [14] (signed byte) prepare_matrix::sx#0 ← (signed byte) main::sx#6 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::sx#0 ] ( main:5 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::sx#0 ] ) -- vbsyy=vbsz1 + ldy sx + //SEG29 [15] (signed byte) prepare_matrix::sy#0 ← (signed byte) main::sy#5 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::sx#0 prepare_matrix::sy#0 ] ( main:5 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::sx#0 prepare_matrix::sy#0 ] ) + // (signed byte) prepare_matrix::sy#0 = (signed byte) main::sy#5 // register copy zp ZP_BYTE:3 + //SEG30 [16] (signed byte) prepare_matrix::sz#0 ← (signed byte) main::sz#5 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::sx#0 prepare_matrix::sy#0 prepare_matrix::sz#0 ] ( main:5 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::sx#0 prepare_matrix::sy#0 prepare_matrix::sz#0 ] ) -- vbsxx=vbsz1 + ldx sz + //SEG31 [17] call prepare_matrix [ main::sx#6 main::sy#5 main::sz#5 ] ( main:5 [ main::sx#6 main::sy#5 main::sz#5 ] ) + jsr prepare_matrix + //SEG32 main::@19 + //SEG33 [18] (signed byte) main::sy#1 ← -- (signed byte) main::sy#5 [ main::sx#6 main::sz#5 main::sy#1 ] ( main:5 [ main::sx#6 main::sz#5 main::sy#1 ] ) -- vbsz1=_dec_vbsz1 + dec sy + //SEG34 [19] (signed byte) main::sz#1 ← ++ (signed byte) main::sz#5 [ main::sx#6 main::sy#1 main::sz#1 ] ( main:5 [ main::sx#6 main::sy#1 main::sz#1 ] ) -- vbsz1=_inc_vbsz1 + inc sz + //SEG35 [20] (byte~) main::$4 ← (signed byte) main::sy#1 & (byte/signed byte/word/signed word/dword/signed dword) 1 [ main::sx#6 main::sy#1 main::sz#1 main::$4 ] ( main:5 [ main::sx#6 main::sy#1 main::sz#1 main::$4 ] ) -- vbuaa=vbsz1_band_vbuc1 + lda sy + and #1 + //SEG36 [21] if((byte~) main::$4!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto main::@7 [ main::sx#6 main::sy#1 main::sz#1 ] ( main:5 [ main::sx#6 main::sy#1 main::sz#1 ] ) -- vbuaa_neq_0_then_la1 + cmp #0 + bne b7 + //SEG37 main::@14 + //SEG38 [22] (signed byte) main::sx#1 ← ++ (signed byte) main::sx#6 [ main::sy#1 main::sz#1 main::sx#1 ] ( main:5 [ main::sy#1 main::sz#1 main::sx#1 ] ) -- vbsz1=_inc_vbsz1 + inc sx + //SEG39 [23] phi from main::@14 main::@19 to main::@7 [phi:main::@14/main::@19->main::@7] + //SEG40 [23] phi (signed byte) main::sx#12 = (signed byte) main::sx#1 [phi:main::@14/main::@19->main::@7#0] -- register_copy + //SEG41 main::@7 + b7: + //SEG42 [24] phi from main::@7 to main::@8 [phi:main::@7->main::@8] + //SEG43 [24] phi (byte) main::i#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@7->main::@8#0] -- vbuz1=vbuc1 lda #0 - tax - //SEG26 [27] phi (signed byte) rotate::x#3 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@6->rotate#2] -- vbsyy=vbuc1 - tay - jsr rotate - //SEG27 main::@15 - //SEG28 [13] *((const byte*) main::SCREEN#0) ← (byte)*((const signed byte*) xr#0) [ ] ( main:4 [ ] ) -- _deref_pbuc1=_deref_pbuc2 - lda xr - sta SCREEN - //SEG29 [14] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte)*((const signed byte*) yr#0) [ ] ( main:4 [ ] ) -- _deref_pbuc1=_deref_pbuc2 - lda yr - sta SCREEN+1 - //SEG30 [15] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte)*((const signed byte*) zr#0) [ ] ( main:4 [ ] ) -- _deref_pbuc1=_deref_pbuc2 - lda zr - sta SCREEN+2 - //SEG31 [16] *((const byte*) BORDERCOL#0) ← ++ *((const byte*) BORDERCOL#0) [ ] ( main:4 [ ] ) -- _deref_pbuc1=_inc__deref_pbuc1 + sta i + //SEG44 [24] phi from main::@20 to main::@8 [phi:main::@20->main::@8] + //SEG45 [24] phi (byte) main::i#2 = (byte) main::i#1 [phi:main::@20->main::@8#0] -- register_copy + //SEG46 main::@8 + b8: + //SEG47 [25] *((const byte*) BORDERCOL#0) ← ++ *((const byte*) BORDERCOL#0) [ main::sx#12 main::sy#1 main::sz#1 main::i#2 ] ( main:5 [ main::sx#12 main::sy#1 main::sz#1 main::i#2 ] ) -- _deref_pbuc1=_inc__deref_pbuc1 inc BORDERCOL - //SEG32 [17] call rotate [ ] ( main:4 [ ] ) - //SEG33 [27] phi from main::@15 to rotate [phi:main::@15->rotate] - //SEG34 [27] phi (signed byte) rotate::z#3 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@15->rotate#0] -- vbsz1=vbuc1 - lda #0 - sta rotate.z - //SEG35 [27] phi (signed byte) rotate::y#3 = (byte/signed byte/word/signed word/dword/signed dword) 63 [phi:main::@15->rotate#1] -- vbsxx=vbuc1 - lda #$3f + //SEG48 [26] (signed byte) rotate::x#0 ← *((const signed byte[8]) xs#0 + (byte) main::i#2) [ main::sx#12 main::sy#1 main::sz#1 main::i#2 rotate::x#0 ] ( main:5 [ main::sx#12 main::sy#1 main::sz#1 main::i#2 rotate::x#0 ] ) -- vbsz1=pbsc1_derefidx_vbuz2 + ldy i + lda xs,y + sta rotate.x + //SEG49 [27] (signed byte) rotate::y#0 ← *((const signed byte[8]) ys#0 + (byte) main::i#2) [ main::sx#12 main::sy#1 main::sz#1 main::i#2 rotate::x#0 rotate::y#0 ] ( main:5 [ main::sx#12 main::sy#1 main::sz#1 main::i#2 rotate::x#0 rotate::y#0 ] ) -- vbsyy=pbsc1_derefidx_vbuz1 + ldx i + ldy ys,x + //SEG50 [28] (signed byte) rotate::z#0 ← *((const signed byte[8]) zs#0 + (byte) main::i#2) [ main::sx#12 main::sy#1 main::sz#1 main::i#2 rotate::x#0 rotate::y#0 rotate::z#0 ] ( main:5 [ main::sx#12 main::sy#1 main::sz#1 main::i#2 rotate::x#0 rotate::y#0 rotate::z#0 ] ) -- vbsxx=pbsc1_derefidx_vbuz1 + lda zs,x tax - //SEG36 [27] phi (signed byte) rotate::x#3 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@15->rotate#2] -- vbsyy=vbuc1 - lda #0 - tay + //SEG51 [29] call rotate [ main::sx#12 main::sy#1 main::sz#1 main::i#2 ] ( main:5 [ main::sx#12 main::sy#1 main::sz#1 main::i#2 ] ) jsr rotate - //SEG37 main::@16 - //SEG38 [18] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40) ← (byte)*((const signed byte*) xr#0) [ ] ( main:4 [ ] ) -- _deref_pbuc1=_deref_pbuc2 - lda xr - sta SCREEN+$28 - //SEG39 [19] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 41) ← (byte)*((const signed byte*) yr#0) [ ] ( main:4 [ ] ) -- _deref_pbuc1=_deref_pbuc2 - lda yr - sta SCREEN+$29 - //SEG40 [20] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 42) ← (byte)*((const signed byte*) zr#0) [ ] ( main:4 [ ] ) -- _deref_pbuc1=_deref_pbuc2 - lda zr - sta SCREEN+$2a - //SEG41 [21] *((const byte*) BORDERCOL#0) ← ++ *((const byte*) BORDERCOL#0) [ ] ( main:4 [ ] ) -- _deref_pbuc1=_inc__deref_pbuc1 - inc BORDERCOL - //SEG42 [22] call rotate [ ] ( main:4 [ ] ) - //SEG43 [27] phi from main::@16 to rotate [phi:main::@16->rotate] - //SEG44 [27] phi (signed byte) rotate::z#3 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@16->rotate#0] -- vbsz1=vbuc1 - lda #0 - sta rotate.z - //SEG45 [27] phi (signed byte) rotate::y#3 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@16->rotate#1] -- vbsxx=vbuc1 + //SEG52 main::@20 + //SEG53 [30] (byte) main::i2#0 ← (byte) main::i#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ main::sx#12 main::sy#1 main::sz#1 main::i#2 main::i2#0 ] ( main:5 [ main::sx#12 main::sy#1 main::sz#1 main::i#2 main::i2#0 ] ) -- vbuxx=vbuz1_rol_1 + lda i + asl tax - //SEG46 [27] phi (signed byte) rotate::x#3 = (byte/signed byte/word/signed word/dword/signed dword) 63 [phi:main::@16->rotate#2] -- vbsyy=vbuc1 - lda #$3f - tay - jsr rotate - //SEG47 main::@17 - //SEG48 [23] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 80) ← (byte)*((const signed byte*) xr#0) [ ] ( main:4 [ ] ) -- _deref_pbuc1=_deref_pbuc2 + //SEG54 [31] (signed byte~) main::$9 ← *((const signed byte*) xr#0) >> (byte/signed byte/word/signed word/dword/signed dword) 1 [ main::sx#12 main::sy#1 main::sz#1 main::i#2 main::i2#0 main::$9 ] ( main:5 [ main::sx#12 main::sy#1 main::sz#1 main::i#2 main::i2#0 main::$9 ] ) -- vbsaa=_deref_pbsc1_ror_1 lda xr - sta SCREEN+$50 - //SEG49 [24] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 81) ← (byte)*((const signed byte*) yr#0) [ ] ( main:4 [ ] ) -- _deref_pbuc1=_deref_pbuc2 + cmp #$80 + ror + //SEG55 [32] (byte/word/signed word/dword/signed dword~) main::$11 ← (byte/word/signed word/dword/signed dword) 128 + (byte)(signed byte~) main::$9 [ main::sx#12 main::sy#1 main::sz#1 main::i#2 main::i2#0 main::$11 ] ( main:5 [ main::sx#12 main::sy#1 main::sz#1 main::i#2 main::i2#0 main::$11 ] ) -- vbuaa=vbuc1_plus_vbuaa + clc + adc #$80 + //SEG56 [33] *((const byte*) SPRITES_XPOS#0 + (byte) main::i2#0) ← (byte/word/signed word/dword/signed dword~) main::$11 [ main::sx#12 main::sy#1 main::sz#1 main::i#2 main::i2#0 ] ( main:5 [ main::sx#12 main::sy#1 main::sz#1 main::i#2 main::i2#0 ] ) -- pbuc1_derefidx_vbuxx=vbuaa + sta SPRITES_XPOS,x + //SEG57 [34] (signed byte~) main::$12 ← *((const signed byte*) yr#0) >> (byte/signed byte/word/signed word/dword/signed dword) 1 [ main::sx#12 main::sy#1 main::sz#1 main::i#2 main::i2#0 main::$12 ] ( main:5 [ main::sx#12 main::sy#1 main::sz#1 main::i#2 main::i2#0 main::$12 ] ) -- vbsaa=_deref_pbsc1_ror_1 lda yr - sta SCREEN+$51 - //SEG50 [25] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 82) ← (byte)*((const signed byte*) zr#0) [ ] ( main:4 [ ] ) -- _deref_pbuc1=_deref_pbuc2 - lda zr - sta SCREEN+$52 - //SEG51 [26] *((const byte*) BORDERCOL#0) ← (const byte) LIGHT_BLUE#0 [ ] ( main:4 [ ] ) -- _deref_pbuc1=vbuc2 + cmp #$80 + ror + //SEG58 [35] (byte/word/signed word/dword/signed dword~) main::$14 ← (byte/word/signed word/dword/signed dword) 128 + (byte)(signed byte~) main::$12 [ main::sx#12 main::sy#1 main::sz#1 main::i#2 main::i2#0 main::$14 ] ( main:5 [ main::sx#12 main::sy#1 main::sz#1 main::i#2 main::i2#0 main::$14 ] ) -- vbuaa=vbuc1_plus_vbuaa + clc + adc #$80 + //SEG59 [36] *((const byte*) SPRITES_YPOS#0 + (byte) main::i2#0) ← (byte/word/signed word/dword/signed dword~) main::$14 [ main::sx#12 main::sy#1 main::sz#1 main::i#2 ] ( main:5 [ main::sx#12 main::sy#1 main::sz#1 main::i#2 ] ) -- pbuc1_derefidx_vbuxx=vbuaa + sta SPRITES_YPOS,x + //SEG60 [37] (byte) main::i#1 ← ++ (byte) main::i#2 [ main::sx#12 main::sy#1 main::sz#1 main::i#1 ] ( main:5 [ main::sx#12 main::sy#1 main::sz#1 main::i#1 ] ) -- vbuz1=_inc_vbuz1 + inc i + //SEG61 [38] if((byte) main::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 8) goto main::@8 [ main::sx#12 main::sy#1 main::sz#1 main::i#1 ] ( main:5 [ main::sx#12 main::sy#1 main::sz#1 main::i#1 ] ) -- vbuz1_neq_vbuc1_then_la1 + lda i + cmp #8 + bne b8 + //SEG62 main::@15 + //SEG63 [39] *((const byte*) BORDERCOL#0) ← (const byte) LIGHT_BLUE#0 [ main::sx#12 main::sy#1 main::sz#1 ] ( main:5 [ main::sx#12 main::sy#1 main::sz#1 ] ) -- _deref_pbuc1=vbuc2 lda #LIGHT_BLUE sta BORDERCOL + //SEG64 [11] phi from main::@15 to main::@1 [phi:main::@15->main::@1] + //SEG65 [11] phi (signed byte) main::sz#5 = (signed byte) main::sz#1 [phi:main::@15->main::@1#0] -- register_copy + //SEG66 [11] phi (signed byte) main::sy#5 = (signed byte) main::sy#1 [phi:main::@15->main::@1#1] -- register_copy + //SEG67 [11] phi (signed byte) main::sx#6 = (signed byte) main::sx#12 [phi:main::@15->main::@1#2] -- register_copy jmp b4 } -//SEG52 rotate +//SEG68 rotate rotate: { - .label z = 2 - //SEG53 [28] *((const signed byte*) xr#0) ← (signed byte) rotate::x#3 [ rotate::y#3 rotate::z#3 ] ( main:4::rotate:12 [ rotate::y#3 rotate::z#3 ] main:4::rotate:17 [ rotate::y#3 rotate::z#3 ] main:4::rotate:22 [ rotate::y#3 rotate::z#3 ] ) -- _deref_pbsc1=vbsyy - tya + .label x = $a + //SEG69 [40] *((const signed byte*) xr#0) ← (signed byte) rotate::x#0 [ rotate::y#0 rotate::z#0 ] ( main:5::rotate:29 [ main::sx#12 main::sy#1 main::sz#1 main::i#2 rotate::y#0 rotate::z#0 ] ) -- _deref_pbsc1=vbsz1 + lda x sta xr - //SEG54 [29] *((const signed byte*) yr#0) ← (signed byte) rotate::y#3 [ rotate::z#3 ] ( main:4::rotate:12 [ rotate::z#3 ] main:4::rotate:17 [ rotate::z#3 ] main:4::rotate:22 [ rotate::z#3 ] ) -- _deref_pbsc1=vbsxx - txa + //SEG70 [41] *((const signed byte*) yr#0) ← (signed byte) rotate::y#0 [ rotate::z#0 ] ( main:5::rotate:29 [ main::sx#12 main::sy#1 main::sz#1 main::i#2 rotate::z#0 ] ) -- _deref_pbsc1=vbsyy + tya sta yr - //SEG55 [30] *((const signed byte*) zr#0) ← (signed byte) rotate::z#3 [ ] ( main:4::rotate:12 [ ] main:4::rotate:17 [ ] main:4::rotate:22 [ ] ) -- _deref_pbsc1=vbsz1 - lda z + //SEG71 [42] *((const signed byte*) zr#0) ← (signed byte) rotate::z#0 [ ] ( main:5::rotate:29 [ main::sx#12 main::sy#1 main::sz#1 main::i#2 ] ) -- _deref_pbsc1=vbsxx + txa sta zr - //SEG56 asm { clc ldxzr lda#$80 C1: adcmulf_sqr1,x C2: sbcmulf_sqr2,x staC3+1 lda#$80 F1: adcmulf_sqr1,x F2: sbcmulf_sqr2,x staF3+1 lda#$80 I1: adcmulf_sqr1,x I2: sbcmulf_sqr2,x staI3+1 ldxxr ldyyr C3: lda#0 A1: adcmulf_sqr1,x A2: sbcmulf_sqr2,x B1: adcmulf_sqr1,y B2: sbcmulf_sqr2,y staxr F3: lda#0 D1: adcmulf_sqr1,x D2: sbcmulf_sqr2,x E1: adcmulf_sqr1,y E2: sbcmulf_sqr2,y stayr I3: lda#0 G1: adcmulf_sqr1,x G2: sbcmulf_sqr2,x H1: adcmulf_sqr1,y H2: sbcmulf_sqr2,y stazr } + //SEG72 asm { clc ldxzr lda#$0 C1: adcmulf_sqr1,x C2: sbcmulf_sqr2,x staC3+1 lda#0 F1: adcmulf_sqr1,x F2: sbcmulf_sqr2,x staF3+1 lda#0 I1: adcmulf_sqr1,x I2: sbcmulf_sqr2,x staI3+1 ldxxr ldyyr C3: lda#0 A1: adcmulf_sqr1,x A2: sbcmulf_sqr2,x B1: adcmulf_sqr1,y B2: sbcmulf_sqr2,y staxr F3: lda#0 D1: adcmulf_sqr1,x D2: sbcmulf_sqr2,x E1: adcmulf_sqr1,y E2: sbcmulf_sqr2,y stayr I3: lda#0 G1: adcmulf_sqr1,x G2: sbcmulf_sqr2,x H1: adcmulf_sqr1,y H2: sbcmulf_sqr2,y stazr } clc tax - lda #$80 + lda #0 C1: adc mulf_sqr1,x C2: sbc mulf_sqr2,x sta C3+1 - lda #$80 + lda #0 F1: adc mulf_sqr1,x F2: sbc mulf_sqr2,x sta F3+1 - lda #$80 + lda #0 I1: adc mulf_sqr1,x I2: @@ -2902,184 +4256,211 @@ rotate: { H2: sbc mulf_sqr2,y sta zr - //SEG57 rotate::@return - //SEG58 [32] return [ ] ( main:4::rotate:12 [ ] main:4::rotate:17 [ ] main:4::rotate:22 [ ] ) + //SEG73 rotate::@return + //SEG74 [44] return [ ] ( main:5::rotate:29 [ main::sx#12 main::sy#1 main::sz#1 main::i#2 ] ) rts } -//SEG59 prepare_matrix +//SEG75 prepare_matrix prepare_matrix: { - .const sx = 0 - .const sy = 0 - .const sz = 0 - .const t1 = sy-sz - .const t2 = sy+sz - .const t3 = sx+sz - .const t4 = sx-sz - .const t9 = sy-sx - .const t10 = sy+sx - .const t5 = sx+t2 - .const t6 = sx-t1 - .const t7 = sx+t1 - .const t8 = t2-sx - .label _13 = 2 - .label _15 = 2 - .label _18 = 2 - .label _24 = 2 - .label _29 = 2 - .label _31 = 2 - //SEG60 [33] (signed byte~) prepare_matrix::$10 ← *((const signed byte*) COSH#0+(const signed byte) prepare_matrix::t1#0) + *((const signed byte*) COSH#0+(const signed byte) prepare_matrix::t2#0) [ prepare_matrix::$10 ] ( main:4::prepare_matrix:9 [ prepare_matrix::$10 ] ) -- vbsaa=_deref_pbsc1_plus__deref_pbsc2 - lda COSH+t1 - ldy COSH+t2 + .label sy = 3 + .label t1 = 5 + .label t2 = $a + .label t3 = $b + .label t4 = $c + .label t5 = $d + .label t6 = $e + .label t7 = $f + .label t8 = $10 + .label t9 = $11 + .label t10 = $12 + //SEG76 [45] (signed byte) prepare_matrix::t1#0 ← (signed byte) prepare_matrix::sy#0 - (signed byte) prepare_matrix::sz#0 [ prepare_matrix::sx#0 prepare_matrix::sy#0 prepare_matrix::sz#0 prepare_matrix::t1#0 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::sx#0 prepare_matrix::sy#0 prepare_matrix::sz#0 prepare_matrix::t1#0 ] ) -- vbsz1=vbsz2_minus_vbsxx + txa + eor #$ff + sec + adc sy + sta t1 + //SEG77 [46] (signed byte) prepare_matrix::t2#0 ← (signed byte) prepare_matrix::sy#0 + (signed byte) prepare_matrix::sz#0 [ prepare_matrix::sx#0 prepare_matrix::sy#0 prepare_matrix::sz#0 prepare_matrix::t1#0 prepare_matrix::t2#0 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::sx#0 prepare_matrix::sy#0 prepare_matrix::sz#0 prepare_matrix::t1#0 prepare_matrix::t2#0 ] ) -- vbsz1=vbsz2_plus_vbsxx + txa + clc + adc sy + sta t2 + //SEG78 [47] (signed byte) prepare_matrix::t3#0 ← (signed byte) prepare_matrix::sx#0 + (signed byte) prepare_matrix::sz#0 [ prepare_matrix::sx#0 prepare_matrix::sy#0 prepare_matrix::sz#0 prepare_matrix::t1#0 prepare_matrix::t2#0 prepare_matrix::t3#0 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::sx#0 prepare_matrix::sy#0 prepare_matrix::sz#0 prepare_matrix::t1#0 prepare_matrix::t2#0 prepare_matrix::t3#0 ] ) -- vbsz1=vbsyy_plus_vbsxx + txa sty $ff clc adc $ff - //SEG61 [34] *((const signed byte[9]) rotation_matrix#0) ← (signed byte~) prepare_matrix::$10 [ ] ( main:4::prepare_matrix:9 [ ] ) -- _deref_pbsc1=vbsaa + sta t3 + //SEG79 [48] (signed byte) prepare_matrix::t4#0 ← (signed byte) prepare_matrix::sx#0 - (signed byte) prepare_matrix::sz#0 [ prepare_matrix::sx#0 prepare_matrix::sy#0 prepare_matrix::t1#0 prepare_matrix::t2#0 prepare_matrix::t3#0 prepare_matrix::t4#0 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::sx#0 prepare_matrix::sy#0 prepare_matrix::t1#0 prepare_matrix::t2#0 prepare_matrix::t3#0 prepare_matrix::t4#0 ] ) -- vbsz1=vbsyy_minus_vbsxx + tya + stx $ff + sec + sbc $ff + sta t4 + //SEG80 [49] (signed byte) prepare_matrix::t5#0 ← (signed byte) prepare_matrix::sx#0 + (signed byte) prepare_matrix::t2#0 [ prepare_matrix::sx#0 prepare_matrix::sy#0 prepare_matrix::t1#0 prepare_matrix::t2#0 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::sx#0 prepare_matrix::sy#0 prepare_matrix::t1#0 prepare_matrix::t2#0 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 ] ) -- vbsz1=vbsyy_plus_vbsz2 + tya + clc + adc t2 + sta t5 + //SEG81 [50] (signed byte) prepare_matrix::t6#0 ← (signed byte) prepare_matrix::sx#0 - (signed byte) prepare_matrix::t1#0 [ prepare_matrix::sx#0 prepare_matrix::sy#0 prepare_matrix::t1#0 prepare_matrix::t2#0 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::sx#0 prepare_matrix::sy#0 prepare_matrix::t1#0 prepare_matrix::t2#0 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 ] ) -- vbsz1=vbsyy_minus_vbsz2 + tya + sec + sbc t1 + sta t6 + //SEG82 [51] (signed byte) prepare_matrix::t7#0 ← (signed byte) prepare_matrix::sx#0 + (signed byte) prepare_matrix::t1#0 [ prepare_matrix::sx#0 prepare_matrix::sy#0 prepare_matrix::t1#0 prepare_matrix::t2#0 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::sx#0 prepare_matrix::sy#0 prepare_matrix::t1#0 prepare_matrix::t2#0 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 ] ) -- vbsz1=vbsyy_plus_vbsz2 + tya + clc + adc t1 + sta t7 + //SEG83 [52] (signed byte) prepare_matrix::t8#0 ← (signed byte) prepare_matrix::t2#0 - (signed byte) prepare_matrix::sx#0 [ prepare_matrix::sx#0 prepare_matrix::sy#0 prepare_matrix::t1#0 prepare_matrix::t2#0 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::sx#0 prepare_matrix::sy#0 prepare_matrix::t1#0 prepare_matrix::t2#0 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 ] ) -- vbsz1=vbsz2_minus_vbsyy + tya + eor #$ff + sec + adc t2 + sta t8 + //SEG84 [53] (signed byte) prepare_matrix::t9#0 ← (signed byte) prepare_matrix::sy#0 - (signed byte) prepare_matrix::sx#0 [ prepare_matrix::sx#0 prepare_matrix::sy#0 prepare_matrix::t1#0 prepare_matrix::t2#0 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::sx#0 prepare_matrix::sy#0 prepare_matrix::t1#0 prepare_matrix::t2#0 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 ] ) -- vbsz1=vbsz2_minus_vbsyy + tya + eor #$ff + sec + adc sy + sta t9 + //SEG85 [54] (signed byte) prepare_matrix::t10#0 ← (signed byte) prepare_matrix::sy#0 + (signed byte) prepare_matrix::sx#0 [ prepare_matrix::sy#0 prepare_matrix::t1#0 prepare_matrix::t2#0 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::sy#0 prepare_matrix::t1#0 prepare_matrix::t2#0 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 ] ) -- vbsz1=vbsz2_plus_vbsyy + tya + clc + adc sy + sta t10 + //SEG86 [55] (signed byte~) prepare_matrix::$10 ← *((const signed byte*) COSH#0 + (signed byte) prepare_matrix::t1#0) + *((const signed byte*) COSH#0 + (signed byte) prepare_matrix::t2#0) [ prepare_matrix::sy#0 prepare_matrix::t1#0 prepare_matrix::t2#0 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$10 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::sy#0 prepare_matrix::t1#0 prepare_matrix::t2#0 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$10 ] ) -- vbsaa=pbsc1_derefidx_vbsz1_plus_pbsc1_derefidx_vbsz2 + ldx t1 + ldy t2 + clc + lda COSH,x + adc COSH,y + //SEG87 [56] *((const signed byte[9]) rotation_matrix#0) ← (signed byte~) prepare_matrix::$10 [ prepare_matrix::sy#0 prepare_matrix::t1#0 prepare_matrix::t2#0 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::sy#0 prepare_matrix::t1#0 prepare_matrix::t2#0 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 ] ) -- _deref_pbsc1=vbsaa sta rotation_matrix - //SEG62 [35] (signed byte~) prepare_matrix::$11 ← *((const signed byte*) SINH#0+(const signed byte) prepare_matrix::t1#0) - *((const signed byte*) SINH#0+(const signed byte) prepare_matrix::t2#0) [ prepare_matrix::$11 ] ( main:4::prepare_matrix:9 [ prepare_matrix::$11 ] ) -- vbsaa=_deref_pbsc1_minus__deref_pbsc2 - lda SINH+t1 - ldy SINH+t2 - sty $ff + //SEG88 [57] (signed byte~) prepare_matrix::$11 ← *((const signed byte*) SINH#0 + (signed byte) prepare_matrix::t1#0) - *((const signed byte*) SINH#0 + (signed byte) prepare_matrix::t2#0) [ prepare_matrix::sy#0 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$11 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::sy#0 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$11 ] ) -- vbsaa=pbsc1_derefidx_vbsz1_minus_pbsc1_derefidx_vbsz2 sec - sbc $ff - //SEG63 [36] *((const signed byte[9]) rotation_matrix#0+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (signed byte~) prepare_matrix::$11 [ ] ( main:4::prepare_matrix:9 [ ] ) -- _deref_pbsc1=vbsaa + lda SINH,x + sbc SINH,y + //SEG89 [58] *((const signed byte[9]) rotation_matrix#0+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (signed byte~) prepare_matrix::$11 [ prepare_matrix::sy#0 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::sy#0 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 ] ) -- _deref_pbsc1=vbsaa sta rotation_matrix+1 - //SEG64 [37] (signed byte~) prepare_matrix::$12 ← *((const signed byte*) SINH#0+(const signed byte) prepare_matrix::sy#0) + *((const signed byte*) SINH#0+(const signed byte) prepare_matrix::sy#0) [ prepare_matrix::$12 ] ( main:4::prepare_matrix:9 [ prepare_matrix::$12 ] ) -- vbsaa=_deref_pbsc1_plus__deref_pbsc2 - lda SINH+sy - tay - sty $ff + //SEG90 [59] (signed byte~) prepare_matrix::$12 ← *((const signed byte*) SINH#0 + (signed byte) prepare_matrix::sy#0) + *((const signed byte*) SINH#0 + (signed byte) prepare_matrix::sy#0) [ prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$12 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$12 ] ) -- vbsaa=pbsc1_derefidx_vbsz1_plus_pbsc1_derefidx_vbsz1 + ldy sy clc - adc $ff - //SEG65 [38] *((const signed byte[9]) rotation_matrix#0+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (signed byte~) prepare_matrix::$12 [ ] ( main:4::prepare_matrix:9 [ ] ) -- _deref_pbsc1=vbsaa + lda SINH,y + adc SINH,y + //SEG91 [60] *((const signed byte[9]) rotation_matrix#0+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (signed byte~) prepare_matrix::$12 [ prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 ] ) -- _deref_pbsc1=vbsaa sta rotation_matrix+2 - //SEG66 [39] (signed byte~) prepare_matrix::$13 ← *((const signed byte*) SINH#0+(const signed byte) prepare_matrix::t3#0) - *((const signed byte*) SINH#0+(const signed byte) prepare_matrix::t4#0) [ prepare_matrix::$13 ] ( main:4::prepare_matrix:9 [ prepare_matrix::$13 ] ) -- vbsz1=_deref_pbsc1_minus__deref_pbsc2 - lda SINH+t3 - ldy SINH+t4 - sty $ff + //SEG92 [61] (signed byte~) prepare_matrix::$13 ← *((const signed byte*) SINH#0 + (signed byte) prepare_matrix::t3#0) - *((const signed byte*) SINH#0 + (signed byte) prepare_matrix::t4#0) [ prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$13 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$13 ] ) -- vbsaa=pbsc1_derefidx_vbsz1_minus_pbsc1_derefidx_vbsz2 + ldx t3 + ldy t4 sec - sbc $ff - sta _13 - //SEG67 [40] (signed byte~) prepare_matrix::$14 ← (signed byte~) prepare_matrix::$13 + *((const signed byte*) COSQ#0+(const signed byte) prepare_matrix::t6#0) [ prepare_matrix::$14 ] ( main:4::prepare_matrix:9 [ prepare_matrix::$14 ] ) -- vbsaa=vbsz1_plus__deref_pbsc1 - lda COSQ+t6 + lda SINH,x + sbc SINH,y + //SEG93 [62] (signed byte~) prepare_matrix::$14 ← (signed byte~) prepare_matrix::$13 + *((const signed byte*) COSQ#0 + (signed byte) prepare_matrix::t6#0) [ prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$14 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$14 ] ) -- vbsaa=vbsaa_plus_pbsc1_derefidx_vbsz1 + ldy t6 clc - adc _13 - //SEG68 [41] (signed byte~) prepare_matrix::$15 ← (signed byte~) prepare_matrix::$14 - *((const signed byte*) COSQ#0+(const signed byte) prepare_matrix::t5#0) [ prepare_matrix::$15 ] ( main:4::prepare_matrix:9 [ prepare_matrix::$15 ] ) -- vbsz1=vbsaa_minus__deref_pbsc1 - ldy COSQ+t5 - sty $ff + adc COSQ,y + //SEG94 [63] (signed byte~) prepare_matrix::$15 ← (signed byte~) prepare_matrix::$14 - *((const signed byte*) COSQ#0 + (signed byte) prepare_matrix::t5#0) [ prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$15 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$15 ] ) -- vbsaa=vbsaa_minus_pbsc1_derefidx_vbsz1 + ldy t5 sec - sbc $ff - sta _15 - //SEG69 [42] (signed byte~) prepare_matrix::$16 ← (signed byte~) prepare_matrix::$15 + *((const signed byte*) COSQ#0+(const signed byte) prepare_matrix::t8#0) [ prepare_matrix::$16 ] ( main:4::prepare_matrix:9 [ prepare_matrix::$16 ] ) -- vbsaa=vbsz1_plus__deref_pbsc1 - lda COSQ+t8 + sbc COSQ,y + //SEG95 [64] (signed byte~) prepare_matrix::$16 ← (signed byte~) prepare_matrix::$15 + *((const signed byte*) COSQ#0 + (signed byte) prepare_matrix::t8#0) [ prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$16 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$16 ] ) -- vbsaa=vbsaa_plus_pbsc1_derefidx_vbsz1 + ldy t8 clc - adc _15 - //SEG70 [43] (signed byte~) prepare_matrix::$17 ← (signed byte~) prepare_matrix::$16 - *((const signed byte*) COSQ#0+(const signed byte) prepare_matrix::t7#0) [ prepare_matrix::$17 ] ( main:4::prepare_matrix:9 [ prepare_matrix::$17 ] ) -- vbsaa=vbsaa_minus__deref_pbsc1 - ldy COSQ+t7 - sty $ff + adc COSQ,y + //SEG96 [65] (signed byte~) prepare_matrix::$17 ← (signed byte~) prepare_matrix::$16 - *((const signed byte*) COSQ#0 + (signed byte) prepare_matrix::t7#0) [ prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$17 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$17 ] ) -- vbsaa=vbsaa_minus_pbsc1_derefidx_vbsz1 + ldy t7 sec - sbc $ff - //SEG71 [44] *((const signed byte[9]) rotation_matrix#0+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (signed byte~) prepare_matrix::$17 [ ] ( main:4::prepare_matrix:9 [ ] ) -- _deref_pbsc1=vbsaa + sbc COSQ,y + //SEG97 [66] *((const signed byte[9]) rotation_matrix#0+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (signed byte~) prepare_matrix::$17 [ prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 ] ) -- _deref_pbsc1=vbsaa sta rotation_matrix+3 - //SEG72 [45] (signed byte~) prepare_matrix::$18 ← *((const signed byte*) COSH#0+(const signed byte) prepare_matrix::t3#0) + *((const signed byte*) COSH#0+(const signed byte) prepare_matrix::t4#0) [ prepare_matrix::$18 ] ( main:4::prepare_matrix:9 [ prepare_matrix::$18 ] ) -- vbsz1=_deref_pbsc1_plus__deref_pbsc2 - lda COSH+t3 - ldy COSH+t4 - sty $ff + //SEG98 [67] (signed byte~) prepare_matrix::$18 ← *((const signed byte*) COSH#0 + (signed byte) prepare_matrix::t3#0) + *((const signed byte*) COSH#0 + (signed byte) prepare_matrix::t4#0) [ prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$18 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$18 ] ) -- vbsaa=pbsc1_derefidx_vbsz1_plus_pbsc1_derefidx_vbsz2 + ldy t4 clc - adc $ff - sta _18 - //SEG73 [46] (signed byte~) prepare_matrix::$19 ← (signed byte~) prepare_matrix::$18 + *((const signed byte*) SINQ#0+(const signed byte) prepare_matrix::t5#0) [ prepare_matrix::$19 ] ( main:4::prepare_matrix:9 [ prepare_matrix::$19 ] ) -- vbsaa=vbsz1_plus__deref_pbsc1 - lda SINQ+t5 + lda COSH,x + adc COSH,y + //SEG99 [68] (signed byte~) prepare_matrix::$19 ← (signed byte~) prepare_matrix::$18 + *((const signed byte*) SINQ#0 + (signed byte) prepare_matrix::t5#0) [ prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$19 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$19 ] ) -- vbsaa=vbsaa_plus_pbsc1_derefidx_vbsz1 + ldy t5 clc - adc _18 - //SEG74 [47] (signed byte~) prepare_matrix::$20 ← (signed byte~) prepare_matrix::$19 - *((const signed byte*) SINQ#0+(const signed byte) prepare_matrix::t6#0) [ prepare_matrix::$20 ] ( main:4::prepare_matrix:9 [ prepare_matrix::$20 ] ) -- vbsaa=vbsaa_minus__deref_pbsc1 - ldy SINQ+t6 - sty $ff + adc SINQ,y + //SEG100 [69] (signed byte~) prepare_matrix::$20 ← (signed byte~) prepare_matrix::$19 - *((const signed byte*) SINQ#0 + (signed byte) prepare_matrix::t6#0) [ prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$20 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$20 ] ) -- vbsaa=vbsaa_minus_pbsc1_derefidx_vbsz1 + ldy t6 sec - sbc $ff - //SEG75 [48] (signed byte~) prepare_matrix::$21 ← (signed byte~) prepare_matrix::$20 - *((const signed byte*) SINQ#0+(const signed byte) prepare_matrix::t7#0) [ prepare_matrix::$21 ] ( main:4::prepare_matrix:9 [ prepare_matrix::$21 ] ) -- vbsaa=vbsaa_minus__deref_pbsc1 - ldy SINQ+t7 - sty $ff + sbc SINQ,y + //SEG101 [70] (signed byte~) prepare_matrix::$21 ← (signed byte~) prepare_matrix::$20 - *((const signed byte*) SINQ#0 + (signed byte) prepare_matrix::t7#0) [ prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$21 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$21 ] ) -- vbsaa=vbsaa_minus_pbsc1_derefidx_vbsz1 + ldy t7 sec - sbc $ff - //SEG76 [49] (signed byte~) prepare_matrix::$22 ← (signed byte~) prepare_matrix::$21 - *((const signed byte*) SINQ#0+(const signed byte) prepare_matrix::t8#0) [ prepare_matrix::$22 ] ( main:4::prepare_matrix:9 [ prepare_matrix::$22 ] ) -- vbsaa=vbsaa_minus__deref_pbsc1 - ldy SINQ+t8 - sty $ff + sbc SINQ,y + //SEG102 [71] (signed byte~) prepare_matrix::$22 ← (signed byte~) prepare_matrix::$21 - *((const signed byte*) SINQ#0 + (signed byte) prepare_matrix::t8#0) [ prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$22 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$22 ] ) -- vbsaa=vbsaa_minus_pbsc1_derefidx_vbsz1 + ldy t8 sec - sbc $ff - //SEG77 [50] *((const signed byte[9]) rotation_matrix#0+(byte/signed byte/word/signed word/dword/signed dword) 4) ← (signed byte~) prepare_matrix::$22 [ ] ( main:4::prepare_matrix:9 [ ] ) -- _deref_pbsc1=vbsaa + sbc SINQ,y + //SEG103 [72] *((const signed byte[9]) rotation_matrix#0+(byte/signed byte/word/signed word/dword/signed dword) 4) ← (signed byte~) prepare_matrix::$22 [ prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 ] ) -- _deref_pbsc1=vbsaa sta rotation_matrix+4 - //SEG78 [51] (signed byte~) prepare_matrix::$23 ← *((const signed byte*) SINH#0+(const signed byte) prepare_matrix::t9#0) - *((const signed byte*) SINH#0+(const signed byte) prepare_matrix::t10#0) [ prepare_matrix::$23 ] ( main:4::prepare_matrix:9 [ prepare_matrix::$23 ] ) -- vbsaa=_deref_pbsc1_minus__deref_pbsc2 - lda SINH+t9 - ldy SINH+t10 - sty $ff + //SEG104 [73] (signed byte~) prepare_matrix::$23 ← *((const signed byte*) SINH#0 + (signed byte) prepare_matrix::t9#0) - *((const signed byte*) SINH#0 + (signed byte) prepare_matrix::t10#0) [ prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$23 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$23 ] ) -- vbsaa=pbsc1_derefidx_vbsz1_minus_pbsc1_derefidx_vbsz2 + ldx t9 + ldy t10 sec - sbc $ff - //SEG79 [52] *((const signed byte[9]) rotation_matrix#0+(byte/signed byte/word/signed word/dword/signed dword) 5) ← (signed byte~) prepare_matrix::$23 [ ] ( main:4::prepare_matrix:9 [ ] ) -- _deref_pbsc1=vbsaa + lda SINH,x + sbc SINH,y + //SEG105 [74] *((const signed byte[9]) rotation_matrix#0+(byte/signed byte/word/signed word/dword/signed dword) 5) ← (signed byte~) prepare_matrix::$23 [ prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 ] ) -- _deref_pbsc1=vbsaa sta rotation_matrix+5 - //SEG80 [53] (signed byte~) prepare_matrix::$24 ← *((const signed byte*) COSH#0+(const signed byte) prepare_matrix::t4#0) - *((const signed byte*) COSH#0+(const signed byte) prepare_matrix::t3#0) [ prepare_matrix::$24 ] ( main:4::prepare_matrix:9 [ prepare_matrix::$24 ] ) -- vbsz1=_deref_pbsc1_minus__deref_pbsc2 - lda COSH+t4 - ldy COSH+t3 - sty $ff + //SEG106 [75] (signed byte~) prepare_matrix::$24 ← *((const signed byte*) COSH#0 + (signed byte) prepare_matrix::t4#0) - *((const signed byte*) COSH#0 + (signed byte) prepare_matrix::t3#0) [ prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$24 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$24 ] ) -- vbsaa=pbsc1_derefidx_vbsz1_minus_pbsc1_derefidx_vbsz2 + ldx t4 + ldy t3 sec - sbc $ff - sta _24 - //SEG81 [54] (signed byte~) prepare_matrix::$25 ← (signed byte~) prepare_matrix::$24 + *((const signed byte*) SINQ#0+(const signed byte) prepare_matrix::t6#0) [ prepare_matrix::$25 ] ( main:4::prepare_matrix:9 [ prepare_matrix::$25 ] ) -- vbsaa=vbsz1_plus__deref_pbsc1 - lda SINQ+t6 + lda COSH,x + sbc COSH,y + //SEG107 [76] (signed byte~) prepare_matrix::$25 ← (signed byte~) prepare_matrix::$24 + *((const signed byte*) SINQ#0 + (signed byte) prepare_matrix::t6#0) [ prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$25 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$25 ] ) -- vbsaa=vbsaa_plus_pbsc1_derefidx_vbsz1 + ldy t6 clc - adc _24 - //SEG82 [55] (signed byte~) prepare_matrix::$26 ← (signed byte~) prepare_matrix::$25 - *((const signed byte*) SINQ#0+(const signed byte) prepare_matrix::t5#0) [ prepare_matrix::$26 ] ( main:4::prepare_matrix:9 [ prepare_matrix::$26 ] ) -- vbsaa=vbsaa_minus__deref_pbsc1 - ldy SINQ+t5 - sty $ff + adc SINQ,y + //SEG108 [77] (signed byte~) prepare_matrix::$26 ← (signed byte~) prepare_matrix::$25 - *((const signed byte*) SINQ#0 + (signed byte) prepare_matrix::t5#0) [ prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$26 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$26 ] ) -- vbsaa=vbsaa_minus_pbsc1_derefidx_vbsz1 + ldy t5 sec - sbc $ff - //SEG83 [56] (signed byte~) prepare_matrix::$27 ← (signed byte~) prepare_matrix::$26 - *((const signed byte*) SINQ#0+(const signed byte) prepare_matrix::t8#0) [ prepare_matrix::$27 ] ( main:4::prepare_matrix:9 [ prepare_matrix::$27 ] ) -- vbsaa=vbsaa_minus__deref_pbsc1 - ldy SINQ+t8 - sty $ff + sbc SINQ,y + //SEG109 [78] (signed byte~) prepare_matrix::$27 ← (signed byte~) prepare_matrix::$26 - *((const signed byte*) SINQ#0 + (signed byte) prepare_matrix::t8#0) [ prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$27 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$27 ] ) -- vbsaa=vbsaa_minus_pbsc1_derefidx_vbsz1 + ldy t8 sec - sbc $ff - //SEG84 [57] (signed byte~) prepare_matrix::$28 ← (signed byte~) prepare_matrix::$27 - *((const signed byte*) SINQ#0+(const signed byte) prepare_matrix::t7#0) [ prepare_matrix::$28 ] ( main:4::prepare_matrix:9 [ prepare_matrix::$28 ] ) -- vbsaa=vbsaa_minus__deref_pbsc1 - ldy SINQ+t7 - sty $ff + sbc SINQ,y + //SEG110 [79] (signed byte~) prepare_matrix::$28 ← (signed byte~) prepare_matrix::$27 - *((const signed byte*) SINQ#0 + (signed byte) prepare_matrix::t7#0) [ prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$28 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$28 ] ) -- vbsaa=vbsaa_minus_pbsc1_derefidx_vbsz1 + ldy t7 sec - sbc $ff - //SEG85 [58] *((const signed byte[9]) rotation_matrix#0+(byte/signed byte/word/signed word/dword/signed dword) 6) ← (signed byte~) prepare_matrix::$28 [ ] ( main:4::prepare_matrix:9 [ ] ) -- _deref_pbsc1=vbsaa + sbc SINQ,y + //SEG111 [80] *((const signed byte[9]) rotation_matrix#0+(byte/signed byte/word/signed word/dword/signed dword) 6) ← (signed byte~) prepare_matrix::$28 [ prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::t3#0 prepare_matrix::t4#0 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 ] ) -- _deref_pbsc1=vbsaa sta rotation_matrix+6 - //SEG86 [59] (signed byte~) prepare_matrix::$29 ← *((const signed byte*) SINH#0+(const signed byte) prepare_matrix::t3#0) + *((const signed byte*) SINH#0+(const signed byte) prepare_matrix::t4#0) [ prepare_matrix::$29 ] ( main:4::prepare_matrix:9 [ prepare_matrix::$29 ] ) -- vbsz1=_deref_pbsc1_plus__deref_pbsc2 - lda SINH+t3 - ldy SINH+t4 - sty $ff + //SEG112 [81] (signed byte~) prepare_matrix::$29 ← *((const signed byte*) SINH#0 + (signed byte) prepare_matrix::t3#0) + *((const signed byte*) SINH#0 + (signed byte) prepare_matrix::t4#0) [ prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$29 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::t5#0 prepare_matrix::t6#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$29 ] ) -- vbsaa=pbsc1_derefidx_vbsz1_plus_pbsc1_derefidx_vbsz2 + ldx t3 + ldy t4 clc - adc $ff - sta _29 - //SEG87 [60] (signed byte~) prepare_matrix::$30 ← (signed byte~) prepare_matrix::$29 + *((const signed byte*) COSQ#0+(const signed byte) prepare_matrix::t6#0) [ prepare_matrix::$30 ] ( main:4::prepare_matrix:9 [ prepare_matrix::$30 ] ) -- vbsaa=vbsz1_plus__deref_pbsc1 - lda COSQ+t6 + lda SINH,x + adc SINH,y + //SEG113 [82] (signed byte~) prepare_matrix::$30 ← (signed byte~) prepare_matrix::$29 + *((const signed byte*) COSQ#0 + (signed byte) prepare_matrix::t6#0) [ prepare_matrix::t5#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$30 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::t5#0 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$30 ] ) -- vbsaa=vbsaa_plus_pbsc1_derefidx_vbsz1 + ldy t6 clc - adc _29 - //SEG88 [61] (signed byte~) prepare_matrix::$31 ← (signed byte~) prepare_matrix::$30 - *((const signed byte*) COSQ#0+(const signed byte) prepare_matrix::t5#0) [ prepare_matrix::$31 ] ( main:4::prepare_matrix:9 [ prepare_matrix::$31 ] ) -- vbsz1=vbsaa_minus__deref_pbsc1 - ldy COSQ+t5 - sty $ff + adc COSQ,y + //SEG114 [83] (signed byte~) prepare_matrix::$31 ← (signed byte~) prepare_matrix::$30 - *((const signed byte*) COSQ#0 + (signed byte) prepare_matrix::t5#0) [ prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$31 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::t7#0 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$31 ] ) -- vbsaa=vbsaa_minus_pbsc1_derefidx_vbsz1 + ldy t5 sec - sbc $ff - sta _31 - //SEG89 [62] (signed byte~) prepare_matrix::$32 ← (signed byte~) prepare_matrix::$31 + *((const signed byte*) COSQ#0+(const signed byte) prepare_matrix::t7#0) [ prepare_matrix::$32 ] ( main:4::prepare_matrix:9 [ prepare_matrix::$32 ] ) -- vbsaa=vbsz1_plus__deref_pbsc1 - lda COSQ+t7 + sbc COSQ,y + //SEG115 [84] (signed byte~) prepare_matrix::$32 ← (signed byte~) prepare_matrix::$31 + *((const signed byte*) COSQ#0 + (signed byte) prepare_matrix::t7#0) [ prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$32 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::t8#0 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$32 ] ) -- vbsaa=vbsaa_plus_pbsc1_derefidx_vbsz1 + ldy t7 clc - adc _31 - //SEG90 [63] (signed byte~) prepare_matrix::$33 ← (signed byte~) prepare_matrix::$32 - *((const signed byte*) COSQ#0+(const signed byte) prepare_matrix::t8#0) [ prepare_matrix::$33 ] ( main:4::prepare_matrix:9 [ prepare_matrix::$33 ] ) -- vbsaa=vbsaa_minus__deref_pbsc1 - ldy COSQ+t8 - sty $ff + adc COSQ,y + //SEG116 [85] (signed byte~) prepare_matrix::$33 ← (signed byte~) prepare_matrix::$32 - *((const signed byte*) COSQ#0 + (signed byte) prepare_matrix::t8#0) [ prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$33 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::t9#0 prepare_matrix::t10#0 prepare_matrix::$33 ] ) -- vbsaa=vbsaa_minus_pbsc1_derefidx_vbsz1 + ldy t8 sec - sbc $ff - //SEG91 [64] *((const signed byte[9]) rotation_matrix#0+(byte/signed byte/word/signed word/dword/signed dword) 7) ← (signed byte~) prepare_matrix::$33 [ ] ( main:4::prepare_matrix:9 [ ] ) -- _deref_pbsc1=vbsaa + sbc COSQ,y + //SEG117 [86] *((const signed byte[9]) rotation_matrix#0+(byte/signed byte/word/signed word/dword/signed dword) 7) ← (signed byte~) prepare_matrix::$33 [ prepare_matrix::t9#0 prepare_matrix::t10#0 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::t9#0 prepare_matrix::t10#0 ] ) -- _deref_pbsc1=vbsaa sta rotation_matrix+7 - //SEG92 [65] (signed byte~) prepare_matrix::$34 ← *((const signed byte*) COSH#0+(const signed byte) prepare_matrix::t9#0) + *((const signed byte*) COSH#0+(const signed byte) prepare_matrix::t10#0) [ prepare_matrix::$34 ] ( main:4::prepare_matrix:9 [ prepare_matrix::$34 ] ) -- vbsaa=_deref_pbsc1_plus__deref_pbsc2 - lda COSH+t9 - ldy COSH+t10 - sty $ff + //SEG118 [87] (signed byte~) prepare_matrix::$34 ← *((const signed byte*) COSH#0 + (signed byte) prepare_matrix::t9#0) + *((const signed byte*) COSH#0 + (signed byte) prepare_matrix::t10#0) [ prepare_matrix::$34 ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 prepare_matrix::$34 ] ) -- vbsaa=pbsc1_derefidx_vbsz1_plus_pbsc1_derefidx_vbsz2 + ldx t9 + ldy t10 clc - adc $ff - //SEG93 [66] *((const signed byte[9]) rotation_matrix#0+(byte/signed byte/word/signed word/dword/signed dword) 8) ← (signed byte~) prepare_matrix::$34 [ ] ( main:4::prepare_matrix:9 [ ] ) -- _deref_pbsc1=vbsaa + lda COSH,x + adc COSH,y + //SEG119 [88] *((const signed byte[9]) rotation_matrix#0+(byte/signed byte/word/signed word/dword/signed dword) 8) ← (signed byte~) prepare_matrix::$34 [ ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 ] ) -- _deref_pbsc1=vbsaa sta rotation_matrix+8 - //SEG94 asm { ldarotation_matrix+0 starotate.A1+1 eor#$ff starotate.A2+1 ldarotation_matrix+1 starotate.B1+1 eor#$ff starotate.B2+1 ldarotation_matrix+2 starotate.C1+1 eor#$ff starotate.C2+1 ldarotation_matrix+3 starotate.D1+1 eor#$ff starotate.D2+1 ldarotation_matrix+4 starotate.E1+1 eor#$ff starotate.E2+1 ldarotation_matrix+5 starotate.F1+1 eor#$ff starotate.F2+1 ldarotation_matrix+6 starotate.G1+1 eor#$ff starotate.G2+1 ldarotation_matrix+7 starotate.H1+1 eor#$ff starotate.H2+1 ldarotation_matrix+8 starotate.I1+1 eor#$ff starotate.I2+1 } + //SEG120 asm { ldarotation_matrix+0 starotate.A1+1 eor#$ff starotate.A2+1 ldarotation_matrix+1 starotate.B1+1 eor#$ff starotate.B2+1 ldarotation_matrix+2 starotate.C1+1 eor#$ff starotate.C2+1 ldarotation_matrix+3 starotate.D1+1 eor#$ff starotate.D2+1 ldarotation_matrix+4 starotate.E1+1 eor#$ff starotate.E2+1 ldarotation_matrix+5 starotate.F1+1 eor#$ff starotate.F2+1 ldarotation_matrix+6 starotate.G1+1 eor#$ff starotate.G2+1 ldarotation_matrix+7 starotate.H1+1 eor#$ff starotate.H2+1 ldarotation_matrix+8 starotate.I1+1 eor#$ff starotate.I2+1 } lda rotation_matrix+0 sta rotate.A1+1 eor #$ff @@ -3116,59 +4497,85 @@ prepare_matrix: { sta rotate.I1+1 eor #$ff sta rotate.I2+1 - //SEG95 prepare_matrix::@return - //SEG96 [68] return [ ] ( main:4::prepare_matrix:9 [ ] ) + //SEG121 prepare_matrix::@return + //SEG122 [90] return [ ] ( main:5::prepare_matrix:17 [ main::sx#6 main::sy#5 main::sz#5 ] ) rts } -//SEG97 mulf_init +//SEG123 mulf_init mulf_init: { - .label sqr1 = 3 - .label add = 5 - //SEG98 [70] phi from mulf_init to mulf_init::@1 [phi:mulf_init->mulf_init::@1] - //SEG99 [70] phi (signed word) mulf_init::add#2 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:mulf_init->mulf_init::@1#0] -- vwsz1=vbuc1 + .label sqr1 = 6 + .label add = 8 + //SEG124 [92] phi from mulf_init to mulf_init::@1 [phi:mulf_init->mulf_init::@1] + //SEG125 [92] phi (signed word) mulf_init::add#2 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:mulf_init->mulf_init::@1#0] -- vwsz1=vbuc1 lda #<1 sta add lda #>1 sta add+1 - //SEG100 [70] phi (byte) mulf_init::i#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:mulf_init->mulf_init::@1#1] -- vbuxx=vbuc1 + //SEG126 [92] phi (byte) mulf_init::i#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:mulf_init->mulf_init::@1#1] -- vbuxx=vbuc1 tax - //SEG101 [70] phi (signed word) mulf_init::sqr1#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:mulf_init->mulf_init::@1#2] -- vwsz1=vbuc1 + //SEG127 [92] phi (signed word) mulf_init::sqr1#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:mulf_init->mulf_init::@1#2] -- vwsz1=vbuc1 sta sqr1 sta sqr1+1 - //SEG102 [70] phi from mulf_init::@1 to mulf_init::@1 [phi:mulf_init::@1->mulf_init::@1] - //SEG103 [70] phi (signed word) mulf_init::add#2 = (signed word) mulf_init::add#1 [phi:mulf_init::@1->mulf_init::@1#0] -- register_copy - //SEG104 [70] phi (byte) mulf_init::i#2 = (byte) mulf_init::i#1 [phi:mulf_init::@1->mulf_init::@1#1] -- register_copy - //SEG105 [70] phi (signed word) mulf_init::sqr1#2 = (signed word) mulf_init::sqr1#1 [phi:mulf_init::@1->mulf_init::@1#2] -- register_copy - //SEG106 mulf_init::@1 + //SEG128 [92] phi from mulf_init::@1 to mulf_init::@1 [phi:mulf_init::@1->mulf_init::@1] + //SEG129 [92] phi (signed word) mulf_init::add#2 = (signed word) mulf_init::add#1 [phi:mulf_init::@1->mulf_init::@1#0] -- register_copy + //SEG130 [92] phi (byte) mulf_init::i#2 = (byte) mulf_init::i#1 [phi:mulf_init::@1->mulf_init::@1#1] -- register_copy + //SEG131 [92] phi (signed word) mulf_init::sqr1#2 = (signed word) mulf_init::sqr1#1 [phi:mulf_init::@1->mulf_init::@1#2] -- register_copy + //SEG132 mulf_init::@1 b1: - //SEG107 [71] (byte~) mulf_init::$0 ← > (signed word) mulf_init::sqr1#2 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 mulf_init::$0 ] ( main:4::mulf_init:7 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 mulf_init::$0 ] ) -- vbuaa=_hi_vwsz1 + //SEG133 [93] (byte~) mulf_init::$0 ← > (signed word) mulf_init::sqr1#2 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 mulf_init::$0 ] ( main:5::mulf_init:10 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 mulf_init::$0 ] ) -- vbuaa=_hi_vwsz1 lda sqr1+1 - //SEG108 [72] *((const byte[512]) mulf_sqr1#0 + (byte) mulf_init::i#2) ← (byte~) mulf_init::$0 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 ] ( main:4::mulf_init:7 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 ] ) -- pbuc1_derefidx_vbuxx=vbuaa + //SEG134 [94] *((const byte[512]) mulf_sqr1#0 + (byte) mulf_init::i#2) ← (byte~) mulf_init::$0 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 ] ( main:5::mulf_init:10 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 ] ) -- pbuc1_derefidx_vbuxx=vbuaa sta mulf_sqr1,x - //SEG109 [73] (byte~) mulf_init::$1 ← - (byte) mulf_init::i#2 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 mulf_init::$1 ] ( main:4::mulf_init:7 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 mulf_init::$1 ] ) -- vbuyy=_neg_vbuxx + //SEG135 [95] (byte~) mulf_init::$2 ← > (signed word) mulf_init::sqr1#2 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 mulf_init::$2 ] ( main:5::mulf_init:10 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 mulf_init::$2 ] ) -- vbuaa=_hi_vwsz1 + //SEG136 [96] *((const byte[512]) mulf_sqr1#0+(word/signed word/dword/signed dword) 256 + (byte) mulf_init::i#2) ← (byte~) mulf_init::$2 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 ] ( main:5::mulf_init:10 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 ] ) -- pbuc1_derefidx_vbuxx=vbuaa + sta mulf_sqr1+$100,x + //SEG137 [97] (byte~) mulf_init::$3 ← - (byte) mulf_init::i#2 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 mulf_init::$3 ] ( main:5::mulf_init:10 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 mulf_init::$3 ] ) -- vbuyy=_neg_vbuxx txa eor #$ff clc adc #1 tay - //SEG110 [74] (byte~) mulf_init::$2 ← > (signed word) mulf_init::sqr1#2 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 mulf_init::$1 mulf_init::$2 ] ( main:4::mulf_init:7 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 mulf_init::$1 mulf_init::$2 ] ) -- vbuaa=_hi_vwsz1 + //SEG138 [98] (byte~) mulf_init::$4 ← > (signed word) mulf_init::sqr1#2 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 mulf_init::$3 mulf_init::$4 ] ( main:5::mulf_init:10 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 mulf_init::$3 mulf_init::$4 ] ) -- vbuaa=_hi_vwsz1 lda sqr1+1 - //SEG111 [75] *((const byte[512]) mulf_sqr1#0 + (byte~) mulf_init::$1) ← (byte~) mulf_init::$2 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 ] ( main:4::mulf_init:7 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 ] ) -- pbuc1_derefidx_vbuyy=vbuaa + //SEG139 [99] *((const byte[512]) mulf_sqr1#0 + (byte~) mulf_init::$3) ← (byte~) mulf_init::$4 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 ] ( main:5::mulf_init:10 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 ] ) -- pbuc1_derefidx_vbuyy=vbuaa sta mulf_sqr1,y - //SEG112 [76] (byte~) mulf_init::$4 ← > (signed word) mulf_init::sqr1#2 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 mulf_init::$4 ] ( main:4::mulf_init:7 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 mulf_init::$4 ] ) -- vbuaa=_hi_vwsz1 - //SEG113 [77] *((const byte[512]) mulf_sqr2#0+(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) mulf_init::i#2) ← (byte~) mulf_init::$4 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 ] ( main:4::mulf_init:7 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 ] ) -- pbuc1_derefidx_vbuxx=vbuaa + //SEG140 [100] (byte~) mulf_init::$6 ← - (byte) mulf_init::i#2 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 mulf_init::$6 ] ( main:5::mulf_init:10 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 mulf_init::$6 ] ) -- vbuyy=_neg_vbuxx + txa + eor #$ff + clc + adc #1 + tay + //SEG141 [101] (byte~) mulf_init::$7 ← > (signed word) mulf_init::sqr1#2 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 mulf_init::$6 mulf_init::$7 ] ( main:5::mulf_init:10 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 mulf_init::$6 mulf_init::$7 ] ) -- vbuaa=_hi_vwsz1 + lda sqr1+1 + //SEG142 [102] *((const byte[512]) mulf_sqr1#0+(word/signed word/dword/signed dword) 256 + (byte~) mulf_init::$6) ← (byte~) mulf_init::$7 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 ] ( main:5::mulf_init:10 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 ] ) -- pbuc1_derefidx_vbuyy=vbuaa + sta mulf_sqr1+$100,y + //SEG143 [103] (byte~) mulf_init::$9 ← > (signed word) mulf_init::sqr1#2 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 mulf_init::$9 ] ( main:5::mulf_init:10 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 mulf_init::$9 ] ) -- vbuaa=_hi_vwsz1 + //SEG144 [104] *((const byte[512]) mulf_sqr2#0+(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) mulf_init::i#2) ← (byte~) mulf_init::$9 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 ] ( main:5::mulf_init:10 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 ] ) -- pbuc1_derefidx_vbuxx=vbuaa sta mulf_sqr2+1,x - //SEG114 [78] (byte/signed word/word/dword/signed dword~) mulf_init::$5 ← (byte/signed byte/word/signed word/dword/signed dword) 1 - (byte) mulf_init::i#2 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 mulf_init::$5 ] ( main:4::mulf_init:7 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 mulf_init::$5 ] ) -- vbuyy=vbuc1_minus_vbuxx + //SEG145 [105] (byte~) mulf_init::$12 ← > (signed word) mulf_init::sqr1#2 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 mulf_init::$12 ] ( main:5::mulf_init:10 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 mulf_init::$12 ] ) -- vbuaa=_hi_vwsz1 + //SEG146 [106] *((const byte[512]) mulf_sqr2#0+(word/signed word/dword/signed dword) 256+(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) mulf_init::i#2) ← (byte~) mulf_init::$12 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 ] ( main:5::mulf_init:10 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 ] ) -- pbuc1_derefidx_vbuxx=vbuaa + sta mulf_sqr2+$100+1,x + //SEG147 [107] (byte/signed word/word/dword/signed dword~) mulf_init::$13 ← (byte/signed byte/word/signed word/dword/signed dword) 1 - (byte) mulf_init::i#2 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 mulf_init::$13 ] ( main:5::mulf_init:10 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 mulf_init::$13 ] ) -- vbuyy=vbuc1_minus_vbuxx txa eor #$ff clc adc #1+1 tay - //SEG115 [79] (byte~) mulf_init::$6 ← > (signed word) mulf_init::sqr1#2 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 mulf_init::$5 mulf_init::$6 ] ( main:4::mulf_init:7 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 mulf_init::$5 mulf_init::$6 ] ) -- vbuaa=_hi_vwsz1 + //SEG148 [108] (byte~) mulf_init::$14 ← > (signed word) mulf_init::sqr1#2 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 mulf_init::$13 mulf_init::$14 ] ( main:5::mulf_init:10 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 mulf_init::$13 mulf_init::$14 ] ) -- vbuaa=_hi_vwsz1 lda sqr1+1 - //SEG116 [80] *((const byte[512]) mulf_sqr2#0 + (byte/signed word/word/dword/signed dword~) mulf_init::$5) ← (byte~) mulf_init::$6 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 ] ( main:4::mulf_init:7 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 ] ) -- pbuc1_derefidx_vbuyy=vbuaa + //SEG149 [109] *((const byte[512]) mulf_sqr2#0 + (byte/signed word/word/dword/signed dword~) mulf_init::$13) ← (byte~) mulf_init::$14 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 ] ( main:5::mulf_init:10 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 ] ) -- pbuc1_derefidx_vbuyy=vbuaa sta mulf_sqr2,y - //SEG117 [81] (signed word) mulf_init::sqr1#1 ← (signed word) mulf_init::sqr1#2 + (signed word) mulf_init::add#2 [ mulf_init::i#2 mulf_init::add#2 mulf_init::sqr1#1 ] ( main:4::mulf_init:7 [ mulf_init::i#2 mulf_init::add#2 mulf_init::sqr1#1 ] ) -- vwsz1=vwsz1_plus_vwsz2 + //SEG150 [110] (byte/signed word/word/dword/signed dword~) mulf_init::$16 ← (byte/signed byte/word/signed word/dword/signed dword) 1 - (byte) mulf_init::i#2 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 mulf_init::$16 ] ( main:5::mulf_init:10 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 mulf_init::$16 ] ) -- vbuyy=vbuc1_minus_vbuxx + txa + eor #$ff + clc + adc #1+1 + tay + //SEG151 [111] (byte~) mulf_init::$17 ← > (signed word) mulf_init::sqr1#2 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 mulf_init::$16 mulf_init::$17 ] ( main:5::mulf_init:10 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 mulf_init::$16 mulf_init::$17 ] ) -- vbuaa=_hi_vwsz1 + lda sqr1+1 + //SEG152 [112] *((const byte[512]) mulf_sqr2#0+(word/signed word/dword/signed dword) 256 + (byte/signed word/word/dword/signed dword~) mulf_init::$16) ← (byte~) mulf_init::$17 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 ] ( main:5::mulf_init:10 [ mulf_init::sqr1#2 mulf_init::i#2 mulf_init::add#2 ] ) -- pbuc1_derefidx_vbuyy=vbuaa + sta mulf_sqr2+$100,y + //SEG153 [113] (signed word) mulf_init::sqr1#1 ← (signed word) mulf_init::sqr1#2 + (signed word) mulf_init::add#2 [ mulf_init::i#2 mulf_init::add#2 mulf_init::sqr1#1 ] ( main:5::mulf_init:10 [ mulf_init::i#2 mulf_init::add#2 mulf_init::sqr1#1 ] ) -- vwsz1=vwsz1_plus_vwsz2 lda sqr1 clc adc add @@ -3176,7 +4583,7 @@ mulf_init: { lda sqr1+1 adc add+1 sta sqr1+1 - //SEG118 [82] (signed word) mulf_init::add#1 ← (signed word) mulf_init::add#2 + (byte/signed byte/word/signed word/dword/signed dword) 2 [ mulf_init::i#2 mulf_init::sqr1#1 mulf_init::add#1 ] ( main:4::mulf_init:7 [ mulf_init::i#2 mulf_init::sqr1#1 mulf_init::add#1 ] ) -- vwsz1=vwsz1_plus_2 + //SEG154 [114] (signed word) mulf_init::add#1 ← (signed word) mulf_init::add#2 + (byte/signed byte/word/signed word/dword/signed dword) 2 [ mulf_init::i#2 mulf_init::sqr1#1 mulf_init::add#1 ] ( main:5::mulf_init:10 [ mulf_init::i#2 mulf_init::sqr1#1 mulf_init::add#1 ] ) -- vwsz1=vwsz1_plus_2 lda add clc adc #2 @@ -3184,13 +4591,41 @@ mulf_init: { bcc !+ inc add+1 !: - //SEG119 [83] (byte) mulf_init::i#1 ← ++ (byte) mulf_init::i#2 [ mulf_init::sqr1#1 mulf_init::i#1 mulf_init::add#1 ] ( main:4::mulf_init:7 [ mulf_init::sqr1#1 mulf_init::i#1 mulf_init::add#1 ] ) -- vbuxx=_inc_vbuxx + //SEG155 [115] (byte) mulf_init::i#1 ← ++ (byte) mulf_init::i#2 [ mulf_init::sqr1#1 mulf_init::i#1 mulf_init::add#1 ] ( main:5::mulf_init:10 [ mulf_init::sqr1#1 mulf_init::i#1 mulf_init::add#1 ] ) -- vbuxx=_inc_vbuxx inx - //SEG120 [84] if((byte) mulf_init::i#1!=(byte/word/signed word/dword/signed dword) 129) goto mulf_init::@1 [ mulf_init::sqr1#1 mulf_init::i#1 mulf_init::add#1 ] ( main:4::mulf_init:7 [ mulf_init::sqr1#1 mulf_init::i#1 mulf_init::add#1 ] ) -- vbuxx_neq_vbuc1_then_la1 + //SEG156 [116] if((byte) mulf_init::i#1!=(byte/word/signed word/dword/signed dword) 129) goto mulf_init::@1 [ mulf_init::sqr1#1 mulf_init::i#1 mulf_init::add#1 ] ( main:5::mulf_init:10 [ mulf_init::sqr1#1 mulf_init::i#1 mulf_init::add#1 ] ) -- vbuxx_neq_vbuc1_then_la1 cpx #$81 bne b1 - //SEG121 mulf_init::@return - //SEG122 [85] return [ ] ( main:4::mulf_init:7 [ ] ) + //SEG157 mulf_init::@return + //SEG158 [117] return [ ] ( main:5::mulf_init:10 [ ] ) + rts +} +//SEG159 sprites_init +sprites_init: { + .label sprites_ptr = SCREEN+$3f8 + //SEG160 [118] *((const byte*) SPRITES_ENABLE#0) ← (byte/word/signed word/dword/signed dword) 255 [ ] ( main:5::sprites_init:8 [ ] ) -- _deref_pbuc1=vbuc2 + lda #$ff + sta SPRITES_ENABLE + //SEG161 [119] phi from sprites_init to sprites_init::@1 [phi:sprites_init->sprites_init::@1] + //SEG162 [119] phi (byte) sprites_init::i#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:sprites_init->sprites_init::@1#0] -- vbuxx=vbuc1 + ldx #0 + //SEG163 [119] phi from sprites_init::@1 to sprites_init::@1 [phi:sprites_init::@1->sprites_init::@1] + //SEG164 [119] phi (byte) sprites_init::i#2 = (byte) sprites_init::i#1 [phi:sprites_init::@1->sprites_init::@1#0] -- register_copy + //SEG165 sprites_init::@1 + b1: + //SEG166 [120] *((const byte*) sprites_init::sprites_ptr#0 + (byte) sprites_init::i#2) ← ((byte))(const byte*) SPRITE#0/(byte/signed byte/word/signed word/dword/signed dword) 64 [ sprites_init::i#2 ] ( main:5::sprites_init:8 [ sprites_init::i#2 ] ) -- pbuc1_derefidx_vbuxx=vbuc2 + lda #$ff&SPRITE/$40 + sta sprites_ptr,x + //SEG167 [121] *((const byte*) SPRITES_COLS#0 + (byte) sprites_init::i#2) ← (const byte) GREEN#0 [ sprites_init::i#2 ] ( main:5::sprites_init:8 [ sprites_init::i#2 ] ) -- pbuc1_derefidx_vbuxx=vbuc2 + lda #GREEN + sta SPRITES_COLS,x + //SEG168 [122] (byte) sprites_init::i#1 ← ++ (byte) sprites_init::i#2 [ sprites_init::i#1 ] ( main:5::sprites_init:8 [ sprites_init::i#1 ] ) -- vbuxx=_inc_vbuxx + inx + //SEG169 [123] if((byte) sprites_init::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 8) goto sprites_init::@1 [ sprites_init::i#1 ] ( main:5::sprites_init:8 [ sprites_init::i#1 ] ) -- vbuxx_neq_vbuc1_then_la1 + cpx #8 + bne b1 + //SEG170 sprites_init::@return + //SEG171 [124] return [ ] ( main:5::sprites_init:8 [ ] ) rts } .align $100 @@ -3198,6 +4633,15 @@ mulf_init: { .align $100 mulf_sqr2: .fill $200, 0 rotation_matrix: .fill 9, 0 + xs: .byte -$3f, -$3f, -$3f, -$3f, $3f, $3f, $3f, $3f + ys: .byte -$3f, -$3f, $3f, $3f, -$3f, -$3f, $3f, $3f + zs: .byte -$3f, $3f, -$3f, $3f, -$3f, $3f, -$3f, $3f +.pc = SPRITE "Inline" + .var pic = LoadPicture("balloon.png", List().add($000000, $ffffff)) + .for (var y=0; y<21; y++) + .for (var x=0;x<3; x++) + .byte pic.getSinglecolorByte(x,y) + .pc = COSH "Inline" { .var min = -$1fff diff --git a/src/test/ref/examples/3d/3d.sym b/src/test/ref/examples/3d/3d.sym index 6bf433e79..f26d46f7a 100644 --- a/src/test/ref/examples/3d/3d.sym +++ b/src/test/ref/examples/3d/3d.sym @@ -1,5 +1,5 @@ (label) @3 -(label) @7 +(label) @8 (label) @begin (label) @end (byte*) BORDERCOL @@ -8,41 +8,83 @@ (const signed byte*) COSH#0 COSH = ((signed byte*))(word/signed word/dword/signed dword) 8192 (signed byte*) COSQ (const signed byte*) COSQ#0 COSQ = ((signed byte*))(word/signed word/dword/signed dword) 8704 +(byte) GREEN +(const byte) GREEN#0 GREEN = (byte/signed byte/word/signed word/dword/signed dword) 5 (byte) LIGHT_BLUE (const byte) LIGHT_BLUE#0 LIGHT_BLUE = (byte/signed byte/word/signed word/dword/signed dword) 14 (byte*) RASTER (const byte*) RASTER#0 RASTER = ((byte*))(word/dword/signed dword) 53266 +(byte*) SCREEN +(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) 1024 (signed byte*) SINH (const signed byte*) SINH#0 SINH = (const signed byte*) COSH#0+(byte/signed byte/word/signed word/dword/signed dword) 64 (signed byte*) SINQ (const signed byte*) SINQ#0 SINQ = (const signed byte*) COSQ#0+(byte/signed byte/word/signed word/dword/signed dword) 64 +(byte*) SPRITE +(const byte*) SPRITE#0 SPRITE = ((byte*))(word/signed word/dword/signed dword) 12288 +(byte*) SPRITES_COLS +(const byte*) SPRITES_COLS#0 SPRITES_COLS = ((byte*))(word/dword/signed dword) 53287 +(byte*) SPRITES_ENABLE +(const byte*) SPRITES_ENABLE#0 SPRITES_ENABLE = ((byte*))(word/dword/signed dword) 53269 +(byte*) SPRITES_XPOS +(const byte*) SPRITES_XPOS#0 SPRITES_XPOS = ((byte*))(word/dword/signed dword) 53248 +(byte*) SPRITES_YPOS +(const byte*) SPRITES_YPOS#0 SPRITES_YPOS = ((byte*))(word/dword/signed dword) 53249 (void()) main() -(label) main::@13 +(byte/word/signed word/dword/signed dword~) main::$11 reg byte a 202.0 +(signed byte~) main::$12 reg byte a 101.0 +(byte/word/signed word/dword/signed dword~) main::$14 reg byte a 202.0 +(byte~) main::$4 reg byte a 22.0 +(signed byte~) main::$9 reg byte a 101.0 +(label) main::@1 +(label) main::@14 (label) main::@15 -(label) main::@16 (label) main::@17 +(label) main::@19 +(label) main::@20 (label) main::@4 (label) main::@6 -(byte*) main::SCREEN -(const byte*) main::SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) 1024 +(label) main::@7 +(label) main::@8 +(byte) main::i +(byte) main::i#1 i zp ZP_BYTE:5 151.5 +(byte) main::i#2 i zp ZP_BYTE:5 46.61538461538461 +(byte) main::i2 +(byte) main::i2#0 reg byte x 50.5 +(signed byte) main::sx +(signed byte) main::sx#1 sx zp ZP_BYTE:2 22.0 +(signed byte) main::sx#12 sx zp ZP_BYTE:2 1.9411764705882355 +(signed byte) main::sx#6 sx zp ZP_BYTE:2 4.0 +(signed byte) main::sy +(signed byte) main::sy#1 sy zp ZP_BYTE:3 1.5 +(signed byte) main::sy#5 sy zp ZP_BYTE:3 4.714285714285714 +(signed byte) main::sz +(signed byte) main::sz#1 sz zp ZP_BYTE:4 1.0476190476190477 +(signed byte) main::sz#5 sz zp ZP_BYTE:4 4.125 (void()) mulf_init() (byte~) mulf_init::$0 reg byte a 22.0 -(byte~) mulf_init::$1 reg byte y 11.0 +(byte~) mulf_init::$12 reg byte a 22.0 +(byte/signed word/word/dword/signed dword~) mulf_init::$13 reg byte y 11.0 +(byte~) mulf_init::$14 reg byte a 22.0 +(byte/signed word/word/dword/signed dword~) mulf_init::$16 reg byte y 11.0 +(byte~) mulf_init::$17 reg byte a 22.0 (byte~) mulf_init::$2 reg byte a 22.0 +(byte~) mulf_init::$3 reg byte y 11.0 (byte~) mulf_init::$4 reg byte a 22.0 -(byte/signed word/word/dword/signed dword~) mulf_init::$5 reg byte y 11.0 -(byte~) mulf_init::$6 reg byte a 22.0 +(byte~) mulf_init::$6 reg byte y 11.0 +(byte~) mulf_init::$7 reg byte a 22.0 +(byte~) mulf_init::$9 reg byte a 22.0 (label) mulf_init::@1 (label) mulf_init::@return (signed word) mulf_init::add -(signed word) mulf_init::add#1 add zp ZP_WORD:5 7.333333333333333 -(signed word) mulf_init::add#2 add zp ZP_WORD:5 2.75 +(signed word) mulf_init::add#1 add zp ZP_WORD:8 7.333333333333333 +(signed word) mulf_init::add#2 add zp ZP_WORD:8 1.5 (byte) mulf_init::i (byte) mulf_init::i#1 reg byte x 16.5 -(byte) mulf_init::i#2 reg byte x 5.076923076923077 +(byte) mulf_init::i#2 reg byte x 4.782608695652174 (signed word) mulf_init::sqr1 -(signed word) mulf_init::sqr1#1 sqr1 zp ZP_WORD:3 5.5 -(signed word) mulf_init::sqr1#2 sqr1 zp ZP_WORD:3 6.0 +(signed word) mulf_init::sqr1#1 sqr1 zp ZP_WORD:6 5.5 +(signed word) mulf_init::sqr1#2 sqr1 zp ZP_WORD:6 5.238095238095238 (byte[512]) mulf_sqr1 (const byte[512]) mulf_sqr1#0 mulf_sqr1 = { fill( 512, 0) } (byte[512]) mulf_sqr2 @@ -51,100 +93,147 @@ (signed byte~) prepare_matrix::$10 reg byte a 4.0 (signed byte~) prepare_matrix::$11 reg byte a 4.0 (signed byte~) prepare_matrix::$12 reg byte a 4.0 -(signed byte~) prepare_matrix::$13 $13 zp ZP_BYTE:2 4.0 +(signed byte~) prepare_matrix::$13 reg byte a 4.0 (signed byte~) prepare_matrix::$14 reg byte a 4.0 -(signed byte~) prepare_matrix::$15 $15 zp ZP_BYTE:2 4.0 +(signed byte~) prepare_matrix::$15 reg byte a 4.0 (signed byte~) prepare_matrix::$16 reg byte a 4.0 (signed byte~) prepare_matrix::$17 reg byte a 4.0 -(signed byte~) prepare_matrix::$18 $18 zp ZP_BYTE:2 4.0 +(signed byte~) prepare_matrix::$18 reg byte a 4.0 (signed byte~) prepare_matrix::$19 reg byte a 4.0 (signed byte~) prepare_matrix::$20 reg byte a 4.0 (signed byte~) prepare_matrix::$21 reg byte a 4.0 (signed byte~) prepare_matrix::$22 reg byte a 4.0 (signed byte~) prepare_matrix::$23 reg byte a 4.0 -(signed byte~) prepare_matrix::$24 $24 zp ZP_BYTE:2 4.0 +(signed byte~) prepare_matrix::$24 reg byte a 4.0 (signed byte~) prepare_matrix::$25 reg byte a 4.0 (signed byte~) prepare_matrix::$26 reg byte a 4.0 (signed byte~) prepare_matrix::$27 reg byte a 4.0 (signed byte~) prepare_matrix::$28 reg byte a 4.0 -(signed byte~) prepare_matrix::$29 $29 zp ZP_BYTE:2 4.0 +(signed byte~) prepare_matrix::$29 reg byte a 4.0 (signed byte~) prepare_matrix::$30 reg byte a 4.0 -(signed byte~) prepare_matrix::$31 $31 zp ZP_BYTE:2 4.0 +(signed byte~) prepare_matrix::$31 reg byte a 4.0 (signed byte~) prepare_matrix::$32 reg byte a 4.0 (signed byte~) prepare_matrix::$33 reg byte a 4.0 (signed byte~) prepare_matrix::$34 reg byte a 4.0 (label) prepare_matrix::@return (signed byte) prepare_matrix::sx -(const signed byte) prepare_matrix::sx#0 sx = (byte/signed byte/word/signed word/dword/signed dword) 0 +(signed byte) prepare_matrix::sx#0 reg byte y 2.25 (signed byte) prepare_matrix::sy -(const signed byte) prepare_matrix::sy#0 sy = (byte/signed byte/word/signed word/dword/signed dword) 0 +(signed byte) prepare_matrix::sy#0 sy zp ZP_BYTE:3 1.4375 (signed byte) prepare_matrix::sz -(const signed byte) prepare_matrix::sz#0 sz = (byte/signed byte/word/signed word/dword/signed dword) 0 +(signed byte) prepare_matrix::sz#0 reg byte x 4.75 (signed byte) prepare_matrix::t1 -(const signed byte) prepare_matrix::t1#0 t1 = (const signed byte) prepare_matrix::sy#0-(const signed byte) prepare_matrix::sz#0 +(signed byte) prepare_matrix::t1#0 t1 zp ZP_BYTE:5 0.8333333333333333 (signed byte) prepare_matrix::t10 -(const signed byte) prepare_matrix::t10#0 t10 = (const signed byte) prepare_matrix::sy#0+(const signed byte) prepare_matrix::sx#0 +(signed byte) prepare_matrix::t10#0 t10 zp ZP_BYTE:18 0.18181818181818182 (signed byte) prepare_matrix::t2 -(const signed byte) prepare_matrix::t2#0 t2 = (const signed byte) prepare_matrix::sy#0+(const signed byte) prepare_matrix::sz#0 +(signed byte) prepare_matrix::t2#0 t2 zp ZP_BYTE:10 0.9090909090909092 (signed byte) prepare_matrix::t3 -(const signed byte) prepare_matrix::t3#0 t3 = (const signed byte) prepare_matrix::sx#0+(const signed byte) prepare_matrix::sz#0 +(signed byte) prepare_matrix::t3#0 t3 zp ZP_BYTE:11 0.29411764705882354 (signed byte) prepare_matrix::t4 -(const signed byte) prepare_matrix::t4#0 t4 = (const signed byte) prepare_matrix::sx#0-(const signed byte) prepare_matrix::sz#0 +(signed byte) prepare_matrix::t4#0 t4 zp ZP_BYTE:12 0.30303030303030304 (signed byte) prepare_matrix::t5 -(const signed byte) prepare_matrix::t5#0 t5 = (const signed byte) prepare_matrix::sx#0+(const signed byte) prepare_matrix::t2#0 +(signed byte) prepare_matrix::t5#0 t5 zp ZP_BYTE:13 0.29411764705882354 (signed byte) prepare_matrix::t6 -(const signed byte) prepare_matrix::t6#0 t6 = (const signed byte) prepare_matrix::sx#0-(const signed byte) prepare_matrix::t1#0 +(signed byte) prepare_matrix::t6#0 t6 zp ZP_BYTE:14 0.3125 (signed byte) prepare_matrix::t7 -(const signed byte) prepare_matrix::t7#0 t7 = (const signed byte) prepare_matrix::sx#0+(const signed byte) prepare_matrix::t1#0 +(signed byte) prepare_matrix::t7#0 t7 zp ZP_BYTE:15 0.30303030303030304 (signed byte) prepare_matrix::t8 -(const signed byte) prepare_matrix::t8#0 t8 = (const signed byte) prepare_matrix::t2#0-(const signed byte) prepare_matrix::sx#0 +(signed byte) prepare_matrix::t8#0 t8 zp ZP_BYTE:16 0.30303030303030304 (signed byte) prepare_matrix::t9 -(const signed byte) prepare_matrix::t9#0 t9 = (const signed byte) prepare_matrix::sy#0-(const signed byte) prepare_matrix::sx#0 +(signed byte) prepare_matrix::t9#0 t9 zp ZP_BYTE:17 0.1764705882352941 (void()) rotate((signed byte) rotate::x , (signed byte) rotate::y , (signed byte) rotate::z) (label) rotate::@return (signed byte) rotate::x -(signed byte) rotate::x#3 reg byte y 2.0 +(signed byte) rotate::x#0 x zp ZP_BYTE:10 34.33333333333333 (signed byte) rotate::y -(signed byte) rotate::y#3 reg byte x 1.0 +(signed byte) rotate::y#0 reg byte y 34.33333333333333 (signed byte) rotate::z -(signed byte) rotate::z#3 z zp ZP_BYTE:2 0.6666666666666666 +(signed byte) rotate::z#0 reg byte x 34.33333333333333 (signed byte[9]) rotation_matrix (const signed byte[9]) rotation_matrix#0 rotation_matrix = { fill( 9, 0) } +(void()) sprites_init() +(label) sprites_init::@1 +(label) sprites_init::@return +(byte) sprites_init::i +(byte) sprites_init::i#1 reg byte x 16.5 +(byte) sprites_init::i#2 reg byte x 14.666666666666666 +(byte*) sprites_init::sprites_ptr +(const byte*) sprites_init::sprites_ptr#0 sprites_ptr = (const byte*) SCREEN#0+(word/signed word/dword/signed dword) 1016 (signed byte*) xr (const signed byte*) xr#0 xr = ((signed byte*))(byte/word/signed word/dword/signed dword) 240 +(signed byte[8]) xs +(const signed byte[8]) xs#0 xs = { -(byte/signed byte/word/signed word/dword/signed dword) 63, -(byte/signed byte/word/signed word/dword/signed dword) 63, -(byte/signed byte/word/signed word/dword/signed dword) 63, -(byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63 } (signed byte*) yr (const signed byte*) yr#0 yr = ((signed byte*))(byte/word/signed word/dword/signed dword) 241 +(signed byte[8]) ys +(const signed byte[8]) ys#0 ys = { -(byte/signed byte/word/signed word/dword/signed dword) 63, -(byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, -(byte/signed byte/word/signed word/dword/signed dword) 63, -(byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63 } (signed byte*) zr (const signed byte*) zr#0 zr = ((signed byte*))(byte/word/signed word/dword/signed dword) 242 +(signed byte[8]) zs +(const signed byte[8]) zs#0 zs = { -(byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, -(byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, -(byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, -(byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63 } -reg byte y [ rotate::x#3 ] -reg byte x [ rotate::y#3 ] -zp ZP_BYTE:2 [ rotate::z#3 prepare_matrix::$13 prepare_matrix::$15 prepare_matrix::$18 prepare_matrix::$24 prepare_matrix::$29 prepare_matrix::$31 ] -zp ZP_WORD:3 [ mulf_init::sqr1#2 mulf_init::sqr1#1 ] +zp ZP_BYTE:2 [ main::sx#6 main::sx#12 main::sx#1 ] +zp ZP_BYTE:3 [ main::sy#5 main::sy#1 prepare_matrix::sy#0 ] +zp ZP_BYTE:4 [ main::sz#5 main::sz#1 ] +zp ZP_BYTE:5 [ main::i#2 main::i#1 prepare_matrix::t1#0 ] +zp ZP_WORD:6 [ mulf_init::sqr1#2 mulf_init::sqr1#1 ] reg byte x [ mulf_init::i#2 mulf_init::i#1 ] -zp ZP_WORD:5 [ mulf_init::add#2 mulf_init::add#1 ] +zp ZP_WORD:8 [ mulf_init::add#2 mulf_init::add#1 ] +reg byte x [ sprites_init::i#2 sprites_init::i#1 ] +reg byte y [ prepare_matrix::sx#0 ] +reg byte x [ prepare_matrix::sz#0 ] +reg byte a [ main::$4 ] +zp ZP_BYTE:10 [ rotate::x#0 prepare_matrix::t2#0 ] +reg byte y [ rotate::y#0 ] +reg byte x [ rotate::z#0 ] +reg byte x [ main::i2#0 ] +reg byte a [ main::$9 ] +reg byte a [ main::$11 ] +reg byte a [ main::$12 ] +reg byte a [ main::$14 ] +zp ZP_BYTE:11 [ prepare_matrix::t3#0 ] +zp ZP_BYTE:12 [ prepare_matrix::t4#0 ] +zp ZP_BYTE:13 [ prepare_matrix::t5#0 ] +zp ZP_BYTE:14 [ prepare_matrix::t6#0 ] +zp ZP_BYTE:15 [ prepare_matrix::t7#0 ] +zp ZP_BYTE:16 [ prepare_matrix::t8#0 ] +zp ZP_BYTE:17 [ prepare_matrix::t9#0 ] +zp ZP_BYTE:18 [ prepare_matrix::t10#0 ] reg byte a [ prepare_matrix::$10 ] reg byte a [ prepare_matrix::$11 ] reg byte a [ prepare_matrix::$12 ] +reg byte a [ prepare_matrix::$13 ] reg byte a [ prepare_matrix::$14 ] +reg byte a [ prepare_matrix::$15 ] reg byte a [ prepare_matrix::$16 ] reg byte a [ prepare_matrix::$17 ] +reg byte a [ prepare_matrix::$18 ] reg byte a [ prepare_matrix::$19 ] reg byte a [ prepare_matrix::$20 ] reg byte a [ prepare_matrix::$21 ] reg byte a [ prepare_matrix::$22 ] reg byte a [ prepare_matrix::$23 ] +reg byte a [ prepare_matrix::$24 ] reg byte a [ prepare_matrix::$25 ] reg byte a [ prepare_matrix::$26 ] reg byte a [ prepare_matrix::$27 ] reg byte a [ prepare_matrix::$28 ] +reg byte a [ prepare_matrix::$29 ] reg byte a [ prepare_matrix::$30 ] +reg byte a [ prepare_matrix::$31 ] reg byte a [ prepare_matrix::$32 ] reg byte a [ prepare_matrix::$33 ] reg byte a [ prepare_matrix::$34 ] reg byte a [ mulf_init::$0 ] -reg byte y [ mulf_init::$1 ] reg byte a [ mulf_init::$2 ] +reg byte y [ mulf_init::$3 ] reg byte a [ mulf_init::$4 ] -reg byte y [ mulf_init::$5 ] -reg byte a [ mulf_init::$6 ] +reg byte y [ mulf_init::$6 ] +reg byte a [ mulf_init::$7 ] +reg byte a [ mulf_init::$9 ] +reg byte a [ mulf_init::$12 ] +reg byte y [ mulf_init::$13 ] +reg byte a [ mulf_init::$14 ] +reg byte y [ mulf_init::$16 ] +reg byte a [ mulf_init::$17 ] diff --git a/src/test/ref/test-multiply-16bit.cfg b/src/test/ref/test-multiply-16bit.cfg index 1967e3f3b..744b18f72 100644 --- a/src/test/ref/test-multiply-16bit.cfg +++ b/src/test/ref/test-multiply-16bit.cfg @@ -1,13 +1,13 @@ @begin: scope:[] from [0] phi() [ ] ( ) - to:@37 -@37: scope:[] from @begin + to:@35 +@35: scope:[] from @begin [1] phi() [ ] ( ) [2] call main [ ] ( ) to:@end -@end: scope:[] from @37 +@end: scope:[] from @35 [3] phi() [ ] ( ) -main: scope:[main] from @37 +main: scope:[main] from @35 [4] *((const byte*) BGCOL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 5 [ ] ( main:2 [ ] ) [5] call print_cls [ ] ( main:2 [ ] ) to:main::@1 diff --git a/src/test/ref/test-multiply-16bit.log b/src/test/ref/test-multiply-16bit.log index 97bf7b76c..013b706dd 100644 --- a/src/test/ref/test-multiply-16bit.log +++ b/src/test/ref/test-multiply-16bit.log @@ -349,7 +349,7 @@ mul16s::@return: scope:[mul16s] from mul16s::@2 (byte[512]) mulf_sqr1_hi#0 ← { fill( 512, 0) } (byte[512]) mulf_sqr2_lo#0 ← { fill( 512, 0) } (byte[512]) mulf_sqr2_hi#0 ← { fill( 512, 0) } - to:@30 + to:@28 mulf_init: scope:[mulf_init] from main::@1 (word) mulf_init::sqr#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 (byte) mulf_init::x_2#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 @@ -520,17 +520,17 @@ mulf16s::@return: scope:[mulf16s] from mulf16s::@2 (signed dword) mulf16s::return#1 ← (signed dword) mulf16s::return#3 return to:@return -@30: scope:[] from @19 +@28: scope:[] from @19 (byte*) print_screen#6 ← phi( @19/(byte*) print_screen#7 ) (byte*) print_char_cursor#157 ← phi( @19/(byte*) print_char_cursor#158 ) (byte*) print_line_cursor#61 ← phi( @19/(byte*) print_line_cursor#62 ) (byte*) BGCOL#0 ← ((byte*)) (word/dword/signed dword) 53281 - to:@37 -main: scope:[main] from @37 - (byte*) print_char_cursor#137 ← phi( @37/(byte*) print_char_cursor#147 ) - (byte*) print_line_cursor#44 ← phi( @37/(byte*) print_line_cursor#54 ) - (byte*) print_screen#4 ← phi( @37/(byte*) print_screen#5 ) - (byte*) BGCOL#1 ← phi( @37/(byte*) BGCOL#4 ) + to:@35 +main: scope:[main] from @35 + (byte*) print_char_cursor#137 ← phi( @35/(byte*) print_char_cursor#147 ) + (byte*) print_line_cursor#44 ← phi( @35/(byte*) print_line_cursor#54 ) + (byte*) print_screen#4 ← phi( @35/(byte*) print_screen#5 ) + (byte*) BGCOL#1 ← phi( @35/(byte*) BGCOL#4 ) *((byte*) BGCOL#1) ← (byte/signed byte/word/signed word/dword/signed dword) 5 call print_cls to:main::@1 @@ -1366,28 +1366,28 @@ mul16s_error::@return: scope:[mul16s_error] from mul16s_error::@11 (byte*) print_line_cursor#20 ← (byte*) print_line_cursor#41 return to:@return -@37: scope:[] from @30 - (byte*) print_screen#5 ← phi( @30/(byte*) print_screen#6 ) - (byte*) print_char_cursor#147 ← phi( @30/(byte*) print_char_cursor#157 ) - (byte*) print_line_cursor#54 ← phi( @30/(byte*) print_line_cursor#61 ) - (byte*) BGCOL#4 ← phi( @30/(byte*) BGCOL#0 ) +@35: scope:[] from @28 + (byte*) print_screen#5 ← phi( @28/(byte*) print_screen#6 ) + (byte*) print_char_cursor#147 ← phi( @28/(byte*) print_char_cursor#157 ) + (byte*) print_line_cursor#54 ← phi( @28/(byte*) print_line_cursor#61 ) + (byte*) BGCOL#4 ← phi( @28/(byte*) BGCOL#0 ) call main - to:@38 -@38: scope:[] from @37 - (byte*) print_char_cursor#127 ← phi( @37/(byte*) print_char_cursor#27 ) - (byte*) print_line_cursor#42 ← phi( @37/(byte*) print_line_cursor#8 ) + to:@36 +@36: scope:[] from @35 + (byte*) print_char_cursor#127 ← phi( @35/(byte*) print_char_cursor#27 ) + (byte*) print_line_cursor#42 ← phi( @35/(byte*) print_line_cursor#8 ) (byte*) print_line_cursor#21 ← (byte*) print_line_cursor#42 (byte*) print_char_cursor#64 ← (byte*) print_char_cursor#127 to:@end -@end: scope:[] from @38 +@end: scope:[] from @36 SYMBOL TABLE SSA (const string) $0 = (string) "0123456789abcdef" (label) @10 (label) @19 -(label) @30 -(label) @37 -(label) @38 +(label) @28 +(label) @35 +(label) @36 (label) @begin (label) @end (byte*) BGCOL @@ -3113,7 +3113,7 @@ Culled Empty Block (label) print_cls::@2 Culled Empty Block (label) mul16u::@3 Culled Empty Block (label) @19 Culled Empty Block (label) mulf_init::@6 -Culled Empty Block (label) @30 +Culled Empty Block (label) @28 Culled Empty Block (label) main::@4 Culled Empty Block (label) muls16u::@3 Culled Empty Block (label) muls16s::@1 @@ -3127,7 +3127,7 @@ Culled Empty Block (label) mul16s_compare::@12 Culled Empty Block (label) mul16s_compare::@16 Culled Empty Block (label) mul16s_compare::@19 Culled Empty Block (label) mul16s_error::@11 -Culled Empty Block (label) @38 +Culled Empty Block (label) @36 Successful SSA optimization Pass2CullEmptyBlocks Self Phi Eliminated (byte*) BGCOL#21 Self Phi Eliminated (byte*) print_line_cursor#90 @@ -3271,7 +3271,7 @@ Added new block during phi lifting mulf_init::@11(between mulf_init::@4 and mulf Added new block during phi lifting mulf_init::@12(between mulf_init::@3 and mulf_init::@4) Added new block during phi lifting print_cls::@3(between print_cls::@1 and print_cls::@1) Adding NOP phi() at start of @begin -Adding NOP phi() at start of @37 +Adding NOP phi() at start of @35 Adding NOP phi() at start of @end Adding NOP phi() at start of main::@1 Adding NOP phi() at start of main::@2 @@ -3461,7 +3461,7 @@ Culled Empty Block (label) mulf_init::@9 Culled Empty Block (label) mulf_init::@10 Culled Empty Block (label) print_cls::@3 Adding NOP phi() at start of @begin -Adding NOP phi() at start of @37 +Adding NOP phi() at start of @35 Adding NOP phi() at start of @end Adding NOP phi() at start of main::@1 Adding NOP phi() at start of main::@2 @@ -3496,14 +3496,14 @@ Adding NOP phi() at start of print_cls FINAL CONTROL FLOW GRAPH @begin: scope:[] from [0] phi() [ ] ( ) - to:@37 -@37: scope:[] from @begin + to:@35 +@35: scope:[] from @begin [1] phi() [ ] ( ) [2] call main [ ] ( ) to:@end -@end: scope:[] from @37 +@end: scope:[] from @35 [3] phi() [ ] ( ) -main: scope:[main] from @37 +main: scope:[main] from @35 [4] *((const byte*) BGCOL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 5 [ ] ( main:2 [ ] ) [5] call print_cls [ ] ( main:2 [ ] ) to:main::@1 @@ -4697,15 +4697,15 @@ INITIAL ASM .label print_line_cursor = 9 //SEG2 @begin bbegin: -//SEG3 [1] phi from @begin to @37 [phi:@begin->@37] -b37_from_bbegin: - jmp b37 -//SEG4 @37 -b37: +//SEG3 [1] phi from @begin to @35 [phi:@begin->@35] +b35_from_bbegin: + jmp b35 +//SEG4 @35 +b35: //SEG5 [2] call main [ ] ( ) jsr main -//SEG6 [3] phi from @37 to @end [phi:@37->@end] -bend_from_b37: +//SEG6 [3] phi from @35 to @end [phi:@35->@end] +bend_from_b35: jmp bend //SEG7 @end bend: @@ -7670,15 +7670,15 @@ ASSEMBLER BEFORE OPTIMIZATION .label print_line_cursor = 7 //SEG2 @begin bbegin: -//SEG3 [1] phi from @begin to @37 [phi:@begin->@37] -b37_from_bbegin: - jmp b37 -//SEG4 @37 -b37: +//SEG3 [1] phi from @begin to @35 [phi:@begin->@35] +b35_from_bbegin: + jmp b35 +//SEG4 @35 +b35: //SEG5 [2] call main [ ] ( ) jsr main -//SEG6 [3] phi from @37 to @end [phi:@37->@end] -bend_from_b37: +//SEG6 [3] phi from @35 to @end [phi:@35->@end] +bend_from_b35: jmp bend //SEG7 @end bend: @@ -9824,7 +9824,7 @@ print_cls: { mulf_sqr2_hi: .fill $200, 0 ASSEMBLER OPTIMIZATIONS -Removing instruction jmp b37 +Removing instruction jmp b35 Removing instruction jmp bend Removing instruction jmp b1 Removing instruction jmp b2 @@ -9990,8 +9990,8 @@ Replacing label b3_from_b4 with b3 Replacing label b1_from_b1 with b1 Replacing label b1_from_b1 with b1 Removing instruction bbegin: -Removing instruction b37_from_bbegin: -Removing instruction bend_from_b37: +Removing instruction b35_from_bbegin: +Removing instruction bend_from_b35: Removing instruction b1_from_main: Removing instruction mulf_init_from_b1: Removing instruction b2_from_b1: @@ -10078,7 +10078,7 @@ Removing instruction b12_from_b3: Removing instruction b4_from_b12: Removing instruction b1_from_b1: Succesful ASM optimization Pass5RedundantLabelElimination -Removing instruction b37: +Removing instruction b35: Removing instruction bend: Removing instruction print_cls_from_main: Removing instruction b1: @@ -10236,7 +10236,7 @@ Fixing long branch [109] bne b1 to beq Fixing long branch [811] bne b1 to beq FINAL SYMBOL TABLE -(label) @37 +(label) @35 (label) @begin (label) @end (byte*) BGCOL @@ -10709,11 +10709,11 @@ Score: 444925 .label print_char_cursor = $f .label print_line_cursor = 7 //SEG2 @begin -//SEG3 [1] phi from @begin to @37 [phi:@begin->@37] -//SEG4 @37 +//SEG3 [1] phi from @begin to @35 [phi:@begin->@35] +//SEG4 @35 //SEG5 [2] call main [ ] ( ) jsr main -//SEG6 [3] phi from @37 to @end [phi:@37->@end] +//SEG6 [3] phi from @35 to @end [phi:@35->@end] //SEG7 @end //SEG8 main main: { diff --git a/src/test/ref/test-multiply-16bit.sym b/src/test/ref/test-multiply-16bit.sym index b08c3cfe6..ad44bddc0 100644 --- a/src/test/ref/test-multiply-16bit.sym +++ b/src/test/ref/test-multiply-16bit.sym @@ -1,4 +1,4 @@ -(label) @37 +(label) @35 (label) @begin (label) @end (byte*) BGCOL diff --git a/src/test/ref/test-multiply-8bit.cfg b/src/test/ref/test-multiply-8bit.cfg index 1691be6f7..ead8882c8 100644 --- a/src/test/ref/test-multiply-8bit.cfg +++ b/src/test/ref/test-multiply-8bit.cfg @@ -1,13 +1,13 @@ @begin: scope:[] from [0] phi() [ ] ( ) - to:@39 -@39: scope:[] from @begin + to:@37 +@37: scope:[] from @begin [1] phi() [ ] ( ) [2] call main [ ] ( ) to:@end -@end: scope:[] from @39 +@end: scope:[] from @37 [3] phi() [ ] ( ) -main: scope:[main] from @39 +main: scope:[main] from @37 [4] *((const byte*) BGCOL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 5 [ ] ( main:2 [ ] ) [5] call print_cls [ ] ( main:2 [ ] ) to:main::@1 diff --git a/src/test/ref/test-multiply-8bit.log b/src/test/ref/test-multiply-8bit.log index fae3e4f6a..52a18cb04 100644 --- a/src/test/ref/test-multiply-8bit.log +++ b/src/test/ref/test-multiply-8bit.log @@ -325,7 +325,7 @@ mul8s::@return: scope:[mul8s] from mul8s::@2 (byte[512]) mulf_sqr1_hi#0 ← { fill( 512, 0) } (byte[512]) mulf_sqr2_lo#0 ← { fill( 512, 0) } (byte[512]) mulf_sqr2_hi#0 ← { fill( 512, 0) } - to:@30 + to:@28 mulf_init: scope:[mulf_init] from main::@1 (word) mulf_init::sqr#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 (byte) mulf_init::x_2#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 @@ -549,17 +549,17 @@ mulf8s::@return: scope:[mulf8s] from mulf8s::@4 (signed word) mulf8s::return#1 ← (signed word) mulf8s::return#3 return to:@return -@30: scope:[] from @19 +@28: scope:[] from @19 (byte*) print_screen#7 ← phi( @19/(byte*) print_screen#8 ) (byte*) print_char_cursor#160 ← phi( @19/(byte*) print_char_cursor#168 ) (byte*) print_line_cursor#67 ← phi( @19/(byte*) print_line_cursor#78 ) (byte*) BGCOL#0 ← ((byte*)) (word/dword/signed dword) 53281 - to:@33 -main: scope:[main] from @39 - (byte*) print_char_cursor#138 ← phi( @39/(byte*) print_char_cursor#148 ) - (byte*) print_line_cursor#46 ← phi( @39/(byte*) print_line_cursor#56 ) - (byte*) print_screen#4 ← phi( @39/(byte*) print_screen#5 ) - (byte*) BGCOL#1 ← phi( @39/(byte*) BGCOL#5 ) + to:@31 +main: scope:[main] from @37 + (byte*) print_char_cursor#138 ← phi( @37/(byte*) print_char_cursor#148 ) + (byte*) print_line_cursor#46 ← phi( @37/(byte*) print_line_cursor#56 ) + (byte*) print_screen#4 ← phi( @37/(byte*) print_screen#5 ) + (byte*) BGCOL#1 ← phi( @37/(byte*) BGCOL#5 ) *((byte*) BGCOL#1) ← (byte/signed byte/word/signed word/dword/signed dword) 5 call print_cls to:main::@1 @@ -707,16 +707,16 @@ muls8s::@return: scope:[muls8s] from muls8s::@4 (signed word) muls8s::return#1 ← (signed word) muls8s::return#3 return to:@return -@33: scope:[] from @30 - (byte*) print_screen#6 ← phi( @30/(byte*) print_screen#7 ) - (byte*) print_char_cursor#159 ← phi( @30/(byte*) print_char_cursor#160 ) - (byte*) print_line_cursor#66 ← phi( @30/(byte*) print_line_cursor#67 ) - (byte*) BGCOL#15 ← phi( @30/(byte*) BGCOL#0 ) +@31: scope:[] from @28 + (byte*) print_screen#6 ← phi( @28/(byte*) print_screen#7 ) + (byte*) print_char_cursor#159 ← phi( @28/(byte*) print_char_cursor#160 ) + (byte*) print_line_cursor#66 ← phi( @28/(byte*) print_line_cursor#67 ) + (byte*) BGCOL#15 ← phi( @28/(byte*) BGCOL#0 ) (byte[512]) mula_sqr1_lo#0 ← { fill( 512, 0) } (byte[512]) mula_sqr1_hi#0 ← { fill( 512, 0) } (byte[512]) mula_sqr2_lo#0 ← { fill( 512, 0) } (byte[512]) mula_sqr2_hi#0 ← { fill( 512, 0) } - to:@39 + to:@37 mulf_init_asm: scope:[mulf_init_asm] from main::@2 asm { ldx#$00 txa .byte$c9 lb1: tya adc#$00 ml1: stamula_sqr1_hi,x tay cmp#$40 txa ror ml9: adc#$00 staml9+1 inx ml0: stamula_sqr1_lo,x bnelb1 incml0+2 incml1+2 clc iny bnelb1 ldx#$00 ldy#$ff !: ldamula_sqr1_hi+1,x stamula_sqr2_hi+$100,x ldamula_sqr1_hi,x stamula_sqr2_hi,y ldamula_sqr1_lo+1,x stamula_sqr2_lo+$100,x ldamula_sqr1_lo,x stamula_sqr2_lo,y dey inx bne!- } (byte*) mulf_init_asm::mem#0 ← ((byte*)) (byte/word/signed word/dword/signed dword) 255 @@ -1437,29 +1437,29 @@ mul8s_error::@return: scope:[mul8s_error] from mul8s_error::@11 (byte*) print_line_cursor#21 ← (byte*) print_line_cursor#43 return to:@return -@39: scope:[] from @33 - (byte*) print_screen#5 ← phi( @33/(byte*) print_screen#6 ) - (byte*) print_char_cursor#148 ← phi( @33/(byte*) print_char_cursor#159 ) - (byte*) print_line_cursor#56 ← phi( @33/(byte*) print_line_cursor#66 ) - (byte*) BGCOL#5 ← phi( @33/(byte*) BGCOL#15 ) +@37: scope:[] from @31 + (byte*) print_screen#5 ← phi( @31/(byte*) print_screen#6 ) + (byte*) print_char_cursor#148 ← phi( @31/(byte*) print_char_cursor#159 ) + (byte*) print_line_cursor#56 ← phi( @31/(byte*) print_line_cursor#66 ) + (byte*) BGCOL#5 ← phi( @31/(byte*) BGCOL#15 ) call main - to:@40 -@40: scope:[] from @39 - (byte*) print_char_cursor#129 ← phi( @39/(byte*) print_char_cursor#25 ) - (byte*) print_line_cursor#44 ← phi( @39/(byte*) print_line_cursor#9 ) + to:@38 +@38: scope:[] from @37 + (byte*) print_char_cursor#129 ← phi( @37/(byte*) print_char_cursor#25 ) + (byte*) print_line_cursor#44 ← phi( @37/(byte*) print_line_cursor#9 ) (byte*) print_line_cursor#22 ← (byte*) print_line_cursor#44 (byte*) print_char_cursor#65 ← (byte*) print_char_cursor#129 to:@end -@end: scope:[] from @40 +@end: scope:[] from @38 SYMBOL TABLE SSA (const string) $0 = (string) "0123456789abcdef" (label) @10 (label) @19 -(label) @30 -(label) @33 -(label) @39 -(label) @40 +(label) @28 +(label) @31 +(label) @37 +(label) @38 (label) @begin (label) @end (byte*) BGCOL @@ -3239,13 +3239,13 @@ Culled Empty Block (label) mul8u::@3 Culled Empty Block (label) @19 Culled Empty Block (label) mulf_init::@6 Culled Empty Block (label) mulf8s::@3 -Culled Empty Block (label) @30 +Culled Empty Block (label) @28 Culled Empty Block (label) main::@6 Culled Empty Block (label) muls8u::@3 Culled Empty Block (label) muls8s::@1 Culled Empty Block (label) muls8s::@2 Culled Empty Block (label) muls8s::@7 -Culled Empty Block (label) @33 +Culled Empty Block (label) @31 Culled Empty Block (label) mulf_tables_cmp::@9 Culled Empty Block (label) mulf_tables_cmp::@11 Culled Empty Block (label) mul8u_compare::@15 @@ -3254,7 +3254,7 @@ Culled Empty Block (label) mul8u_error::@11 Culled Empty Block (label) mul8s_compare::@15 Culled Empty Block (label) mul8s_compare::@17 Culled Empty Block (label) mul8s_error::@11 -Culled Empty Block (label) @40 +Culled Empty Block (label) @38 Successful SSA optimization Pass2CullEmptyBlocks Alias (word) mulf8u_prepared::return#0 = (word~) mulf8u_prepared::$0 Successful SSA optimization Pass2AliasElimination @@ -3407,7 +3407,7 @@ Added new block during phi lifting mulf_init::@11(between mulf_init::@4 and mulf Added new block during phi lifting mulf_init::@12(between mulf_init::@3 and mulf_init::@4) Added new block during phi lifting print_cls::@3(between print_cls::@1 and print_cls::@1) Adding NOP phi() at start of @begin -Adding NOP phi() at start of @39 +Adding NOP phi() at start of @37 Adding NOP phi() at start of @end Adding NOP phi() at start of main::@1 Adding NOP phi() at start of main::@2 @@ -3591,7 +3591,7 @@ Culled Empty Block (label) mulf_init::@9 Culled Empty Block (label) mulf_init::@10 Culled Empty Block (label) print_cls::@3 Adding NOP phi() at start of @begin -Adding NOP phi() at start of @39 +Adding NOP phi() at start of @37 Adding NOP phi() at start of @end Adding NOP phi() at start of main::@1 Adding NOP phi() at start of main::@2 @@ -3632,14 +3632,14 @@ Adding NOP phi() at start of print_cls FINAL CONTROL FLOW GRAPH @begin: scope:[] from [0] phi() [ ] ( ) - to:@39 -@39: scope:[] from @begin + to:@37 +@37: scope:[] from @begin [1] phi() [ ] ( ) [2] call main [ ] ( ) to:@end -@end: scope:[] from @39 +@end: scope:[] from @37 [3] phi() [ ] ( ) -main: scope:[main] from @39 +main: scope:[main] from @37 [4] *((const byte*) BGCOL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 5 [ ] ( main:2 [ ] ) [5] call print_cls [ ] ( main:2 [ ] ) to:main::@1 @@ -4908,15 +4908,15 @@ INITIAL ASM .label print_line_cursor = 5 //SEG2 @begin bbegin: -//SEG3 [1] phi from @begin to @39 [phi:@begin->@39] -b39_from_bbegin: - jmp b39 -//SEG4 @39 -b39: +//SEG3 [1] phi from @begin to @37 [phi:@begin->@37] +b37_from_bbegin: + jmp b37 +//SEG4 @37 +b37: //SEG5 [2] call main [ ] ( ) jsr main -//SEG6 [3] phi from @39 to @end [phi:@39->@end] -bend_from_b39: +//SEG6 [3] phi from @37 to @end [phi:@37->@end] +bend_from_b37: jmp bend //SEG7 @end bend: @@ -7615,15 +7615,15 @@ ASSEMBLER BEFORE OPTIMIZATION .label print_line_cursor = 4 //SEG2 @begin bbegin: -//SEG3 [1] phi from @begin to @39 [phi:@begin->@39] -b39_from_bbegin: - jmp b39 -//SEG4 @39 -b39: +//SEG3 [1] phi from @begin to @37 [phi:@begin->@37] +b37_from_bbegin: + jmp b37 +//SEG4 @37 +b37: //SEG5 [2] call main [ ] ( ) jsr main -//SEG6 [3] phi from @39 to @end [phi:@39->@end] -bend_from_b39: +//SEG6 [3] phi from @37 to @end [phi:@37->@end] +bend_from_b37: jmp bend //SEG7 @end bend: @@ -9629,7 +9629,7 @@ print_cls: { mula_sqr2_hi: .fill $200, 0 ASSEMBLER OPTIMIZATIONS -Removing instruction jmp b39 +Removing instruction jmp b37 Removing instruction jmp bend Removing instruction jmp b1 Removing instruction jmp b2 @@ -9805,8 +9805,8 @@ Replacing label b3_from_b4 with b3 Replacing label b1_from_b1 with b1 Replacing label b1_from_b1 with b1 Removing instruction bbegin: -Removing instruction b39_from_bbegin: -Removing instruction bend_from_b39: +Removing instruction b37_from_bbegin: +Removing instruction bend_from_b37: Removing instruction b1_from_main: Removing instruction mulf_init_from_b1: Removing instruction b2_from_b1: @@ -9901,7 +9901,7 @@ Removing instruction b12_from_b3: Removing instruction b4_from_b12: Removing instruction b1_from_b1: Succesful ASM optimization Pass5RedundantLabelElimination -Removing instruction b39: +Removing instruction b37: Removing instruction bend: Removing instruction print_cls_from_main: Removing instruction b1: @@ -10075,7 +10075,7 @@ Removing unreachable instruction jmp b4 Succesful ASM optimization Pass5UnreachableCodeElimination FINAL SYMBOL TABLE -(label) @39 +(label) @37 (label) @begin (label) @end (byte*) BGCOL @@ -10600,11 +10600,11 @@ Score: 224667 .label print_char_cursor = $a .label print_line_cursor = 4 //SEG2 @begin -//SEG3 [1] phi from @begin to @39 [phi:@begin->@39] -//SEG4 @39 +//SEG3 [1] phi from @begin to @37 [phi:@begin->@37] +//SEG4 @37 //SEG5 [2] call main [ ] ( ) jsr main -//SEG6 [3] phi from @39 to @end [phi:@39->@end] +//SEG6 [3] phi from @37 to @end [phi:@37->@end] //SEG7 @end //SEG8 main main: { diff --git a/src/test/ref/test-multiply-8bit.sym b/src/test/ref/test-multiply-8bit.sym index d9a7b5248..386c3776b 100644 --- a/src/test/ref/test-multiply-8bit.sym +++ b/src/test/ref/test-multiply-8bit.sym @@ -1,4 +1,4 @@ -(label) @39 +(label) @37 (label) @begin (label) @end (byte*) BGCOL