1
0
mirror of https://gitlab.com/camelot/kickc.git synced 2024-10-10 20:23:47 +00:00

Optimized rotation position calculation

This commit is contained in:
jespergravgaard 2018-10-19 02:26:42 +02:00
parent 908cb3ea8d
commit 2f1f530128
5 changed files with 820 additions and 912 deletions

View File

@ -56,10 +56,11 @@ void anim() {
yr += mulf8s_prepared(x)<<1; // signed fixed[8.8] yr += mulf8s_prepared(x)<<1; // signed fixed[8.8]
signed word xpos = ((signed byte) >xr) + 89 + 24 + 60; signed word xpos = ((signed byte) >xr) + 89 + 24 + 60;
signed word ypos = ((signed byte) >yr) + 89 + 51;
SPRITES_XPOS[0] = <xpos; SPRITES_XPOS[0] = <xpos;
*SPRITES_XMSB = >xpos; *SPRITES_XMSB = >xpos;
SPRITES_YPOS[0] = <ypos; //signed word ypos = ((signed byte) >yr) + 89 + 51;
byte ypos = (>yr) + 89 + 51;
SPRITES_YPOS[0] = ypos;
angle++; angle++;
(*BORDERCOL)--; (*BORDERCOL)--;
} }

View File

@ -32,7 +32,6 @@ anim: {
.label xr = 5 .label xr = 5
.label yr = 7 .label yr = 7
.label xpos = 3 .label xpos = 3
.label ypos = 5
ldy #0 ldy #0
b4: b4:
lda RASTER lda RASTER
@ -99,25 +98,13 @@ anim: {
lda xpos+1 lda xpos+1
adc #0 adc #0
sta xpos+1 sta xpos+1
lda yr+1
sta ypos
ora #$7f
bmi !+
lda #0
!:
sta ypos+1
lda ypos
clc
adc #$59+$33
sta ypos
lda ypos+1
adc #0
sta ypos+1
lda xpos lda xpos
sta SPRITES_XPOS sta SPRITES_XPOS
lda xpos+1 lda xpos+1
sta SPRITES_XMSB sta SPRITES_XMSB
lda ypos lda yr+1
clc
adc #$59+$33
sta SPRITES_YPOS sta SPRITES_YPOS
iny iny
dec BORDERCOL dec BORDERCOL

View File

@ -86,137 +86,135 @@ anim::@20: scope:[anim] from anim::@19
[38] (byte~) anim::$14 ← > (signed word) anim::xr#1 [ anim::angle#12 anim::yr#1 anim::$14 ] ( main:3::anim:8 [ anim::angle#12 anim::yr#1 anim::$14 ] ) [38] (byte~) anim::$14 ← > (signed word) anim::xr#1 [ anim::angle#12 anim::yr#1 anim::$14 ] ( main:3::anim:8 [ anim::angle#12 anim::yr#1 anim::$14 ] )
[39] (signed byte~) anim::$17 ← (signed byte)(byte~) anim::$14 [ anim::angle#12 anim::yr#1 anim::$17 ] ( main:3::anim:8 [ anim::angle#12 anim::yr#1 anim::$17 ] ) [39] (signed byte~) anim::$17 ← (signed byte)(byte~) anim::$14 [ anim::angle#12 anim::yr#1 anim::$17 ] ( main:3::anim:8 [ anim::angle#12 anim::yr#1 anim::$17 ] )
[40] (signed word) anim::xpos#0 ← (signed byte~) anim::$17 + (byte/signed byte/word/signed word/dword/signed dword) 89+(byte/signed byte/word/signed word/dword/signed dword) 24+(byte/signed byte/word/signed word/dword/signed dword) 60 [ anim::angle#12 anim::yr#1 anim::xpos#0 ] ( main:3::anim:8 [ anim::angle#12 anim::yr#1 anim::xpos#0 ] ) [40] (signed word) anim::xpos#0 ← (signed byte~) anim::$17 + (byte/signed byte/word/signed word/dword/signed dword) 89+(byte/signed byte/word/signed word/dword/signed dword) 24+(byte/signed byte/word/signed word/dword/signed dword) 60 [ anim::angle#12 anim::yr#1 anim::xpos#0 ] ( main:3::anim:8 [ anim::angle#12 anim::yr#1 anim::xpos#0 ] )
[41] (byte~) anim::$19 ← > (signed word) anim::yr#1 [ anim::angle#12 anim::xpos#0 anim::$19 ] ( main:3::anim:8 [ anim::angle#12 anim::xpos#0 anim::$19 ] ) [41] (byte~) anim::$19 ← < (signed word) anim::xpos#0 [ anim::angle#12 anim::yr#1 anim::xpos#0 anim::$19 ] ( main:3::anim:8 [ anim::angle#12 anim::yr#1 anim::xpos#0 anim::$19 ] )
[42] (signed byte~) anim::$21 ← (signed byte)(byte~) anim::$19 [ anim::angle#12 anim::xpos#0 anim::$21 ] ( main:3::anim:8 [ anim::angle#12 anim::xpos#0 anim::$21 ] ) [42] *((const byte*) SPRITES_XPOS#0) ← (byte~) anim::$19 [ anim::angle#12 anim::yr#1 anim::xpos#0 ] ( main:3::anim:8 [ anim::angle#12 anim::yr#1 anim::xpos#0 ] )
[43] (signed word) anim::ypos#0 ← (signed byte~) anim::$21 + (byte/signed byte/word/signed word/dword/signed dword) 89+(byte/signed byte/word/signed word/dword/signed dword) 51 [ anim::angle#12 anim::xpos#0 anim::ypos#0 ] ( main:3::anim:8 [ anim::angle#12 anim::xpos#0 anim::ypos#0 ] ) [43] (byte~) anim::$20 ← > (signed word) anim::xpos#0 [ anim::angle#12 anim::yr#1 anim::$20 ] ( main:3::anim:8 [ anim::angle#12 anim::yr#1 anim::$20 ] )
[44] (byte~) anim::$23 ← < (signed word) anim::xpos#0 [ anim::angle#12 anim::xpos#0 anim::ypos#0 anim::$23 ] ( main:3::anim:8 [ anim::angle#12 anim::xpos#0 anim::ypos#0 anim::$23 ] ) [44] *((const byte*) SPRITES_XMSB#0) ← (byte~) anim::$20 [ anim::angle#12 anim::yr#1 ] ( main:3::anim:8 [ anim::angle#12 anim::yr#1 ] )
[45] *((const byte*) SPRITES_XPOS#0) ← (byte~) anim::$23 [ anim::angle#12 anim::xpos#0 anim::ypos#0 ] ( main:3::anim:8 [ anim::angle#12 anim::xpos#0 anim::ypos#0 ] ) [45] (byte~) anim::$22 ← > (signed word) anim::yr#1 [ anim::angle#12 anim::$22 ] ( main:3::anim:8 [ anim::angle#12 anim::$22 ] )
[46] (byte~) anim::$24 ← > (signed word) anim::xpos#0 [ anim::angle#12 anim::ypos#0 anim::$24 ] ( main:3::anim:8 [ anim::angle#12 anim::ypos#0 anim::$24 ] ) [46] (byte) anim::ypos#0 ← (byte~) anim::$22 + (byte/signed byte/word/signed word/dword/signed dword) 89+(byte/signed byte/word/signed word/dword/signed dword) 51 [ anim::angle#12 anim::ypos#0 ] ( main:3::anim:8 [ anim::angle#12 anim::ypos#0 ] )
[47] *((const byte*) SPRITES_XMSB#0) ← (byte~) anim::$24 [ anim::angle#12 anim::ypos#0 ] ( main:3::anim:8 [ anim::angle#12 anim::ypos#0 ] ) [47] *((const byte*) SPRITES_YPOS#0) ← (byte) anim::ypos#0 [ anim::angle#12 ] ( main:3::anim:8 [ anim::angle#12 ] )
[48] (byte~) anim::$25 ← < (signed word) anim::ypos#0 [ anim::angle#12 anim::$25 ] ( main:3::anim:8 [ anim::angle#12 anim::$25 ] ) [48] (byte) anim::angle#1 ← ++ (byte) anim::angle#12 [ anim::angle#1 ] ( main:3::anim:8 [ anim::angle#1 ] )
[49] *((const byte*) SPRITES_YPOS#0) ← (byte~) anim::$25 [ anim::angle#12 ] ( main:3::anim:8 [ anim::angle#12 ] ) [49] *((const byte*) BORDERCOL#0) ← -- *((const byte*) BORDERCOL#0) [ anim::angle#1 ] ( main:3::anim:8 [ anim::angle#1 ] )
[50] (byte) anim::angle#1 ← ++ (byte) anim::angle#12 [ anim::angle#1 ] ( main:3::anim:8 [ anim::angle#1 ] )
[51] *((const byte*) BORDERCOL#0) ← -- *((const byte*) BORDERCOL#0) [ anim::angle#1 ] ( main:3::anim:8 [ anim::angle#1 ] )
to:anim::@1 to:anim::@1
mulf8s_prepared: scope:[mulf8s_prepared] from anim::@13 anim::@14 anim::@16 anim::@19 mulf8s_prepared: scope:[mulf8s_prepared] from anim::@13 anim::@14 anim::@16 anim::@19
[52] (signed byte) mulf8s_prepared::b#4 ← phi( anim::@13/(const signed byte) anim::x#0 anim::@14/(const signed byte) anim::y#0 anim::@16/(const signed byte) anim::y#0 anim::@19/(const signed byte) anim::x#0 ) [ mulf8s_prepared::b#4 ] ( main:3::anim:8::mulf8s_prepared:17 [ anim::angle#12 mulf8s_prepared::b#4 ] main:3::anim:8::mulf8s_prepared:21 [ anim::angle#12 anim::xr#0 mulf8s_prepared::b#4 ] main:3::anim:8::mulf8s_prepared:28 [ anim::angle#12 anim::xr#0 anim::yr#0 mulf8s_prepared::b#4 ] main:3::anim:8::mulf8s_prepared:33 [ anim::angle#12 anim::yr#0 anim::xr#1 mulf8s_prepared::b#4 ] ) [50] (signed byte) mulf8s_prepared::b#4 ← phi( anim::@13/(const signed byte) anim::x#0 anim::@14/(const signed byte) anim::y#0 anim::@16/(const signed byte) anim::y#0 anim::@19/(const signed byte) anim::x#0 ) [ mulf8s_prepared::b#4 ] ( main:3::anim:8::mulf8s_prepared:17 [ anim::angle#12 mulf8s_prepared::b#4 ] main:3::anim:8::mulf8s_prepared:21 [ anim::angle#12 anim::xr#0 mulf8s_prepared::b#4 ] main:3::anim:8::mulf8s_prepared:28 [ anim::angle#12 anim::xr#0 anim::yr#0 mulf8s_prepared::b#4 ] main:3::anim:8::mulf8s_prepared:33 [ anim::angle#12 anim::yr#0 anim::xr#1 mulf8s_prepared::b#4 ] )
[53] call mulf8u_prepared [ mulf8s_prepared::b#4 mulf8u_prepared::return#0 ] ( main:3::anim:8::mulf8s_prepared:17 [ anim::angle#12 mulf8s_prepared::b#4 mulf8u_prepared::return#0 ] main:3::anim:8::mulf8s_prepared:21 [ anim::angle#12 anim::xr#0 mulf8s_prepared::b#4 mulf8u_prepared::return#0 ] main:3::anim:8::mulf8s_prepared:28 [ anim::angle#12 anim::xr#0 anim::yr#0 mulf8s_prepared::b#4 mulf8u_prepared::return#0 ] main:3::anim:8::mulf8s_prepared:33 [ anim::angle#12 anim::yr#0 anim::xr#1 mulf8s_prepared::b#4 mulf8u_prepared::return#0 ] ) [51] call mulf8u_prepared [ mulf8s_prepared::b#4 mulf8u_prepared::return#0 ] ( main:3::anim:8::mulf8s_prepared:17 [ anim::angle#12 mulf8s_prepared::b#4 mulf8u_prepared::return#0 ] main:3::anim:8::mulf8s_prepared:21 [ anim::angle#12 anim::xr#0 mulf8s_prepared::b#4 mulf8u_prepared::return#0 ] main:3::anim:8::mulf8s_prepared:28 [ anim::angle#12 anim::xr#0 anim::yr#0 mulf8s_prepared::b#4 mulf8u_prepared::return#0 ] main:3::anim:8::mulf8s_prepared:33 [ anim::angle#12 anim::yr#0 anim::xr#1 mulf8s_prepared::b#4 mulf8u_prepared::return#0 ] )
[54] (word) mulf8u_prepared::return#2 ← (word) mulf8u_prepared::return#0 [ mulf8s_prepared::b#4 mulf8u_prepared::return#2 ] ( main:3::anim:8::mulf8s_prepared:17 [ anim::angle#12 mulf8s_prepared::b#4 mulf8u_prepared::return#2 ] main:3::anim:8::mulf8s_prepared:21 [ anim::angle#12 anim::xr#0 mulf8s_prepared::b#4 mulf8u_prepared::return#2 ] main:3::anim:8::mulf8s_prepared:28 [ anim::angle#12 anim::xr#0 anim::yr#0 mulf8s_prepared::b#4 mulf8u_prepared::return#2 ] main:3::anim:8::mulf8s_prepared:33 [ anim::angle#12 anim::yr#0 anim::xr#1 mulf8s_prepared::b#4 mulf8u_prepared::return#2 ] ) [52] (word) mulf8u_prepared::return#2 ← (word) mulf8u_prepared::return#0 [ mulf8s_prepared::b#4 mulf8u_prepared::return#2 ] ( main:3::anim:8::mulf8s_prepared:17 [ anim::angle#12 mulf8s_prepared::b#4 mulf8u_prepared::return#2 ] main:3::anim:8::mulf8s_prepared:21 [ anim::angle#12 anim::xr#0 mulf8s_prepared::b#4 mulf8u_prepared::return#2 ] main:3::anim:8::mulf8s_prepared:28 [ anim::angle#12 anim::xr#0 anim::yr#0 mulf8s_prepared::b#4 mulf8u_prepared::return#2 ] main:3::anim:8::mulf8s_prepared:33 [ anim::angle#12 anim::yr#0 anim::xr#1 mulf8s_prepared::b#4 mulf8u_prepared::return#2 ] )
to:mulf8s_prepared::@6 to:mulf8s_prepared::@6
mulf8s_prepared::@6: scope:[mulf8s_prepared] from mulf8s_prepared mulf8s_prepared::@6: scope:[mulf8s_prepared] from mulf8s_prepared
[55] (word) mulf8s_prepared::m#0 ← (word) mulf8u_prepared::return#2 [ mulf8s_prepared::b#4 mulf8s_prepared::m#0 ] ( main:3::anim:8::mulf8s_prepared:17 [ anim::angle#12 mulf8s_prepared::b#4 mulf8s_prepared::m#0 ] main:3::anim:8::mulf8s_prepared:21 [ anim::angle#12 anim::xr#0 mulf8s_prepared::b#4 mulf8s_prepared::m#0 ] main:3::anim:8::mulf8s_prepared:28 [ anim::angle#12 anim::xr#0 anim::yr#0 mulf8s_prepared::b#4 mulf8s_prepared::m#0 ] main:3::anim:8::mulf8s_prepared:33 [ anim::angle#12 anim::yr#0 anim::xr#1 mulf8s_prepared::b#4 mulf8s_prepared::m#0 ] ) [53] (word) mulf8s_prepared::m#0 ← (word) mulf8u_prepared::return#2 [ mulf8s_prepared::b#4 mulf8s_prepared::m#0 ] ( main:3::anim:8::mulf8s_prepared:17 [ anim::angle#12 mulf8s_prepared::b#4 mulf8s_prepared::m#0 ] main:3::anim:8::mulf8s_prepared:21 [ anim::angle#12 anim::xr#0 mulf8s_prepared::b#4 mulf8s_prepared::m#0 ] main:3::anim:8::mulf8s_prepared:28 [ anim::angle#12 anim::xr#0 anim::yr#0 mulf8s_prepared::b#4 mulf8s_prepared::m#0 ] main:3::anim:8::mulf8s_prepared:33 [ anim::angle#12 anim::yr#0 anim::xr#1 mulf8s_prepared::b#4 mulf8s_prepared::m#0 ] )
[56] if(*((const signed byte*) mulf8s_prepared::memA#0)>=(byte/signed byte/word/signed word/dword/signed dword) 0) goto mulf8s_prepared::@1 [ mulf8s_prepared::b#4 mulf8s_prepared::m#0 ] ( main:3::anim:8::mulf8s_prepared:17 [ anim::angle#12 mulf8s_prepared::b#4 mulf8s_prepared::m#0 ] main:3::anim:8::mulf8s_prepared:21 [ anim::angle#12 anim::xr#0 mulf8s_prepared::b#4 mulf8s_prepared::m#0 ] main:3::anim:8::mulf8s_prepared:28 [ anim::angle#12 anim::xr#0 anim::yr#0 mulf8s_prepared::b#4 mulf8s_prepared::m#0 ] main:3::anim:8::mulf8s_prepared:33 [ anim::angle#12 anim::yr#0 anim::xr#1 mulf8s_prepared::b#4 mulf8s_prepared::m#0 ] ) [54] if(*((const signed byte*) mulf8s_prepared::memA#0)>=(byte/signed byte/word/signed word/dword/signed dword) 0) goto mulf8s_prepared::@1 [ mulf8s_prepared::b#4 mulf8s_prepared::m#0 ] ( main:3::anim:8::mulf8s_prepared:17 [ anim::angle#12 mulf8s_prepared::b#4 mulf8s_prepared::m#0 ] main:3::anim:8::mulf8s_prepared:21 [ anim::angle#12 anim::xr#0 mulf8s_prepared::b#4 mulf8s_prepared::m#0 ] main:3::anim:8::mulf8s_prepared:28 [ anim::angle#12 anim::xr#0 anim::yr#0 mulf8s_prepared::b#4 mulf8s_prepared::m#0 ] main:3::anim:8::mulf8s_prepared:33 [ anim::angle#12 anim::yr#0 anim::xr#1 mulf8s_prepared::b#4 mulf8s_prepared::m#0 ] )
to:mulf8s_prepared::@3 to:mulf8s_prepared::@3
mulf8s_prepared::@3: scope:[mulf8s_prepared] from mulf8s_prepared::@6 mulf8s_prepared::@3: scope:[mulf8s_prepared] from mulf8s_prepared::@6
[57] (byte~) mulf8s_prepared::$5 ← > (word) mulf8s_prepared::m#0 [ mulf8s_prepared::b#4 mulf8s_prepared::m#0 mulf8s_prepared::$5 ] ( main:3::anim:8::mulf8s_prepared:17 [ anim::angle#12 mulf8s_prepared::b#4 mulf8s_prepared::m#0 mulf8s_prepared::$5 ] main:3::anim:8::mulf8s_prepared:21 [ anim::angle#12 anim::xr#0 mulf8s_prepared::b#4 mulf8s_prepared::m#0 mulf8s_prepared::$5 ] main:3::anim:8::mulf8s_prepared:28 [ anim::angle#12 anim::xr#0 anim::yr#0 mulf8s_prepared::b#4 mulf8s_prepared::m#0 mulf8s_prepared::$5 ] main:3::anim:8::mulf8s_prepared:33 [ anim::angle#12 anim::yr#0 anim::xr#1 mulf8s_prepared::b#4 mulf8s_prepared::m#0 mulf8s_prepared::$5 ] ) [55] (byte~) mulf8s_prepared::$5 ← > (word) mulf8s_prepared::m#0 [ mulf8s_prepared::b#4 mulf8s_prepared::m#0 mulf8s_prepared::$5 ] ( main:3::anim:8::mulf8s_prepared:17 [ anim::angle#12 mulf8s_prepared::b#4 mulf8s_prepared::m#0 mulf8s_prepared::$5 ] main:3::anim:8::mulf8s_prepared:21 [ anim::angle#12 anim::xr#0 mulf8s_prepared::b#4 mulf8s_prepared::m#0 mulf8s_prepared::$5 ] main:3::anim:8::mulf8s_prepared:28 [ anim::angle#12 anim::xr#0 anim::yr#0 mulf8s_prepared::b#4 mulf8s_prepared::m#0 mulf8s_prepared::$5 ] main:3::anim:8::mulf8s_prepared:33 [ anim::angle#12 anim::yr#0 anim::xr#1 mulf8s_prepared::b#4 mulf8s_prepared::m#0 mulf8s_prepared::$5 ] )
[58] (byte~) mulf8s_prepared::$15 ← (byte~) mulf8s_prepared::$5 - (byte)(signed byte) mulf8s_prepared::b#4 [ mulf8s_prepared::b#4 mulf8s_prepared::m#0 mulf8s_prepared::$15 ] ( main:3::anim:8::mulf8s_prepared:17 [ anim::angle#12 mulf8s_prepared::b#4 mulf8s_prepared::m#0 mulf8s_prepared::$15 ] main:3::anim:8::mulf8s_prepared:21 [ anim::angle#12 anim::xr#0 mulf8s_prepared::b#4 mulf8s_prepared::m#0 mulf8s_prepared::$15 ] main:3::anim:8::mulf8s_prepared:28 [ anim::angle#12 anim::xr#0 anim::yr#0 mulf8s_prepared::b#4 mulf8s_prepared::m#0 mulf8s_prepared::$15 ] main:3::anim:8::mulf8s_prepared:33 [ anim::angle#12 anim::yr#0 anim::xr#1 mulf8s_prepared::b#4 mulf8s_prepared::m#0 mulf8s_prepared::$15 ] ) [56] (byte~) mulf8s_prepared::$15 ← (byte~) mulf8s_prepared::$5 - (byte)(signed byte) mulf8s_prepared::b#4 [ mulf8s_prepared::b#4 mulf8s_prepared::m#0 mulf8s_prepared::$15 ] ( main:3::anim:8::mulf8s_prepared:17 [ anim::angle#12 mulf8s_prepared::b#4 mulf8s_prepared::m#0 mulf8s_prepared::$15 ] main:3::anim:8::mulf8s_prepared:21 [ anim::angle#12 anim::xr#0 mulf8s_prepared::b#4 mulf8s_prepared::m#0 mulf8s_prepared::$15 ] main:3::anim:8::mulf8s_prepared:28 [ anim::angle#12 anim::xr#0 anim::yr#0 mulf8s_prepared::b#4 mulf8s_prepared::m#0 mulf8s_prepared::$15 ] main:3::anim:8::mulf8s_prepared:33 [ anim::angle#12 anim::yr#0 anim::xr#1 mulf8s_prepared::b#4 mulf8s_prepared::m#0 mulf8s_prepared::$15 ] )
[59] (word) mulf8s_prepared::m#1 ← (word) mulf8s_prepared::m#0 hi= (byte~) mulf8s_prepared::$15 [ mulf8s_prepared::b#4 mulf8s_prepared::m#1 ] ( main:3::anim:8::mulf8s_prepared:17 [ anim::angle#12 mulf8s_prepared::b#4 mulf8s_prepared::m#1 ] main:3::anim:8::mulf8s_prepared:21 [ anim::angle#12 anim::xr#0 mulf8s_prepared::b#4 mulf8s_prepared::m#1 ] main:3::anim:8::mulf8s_prepared:28 [ anim::angle#12 anim::xr#0 anim::yr#0 mulf8s_prepared::b#4 mulf8s_prepared::m#1 ] main:3::anim:8::mulf8s_prepared:33 [ anim::angle#12 anim::yr#0 anim::xr#1 mulf8s_prepared::b#4 mulf8s_prepared::m#1 ] ) [57] (word) mulf8s_prepared::m#1 ← (word) mulf8s_prepared::m#0 hi= (byte~) mulf8s_prepared::$15 [ mulf8s_prepared::b#4 mulf8s_prepared::m#1 ] ( main:3::anim:8::mulf8s_prepared:17 [ anim::angle#12 mulf8s_prepared::b#4 mulf8s_prepared::m#1 ] main:3::anim:8::mulf8s_prepared:21 [ anim::angle#12 anim::xr#0 mulf8s_prepared::b#4 mulf8s_prepared::m#1 ] main:3::anim:8::mulf8s_prepared:28 [ anim::angle#12 anim::xr#0 anim::yr#0 mulf8s_prepared::b#4 mulf8s_prepared::m#1 ] main:3::anim:8::mulf8s_prepared:33 [ anim::angle#12 anim::yr#0 anim::xr#1 mulf8s_prepared::b#4 mulf8s_prepared::m#1 ] )
to:mulf8s_prepared::@1 to:mulf8s_prepared::@1
mulf8s_prepared::@1: scope:[mulf8s_prepared] from mulf8s_prepared::@3 mulf8s_prepared::@6 mulf8s_prepared::@1: scope:[mulf8s_prepared] from mulf8s_prepared::@3 mulf8s_prepared::@6
[60] (word) mulf8s_prepared::m#5 ← phi( mulf8s_prepared::@3/(word) mulf8s_prepared::m#1 mulf8s_prepared::@6/(word) mulf8s_prepared::m#0 ) [ mulf8s_prepared::b#4 mulf8s_prepared::m#5 ] ( main:3::anim:8::mulf8s_prepared:17 [ anim::angle#12 mulf8s_prepared::b#4 mulf8s_prepared::m#5 ] main:3::anim:8::mulf8s_prepared:21 [ anim::angle#12 anim::xr#0 mulf8s_prepared::b#4 mulf8s_prepared::m#5 ] main:3::anim:8::mulf8s_prepared:28 [ anim::angle#12 anim::xr#0 anim::yr#0 mulf8s_prepared::b#4 mulf8s_prepared::m#5 ] main:3::anim:8::mulf8s_prepared:33 [ anim::angle#12 anim::yr#0 anim::xr#1 mulf8s_prepared::b#4 mulf8s_prepared::m#5 ] ) [58] (word) mulf8s_prepared::m#5 ← phi( mulf8s_prepared::@3/(word) mulf8s_prepared::m#1 mulf8s_prepared::@6/(word) mulf8s_prepared::m#0 ) [ mulf8s_prepared::b#4 mulf8s_prepared::m#5 ] ( main:3::anim:8::mulf8s_prepared:17 [ anim::angle#12 mulf8s_prepared::b#4 mulf8s_prepared::m#5 ] main:3::anim:8::mulf8s_prepared:21 [ anim::angle#12 anim::xr#0 mulf8s_prepared::b#4 mulf8s_prepared::m#5 ] main:3::anim:8::mulf8s_prepared:28 [ anim::angle#12 anim::xr#0 anim::yr#0 mulf8s_prepared::b#4 mulf8s_prepared::m#5 ] main:3::anim:8::mulf8s_prepared:33 [ anim::angle#12 anim::yr#0 anim::xr#1 mulf8s_prepared::b#4 mulf8s_prepared::m#5 ] )
[61] if((signed byte) mulf8s_prepared::b#4>=(byte/signed byte/word/signed word/dword/signed dword) 0) goto mulf8s_prepared::@2 [ mulf8s_prepared::m#5 ] ( main:3::anim:8::mulf8s_prepared:17 [ anim::angle#12 mulf8s_prepared::m#5 ] main:3::anim:8::mulf8s_prepared:21 [ anim::angle#12 anim::xr#0 mulf8s_prepared::m#5 ] main:3::anim:8::mulf8s_prepared:28 [ anim::angle#12 anim::xr#0 anim::yr#0 mulf8s_prepared::m#5 ] main:3::anim:8::mulf8s_prepared:33 [ anim::angle#12 anim::yr#0 anim::xr#1 mulf8s_prepared::m#5 ] ) [59] if((signed byte) mulf8s_prepared::b#4>=(byte/signed byte/word/signed word/dword/signed dword) 0) goto mulf8s_prepared::@2 [ mulf8s_prepared::m#5 ] ( main:3::anim:8::mulf8s_prepared:17 [ anim::angle#12 mulf8s_prepared::m#5 ] main:3::anim:8::mulf8s_prepared:21 [ anim::angle#12 anim::xr#0 mulf8s_prepared::m#5 ] main:3::anim:8::mulf8s_prepared:28 [ anim::angle#12 anim::xr#0 anim::yr#0 mulf8s_prepared::m#5 ] main:3::anim:8::mulf8s_prepared:33 [ anim::angle#12 anim::yr#0 anim::xr#1 mulf8s_prepared::m#5 ] )
to:mulf8s_prepared::@4 to:mulf8s_prepared::@4
mulf8s_prepared::@4: scope:[mulf8s_prepared] from mulf8s_prepared::@1 mulf8s_prepared::@4: scope:[mulf8s_prepared] from mulf8s_prepared::@1
[62] (byte~) mulf8s_prepared::$11 ← > (word) mulf8s_prepared::m#5 [ mulf8s_prepared::m#5 mulf8s_prepared::$11 ] ( main:3::anim:8::mulf8s_prepared:17 [ anim::angle#12 mulf8s_prepared::m#5 mulf8s_prepared::$11 ] main:3::anim:8::mulf8s_prepared:21 [ anim::angle#12 anim::xr#0 mulf8s_prepared::m#5 mulf8s_prepared::$11 ] main:3::anim:8::mulf8s_prepared:28 [ anim::angle#12 anim::xr#0 anim::yr#0 mulf8s_prepared::m#5 mulf8s_prepared::$11 ] main:3::anim:8::mulf8s_prepared:33 [ anim::angle#12 anim::yr#0 anim::xr#1 mulf8s_prepared::m#5 mulf8s_prepared::$11 ] ) [60] (byte~) mulf8s_prepared::$11 ← > (word) mulf8s_prepared::m#5 [ mulf8s_prepared::m#5 mulf8s_prepared::$11 ] ( main:3::anim:8::mulf8s_prepared:17 [ anim::angle#12 mulf8s_prepared::m#5 mulf8s_prepared::$11 ] main:3::anim:8::mulf8s_prepared:21 [ anim::angle#12 anim::xr#0 mulf8s_prepared::m#5 mulf8s_prepared::$11 ] main:3::anim:8::mulf8s_prepared:28 [ anim::angle#12 anim::xr#0 anim::yr#0 mulf8s_prepared::m#5 mulf8s_prepared::$11 ] main:3::anim:8::mulf8s_prepared:33 [ anim::angle#12 anim::yr#0 anim::xr#1 mulf8s_prepared::m#5 mulf8s_prepared::$11 ] )
[63] (byte~) mulf8s_prepared::$16 ← (byte~) mulf8s_prepared::$11 - (byte)*((const signed byte*) mulf8s_prepared::memA#0) [ mulf8s_prepared::m#5 mulf8s_prepared::$16 ] ( main:3::anim:8::mulf8s_prepared:17 [ anim::angle#12 mulf8s_prepared::m#5 mulf8s_prepared::$16 ] main:3::anim:8::mulf8s_prepared:21 [ anim::angle#12 anim::xr#0 mulf8s_prepared::m#5 mulf8s_prepared::$16 ] main:3::anim:8::mulf8s_prepared:28 [ anim::angle#12 anim::xr#0 anim::yr#0 mulf8s_prepared::m#5 mulf8s_prepared::$16 ] main:3::anim:8::mulf8s_prepared:33 [ anim::angle#12 anim::yr#0 anim::xr#1 mulf8s_prepared::m#5 mulf8s_prepared::$16 ] ) [61] (byte~) mulf8s_prepared::$16 ← (byte~) mulf8s_prepared::$11 - (byte)*((const signed byte*) mulf8s_prepared::memA#0) [ mulf8s_prepared::m#5 mulf8s_prepared::$16 ] ( main:3::anim:8::mulf8s_prepared:17 [ anim::angle#12 mulf8s_prepared::m#5 mulf8s_prepared::$16 ] main:3::anim:8::mulf8s_prepared:21 [ anim::angle#12 anim::xr#0 mulf8s_prepared::m#5 mulf8s_prepared::$16 ] main:3::anim:8::mulf8s_prepared:28 [ anim::angle#12 anim::xr#0 anim::yr#0 mulf8s_prepared::m#5 mulf8s_prepared::$16 ] main:3::anim:8::mulf8s_prepared:33 [ anim::angle#12 anim::yr#0 anim::xr#1 mulf8s_prepared::m#5 mulf8s_prepared::$16 ] )
[64] (word) mulf8s_prepared::m#2 ← (word) mulf8s_prepared::m#5 hi= (byte~) mulf8s_prepared::$16 [ mulf8s_prepared::m#2 ] ( main:3::anim:8::mulf8s_prepared:17 [ anim::angle#12 mulf8s_prepared::m#2 ] main:3::anim:8::mulf8s_prepared:21 [ anim::angle#12 anim::xr#0 mulf8s_prepared::m#2 ] main:3::anim:8::mulf8s_prepared:28 [ anim::angle#12 anim::xr#0 anim::yr#0 mulf8s_prepared::m#2 ] main:3::anim:8::mulf8s_prepared:33 [ anim::angle#12 anim::yr#0 anim::xr#1 mulf8s_prepared::m#2 ] ) [62] (word) mulf8s_prepared::m#2 ← (word) mulf8s_prepared::m#5 hi= (byte~) mulf8s_prepared::$16 [ mulf8s_prepared::m#2 ] ( main:3::anim:8::mulf8s_prepared:17 [ anim::angle#12 mulf8s_prepared::m#2 ] main:3::anim:8::mulf8s_prepared:21 [ anim::angle#12 anim::xr#0 mulf8s_prepared::m#2 ] main:3::anim:8::mulf8s_prepared:28 [ anim::angle#12 anim::xr#0 anim::yr#0 mulf8s_prepared::m#2 ] main:3::anim:8::mulf8s_prepared:33 [ anim::angle#12 anim::yr#0 anim::xr#1 mulf8s_prepared::m#2 ] )
to:mulf8s_prepared::@2 to:mulf8s_prepared::@2
mulf8s_prepared::@2: scope:[mulf8s_prepared] from mulf8s_prepared::@1 mulf8s_prepared::@4 mulf8s_prepared::@2: scope:[mulf8s_prepared] from mulf8s_prepared::@1 mulf8s_prepared::@4
[65] (word) mulf8s_prepared::m#4 ← phi( mulf8s_prepared::@1/(word) mulf8s_prepared::m#5 mulf8s_prepared::@4/(word) mulf8s_prepared::m#2 ) [ mulf8s_prepared::m#4 ] ( main:3::anim:8::mulf8s_prepared:17 [ anim::angle#12 mulf8s_prepared::m#4 ] main:3::anim:8::mulf8s_prepared:21 [ anim::angle#12 anim::xr#0 mulf8s_prepared::m#4 ] main:3::anim:8::mulf8s_prepared:28 [ anim::angle#12 anim::xr#0 anim::yr#0 mulf8s_prepared::m#4 ] main:3::anim:8::mulf8s_prepared:33 [ anim::angle#12 anim::yr#0 anim::xr#1 mulf8s_prepared::m#4 ] ) [63] (word) mulf8s_prepared::m#4 ← phi( mulf8s_prepared::@1/(word) mulf8s_prepared::m#5 mulf8s_prepared::@4/(word) mulf8s_prepared::m#2 ) [ mulf8s_prepared::m#4 ] ( main:3::anim:8::mulf8s_prepared:17 [ anim::angle#12 mulf8s_prepared::m#4 ] main:3::anim:8::mulf8s_prepared:21 [ anim::angle#12 anim::xr#0 mulf8s_prepared::m#4 ] main:3::anim:8::mulf8s_prepared:28 [ anim::angle#12 anim::xr#0 anim::yr#0 mulf8s_prepared::m#4 ] main:3::anim:8::mulf8s_prepared:33 [ anim::angle#12 anim::yr#0 anim::xr#1 mulf8s_prepared::m#4 ] )
to:mulf8s_prepared::@return to:mulf8s_prepared::@return
mulf8s_prepared::@return: scope:[mulf8s_prepared] from mulf8s_prepared::@2 mulf8s_prepared::@return: scope:[mulf8s_prepared] from mulf8s_prepared::@2
[66] return [ mulf8s_prepared::m#4 ] ( main:3::anim:8::mulf8s_prepared:17 [ anim::angle#12 mulf8s_prepared::m#4 ] main:3::anim:8::mulf8s_prepared:21 [ anim::angle#12 anim::xr#0 mulf8s_prepared::m#4 ] main:3::anim:8::mulf8s_prepared:28 [ anim::angle#12 anim::xr#0 anim::yr#0 mulf8s_prepared::m#4 ] main:3::anim:8::mulf8s_prepared:33 [ anim::angle#12 anim::yr#0 anim::xr#1 mulf8s_prepared::m#4 ] ) [64] return [ mulf8s_prepared::m#4 ] ( main:3::anim:8::mulf8s_prepared:17 [ anim::angle#12 mulf8s_prepared::m#4 ] main:3::anim:8::mulf8s_prepared:21 [ anim::angle#12 anim::xr#0 mulf8s_prepared::m#4 ] main:3::anim:8::mulf8s_prepared:28 [ anim::angle#12 anim::xr#0 anim::yr#0 mulf8s_prepared::m#4 ] main:3::anim:8::mulf8s_prepared:33 [ anim::angle#12 anim::yr#0 anim::xr#1 mulf8s_prepared::m#4 ] )
to:@return to:@return
mulf8u_prepared: scope:[mulf8u_prepared] from mulf8s_prepared mulf8u_prepared: scope:[mulf8u_prepared] from mulf8s_prepared
[67] *((const byte*) mulf8u_prepared::memB#0) ← (byte)(signed byte) mulf8s_prepared::b#4 [ mulf8s_prepared::b#4 ] ( main:3::anim:8::mulf8s_prepared:17::mulf8u_prepared:53 [ anim::angle#12 mulf8s_prepared::b#4 ] main:3::anim:8::mulf8s_prepared:21::mulf8u_prepared:53 [ anim::angle#12 anim::xr#0 mulf8s_prepared::b#4 ] main:3::anim:8::mulf8s_prepared:28::mulf8u_prepared:53 [ anim::angle#12 anim::xr#0 anim::yr#0 mulf8s_prepared::b#4 ] main:3::anim:8::mulf8s_prepared:33::mulf8u_prepared:53 [ anim::angle#12 anim::yr#0 anim::xr#1 mulf8s_prepared::b#4 ] ) [65] *((const byte*) mulf8u_prepared::memB#0) ← (byte)(signed byte) mulf8s_prepared::b#4 [ mulf8s_prepared::b#4 ] ( main:3::anim:8::mulf8s_prepared:17::mulf8u_prepared:51 [ anim::angle#12 mulf8s_prepared::b#4 ] main:3::anim:8::mulf8s_prepared:21::mulf8u_prepared:51 [ anim::angle#12 anim::xr#0 mulf8s_prepared::b#4 ] main:3::anim:8::mulf8s_prepared:28::mulf8u_prepared:51 [ anim::angle#12 anim::xr#0 anim::yr#0 mulf8s_prepared::b#4 ] main:3::anim:8::mulf8s_prepared:33::mulf8u_prepared:51 [ anim::angle#12 anim::yr#0 anim::xr#1 mulf8s_prepared::b#4 ] )
asm { ldxmemB sec sm1: ldamulf_sqr1_lo,x sm2: sbcmulf_sqr2_lo,x staresL sm3: ldamulf_sqr1_hi,x sm4: sbcmulf_sqr2_hi,x stamemB } asm { ldxmemB sec sm1: ldamulf_sqr1_lo,x sm2: sbcmulf_sqr2_lo,x staresL sm3: ldamulf_sqr1_hi,x sm4: sbcmulf_sqr2_hi,x stamemB }
[69] (word) mulf8u_prepared::return#0 ← *((const byte*) mulf8u_prepared::memB#0) w= *((const byte*) mulf8u_prepared::resL#0) [ mulf8s_prepared::b#4 mulf8u_prepared::return#0 ] ( main:3::anim:8::mulf8s_prepared:17::mulf8u_prepared:53 [ anim::angle#12 mulf8s_prepared::b#4 mulf8u_prepared::return#0 ] main:3::anim:8::mulf8s_prepared:21::mulf8u_prepared:53 [ anim::angle#12 anim::xr#0 mulf8s_prepared::b#4 mulf8u_prepared::return#0 ] main:3::anim:8::mulf8s_prepared:28::mulf8u_prepared:53 [ anim::angle#12 anim::xr#0 anim::yr#0 mulf8s_prepared::b#4 mulf8u_prepared::return#0 ] main:3::anim:8::mulf8s_prepared:33::mulf8u_prepared:53 [ anim::angle#12 anim::yr#0 anim::xr#1 mulf8s_prepared::b#4 mulf8u_prepared::return#0 ] ) [67] (word) mulf8u_prepared::return#0 ← *((const byte*) mulf8u_prepared::memB#0) w= *((const byte*) mulf8u_prepared::resL#0) [ mulf8s_prepared::b#4 mulf8u_prepared::return#0 ] ( main:3::anim:8::mulf8s_prepared:17::mulf8u_prepared:51 [ anim::angle#12 mulf8s_prepared::b#4 mulf8u_prepared::return#0 ] main:3::anim:8::mulf8s_prepared:21::mulf8u_prepared:51 [ anim::angle#12 anim::xr#0 mulf8s_prepared::b#4 mulf8u_prepared::return#0 ] main:3::anim:8::mulf8s_prepared:28::mulf8u_prepared:51 [ anim::angle#12 anim::xr#0 anim::yr#0 mulf8s_prepared::b#4 mulf8u_prepared::return#0 ] main:3::anim:8::mulf8s_prepared:33::mulf8u_prepared:51 [ anim::angle#12 anim::yr#0 anim::xr#1 mulf8s_prepared::b#4 mulf8u_prepared::return#0 ] )
to:mulf8u_prepared::@return to:mulf8u_prepared::@return
mulf8u_prepared::@return: scope:[mulf8u_prepared] from mulf8u_prepared mulf8u_prepared::@return: scope:[mulf8u_prepared] from mulf8u_prepared
[70] return [ mulf8s_prepared::b#4 mulf8u_prepared::return#0 ] ( main:3::anim:8::mulf8s_prepared:17::mulf8u_prepared:53 [ anim::angle#12 mulf8s_prepared::b#4 mulf8u_prepared::return#0 ] main:3::anim:8::mulf8s_prepared:21::mulf8u_prepared:53 [ anim::angle#12 anim::xr#0 mulf8s_prepared::b#4 mulf8u_prepared::return#0 ] main:3::anim:8::mulf8s_prepared:28::mulf8u_prepared:53 [ anim::angle#12 anim::xr#0 anim::yr#0 mulf8s_prepared::b#4 mulf8u_prepared::return#0 ] main:3::anim:8::mulf8s_prepared:33::mulf8u_prepared:53 [ anim::angle#12 anim::yr#0 anim::xr#1 mulf8s_prepared::b#4 mulf8u_prepared::return#0 ] ) [68] return [ mulf8s_prepared::b#4 mulf8u_prepared::return#0 ] ( main:3::anim:8::mulf8s_prepared:17::mulf8u_prepared:51 [ anim::angle#12 mulf8s_prepared::b#4 mulf8u_prepared::return#0 ] main:3::anim:8::mulf8s_prepared:21::mulf8u_prepared:51 [ anim::angle#12 anim::xr#0 mulf8s_prepared::b#4 mulf8u_prepared::return#0 ] main:3::anim:8::mulf8s_prepared:28::mulf8u_prepared:51 [ anim::angle#12 anim::xr#0 anim::yr#0 mulf8s_prepared::b#4 mulf8u_prepared::return#0 ] main:3::anim:8::mulf8s_prepared:33::mulf8u_prepared:51 [ anim::angle#12 anim::yr#0 anim::xr#1 mulf8s_prepared::b#4 mulf8u_prepared::return#0 ] )
to:@return to:@return
mulf8u_prepare: scope:[mulf8u_prepare] from anim::mulf8s_prepare1 anim::mulf8s_prepare2 mulf8u_prepare: scope:[mulf8u_prepare] from anim::mulf8s_prepare1 anim::mulf8s_prepare2
[71] (byte) mulf8u_prepare::a#2 ← phi( anim::mulf8s_prepare1/(byte~) mulf8u_prepare::a#3 anim::mulf8s_prepare2/(byte~) mulf8u_prepare::a#4 ) [ mulf8u_prepare::a#2 ] ( main:3::anim:8::mulf8u_prepare:15 [ anim::angle#12 mulf8u_prepare::a#2 ] main:3::anim:8::mulf8u_prepare:26 [ anim::angle#12 anim::xr#0 anim::yr#0 mulf8u_prepare::a#2 ] ) [69] (byte) mulf8u_prepare::a#2 ← phi( anim::mulf8s_prepare1/(byte~) mulf8u_prepare::a#3 anim::mulf8s_prepare2/(byte~) mulf8u_prepare::a#4 ) [ mulf8u_prepare::a#2 ] ( main:3::anim:8::mulf8u_prepare:15 [ anim::angle#12 mulf8u_prepare::a#2 ] main:3::anim:8::mulf8u_prepare:26 [ anim::angle#12 anim::xr#0 anim::yr#0 mulf8u_prepare::a#2 ] )
[72] *((const byte*) mulf8u_prepare::memA#0) ← (byte) mulf8u_prepare::a#2 [ ] ( main:3::anim:8::mulf8u_prepare:15 [ anim::angle#12 ] main:3::anim:8::mulf8u_prepare:26 [ anim::angle#12 anim::xr#0 anim::yr#0 ] ) [70] *((const byte*) mulf8u_prepare::memA#0) ← (byte) mulf8u_prepare::a#2 [ ] ( main:3::anim:8::mulf8u_prepare:15 [ anim::angle#12 ] main:3::anim:8::mulf8u_prepare:26 [ anim::angle#12 anim::xr#0 anim::yr#0 ] )
asm { ldamemA stamulf8u_prepared.sm1+1 stamulf8u_prepared.sm3+1 eor#$ff stamulf8u_prepared.sm2+1 stamulf8u_prepared.sm4+1 } asm { ldamemA stamulf8u_prepared.sm1+1 stamulf8u_prepared.sm3+1 eor#$ff stamulf8u_prepared.sm2+1 stamulf8u_prepared.sm4+1 }
to:mulf8u_prepare::@return to:mulf8u_prepare::@return
mulf8u_prepare::@return: scope:[mulf8u_prepare] from mulf8u_prepare mulf8u_prepare::@return: scope:[mulf8u_prepare] from mulf8u_prepare
[74] return [ ] ( main:3::anim:8::mulf8u_prepare:15 [ anim::angle#12 ] main:3::anim:8::mulf8u_prepare:26 [ anim::angle#12 anim::xr#0 anim::yr#0 ] ) [72] return [ ] ( main:3::anim:8::mulf8u_prepare:15 [ anim::angle#12 ] main:3::anim:8::mulf8u_prepare:26 [ anim::angle#12 anim::xr#0 anim::yr#0 ] )
to:@return to:@return
init: scope:[init] from main init: scope:[init] from main
[75] phi() [ ] ( main:3::init:6 [ ] ) [73] phi() [ ] ( main:3::init:6 [ ] )
[76] call mulf_init [ ] ( main:3::init:6 [ ] ) [74] call mulf_init [ ] ( main:3::init:6 [ ] )
to:init::@3 to:init::@3
init::@3: scope:[init] from init init::@3: scope:[init] from init
[77] *((const byte*) SPRITES_ENABLE#0) ← (byte/word/signed word/dword/signed dword) 255 [ ] ( main:3::init:6 [ ] ) [75] *((const byte*) SPRITES_ENABLE#0) ← (byte/word/signed word/dword/signed dword) 255 [ ] ( main:3::init:6 [ ] )
to:init::@1 to:init::@1
init::@1: scope:[init] from init::@1 init::@3 init::@1: scope:[init] from init::@1 init::@3
[78] (byte) init::spr_x#2 ← phi( init::@1/(byte) init::spr_x#1 init::@3/(byte/signed byte/word/signed word/dword/signed dword) 60 ) [ init::i#2 init::spr_x#2 ] ( main:3::init:6 [ init::i#2 init::spr_x#2 ] ) [76] (byte) init::spr_x#2 ← phi( init::@1/(byte) init::spr_x#1 init::@3/(byte/signed byte/word/signed word/dword/signed dword) 60 ) [ init::i#2 init::spr_x#2 ] ( main:3::init:6 [ init::i#2 init::spr_x#2 ] )
[78] (byte) init::i#2 ← phi( init::@1/(byte) init::i#1 init::@3/(byte/signed byte/word/signed word/dword/signed dword) 0 ) [ init::i#2 init::spr_x#2 ] ( main:3::init:6 [ init::i#2 init::spr_x#2 ] ) [76] (byte) init::i#2 ← phi( init::@1/(byte) init::i#1 init::@3/(byte/signed byte/word/signed word/dword/signed dword) 0 ) [ init::i#2 init::spr_x#2 ] ( main:3::init:6 [ init::i#2 init::spr_x#2 ] )
[79] (byte) init::i2#0 ← (byte) init::i#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ init::i#2 init::spr_x#2 init::i2#0 ] ( main:3::init:6 [ init::i#2 init::spr_x#2 init::i2#0 ] ) [77] (byte) init::i2#0 ← (byte) init::i#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ init::i#2 init::spr_x#2 init::i2#0 ] ( main:3::init:6 [ init::i#2 init::spr_x#2 init::i2#0 ] )
[80] *((const byte*) init::sprites_ptr#0 + (byte) init::i#2) ← ((byte))(const byte*) SPRITE#0/(byte/signed byte/word/signed word/dword/signed dword) 64 [ init::i#2 init::spr_x#2 init::i2#0 ] ( main:3::init:6 [ init::i#2 init::spr_x#2 init::i2#0 ] ) [78] *((const byte*) init::sprites_ptr#0 + (byte) init::i#2) ← ((byte))(const byte*) SPRITE#0/(byte/signed byte/word/signed word/dword/signed dword) 64 [ init::i#2 init::spr_x#2 init::i2#0 ] ( main:3::init:6 [ init::i#2 init::spr_x#2 init::i2#0 ] )
[81] *((const byte*) SPRITES_XPOS#0 + (byte) init::i2#0) ← (byte) init::spr_x#2 [ init::i#2 init::spr_x#2 init::i2#0 ] ( main:3::init:6 [ init::i#2 init::spr_x#2 init::i2#0 ] ) [79] *((const byte*) SPRITES_XPOS#0 + (byte) init::i2#0) ← (byte) init::spr_x#2 [ init::i#2 init::spr_x#2 init::i2#0 ] ( main:3::init:6 [ init::i#2 init::spr_x#2 init::i2#0 ] )
[82] *((const byte*) SPRITES_YPOS#0 + (byte) init::i2#0) ← (byte) init::spr_x#2 [ init::i#2 init::spr_x#2 ] ( main:3::init:6 [ init::i#2 init::spr_x#2 ] ) [80] *((const byte*) SPRITES_YPOS#0 + (byte) init::i2#0) ← (byte) init::spr_x#2 [ init::i#2 init::spr_x#2 ] ( main:3::init:6 [ init::i#2 init::spr_x#2 ] )
[83] *((const byte*) SPRITES_COLS#0 + (byte) init::i#2) ← (const byte) GREEN#0 [ init::i#2 init::spr_x#2 ] ( main:3::init:6 [ init::i#2 init::spr_x#2 ] ) [81] *((const byte*) SPRITES_COLS#0 + (byte) init::i#2) ← (const byte) GREEN#0 [ init::i#2 init::spr_x#2 ] ( main:3::init:6 [ init::i#2 init::spr_x#2 ] )
[84] (byte) init::spr_x#1 ← (byte) init::spr_x#2 + (byte/signed byte/word/signed word/dword/signed dword) 24 [ init::i#2 init::spr_x#1 ] ( main:3::init:6 [ init::i#2 init::spr_x#1 ] ) [82] (byte) init::spr_x#1 ← (byte) init::spr_x#2 + (byte/signed byte/word/signed word/dword/signed dword) 24 [ init::i#2 init::spr_x#1 ] ( main:3::init:6 [ init::i#2 init::spr_x#1 ] )
[85] (byte) init::i#1 ← ++ (byte) init::i#2 [ init::i#1 init::spr_x#1 ] ( main:3::init:6 [ init::i#1 init::spr_x#1 ] ) [83] (byte) init::i#1 ← ++ (byte) init::i#2 [ init::i#1 init::spr_x#1 ] ( main:3::init:6 [ init::i#1 init::spr_x#1 ] )
[86] if((byte) init::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 8) goto init::@1 [ init::i#1 init::spr_x#1 ] ( main:3::init:6 [ init::i#1 init::spr_x#1 ] ) [84] if((byte) init::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 8) goto init::@1 [ init::i#1 init::spr_x#1 ] ( main:3::init:6 [ init::i#1 init::spr_x#1 ] )
to:init::@return to:init::@return
init::@return: scope:[init] from init::@1 init::@return: scope:[init] from init::@1
[87] return [ ] ( main:3::init:6 [ ] ) [85] return [ ] ( main:3::init:6 [ ] )
to:@return to:@return
mulf_init: scope:[mulf_init] from init mulf_init: scope:[mulf_init] from init
[88] phi() [ ] ( main:3::init:6::mulf_init:76 [ ] ) [86] phi() [ ] ( main:3::init:6::mulf_init:74 [ ] )
to:mulf_init::@1 to:mulf_init::@1
mulf_init::@1: scope:[mulf_init] from mulf_init mulf_init::@2 mulf_init::@1: scope:[mulf_init] from mulf_init mulf_init::@2
[89] (byte) mulf_init::x_2#3 ← phi( mulf_init/(byte/signed byte/word/signed word/dword/signed dword) 0 mulf_init::@2/(byte) mulf_init::x_2#2 ) [ mulf_init::c#2 mulf_init::sqr#4 mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::x_2#3 ] ( main:3::init:6::mulf_init:76 [ mulf_init::c#2 mulf_init::sqr#4 mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::x_2#3 ] ) [87] (byte) mulf_init::x_2#3 ← phi( mulf_init/(byte/signed byte/word/signed word/dword/signed dword) 0 mulf_init::@2/(byte) mulf_init::x_2#2 ) [ mulf_init::c#2 mulf_init::sqr#4 mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::x_2#3 ] ( main:3::init:6::mulf_init:74 [ mulf_init::c#2 mulf_init::sqr#4 mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::x_2#3 ] )
[89] (byte*) mulf_init::sqr1_hi#2 ← phi( mulf_init/(const byte[512]) mulf_sqr1_hi#0+(byte/signed byte/word/signed word/dword/signed dword) 1 mulf_init::@2/(byte*) mulf_init::sqr1_hi#1 ) [ mulf_init::c#2 mulf_init::sqr#4 mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::x_2#3 ] ( main:3::init:6::mulf_init:76 [ mulf_init::c#2 mulf_init::sqr#4 mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::x_2#3 ] ) [87] (byte*) mulf_init::sqr1_hi#2 ← phi( mulf_init/(const byte[512]) mulf_sqr1_hi#0+(byte/signed byte/word/signed word/dword/signed dword) 1 mulf_init::@2/(byte*) mulf_init::sqr1_hi#1 ) [ mulf_init::c#2 mulf_init::sqr#4 mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::x_2#3 ] ( main:3::init:6::mulf_init:74 [ mulf_init::c#2 mulf_init::sqr#4 mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::x_2#3 ] )
[89] (byte*) mulf_init::sqr1_lo#2 ← phi( mulf_init/(const byte[512]) mulf_sqr1_lo#0+(byte/signed byte/word/signed word/dword/signed dword) 1 mulf_init::@2/(byte*) mulf_init::sqr1_lo#1 ) [ mulf_init::c#2 mulf_init::sqr#4 mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::x_2#3 ] ( main:3::init:6::mulf_init:76 [ mulf_init::c#2 mulf_init::sqr#4 mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::x_2#3 ] ) [87] (byte*) mulf_init::sqr1_lo#2 ← phi( mulf_init/(const byte[512]) mulf_sqr1_lo#0+(byte/signed byte/word/signed word/dword/signed dword) 1 mulf_init::@2/(byte*) mulf_init::sqr1_lo#1 ) [ mulf_init::c#2 mulf_init::sqr#4 mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::x_2#3 ] ( main:3::init:6::mulf_init:74 [ mulf_init::c#2 mulf_init::sqr#4 mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::x_2#3 ] )
[89] (word) mulf_init::sqr#4 ← phi( mulf_init/(byte/signed byte/word/signed word/dword/signed dword) 0 mulf_init::@2/(word) mulf_init::sqr#1 ) [ mulf_init::c#2 mulf_init::sqr#4 mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::x_2#3 ] ( main:3::init:6::mulf_init:76 [ mulf_init::c#2 mulf_init::sqr#4 mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::x_2#3 ] ) [87] (word) mulf_init::sqr#4 ← phi( mulf_init/(byte/signed byte/word/signed word/dword/signed dword) 0 mulf_init::@2/(word) mulf_init::sqr#1 ) [ mulf_init::c#2 mulf_init::sqr#4 mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::x_2#3 ] ( main:3::init:6::mulf_init:74 [ mulf_init::c#2 mulf_init::sqr#4 mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::x_2#3 ] )
[89] (byte) mulf_init::c#2 ← phi( mulf_init/(byte/signed byte/word/signed word/dword/signed dword) 0 mulf_init::@2/(byte) mulf_init::c#1 ) [ mulf_init::c#2 mulf_init::sqr#4 mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::x_2#3 ] ( main:3::init:6::mulf_init:76 [ mulf_init::c#2 mulf_init::sqr#4 mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::x_2#3 ] ) [87] (byte) mulf_init::c#2 ← phi( mulf_init/(byte/signed byte/word/signed word/dword/signed dword) 0 mulf_init::@2/(byte) mulf_init::c#1 ) [ mulf_init::c#2 mulf_init::sqr#4 mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::x_2#3 ] ( main:3::init:6::mulf_init:74 [ mulf_init::c#2 mulf_init::sqr#4 mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::x_2#3 ] )
[90] (byte) mulf_init::c#1 ← ++ (byte) mulf_init::c#2 [ mulf_init::sqr#4 mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::x_2#3 mulf_init::c#1 ] ( main:3::init:6::mulf_init:76 [ mulf_init::sqr#4 mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::x_2#3 mulf_init::c#1 ] ) [88] (byte) mulf_init::c#1 ← ++ (byte) mulf_init::c#2 [ mulf_init::sqr#4 mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::x_2#3 mulf_init::c#1 ] ( main:3::init:6::mulf_init:74 [ mulf_init::sqr#4 mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::x_2#3 mulf_init::c#1 ] )
[91] (byte~) mulf_init::$2 ← (byte) mulf_init::c#1 & (byte/signed byte/word/signed word/dword/signed dword) 1 [ mulf_init::sqr#4 mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::x_2#3 mulf_init::c#1 mulf_init::$2 ] ( main:3::init:6::mulf_init:76 [ mulf_init::sqr#4 mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::x_2#3 mulf_init::c#1 mulf_init::$2 ] ) [89] (byte~) mulf_init::$2 ← (byte) mulf_init::c#1 & (byte/signed byte/word/signed word/dword/signed dword) 1 [ mulf_init::sqr#4 mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::x_2#3 mulf_init::c#1 mulf_init::$2 ] ( main:3::init:6::mulf_init:74 [ mulf_init::sqr#4 mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::x_2#3 mulf_init::c#1 mulf_init::$2 ] )
[92] if((byte~) mulf_init::$2!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto mulf_init::@2 [ mulf_init::sqr#4 mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::x_2#3 mulf_init::c#1 ] ( main:3::init:6::mulf_init:76 [ mulf_init::sqr#4 mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::x_2#3 mulf_init::c#1 ] ) [90] if((byte~) mulf_init::$2!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto mulf_init::@2 [ mulf_init::sqr#4 mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::x_2#3 mulf_init::c#1 ] ( main:3::init:6::mulf_init:74 [ mulf_init::sqr#4 mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::x_2#3 mulf_init::c#1 ] )
to:mulf_init::@5 to:mulf_init::@5
mulf_init::@5: scope:[mulf_init] from mulf_init::@1 mulf_init::@5: scope:[mulf_init] from mulf_init::@1
[93] (byte) mulf_init::x_2#1 ← ++ (byte) mulf_init::x_2#3 [ mulf_init::sqr#4 mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::c#1 mulf_init::x_2#1 ] ( main:3::init:6::mulf_init:76 [ mulf_init::sqr#4 mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::c#1 mulf_init::x_2#1 ] ) [91] (byte) mulf_init::x_2#1 ← ++ (byte) mulf_init::x_2#3 [ mulf_init::sqr#4 mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::c#1 mulf_init::x_2#1 ] ( main:3::init:6::mulf_init:74 [ mulf_init::sqr#4 mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::c#1 mulf_init::x_2#1 ] )
[94] (word) mulf_init::sqr#2 ← ++ (word) mulf_init::sqr#4 [ mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::c#1 mulf_init::x_2#1 mulf_init::sqr#2 ] ( main:3::init:6::mulf_init:76 [ mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::c#1 mulf_init::x_2#1 mulf_init::sqr#2 ] ) [92] (word) mulf_init::sqr#2 ← ++ (word) mulf_init::sqr#4 [ mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::c#1 mulf_init::x_2#1 mulf_init::sqr#2 ] ( main:3::init:6::mulf_init:74 [ mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::c#1 mulf_init::x_2#1 mulf_init::sqr#2 ] )
to:mulf_init::@2 to:mulf_init::@2
mulf_init::@2: scope:[mulf_init] from mulf_init::@1 mulf_init::@5 mulf_init::@2: scope:[mulf_init] from mulf_init::@1 mulf_init::@5
[95] (byte) mulf_init::x_2#2 ← phi( mulf_init::@1/(byte) mulf_init::x_2#3 mulf_init::@5/(byte) mulf_init::x_2#1 ) [ mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::c#1 mulf_init::x_2#2 mulf_init::sqr#3 ] ( main:3::init:6::mulf_init:76 [ mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::c#1 mulf_init::x_2#2 mulf_init::sqr#3 ] ) [93] (byte) mulf_init::x_2#2 ← phi( mulf_init::@1/(byte) mulf_init::x_2#3 mulf_init::@5/(byte) mulf_init::x_2#1 ) [ mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::c#1 mulf_init::x_2#2 mulf_init::sqr#3 ] ( main:3::init:6::mulf_init:74 [ mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::c#1 mulf_init::x_2#2 mulf_init::sqr#3 ] )
[95] (word) mulf_init::sqr#3 ← phi( mulf_init::@1/(word) mulf_init::sqr#4 mulf_init::@5/(word) mulf_init::sqr#2 ) [ mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::c#1 mulf_init::x_2#2 mulf_init::sqr#3 ] ( main:3::init:6::mulf_init:76 [ mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::c#1 mulf_init::x_2#2 mulf_init::sqr#3 ] ) [93] (word) mulf_init::sqr#3 ← phi( mulf_init::@1/(word) mulf_init::sqr#4 mulf_init::@5/(word) mulf_init::sqr#2 ) [ mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::c#1 mulf_init::x_2#2 mulf_init::sqr#3 ] ( main:3::init:6::mulf_init:74 [ mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::c#1 mulf_init::x_2#2 mulf_init::sqr#3 ] )
[96] (byte~) mulf_init::$5 ← < (word) mulf_init::sqr#3 [ mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::c#1 mulf_init::x_2#2 mulf_init::sqr#3 mulf_init::$5 ] ( main:3::init:6::mulf_init:76 [ mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::c#1 mulf_init::x_2#2 mulf_init::sqr#3 mulf_init::$5 ] ) [94] (byte~) mulf_init::$5 ← < (word) mulf_init::sqr#3 [ mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::c#1 mulf_init::x_2#2 mulf_init::sqr#3 mulf_init::$5 ] ( main:3::init:6::mulf_init:74 [ mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::c#1 mulf_init::x_2#2 mulf_init::sqr#3 mulf_init::$5 ] )
[97] *((byte*) mulf_init::sqr1_lo#2) ← (byte~) mulf_init::$5 [ mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::c#1 mulf_init::x_2#2 mulf_init::sqr#3 ] ( main:3::init:6::mulf_init:76 [ mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::c#1 mulf_init::x_2#2 mulf_init::sqr#3 ] ) [95] *((byte*) mulf_init::sqr1_lo#2) ← (byte~) mulf_init::$5 [ mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::c#1 mulf_init::x_2#2 mulf_init::sqr#3 ] ( main:3::init:6::mulf_init:74 [ mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::c#1 mulf_init::x_2#2 mulf_init::sqr#3 ] )
[98] (byte~) mulf_init::$6 ← > (word) mulf_init::sqr#3 [ mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::c#1 mulf_init::x_2#2 mulf_init::sqr#3 mulf_init::$6 ] ( main:3::init:6::mulf_init:76 [ mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::c#1 mulf_init::x_2#2 mulf_init::sqr#3 mulf_init::$6 ] ) [96] (byte~) mulf_init::$6 ← > (word) mulf_init::sqr#3 [ mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::c#1 mulf_init::x_2#2 mulf_init::sqr#3 mulf_init::$6 ] ( main:3::init:6::mulf_init:74 [ mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::c#1 mulf_init::x_2#2 mulf_init::sqr#3 mulf_init::$6 ] )
[99] *((byte*) mulf_init::sqr1_hi#2) ← (byte~) mulf_init::$6 [ mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::c#1 mulf_init::x_2#2 mulf_init::sqr#3 ] ( main:3::init:6::mulf_init:76 [ mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::c#1 mulf_init::x_2#2 mulf_init::sqr#3 ] ) [97] *((byte*) mulf_init::sqr1_hi#2) ← (byte~) mulf_init::$6 [ mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::c#1 mulf_init::x_2#2 mulf_init::sqr#3 ] ( main:3::init:6::mulf_init:74 [ mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::c#1 mulf_init::x_2#2 mulf_init::sqr#3 ] )
[100] (byte*) mulf_init::sqr1_hi#1 ← ++ (byte*) mulf_init::sqr1_hi#2 [ mulf_init::sqr1_lo#2 mulf_init::c#1 mulf_init::sqr1_hi#1 mulf_init::x_2#2 mulf_init::sqr#3 ] ( main:3::init:6::mulf_init:76 [ mulf_init::sqr1_lo#2 mulf_init::c#1 mulf_init::sqr1_hi#1 mulf_init::x_2#2 mulf_init::sqr#3 ] ) [98] (byte*) mulf_init::sqr1_hi#1 ← ++ (byte*) mulf_init::sqr1_hi#2 [ mulf_init::sqr1_lo#2 mulf_init::c#1 mulf_init::sqr1_hi#1 mulf_init::x_2#2 mulf_init::sqr#3 ] ( main:3::init:6::mulf_init:74 [ mulf_init::sqr1_lo#2 mulf_init::c#1 mulf_init::sqr1_hi#1 mulf_init::x_2#2 mulf_init::sqr#3 ] )
[101] (word) mulf_init::sqr#1 ← (word) mulf_init::sqr#3 + (byte) mulf_init::x_2#2 [ mulf_init::sqr1_lo#2 mulf_init::c#1 mulf_init::sqr#1 mulf_init::sqr1_hi#1 mulf_init::x_2#2 ] ( main:3::init:6::mulf_init:76 [ mulf_init::sqr1_lo#2 mulf_init::c#1 mulf_init::sqr#1 mulf_init::sqr1_hi#1 mulf_init::x_2#2 ] ) [99] (word) mulf_init::sqr#1 ← (word) mulf_init::sqr#3 + (byte) mulf_init::x_2#2 [ mulf_init::sqr1_lo#2 mulf_init::c#1 mulf_init::sqr#1 mulf_init::sqr1_hi#1 mulf_init::x_2#2 ] ( main:3::init:6::mulf_init:74 [ mulf_init::sqr1_lo#2 mulf_init::c#1 mulf_init::sqr#1 mulf_init::sqr1_hi#1 mulf_init::x_2#2 ] )
[102] (byte*) mulf_init::sqr1_lo#1 ← ++ (byte*) mulf_init::sqr1_lo#2 [ mulf_init::c#1 mulf_init::sqr#1 mulf_init::sqr1_lo#1 mulf_init::sqr1_hi#1 mulf_init::x_2#2 ] ( main:3::init:6::mulf_init:76 [ mulf_init::c#1 mulf_init::sqr#1 mulf_init::sqr1_lo#1 mulf_init::sqr1_hi#1 mulf_init::x_2#2 ] ) [100] (byte*) mulf_init::sqr1_lo#1 ← ++ (byte*) mulf_init::sqr1_lo#2 [ mulf_init::c#1 mulf_init::sqr#1 mulf_init::sqr1_lo#1 mulf_init::sqr1_hi#1 mulf_init::x_2#2 ] ( main:3::init:6::mulf_init:74 [ mulf_init::c#1 mulf_init::sqr#1 mulf_init::sqr1_lo#1 mulf_init::sqr1_hi#1 mulf_init::x_2#2 ] )
[103] if((byte*) mulf_init::sqr1_lo#1!=(const byte[512]) mulf_sqr1_lo#0+(word/signed word/dword/signed dword) 512) goto mulf_init::@1 [ mulf_init::c#1 mulf_init::sqr#1 mulf_init::sqr1_lo#1 mulf_init::sqr1_hi#1 mulf_init::x_2#2 ] ( main:3::init:6::mulf_init:76 [ mulf_init::c#1 mulf_init::sqr#1 mulf_init::sqr1_lo#1 mulf_init::sqr1_hi#1 mulf_init::x_2#2 ] ) [101] if((byte*) mulf_init::sqr1_lo#1!=(const byte[512]) mulf_sqr1_lo#0+(word/signed word/dword/signed dword) 512) goto mulf_init::@1 [ mulf_init::c#1 mulf_init::sqr#1 mulf_init::sqr1_lo#1 mulf_init::sqr1_hi#1 mulf_init::x_2#2 ] ( main:3::init:6::mulf_init:74 [ mulf_init::c#1 mulf_init::sqr#1 mulf_init::sqr1_lo#1 mulf_init::sqr1_hi#1 mulf_init::x_2#2 ] )
to:mulf_init::@3 to:mulf_init::@3
mulf_init::@3: scope:[mulf_init] from mulf_init::@2 mulf_init::@4 mulf_init::@3: scope:[mulf_init] from mulf_init::@2 mulf_init::@4
[104] (byte) mulf_init::dir#2 ← phi( mulf_init::@4/(byte) mulf_init::dir#3 mulf_init::@2/(byte/word/signed word/dword/signed dword) 255 ) [ mulf_init::x_255#2 mulf_init::sqr2_lo#2 mulf_init::sqr2_hi#2 mulf_init::dir#2 ] ( main:3::init:6::mulf_init:76 [ mulf_init::x_255#2 mulf_init::sqr2_lo#2 mulf_init::sqr2_hi#2 mulf_init::dir#2 ] ) [102] (byte) mulf_init::dir#2 ← phi( mulf_init::@4/(byte) mulf_init::dir#3 mulf_init::@2/(byte/word/signed word/dword/signed dword) 255 ) [ mulf_init::x_255#2 mulf_init::sqr2_lo#2 mulf_init::sqr2_hi#2 mulf_init::dir#2 ] ( main:3::init:6::mulf_init:74 [ mulf_init::x_255#2 mulf_init::sqr2_lo#2 mulf_init::sqr2_hi#2 mulf_init::dir#2 ] )
[104] (byte*) mulf_init::sqr2_hi#2 ← phi( mulf_init::@4/(byte*) mulf_init::sqr2_hi#1 mulf_init::@2/(const byte[512]) mulf_sqr2_hi#0 ) [ mulf_init::x_255#2 mulf_init::sqr2_lo#2 mulf_init::sqr2_hi#2 mulf_init::dir#2 ] ( main:3::init:6::mulf_init:76 [ mulf_init::x_255#2 mulf_init::sqr2_lo#2 mulf_init::sqr2_hi#2 mulf_init::dir#2 ] ) [102] (byte*) mulf_init::sqr2_hi#2 ← phi( mulf_init::@4/(byte*) mulf_init::sqr2_hi#1 mulf_init::@2/(const byte[512]) mulf_sqr2_hi#0 ) [ mulf_init::x_255#2 mulf_init::sqr2_lo#2 mulf_init::sqr2_hi#2 mulf_init::dir#2 ] ( main:3::init:6::mulf_init:74 [ mulf_init::x_255#2 mulf_init::sqr2_lo#2 mulf_init::sqr2_hi#2 mulf_init::dir#2 ] )
[104] (byte*) mulf_init::sqr2_lo#2 ← phi( mulf_init::@4/(byte*) mulf_init::sqr2_lo#1 mulf_init::@2/(const byte[512]) mulf_sqr2_lo#0 ) [ mulf_init::x_255#2 mulf_init::sqr2_lo#2 mulf_init::sqr2_hi#2 mulf_init::dir#2 ] ( main:3::init:6::mulf_init:76 [ mulf_init::x_255#2 mulf_init::sqr2_lo#2 mulf_init::sqr2_hi#2 mulf_init::dir#2 ] ) [102] (byte*) mulf_init::sqr2_lo#2 ← phi( mulf_init::@4/(byte*) mulf_init::sqr2_lo#1 mulf_init::@2/(const byte[512]) mulf_sqr2_lo#0 ) [ mulf_init::x_255#2 mulf_init::sqr2_lo#2 mulf_init::sqr2_hi#2 mulf_init::dir#2 ] ( main:3::init:6::mulf_init:74 [ mulf_init::x_255#2 mulf_init::sqr2_lo#2 mulf_init::sqr2_hi#2 mulf_init::dir#2 ] )
[104] (byte) mulf_init::x_255#2 ← phi( mulf_init::@4/(byte) mulf_init::x_255#1 mulf_init::@2/((byte))-(byte/signed byte/word/signed word/dword/signed dword) 1 ) [ mulf_init::x_255#2 mulf_init::sqr2_lo#2 mulf_init::sqr2_hi#2 mulf_init::dir#2 ] ( main:3::init:6::mulf_init:76 [ mulf_init::x_255#2 mulf_init::sqr2_lo#2 mulf_init::sqr2_hi#2 mulf_init::dir#2 ] ) [102] (byte) mulf_init::x_255#2 ← phi( mulf_init::@4/(byte) mulf_init::x_255#1 mulf_init::@2/((byte))-(byte/signed byte/word/signed word/dword/signed dword) 1 ) [ mulf_init::x_255#2 mulf_init::sqr2_lo#2 mulf_init::sqr2_hi#2 mulf_init::dir#2 ] ( main:3::init:6::mulf_init:74 [ mulf_init::x_255#2 mulf_init::sqr2_lo#2 mulf_init::sqr2_hi#2 mulf_init::dir#2 ] )
[105] *((byte*) mulf_init::sqr2_lo#2) ← *((const byte[512]) mulf_sqr1_lo#0 + (byte) mulf_init::x_255#2) [ mulf_init::x_255#2 mulf_init::sqr2_lo#2 mulf_init::sqr2_hi#2 mulf_init::dir#2 ] ( main:3::init:6::mulf_init:76 [ mulf_init::x_255#2 mulf_init::sqr2_lo#2 mulf_init::sqr2_hi#2 mulf_init::dir#2 ] ) [103] *((byte*) mulf_init::sqr2_lo#2) ← *((const byte[512]) mulf_sqr1_lo#0 + (byte) mulf_init::x_255#2) [ mulf_init::x_255#2 mulf_init::sqr2_lo#2 mulf_init::sqr2_hi#2 mulf_init::dir#2 ] ( main:3::init:6::mulf_init:74 [ mulf_init::x_255#2 mulf_init::sqr2_lo#2 mulf_init::sqr2_hi#2 mulf_init::dir#2 ] )
[106] *((byte*) mulf_init::sqr2_hi#2) ← *((const byte[512]) mulf_sqr1_hi#0 + (byte) mulf_init::x_255#2) [ mulf_init::x_255#2 mulf_init::sqr2_lo#2 mulf_init::sqr2_hi#2 mulf_init::dir#2 ] ( main:3::init:6::mulf_init:76 [ mulf_init::x_255#2 mulf_init::sqr2_lo#2 mulf_init::sqr2_hi#2 mulf_init::dir#2 ] ) [104] *((byte*) mulf_init::sqr2_hi#2) ← *((const byte[512]) mulf_sqr1_hi#0 + (byte) mulf_init::x_255#2) [ mulf_init::x_255#2 mulf_init::sqr2_lo#2 mulf_init::sqr2_hi#2 mulf_init::dir#2 ] ( main:3::init:6::mulf_init:74 [ mulf_init::x_255#2 mulf_init::sqr2_lo#2 mulf_init::sqr2_hi#2 mulf_init::dir#2 ] )
[107] (byte*) mulf_init::sqr2_hi#1 ← ++ (byte*) mulf_init::sqr2_hi#2 [ mulf_init::x_255#2 mulf_init::sqr2_lo#2 mulf_init::dir#2 mulf_init::sqr2_hi#1 ] ( main:3::init:6::mulf_init:76 [ mulf_init::x_255#2 mulf_init::sqr2_lo#2 mulf_init::dir#2 mulf_init::sqr2_hi#1 ] ) [105] (byte*) mulf_init::sqr2_hi#1 ← ++ (byte*) mulf_init::sqr2_hi#2 [ mulf_init::x_255#2 mulf_init::sqr2_lo#2 mulf_init::dir#2 mulf_init::sqr2_hi#1 ] ( main:3::init:6::mulf_init:74 [ mulf_init::x_255#2 mulf_init::sqr2_lo#2 mulf_init::dir#2 mulf_init::sqr2_hi#1 ] )
[108] (byte) mulf_init::x_255#1 ← (byte) mulf_init::x_255#2 + (byte) mulf_init::dir#2 [ mulf_init::sqr2_lo#2 mulf_init::dir#2 mulf_init::x_255#1 mulf_init::sqr2_hi#1 ] ( main:3::init:6::mulf_init:76 [ mulf_init::sqr2_lo#2 mulf_init::dir#2 mulf_init::x_255#1 mulf_init::sqr2_hi#1 ] ) [106] (byte) mulf_init::x_255#1 ← (byte) mulf_init::x_255#2 + (byte) mulf_init::dir#2 [ mulf_init::sqr2_lo#2 mulf_init::dir#2 mulf_init::x_255#1 mulf_init::sqr2_hi#1 ] ( main:3::init:6::mulf_init:74 [ mulf_init::sqr2_lo#2 mulf_init::dir#2 mulf_init::x_255#1 mulf_init::sqr2_hi#1 ] )
[109] if((byte) mulf_init::x_255#1!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto mulf_init::@12 [ mulf_init::sqr2_lo#2 mulf_init::dir#2 mulf_init::x_255#1 mulf_init::sqr2_hi#1 ] ( main:3::init:6::mulf_init:76 [ mulf_init::sqr2_lo#2 mulf_init::dir#2 mulf_init::x_255#1 mulf_init::sqr2_hi#1 ] ) [107] if((byte) mulf_init::x_255#1!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto mulf_init::@12 [ mulf_init::sqr2_lo#2 mulf_init::dir#2 mulf_init::x_255#1 mulf_init::sqr2_hi#1 ] ( main:3::init:6::mulf_init:74 [ mulf_init::sqr2_lo#2 mulf_init::dir#2 mulf_init::x_255#1 mulf_init::sqr2_hi#1 ] )
to:mulf_init::@4 to:mulf_init::@4
mulf_init::@4: scope:[mulf_init] from mulf_init::@12 mulf_init::@3 mulf_init::@4: scope:[mulf_init] from mulf_init::@12 mulf_init::@3
[110] (byte) mulf_init::dir#3 ← phi( mulf_init::@12/(byte) mulf_init::dir#2 mulf_init::@3/(byte/signed byte/word/signed word/dword/signed dword) 1 ) [ mulf_init::sqr2_lo#2 mulf_init::x_255#1 mulf_init::sqr2_hi#1 mulf_init::dir#3 ] ( main:3::init:6::mulf_init:76 [ mulf_init::sqr2_lo#2 mulf_init::x_255#1 mulf_init::sqr2_hi#1 mulf_init::dir#3 ] ) [108] (byte) mulf_init::dir#3 ← phi( mulf_init::@12/(byte) mulf_init::dir#2 mulf_init::@3/(byte/signed byte/word/signed word/dword/signed dword) 1 ) [ mulf_init::sqr2_lo#2 mulf_init::x_255#1 mulf_init::sqr2_hi#1 mulf_init::dir#3 ] ( main:3::init:6::mulf_init:74 [ mulf_init::sqr2_lo#2 mulf_init::x_255#1 mulf_init::sqr2_hi#1 mulf_init::dir#3 ] )
[111] (byte*) mulf_init::sqr2_lo#1 ← ++ (byte*) mulf_init::sqr2_lo#2 [ mulf_init::x_255#1 mulf_init::sqr2_lo#1 mulf_init::sqr2_hi#1 mulf_init::dir#3 ] ( main:3::init:6::mulf_init:76 [ mulf_init::x_255#1 mulf_init::sqr2_lo#1 mulf_init::sqr2_hi#1 mulf_init::dir#3 ] ) [109] (byte*) mulf_init::sqr2_lo#1 ← ++ (byte*) mulf_init::sqr2_lo#2 [ mulf_init::x_255#1 mulf_init::sqr2_lo#1 mulf_init::sqr2_hi#1 mulf_init::dir#3 ] ( main:3::init:6::mulf_init:74 [ mulf_init::x_255#1 mulf_init::sqr2_lo#1 mulf_init::sqr2_hi#1 mulf_init::dir#3 ] )
[112] if((byte*) mulf_init::sqr2_lo#1!=(const byte[512]) mulf_sqr2_lo#0+(word/signed word/dword/signed dword) 511) goto mulf_init::@3 [ mulf_init::x_255#1 mulf_init::sqr2_lo#1 mulf_init::sqr2_hi#1 mulf_init::dir#3 ] ( main:3::init:6::mulf_init:76 [ mulf_init::x_255#1 mulf_init::sqr2_lo#1 mulf_init::sqr2_hi#1 mulf_init::dir#3 ] ) [110] if((byte*) mulf_init::sqr2_lo#1!=(const byte[512]) mulf_sqr2_lo#0+(word/signed word/dword/signed dword) 511) goto mulf_init::@3 [ mulf_init::x_255#1 mulf_init::sqr2_lo#1 mulf_init::sqr2_hi#1 mulf_init::dir#3 ] ( main:3::init:6::mulf_init:74 [ mulf_init::x_255#1 mulf_init::sqr2_lo#1 mulf_init::sqr2_hi#1 mulf_init::dir#3 ] )
to:mulf_init::@8 to:mulf_init::@8
mulf_init::@8: scope:[mulf_init] from mulf_init::@4 mulf_init::@8: scope:[mulf_init] from mulf_init::@4
[113] *((const byte[512]) mulf_sqr2_lo#0+(word/signed word/dword/signed dword) 511) ← *((const byte[512]) mulf_sqr1_lo#0+(word/signed word/dword/signed dword) 256) [ ] ( main:3::init:6::mulf_init:76 [ ] ) [111] *((const byte[512]) mulf_sqr2_lo#0+(word/signed word/dword/signed dword) 511) ← *((const byte[512]) mulf_sqr1_lo#0+(word/signed word/dword/signed dword) 256) [ ] ( main:3::init:6::mulf_init:74 [ ] )
[114] *((const byte[512]) mulf_sqr2_hi#0+(word/signed word/dword/signed dword) 511) ← *((const byte[512]) mulf_sqr1_hi#0+(word/signed word/dword/signed dword) 256) [ ] ( main:3::init:6::mulf_init:76 [ ] ) [112] *((const byte[512]) mulf_sqr2_hi#0+(word/signed word/dword/signed dword) 511) ← *((const byte[512]) mulf_sqr1_hi#0+(word/signed word/dword/signed dword) 256) [ ] ( main:3::init:6::mulf_init:74 [ ] )
to:mulf_init::@return to:mulf_init::@return
mulf_init::@return: scope:[mulf_init] from mulf_init::@8 mulf_init::@return: scope:[mulf_init] from mulf_init::@8
[115] return [ ] ( main:3::init:6::mulf_init:76 [ ] ) [113] return [ ] ( main:3::init:6::mulf_init:74 [ ] )
to:@return to:@return
mulf_init::@12: scope:[mulf_init] from mulf_init::@3 mulf_init::@12: scope:[mulf_init] from mulf_init::@3
[116] phi() [ mulf_init::sqr2_lo#2 mulf_init::dir#2 mulf_init::x_255#1 mulf_init::sqr2_hi#1 ] ( main:3::init:6::mulf_init:76 [ mulf_init::sqr2_lo#2 mulf_init::dir#2 mulf_init::x_255#1 mulf_init::sqr2_hi#1 ] ) [114] phi() [ mulf_init::sqr2_lo#2 mulf_init::dir#2 mulf_init::x_255#1 mulf_init::sqr2_hi#1 ] ( main:3::init:6::mulf_init:74 [ mulf_init::sqr2_lo#2 mulf_init::dir#2 mulf_init::x_255#1 mulf_init::sqr2_hi#1 ] )
to:mulf_init::@4 to:mulf_init::@4

File diff suppressed because it is too large Load Diff

View File

@ -32,11 +32,9 @@
(signed word~) anim::$13 $13 zp ZP_WORD:3 22.0 (signed word~) anim::$13 $13 zp ZP_WORD:3 22.0
(byte~) anim::$14 reg byte a 11.0 (byte~) anim::$14 reg byte a 11.0
(signed byte~) anim::$17 reg byte a 22.0 (signed byte~) anim::$17 reg byte a 22.0
(byte~) anim::$19 reg byte a 11.0 (byte~) anim::$19 reg byte a 22.0
(signed byte~) anim::$21 reg byte a 22.0 (byte~) anim::$20 reg byte a 22.0
(byte~) anim::$23 reg byte a 22.0 (byte~) anim::$22 reg byte a 22.0
(byte~) anim::$24 reg byte a 22.0
(byte~) anim::$25 reg byte a 22.0
(signed word~) anim::$4 $4 zp ZP_WORD:5 22.0 (signed word~) anim::$4 $4 zp ZP_WORD:5 22.0
(signed word~) anim::$6 $6 zp ZP_WORD:7 22.0 (signed word~) anim::$6 $6 zp ZP_WORD:7 22.0
(label) anim::@1 (label) anim::@1
@ -50,7 +48,7 @@
(label) anim::@6 (label) anim::@6
(byte) anim::angle (byte) anim::angle
(byte) anim::angle#1 reg byte y 11.0 (byte) anim::angle#1 reg byte y 11.0
(byte) anim::angle#12 reg byte y 0.5641025641025641 (byte) anim::angle#12 reg byte y 0.5945945945945946
(signed byte) anim::cos_a (signed byte) anim::cos_a
(label) anim::mulf8s_prepare1 (label) anim::mulf8s_prepare1
(byte~) anim::mulf8s_prepare1_$0 (byte~) anim::mulf8s_prepare1_$0
@ -62,17 +60,17 @@
(signed byte) anim::x (signed byte) anim::x
(const signed byte) anim::x#0 x = (byte/signed byte/word/signed word/dword/signed dword) 89 (const signed byte) anim::x#0 x = (byte/signed byte/word/signed word/dword/signed dword) 89
(signed word) anim::xpos (signed word) anim::xpos
(signed word) anim::xpos#0 xpos zp ZP_WORD:3 5.5 (signed word) anim::xpos#0 xpos zp ZP_WORD:3 11.0
(signed word) anim::xr (signed word) anim::xr
(signed word) anim::xr#0 xr zp ZP_WORD:5 1.8333333333333333 (signed word) anim::xr#0 xr zp ZP_WORD:5 1.8333333333333333
(signed word) anim::xr#1 xr zp ZP_WORD:5 3.6666666666666665 (signed word) anim::xr#1 xr zp ZP_WORD:5 3.6666666666666665
(signed byte) anim::y (signed byte) anim::y
(const signed byte) anim::y#0 y = (byte/signed byte/word/signed word/dword/signed dword) 0 (const signed byte) anim::y#0 y = (byte/signed byte/word/signed word/dword/signed dword) 0
(signed word) anim::ypos (byte) anim::ypos
(signed word) anim::ypos#0 ypos zp ZP_WORD:5 4.4 (byte) anim::ypos#0 reg byte a 22.0
(signed word) anim::yr (signed word) anim::yr
(signed word) anim::yr#0 yr zp ZP_WORD:7 1.6923076923076923 (signed word) anim::yr#0 yr zp ZP_WORD:7 1.6923076923076923
(signed word) anim::yr#1 yr zp ZP_WORD:7 5.5 (signed word) anim::yr#1 yr zp ZP_WORD:7 2.75
(void()) init() (void()) init()
(label) init::@1 (label) init::@1
(label) init::@3 (label) init::@3
@ -191,16 +189,15 @@ zp ZP_WORD:3 [ mulf8s_prepared::m#4 mulf8s_prepared::m#5 mulf8s_prepared::m#1 mu
reg byte a [ mulf8u_prepare::a#2 mulf8u_prepare::a#3 mulf8u_prepare::a#4 ] reg byte a [ mulf8u_prepare::a#2 mulf8u_prepare::a#3 mulf8u_prepare::a#4 ]
reg byte y [ init::i#2 init::i#1 ] reg byte y [ init::i#2 init::i#1 ]
reg byte x [ mulf_init::c#2 mulf_init::c#1 ] reg byte x [ mulf_init::c#2 mulf_init::c#1 ]
zp ZP_WORD:5 [ mulf_init::sqr1_hi#2 mulf_init::sqr1_hi#1 mulf_init::sqr2_hi#2 mulf_init::sqr2_hi#1 anim::$4 anim::xr#0 anim::xr#1 anim::ypos#0 ] zp ZP_WORD:5 [ mulf_init::sqr1_hi#2 mulf_init::sqr1_hi#1 mulf_init::sqr2_hi#2 mulf_init::sqr2_hi#1 anim::$4 anim::xr#0 anim::xr#1 ]
zp ZP_WORD:7 [ mulf_init::sqr#3 mulf_init::sqr#4 mulf_init::sqr#1 mulf_init::sqr#2 anim::$6 anim::yr#0 anim::yr#1 ] zp ZP_WORD:7 [ mulf_init::sqr#3 mulf_init::sqr#4 mulf_init::sqr#1 mulf_init::sqr#2 anim::$6 anim::yr#0 anim::yr#1 ]
reg byte x [ mulf_init::x_255#2 mulf_init::x_255#1 ] reg byte x [ mulf_init::x_255#2 mulf_init::x_255#1 ]
reg byte a [ anim::$14 ] reg byte a [ anim::$14 ]
reg byte a [ anim::$17 ] reg byte a [ anim::$17 ]
reg byte a [ anim::$19 ] reg byte a [ anim::$19 ]
reg byte a [ anim::$21 ] reg byte a [ anim::$20 ]
reg byte a [ anim::$23 ] reg byte a [ anim::$22 ]
reg byte a [ anim::$24 ] reg byte a [ anim::ypos#0 ]
reg byte a [ anim::$25 ]
reg byte a [ mulf8s_prepared::$5 ] reg byte a [ mulf8s_prepared::$5 ]
reg byte a [ mulf8s_prepared::$15 ] reg byte a [ mulf8s_prepared::$15 ]
reg byte a [ mulf8s_prepared::$11 ] reg byte a [ mulf8s_prepared::$11 ]