diff --git a/src/main/java/dk/camelot64/kickc/test/ref/sinus-sprites.log b/src/main/java/dk/camelot64/kickc/test/ref/sinus-sprites.log index d289a4ea8..f94109e8b 100644 --- a/src/main/java/dk/camelot64/kickc/test/ref/sinus-sprites.log +++ b/src/main/java/dk/camelot64/kickc/test/ref/sinus-sprites.log @@ -1,24 +1,24 @@ import "basic-floats" import "print" -byte* PROCPORT = $01; -byte* CHARGEN = $d000; -byte* SCREEN = $0400; +const byte* PROCPORT = $01; +const byte* CHARGEN = $d000; +const byte* SCREEN = $0400; -byte* RASTER = $d012; -byte* BORDERCOL = $d020; +const byte* RASTER = $d012; +const byte* BORDERCOL = $d020; -byte* SPRITES_XPOS = $d000; -byte* SPRITES_YPOS = $d001; -byte* SPRITES_XMSB = $d010; -byte* SPRITES_ENABLE = $d015; -byte* SPRITES_EXPAND_Y = $d017; -byte* SPRITES_PRIORITY = $d01b; -byte* SPRITES_MC = $d01c; -byte* SPRITES_EXPAND_X = $d01d; -byte* SPRITES_MC1 = $d025; -byte* SPRITES_MC2 = $d026; -byte* SPRITES_COLS = $d027; +const byte* SPRITES_XPOS = $d000; +const byte* SPRITES_YPOS = $d001; +const byte* SPRITES_XMSB = $d010; +const byte* SPRITES_ENABLE = $d015; +const byte* SPRITES_EXPAND_Y = $d017; +const byte* SPRITES_PRIORITY = $d01b; +const byte* SPRITES_MC = $d01c; +const byte* SPRITES_EXPAND_X = $d01d; +const byte* SPRITES_MC1 = $d025; +const byte* SPRITES_MC2 = $d026; +const byte* SPRITES_COLS = $d027; const byte sinlen_x = 221; const byte[] sintab_x = $1000; @@ -2882,11 +2882,6 @@ Completing Phi functions... Completing Phi functions... Completing Phi functions... Completing Phi functions... -Completing Phi functions... -Completing Phi functions... -Completing Phi functions... -Completing Phi functions... -Completing Phi functions... CONTROL FLOW GRAPH SSA @begin: scope:[] from (byte*) memLo#0 ← ((byte*)) (byte/word/signed word) 254 @@ -3007,61 +3002,30 @@ sinFAC::@return: scope:[sinFAC] from sinFAC (byte[]) sprites#0 ← ((byte*)) (word/signed word) 8192 to:@34 main: scope:[main] from @39 - (byte*) PROCPORT#18 ← phi( @39/(byte*) PROCPORT#20 ) - (byte*) CHARGEN#9 ← phi( @39/(byte*) CHARGEN#10 ) - (byte*) SPRITES_COLS#6 ← phi( @39/(byte*) SPRITES_COLS#7 ) - (byte*) SPRITES_YPOS#16 ← phi( @39/(byte*) SPRITES_YPOS#18 ) - (byte*) SPRITES_XPOS#16 ← phi( @39/(byte*) SPRITES_XPOS#18 ) - (byte*) SPRITES_EXPAND_Y#5 ← phi( @39/(byte*) SPRITES_EXPAND_Y#6 ) - (byte*) SPRITES_EXPAND_X#5 ← phi( @39/(byte*) SPRITES_EXPAND_X#6 ) - (byte*) SPRITES_ENABLE#5 ← phi( @39/(byte*) SPRITES_ENABLE#6 ) - (byte*) BORDERCOL#16 ← phi( @39/(byte*) BORDERCOL#21 ) (byte) sin_idx_y#24 ← phi( @39/(byte) sin_idx_y#17 ) (byte) sin_idx_x#26 ← phi( @39/(byte) sin_idx_x#16 ) - (byte*) RASTER#4 ← phi( @39/(byte*) RASTER#6 ) - (byte*) SCREEN#4 ← phi( @39/(byte*) SCREEN#6 ) call init param-assignment to:main::@5 main::@5: scope:[main] from main - (byte*) SPRITES_YPOS#14 ← phi( main/(byte*) SPRITES_YPOS#16 ) - (byte*) SPRITES_XPOS#14 ← phi( main/(byte*) SPRITES_XPOS#16 ) - (byte*) BORDERCOL#13 ← phi( main/(byte*) BORDERCOL#16 ) (byte) sin_idx_y#21 ← phi( main/(byte) sin_idx_y#24 ) (byte) sin_idx_x#23 ← phi( main/(byte) sin_idx_x#26 ) - (byte*) RASTER#3 ← phi( main/(byte*) RASTER#4 ) to:main::@2 main::@1: scope:[main] from main::@6 - (byte*) SPRITES_YPOS#13 ← phi( main::@6/(byte*) SPRITES_YPOS#17 ) - (byte*) SPRITES_XPOS#13 ← phi( main::@6/(byte*) SPRITES_XPOS#17 ) - (byte*) BORDERCOL#12 ← phi( main::@6/(byte*) BORDERCOL#17 ) (byte) sin_idx_y#20 ← phi( main::@6/(byte) sin_idx_y#0 ) (byte) sin_idx_x#22 ← phi( main::@6/(byte) sin_idx_x#0 ) - (byte*) RASTER#2 ← phi( main::@6/(byte*) RASTER#5 ) to:main::@2 main::@2: scope:[main] from main::@1 main::@2 main::@5 - (byte*) SPRITES_YPOS#10 ← phi( main::@1/(byte*) SPRITES_YPOS#13 main::@2/(byte*) SPRITES_YPOS#10 main::@5/(byte*) SPRITES_YPOS#14 ) - (byte*) SPRITES_XPOS#10 ← phi( main::@1/(byte*) SPRITES_XPOS#13 main::@2/(byte*) SPRITES_XPOS#10 main::@5/(byte*) SPRITES_XPOS#14 ) - (byte*) BORDERCOL#8 ← phi( main::@1/(byte*) BORDERCOL#12 main::@2/(byte*) BORDERCOL#8 main::@5/(byte*) BORDERCOL#13 ) (byte) sin_idx_y#18 ← phi( main::@1/(byte) sin_idx_y#20 main::@2/(byte) sin_idx_y#18 main::@5/(byte) sin_idx_y#21 ) (byte) sin_idx_x#17 ← phi( main::@1/(byte) sin_idx_x#22 main::@2/(byte) sin_idx_x#17 main::@5/(byte) sin_idx_x#23 ) - (byte*) RASTER#1 ← phi( main::@1/(byte*) RASTER#2 main::@2/(byte*) RASTER#1 main::@5/(byte*) RASTER#3 ) - (boolean~) main::$1 ← *((byte*) RASTER#1) != (byte/word/signed word) 255 + (boolean~) main::$1 ← *((byte*) RASTER#0) != (byte/word/signed word) 255 if((boolean~) main::$1) goto main::@2 to:main::@3 main::@3: scope:[main] from main::@2 - (byte*) RASTER#7 ← phi( main::@2/(byte*) RASTER#1 ) - (byte*) SPRITES_YPOS#6 ← phi( main::@2/(byte*) SPRITES_YPOS#10 ) - (byte*) SPRITES_XPOS#6 ← phi( main::@2/(byte*) SPRITES_XPOS#10 ) - (byte*) BORDERCOL#4 ← phi( main::@2/(byte*) BORDERCOL#8 ) (byte) sin_idx_y#13 ← phi( main::@2/(byte) sin_idx_y#18 ) (byte) sin_idx_x#13 ← phi( main::@2/(byte) sin_idx_x#17 ) call anim param-assignment to:main::@6 main::@6: scope:[main] from main::@3 - (byte*) SPRITES_YPOS#17 ← phi( main::@3/(byte*) SPRITES_YPOS#6 ) - (byte*) SPRITES_XPOS#17 ← phi( main::@3/(byte*) SPRITES_XPOS#6 ) - (byte*) BORDERCOL#17 ← phi( main::@3/(byte*) BORDERCOL#4 ) - (byte*) RASTER#5 ← phi( main::@3/(byte*) RASTER#7 ) (byte) sin_idx_y#7 ← phi( main::@3/(byte) sin_idx_y#13 ) (byte) sin_idx_x#7 ← phi( main::@3/(byte) sin_idx_x#13 ) (byte) sin_idx_x#0 ← (byte) sin_idx_x#7 @@ -3076,57 +3040,23 @@ main::@return: scope:[main] from main::@6 return to:@return init: scope:[init] from main - (byte*) BORDERCOL#47 ← phi( main/(byte*) BORDERCOL#16 ) - (byte*) PROCPORT#15 ← phi( main/(byte*) PROCPORT#18 ) - (byte*) CHARGEN#8 ← phi( main/(byte*) CHARGEN#9 ) - (byte*) SPRITES_COLS#5 ← phi( main/(byte*) SPRITES_COLS#6 ) - (byte*) SPRITES_YPOS#15 ← phi( main/(byte*) SPRITES_YPOS#16 ) - (byte*) SPRITES_XPOS#15 ← phi( main/(byte*) SPRITES_XPOS#16 ) - (byte*) SPRITES_EXPAND_Y#4 ← phi( main/(byte*) SPRITES_EXPAND_Y#5 ) - (byte*) SPRITES_EXPAND_X#4 ← phi( main/(byte*) SPRITES_EXPAND_X#5 ) - (byte*) SPRITES_ENABLE#4 ← phi( main/(byte*) SPRITES_ENABLE#5 ) - (byte*) SCREEN#1 ← phi( main/(byte*) SCREEN#4 ) - (byte*) init::sc#0 ← (byte*) SCREEN#1 + (byte*) init::sc#0 ← (byte*) SCREEN#0 to:init::@1 init::@1: scope:[init] from init init::@1 - (byte*) BORDERCOL#46 ← phi( init/(byte*) BORDERCOL#47 init::@1/(byte*) BORDERCOL#46 ) - (byte*) PROCPORT#13 ← phi( init/(byte*) PROCPORT#15 init::@1/(byte*) PROCPORT#13 ) - (byte*) CHARGEN#7 ← phi( init/(byte*) CHARGEN#8 init::@1/(byte*) CHARGEN#7 ) - (byte*) SPRITES_COLS#4 ← phi( init/(byte*) SPRITES_COLS#5 init::@1/(byte*) SPRITES_COLS#4 ) - (byte*) SPRITES_YPOS#11 ← phi( init/(byte*) SPRITES_YPOS#15 init::@1/(byte*) SPRITES_YPOS#11 ) - (byte*) SPRITES_XPOS#11 ← phi( init/(byte*) SPRITES_XPOS#15 init::@1/(byte*) SPRITES_XPOS#11 ) - (byte*) SPRITES_EXPAND_Y#3 ← phi( init/(byte*) SPRITES_EXPAND_Y#4 init::@1/(byte*) SPRITES_EXPAND_Y#3 ) - (byte*) SPRITES_EXPAND_X#3 ← phi( init/(byte*) SPRITES_EXPAND_X#4 init::@1/(byte*) SPRITES_EXPAND_X#3 ) - (byte*) SPRITES_ENABLE#3 ← phi( init/(byte*) SPRITES_ENABLE#4 init::@1/(byte*) SPRITES_ENABLE#3 ) - (byte*) SCREEN#2 ← phi( init/(byte*) SCREEN#1 init::@1/(byte*) SCREEN#2 ) (byte*) init::sc#2 ← phi( init/(byte*) init::sc#0 init::@1/(byte*) init::sc#1 ) *((byte*) init::sc#2) ← (byte) ' ' (byte*) init::sc#1 ← ++ (byte*) init::sc#2 - (byte*~) init::$0 ← (byte*) SCREEN#2 + (word/signed word) 1000 + (byte*~) init::$0 ← (byte*) SCREEN#0 + (word/signed word) 1000 (boolean~) init::$1 ← (byte*) init::sc#1 < (byte*~) init::$0 if((boolean~) init::$1) goto init::@1 to:init::@2 init::@2: scope:[init] from init::@1 - (byte*) BORDERCOL#45 ← phi( init::@1/(byte*) BORDERCOL#46 ) - (byte*) PROCPORT#10 ← phi( init::@1/(byte*) PROCPORT#13 ) - (byte*) CHARGEN#6 ← phi( init::@1/(byte*) CHARGEN#7 ) - (byte*) SPRITES_COLS#3 ← phi( init::@1/(byte*) SPRITES_COLS#4 ) - (byte*) SPRITES_YPOS#9 ← phi( init::@1/(byte*) SPRITES_YPOS#11 ) - (byte*) SPRITES_XPOS#9 ← phi( init::@1/(byte*) SPRITES_XPOS#11 ) - (byte*) SCREEN#5 ← phi( init::@1/(byte*) SCREEN#2 ) - (byte*) SPRITES_EXPAND_Y#2 ← phi( init::@1/(byte*) SPRITES_EXPAND_Y#3 ) - (byte*) SPRITES_EXPAND_X#2 ← phi( init::@1/(byte*) SPRITES_EXPAND_X#3 ) - (byte*) SPRITES_ENABLE#2 ← phi( init::@1/(byte*) SPRITES_ENABLE#3 ) call place_sprites param-assignment to:init::@3 init::@3: scope:[init] from init::@2 - (byte*) BORDERCOL#44 ← phi( init::@2/(byte*) BORDERCOL#45 ) - (byte*) PROCPORT#8 ← phi( init::@2/(byte*) PROCPORT#10 ) - (byte*) CHARGEN#5 ← phi( init::@2/(byte*) CHARGEN#6 ) call gen_sprites param-assignment to:init::@4 init::@4: scope:[init] from init::@3 - (byte*) BORDERCOL#42 ← phi( init::@3/(byte*) BORDERCOL#44 ) (byte*) gen_sintab::sintab#0 ← (byte[]) sintab_x#0 (byte) gen_sintab::length#0 ← (byte) sinlen_x#0 (byte) gen_sintab::min#0 ← (byte/signed byte/word/signed word) 16 @@ -3134,7 +3064,6 @@ init::@4: scope:[init] from init::@3 call gen_sintab param-assignment to:init::@5 init::@5: scope:[init] from init::@4 - (byte*) BORDERCOL#43 ← phi( init::@4/(byte*) BORDERCOL#42 ) (byte*) gen_sintab::sintab#1 ← (byte[]) sintab_y#0 (byte) gen_sintab::length#1 ← (byte) sinlen_y#0 (byte) gen_sintab::min#1 ← (byte/signed byte/word/signed word) 48 @@ -3147,46 +3076,29 @@ init::@return: scope:[init] from init::@6 return to:@return @34: scope:[] from @32 - (byte*) PROCPORT#21 ← phi( @32/(byte*) PROCPORT#0 ) - (byte*) CHARGEN#11 ← phi( @32/(byte*) CHARGEN#0 ) - (byte*) SPRITES_COLS#8 ← phi( @32/(byte*) SPRITES_COLS#0 ) - (byte*) SPRITES_YPOS#19 ← phi( @32/(byte*) SPRITES_YPOS#0 ) - (byte*) SPRITES_XPOS#19 ← phi( @32/(byte*) SPRITES_XPOS#0 ) - (byte*) SPRITES_EXPAND_Y#7 ← phi( @32/(byte*) SPRITES_EXPAND_Y#0 ) - (byte*) SPRITES_EXPAND_X#7 ← phi( @32/(byte*) SPRITES_EXPAND_X#0 ) - (byte*) SPRITES_ENABLE#7 ← phi( @32/(byte*) SPRITES_ENABLE#0 ) - (byte*) BORDERCOL#26 ← phi( @32/(byte*) BORDERCOL#0 ) - (byte*) RASTER#8 ← phi( @32/(byte*) RASTER#0 ) - (byte*) SCREEN#7 ← phi( @32/(byte*) SCREEN#0 ) (byte) sin_idx_x#2 ← (byte/signed byte/word/signed word) 0 (byte) sin_idx_y#2 ← (byte/signed byte/word/signed word) 0 to:@39 anim: scope:[anim] from main::@3 - (byte*) SPRITES_YPOS#3 ← phi( main::@3/(byte*) SPRITES_YPOS#6 ) - (byte*) SPRITES_XPOS#3 ← phi( main::@3/(byte*) SPRITES_XPOS#6 ) (byte) sin_idx_y#9 ← phi( main::@3/(byte) sin_idx_y#13 ) (byte) sin_idx_x#9 ← phi( main::@3/(byte) sin_idx_x#13 ) - (byte*) BORDERCOL#1 ← phi( main::@3/(byte*) BORDERCOL#4 ) - *((byte*) BORDERCOL#1) ← ++ *((byte*) BORDERCOL#1) + *((byte*) BORDERCOL#0) ← ++ *((byte*) BORDERCOL#0) (byte) anim::xidx#0 ← (byte) sin_idx_x#9 (byte) anim::yidx#0 ← (byte) sin_idx_y#9 (byte) anim::j2#0 ← (byte/signed byte/word/signed word) 12 (byte) anim::j#0 ← (byte/signed byte/word/signed word) 0 to:anim::@1 anim::@1: scope:[anim] from anim anim::@3 - (byte*) BORDERCOL#22 ← phi( anim/(byte*) BORDERCOL#1 anim::@3/(byte*) BORDERCOL#14 ) (byte) sin_idx_y#25 ← phi( anim/(byte) sin_idx_y#9 anim::@3/(byte) sin_idx_y#19 ) (byte) sin_idx_x#24 ← phi( anim/(byte) sin_idx_x#9 anim::@3/(byte) sin_idx_x#14 ) (byte) anim::j#5 ← phi( anim/(byte) anim::j#0 anim::@3/(byte) anim::j#1 ) - (byte*) SPRITES_YPOS#1 ← phi( anim/(byte*) SPRITES_YPOS#3 anim::@3/(byte*) SPRITES_YPOS#4 ) (byte) anim::yidx#3 ← phi( anim/(byte) anim::yidx#0 anim::@3/(byte) anim::yidx#6 ) (byte) anim::j2#3 ← phi( anim/(byte) anim::j2#0 anim::@3/(byte) anim::j2#2 ) - (byte*) SPRITES_XPOS#1 ← phi( anim/(byte*) SPRITES_XPOS#3 anim::@3/(byte*) SPRITES_XPOS#4 ) (byte) anim::xidx#3 ← phi( anim/(byte) anim::xidx#0 anim::@3/(byte) anim::xidx#5 ) (byte~) anim::$0 ← (byte[]) sintab_x#0 *idx (byte) anim::xidx#3 - *((byte*) SPRITES_XPOS#1 + (byte) anim::j2#3) ← (byte~) anim::$0 + *((byte*) SPRITES_XPOS#0 + (byte) anim::j2#3) ← (byte~) anim::$0 (byte~) anim::$1 ← (byte[]) sintab_y#0 *idx (byte) anim::yidx#3 - *((byte*) SPRITES_YPOS#1 + (byte) anim::j2#3) ← (byte~) anim::$1 + *((byte*) SPRITES_YPOS#0 + (byte) anim::j2#3) ← (byte~) anim::$1 (byte~) anim::$2 ← (byte) anim::xidx#3 + (byte/signed byte/word/signed word) 10 (byte) anim::xidx#1 ← (byte~) anim::$2 (boolean~) anim::$3 ← (byte) anim::xidx#1 >= (byte) sinlen_x#0 @@ -3194,11 +3106,8 @@ anim::@1: scope:[anim] from anim anim::@3 if((boolean~) anim::$4) goto anim::@2 to:anim::@6 anim::@2: scope:[anim] from anim::@1 anim::@6 - (byte*) BORDERCOL#18 ← phi( anim::@1/(byte*) BORDERCOL#22 anim::@6/(byte*) BORDERCOL#23 ) (byte) sin_idx_y#22 ← phi( anim::@1/(byte) sin_idx_y#25 anim::@6/(byte) sin_idx_y#26 ) (byte) sin_idx_x#18 ← phi( anim::@1/(byte) sin_idx_x#24 anim::@6/(byte) sin_idx_x#25 ) - (byte*) SPRITES_YPOS#7 ← phi( anim::@1/(byte*) SPRITES_YPOS#1 anim::@6/(byte*) SPRITES_YPOS#12 ) - (byte*) SPRITES_XPOS#7 ← phi( anim::@1/(byte*) SPRITES_XPOS#1 anim::@6/(byte*) SPRITES_XPOS#12 ) (byte) anim::xidx#6 ← phi( anim::@1/(byte) anim::xidx#1 anim::@6/(byte) anim::xidx#2 ) (byte) anim::j#3 ← phi( anim::@1/(byte) anim::j#5 anim::@6/(byte) anim::j#6 ) (byte) anim::j2#5 ← phi( anim::@1/(byte) anim::j2#3 anim::@6/(byte) anim::j2#7 ) @@ -3210,11 +3119,8 @@ anim::@2: scope:[anim] from anim::@1 anim::@6 if((boolean~) anim::$8) goto anim::@3 to:anim::@7 anim::@6: scope:[anim] from anim::@1 - (byte*) BORDERCOL#23 ← phi( anim::@1/(byte*) BORDERCOL#22 ) (byte) sin_idx_y#26 ← phi( anim::@1/(byte) sin_idx_y#25 ) (byte) sin_idx_x#25 ← phi( anim::@1/(byte) sin_idx_x#24 ) - (byte*) SPRITES_YPOS#12 ← phi( anim::@1/(byte*) SPRITES_YPOS#1 ) - (byte*) SPRITES_XPOS#12 ← phi( anim::@1/(byte*) SPRITES_XPOS#1 ) (byte) anim::j#6 ← phi( anim::@1/(byte) anim::j#5 ) (byte) anim::j2#7 ← phi( anim::@1/(byte) anim::j2#3 ) (byte) anim::yidx#7 ← phi( anim::@1/(byte) anim::yidx#3 ) @@ -3223,12 +3129,9 @@ anim::@6: scope:[anim] from anim::@1 (byte) anim::xidx#2 ← (byte~) anim::$5 to:anim::@2 anim::@3: scope:[anim] from anim::@2 anim::@7 - (byte*) BORDERCOL#14 ← phi( anim::@2/(byte*) BORDERCOL#18 anim::@7/(byte*) BORDERCOL#19 ) (byte) sin_idx_y#19 ← phi( anim::@2/(byte) sin_idx_y#22 anim::@7/(byte) sin_idx_y#23 ) (byte) sin_idx_x#14 ← phi( anim::@2/(byte) sin_idx_x#18 anim::@7/(byte) sin_idx_x#19 ) - (byte*) SPRITES_YPOS#4 ← phi( anim::@2/(byte*) SPRITES_YPOS#7 anim::@7/(byte*) SPRITES_YPOS#8 ) (byte) anim::yidx#6 ← phi( anim::@2/(byte) anim::yidx#1 anim::@7/(byte) anim::yidx#2 ) - (byte*) SPRITES_XPOS#4 ← phi( anim::@2/(byte*) SPRITES_XPOS#7 anim::@7/(byte*) SPRITES_XPOS#8 ) (byte) anim::xidx#5 ← phi( anim::@2/(byte) anim::xidx#6 anim::@7/(byte) anim::xidx#7 ) (byte) anim::j#2 ← phi( anim::@2/(byte) anim::j#3 anim::@7/(byte) anim::j#4 ) (byte) anim::j2#4 ← phi( anim::@2/(byte) anim::j2#5 anim::@7/(byte) anim::j2#6 ) @@ -3239,11 +3142,8 @@ anim::@3: scope:[anim] from anim::@2 anim::@7 if((boolean~) anim::$10) goto anim::@1 to:anim::@8 anim::@7: scope:[anim] from anim::@2 - (byte*) BORDERCOL#19 ← phi( anim::@2/(byte*) BORDERCOL#18 ) (byte) sin_idx_y#23 ← phi( anim::@2/(byte) sin_idx_y#22 ) (byte) sin_idx_x#19 ← phi( anim::@2/(byte) sin_idx_x#18 ) - (byte*) SPRITES_YPOS#8 ← phi( anim::@2/(byte*) SPRITES_YPOS#7 ) - (byte*) SPRITES_XPOS#8 ← phi( anim::@2/(byte*) SPRITES_XPOS#7 ) (byte) anim::xidx#7 ← phi( anim::@2/(byte) anim::xidx#6 ) (byte) anim::j#4 ← phi( anim::@2/(byte) anim::j#3 ) (byte) anim::j2#6 ← phi( anim::@2/(byte) anim::j2#5 ) @@ -3252,7 +3152,6 @@ anim::@7: scope:[anim] from anim::@2 (byte) anim::yidx#2 ← (byte~) anim::$9 to:anim::@3 anim::@8: scope:[anim] from anim::@3 - (byte*) BORDERCOL#9 ← phi( anim::@3/(byte*) BORDERCOL#14 ) (byte) sin_idx_y#14 ← phi( anim::@3/(byte) sin_idx_y#19 ) (byte) sin_idx_x#10 ← phi( anim::@3/(byte) sin_idx_x#14 ) (byte) sin_idx_x#3 ← ++ (byte) sin_idx_x#10 @@ -3262,7 +3161,6 @@ anim::@8: scope:[anim] from anim::@3 to:anim::@9 anim::@4: scope:[anim] from anim::@8 anim::@9 (byte) sin_idx_x#21 ← phi( anim::@8/(byte) sin_idx_x#3 anim::@9/(byte) sin_idx_x#4 ) - (byte*) BORDERCOL#6 ← phi( anim::@8/(byte*) BORDERCOL#9 anim::@9/(byte*) BORDERCOL#10 ) (byte) sin_idx_y#10 ← phi( anim::@8/(byte) sin_idx_y#14 anim::@9/(byte) sin_idx_y#15 ) (byte) sin_idx_y#3 ← ++ (byte) sin_idx_y#10 (boolean~) anim::$13 ← (byte) sin_idx_y#3 >= (byte) sinlen_y#0 @@ -3270,19 +3168,16 @@ anim::@4: scope:[anim] from anim::@8 anim::@9 if((boolean~) anim::$14) goto anim::@5 to:anim::@10 anim::@9: scope:[anim] from anim::@8 - (byte*) BORDERCOL#10 ← phi( anim::@8/(byte*) BORDERCOL#9 ) (byte) sin_idx_y#15 ← phi( anim::@8/(byte) sin_idx_y#14 ) (byte) sin_idx_x#4 ← (byte/signed byte/word/signed word) 0 to:anim::@4 anim::@5: scope:[anim] from anim::@10 anim::@4 (byte) sin_idx_y#16 ← phi( anim::@10/(byte) sin_idx_y#4 anim::@4/(byte) sin_idx_y#3 ) (byte) sin_idx_x#15 ← phi( anim::@10/(byte) sin_idx_x#20 anim::@4/(byte) sin_idx_x#21 ) - (byte*) BORDERCOL#2 ← phi( anim::@10/(byte*) BORDERCOL#5 anim::@4/(byte*) BORDERCOL#6 ) - *((byte*) BORDERCOL#2) ← -- *((byte*) BORDERCOL#2) + *((byte*) BORDERCOL#0) ← -- *((byte*) BORDERCOL#0) to:anim::@return anim::@10: scope:[anim] from anim::@4 (byte) sin_idx_x#20 ← phi( anim::@4/(byte) sin_idx_x#21 ) - (byte*) BORDERCOL#5 ← phi( anim::@4/(byte*) BORDERCOL#6 ) (byte) sin_idx_y#4 ← (byte/signed byte/word/signed word) 0 to:anim::@5 anim::@return: scope:[anim] from anim::@5 @@ -3293,17 +3188,10 @@ anim::@return: scope:[anim] from anim::@5 return to:@return place_sprites: scope:[place_sprites] from init::@2 - (byte*) SPRITES_COLS#2 ← phi( init::@2/(byte*) SPRITES_COLS#3 ) - (byte*) SPRITES_YPOS#5 ← phi( init::@2/(byte*) SPRITES_YPOS#9 ) - (byte*) SPRITES_XPOS#5 ← phi( init::@2/(byte*) SPRITES_XPOS#9 ) - (byte*) SCREEN#3 ← phi( init::@2/(byte*) SCREEN#5 ) - (byte*) SPRITES_EXPAND_Y#1 ← phi( init::@2/(byte*) SPRITES_EXPAND_Y#2 ) - (byte*) SPRITES_EXPAND_X#1 ← phi( init::@2/(byte*) SPRITES_EXPAND_X#2 ) - (byte*) SPRITES_ENABLE#1 ← phi( init::@2/(byte*) SPRITES_ENABLE#2 ) - *((byte*) SPRITES_ENABLE#1) ← (byte/signed byte/word/signed word) 127 - *((byte*) SPRITES_EXPAND_X#1) ← (byte/signed byte/word/signed word) 127 - *((byte*) SPRITES_EXPAND_Y#1) ← (byte/signed byte/word/signed word) 127 - (byte*~) place_sprites::$0 ← (byte*) SCREEN#3 + (word/signed word) 1016 + *((byte*) SPRITES_ENABLE#0) ← (byte/signed byte/word/signed word) 127 + *((byte*) SPRITES_EXPAND_X#0) ← (byte/signed byte/word/signed word) 127 + *((byte*) SPRITES_EXPAND_Y#0) ← (byte/signed byte/word/signed word) 127 + (byte*~) place_sprites::$0 ← (byte*) SCREEN#0 + (word/signed word) 1016 (byte*) place_sprites::sprites_ptr#0 ← (byte*~) place_sprites::$0 (byte[]~) place_sprites::$1 ← (byte[]) sprites#0 / (byte/signed byte/word/signed word) 64 (byte~) place_sprites::$2 ← ((byte)) (byte[]~) place_sprites::$1 @@ -3314,20 +3202,17 @@ place_sprites: scope:[place_sprites] from init::@2 (byte) place_sprites::j#0 ← (byte/signed byte/word/signed word) 0 to:place_sprites::@1 place_sprites::@1: scope:[place_sprites] from place_sprites place_sprites::@1 - (byte*) SPRITES_COLS#1 ← phi( place_sprites/(byte*) SPRITES_COLS#2 place_sprites::@1/(byte*) SPRITES_COLS#1 ) (byte) place_sprites::col#2 ← phi( place_sprites/(byte) place_sprites::col#0 place_sprites::@1/(byte) place_sprites::col#1 ) - (byte*) SPRITES_YPOS#2 ← phi( place_sprites/(byte*) SPRITES_YPOS#5 place_sprites::@1/(byte*) SPRITES_YPOS#2 ) (byte) place_sprites::j2#3 ← phi( place_sprites/(byte) place_sprites::j2#0 place_sprites::@1/(byte) place_sprites::j2#2 ) - (byte*) SPRITES_XPOS#2 ← phi( place_sprites/(byte*) SPRITES_XPOS#5 place_sprites::@1/(byte*) SPRITES_XPOS#2 ) (byte) place_sprites::spr_x#2 ← phi( place_sprites/(byte) place_sprites::spr_x#0 place_sprites::@1/(byte) place_sprites::spr_x#1 ) (byte) place_sprites::j#2 ← phi( place_sprites/(byte) place_sprites::j#0 place_sprites::@1/(byte) place_sprites::j#1 ) (byte*) place_sprites::sprites_ptr#1 ← phi( place_sprites/(byte*) place_sprites::sprites_ptr#0 place_sprites::@1/(byte*) place_sprites::sprites_ptr#1 ) (byte) place_sprites::spr_id#2 ← phi( place_sprites/(byte) place_sprites::spr_id#0 place_sprites::@1/(byte) place_sprites::spr_id#1 ) *((byte*) place_sprites::sprites_ptr#1 + (byte) place_sprites::j#2) ← (byte) place_sprites::spr_id#2 (byte) place_sprites::spr_id#1 ← ++ (byte) place_sprites::spr_id#2 - *((byte*) SPRITES_XPOS#2 + (byte) place_sprites::j2#3) ← (byte) place_sprites::spr_x#2 - *((byte*) SPRITES_YPOS#2 + (byte) place_sprites::j2#3) ← (byte/signed byte/word/signed word) 80 - *((byte*) SPRITES_COLS#1 + (byte) place_sprites::j#2) ← (byte) place_sprites::col#2 + *((byte*) SPRITES_XPOS#0 + (byte) place_sprites::j2#3) ← (byte) place_sprites::spr_x#2 + *((byte*) SPRITES_YPOS#0 + (byte) place_sprites::j2#3) ← (byte/signed byte/word/signed word) 80 + *((byte*) SPRITES_COLS#0 + (byte) place_sprites::j#2) ← (byte) place_sprites::col#2 (byte~) place_sprites::$3 ← (byte) place_sprites::spr_x#2 + (byte/signed byte/word/signed word) 32 (byte) place_sprites::spr_x#1 ← (byte~) place_sprites::$3 (byte~) place_sprites::$4 ← (byte/signed byte/word/signed word) 7 ^ (byte/signed byte/word/signed word) 5 @@ -3343,15 +3228,11 @@ place_sprites::@return: scope:[place_sprites] from place_sprites::@1 return to:@return gen_sprites: scope:[gen_sprites] from init::@3 - (byte*) PROCPORT#5 ← phi( init::@3/(byte*) PROCPORT#8 ) - (byte*) CHARGEN#3 ← phi( init::@3/(byte*) CHARGEN#5 ) (byte[]) gen_sprites::cml#0 ← (string) "camelot" (byte*) gen_sprites::spr#0 ← (byte[]) sprites#0 (byte) gen_sprites::i#0 ← (byte/signed byte/word/signed word) 0 to:gen_sprites::@1 gen_sprites::@1: scope:[gen_sprites] from gen_sprites gen_sprites::@3 - (byte*) PROCPORT#3 ← phi( gen_sprites/(byte*) PROCPORT#5 gen_sprites::@3/(byte*) PROCPORT#6 ) - (byte*) CHARGEN#2 ← phi( gen_sprites/(byte*) CHARGEN#3 gen_sprites::@3/(byte*) CHARGEN#4 ) (byte*) gen_sprites::spr#2 ← phi( gen_sprites/(byte*) gen_sprites::spr#0 gen_sprites::@3/(byte*) gen_sprites::spr#1 ) (byte) gen_sprites::i#2 ← phi( gen_sprites/(byte) gen_sprites::i#0 gen_sprites::@3/(byte) gen_sprites::i#1 ) (byte[]) gen_sprites::cml#1 ← phi( gen_sprites/(byte[]) gen_sprites::cml#0 gen_sprites::@3/(byte[]) gen_sprites::cml#2 ) @@ -3361,8 +3242,6 @@ gen_sprites::@1: scope:[gen_sprites] from gen_sprites gen_sprites::@3 call gen_chargen_sprite param-assignment to:gen_sprites::@3 gen_sprites::@3: scope:[gen_sprites] from gen_sprites::@1 - (byte*) PROCPORT#6 ← phi( gen_sprites::@1/(byte*) PROCPORT#3 ) - (byte*) CHARGEN#4 ← phi( gen_sprites::@1/(byte*) CHARGEN#2 ) (byte[]) gen_sprites::cml#2 ← phi( gen_sprites::@1/(byte[]) gen_sprites::cml#1 ) (byte) gen_sprites::i#3 ← phi( gen_sprites::@1/(byte) gen_sprites::i#2 ) (byte*) gen_sprites::spr#3 ← phi( gen_sprites::@1/(byte*) gen_sprites::spr#2 ) @@ -3377,19 +3256,16 @@ gen_sprites::@return: scope:[gen_sprites] from gen_sprites::@3 to:@return gen_chargen_sprite: scope:[gen_chargen_sprite] from gen_sprites::@1 (byte*) gen_chargen_sprite::sprite#12 ← phi( gen_sprites::@1/(byte*) gen_chargen_sprite::sprite#0 ) - (byte*) PROCPORT#1 ← phi( gen_sprites::@1/(byte*) PROCPORT#3 ) - (byte*) CHARGEN#1 ← phi( gen_sprites::@1/(byte*) CHARGEN#2 ) (byte) gen_chargen_sprite::ch#1 ← phi( gen_sprites::@1/(byte) gen_chargen_sprite::ch#0 ) (word~) gen_chargen_sprite::$0 ← ((word)) (byte) gen_chargen_sprite::ch#1 (word~) gen_chargen_sprite::$1 ← (word~) gen_chargen_sprite::$0 << (byte/signed byte/word/signed word) 3 - (byte*~) gen_chargen_sprite::$2 ← (byte*) CHARGEN#1 + (word~) gen_chargen_sprite::$1 + (byte*~) gen_chargen_sprite::$2 ← (byte*) CHARGEN#0 + (word~) gen_chargen_sprite::$1 (byte*) gen_chargen_sprite::chargen#0 ← (byte*~) gen_chargen_sprite::$2 asm { sei } - *((byte*) PROCPORT#1) ← (byte/signed byte/word/signed word) 50 + *((byte*) PROCPORT#0) ← (byte/signed byte/word/signed word) 50 (byte) gen_chargen_sprite::y#0 ← (byte/signed byte/word/signed word) 0 to:gen_chargen_sprite::@1 gen_chargen_sprite::@1: scope:[gen_chargen_sprite] from gen_chargen_sprite gen_chargen_sprite::@9 - (byte*) PROCPORT#19 ← phi( gen_chargen_sprite/(byte*) PROCPORT#1 gen_chargen_sprite::@9/(byte*) PROCPORT#4 ) (byte*) gen_chargen_sprite::sprite#11 ← phi( gen_chargen_sprite/(byte*) gen_chargen_sprite::sprite#12 gen_chargen_sprite::@9/(byte*) gen_chargen_sprite::sprite#2 ) (byte) gen_chargen_sprite::y#2 ← phi( gen_chargen_sprite/(byte) gen_chargen_sprite::y#0 gen_chargen_sprite::@9/(byte) gen_chargen_sprite::y#1 ) (byte*) gen_chargen_sprite::chargen#1 ← phi( gen_chargen_sprite/(byte*) gen_chargen_sprite::chargen#0 gen_chargen_sprite::@9/(byte*) gen_chargen_sprite::chargen#2 ) @@ -3400,7 +3276,6 @@ gen_chargen_sprite::@1: scope:[gen_chargen_sprite] from gen_chargen_sprite gen_ (byte) gen_chargen_sprite::x#0 ← (byte/signed byte/word/signed word) 0 to:gen_chargen_sprite::@2 gen_chargen_sprite::@2: scope:[gen_chargen_sprite] from gen_chargen_sprite::@1 gen_chargen_sprite::@8 - (byte*) PROCPORT#16 ← phi( gen_chargen_sprite::@1/(byte*) PROCPORT#19 gen_chargen_sprite::@8/(byte*) PROCPORT#7 ) (byte*) gen_chargen_sprite::chargen#8 ← phi( gen_chargen_sprite::@1/(byte*) gen_chargen_sprite::chargen#1 gen_chargen_sprite::@8/(byte*) gen_chargen_sprite::chargen#3 ) (byte) gen_chargen_sprite::y#9 ← phi( gen_chargen_sprite::@1/(byte) gen_chargen_sprite::y#2 gen_chargen_sprite::@8/(byte) gen_chargen_sprite::y#4 ) (byte) gen_chargen_sprite::x#7 ← phi( gen_chargen_sprite::@1/(byte) gen_chargen_sprite::x#0 gen_chargen_sprite::@8/(byte) gen_chargen_sprite::x#1 ) @@ -3415,7 +3290,6 @@ gen_chargen_sprite::@2: scope:[gen_chargen_sprite] from gen_chargen_sprite::@1 if((boolean~) gen_chargen_sprite::$6) goto gen_chargen_sprite::@3 to:gen_chargen_sprite::@6 gen_chargen_sprite::@3: scope:[gen_chargen_sprite] from gen_chargen_sprite::@2 gen_chargen_sprite::@6 - (byte*) PROCPORT#14 ← phi( gen_chargen_sprite::@2/(byte*) PROCPORT#16 gen_chargen_sprite::@6/(byte*) PROCPORT#17 ) (byte*) gen_chargen_sprite::chargen#7 ← phi( gen_chargen_sprite::@2/(byte*) gen_chargen_sprite::chargen#8 gen_chargen_sprite::@6/(byte*) gen_chargen_sprite::chargen#9 ) (byte) gen_chargen_sprite::y#8 ← phi( gen_chargen_sprite::@2/(byte) gen_chargen_sprite::y#9 gen_chargen_sprite::@6/(byte) gen_chargen_sprite::y#10 ) (byte) gen_chargen_sprite::x#6 ← phi( gen_chargen_sprite::@2/(byte) gen_chargen_sprite::x#7 gen_chargen_sprite::@6/(byte) gen_chargen_sprite::x#8 ) @@ -3427,7 +3301,6 @@ gen_chargen_sprite::@3: scope:[gen_chargen_sprite] from gen_chargen_sprite::@2 (byte) gen_chargen_sprite::b#0 ← (byte/signed byte/word/signed word) 0 to:gen_chargen_sprite::@4 gen_chargen_sprite::@6: scope:[gen_chargen_sprite] from gen_chargen_sprite::@2 - (byte*) PROCPORT#17 ← phi( gen_chargen_sprite::@2/(byte*) PROCPORT#16 ) (byte*) gen_chargen_sprite::chargen#9 ← phi( gen_chargen_sprite::@2/(byte*) gen_chargen_sprite::chargen#8 ) (byte) gen_chargen_sprite::y#10 ← phi( gen_chargen_sprite::@2/(byte) gen_chargen_sprite::y#9 ) (byte) gen_chargen_sprite::x#8 ← phi( gen_chargen_sprite::@2/(byte) gen_chargen_sprite::x#7 ) @@ -3438,7 +3311,6 @@ gen_chargen_sprite::@6: scope:[gen_chargen_sprite] from gen_chargen_sprite::@2 (byte) gen_chargen_sprite::c#1 ← (byte/signed byte/word/signed word) 1 to:gen_chargen_sprite::@3 gen_chargen_sprite::@4: scope:[gen_chargen_sprite] from gen_chargen_sprite::@3 gen_chargen_sprite::@5 - (byte*) PROCPORT#11 ← phi( gen_chargen_sprite::@3/(byte*) PROCPORT#14 gen_chargen_sprite::@5/(byte*) PROCPORT#9 ) (byte*) gen_chargen_sprite::chargen#5 ← phi( gen_chargen_sprite::@3/(byte*) gen_chargen_sprite::chargen#7 gen_chargen_sprite::@5/(byte*) gen_chargen_sprite::chargen#4 ) (byte) gen_chargen_sprite::y#6 ← phi( gen_chargen_sprite::@3/(byte) gen_chargen_sprite::y#8 gen_chargen_sprite::@5/(byte) gen_chargen_sprite::y#5 ) (byte) gen_chargen_sprite::x#4 ← phi( gen_chargen_sprite::@3/(byte) gen_chargen_sprite::x#6 gen_chargen_sprite::@5/(byte) gen_chargen_sprite::x#3 ) @@ -3457,7 +3329,6 @@ gen_chargen_sprite::@4: scope:[gen_chargen_sprite] from gen_chargen_sprite::@3 if((boolean~) gen_chargen_sprite::$10) goto gen_chargen_sprite::@5 to:gen_chargen_sprite::@7 gen_chargen_sprite::@5: scope:[gen_chargen_sprite] from gen_chargen_sprite::@4 gen_chargen_sprite::@7 - (byte*) PROCPORT#9 ← phi( gen_chargen_sprite::@4/(byte*) PROCPORT#11 gen_chargen_sprite::@7/(byte*) PROCPORT#12 ) (byte*) gen_chargen_sprite::chargen#4 ← phi( gen_chargen_sprite::@4/(byte*) gen_chargen_sprite::chargen#5 gen_chargen_sprite::@7/(byte*) gen_chargen_sprite::chargen#6 ) (byte) gen_chargen_sprite::y#5 ← phi( gen_chargen_sprite::@4/(byte) gen_chargen_sprite::y#6 gen_chargen_sprite::@7/(byte) gen_chargen_sprite::y#7 ) (byte*) gen_chargen_sprite::sprite#8 ← phi( gen_chargen_sprite::@4/(byte*) gen_chargen_sprite::sprite#5 gen_chargen_sprite::@7/(byte*) gen_chargen_sprite::sprite#1 ) @@ -3472,7 +3343,6 @@ gen_chargen_sprite::@5: scope:[gen_chargen_sprite] from gen_chargen_sprite::@4 if((boolean~) gen_chargen_sprite::$11) goto gen_chargen_sprite::@4 to:gen_chargen_sprite::@8 gen_chargen_sprite::@7: scope:[gen_chargen_sprite] from gen_chargen_sprite::@4 - (byte*) PROCPORT#12 ← phi( gen_chargen_sprite::@4/(byte*) PROCPORT#11 ) (byte*) gen_chargen_sprite::chargen#6 ← phi( gen_chargen_sprite::@4/(byte*) gen_chargen_sprite::chargen#5 ) (byte) gen_chargen_sprite::y#7 ← phi( gen_chargen_sprite::@4/(byte) gen_chargen_sprite::y#6 ) (byte) gen_chargen_sprite::x#5 ← phi( gen_chargen_sprite::@4/(byte) gen_chargen_sprite::x#4 ) @@ -3491,7 +3361,6 @@ gen_chargen_sprite::@7: scope:[gen_chargen_sprite] from gen_chargen_sprite::@4 gen_chargen_sprite::@8: scope:[gen_chargen_sprite] from gen_chargen_sprite::@5 (byte) gen_chargen_sprite::s_gen_cnt#8 ← phi( gen_chargen_sprite::@5/(byte) gen_chargen_sprite::s_gen_cnt#5 ) (byte) gen_chargen_sprite::s_gen#9 ← phi( gen_chargen_sprite::@5/(byte) gen_chargen_sprite::s_gen#6 ) - (byte*) PROCPORT#7 ← phi( gen_chargen_sprite::@5/(byte*) PROCPORT#9 ) (byte*) gen_chargen_sprite::chargen#3 ← phi( gen_chargen_sprite::@5/(byte*) gen_chargen_sprite::chargen#4 ) (byte) gen_chargen_sprite::y#4 ← phi( gen_chargen_sprite::@5/(byte) gen_chargen_sprite::y#5 ) (byte*) gen_chargen_sprite::sprite#6 ← phi( gen_chargen_sprite::@5/(byte*) gen_chargen_sprite::sprite#8 ) @@ -3504,7 +3373,6 @@ gen_chargen_sprite::@8: scope:[gen_chargen_sprite] from gen_chargen_sprite::@5 if((boolean~) gen_chargen_sprite::$13) goto gen_chargen_sprite::@2 to:gen_chargen_sprite::@9 gen_chargen_sprite::@9: scope:[gen_chargen_sprite] from gen_chargen_sprite::@8 - (byte*) PROCPORT#4 ← phi( gen_chargen_sprite::@8/(byte*) PROCPORT#7 ) (byte*) gen_chargen_sprite::chargen#2 ← phi( gen_chargen_sprite::@8/(byte*) gen_chargen_sprite::chargen#3 ) (byte) gen_chargen_sprite::y#3 ← phi( gen_chargen_sprite::@8/(byte) gen_chargen_sprite::y#4 ) (byte*) gen_chargen_sprite::sprite#4 ← phi( gen_chargen_sprite::@8/(byte*) gen_chargen_sprite::sprite#6 ) @@ -3515,15 +3383,13 @@ gen_chargen_sprite::@9: scope:[gen_chargen_sprite] from gen_chargen_sprite::@8 if((boolean~) gen_chargen_sprite::$15) goto gen_chargen_sprite::@1 to:gen_chargen_sprite::@10 gen_chargen_sprite::@10: scope:[gen_chargen_sprite] from gen_chargen_sprite::@9 - (byte*) PROCPORT#2 ← phi( gen_chargen_sprite::@9/(byte*) PROCPORT#4 ) - *((byte*) PROCPORT#2) ← (byte/signed byte/word/signed word) 55 + *((byte*) PROCPORT#0) ← (byte/signed byte/word/signed word) 55 asm { cli } to:gen_chargen_sprite::@return gen_chargen_sprite::@return: scope:[gen_chargen_sprite] from gen_chargen_sprite::@10 return to:@return gen_sintab: scope:[gen_sintab] from init::@4 init::@5 - (byte*) BORDERCOL#41 ← phi( init::@4/(byte*) BORDERCOL#42 init::@5/(byte*) BORDERCOL#43 ) (byte*) gen_sintab::sintab#23 ← phi( init::@4/(byte*) gen_sintab::sintab#0 init::@5/(byte*) gen_sintab::sintab#1 ) (byte) gen_sintab::length#23 ← phi( init::@4/(byte) gen_sintab::length#0 init::@5/(byte) gen_sintab::length#1 ) (byte) gen_sintab::min#4 ← phi( init::@4/(byte) gen_sintab::min#0 init::@5/(byte) gen_sintab::min#1 ) @@ -3537,7 +3403,6 @@ gen_sintab: scope:[gen_sintab] from init::@4 init::@5 call setFAC param-assignment to:gen_sintab::@3 gen_sintab::@3: scope:[gen_sintab] from gen_sintab - (byte*) BORDERCOL#40 ← phi( gen_sintab/(byte*) BORDERCOL#41 ) (byte*) gen_sintab::sintab#22 ← phi( gen_sintab/(byte*) gen_sintab::sintab#23 ) (byte) gen_sintab::length#22 ← phi( gen_sintab/(byte) gen_sintab::length#23 ) (byte[]) gen_sintab::f_i#21 ← phi( gen_sintab/(byte[]) gen_sintab::f_i#0 ) @@ -3548,7 +3413,6 @@ gen_sintab::@3: scope:[gen_sintab] from gen_sintab call setARGtoFAC param-assignment to:gen_sintab::@4 gen_sintab::@4: scope:[gen_sintab] from gen_sintab::@3 - (byte*) BORDERCOL#39 ← phi( gen_sintab::@3/(byte*) BORDERCOL#40 ) (byte*) gen_sintab::sintab#21 ← phi( gen_sintab::@3/(byte*) gen_sintab::sintab#22 ) (byte) gen_sintab::length#21 ← phi( gen_sintab::@3/(byte) gen_sintab::length#22 ) (byte[]) gen_sintab::f_i#20 ← phi( gen_sintab::@3/(byte[]) gen_sintab::f_i#21 ) @@ -3562,7 +3426,6 @@ gen_sintab::@4: scope:[gen_sintab] from gen_sintab::@3 call setFAC param-assignment to:gen_sintab::@5 gen_sintab::@5: scope:[gen_sintab] from gen_sintab::@4 - (byte*) BORDERCOL#38 ← phi( gen_sintab::@4/(byte*) BORDERCOL#39 ) (byte*) gen_sintab::sintab#20 ← phi( gen_sintab::@4/(byte*) gen_sintab::sintab#21 ) (byte) gen_sintab::length#20 ← phi( gen_sintab::@4/(byte) gen_sintab::length#21 ) (byte[]) gen_sintab::f_i#19 ← phi( gen_sintab::@4/(byte[]) gen_sintab::f_i#20 ) @@ -3573,7 +3436,6 @@ gen_sintab::@5: scope:[gen_sintab] from gen_sintab::@4 call setMEMtoFAC param-assignment to:gen_sintab::@6 gen_sintab::@6: scope:[gen_sintab] from gen_sintab::@5 - (byte*) BORDERCOL#37 ← phi( gen_sintab::@5/(byte*) BORDERCOL#38 ) (byte*) gen_sintab::sintab#19 ← phi( gen_sintab::@5/(byte*) gen_sintab::sintab#20 ) (byte) gen_sintab::length#19 ← phi( gen_sintab::@5/(byte) gen_sintab::length#20 ) (byte[]) gen_sintab::f_i#18 ← phi( gen_sintab::@5/(byte[]) gen_sintab::f_i#19 ) @@ -3583,7 +3445,6 @@ gen_sintab::@6: scope:[gen_sintab] from gen_sintab::@5 call subFACfromARG param-assignment to:gen_sintab::@7 gen_sintab::@7: scope:[gen_sintab] from gen_sintab::@6 - (byte*) BORDERCOL#36 ← phi( gen_sintab::@6/(byte*) BORDERCOL#37 ) (byte*) gen_sintab::sintab#18 ← phi( gen_sintab::@6/(byte*) gen_sintab::sintab#19 ) (byte) gen_sintab::length#18 ← phi( gen_sintab::@6/(byte) gen_sintab::length#19 ) (byte[]) gen_sintab::f_i#17 ← phi( gen_sintab::@6/(byte[]) gen_sintab::f_i#18 ) @@ -3594,7 +3455,6 @@ gen_sintab::@7: scope:[gen_sintab] from gen_sintab::@6 call setMEMtoFAC param-assignment to:gen_sintab::@8 gen_sintab::@8: scope:[gen_sintab] from gen_sintab::@7 - (byte*) BORDERCOL#35 ← phi( gen_sintab::@7/(byte*) BORDERCOL#36 ) (byte*) gen_sintab::sintab#17 ← phi( gen_sintab::@7/(byte*) gen_sintab::sintab#18 ) (byte) gen_sintab::length#17 ← phi( gen_sintab::@7/(byte) gen_sintab::length#18 ) (byte[]) gen_sintab::f_i#16 ← phi( gen_sintab::@7/(byte[]) gen_sintab::f_i#17 ) @@ -3605,7 +3465,6 @@ gen_sintab::@8: scope:[gen_sintab] from gen_sintab::@7 call setFAC param-assignment to:gen_sintab::@9 gen_sintab::@9: scope:[gen_sintab] from gen_sintab::@8 - (byte*) BORDERCOL#34 ← phi( gen_sintab::@8/(byte*) BORDERCOL#35 ) (byte*) gen_sintab::sintab#16 ← phi( gen_sintab::@8/(byte*) gen_sintab::sintab#17 ) (byte) gen_sintab::length#16 ← phi( gen_sintab::@8/(byte) gen_sintab::length#17 ) (byte[]) gen_sintab::f_i#14 ← phi( gen_sintab::@8/(byte[]) gen_sintab::f_i#16 ) @@ -3616,7 +3475,6 @@ gen_sintab::@9: scope:[gen_sintab] from gen_sintab::@8 call divMEMbyFAC param-assignment to:gen_sintab::@10 gen_sintab::@10: scope:[gen_sintab] from gen_sintab::@9 - (byte*) BORDERCOL#33 ← phi( gen_sintab::@9/(byte*) BORDERCOL#34 ) (byte*) gen_sintab::sintab#15 ← phi( gen_sintab::@9/(byte*) gen_sintab::sintab#16 ) (byte) gen_sintab::length#15 ← phi( gen_sintab::@9/(byte) gen_sintab::length#16 ) (byte[]) gen_sintab::f_i#12 ← phi( gen_sintab::@9/(byte[]) gen_sintab::f_i#14 ) @@ -3627,7 +3485,6 @@ gen_sintab::@10: scope:[gen_sintab] from gen_sintab::@9 call setMEMtoFAC param-assignment to:gen_sintab::@11 gen_sintab::@11: scope:[gen_sintab] from gen_sintab::@10 - (byte*) BORDERCOL#32 ← phi( gen_sintab::@10/(byte*) BORDERCOL#33 ) (byte*) gen_sintab::sintab#14 ← phi( gen_sintab::@10/(byte*) gen_sintab::sintab#15 ) (byte[]) gen_sintab::f_amp#20 ← phi( gen_sintab::@10/(byte[]) gen_sintab::f_amp#3 ) (byte) gen_sintab::length#14 ← phi( gen_sintab::@10/(byte) gen_sintab::length#15 ) @@ -3638,7 +3495,6 @@ gen_sintab::@11: scope:[gen_sintab] from gen_sintab::@10 call addMEMtoFAC param-assignment to:gen_sintab::@12 gen_sintab::@12: scope:[gen_sintab] from gen_sintab::@11 - (byte*) BORDERCOL#31 ← phi( gen_sintab::@11/(byte*) BORDERCOL#32 ) (byte*) gen_sintab::sintab#13 ← phi( gen_sintab::@11/(byte*) gen_sintab::sintab#14 ) (byte[]) gen_sintab::f_amp#18 ← phi( gen_sintab::@11/(byte[]) gen_sintab::f_amp#20 ) (byte) gen_sintab::length#12 ← phi( gen_sintab::@11/(byte) gen_sintab::length#14 ) @@ -3649,7 +3505,6 @@ gen_sintab::@12: scope:[gen_sintab] from gen_sintab::@11 call setMEMtoFAC param-assignment to:gen_sintab::@13 gen_sintab::@13: scope:[gen_sintab] from gen_sintab::@12 - (byte*) BORDERCOL#30 ← phi( gen_sintab::@12/(byte*) BORDERCOL#31 ) (byte*) gen_sintab::sintab#12 ← phi( gen_sintab::@12/(byte*) gen_sintab::sintab#13 ) (byte[]) gen_sintab::f_min#19 ← phi( gen_sintab::@12/(byte[]) gen_sintab::f_min#3 ) (byte[]) gen_sintab::f_amp#16 ← phi( gen_sintab::@12/(byte[]) gen_sintab::f_amp#18 ) @@ -3659,7 +3514,6 @@ gen_sintab::@13: scope:[gen_sintab] from gen_sintab::@12 (byte) gen_sintab::i#0 ← (byte/signed byte/word/signed word) 0 to:gen_sintab::@1 gen_sintab::@1: scope:[gen_sintab] from gen_sintab::@13 gen_sintab::@22 - (byte*) BORDERCOL#29 ← phi( gen_sintab::@13/(byte*) BORDERCOL#30 gen_sintab::@22/(byte*) BORDERCOL#3 ) (byte*) gen_sintab::sintab#11 ← phi( gen_sintab::@13/(byte*) gen_sintab::sintab#12 gen_sintab::@22/(byte*) gen_sintab::sintab#2 ) (byte[]) gen_sintab::f_min#18 ← phi( gen_sintab::@13/(byte[]) gen_sintab::f_min#19 gen_sintab::@22/(byte[]) gen_sintab::f_min#20 ) (byte[]) gen_sintab::f_amp#15 ← phi( gen_sintab::@13/(byte[]) gen_sintab::f_amp#16 gen_sintab::@22/(byte[]) gen_sintab::f_amp#17 ) @@ -3672,7 +3526,6 @@ gen_sintab::@1: scope:[gen_sintab] from gen_sintab::@13 gen_sintab::@22 call setFAC param-assignment to:gen_sintab::@14 gen_sintab::@14: scope:[gen_sintab] from gen_sintab::@1 - (byte*) BORDERCOL#28 ← phi( gen_sintab::@1/(byte*) BORDERCOL#29 ) (byte) gen_sintab::i#11 ← phi( gen_sintab::@1/(byte) gen_sintab::i#2 ) (byte*) gen_sintab::sintab#10 ← phi( gen_sintab::@1/(byte*) gen_sintab::sintab#11 ) (byte[]) gen_sintab::f_min#17 ← phi( gen_sintab::@1/(byte[]) gen_sintab::f_min#18 ) @@ -3685,7 +3538,6 @@ gen_sintab::@14: scope:[gen_sintab] from gen_sintab::@1 to:gen_sintab::@15 gen_sintab::@15: scope:[gen_sintab] from gen_sintab::@14 (byte*) gen_sintab::f_2pi#18 ← phi( gen_sintab::@14/(byte*) gen_sintab::f_2pi#1 ) - (byte*) BORDERCOL#27 ← phi( gen_sintab::@14/(byte*) BORDERCOL#28 ) (byte) gen_sintab::i#10 ← phi( gen_sintab::@14/(byte) gen_sintab::i#11 ) (byte*) gen_sintab::sintab#9 ← phi( gen_sintab::@14/(byte*) gen_sintab::sintab#10 ) (byte[]) gen_sintab::f_min#16 ← phi( gen_sintab::@14/(byte[]) gen_sintab::f_min#17 ) @@ -3697,7 +3549,6 @@ gen_sintab::@15: scope:[gen_sintab] from gen_sintab::@14 to:gen_sintab::@16 gen_sintab::@16: scope:[gen_sintab] from gen_sintab::@15 (byte*) gen_sintab::f_2pi#16 ← phi( gen_sintab::@15/(byte*) gen_sintab::f_2pi#18 ) - (byte*) BORDERCOL#25 ← phi( gen_sintab::@15/(byte*) BORDERCOL#27 ) (byte) gen_sintab::i#9 ← phi( gen_sintab::@15/(byte) gen_sintab::i#10 ) (byte*) gen_sintab::sintab#8 ← phi( gen_sintab::@15/(byte*) gen_sintab::sintab#9 ) (byte[]) gen_sintab::f_min#14 ← phi( gen_sintab::@15/(byte[]) gen_sintab::f_min#16 ) @@ -3711,7 +3562,6 @@ gen_sintab::@16: scope:[gen_sintab] from gen_sintab::@15 gen_sintab::@17: scope:[gen_sintab] from gen_sintab::@16 (byte*) gen_sintab::f_2pi#14 ← phi( gen_sintab::@16/(byte*) gen_sintab::f_2pi#16 ) (byte) gen_sintab::length#13 ← phi( gen_sintab::@16/(byte) gen_sintab::length#2 ) - (byte*) BORDERCOL#24 ← phi( gen_sintab::@16/(byte*) BORDERCOL#25 ) (byte) gen_sintab::i#8 ← phi( gen_sintab::@16/(byte) gen_sintab::i#9 ) (byte*) gen_sintab::sintab#7 ← phi( gen_sintab::@16/(byte*) gen_sintab::sintab#8 ) (byte[]) gen_sintab::f_min#12 ← phi( gen_sintab::@16/(byte[]) gen_sintab::f_min#14 ) @@ -3724,7 +3574,6 @@ gen_sintab::@18: scope:[gen_sintab] from gen_sintab::@17 (byte[]) gen_sintab::f_i#15 ← phi( gen_sintab::@17/(byte[]) gen_sintab::f_i#2 ) (byte*) gen_sintab::f_2pi#12 ← phi( gen_sintab::@17/(byte*) gen_sintab::f_2pi#14 ) (byte) gen_sintab::length#11 ← phi( gen_sintab::@17/(byte) gen_sintab::length#13 ) - (byte*) BORDERCOL#20 ← phi( gen_sintab::@17/(byte*) BORDERCOL#24 ) (byte) gen_sintab::i#7 ← phi( gen_sintab::@17/(byte) gen_sintab::i#8 ) (byte*) gen_sintab::sintab#6 ← phi( gen_sintab::@17/(byte*) gen_sintab::sintab#7 ) (byte[]) gen_sintab::f_min#10 ← phi( gen_sintab::@17/(byte[]) gen_sintab::f_min#12 ) @@ -3735,7 +3584,6 @@ gen_sintab::@19: scope:[gen_sintab] from gen_sintab::@18 (byte[]) gen_sintab::f_i#13 ← phi( gen_sintab::@18/(byte[]) gen_sintab::f_i#15 ) (byte*) gen_sintab::f_2pi#10 ← phi( gen_sintab::@18/(byte*) gen_sintab::f_2pi#12 ) (byte) gen_sintab::length#9 ← phi( gen_sintab::@18/(byte) gen_sintab::length#11 ) - (byte*) BORDERCOL#15 ← phi( gen_sintab::@18/(byte*) BORDERCOL#20 ) (byte) gen_sintab::i#6 ← phi( gen_sintab::@18/(byte) gen_sintab::i#7 ) (byte*) gen_sintab::sintab#5 ← phi( gen_sintab::@18/(byte*) gen_sintab::sintab#6 ) (byte[]) gen_sintab::f_min#7 ← phi( gen_sintab::@18/(byte[]) gen_sintab::f_min#10 ) @@ -3748,7 +3596,6 @@ gen_sintab::@20: scope:[gen_sintab] from gen_sintab::@19 (byte[]) gen_sintab::f_i#11 ← phi( gen_sintab::@19/(byte[]) gen_sintab::f_i#13 ) (byte*) gen_sintab::f_2pi#8 ← phi( gen_sintab::@19/(byte*) gen_sintab::f_2pi#10 ) (byte) gen_sintab::length#7 ← phi( gen_sintab::@19/(byte) gen_sintab::length#9 ) - (byte*) BORDERCOL#11 ← phi( gen_sintab::@19/(byte*) BORDERCOL#15 ) (byte) gen_sintab::i#5 ← phi( gen_sintab::@19/(byte) gen_sintab::i#6 ) (byte*) gen_sintab::sintab#4 ← phi( gen_sintab::@19/(byte*) gen_sintab::sintab#5 ) (byte[]) gen_sintab::f_min#4 ← phi( gen_sintab::@19/(byte[]) gen_sintab::f_min#7 ) @@ -3761,7 +3608,6 @@ gen_sintab::@21: scope:[gen_sintab] from gen_sintab::@20 (byte[]) gen_sintab::f_i#9 ← phi( gen_sintab::@20/(byte[]) gen_sintab::f_i#11 ) (byte*) gen_sintab::f_2pi#6 ← phi( gen_sintab::@20/(byte*) gen_sintab::f_2pi#8 ) (byte) gen_sintab::length#5 ← phi( gen_sintab::@20/(byte) gen_sintab::length#7 ) - (byte*) BORDERCOL#7 ← phi( gen_sintab::@20/(byte*) BORDERCOL#11 ) (byte) gen_sintab::i#4 ← phi( gen_sintab::@20/(byte) gen_sintab::i#5 ) (byte*) gen_sintab::sintab#3 ← phi( gen_sintab::@20/(byte*) gen_sintab::sintab#4 ) (word) getFAC::return#2 ← call getFAC param-assignment @@ -3772,14 +3618,13 @@ gen_sintab::@22: scope:[gen_sintab] from gen_sintab::@21 (byte[]) gen_sintab::f_i#7 ← phi( gen_sintab::@21/(byte[]) gen_sintab::f_i#9 ) (byte*) gen_sintab::f_2pi#4 ← phi( gen_sintab::@21/(byte*) gen_sintab::f_2pi#6 ) (byte) gen_sintab::length#3 ← phi( gen_sintab::@21/(byte) gen_sintab::length#5 ) - (byte*) BORDERCOL#3 ← phi( gen_sintab::@21/(byte*) BORDERCOL#7 ) (byte) gen_sintab::i#3 ← phi( gen_sintab::@21/(byte) gen_sintab::i#4 ) (byte*) gen_sintab::sintab#2 ← phi( gen_sintab::@21/(byte*) gen_sintab::sintab#3 ) (word) getFAC::return#4 ← phi( gen_sintab::@21/(word) getFAC::return#2 ) (word~) gen_sintab::$23 ← (word) getFAC::return#4 (byte~) gen_sintab::$24 ← ((byte)) (word~) gen_sintab::$23 *((byte*) gen_sintab::sintab#2 + (byte) gen_sintab::i#3) ← (byte~) gen_sintab::$24 - *((byte*) BORDERCOL#3) ← ++ *((byte*) BORDERCOL#3) + *((byte*) BORDERCOL#0) ← ++ *((byte*) BORDERCOL#0) (byte) gen_sintab::i#1 ← ++ (byte) gen_sintab::i#3 (boolean~) gen_sintab::$25 ← (byte) gen_sintab::i#1 < (byte) gen_sintab::length#3 if((boolean~) gen_sintab::$25) goto gen_sintab::@1 @@ -3788,17 +3633,6 @@ gen_sintab::@return: scope:[gen_sintab] from gen_sintab::@22 return to:@return @39: scope:[] from @34 - (byte*) PROCPORT#20 ← phi( @34/(byte*) PROCPORT#21 ) - (byte*) CHARGEN#10 ← phi( @34/(byte*) CHARGEN#11 ) - (byte*) SPRITES_COLS#7 ← phi( @34/(byte*) SPRITES_COLS#8 ) - (byte*) SPRITES_YPOS#18 ← phi( @34/(byte*) SPRITES_YPOS#19 ) - (byte*) SPRITES_XPOS#18 ← phi( @34/(byte*) SPRITES_XPOS#19 ) - (byte*) SPRITES_EXPAND_Y#6 ← phi( @34/(byte*) SPRITES_EXPAND_Y#7 ) - (byte*) SPRITES_EXPAND_X#6 ← phi( @34/(byte*) SPRITES_EXPAND_X#7 ) - (byte*) SPRITES_ENABLE#6 ← phi( @34/(byte*) SPRITES_ENABLE#7 ) - (byte*) BORDERCOL#21 ← phi( @34/(byte*) BORDERCOL#26 ) - (byte*) RASTER#6 ← phi( @34/(byte*) RASTER#8 ) - (byte*) SCREEN#6 ← phi( @34/(byte*) SCREEN#7 ) (byte) sin_idx_y#17 ← phi( @34/(byte) sin_idx_y#2 ) (byte) sin_idx_x#16 ← phi( @34/(byte) sin_idx_x#2 ) call main param-assignment @@ -3931,61 +3765,30 @@ sinFAC::@return: scope:[sinFAC] from sinFAC (byte[]) sprites#0 ← ((byte*)) (word/signed word) 8192 to:@34 main: scope:[main] from @39 - (byte*) PROCPORT#18 ← phi( @39/(byte*) PROCPORT#20 ) - (byte*) CHARGEN#9 ← phi( @39/(byte*) CHARGEN#10 ) - (byte*) SPRITES_COLS#6 ← phi( @39/(byte*) SPRITES_COLS#7 ) - (byte*) SPRITES_YPOS#16 ← phi( @39/(byte*) SPRITES_YPOS#18 ) - (byte*) SPRITES_XPOS#16 ← phi( @39/(byte*) SPRITES_XPOS#18 ) - (byte*) SPRITES_EXPAND_Y#5 ← phi( @39/(byte*) SPRITES_EXPAND_Y#6 ) - (byte*) SPRITES_EXPAND_X#5 ← phi( @39/(byte*) SPRITES_EXPAND_X#6 ) - (byte*) SPRITES_ENABLE#5 ← phi( @39/(byte*) SPRITES_ENABLE#6 ) - (byte*) BORDERCOL#16 ← phi( @39/(byte*) BORDERCOL#21 ) (byte) sin_idx_y#24 ← phi( @39/(byte) sin_idx_y#17 ) (byte) sin_idx_x#26 ← phi( @39/(byte) sin_idx_x#16 ) - (byte*) RASTER#4 ← phi( @39/(byte*) RASTER#6 ) - (byte*) SCREEN#4 ← phi( @39/(byte*) SCREEN#6 ) call init param-assignment to:main::@5 main::@5: scope:[main] from main - (byte*) SPRITES_YPOS#14 ← phi( main/(byte*) SPRITES_YPOS#16 ) - (byte*) SPRITES_XPOS#14 ← phi( main/(byte*) SPRITES_XPOS#16 ) - (byte*) BORDERCOL#13 ← phi( main/(byte*) BORDERCOL#16 ) (byte) sin_idx_y#21 ← phi( main/(byte) sin_idx_y#24 ) (byte) sin_idx_x#23 ← phi( main/(byte) sin_idx_x#26 ) - (byte*) RASTER#3 ← phi( main/(byte*) RASTER#4 ) to:main::@2 main::@1: scope:[main] from main::@6 - (byte*) SPRITES_YPOS#13 ← phi( main::@6/(byte*) SPRITES_YPOS#17 ) - (byte*) SPRITES_XPOS#13 ← phi( main::@6/(byte*) SPRITES_XPOS#17 ) - (byte*) BORDERCOL#12 ← phi( main::@6/(byte*) BORDERCOL#17 ) (byte) sin_idx_y#20 ← phi( main::@6/(byte) sin_idx_y#0 ) (byte) sin_idx_x#22 ← phi( main::@6/(byte) sin_idx_x#0 ) - (byte*) RASTER#2 ← phi( main::@6/(byte*) RASTER#5 ) to:main::@2 main::@2: scope:[main] from main::@1 main::@2 main::@5 - (byte*) SPRITES_YPOS#10 ← phi( main::@1/(byte*) SPRITES_YPOS#13 main::@2/(byte*) SPRITES_YPOS#10 main::@5/(byte*) SPRITES_YPOS#14 ) - (byte*) SPRITES_XPOS#10 ← phi( main::@1/(byte*) SPRITES_XPOS#13 main::@2/(byte*) SPRITES_XPOS#10 main::@5/(byte*) SPRITES_XPOS#14 ) - (byte*) BORDERCOL#8 ← phi( main::@1/(byte*) BORDERCOL#12 main::@2/(byte*) BORDERCOL#8 main::@5/(byte*) BORDERCOL#13 ) (byte) sin_idx_y#18 ← phi( main::@1/(byte) sin_idx_y#20 main::@2/(byte) sin_idx_y#18 main::@5/(byte) sin_idx_y#21 ) (byte) sin_idx_x#17 ← phi( main::@1/(byte) sin_idx_x#22 main::@2/(byte) sin_idx_x#17 main::@5/(byte) sin_idx_x#23 ) - (byte*) RASTER#1 ← phi( main::@1/(byte*) RASTER#2 main::@2/(byte*) RASTER#1 main::@5/(byte*) RASTER#3 ) - (boolean~) main::$1 ← *((byte*) RASTER#1) != (byte/word/signed word) 255 + (boolean~) main::$1 ← *((byte*) RASTER#0) != (byte/word/signed word) 255 if((boolean~) main::$1) goto main::@2 to:main::@3 main::@3: scope:[main] from main::@2 - (byte*) RASTER#7 ← phi( main::@2/(byte*) RASTER#1 ) - (byte*) SPRITES_YPOS#6 ← phi( main::@2/(byte*) SPRITES_YPOS#10 ) - (byte*) SPRITES_XPOS#6 ← phi( main::@2/(byte*) SPRITES_XPOS#10 ) - (byte*) BORDERCOL#4 ← phi( main::@2/(byte*) BORDERCOL#8 ) (byte) sin_idx_y#13 ← phi( main::@2/(byte) sin_idx_y#18 ) (byte) sin_idx_x#13 ← phi( main::@2/(byte) sin_idx_x#17 ) call anim param-assignment to:main::@6 main::@6: scope:[main] from main::@3 - (byte*) SPRITES_YPOS#17 ← phi( main::@3/(byte*) SPRITES_YPOS#6 ) - (byte*) SPRITES_XPOS#17 ← phi( main::@3/(byte*) SPRITES_XPOS#6 ) - (byte*) BORDERCOL#17 ← phi( main::@3/(byte*) BORDERCOL#4 ) - (byte*) RASTER#5 ← phi( main::@3/(byte*) RASTER#7 ) (byte) sin_idx_y#7 ← phi( main::@3/(byte) sin_idx_y#5 ) (byte) sin_idx_x#7 ← phi( main::@3/(byte) sin_idx_x#5 ) (byte) sin_idx_x#0 ← (byte) sin_idx_x#7 @@ -4000,57 +3803,23 @@ main::@return: scope:[main] from main::@6 return to:@return init: scope:[init] from main - (byte*) BORDERCOL#47 ← phi( main/(byte*) BORDERCOL#16 ) - (byte*) PROCPORT#15 ← phi( main/(byte*) PROCPORT#18 ) - (byte*) CHARGEN#8 ← phi( main/(byte*) CHARGEN#9 ) - (byte*) SPRITES_COLS#5 ← phi( main/(byte*) SPRITES_COLS#6 ) - (byte*) SPRITES_YPOS#15 ← phi( main/(byte*) SPRITES_YPOS#16 ) - (byte*) SPRITES_XPOS#15 ← phi( main/(byte*) SPRITES_XPOS#16 ) - (byte*) SPRITES_EXPAND_Y#4 ← phi( main/(byte*) SPRITES_EXPAND_Y#5 ) - (byte*) SPRITES_EXPAND_X#4 ← phi( main/(byte*) SPRITES_EXPAND_X#5 ) - (byte*) SPRITES_ENABLE#4 ← phi( main/(byte*) SPRITES_ENABLE#5 ) - (byte*) SCREEN#1 ← phi( main/(byte*) SCREEN#4 ) - (byte*) init::sc#0 ← (byte*) SCREEN#1 + (byte*) init::sc#0 ← (byte*) SCREEN#0 to:init::@1 init::@1: scope:[init] from init init::@1 - (byte*) BORDERCOL#46 ← phi( init/(byte*) BORDERCOL#47 init::@1/(byte*) BORDERCOL#46 ) - (byte*) PROCPORT#13 ← phi( init/(byte*) PROCPORT#15 init::@1/(byte*) PROCPORT#13 ) - (byte*) CHARGEN#7 ← phi( init/(byte*) CHARGEN#8 init::@1/(byte*) CHARGEN#7 ) - (byte*) SPRITES_COLS#4 ← phi( init/(byte*) SPRITES_COLS#5 init::@1/(byte*) SPRITES_COLS#4 ) - (byte*) SPRITES_YPOS#11 ← phi( init/(byte*) SPRITES_YPOS#15 init::@1/(byte*) SPRITES_YPOS#11 ) - (byte*) SPRITES_XPOS#11 ← phi( init/(byte*) SPRITES_XPOS#15 init::@1/(byte*) SPRITES_XPOS#11 ) - (byte*) SPRITES_EXPAND_Y#3 ← phi( init/(byte*) SPRITES_EXPAND_Y#4 init::@1/(byte*) SPRITES_EXPAND_Y#3 ) - (byte*) SPRITES_EXPAND_X#3 ← phi( init/(byte*) SPRITES_EXPAND_X#4 init::@1/(byte*) SPRITES_EXPAND_X#3 ) - (byte*) SPRITES_ENABLE#3 ← phi( init/(byte*) SPRITES_ENABLE#4 init::@1/(byte*) SPRITES_ENABLE#3 ) - (byte*) SCREEN#2 ← phi( init/(byte*) SCREEN#1 init::@1/(byte*) SCREEN#2 ) (byte*) init::sc#2 ← phi( init/(byte*) init::sc#0 init::@1/(byte*) init::sc#1 ) *((byte*) init::sc#2) ← (byte) ' ' (byte*) init::sc#1 ← ++ (byte*) init::sc#2 - (byte*~) init::$0 ← (byte*) SCREEN#2 + (word/signed word) 1000 + (byte*~) init::$0 ← (byte*) SCREEN#0 + (word/signed word) 1000 (boolean~) init::$1 ← (byte*) init::sc#1 < (byte*~) init::$0 if((boolean~) init::$1) goto init::@1 to:init::@2 init::@2: scope:[init] from init::@1 - (byte*) BORDERCOL#45 ← phi( init::@1/(byte*) BORDERCOL#46 ) - (byte*) PROCPORT#10 ← phi( init::@1/(byte*) PROCPORT#13 ) - (byte*) CHARGEN#6 ← phi( init::@1/(byte*) CHARGEN#7 ) - (byte*) SPRITES_COLS#3 ← phi( init::@1/(byte*) SPRITES_COLS#4 ) - (byte*) SPRITES_YPOS#9 ← phi( init::@1/(byte*) SPRITES_YPOS#11 ) - (byte*) SPRITES_XPOS#9 ← phi( init::@1/(byte*) SPRITES_XPOS#11 ) - (byte*) SCREEN#5 ← phi( init::@1/(byte*) SCREEN#2 ) - (byte*) SPRITES_EXPAND_Y#2 ← phi( init::@1/(byte*) SPRITES_EXPAND_Y#3 ) - (byte*) SPRITES_EXPAND_X#2 ← phi( init::@1/(byte*) SPRITES_EXPAND_X#3 ) - (byte*) SPRITES_ENABLE#2 ← phi( init::@1/(byte*) SPRITES_ENABLE#3 ) call place_sprites param-assignment to:init::@3 init::@3: scope:[init] from init::@2 - (byte*) BORDERCOL#44 ← phi( init::@2/(byte*) BORDERCOL#45 ) - (byte*) PROCPORT#8 ← phi( init::@2/(byte*) PROCPORT#10 ) - (byte*) CHARGEN#5 ← phi( init::@2/(byte*) CHARGEN#6 ) call gen_sprites param-assignment to:init::@4 init::@4: scope:[init] from init::@3 - (byte*) BORDERCOL#42 ← phi( init::@3/(byte*) BORDERCOL#44 ) (byte*) gen_sintab::sintab#0 ← (byte[]) sintab_x#0 (byte) gen_sintab::length#0 ← (byte) sinlen_x#0 (byte) gen_sintab::min#0 ← (byte/signed byte/word/signed word) 16 @@ -4058,7 +3827,6 @@ init::@4: scope:[init] from init::@3 call gen_sintab param-assignment to:init::@5 init::@5: scope:[init] from init::@4 - (byte*) BORDERCOL#43 ← phi( init::@4/(byte*) BORDERCOL#42 ) (byte*) gen_sintab::sintab#1 ← (byte[]) sintab_y#0 (byte) gen_sintab::length#1 ← (byte) sinlen_y#0 (byte) gen_sintab::min#1 ← (byte/signed byte/word/signed word) 48 @@ -4071,46 +3839,29 @@ init::@return: scope:[init] from init::@6 return to:@return @34: scope:[] from @32 - (byte*) PROCPORT#21 ← phi( @32/(byte*) PROCPORT#0 ) - (byte*) CHARGEN#11 ← phi( @32/(byte*) CHARGEN#0 ) - (byte*) SPRITES_COLS#8 ← phi( @32/(byte*) SPRITES_COLS#0 ) - (byte*) SPRITES_YPOS#19 ← phi( @32/(byte*) SPRITES_YPOS#0 ) - (byte*) SPRITES_XPOS#19 ← phi( @32/(byte*) SPRITES_XPOS#0 ) - (byte*) SPRITES_EXPAND_Y#7 ← phi( @32/(byte*) SPRITES_EXPAND_Y#0 ) - (byte*) SPRITES_EXPAND_X#7 ← phi( @32/(byte*) SPRITES_EXPAND_X#0 ) - (byte*) SPRITES_ENABLE#7 ← phi( @32/(byte*) SPRITES_ENABLE#0 ) - (byte*) BORDERCOL#26 ← phi( @32/(byte*) BORDERCOL#0 ) - (byte*) RASTER#8 ← phi( @32/(byte*) RASTER#0 ) - (byte*) SCREEN#7 ← phi( @32/(byte*) SCREEN#0 ) (byte) sin_idx_x#2 ← (byte/signed byte/word/signed word) 0 (byte) sin_idx_y#2 ← (byte/signed byte/word/signed word) 0 to:@39 anim: scope:[anim] from main::@3 - (byte*) SPRITES_YPOS#3 ← phi( main::@3/(byte*) SPRITES_YPOS#6 ) - (byte*) SPRITES_XPOS#3 ← phi( main::@3/(byte*) SPRITES_XPOS#6 ) (byte) sin_idx_y#9 ← phi( main::@3/(byte) sin_idx_y#13 ) (byte) sin_idx_x#9 ← phi( main::@3/(byte) sin_idx_x#13 ) - (byte*) BORDERCOL#1 ← phi( main::@3/(byte*) BORDERCOL#4 ) - *((byte*) BORDERCOL#1) ← ++ *((byte*) BORDERCOL#1) + *((byte*) BORDERCOL#0) ← ++ *((byte*) BORDERCOL#0) (byte) anim::xidx#0 ← (byte) sin_idx_x#9 (byte) anim::yidx#0 ← (byte) sin_idx_y#9 (byte) anim::j2#0 ← (byte/signed byte/word/signed word) 12 (byte) anim::j#0 ← (byte/signed byte/word/signed word) 0 to:anim::@1 anim::@1: scope:[anim] from anim anim::@3 - (byte*) BORDERCOL#22 ← phi( anim/(byte*) BORDERCOL#1 anim::@3/(byte*) BORDERCOL#14 ) (byte) sin_idx_y#25 ← phi( anim/(byte) sin_idx_y#9 anim::@3/(byte) sin_idx_y#19 ) (byte) sin_idx_x#24 ← phi( anim/(byte) sin_idx_x#9 anim::@3/(byte) sin_idx_x#14 ) (byte) anim::j#5 ← phi( anim/(byte) anim::j#0 anim::@3/(byte) anim::j#1 ) - (byte*) SPRITES_YPOS#1 ← phi( anim/(byte*) SPRITES_YPOS#3 anim::@3/(byte*) SPRITES_YPOS#4 ) (byte) anim::yidx#3 ← phi( anim/(byte) anim::yidx#0 anim::@3/(byte) anim::yidx#6 ) (byte) anim::j2#3 ← phi( anim/(byte) anim::j2#0 anim::@3/(byte) anim::j2#2 ) - (byte*) SPRITES_XPOS#1 ← phi( anim/(byte*) SPRITES_XPOS#3 anim::@3/(byte*) SPRITES_XPOS#4 ) (byte) anim::xidx#3 ← phi( anim/(byte) anim::xidx#0 anim::@3/(byte) anim::xidx#5 ) (byte~) anim::$0 ← (byte[]) sintab_x#0 *idx (byte) anim::xidx#3 - *((byte*) SPRITES_XPOS#1 + (byte) anim::j2#3) ← (byte~) anim::$0 + *((byte*) SPRITES_XPOS#0 + (byte) anim::j2#3) ← (byte~) anim::$0 (byte~) anim::$1 ← (byte[]) sintab_y#0 *idx (byte) anim::yidx#3 - *((byte*) SPRITES_YPOS#1 + (byte) anim::j2#3) ← (byte~) anim::$1 + *((byte*) SPRITES_YPOS#0 + (byte) anim::j2#3) ← (byte~) anim::$1 (byte~) anim::$2 ← (byte) anim::xidx#3 + (byte/signed byte/word/signed word) 10 (byte) anim::xidx#1 ← (byte~) anim::$2 (boolean~) anim::$3 ← (byte) anim::xidx#1 >= (byte) sinlen_x#0 @@ -4118,11 +3869,8 @@ anim::@1: scope:[anim] from anim anim::@3 if((boolean~) anim::$4) goto anim::@2 to:anim::@6 anim::@2: scope:[anim] from anim::@1 anim::@6 - (byte*) BORDERCOL#18 ← phi( anim::@1/(byte*) BORDERCOL#22 anim::@6/(byte*) BORDERCOL#23 ) (byte) sin_idx_y#22 ← phi( anim::@1/(byte) sin_idx_y#25 anim::@6/(byte) sin_idx_y#26 ) (byte) sin_idx_x#18 ← phi( anim::@1/(byte) sin_idx_x#24 anim::@6/(byte) sin_idx_x#25 ) - (byte*) SPRITES_YPOS#7 ← phi( anim::@1/(byte*) SPRITES_YPOS#1 anim::@6/(byte*) SPRITES_YPOS#12 ) - (byte*) SPRITES_XPOS#7 ← phi( anim::@1/(byte*) SPRITES_XPOS#1 anim::@6/(byte*) SPRITES_XPOS#12 ) (byte) anim::xidx#6 ← phi( anim::@1/(byte) anim::xidx#1 anim::@6/(byte) anim::xidx#2 ) (byte) anim::j#3 ← phi( anim::@1/(byte) anim::j#5 anim::@6/(byte) anim::j#6 ) (byte) anim::j2#5 ← phi( anim::@1/(byte) anim::j2#3 anim::@6/(byte) anim::j2#7 ) @@ -4134,11 +3882,8 @@ anim::@2: scope:[anim] from anim::@1 anim::@6 if((boolean~) anim::$8) goto anim::@3 to:anim::@7 anim::@6: scope:[anim] from anim::@1 - (byte*) BORDERCOL#23 ← phi( anim::@1/(byte*) BORDERCOL#22 ) (byte) sin_idx_y#26 ← phi( anim::@1/(byte) sin_idx_y#25 ) (byte) sin_idx_x#25 ← phi( anim::@1/(byte) sin_idx_x#24 ) - (byte*) SPRITES_YPOS#12 ← phi( anim::@1/(byte*) SPRITES_YPOS#1 ) - (byte*) SPRITES_XPOS#12 ← phi( anim::@1/(byte*) SPRITES_XPOS#1 ) (byte) anim::j#6 ← phi( anim::@1/(byte) anim::j#5 ) (byte) anim::j2#7 ← phi( anim::@1/(byte) anim::j2#3 ) (byte) anim::yidx#7 ← phi( anim::@1/(byte) anim::yidx#3 ) @@ -4147,12 +3892,9 @@ anim::@6: scope:[anim] from anim::@1 (byte) anim::xidx#2 ← (byte~) anim::$5 to:anim::@2 anim::@3: scope:[anim] from anim::@2 anim::@7 - (byte*) BORDERCOL#14 ← phi( anim::@2/(byte*) BORDERCOL#18 anim::@7/(byte*) BORDERCOL#19 ) (byte) sin_idx_y#19 ← phi( anim::@2/(byte) sin_idx_y#22 anim::@7/(byte) sin_idx_y#23 ) (byte) sin_idx_x#14 ← phi( anim::@2/(byte) sin_idx_x#18 anim::@7/(byte) sin_idx_x#19 ) - (byte*) SPRITES_YPOS#4 ← phi( anim::@2/(byte*) SPRITES_YPOS#7 anim::@7/(byte*) SPRITES_YPOS#8 ) (byte) anim::yidx#6 ← phi( anim::@2/(byte) anim::yidx#1 anim::@7/(byte) anim::yidx#2 ) - (byte*) SPRITES_XPOS#4 ← phi( anim::@2/(byte*) SPRITES_XPOS#7 anim::@7/(byte*) SPRITES_XPOS#8 ) (byte) anim::xidx#5 ← phi( anim::@2/(byte) anim::xidx#6 anim::@7/(byte) anim::xidx#7 ) (byte) anim::j#2 ← phi( anim::@2/(byte) anim::j#3 anim::@7/(byte) anim::j#4 ) (byte) anim::j2#4 ← phi( anim::@2/(byte) anim::j2#5 anim::@7/(byte) anim::j2#6 ) @@ -4163,11 +3905,8 @@ anim::@3: scope:[anim] from anim::@2 anim::@7 if((boolean~) anim::$10) goto anim::@1 to:anim::@8 anim::@7: scope:[anim] from anim::@2 - (byte*) BORDERCOL#19 ← phi( anim::@2/(byte*) BORDERCOL#18 ) (byte) sin_idx_y#23 ← phi( anim::@2/(byte) sin_idx_y#22 ) (byte) sin_idx_x#19 ← phi( anim::@2/(byte) sin_idx_x#18 ) - (byte*) SPRITES_YPOS#8 ← phi( anim::@2/(byte*) SPRITES_YPOS#7 ) - (byte*) SPRITES_XPOS#8 ← phi( anim::@2/(byte*) SPRITES_XPOS#7 ) (byte) anim::xidx#7 ← phi( anim::@2/(byte) anim::xidx#6 ) (byte) anim::j#4 ← phi( anim::@2/(byte) anim::j#3 ) (byte) anim::j2#6 ← phi( anim::@2/(byte) anim::j2#5 ) @@ -4176,7 +3915,6 @@ anim::@7: scope:[anim] from anim::@2 (byte) anim::yidx#2 ← (byte~) anim::$9 to:anim::@3 anim::@8: scope:[anim] from anim::@3 - (byte*) BORDERCOL#9 ← phi( anim::@3/(byte*) BORDERCOL#14 ) (byte) sin_idx_y#14 ← phi( anim::@3/(byte) sin_idx_y#19 ) (byte) sin_idx_x#10 ← phi( anim::@3/(byte) sin_idx_x#14 ) (byte) sin_idx_x#3 ← ++ (byte) sin_idx_x#10 @@ -4186,7 +3924,6 @@ anim::@8: scope:[anim] from anim::@3 to:anim::@9 anim::@4: scope:[anim] from anim::@8 anim::@9 (byte) sin_idx_x#21 ← phi( anim::@8/(byte) sin_idx_x#3 anim::@9/(byte) sin_idx_x#4 ) - (byte*) BORDERCOL#6 ← phi( anim::@8/(byte*) BORDERCOL#9 anim::@9/(byte*) BORDERCOL#10 ) (byte) sin_idx_y#10 ← phi( anim::@8/(byte) sin_idx_y#14 anim::@9/(byte) sin_idx_y#15 ) (byte) sin_idx_y#3 ← ++ (byte) sin_idx_y#10 (boolean~) anim::$13 ← (byte) sin_idx_y#3 >= (byte) sinlen_y#0 @@ -4194,19 +3931,16 @@ anim::@4: scope:[anim] from anim::@8 anim::@9 if((boolean~) anim::$14) goto anim::@5 to:anim::@10 anim::@9: scope:[anim] from anim::@8 - (byte*) BORDERCOL#10 ← phi( anim::@8/(byte*) BORDERCOL#9 ) (byte) sin_idx_y#15 ← phi( anim::@8/(byte) sin_idx_y#14 ) (byte) sin_idx_x#4 ← (byte/signed byte/word/signed word) 0 to:anim::@4 anim::@5: scope:[anim] from anim::@10 anim::@4 (byte) sin_idx_y#16 ← phi( anim::@10/(byte) sin_idx_y#4 anim::@4/(byte) sin_idx_y#3 ) (byte) sin_idx_x#15 ← phi( anim::@10/(byte) sin_idx_x#20 anim::@4/(byte) sin_idx_x#21 ) - (byte*) BORDERCOL#2 ← phi( anim::@10/(byte*) BORDERCOL#5 anim::@4/(byte*) BORDERCOL#6 ) - *((byte*) BORDERCOL#2) ← -- *((byte*) BORDERCOL#2) + *((byte*) BORDERCOL#0) ← -- *((byte*) BORDERCOL#0) to:anim::@return anim::@10: scope:[anim] from anim::@4 (byte) sin_idx_x#20 ← phi( anim::@4/(byte) sin_idx_x#21 ) - (byte*) BORDERCOL#5 ← phi( anim::@4/(byte*) BORDERCOL#6 ) (byte) sin_idx_y#4 ← (byte/signed byte/word/signed word) 0 to:anim::@5 anim::@return: scope:[anim] from anim::@5 @@ -4217,17 +3951,10 @@ anim::@return: scope:[anim] from anim::@5 return to:@return place_sprites: scope:[place_sprites] from init::@2 - (byte*) SPRITES_COLS#2 ← phi( init::@2/(byte*) SPRITES_COLS#3 ) - (byte*) SPRITES_YPOS#5 ← phi( init::@2/(byte*) SPRITES_YPOS#9 ) - (byte*) SPRITES_XPOS#5 ← phi( init::@2/(byte*) SPRITES_XPOS#9 ) - (byte*) SCREEN#3 ← phi( init::@2/(byte*) SCREEN#5 ) - (byte*) SPRITES_EXPAND_Y#1 ← phi( init::@2/(byte*) SPRITES_EXPAND_Y#2 ) - (byte*) SPRITES_EXPAND_X#1 ← phi( init::@2/(byte*) SPRITES_EXPAND_X#2 ) - (byte*) SPRITES_ENABLE#1 ← phi( init::@2/(byte*) SPRITES_ENABLE#2 ) - *((byte*) SPRITES_ENABLE#1) ← (byte/signed byte/word/signed word) 127 - *((byte*) SPRITES_EXPAND_X#1) ← (byte/signed byte/word/signed word) 127 - *((byte*) SPRITES_EXPAND_Y#1) ← (byte/signed byte/word/signed word) 127 - (byte*~) place_sprites::$0 ← (byte*) SCREEN#3 + (word/signed word) 1016 + *((byte*) SPRITES_ENABLE#0) ← (byte/signed byte/word/signed word) 127 + *((byte*) SPRITES_EXPAND_X#0) ← (byte/signed byte/word/signed word) 127 + *((byte*) SPRITES_EXPAND_Y#0) ← (byte/signed byte/word/signed word) 127 + (byte*~) place_sprites::$0 ← (byte*) SCREEN#0 + (word/signed word) 1016 (byte*) place_sprites::sprites_ptr#0 ← (byte*~) place_sprites::$0 (byte[]~) place_sprites::$1 ← (byte[]) sprites#0 / (byte/signed byte/word/signed word) 64 (byte~) place_sprites::$2 ← ((byte)) (byte[]~) place_sprites::$1 @@ -4238,20 +3965,17 @@ place_sprites: scope:[place_sprites] from init::@2 (byte) place_sprites::j#0 ← (byte/signed byte/word/signed word) 0 to:place_sprites::@1 place_sprites::@1: scope:[place_sprites] from place_sprites place_sprites::@1 - (byte*) SPRITES_COLS#1 ← phi( place_sprites/(byte*) SPRITES_COLS#2 place_sprites::@1/(byte*) SPRITES_COLS#1 ) (byte) place_sprites::col#2 ← phi( place_sprites/(byte) place_sprites::col#0 place_sprites::@1/(byte) place_sprites::col#1 ) - (byte*) SPRITES_YPOS#2 ← phi( place_sprites/(byte*) SPRITES_YPOS#5 place_sprites::@1/(byte*) SPRITES_YPOS#2 ) (byte) place_sprites::j2#3 ← phi( place_sprites/(byte) place_sprites::j2#0 place_sprites::@1/(byte) place_sprites::j2#2 ) - (byte*) SPRITES_XPOS#2 ← phi( place_sprites/(byte*) SPRITES_XPOS#5 place_sprites::@1/(byte*) SPRITES_XPOS#2 ) (byte) place_sprites::spr_x#2 ← phi( place_sprites/(byte) place_sprites::spr_x#0 place_sprites::@1/(byte) place_sprites::spr_x#1 ) (byte) place_sprites::j#2 ← phi( place_sprites/(byte) place_sprites::j#0 place_sprites::@1/(byte) place_sprites::j#1 ) (byte*) place_sprites::sprites_ptr#1 ← phi( place_sprites/(byte*) place_sprites::sprites_ptr#0 place_sprites::@1/(byte*) place_sprites::sprites_ptr#1 ) (byte) place_sprites::spr_id#2 ← phi( place_sprites/(byte) place_sprites::spr_id#0 place_sprites::@1/(byte) place_sprites::spr_id#1 ) *((byte*) place_sprites::sprites_ptr#1 + (byte) place_sprites::j#2) ← (byte) place_sprites::spr_id#2 (byte) place_sprites::spr_id#1 ← ++ (byte) place_sprites::spr_id#2 - *((byte*) SPRITES_XPOS#2 + (byte) place_sprites::j2#3) ← (byte) place_sprites::spr_x#2 - *((byte*) SPRITES_YPOS#2 + (byte) place_sprites::j2#3) ← (byte/signed byte/word/signed word) 80 - *((byte*) SPRITES_COLS#1 + (byte) place_sprites::j#2) ← (byte) place_sprites::col#2 + *((byte*) SPRITES_XPOS#0 + (byte) place_sprites::j2#3) ← (byte) place_sprites::spr_x#2 + *((byte*) SPRITES_YPOS#0 + (byte) place_sprites::j2#3) ← (byte/signed byte/word/signed word) 80 + *((byte*) SPRITES_COLS#0 + (byte) place_sprites::j#2) ← (byte) place_sprites::col#2 (byte~) place_sprites::$3 ← (byte) place_sprites::spr_x#2 + (byte/signed byte/word/signed word) 32 (byte) place_sprites::spr_x#1 ← (byte~) place_sprites::$3 (byte~) place_sprites::$4 ← (byte/signed byte/word/signed word) 7 ^ (byte/signed byte/word/signed word) 5 @@ -4267,15 +3991,11 @@ place_sprites::@return: scope:[place_sprites] from place_sprites::@1 return to:@return gen_sprites: scope:[gen_sprites] from init::@3 - (byte*) PROCPORT#5 ← phi( init::@3/(byte*) PROCPORT#8 ) - (byte*) CHARGEN#3 ← phi( init::@3/(byte*) CHARGEN#5 ) (byte[]) gen_sprites::cml#0 ← (string) "camelot" (byte*) gen_sprites::spr#0 ← (byte[]) sprites#0 (byte) gen_sprites::i#0 ← (byte/signed byte/word/signed word) 0 to:gen_sprites::@1 gen_sprites::@1: scope:[gen_sprites] from gen_sprites gen_sprites::@3 - (byte*) PROCPORT#3 ← phi( gen_sprites/(byte*) PROCPORT#5 gen_sprites::@3/(byte*) PROCPORT#6 ) - (byte*) CHARGEN#2 ← phi( gen_sprites/(byte*) CHARGEN#3 gen_sprites::@3/(byte*) CHARGEN#4 ) (byte*) gen_sprites::spr#2 ← phi( gen_sprites/(byte*) gen_sprites::spr#0 gen_sprites::@3/(byte*) gen_sprites::spr#1 ) (byte) gen_sprites::i#2 ← phi( gen_sprites/(byte) gen_sprites::i#0 gen_sprites::@3/(byte) gen_sprites::i#1 ) (byte[]) gen_sprites::cml#1 ← phi( gen_sprites/(byte[]) gen_sprites::cml#0 gen_sprites::@3/(byte[]) gen_sprites::cml#2 ) @@ -4285,8 +4005,6 @@ gen_sprites::@1: scope:[gen_sprites] from gen_sprites gen_sprites::@3 call gen_chargen_sprite param-assignment to:gen_sprites::@3 gen_sprites::@3: scope:[gen_sprites] from gen_sprites::@1 - (byte*) PROCPORT#6 ← phi( gen_sprites::@1/(byte*) PROCPORT#3 ) - (byte*) CHARGEN#4 ← phi( gen_sprites::@1/(byte*) CHARGEN#2 ) (byte[]) gen_sprites::cml#2 ← phi( gen_sprites::@1/(byte[]) gen_sprites::cml#1 ) (byte) gen_sprites::i#3 ← phi( gen_sprites::@1/(byte) gen_sprites::i#2 ) (byte*) gen_sprites::spr#3 ← phi( gen_sprites::@1/(byte*) gen_sprites::spr#2 ) @@ -4301,19 +4019,16 @@ gen_sprites::@return: scope:[gen_sprites] from gen_sprites::@3 to:@return gen_chargen_sprite: scope:[gen_chargen_sprite] from gen_sprites::@1 (byte*) gen_chargen_sprite::sprite#12 ← phi( gen_sprites::@1/(byte*) gen_chargen_sprite::sprite#0 ) - (byte*) PROCPORT#1 ← phi( gen_sprites::@1/(byte*) PROCPORT#3 ) - (byte*) CHARGEN#1 ← phi( gen_sprites::@1/(byte*) CHARGEN#2 ) (byte) gen_chargen_sprite::ch#1 ← phi( gen_sprites::@1/(byte) gen_chargen_sprite::ch#0 ) (word~) gen_chargen_sprite::$0 ← ((word)) (byte) gen_chargen_sprite::ch#1 (word~) gen_chargen_sprite::$1 ← (word~) gen_chargen_sprite::$0 << (byte/signed byte/word/signed word) 3 - (byte*~) gen_chargen_sprite::$2 ← (byte*) CHARGEN#1 + (word~) gen_chargen_sprite::$1 + (byte*~) gen_chargen_sprite::$2 ← (byte*) CHARGEN#0 + (word~) gen_chargen_sprite::$1 (byte*) gen_chargen_sprite::chargen#0 ← (byte*~) gen_chargen_sprite::$2 asm { sei } - *((byte*) PROCPORT#1) ← (byte/signed byte/word/signed word) 50 + *((byte*) PROCPORT#0) ← (byte/signed byte/word/signed word) 50 (byte) gen_chargen_sprite::y#0 ← (byte/signed byte/word/signed word) 0 to:gen_chargen_sprite::@1 gen_chargen_sprite::@1: scope:[gen_chargen_sprite] from gen_chargen_sprite gen_chargen_sprite::@9 - (byte*) PROCPORT#19 ← phi( gen_chargen_sprite/(byte*) PROCPORT#1 gen_chargen_sprite::@9/(byte*) PROCPORT#4 ) (byte*) gen_chargen_sprite::sprite#11 ← phi( gen_chargen_sprite/(byte*) gen_chargen_sprite::sprite#12 gen_chargen_sprite::@9/(byte*) gen_chargen_sprite::sprite#2 ) (byte) gen_chargen_sprite::y#2 ← phi( gen_chargen_sprite/(byte) gen_chargen_sprite::y#0 gen_chargen_sprite::@9/(byte) gen_chargen_sprite::y#1 ) (byte*) gen_chargen_sprite::chargen#1 ← phi( gen_chargen_sprite/(byte*) gen_chargen_sprite::chargen#0 gen_chargen_sprite::@9/(byte*) gen_chargen_sprite::chargen#2 ) @@ -4324,7 +4039,6 @@ gen_chargen_sprite::@1: scope:[gen_chargen_sprite] from gen_chargen_sprite gen_ (byte) gen_chargen_sprite::x#0 ← (byte/signed byte/word/signed word) 0 to:gen_chargen_sprite::@2 gen_chargen_sprite::@2: scope:[gen_chargen_sprite] from gen_chargen_sprite::@1 gen_chargen_sprite::@8 - (byte*) PROCPORT#16 ← phi( gen_chargen_sprite::@1/(byte*) PROCPORT#19 gen_chargen_sprite::@8/(byte*) PROCPORT#7 ) (byte*) gen_chargen_sprite::chargen#8 ← phi( gen_chargen_sprite::@1/(byte*) gen_chargen_sprite::chargen#1 gen_chargen_sprite::@8/(byte*) gen_chargen_sprite::chargen#3 ) (byte) gen_chargen_sprite::y#9 ← phi( gen_chargen_sprite::@1/(byte) gen_chargen_sprite::y#2 gen_chargen_sprite::@8/(byte) gen_chargen_sprite::y#4 ) (byte) gen_chargen_sprite::x#7 ← phi( gen_chargen_sprite::@1/(byte) gen_chargen_sprite::x#0 gen_chargen_sprite::@8/(byte) gen_chargen_sprite::x#1 ) @@ -4339,7 +4053,6 @@ gen_chargen_sprite::@2: scope:[gen_chargen_sprite] from gen_chargen_sprite::@1 if((boolean~) gen_chargen_sprite::$6) goto gen_chargen_sprite::@3 to:gen_chargen_sprite::@6 gen_chargen_sprite::@3: scope:[gen_chargen_sprite] from gen_chargen_sprite::@2 gen_chargen_sprite::@6 - (byte*) PROCPORT#14 ← phi( gen_chargen_sprite::@2/(byte*) PROCPORT#16 gen_chargen_sprite::@6/(byte*) PROCPORT#17 ) (byte*) gen_chargen_sprite::chargen#7 ← phi( gen_chargen_sprite::@2/(byte*) gen_chargen_sprite::chargen#8 gen_chargen_sprite::@6/(byte*) gen_chargen_sprite::chargen#9 ) (byte) gen_chargen_sprite::y#8 ← phi( gen_chargen_sprite::@2/(byte) gen_chargen_sprite::y#9 gen_chargen_sprite::@6/(byte) gen_chargen_sprite::y#10 ) (byte) gen_chargen_sprite::x#6 ← phi( gen_chargen_sprite::@2/(byte) gen_chargen_sprite::x#7 gen_chargen_sprite::@6/(byte) gen_chargen_sprite::x#8 ) @@ -4351,7 +4064,6 @@ gen_chargen_sprite::@3: scope:[gen_chargen_sprite] from gen_chargen_sprite::@2 (byte) gen_chargen_sprite::b#0 ← (byte/signed byte/word/signed word) 0 to:gen_chargen_sprite::@4 gen_chargen_sprite::@6: scope:[gen_chargen_sprite] from gen_chargen_sprite::@2 - (byte*) PROCPORT#17 ← phi( gen_chargen_sprite::@2/(byte*) PROCPORT#16 ) (byte*) gen_chargen_sprite::chargen#9 ← phi( gen_chargen_sprite::@2/(byte*) gen_chargen_sprite::chargen#8 ) (byte) gen_chargen_sprite::y#10 ← phi( gen_chargen_sprite::@2/(byte) gen_chargen_sprite::y#9 ) (byte) gen_chargen_sprite::x#8 ← phi( gen_chargen_sprite::@2/(byte) gen_chargen_sprite::x#7 ) @@ -4362,7 +4074,6 @@ gen_chargen_sprite::@6: scope:[gen_chargen_sprite] from gen_chargen_sprite::@2 (byte) gen_chargen_sprite::c#1 ← (byte/signed byte/word/signed word) 1 to:gen_chargen_sprite::@3 gen_chargen_sprite::@4: scope:[gen_chargen_sprite] from gen_chargen_sprite::@3 gen_chargen_sprite::@5 - (byte*) PROCPORT#11 ← phi( gen_chargen_sprite::@3/(byte*) PROCPORT#14 gen_chargen_sprite::@5/(byte*) PROCPORT#9 ) (byte*) gen_chargen_sprite::chargen#5 ← phi( gen_chargen_sprite::@3/(byte*) gen_chargen_sprite::chargen#7 gen_chargen_sprite::@5/(byte*) gen_chargen_sprite::chargen#4 ) (byte) gen_chargen_sprite::y#6 ← phi( gen_chargen_sprite::@3/(byte) gen_chargen_sprite::y#8 gen_chargen_sprite::@5/(byte) gen_chargen_sprite::y#5 ) (byte) gen_chargen_sprite::x#4 ← phi( gen_chargen_sprite::@3/(byte) gen_chargen_sprite::x#6 gen_chargen_sprite::@5/(byte) gen_chargen_sprite::x#3 ) @@ -4381,7 +4092,6 @@ gen_chargen_sprite::@4: scope:[gen_chargen_sprite] from gen_chargen_sprite::@3 if((boolean~) gen_chargen_sprite::$10) goto gen_chargen_sprite::@5 to:gen_chargen_sprite::@7 gen_chargen_sprite::@5: scope:[gen_chargen_sprite] from gen_chargen_sprite::@4 gen_chargen_sprite::@7 - (byte*) PROCPORT#9 ← phi( gen_chargen_sprite::@4/(byte*) PROCPORT#11 gen_chargen_sprite::@7/(byte*) PROCPORT#12 ) (byte*) gen_chargen_sprite::chargen#4 ← phi( gen_chargen_sprite::@4/(byte*) gen_chargen_sprite::chargen#5 gen_chargen_sprite::@7/(byte*) gen_chargen_sprite::chargen#6 ) (byte) gen_chargen_sprite::y#5 ← phi( gen_chargen_sprite::@4/(byte) gen_chargen_sprite::y#6 gen_chargen_sprite::@7/(byte) gen_chargen_sprite::y#7 ) (byte*) gen_chargen_sprite::sprite#8 ← phi( gen_chargen_sprite::@4/(byte*) gen_chargen_sprite::sprite#5 gen_chargen_sprite::@7/(byte*) gen_chargen_sprite::sprite#1 ) @@ -4396,7 +4106,6 @@ gen_chargen_sprite::@5: scope:[gen_chargen_sprite] from gen_chargen_sprite::@4 if((boolean~) gen_chargen_sprite::$11) goto gen_chargen_sprite::@4 to:gen_chargen_sprite::@8 gen_chargen_sprite::@7: scope:[gen_chargen_sprite] from gen_chargen_sprite::@4 - (byte*) PROCPORT#12 ← phi( gen_chargen_sprite::@4/(byte*) PROCPORT#11 ) (byte*) gen_chargen_sprite::chargen#6 ← phi( gen_chargen_sprite::@4/(byte*) gen_chargen_sprite::chargen#5 ) (byte) gen_chargen_sprite::y#7 ← phi( gen_chargen_sprite::@4/(byte) gen_chargen_sprite::y#6 ) (byte) gen_chargen_sprite::x#5 ← phi( gen_chargen_sprite::@4/(byte) gen_chargen_sprite::x#4 ) @@ -4415,7 +4124,6 @@ gen_chargen_sprite::@7: scope:[gen_chargen_sprite] from gen_chargen_sprite::@4 gen_chargen_sprite::@8: scope:[gen_chargen_sprite] from gen_chargen_sprite::@5 (byte) gen_chargen_sprite::s_gen_cnt#8 ← phi( gen_chargen_sprite::@5/(byte) gen_chargen_sprite::s_gen_cnt#5 ) (byte) gen_chargen_sprite::s_gen#9 ← phi( gen_chargen_sprite::@5/(byte) gen_chargen_sprite::s_gen#6 ) - (byte*) PROCPORT#7 ← phi( gen_chargen_sprite::@5/(byte*) PROCPORT#9 ) (byte*) gen_chargen_sprite::chargen#3 ← phi( gen_chargen_sprite::@5/(byte*) gen_chargen_sprite::chargen#4 ) (byte) gen_chargen_sprite::y#4 ← phi( gen_chargen_sprite::@5/(byte) gen_chargen_sprite::y#5 ) (byte*) gen_chargen_sprite::sprite#6 ← phi( gen_chargen_sprite::@5/(byte*) gen_chargen_sprite::sprite#8 ) @@ -4428,7 +4136,6 @@ gen_chargen_sprite::@8: scope:[gen_chargen_sprite] from gen_chargen_sprite::@5 if((boolean~) gen_chargen_sprite::$13) goto gen_chargen_sprite::@2 to:gen_chargen_sprite::@9 gen_chargen_sprite::@9: scope:[gen_chargen_sprite] from gen_chargen_sprite::@8 - (byte*) PROCPORT#4 ← phi( gen_chargen_sprite::@8/(byte*) PROCPORT#7 ) (byte*) gen_chargen_sprite::chargen#2 ← phi( gen_chargen_sprite::@8/(byte*) gen_chargen_sprite::chargen#3 ) (byte) gen_chargen_sprite::y#3 ← phi( gen_chargen_sprite::@8/(byte) gen_chargen_sprite::y#4 ) (byte*) gen_chargen_sprite::sprite#4 ← phi( gen_chargen_sprite::@8/(byte*) gen_chargen_sprite::sprite#6 ) @@ -4439,15 +4146,13 @@ gen_chargen_sprite::@9: scope:[gen_chargen_sprite] from gen_chargen_sprite::@8 if((boolean~) gen_chargen_sprite::$15) goto gen_chargen_sprite::@1 to:gen_chargen_sprite::@10 gen_chargen_sprite::@10: scope:[gen_chargen_sprite] from gen_chargen_sprite::@9 - (byte*) PROCPORT#2 ← phi( gen_chargen_sprite::@9/(byte*) PROCPORT#4 ) - *((byte*) PROCPORT#2) ← (byte/signed byte/word/signed word) 55 + *((byte*) PROCPORT#0) ← (byte/signed byte/word/signed word) 55 asm { cli } to:gen_chargen_sprite::@return gen_chargen_sprite::@return: scope:[gen_chargen_sprite] from gen_chargen_sprite::@10 return to:@return gen_sintab: scope:[gen_sintab] from init::@4 init::@5 - (byte*) BORDERCOL#41 ← phi( init::@4/(byte*) BORDERCOL#42 init::@5/(byte*) BORDERCOL#43 ) (byte*) gen_sintab::sintab#23 ← phi( init::@4/(byte*) gen_sintab::sintab#0 init::@5/(byte*) gen_sintab::sintab#1 ) (byte) gen_sintab::length#23 ← phi( init::@4/(byte) gen_sintab::length#0 init::@5/(byte) gen_sintab::length#1 ) (byte) gen_sintab::min#4 ← phi( init::@4/(byte) gen_sintab::min#0 init::@5/(byte) gen_sintab::min#1 ) @@ -4461,7 +4166,6 @@ gen_sintab: scope:[gen_sintab] from init::@4 init::@5 call setFAC param-assignment to:gen_sintab::@3 gen_sintab::@3: scope:[gen_sintab] from gen_sintab - (byte*) BORDERCOL#40 ← phi( gen_sintab/(byte*) BORDERCOL#41 ) (byte*) gen_sintab::sintab#22 ← phi( gen_sintab/(byte*) gen_sintab::sintab#23 ) (byte) gen_sintab::length#22 ← phi( gen_sintab/(byte) gen_sintab::length#23 ) (byte[]) gen_sintab::f_i#21 ← phi( gen_sintab/(byte[]) gen_sintab::f_i#0 ) @@ -4472,7 +4176,6 @@ gen_sintab::@3: scope:[gen_sintab] from gen_sintab call setARGtoFAC param-assignment to:gen_sintab::@4 gen_sintab::@4: scope:[gen_sintab] from gen_sintab::@3 - (byte*) BORDERCOL#39 ← phi( gen_sintab::@3/(byte*) BORDERCOL#40 ) (byte*) gen_sintab::sintab#21 ← phi( gen_sintab::@3/(byte*) gen_sintab::sintab#22 ) (byte) gen_sintab::length#21 ← phi( gen_sintab::@3/(byte) gen_sintab::length#22 ) (byte[]) gen_sintab::f_i#20 ← phi( gen_sintab::@3/(byte[]) gen_sintab::f_i#21 ) @@ -4486,7 +4189,6 @@ gen_sintab::@4: scope:[gen_sintab] from gen_sintab::@3 call setFAC param-assignment to:gen_sintab::@5 gen_sintab::@5: scope:[gen_sintab] from gen_sintab::@4 - (byte*) BORDERCOL#38 ← phi( gen_sintab::@4/(byte*) BORDERCOL#39 ) (byte*) gen_sintab::sintab#20 ← phi( gen_sintab::@4/(byte*) gen_sintab::sintab#21 ) (byte) gen_sintab::length#20 ← phi( gen_sintab::@4/(byte) gen_sintab::length#21 ) (byte[]) gen_sintab::f_i#19 ← phi( gen_sintab::@4/(byte[]) gen_sintab::f_i#20 ) @@ -4497,7 +4199,6 @@ gen_sintab::@5: scope:[gen_sintab] from gen_sintab::@4 call setMEMtoFAC param-assignment to:gen_sintab::@6 gen_sintab::@6: scope:[gen_sintab] from gen_sintab::@5 - (byte*) BORDERCOL#37 ← phi( gen_sintab::@5/(byte*) BORDERCOL#38 ) (byte*) gen_sintab::sintab#19 ← phi( gen_sintab::@5/(byte*) gen_sintab::sintab#20 ) (byte) gen_sintab::length#19 ← phi( gen_sintab::@5/(byte) gen_sintab::length#20 ) (byte[]) gen_sintab::f_i#18 ← phi( gen_sintab::@5/(byte[]) gen_sintab::f_i#19 ) @@ -4507,7 +4208,6 @@ gen_sintab::@6: scope:[gen_sintab] from gen_sintab::@5 call subFACfromARG param-assignment to:gen_sintab::@7 gen_sintab::@7: scope:[gen_sintab] from gen_sintab::@6 - (byte*) BORDERCOL#36 ← phi( gen_sintab::@6/(byte*) BORDERCOL#37 ) (byte*) gen_sintab::sintab#18 ← phi( gen_sintab::@6/(byte*) gen_sintab::sintab#19 ) (byte) gen_sintab::length#18 ← phi( gen_sintab::@6/(byte) gen_sintab::length#19 ) (byte[]) gen_sintab::f_i#17 ← phi( gen_sintab::@6/(byte[]) gen_sintab::f_i#18 ) @@ -4518,7 +4218,6 @@ gen_sintab::@7: scope:[gen_sintab] from gen_sintab::@6 call setMEMtoFAC param-assignment to:gen_sintab::@8 gen_sintab::@8: scope:[gen_sintab] from gen_sintab::@7 - (byte*) BORDERCOL#35 ← phi( gen_sintab::@7/(byte*) BORDERCOL#36 ) (byte*) gen_sintab::sintab#17 ← phi( gen_sintab::@7/(byte*) gen_sintab::sintab#18 ) (byte) gen_sintab::length#17 ← phi( gen_sintab::@7/(byte) gen_sintab::length#18 ) (byte[]) gen_sintab::f_i#16 ← phi( gen_sintab::@7/(byte[]) gen_sintab::f_i#17 ) @@ -4529,7 +4228,6 @@ gen_sintab::@8: scope:[gen_sintab] from gen_sintab::@7 call setFAC param-assignment to:gen_sintab::@9 gen_sintab::@9: scope:[gen_sintab] from gen_sintab::@8 - (byte*) BORDERCOL#34 ← phi( gen_sintab::@8/(byte*) BORDERCOL#35 ) (byte*) gen_sintab::sintab#16 ← phi( gen_sintab::@8/(byte*) gen_sintab::sintab#17 ) (byte) gen_sintab::length#16 ← phi( gen_sintab::@8/(byte) gen_sintab::length#17 ) (byte[]) gen_sintab::f_i#14 ← phi( gen_sintab::@8/(byte[]) gen_sintab::f_i#16 ) @@ -4540,7 +4238,6 @@ gen_sintab::@9: scope:[gen_sintab] from gen_sintab::@8 call divMEMbyFAC param-assignment to:gen_sintab::@10 gen_sintab::@10: scope:[gen_sintab] from gen_sintab::@9 - (byte*) BORDERCOL#33 ← phi( gen_sintab::@9/(byte*) BORDERCOL#34 ) (byte*) gen_sintab::sintab#15 ← phi( gen_sintab::@9/(byte*) gen_sintab::sintab#16 ) (byte) gen_sintab::length#15 ← phi( gen_sintab::@9/(byte) gen_sintab::length#16 ) (byte[]) gen_sintab::f_i#12 ← phi( gen_sintab::@9/(byte[]) gen_sintab::f_i#14 ) @@ -4551,7 +4248,6 @@ gen_sintab::@10: scope:[gen_sintab] from gen_sintab::@9 call setMEMtoFAC param-assignment to:gen_sintab::@11 gen_sintab::@11: scope:[gen_sintab] from gen_sintab::@10 - (byte*) BORDERCOL#32 ← phi( gen_sintab::@10/(byte*) BORDERCOL#33 ) (byte*) gen_sintab::sintab#14 ← phi( gen_sintab::@10/(byte*) gen_sintab::sintab#15 ) (byte[]) gen_sintab::f_amp#20 ← phi( gen_sintab::@10/(byte[]) gen_sintab::f_amp#3 ) (byte) gen_sintab::length#14 ← phi( gen_sintab::@10/(byte) gen_sintab::length#15 ) @@ -4562,7 +4258,6 @@ gen_sintab::@11: scope:[gen_sintab] from gen_sintab::@10 call addMEMtoFAC param-assignment to:gen_sintab::@12 gen_sintab::@12: scope:[gen_sintab] from gen_sintab::@11 - (byte*) BORDERCOL#31 ← phi( gen_sintab::@11/(byte*) BORDERCOL#32 ) (byte*) gen_sintab::sintab#13 ← phi( gen_sintab::@11/(byte*) gen_sintab::sintab#14 ) (byte[]) gen_sintab::f_amp#18 ← phi( gen_sintab::@11/(byte[]) gen_sintab::f_amp#20 ) (byte) gen_sintab::length#12 ← phi( gen_sintab::@11/(byte) gen_sintab::length#14 ) @@ -4573,7 +4268,6 @@ gen_sintab::@12: scope:[gen_sintab] from gen_sintab::@11 call setMEMtoFAC param-assignment to:gen_sintab::@13 gen_sintab::@13: scope:[gen_sintab] from gen_sintab::@12 - (byte*) BORDERCOL#30 ← phi( gen_sintab::@12/(byte*) BORDERCOL#31 ) (byte*) gen_sintab::sintab#12 ← phi( gen_sintab::@12/(byte*) gen_sintab::sintab#13 ) (byte[]) gen_sintab::f_min#19 ← phi( gen_sintab::@12/(byte[]) gen_sintab::f_min#3 ) (byte[]) gen_sintab::f_amp#16 ← phi( gen_sintab::@12/(byte[]) gen_sintab::f_amp#18 ) @@ -4583,7 +4277,6 @@ gen_sintab::@13: scope:[gen_sintab] from gen_sintab::@12 (byte) gen_sintab::i#0 ← (byte/signed byte/word/signed word) 0 to:gen_sintab::@1 gen_sintab::@1: scope:[gen_sintab] from gen_sintab::@13 gen_sintab::@22 - (byte*) BORDERCOL#29 ← phi( gen_sintab::@13/(byte*) BORDERCOL#30 gen_sintab::@22/(byte*) BORDERCOL#3 ) (byte*) gen_sintab::sintab#11 ← phi( gen_sintab::@13/(byte*) gen_sintab::sintab#12 gen_sintab::@22/(byte*) gen_sintab::sintab#2 ) (byte[]) gen_sintab::f_min#18 ← phi( gen_sintab::@13/(byte[]) gen_sintab::f_min#19 gen_sintab::@22/(byte[]) gen_sintab::f_min#20 ) (byte[]) gen_sintab::f_amp#15 ← phi( gen_sintab::@13/(byte[]) gen_sintab::f_amp#16 gen_sintab::@22/(byte[]) gen_sintab::f_amp#17 ) @@ -4596,7 +4289,6 @@ gen_sintab::@1: scope:[gen_sintab] from gen_sintab::@13 gen_sintab::@22 call setFAC param-assignment to:gen_sintab::@14 gen_sintab::@14: scope:[gen_sintab] from gen_sintab::@1 - (byte*) BORDERCOL#28 ← phi( gen_sintab::@1/(byte*) BORDERCOL#29 ) (byte) gen_sintab::i#11 ← phi( gen_sintab::@1/(byte) gen_sintab::i#2 ) (byte*) gen_sintab::sintab#10 ← phi( gen_sintab::@1/(byte*) gen_sintab::sintab#11 ) (byte[]) gen_sintab::f_min#17 ← phi( gen_sintab::@1/(byte[]) gen_sintab::f_min#18 ) @@ -4609,7 +4301,6 @@ gen_sintab::@14: scope:[gen_sintab] from gen_sintab::@1 to:gen_sintab::@15 gen_sintab::@15: scope:[gen_sintab] from gen_sintab::@14 (byte*) gen_sintab::f_2pi#18 ← phi( gen_sintab::@14/(byte*) gen_sintab::f_2pi#1 ) - (byte*) BORDERCOL#27 ← phi( gen_sintab::@14/(byte*) BORDERCOL#28 ) (byte) gen_sintab::i#10 ← phi( gen_sintab::@14/(byte) gen_sintab::i#11 ) (byte*) gen_sintab::sintab#9 ← phi( gen_sintab::@14/(byte*) gen_sintab::sintab#10 ) (byte[]) gen_sintab::f_min#16 ← phi( gen_sintab::@14/(byte[]) gen_sintab::f_min#17 ) @@ -4621,7 +4312,6 @@ gen_sintab::@15: scope:[gen_sintab] from gen_sintab::@14 to:gen_sintab::@16 gen_sintab::@16: scope:[gen_sintab] from gen_sintab::@15 (byte*) gen_sintab::f_2pi#16 ← phi( gen_sintab::@15/(byte*) gen_sintab::f_2pi#18 ) - (byte*) BORDERCOL#25 ← phi( gen_sintab::@15/(byte*) BORDERCOL#27 ) (byte) gen_sintab::i#9 ← phi( gen_sintab::@15/(byte) gen_sintab::i#10 ) (byte*) gen_sintab::sintab#8 ← phi( gen_sintab::@15/(byte*) gen_sintab::sintab#9 ) (byte[]) gen_sintab::f_min#14 ← phi( gen_sintab::@15/(byte[]) gen_sintab::f_min#16 ) @@ -4635,7 +4325,6 @@ gen_sintab::@16: scope:[gen_sintab] from gen_sintab::@15 gen_sintab::@17: scope:[gen_sintab] from gen_sintab::@16 (byte*) gen_sintab::f_2pi#14 ← phi( gen_sintab::@16/(byte*) gen_sintab::f_2pi#16 ) (byte) gen_sintab::length#13 ← phi( gen_sintab::@16/(byte) gen_sintab::length#2 ) - (byte*) BORDERCOL#24 ← phi( gen_sintab::@16/(byte*) BORDERCOL#25 ) (byte) gen_sintab::i#8 ← phi( gen_sintab::@16/(byte) gen_sintab::i#9 ) (byte*) gen_sintab::sintab#7 ← phi( gen_sintab::@16/(byte*) gen_sintab::sintab#8 ) (byte[]) gen_sintab::f_min#12 ← phi( gen_sintab::@16/(byte[]) gen_sintab::f_min#14 ) @@ -4648,7 +4337,6 @@ gen_sintab::@18: scope:[gen_sintab] from gen_sintab::@17 (byte[]) gen_sintab::f_i#15 ← phi( gen_sintab::@17/(byte[]) gen_sintab::f_i#2 ) (byte*) gen_sintab::f_2pi#12 ← phi( gen_sintab::@17/(byte*) gen_sintab::f_2pi#14 ) (byte) gen_sintab::length#11 ← phi( gen_sintab::@17/(byte) gen_sintab::length#13 ) - (byte*) BORDERCOL#20 ← phi( gen_sintab::@17/(byte*) BORDERCOL#24 ) (byte) gen_sintab::i#7 ← phi( gen_sintab::@17/(byte) gen_sintab::i#8 ) (byte*) gen_sintab::sintab#6 ← phi( gen_sintab::@17/(byte*) gen_sintab::sintab#7 ) (byte[]) gen_sintab::f_min#10 ← phi( gen_sintab::@17/(byte[]) gen_sintab::f_min#12 ) @@ -4659,7 +4347,6 @@ gen_sintab::@19: scope:[gen_sintab] from gen_sintab::@18 (byte[]) gen_sintab::f_i#13 ← phi( gen_sintab::@18/(byte[]) gen_sintab::f_i#15 ) (byte*) gen_sintab::f_2pi#10 ← phi( gen_sintab::@18/(byte*) gen_sintab::f_2pi#12 ) (byte) gen_sintab::length#9 ← phi( gen_sintab::@18/(byte) gen_sintab::length#11 ) - (byte*) BORDERCOL#15 ← phi( gen_sintab::@18/(byte*) BORDERCOL#20 ) (byte) gen_sintab::i#6 ← phi( gen_sintab::@18/(byte) gen_sintab::i#7 ) (byte*) gen_sintab::sintab#5 ← phi( gen_sintab::@18/(byte*) gen_sintab::sintab#6 ) (byte[]) gen_sintab::f_min#7 ← phi( gen_sintab::@18/(byte[]) gen_sintab::f_min#10 ) @@ -4672,7 +4359,6 @@ gen_sintab::@20: scope:[gen_sintab] from gen_sintab::@19 (byte[]) gen_sintab::f_i#11 ← phi( gen_sintab::@19/(byte[]) gen_sintab::f_i#13 ) (byte*) gen_sintab::f_2pi#8 ← phi( gen_sintab::@19/(byte*) gen_sintab::f_2pi#10 ) (byte) gen_sintab::length#7 ← phi( gen_sintab::@19/(byte) gen_sintab::length#9 ) - (byte*) BORDERCOL#11 ← phi( gen_sintab::@19/(byte*) BORDERCOL#15 ) (byte) gen_sintab::i#5 ← phi( gen_sintab::@19/(byte) gen_sintab::i#6 ) (byte*) gen_sintab::sintab#4 ← phi( gen_sintab::@19/(byte*) gen_sintab::sintab#5 ) (byte[]) gen_sintab::f_min#4 ← phi( gen_sintab::@19/(byte[]) gen_sintab::f_min#7 ) @@ -4685,7 +4371,6 @@ gen_sintab::@21: scope:[gen_sintab] from gen_sintab::@20 (byte[]) gen_sintab::f_i#9 ← phi( gen_sintab::@20/(byte[]) gen_sintab::f_i#11 ) (byte*) gen_sintab::f_2pi#6 ← phi( gen_sintab::@20/(byte*) gen_sintab::f_2pi#8 ) (byte) gen_sintab::length#5 ← phi( gen_sintab::@20/(byte) gen_sintab::length#7 ) - (byte*) BORDERCOL#7 ← phi( gen_sintab::@20/(byte*) BORDERCOL#11 ) (byte) gen_sintab::i#4 ← phi( gen_sintab::@20/(byte) gen_sintab::i#5 ) (byte*) gen_sintab::sintab#3 ← phi( gen_sintab::@20/(byte*) gen_sintab::sintab#4 ) call getFAC param-assignment @@ -4697,14 +4382,13 @@ gen_sintab::@22: scope:[gen_sintab] from gen_sintab::@21 (byte[]) gen_sintab::f_i#7 ← phi( gen_sintab::@21/(byte[]) gen_sintab::f_i#9 ) (byte*) gen_sintab::f_2pi#4 ← phi( gen_sintab::@21/(byte*) gen_sintab::f_2pi#6 ) (byte) gen_sintab::length#3 ← phi( gen_sintab::@21/(byte) gen_sintab::length#5 ) - (byte*) BORDERCOL#3 ← phi( gen_sintab::@21/(byte*) BORDERCOL#7 ) (byte) gen_sintab::i#3 ← phi( gen_sintab::@21/(byte) gen_sintab::i#4 ) (byte*) gen_sintab::sintab#2 ← phi( gen_sintab::@21/(byte*) gen_sintab::sintab#3 ) (word) getFAC::return#4 ← phi( gen_sintab::@21/(word) getFAC::return#2 ) (word~) gen_sintab::$23 ← (word) getFAC::return#4 (byte~) gen_sintab::$24 ← ((byte)) (word~) gen_sintab::$23 *((byte*) gen_sintab::sintab#2 + (byte) gen_sintab::i#3) ← (byte~) gen_sintab::$24 - *((byte*) BORDERCOL#3) ← ++ *((byte*) BORDERCOL#3) + *((byte*) BORDERCOL#0) ← ++ *((byte*) BORDERCOL#0) (byte) gen_sintab::i#1 ← ++ (byte) gen_sintab::i#3 (boolean~) gen_sintab::$25 ← (byte) gen_sintab::i#1 < (byte) gen_sintab::length#3 if((boolean~) gen_sintab::$25) goto gen_sintab::@1 @@ -4713,17 +4397,6 @@ gen_sintab::@return: scope:[gen_sintab] from gen_sintab::@22 return to:@return @39: scope:[] from @34 - (byte*) PROCPORT#20 ← phi( @34/(byte*) PROCPORT#21 ) - (byte*) CHARGEN#10 ← phi( @34/(byte*) CHARGEN#11 ) - (byte*) SPRITES_COLS#7 ← phi( @34/(byte*) SPRITES_COLS#8 ) - (byte*) SPRITES_YPOS#18 ← phi( @34/(byte*) SPRITES_YPOS#19 ) - (byte*) SPRITES_XPOS#18 ← phi( @34/(byte*) SPRITES_XPOS#19 ) - (byte*) SPRITES_EXPAND_Y#6 ← phi( @34/(byte*) SPRITES_EXPAND_Y#7 ) - (byte*) SPRITES_EXPAND_X#6 ← phi( @34/(byte*) SPRITES_EXPAND_X#7 ) - (byte*) SPRITES_ENABLE#6 ← phi( @34/(byte*) SPRITES_ENABLE#7 ) - (byte*) BORDERCOL#21 ← phi( @34/(byte*) BORDERCOL#26 ) - (byte*) RASTER#6 ← phi( @34/(byte*) RASTER#8 ) - (byte*) SCREEN#6 ← phi( @34/(byte*) SCREEN#7 ) (byte) sin_idx_y#17 ← phi( @34/(byte) sin_idx_y#2 ) (byte) sin_idx_x#16 ← phi( @34/(byte) sin_idx_x#2 ) call main param-assignment @@ -4745,187 +4418,26 @@ INITIAL SSA SYMBOL TABLE (label) @end (byte*) BORDERCOL (byte*) BORDERCOL#0 -(byte*) BORDERCOL#1 -(byte*) BORDERCOL#10 -(byte*) BORDERCOL#11 -(byte*) BORDERCOL#12 -(byte*) BORDERCOL#13 -(byte*) BORDERCOL#14 -(byte*) BORDERCOL#15 -(byte*) BORDERCOL#16 -(byte*) BORDERCOL#17 -(byte*) BORDERCOL#18 -(byte*) BORDERCOL#19 -(byte*) BORDERCOL#2 -(byte*) BORDERCOL#20 -(byte*) BORDERCOL#21 -(byte*) BORDERCOL#22 -(byte*) BORDERCOL#23 -(byte*) BORDERCOL#24 -(byte*) BORDERCOL#25 -(byte*) BORDERCOL#26 -(byte*) BORDERCOL#27 -(byte*) BORDERCOL#28 -(byte*) BORDERCOL#29 -(byte*) BORDERCOL#3 -(byte*) BORDERCOL#30 -(byte*) BORDERCOL#31 -(byte*) BORDERCOL#32 -(byte*) BORDERCOL#33 -(byte*) BORDERCOL#34 -(byte*) BORDERCOL#35 -(byte*) BORDERCOL#36 -(byte*) BORDERCOL#37 -(byte*) BORDERCOL#38 -(byte*) BORDERCOL#39 -(byte*) BORDERCOL#4 -(byte*) BORDERCOL#40 -(byte*) BORDERCOL#41 -(byte*) BORDERCOL#42 -(byte*) BORDERCOL#43 -(byte*) BORDERCOL#44 -(byte*) BORDERCOL#45 -(byte*) BORDERCOL#46 -(byte*) BORDERCOL#47 -(byte*) BORDERCOL#5 -(byte*) BORDERCOL#6 -(byte*) BORDERCOL#7 -(byte*) BORDERCOL#8 -(byte*) BORDERCOL#9 (byte*) CHARGEN (byte*) CHARGEN#0 -(byte*) CHARGEN#1 -(byte*) CHARGEN#10 -(byte*) CHARGEN#11 -(byte*) CHARGEN#2 -(byte*) CHARGEN#3 -(byte*) CHARGEN#4 -(byte*) CHARGEN#5 -(byte*) CHARGEN#6 -(byte*) CHARGEN#7 -(byte*) CHARGEN#8 -(byte*) CHARGEN#9 (byte*) PROCPORT (byte*) PROCPORT#0 -(byte*) PROCPORT#1 -(byte*) PROCPORT#10 -(byte*) PROCPORT#11 -(byte*) PROCPORT#12 -(byte*) PROCPORT#13 -(byte*) PROCPORT#14 -(byte*) PROCPORT#15 -(byte*) PROCPORT#16 -(byte*) PROCPORT#17 -(byte*) PROCPORT#18 -(byte*) PROCPORT#19 -(byte*) PROCPORT#2 -(byte*) PROCPORT#20 -(byte*) PROCPORT#21 -(byte*) PROCPORT#3 -(byte*) PROCPORT#4 -(byte*) PROCPORT#5 -(byte*) PROCPORT#6 -(byte*) PROCPORT#7 -(byte*) PROCPORT#8 -(byte*) PROCPORT#9 (byte*) RASTER (byte*) RASTER#0 -(byte*) RASTER#1 -(byte*) RASTER#2 -(byte*) RASTER#3 -(byte*) RASTER#4 -(byte*) RASTER#5 -(byte*) RASTER#6 -(byte*) RASTER#7 -(byte*) RASTER#8 (byte*) SCREEN (byte*) SCREEN#0 -(byte*) SCREEN#1 -(byte*) SCREEN#2 -(byte*) SCREEN#3 -(byte*) SCREEN#4 -(byte*) SCREEN#5 -(byte*) SCREEN#6 -(byte*) SCREEN#7 (byte*) SPRITES_COLS (byte*) SPRITES_COLS#0 -(byte*) SPRITES_COLS#1 -(byte*) SPRITES_COLS#2 -(byte*) SPRITES_COLS#3 -(byte*) SPRITES_COLS#4 -(byte*) SPRITES_COLS#5 -(byte*) SPRITES_COLS#6 -(byte*) SPRITES_COLS#7 -(byte*) SPRITES_COLS#8 (byte*) SPRITES_ENABLE (byte*) SPRITES_ENABLE#0 -(byte*) SPRITES_ENABLE#1 -(byte*) SPRITES_ENABLE#2 -(byte*) SPRITES_ENABLE#3 -(byte*) SPRITES_ENABLE#4 -(byte*) SPRITES_ENABLE#5 -(byte*) SPRITES_ENABLE#6 -(byte*) SPRITES_ENABLE#7 (byte*) SPRITES_EXPAND_X (byte*) SPRITES_EXPAND_X#0 -(byte*) SPRITES_EXPAND_X#1 -(byte*) SPRITES_EXPAND_X#2 -(byte*) SPRITES_EXPAND_X#3 -(byte*) SPRITES_EXPAND_X#4 -(byte*) SPRITES_EXPAND_X#5 -(byte*) SPRITES_EXPAND_X#6 -(byte*) SPRITES_EXPAND_X#7 (byte*) SPRITES_EXPAND_Y (byte*) SPRITES_EXPAND_Y#0 -(byte*) SPRITES_EXPAND_Y#1 -(byte*) SPRITES_EXPAND_Y#2 -(byte*) SPRITES_EXPAND_Y#3 -(byte*) SPRITES_EXPAND_Y#4 -(byte*) SPRITES_EXPAND_Y#5 -(byte*) SPRITES_EXPAND_Y#6 -(byte*) SPRITES_EXPAND_Y#7 (byte*) SPRITES_XPOS (byte*) SPRITES_XPOS#0 -(byte*) SPRITES_XPOS#1 -(byte*) SPRITES_XPOS#10 -(byte*) SPRITES_XPOS#11 -(byte*) SPRITES_XPOS#12 -(byte*) SPRITES_XPOS#13 -(byte*) SPRITES_XPOS#14 -(byte*) SPRITES_XPOS#15 -(byte*) SPRITES_XPOS#16 -(byte*) SPRITES_XPOS#17 -(byte*) SPRITES_XPOS#18 -(byte*) SPRITES_XPOS#19 -(byte*) SPRITES_XPOS#2 -(byte*) SPRITES_XPOS#3 -(byte*) SPRITES_XPOS#4 -(byte*) SPRITES_XPOS#5 -(byte*) SPRITES_XPOS#6 -(byte*) SPRITES_XPOS#7 -(byte*) SPRITES_XPOS#8 -(byte*) SPRITES_XPOS#9 (byte*) SPRITES_YPOS (byte*) SPRITES_YPOS#0 -(byte*) SPRITES_YPOS#1 -(byte*) SPRITES_YPOS#10 -(byte*) SPRITES_YPOS#11 -(byte*) SPRITES_YPOS#12 -(byte*) SPRITES_YPOS#13 -(byte*) SPRITES_YPOS#14 -(byte*) SPRITES_YPOS#15 -(byte*) SPRITES_YPOS#16 -(byte*) SPRITES_YPOS#17 -(byte*) SPRITES_YPOS#18 -(byte*) SPRITES_YPOS#19 -(byte*) SPRITES_YPOS#2 -(byte*) SPRITES_YPOS#3 -(byte*) SPRITES_YPOS#4 -(byte*) SPRITES_YPOS#5 -(byte*) SPRITES_YPOS#6 -(byte*) SPRITES_YPOS#7 -(byte*) SPRITES_YPOS#8 -(byte*) SPRITES_YPOS#9 (void()) addMEMtoFAC((byte*) addMEMtoFAC::mem) (label) addMEMtoFAC::@1 (label) addMEMtoFAC::@return @@ -5646,61 +5158,30 @@ sinFAC::@return: scope:[sinFAC] from sinFAC (byte[]) sprites#0 ← ((byte*)) (word/signed word) 8192 to:@34 main: scope:[main] from @39 - (byte*) PROCPORT#18 ← phi( @39/(byte*) PROCPORT#20 ) - (byte*) CHARGEN#9 ← phi( @39/(byte*) CHARGEN#10 ) - (byte*) SPRITES_COLS#6 ← phi( @39/(byte*) SPRITES_COLS#7 ) - (byte*) SPRITES_YPOS#16 ← phi( @39/(byte*) SPRITES_YPOS#18 ) - (byte*) SPRITES_XPOS#16 ← phi( @39/(byte*) SPRITES_XPOS#18 ) - (byte*) SPRITES_EXPAND_Y#5 ← phi( @39/(byte*) SPRITES_EXPAND_Y#6 ) - (byte*) SPRITES_EXPAND_X#5 ← phi( @39/(byte*) SPRITES_EXPAND_X#6 ) - (byte*) SPRITES_ENABLE#5 ← phi( @39/(byte*) SPRITES_ENABLE#6 ) - (byte*) BORDERCOL#16 ← phi( @39/(byte*) BORDERCOL#21 ) (byte) sin_idx_y#24 ← phi( @39/(byte) sin_idx_y#17 ) (byte) sin_idx_x#26 ← phi( @39/(byte) sin_idx_x#16 ) - (byte*) RASTER#4 ← phi( @39/(byte*) RASTER#6 ) - (byte*) SCREEN#4 ← phi( @39/(byte*) SCREEN#6 ) call init param-assignment to:main::@5 main::@5: scope:[main] from main - (byte*) SPRITES_YPOS#14 ← phi( main/(byte*) SPRITES_YPOS#16 ) - (byte*) SPRITES_XPOS#14 ← phi( main/(byte*) SPRITES_XPOS#16 ) - (byte*) BORDERCOL#13 ← phi( main/(byte*) BORDERCOL#16 ) (byte) sin_idx_y#21 ← phi( main/(byte) sin_idx_y#24 ) (byte) sin_idx_x#23 ← phi( main/(byte) sin_idx_x#26 ) - (byte*) RASTER#3 ← phi( main/(byte*) RASTER#4 ) to:main::@2 main::@1: scope:[main] from main::@6 - (byte*) SPRITES_YPOS#13 ← phi( main::@6/(byte*) SPRITES_YPOS#17 ) - (byte*) SPRITES_XPOS#13 ← phi( main::@6/(byte*) SPRITES_XPOS#17 ) - (byte*) BORDERCOL#12 ← phi( main::@6/(byte*) BORDERCOL#17 ) (byte) sin_idx_y#20 ← phi( main::@6/(byte) sin_idx_y#0 ) (byte) sin_idx_x#22 ← phi( main::@6/(byte) sin_idx_x#0 ) - (byte*) RASTER#2 ← phi( main::@6/(byte*) RASTER#5 ) to:main::@2 main::@2: scope:[main] from main::@1 main::@2 main::@5 - (byte*) SPRITES_YPOS#10 ← phi( main::@1/(byte*) SPRITES_YPOS#13 main::@2/(byte*) SPRITES_YPOS#10 main::@5/(byte*) SPRITES_YPOS#14 ) - (byte*) SPRITES_XPOS#10 ← phi( main::@1/(byte*) SPRITES_XPOS#13 main::@2/(byte*) SPRITES_XPOS#10 main::@5/(byte*) SPRITES_XPOS#14 ) - (byte*) BORDERCOL#8 ← phi( main::@1/(byte*) BORDERCOL#12 main::@2/(byte*) BORDERCOL#8 main::@5/(byte*) BORDERCOL#13 ) (byte) sin_idx_y#18 ← phi( main::@1/(byte) sin_idx_y#20 main::@2/(byte) sin_idx_y#18 main::@5/(byte) sin_idx_y#21 ) (byte) sin_idx_x#17 ← phi( main::@1/(byte) sin_idx_x#22 main::@2/(byte) sin_idx_x#17 main::@5/(byte) sin_idx_x#23 ) - (byte*) RASTER#1 ← phi( main::@1/(byte*) RASTER#2 main::@2/(byte*) RASTER#1 main::@5/(byte*) RASTER#3 ) - (boolean~) main::$1 ← *((byte*) RASTER#1) != (byte/word/signed word) 255 + (boolean~) main::$1 ← *((byte*) RASTER#0) != (byte/word/signed word) 255 if((boolean~) main::$1) goto main::@2 to:main::@3 main::@3: scope:[main] from main::@2 - (byte*) RASTER#7 ← phi( main::@2/(byte*) RASTER#1 ) - (byte*) SPRITES_YPOS#6 ← phi( main::@2/(byte*) SPRITES_YPOS#10 ) - (byte*) SPRITES_XPOS#6 ← phi( main::@2/(byte*) SPRITES_XPOS#10 ) - (byte*) BORDERCOL#4 ← phi( main::@2/(byte*) BORDERCOL#8 ) (byte) sin_idx_y#13 ← phi( main::@2/(byte) sin_idx_y#18 ) (byte) sin_idx_x#13 ← phi( main::@2/(byte) sin_idx_x#17 ) call anim param-assignment to:main::@6 main::@6: scope:[main] from main::@3 - (byte*) SPRITES_YPOS#17 ← phi( main::@3/(byte*) SPRITES_YPOS#6 ) - (byte*) SPRITES_XPOS#17 ← phi( main::@3/(byte*) SPRITES_XPOS#6 ) - (byte*) BORDERCOL#17 ← phi( main::@3/(byte*) BORDERCOL#4 ) - (byte*) RASTER#5 ← phi( main::@3/(byte*) RASTER#7 ) (byte) sin_idx_y#7 ← phi( main::@3/(byte) sin_idx_y#5 ) (byte) sin_idx_x#7 ← phi( main::@3/(byte) sin_idx_x#5 ) (byte) sin_idx_x#0 ← (byte) sin_idx_x#7 @@ -5715,57 +5196,23 @@ main::@return: scope:[main] from main::@6 return to:@return init: scope:[init] from main - (byte*) BORDERCOL#47 ← phi( main/(byte*) BORDERCOL#16 ) - (byte*) PROCPORT#15 ← phi( main/(byte*) PROCPORT#18 ) - (byte*) CHARGEN#8 ← phi( main/(byte*) CHARGEN#9 ) - (byte*) SPRITES_COLS#5 ← phi( main/(byte*) SPRITES_COLS#6 ) - (byte*) SPRITES_YPOS#15 ← phi( main/(byte*) SPRITES_YPOS#16 ) - (byte*) SPRITES_XPOS#15 ← phi( main/(byte*) SPRITES_XPOS#16 ) - (byte*) SPRITES_EXPAND_Y#4 ← phi( main/(byte*) SPRITES_EXPAND_Y#5 ) - (byte*) SPRITES_EXPAND_X#4 ← phi( main/(byte*) SPRITES_EXPAND_X#5 ) - (byte*) SPRITES_ENABLE#4 ← phi( main/(byte*) SPRITES_ENABLE#5 ) - (byte*) SCREEN#1 ← phi( main/(byte*) SCREEN#4 ) - (byte*) init::sc#0 ← (byte*) SCREEN#1 + (byte*) init::sc#0 ← (byte*) SCREEN#0 to:init::@1 init::@1: scope:[init] from init init::@1 - (byte*) BORDERCOL#46 ← phi( init/(byte*) BORDERCOL#47 init::@1/(byte*) BORDERCOL#46 ) - (byte*) PROCPORT#13 ← phi( init/(byte*) PROCPORT#15 init::@1/(byte*) PROCPORT#13 ) - (byte*) CHARGEN#7 ← phi( init/(byte*) CHARGEN#8 init::@1/(byte*) CHARGEN#7 ) - (byte*) SPRITES_COLS#4 ← phi( init/(byte*) SPRITES_COLS#5 init::@1/(byte*) SPRITES_COLS#4 ) - (byte*) SPRITES_YPOS#11 ← phi( init/(byte*) SPRITES_YPOS#15 init::@1/(byte*) SPRITES_YPOS#11 ) - (byte*) SPRITES_XPOS#11 ← phi( init/(byte*) SPRITES_XPOS#15 init::@1/(byte*) SPRITES_XPOS#11 ) - (byte*) SPRITES_EXPAND_Y#3 ← phi( init/(byte*) SPRITES_EXPAND_Y#4 init::@1/(byte*) SPRITES_EXPAND_Y#3 ) - (byte*) SPRITES_EXPAND_X#3 ← phi( init/(byte*) SPRITES_EXPAND_X#4 init::@1/(byte*) SPRITES_EXPAND_X#3 ) - (byte*) SPRITES_ENABLE#3 ← phi( init/(byte*) SPRITES_ENABLE#4 init::@1/(byte*) SPRITES_ENABLE#3 ) - (byte*) SCREEN#2 ← phi( init/(byte*) SCREEN#1 init::@1/(byte*) SCREEN#2 ) (byte*) init::sc#2 ← phi( init/(byte*) init::sc#0 init::@1/(byte*) init::sc#1 ) *((byte*) init::sc#2) ← (byte) ' ' (byte*) init::sc#1 ← ++ (byte*) init::sc#2 - (byte*~) init::$0 ← (byte*) SCREEN#2 + (word/signed word) 1000 + (byte*~) init::$0 ← (byte*) SCREEN#0 + (word/signed word) 1000 (boolean~) init::$1 ← (byte*) init::sc#1 < (byte*~) init::$0 if((boolean~) init::$1) goto init::@1 to:init::@2 init::@2: scope:[init] from init::@1 - (byte*) BORDERCOL#45 ← phi( init::@1/(byte*) BORDERCOL#46 ) - (byte*) PROCPORT#10 ← phi( init::@1/(byte*) PROCPORT#13 ) - (byte*) CHARGEN#6 ← phi( init::@1/(byte*) CHARGEN#7 ) - (byte*) SPRITES_COLS#3 ← phi( init::@1/(byte*) SPRITES_COLS#4 ) - (byte*) SPRITES_YPOS#9 ← phi( init::@1/(byte*) SPRITES_YPOS#11 ) - (byte*) SPRITES_XPOS#9 ← phi( init::@1/(byte*) SPRITES_XPOS#11 ) - (byte*) SCREEN#5 ← phi( init::@1/(byte*) SCREEN#2 ) - (byte*) SPRITES_EXPAND_Y#2 ← phi( init::@1/(byte*) SPRITES_EXPAND_Y#3 ) - (byte*) SPRITES_EXPAND_X#2 ← phi( init::@1/(byte*) SPRITES_EXPAND_X#3 ) - (byte*) SPRITES_ENABLE#2 ← phi( init::@1/(byte*) SPRITES_ENABLE#3 ) call place_sprites param-assignment to:init::@3 init::@3: scope:[init] from init::@2 - (byte*) BORDERCOL#44 ← phi( init::@2/(byte*) BORDERCOL#45 ) - (byte*) PROCPORT#8 ← phi( init::@2/(byte*) PROCPORT#10 ) - (byte*) CHARGEN#5 ← phi( init::@2/(byte*) CHARGEN#6 ) call gen_sprites param-assignment to:init::@4 init::@4: scope:[init] from init::@3 - (byte*) BORDERCOL#42 ← phi( init::@3/(byte*) BORDERCOL#44 ) (byte*) gen_sintab::sintab#0 ← (byte[]) sintab_x#0 (byte) gen_sintab::length#0 ← (byte) sinlen_x#0 (byte) gen_sintab::min#0 ← (byte/signed byte/word/signed word) 16 @@ -5773,7 +5220,6 @@ init::@4: scope:[init] from init::@3 call gen_sintab param-assignment to:init::@5 init::@5: scope:[init] from init::@4 - (byte*) BORDERCOL#43 ← phi( init::@4/(byte*) BORDERCOL#42 ) (byte*) gen_sintab::sintab#1 ← (byte[]) sintab_y#0 (byte) gen_sintab::length#1 ← (byte) sinlen_y#0 (byte) gen_sintab::min#1 ← (byte/signed byte/word/signed word) 48 @@ -5784,46 +5230,29 @@ init::@return: scope:[init] from init::@5 return to:@return @34: scope:[] from @32 - (byte*) PROCPORT#21 ← phi( @32/(byte*) PROCPORT#0 ) - (byte*) CHARGEN#11 ← phi( @32/(byte*) CHARGEN#0 ) - (byte*) SPRITES_COLS#8 ← phi( @32/(byte*) SPRITES_COLS#0 ) - (byte*) SPRITES_YPOS#19 ← phi( @32/(byte*) SPRITES_YPOS#0 ) - (byte*) SPRITES_XPOS#19 ← phi( @32/(byte*) SPRITES_XPOS#0 ) - (byte*) SPRITES_EXPAND_Y#7 ← phi( @32/(byte*) SPRITES_EXPAND_Y#0 ) - (byte*) SPRITES_EXPAND_X#7 ← phi( @32/(byte*) SPRITES_EXPAND_X#0 ) - (byte*) SPRITES_ENABLE#7 ← phi( @32/(byte*) SPRITES_ENABLE#0 ) - (byte*) BORDERCOL#26 ← phi( @32/(byte*) BORDERCOL#0 ) - (byte*) RASTER#8 ← phi( @32/(byte*) RASTER#0 ) - (byte*) SCREEN#7 ← phi( @32/(byte*) SCREEN#0 ) (byte) sin_idx_x#2 ← (byte/signed byte/word/signed word) 0 (byte) sin_idx_y#2 ← (byte/signed byte/word/signed word) 0 to:@39 anim: scope:[anim] from main::@3 - (byte*) SPRITES_YPOS#3 ← phi( main::@3/(byte*) SPRITES_YPOS#6 ) - (byte*) SPRITES_XPOS#3 ← phi( main::@3/(byte*) SPRITES_XPOS#6 ) (byte) sin_idx_y#9 ← phi( main::@3/(byte) sin_idx_y#13 ) (byte) sin_idx_x#9 ← phi( main::@3/(byte) sin_idx_x#13 ) - (byte*) BORDERCOL#1 ← phi( main::@3/(byte*) BORDERCOL#4 ) - *((byte*) BORDERCOL#1) ← ++ *((byte*) BORDERCOL#1) + *((byte*) BORDERCOL#0) ← ++ *((byte*) BORDERCOL#0) (byte) anim::xidx#0 ← (byte) sin_idx_x#9 (byte) anim::yidx#0 ← (byte) sin_idx_y#9 (byte) anim::j2#0 ← (byte/signed byte/word/signed word) 12 (byte) anim::j#0 ← (byte/signed byte/word/signed word) 0 to:anim::@1 anim::@1: scope:[anim] from anim anim::@3 - (byte*) BORDERCOL#22 ← phi( anim/(byte*) BORDERCOL#1 anim::@3/(byte*) BORDERCOL#14 ) (byte) sin_idx_y#25 ← phi( anim/(byte) sin_idx_y#9 anim::@3/(byte) sin_idx_y#19 ) (byte) sin_idx_x#24 ← phi( anim/(byte) sin_idx_x#9 anim::@3/(byte) sin_idx_x#14 ) (byte) anim::j#5 ← phi( anim/(byte) anim::j#0 anim::@3/(byte) anim::j#1 ) - (byte*) SPRITES_YPOS#1 ← phi( anim/(byte*) SPRITES_YPOS#3 anim::@3/(byte*) SPRITES_YPOS#4 ) (byte) anim::yidx#3 ← phi( anim/(byte) anim::yidx#0 anim::@3/(byte) anim::yidx#6 ) (byte) anim::j2#3 ← phi( anim/(byte) anim::j2#0 anim::@3/(byte) anim::j2#2 ) - (byte*) SPRITES_XPOS#1 ← phi( anim/(byte*) SPRITES_XPOS#3 anim::@3/(byte*) SPRITES_XPOS#4 ) (byte) anim::xidx#3 ← phi( anim/(byte) anim::xidx#0 anim::@3/(byte) anim::xidx#5 ) (byte~) anim::$0 ← (byte[]) sintab_x#0 *idx (byte) anim::xidx#3 - *((byte*) SPRITES_XPOS#1 + (byte) anim::j2#3) ← (byte~) anim::$0 + *((byte*) SPRITES_XPOS#0 + (byte) anim::j2#3) ← (byte~) anim::$0 (byte~) anim::$1 ← (byte[]) sintab_y#0 *idx (byte) anim::yidx#3 - *((byte*) SPRITES_YPOS#1 + (byte) anim::j2#3) ← (byte~) anim::$1 + *((byte*) SPRITES_YPOS#0 + (byte) anim::j2#3) ← (byte~) anim::$1 (byte~) anim::$2 ← (byte) anim::xidx#3 + (byte/signed byte/word/signed word) 10 (byte) anim::xidx#1 ← (byte~) anim::$2 (boolean~) anim::$3 ← (byte) anim::xidx#1 >= (byte) sinlen_x#0 @@ -5831,11 +5260,8 @@ anim::@1: scope:[anim] from anim anim::@3 if((boolean~) anim::$4) goto anim::@2 to:anim::@6 anim::@2: scope:[anim] from anim::@1 anim::@6 - (byte*) BORDERCOL#18 ← phi( anim::@1/(byte*) BORDERCOL#22 anim::@6/(byte*) BORDERCOL#23 ) (byte) sin_idx_y#22 ← phi( anim::@1/(byte) sin_idx_y#25 anim::@6/(byte) sin_idx_y#26 ) (byte) sin_idx_x#18 ← phi( anim::@1/(byte) sin_idx_x#24 anim::@6/(byte) sin_idx_x#25 ) - (byte*) SPRITES_YPOS#7 ← phi( anim::@1/(byte*) SPRITES_YPOS#1 anim::@6/(byte*) SPRITES_YPOS#12 ) - (byte*) SPRITES_XPOS#7 ← phi( anim::@1/(byte*) SPRITES_XPOS#1 anim::@6/(byte*) SPRITES_XPOS#12 ) (byte) anim::xidx#6 ← phi( anim::@1/(byte) anim::xidx#1 anim::@6/(byte) anim::xidx#2 ) (byte) anim::j#3 ← phi( anim::@1/(byte) anim::j#5 anim::@6/(byte) anim::j#6 ) (byte) anim::j2#5 ← phi( anim::@1/(byte) anim::j2#3 anim::@6/(byte) anim::j2#7 ) @@ -5847,11 +5273,8 @@ anim::@2: scope:[anim] from anim::@1 anim::@6 if((boolean~) anim::$8) goto anim::@3 to:anim::@7 anim::@6: scope:[anim] from anim::@1 - (byte*) BORDERCOL#23 ← phi( anim::@1/(byte*) BORDERCOL#22 ) (byte) sin_idx_y#26 ← phi( anim::@1/(byte) sin_idx_y#25 ) (byte) sin_idx_x#25 ← phi( anim::@1/(byte) sin_idx_x#24 ) - (byte*) SPRITES_YPOS#12 ← phi( anim::@1/(byte*) SPRITES_YPOS#1 ) - (byte*) SPRITES_XPOS#12 ← phi( anim::@1/(byte*) SPRITES_XPOS#1 ) (byte) anim::j#6 ← phi( anim::@1/(byte) anim::j#5 ) (byte) anim::j2#7 ← phi( anim::@1/(byte) anim::j2#3 ) (byte) anim::yidx#7 ← phi( anim::@1/(byte) anim::yidx#3 ) @@ -5860,12 +5283,9 @@ anim::@6: scope:[anim] from anim::@1 (byte) anim::xidx#2 ← (byte~) anim::$5 to:anim::@2 anim::@3: scope:[anim] from anim::@2 anim::@7 - (byte*) BORDERCOL#14 ← phi( anim::@2/(byte*) BORDERCOL#18 anim::@7/(byte*) BORDERCOL#19 ) (byte) sin_idx_y#19 ← phi( anim::@2/(byte) sin_idx_y#22 anim::@7/(byte) sin_idx_y#23 ) (byte) sin_idx_x#14 ← phi( anim::@2/(byte) sin_idx_x#18 anim::@7/(byte) sin_idx_x#19 ) - (byte*) SPRITES_YPOS#4 ← phi( anim::@2/(byte*) SPRITES_YPOS#7 anim::@7/(byte*) SPRITES_YPOS#8 ) (byte) anim::yidx#6 ← phi( anim::@2/(byte) anim::yidx#1 anim::@7/(byte) anim::yidx#2 ) - (byte*) SPRITES_XPOS#4 ← phi( anim::@2/(byte*) SPRITES_XPOS#7 anim::@7/(byte*) SPRITES_XPOS#8 ) (byte) anim::xidx#5 ← phi( anim::@2/(byte) anim::xidx#6 anim::@7/(byte) anim::xidx#7 ) (byte) anim::j#2 ← phi( anim::@2/(byte) anim::j#3 anim::@7/(byte) anim::j#4 ) (byte) anim::j2#4 ← phi( anim::@2/(byte) anim::j2#5 anim::@7/(byte) anim::j2#6 ) @@ -5876,11 +5296,8 @@ anim::@3: scope:[anim] from anim::@2 anim::@7 if((boolean~) anim::$10) goto anim::@1 to:anim::@8 anim::@7: scope:[anim] from anim::@2 - (byte*) BORDERCOL#19 ← phi( anim::@2/(byte*) BORDERCOL#18 ) (byte) sin_idx_y#23 ← phi( anim::@2/(byte) sin_idx_y#22 ) (byte) sin_idx_x#19 ← phi( anim::@2/(byte) sin_idx_x#18 ) - (byte*) SPRITES_YPOS#8 ← phi( anim::@2/(byte*) SPRITES_YPOS#7 ) - (byte*) SPRITES_XPOS#8 ← phi( anim::@2/(byte*) SPRITES_XPOS#7 ) (byte) anim::xidx#7 ← phi( anim::@2/(byte) anim::xidx#6 ) (byte) anim::j#4 ← phi( anim::@2/(byte) anim::j#3 ) (byte) anim::j2#6 ← phi( anim::@2/(byte) anim::j2#5 ) @@ -5889,7 +5306,6 @@ anim::@7: scope:[anim] from anim::@2 (byte) anim::yidx#2 ← (byte~) anim::$9 to:anim::@3 anim::@8: scope:[anim] from anim::@3 - (byte*) BORDERCOL#9 ← phi( anim::@3/(byte*) BORDERCOL#14 ) (byte) sin_idx_y#14 ← phi( anim::@3/(byte) sin_idx_y#19 ) (byte) sin_idx_x#10 ← phi( anim::@3/(byte) sin_idx_x#14 ) (byte) sin_idx_x#3 ← ++ (byte) sin_idx_x#10 @@ -5899,7 +5315,6 @@ anim::@8: scope:[anim] from anim::@3 to:anim::@9 anim::@4: scope:[anim] from anim::@8 anim::@9 (byte) sin_idx_x#21 ← phi( anim::@8/(byte) sin_idx_x#3 anim::@9/(byte) sin_idx_x#4 ) - (byte*) BORDERCOL#6 ← phi( anim::@8/(byte*) BORDERCOL#9 anim::@9/(byte*) BORDERCOL#10 ) (byte) sin_idx_y#10 ← phi( anim::@8/(byte) sin_idx_y#14 anim::@9/(byte) sin_idx_y#15 ) (byte) sin_idx_y#3 ← ++ (byte) sin_idx_y#10 (boolean~) anim::$13 ← (byte) sin_idx_y#3 >= (byte) sinlen_y#0 @@ -5907,19 +5322,16 @@ anim::@4: scope:[anim] from anim::@8 anim::@9 if((boolean~) anim::$14) goto anim::@5 to:anim::@10 anim::@9: scope:[anim] from anim::@8 - (byte*) BORDERCOL#10 ← phi( anim::@8/(byte*) BORDERCOL#9 ) (byte) sin_idx_y#15 ← phi( anim::@8/(byte) sin_idx_y#14 ) (byte) sin_idx_x#4 ← (byte/signed byte/word/signed word) 0 to:anim::@4 anim::@5: scope:[anim] from anim::@10 anim::@4 (byte) sin_idx_y#16 ← phi( anim::@10/(byte) sin_idx_y#4 anim::@4/(byte) sin_idx_y#3 ) (byte) sin_idx_x#15 ← phi( anim::@10/(byte) sin_idx_x#20 anim::@4/(byte) sin_idx_x#21 ) - (byte*) BORDERCOL#2 ← phi( anim::@10/(byte*) BORDERCOL#5 anim::@4/(byte*) BORDERCOL#6 ) - *((byte*) BORDERCOL#2) ← -- *((byte*) BORDERCOL#2) + *((byte*) BORDERCOL#0) ← -- *((byte*) BORDERCOL#0) to:anim::@return anim::@10: scope:[anim] from anim::@4 (byte) sin_idx_x#20 ← phi( anim::@4/(byte) sin_idx_x#21 ) - (byte*) BORDERCOL#5 ← phi( anim::@4/(byte*) BORDERCOL#6 ) (byte) sin_idx_y#4 ← (byte/signed byte/word/signed word) 0 to:anim::@5 anim::@return: scope:[anim] from anim::@5 @@ -5930,17 +5342,10 @@ anim::@return: scope:[anim] from anim::@5 return to:@return place_sprites: scope:[place_sprites] from init::@2 - (byte*) SPRITES_COLS#2 ← phi( init::@2/(byte*) SPRITES_COLS#3 ) - (byte*) SPRITES_YPOS#5 ← phi( init::@2/(byte*) SPRITES_YPOS#9 ) - (byte*) SPRITES_XPOS#5 ← phi( init::@2/(byte*) SPRITES_XPOS#9 ) - (byte*) SCREEN#3 ← phi( init::@2/(byte*) SCREEN#5 ) - (byte*) SPRITES_EXPAND_Y#1 ← phi( init::@2/(byte*) SPRITES_EXPAND_Y#2 ) - (byte*) SPRITES_EXPAND_X#1 ← phi( init::@2/(byte*) SPRITES_EXPAND_X#2 ) - (byte*) SPRITES_ENABLE#1 ← phi( init::@2/(byte*) SPRITES_ENABLE#2 ) - *((byte*) SPRITES_ENABLE#1) ← (byte/signed byte/word/signed word) 127 - *((byte*) SPRITES_EXPAND_X#1) ← (byte/signed byte/word/signed word) 127 - *((byte*) SPRITES_EXPAND_Y#1) ← (byte/signed byte/word/signed word) 127 - (byte*~) place_sprites::$0 ← (byte*) SCREEN#3 + (word/signed word) 1016 + *((byte*) SPRITES_ENABLE#0) ← (byte/signed byte/word/signed word) 127 + *((byte*) SPRITES_EXPAND_X#0) ← (byte/signed byte/word/signed word) 127 + *((byte*) SPRITES_EXPAND_Y#0) ← (byte/signed byte/word/signed word) 127 + (byte*~) place_sprites::$0 ← (byte*) SCREEN#0 + (word/signed word) 1016 (byte*) place_sprites::sprites_ptr#0 ← (byte*~) place_sprites::$0 (byte[]~) place_sprites::$1 ← (byte[]) sprites#0 / (byte/signed byte/word/signed word) 64 (byte~) place_sprites::$2 ← ((byte)) (byte[]~) place_sprites::$1 @@ -5951,20 +5356,17 @@ place_sprites: scope:[place_sprites] from init::@2 (byte) place_sprites::j#0 ← (byte/signed byte/word/signed word) 0 to:place_sprites::@1 place_sprites::@1: scope:[place_sprites] from place_sprites place_sprites::@1 - (byte*) SPRITES_COLS#1 ← phi( place_sprites/(byte*) SPRITES_COLS#2 place_sprites::@1/(byte*) SPRITES_COLS#1 ) (byte) place_sprites::col#2 ← phi( place_sprites/(byte) place_sprites::col#0 place_sprites::@1/(byte) place_sprites::col#1 ) - (byte*) SPRITES_YPOS#2 ← phi( place_sprites/(byte*) SPRITES_YPOS#5 place_sprites::@1/(byte*) SPRITES_YPOS#2 ) (byte) place_sprites::j2#3 ← phi( place_sprites/(byte) place_sprites::j2#0 place_sprites::@1/(byte) place_sprites::j2#2 ) - (byte*) SPRITES_XPOS#2 ← phi( place_sprites/(byte*) SPRITES_XPOS#5 place_sprites::@1/(byte*) SPRITES_XPOS#2 ) (byte) place_sprites::spr_x#2 ← phi( place_sprites/(byte) place_sprites::spr_x#0 place_sprites::@1/(byte) place_sprites::spr_x#1 ) (byte) place_sprites::j#2 ← phi( place_sprites/(byte) place_sprites::j#0 place_sprites::@1/(byte) place_sprites::j#1 ) (byte*) place_sprites::sprites_ptr#1 ← phi( place_sprites/(byte*) place_sprites::sprites_ptr#0 place_sprites::@1/(byte*) place_sprites::sprites_ptr#1 ) (byte) place_sprites::spr_id#2 ← phi( place_sprites/(byte) place_sprites::spr_id#0 place_sprites::@1/(byte) place_sprites::spr_id#1 ) *((byte*) place_sprites::sprites_ptr#1 + (byte) place_sprites::j#2) ← (byte) place_sprites::spr_id#2 (byte) place_sprites::spr_id#1 ← ++ (byte) place_sprites::spr_id#2 - *((byte*) SPRITES_XPOS#2 + (byte) place_sprites::j2#3) ← (byte) place_sprites::spr_x#2 - *((byte*) SPRITES_YPOS#2 + (byte) place_sprites::j2#3) ← (byte/signed byte/word/signed word) 80 - *((byte*) SPRITES_COLS#1 + (byte) place_sprites::j#2) ← (byte) place_sprites::col#2 + *((byte*) SPRITES_XPOS#0 + (byte) place_sprites::j2#3) ← (byte) place_sprites::spr_x#2 + *((byte*) SPRITES_YPOS#0 + (byte) place_sprites::j2#3) ← (byte/signed byte/word/signed word) 80 + *((byte*) SPRITES_COLS#0 + (byte) place_sprites::j#2) ← (byte) place_sprites::col#2 (byte~) place_sprites::$3 ← (byte) place_sprites::spr_x#2 + (byte/signed byte/word/signed word) 32 (byte) place_sprites::spr_x#1 ← (byte~) place_sprites::$3 (byte~) place_sprites::$4 ← (byte/signed byte/word/signed word) 7 ^ (byte/signed byte/word/signed word) 5 @@ -5980,15 +5382,11 @@ place_sprites::@return: scope:[place_sprites] from place_sprites::@1 return to:@return gen_sprites: scope:[gen_sprites] from init::@3 - (byte*) PROCPORT#5 ← phi( init::@3/(byte*) PROCPORT#8 ) - (byte*) CHARGEN#3 ← phi( init::@3/(byte*) CHARGEN#5 ) (byte[]) gen_sprites::cml#0 ← (string) "camelot" (byte*) gen_sprites::spr#0 ← (byte[]) sprites#0 (byte) gen_sprites::i#0 ← (byte/signed byte/word/signed word) 0 to:gen_sprites::@1 gen_sprites::@1: scope:[gen_sprites] from gen_sprites gen_sprites::@3 - (byte*) PROCPORT#3 ← phi( gen_sprites/(byte*) PROCPORT#5 gen_sprites::@3/(byte*) PROCPORT#6 ) - (byte*) CHARGEN#2 ← phi( gen_sprites/(byte*) CHARGEN#3 gen_sprites::@3/(byte*) CHARGEN#4 ) (byte*) gen_sprites::spr#2 ← phi( gen_sprites/(byte*) gen_sprites::spr#0 gen_sprites::@3/(byte*) gen_sprites::spr#1 ) (byte) gen_sprites::i#2 ← phi( gen_sprites/(byte) gen_sprites::i#0 gen_sprites::@3/(byte) gen_sprites::i#1 ) (byte[]) gen_sprites::cml#1 ← phi( gen_sprites/(byte[]) gen_sprites::cml#0 gen_sprites::@3/(byte[]) gen_sprites::cml#2 ) @@ -5998,8 +5396,6 @@ gen_sprites::@1: scope:[gen_sprites] from gen_sprites gen_sprites::@3 call gen_chargen_sprite param-assignment to:gen_sprites::@3 gen_sprites::@3: scope:[gen_sprites] from gen_sprites::@1 - (byte*) PROCPORT#6 ← phi( gen_sprites::@1/(byte*) PROCPORT#3 ) - (byte*) CHARGEN#4 ← phi( gen_sprites::@1/(byte*) CHARGEN#2 ) (byte[]) gen_sprites::cml#2 ← phi( gen_sprites::@1/(byte[]) gen_sprites::cml#1 ) (byte) gen_sprites::i#3 ← phi( gen_sprites::@1/(byte) gen_sprites::i#2 ) (byte*) gen_sprites::spr#3 ← phi( gen_sprites::@1/(byte*) gen_sprites::spr#2 ) @@ -6014,19 +5410,16 @@ gen_sprites::@return: scope:[gen_sprites] from gen_sprites::@3 to:@return gen_chargen_sprite: scope:[gen_chargen_sprite] from gen_sprites::@1 (byte*) gen_chargen_sprite::sprite#12 ← phi( gen_sprites::@1/(byte*) gen_chargen_sprite::sprite#0 ) - (byte*) PROCPORT#1 ← phi( gen_sprites::@1/(byte*) PROCPORT#3 ) - (byte*) CHARGEN#1 ← phi( gen_sprites::@1/(byte*) CHARGEN#2 ) (byte) gen_chargen_sprite::ch#1 ← phi( gen_sprites::@1/(byte) gen_chargen_sprite::ch#0 ) (word~) gen_chargen_sprite::$0 ← ((word)) (byte) gen_chargen_sprite::ch#1 (word~) gen_chargen_sprite::$1 ← (word~) gen_chargen_sprite::$0 << (byte/signed byte/word/signed word) 3 - (byte*~) gen_chargen_sprite::$2 ← (byte*) CHARGEN#1 + (word~) gen_chargen_sprite::$1 + (byte*~) gen_chargen_sprite::$2 ← (byte*) CHARGEN#0 + (word~) gen_chargen_sprite::$1 (byte*) gen_chargen_sprite::chargen#0 ← (byte*~) gen_chargen_sprite::$2 asm { sei } - *((byte*) PROCPORT#1) ← (byte/signed byte/word/signed word) 50 + *((byte*) PROCPORT#0) ← (byte/signed byte/word/signed word) 50 (byte) gen_chargen_sprite::y#0 ← (byte/signed byte/word/signed word) 0 to:gen_chargen_sprite::@1 gen_chargen_sprite::@1: scope:[gen_chargen_sprite] from gen_chargen_sprite gen_chargen_sprite::@9 - (byte*) PROCPORT#19 ← phi( gen_chargen_sprite/(byte*) PROCPORT#1 gen_chargen_sprite::@9/(byte*) PROCPORT#4 ) (byte*) gen_chargen_sprite::sprite#11 ← phi( gen_chargen_sprite/(byte*) gen_chargen_sprite::sprite#12 gen_chargen_sprite::@9/(byte*) gen_chargen_sprite::sprite#2 ) (byte) gen_chargen_sprite::y#2 ← phi( gen_chargen_sprite/(byte) gen_chargen_sprite::y#0 gen_chargen_sprite::@9/(byte) gen_chargen_sprite::y#1 ) (byte*) gen_chargen_sprite::chargen#1 ← phi( gen_chargen_sprite/(byte*) gen_chargen_sprite::chargen#0 gen_chargen_sprite::@9/(byte*) gen_chargen_sprite::chargen#2 ) @@ -6037,7 +5430,6 @@ gen_chargen_sprite::@1: scope:[gen_chargen_sprite] from gen_chargen_sprite gen_ (byte) gen_chargen_sprite::x#0 ← (byte/signed byte/word/signed word) 0 to:gen_chargen_sprite::@2 gen_chargen_sprite::@2: scope:[gen_chargen_sprite] from gen_chargen_sprite::@1 gen_chargen_sprite::@8 - (byte*) PROCPORT#16 ← phi( gen_chargen_sprite::@1/(byte*) PROCPORT#19 gen_chargen_sprite::@8/(byte*) PROCPORT#7 ) (byte*) gen_chargen_sprite::chargen#8 ← phi( gen_chargen_sprite::@1/(byte*) gen_chargen_sprite::chargen#1 gen_chargen_sprite::@8/(byte*) gen_chargen_sprite::chargen#3 ) (byte) gen_chargen_sprite::y#9 ← phi( gen_chargen_sprite::@1/(byte) gen_chargen_sprite::y#2 gen_chargen_sprite::@8/(byte) gen_chargen_sprite::y#4 ) (byte) gen_chargen_sprite::x#7 ← phi( gen_chargen_sprite::@1/(byte) gen_chargen_sprite::x#0 gen_chargen_sprite::@8/(byte) gen_chargen_sprite::x#1 ) @@ -6052,7 +5444,6 @@ gen_chargen_sprite::@2: scope:[gen_chargen_sprite] from gen_chargen_sprite::@1 if((boolean~) gen_chargen_sprite::$6) goto gen_chargen_sprite::@3 to:gen_chargen_sprite::@6 gen_chargen_sprite::@3: scope:[gen_chargen_sprite] from gen_chargen_sprite::@2 gen_chargen_sprite::@6 - (byte*) PROCPORT#14 ← phi( gen_chargen_sprite::@2/(byte*) PROCPORT#16 gen_chargen_sprite::@6/(byte*) PROCPORT#17 ) (byte*) gen_chargen_sprite::chargen#7 ← phi( gen_chargen_sprite::@2/(byte*) gen_chargen_sprite::chargen#8 gen_chargen_sprite::@6/(byte*) gen_chargen_sprite::chargen#9 ) (byte) gen_chargen_sprite::y#8 ← phi( gen_chargen_sprite::@2/(byte) gen_chargen_sprite::y#9 gen_chargen_sprite::@6/(byte) gen_chargen_sprite::y#10 ) (byte) gen_chargen_sprite::x#6 ← phi( gen_chargen_sprite::@2/(byte) gen_chargen_sprite::x#7 gen_chargen_sprite::@6/(byte) gen_chargen_sprite::x#8 ) @@ -6064,7 +5455,6 @@ gen_chargen_sprite::@3: scope:[gen_chargen_sprite] from gen_chargen_sprite::@2 (byte) gen_chargen_sprite::b#0 ← (byte/signed byte/word/signed word) 0 to:gen_chargen_sprite::@4 gen_chargen_sprite::@6: scope:[gen_chargen_sprite] from gen_chargen_sprite::@2 - (byte*) PROCPORT#17 ← phi( gen_chargen_sprite::@2/(byte*) PROCPORT#16 ) (byte*) gen_chargen_sprite::chargen#9 ← phi( gen_chargen_sprite::@2/(byte*) gen_chargen_sprite::chargen#8 ) (byte) gen_chargen_sprite::y#10 ← phi( gen_chargen_sprite::@2/(byte) gen_chargen_sprite::y#9 ) (byte) gen_chargen_sprite::x#8 ← phi( gen_chargen_sprite::@2/(byte) gen_chargen_sprite::x#7 ) @@ -6075,7 +5465,6 @@ gen_chargen_sprite::@6: scope:[gen_chargen_sprite] from gen_chargen_sprite::@2 (byte) gen_chargen_sprite::c#1 ← (byte/signed byte/word/signed word) 1 to:gen_chargen_sprite::@3 gen_chargen_sprite::@4: scope:[gen_chargen_sprite] from gen_chargen_sprite::@3 gen_chargen_sprite::@5 - (byte*) PROCPORT#11 ← phi( gen_chargen_sprite::@3/(byte*) PROCPORT#14 gen_chargen_sprite::@5/(byte*) PROCPORT#9 ) (byte*) gen_chargen_sprite::chargen#5 ← phi( gen_chargen_sprite::@3/(byte*) gen_chargen_sprite::chargen#7 gen_chargen_sprite::@5/(byte*) gen_chargen_sprite::chargen#4 ) (byte) gen_chargen_sprite::y#6 ← phi( gen_chargen_sprite::@3/(byte) gen_chargen_sprite::y#8 gen_chargen_sprite::@5/(byte) gen_chargen_sprite::y#5 ) (byte) gen_chargen_sprite::x#4 ← phi( gen_chargen_sprite::@3/(byte) gen_chargen_sprite::x#6 gen_chargen_sprite::@5/(byte) gen_chargen_sprite::x#3 ) @@ -6094,7 +5483,6 @@ gen_chargen_sprite::@4: scope:[gen_chargen_sprite] from gen_chargen_sprite::@3 if((boolean~) gen_chargen_sprite::$10) goto gen_chargen_sprite::@5 to:gen_chargen_sprite::@7 gen_chargen_sprite::@5: scope:[gen_chargen_sprite] from gen_chargen_sprite::@4 gen_chargen_sprite::@7 - (byte*) PROCPORT#9 ← phi( gen_chargen_sprite::@4/(byte*) PROCPORT#11 gen_chargen_sprite::@7/(byte*) PROCPORT#12 ) (byte*) gen_chargen_sprite::chargen#4 ← phi( gen_chargen_sprite::@4/(byte*) gen_chargen_sprite::chargen#5 gen_chargen_sprite::@7/(byte*) gen_chargen_sprite::chargen#6 ) (byte) gen_chargen_sprite::y#5 ← phi( gen_chargen_sprite::@4/(byte) gen_chargen_sprite::y#6 gen_chargen_sprite::@7/(byte) gen_chargen_sprite::y#7 ) (byte*) gen_chargen_sprite::sprite#8 ← phi( gen_chargen_sprite::@4/(byte*) gen_chargen_sprite::sprite#5 gen_chargen_sprite::@7/(byte*) gen_chargen_sprite::sprite#1 ) @@ -6109,7 +5497,6 @@ gen_chargen_sprite::@5: scope:[gen_chargen_sprite] from gen_chargen_sprite::@4 if((boolean~) gen_chargen_sprite::$11) goto gen_chargen_sprite::@4 to:gen_chargen_sprite::@8 gen_chargen_sprite::@7: scope:[gen_chargen_sprite] from gen_chargen_sprite::@4 - (byte*) PROCPORT#12 ← phi( gen_chargen_sprite::@4/(byte*) PROCPORT#11 ) (byte*) gen_chargen_sprite::chargen#6 ← phi( gen_chargen_sprite::@4/(byte*) gen_chargen_sprite::chargen#5 ) (byte) gen_chargen_sprite::y#7 ← phi( gen_chargen_sprite::@4/(byte) gen_chargen_sprite::y#6 ) (byte) gen_chargen_sprite::x#5 ← phi( gen_chargen_sprite::@4/(byte) gen_chargen_sprite::x#4 ) @@ -6128,7 +5515,6 @@ gen_chargen_sprite::@7: scope:[gen_chargen_sprite] from gen_chargen_sprite::@4 gen_chargen_sprite::@8: scope:[gen_chargen_sprite] from gen_chargen_sprite::@5 (byte) gen_chargen_sprite::s_gen_cnt#8 ← phi( gen_chargen_sprite::@5/(byte) gen_chargen_sprite::s_gen_cnt#5 ) (byte) gen_chargen_sprite::s_gen#9 ← phi( gen_chargen_sprite::@5/(byte) gen_chargen_sprite::s_gen#6 ) - (byte*) PROCPORT#7 ← phi( gen_chargen_sprite::@5/(byte*) PROCPORT#9 ) (byte*) gen_chargen_sprite::chargen#3 ← phi( gen_chargen_sprite::@5/(byte*) gen_chargen_sprite::chargen#4 ) (byte) gen_chargen_sprite::y#4 ← phi( gen_chargen_sprite::@5/(byte) gen_chargen_sprite::y#5 ) (byte*) gen_chargen_sprite::sprite#6 ← phi( gen_chargen_sprite::@5/(byte*) gen_chargen_sprite::sprite#8 ) @@ -6141,7 +5527,6 @@ gen_chargen_sprite::@8: scope:[gen_chargen_sprite] from gen_chargen_sprite::@5 if((boolean~) gen_chargen_sprite::$13) goto gen_chargen_sprite::@2 to:gen_chargen_sprite::@9 gen_chargen_sprite::@9: scope:[gen_chargen_sprite] from gen_chargen_sprite::@8 - (byte*) PROCPORT#4 ← phi( gen_chargen_sprite::@8/(byte*) PROCPORT#7 ) (byte*) gen_chargen_sprite::chargen#2 ← phi( gen_chargen_sprite::@8/(byte*) gen_chargen_sprite::chargen#3 ) (byte) gen_chargen_sprite::y#3 ← phi( gen_chargen_sprite::@8/(byte) gen_chargen_sprite::y#4 ) (byte*) gen_chargen_sprite::sprite#4 ← phi( gen_chargen_sprite::@8/(byte*) gen_chargen_sprite::sprite#6 ) @@ -6152,15 +5537,13 @@ gen_chargen_sprite::@9: scope:[gen_chargen_sprite] from gen_chargen_sprite::@8 if((boolean~) gen_chargen_sprite::$15) goto gen_chargen_sprite::@1 to:gen_chargen_sprite::@10 gen_chargen_sprite::@10: scope:[gen_chargen_sprite] from gen_chargen_sprite::@9 - (byte*) PROCPORT#2 ← phi( gen_chargen_sprite::@9/(byte*) PROCPORT#4 ) - *((byte*) PROCPORT#2) ← (byte/signed byte/word/signed word) 55 + *((byte*) PROCPORT#0) ← (byte/signed byte/word/signed word) 55 asm { cli } to:gen_chargen_sprite::@return gen_chargen_sprite::@return: scope:[gen_chargen_sprite] from gen_chargen_sprite::@10 return to:@return gen_sintab: scope:[gen_sintab] from init::@4 init::@5 - (byte*) BORDERCOL#41 ← phi( init::@4/(byte*) BORDERCOL#42 init::@5/(byte*) BORDERCOL#43 ) (byte*) gen_sintab::sintab#23 ← phi( init::@4/(byte*) gen_sintab::sintab#0 init::@5/(byte*) gen_sintab::sintab#1 ) (byte) gen_sintab::length#23 ← phi( init::@4/(byte) gen_sintab::length#0 init::@5/(byte) gen_sintab::length#1 ) (byte) gen_sintab::min#4 ← phi( init::@4/(byte) gen_sintab::min#0 init::@5/(byte) gen_sintab::min#1 ) @@ -6174,7 +5557,6 @@ gen_sintab: scope:[gen_sintab] from init::@4 init::@5 call setFAC param-assignment to:gen_sintab::@3 gen_sintab::@3: scope:[gen_sintab] from gen_sintab - (byte*) BORDERCOL#40 ← phi( gen_sintab/(byte*) BORDERCOL#41 ) (byte*) gen_sintab::sintab#22 ← phi( gen_sintab/(byte*) gen_sintab::sintab#23 ) (byte) gen_sintab::length#22 ← phi( gen_sintab/(byte) gen_sintab::length#23 ) (byte[]) gen_sintab::f_i#21 ← phi( gen_sintab/(byte[]) gen_sintab::f_i#0 ) @@ -6185,7 +5567,6 @@ gen_sintab::@3: scope:[gen_sintab] from gen_sintab call setARGtoFAC param-assignment to:gen_sintab::@4 gen_sintab::@4: scope:[gen_sintab] from gen_sintab::@3 - (byte*) BORDERCOL#39 ← phi( gen_sintab::@3/(byte*) BORDERCOL#40 ) (byte*) gen_sintab::sintab#21 ← phi( gen_sintab::@3/(byte*) gen_sintab::sintab#22 ) (byte) gen_sintab::length#21 ← phi( gen_sintab::@3/(byte) gen_sintab::length#22 ) (byte[]) gen_sintab::f_i#20 ← phi( gen_sintab::@3/(byte[]) gen_sintab::f_i#21 ) @@ -6199,7 +5580,6 @@ gen_sintab::@4: scope:[gen_sintab] from gen_sintab::@3 call setFAC param-assignment to:gen_sintab::@5 gen_sintab::@5: scope:[gen_sintab] from gen_sintab::@4 - (byte*) BORDERCOL#38 ← phi( gen_sintab::@4/(byte*) BORDERCOL#39 ) (byte*) gen_sintab::sintab#20 ← phi( gen_sintab::@4/(byte*) gen_sintab::sintab#21 ) (byte) gen_sintab::length#20 ← phi( gen_sintab::@4/(byte) gen_sintab::length#21 ) (byte[]) gen_sintab::f_i#19 ← phi( gen_sintab::@4/(byte[]) gen_sintab::f_i#20 ) @@ -6210,7 +5590,6 @@ gen_sintab::@5: scope:[gen_sintab] from gen_sintab::@4 call setMEMtoFAC param-assignment to:gen_sintab::@6 gen_sintab::@6: scope:[gen_sintab] from gen_sintab::@5 - (byte*) BORDERCOL#37 ← phi( gen_sintab::@5/(byte*) BORDERCOL#38 ) (byte*) gen_sintab::sintab#19 ← phi( gen_sintab::@5/(byte*) gen_sintab::sintab#20 ) (byte) gen_sintab::length#19 ← phi( gen_sintab::@5/(byte) gen_sintab::length#20 ) (byte[]) gen_sintab::f_i#18 ← phi( gen_sintab::@5/(byte[]) gen_sintab::f_i#19 ) @@ -6220,7 +5599,6 @@ gen_sintab::@6: scope:[gen_sintab] from gen_sintab::@5 call subFACfromARG param-assignment to:gen_sintab::@7 gen_sintab::@7: scope:[gen_sintab] from gen_sintab::@6 - (byte*) BORDERCOL#36 ← phi( gen_sintab::@6/(byte*) BORDERCOL#37 ) (byte*) gen_sintab::sintab#18 ← phi( gen_sintab::@6/(byte*) gen_sintab::sintab#19 ) (byte) gen_sintab::length#18 ← phi( gen_sintab::@6/(byte) gen_sintab::length#19 ) (byte[]) gen_sintab::f_i#17 ← phi( gen_sintab::@6/(byte[]) gen_sintab::f_i#18 ) @@ -6231,7 +5609,6 @@ gen_sintab::@7: scope:[gen_sintab] from gen_sintab::@6 call setMEMtoFAC param-assignment to:gen_sintab::@8 gen_sintab::@8: scope:[gen_sintab] from gen_sintab::@7 - (byte*) BORDERCOL#35 ← phi( gen_sintab::@7/(byte*) BORDERCOL#36 ) (byte*) gen_sintab::sintab#17 ← phi( gen_sintab::@7/(byte*) gen_sintab::sintab#18 ) (byte) gen_sintab::length#17 ← phi( gen_sintab::@7/(byte) gen_sintab::length#18 ) (byte[]) gen_sintab::f_i#16 ← phi( gen_sintab::@7/(byte[]) gen_sintab::f_i#17 ) @@ -6242,7 +5619,6 @@ gen_sintab::@8: scope:[gen_sintab] from gen_sintab::@7 call setFAC param-assignment to:gen_sintab::@9 gen_sintab::@9: scope:[gen_sintab] from gen_sintab::@8 - (byte*) BORDERCOL#34 ← phi( gen_sintab::@8/(byte*) BORDERCOL#35 ) (byte*) gen_sintab::sintab#16 ← phi( gen_sintab::@8/(byte*) gen_sintab::sintab#17 ) (byte) gen_sintab::length#16 ← phi( gen_sintab::@8/(byte) gen_sintab::length#17 ) (byte[]) gen_sintab::f_i#14 ← phi( gen_sintab::@8/(byte[]) gen_sintab::f_i#16 ) @@ -6253,7 +5629,6 @@ gen_sintab::@9: scope:[gen_sintab] from gen_sintab::@8 call divMEMbyFAC param-assignment to:gen_sintab::@10 gen_sintab::@10: scope:[gen_sintab] from gen_sintab::@9 - (byte*) BORDERCOL#33 ← phi( gen_sintab::@9/(byte*) BORDERCOL#34 ) (byte*) gen_sintab::sintab#15 ← phi( gen_sintab::@9/(byte*) gen_sintab::sintab#16 ) (byte) gen_sintab::length#15 ← phi( gen_sintab::@9/(byte) gen_sintab::length#16 ) (byte[]) gen_sintab::f_i#12 ← phi( gen_sintab::@9/(byte[]) gen_sintab::f_i#14 ) @@ -6264,7 +5639,6 @@ gen_sintab::@10: scope:[gen_sintab] from gen_sintab::@9 call setMEMtoFAC param-assignment to:gen_sintab::@11 gen_sintab::@11: scope:[gen_sintab] from gen_sintab::@10 - (byte*) BORDERCOL#32 ← phi( gen_sintab::@10/(byte*) BORDERCOL#33 ) (byte*) gen_sintab::sintab#14 ← phi( gen_sintab::@10/(byte*) gen_sintab::sintab#15 ) (byte[]) gen_sintab::f_amp#20 ← phi( gen_sintab::@10/(byte[]) gen_sintab::f_amp#3 ) (byte) gen_sintab::length#14 ← phi( gen_sintab::@10/(byte) gen_sintab::length#15 ) @@ -6275,7 +5649,6 @@ gen_sintab::@11: scope:[gen_sintab] from gen_sintab::@10 call addMEMtoFAC param-assignment to:gen_sintab::@12 gen_sintab::@12: scope:[gen_sintab] from gen_sintab::@11 - (byte*) BORDERCOL#31 ← phi( gen_sintab::@11/(byte*) BORDERCOL#32 ) (byte*) gen_sintab::sintab#13 ← phi( gen_sintab::@11/(byte*) gen_sintab::sintab#14 ) (byte[]) gen_sintab::f_amp#18 ← phi( gen_sintab::@11/(byte[]) gen_sintab::f_amp#20 ) (byte) gen_sintab::length#12 ← phi( gen_sintab::@11/(byte) gen_sintab::length#14 ) @@ -6286,7 +5659,6 @@ gen_sintab::@12: scope:[gen_sintab] from gen_sintab::@11 call setMEMtoFAC param-assignment to:gen_sintab::@13 gen_sintab::@13: scope:[gen_sintab] from gen_sintab::@12 - (byte*) BORDERCOL#30 ← phi( gen_sintab::@12/(byte*) BORDERCOL#31 ) (byte*) gen_sintab::sintab#12 ← phi( gen_sintab::@12/(byte*) gen_sintab::sintab#13 ) (byte[]) gen_sintab::f_min#19 ← phi( gen_sintab::@12/(byte[]) gen_sintab::f_min#3 ) (byte[]) gen_sintab::f_amp#16 ← phi( gen_sintab::@12/(byte[]) gen_sintab::f_amp#18 ) @@ -6296,7 +5668,6 @@ gen_sintab::@13: scope:[gen_sintab] from gen_sintab::@12 (byte) gen_sintab::i#0 ← (byte/signed byte/word/signed word) 0 to:gen_sintab::@1 gen_sintab::@1: scope:[gen_sintab] from gen_sintab::@13 gen_sintab::@22 - (byte*) BORDERCOL#29 ← phi( gen_sintab::@13/(byte*) BORDERCOL#30 gen_sintab::@22/(byte*) BORDERCOL#3 ) (byte*) gen_sintab::sintab#11 ← phi( gen_sintab::@13/(byte*) gen_sintab::sintab#12 gen_sintab::@22/(byte*) gen_sintab::sintab#2 ) (byte[]) gen_sintab::f_min#18 ← phi( gen_sintab::@13/(byte[]) gen_sintab::f_min#19 gen_sintab::@22/(byte[]) gen_sintab::f_min#20 ) (byte[]) gen_sintab::f_amp#15 ← phi( gen_sintab::@13/(byte[]) gen_sintab::f_amp#16 gen_sintab::@22/(byte[]) gen_sintab::f_amp#17 ) @@ -6309,7 +5680,6 @@ gen_sintab::@1: scope:[gen_sintab] from gen_sintab::@13 gen_sintab::@22 call setFAC param-assignment to:gen_sintab::@14 gen_sintab::@14: scope:[gen_sintab] from gen_sintab::@1 - (byte*) BORDERCOL#28 ← phi( gen_sintab::@1/(byte*) BORDERCOL#29 ) (byte) gen_sintab::i#11 ← phi( gen_sintab::@1/(byte) gen_sintab::i#2 ) (byte*) gen_sintab::sintab#10 ← phi( gen_sintab::@1/(byte*) gen_sintab::sintab#11 ) (byte[]) gen_sintab::f_min#17 ← phi( gen_sintab::@1/(byte[]) gen_sintab::f_min#18 ) @@ -6322,7 +5692,6 @@ gen_sintab::@14: scope:[gen_sintab] from gen_sintab::@1 to:gen_sintab::@15 gen_sintab::@15: scope:[gen_sintab] from gen_sintab::@14 (byte*) gen_sintab::f_2pi#18 ← phi( gen_sintab::@14/(byte*) gen_sintab::f_2pi#1 ) - (byte*) BORDERCOL#27 ← phi( gen_sintab::@14/(byte*) BORDERCOL#28 ) (byte) gen_sintab::i#10 ← phi( gen_sintab::@14/(byte) gen_sintab::i#11 ) (byte*) gen_sintab::sintab#9 ← phi( gen_sintab::@14/(byte*) gen_sintab::sintab#10 ) (byte[]) gen_sintab::f_min#16 ← phi( gen_sintab::@14/(byte[]) gen_sintab::f_min#17 ) @@ -6334,7 +5703,6 @@ gen_sintab::@15: scope:[gen_sintab] from gen_sintab::@14 to:gen_sintab::@16 gen_sintab::@16: scope:[gen_sintab] from gen_sintab::@15 (byte*) gen_sintab::f_2pi#16 ← phi( gen_sintab::@15/(byte*) gen_sintab::f_2pi#18 ) - (byte*) BORDERCOL#25 ← phi( gen_sintab::@15/(byte*) BORDERCOL#27 ) (byte) gen_sintab::i#9 ← phi( gen_sintab::@15/(byte) gen_sintab::i#10 ) (byte*) gen_sintab::sintab#8 ← phi( gen_sintab::@15/(byte*) gen_sintab::sintab#9 ) (byte[]) gen_sintab::f_min#14 ← phi( gen_sintab::@15/(byte[]) gen_sintab::f_min#16 ) @@ -6348,7 +5716,6 @@ gen_sintab::@16: scope:[gen_sintab] from gen_sintab::@15 gen_sintab::@17: scope:[gen_sintab] from gen_sintab::@16 (byte*) gen_sintab::f_2pi#14 ← phi( gen_sintab::@16/(byte*) gen_sintab::f_2pi#16 ) (byte) gen_sintab::length#13 ← phi( gen_sintab::@16/(byte) gen_sintab::length#2 ) - (byte*) BORDERCOL#24 ← phi( gen_sintab::@16/(byte*) BORDERCOL#25 ) (byte) gen_sintab::i#8 ← phi( gen_sintab::@16/(byte) gen_sintab::i#9 ) (byte*) gen_sintab::sintab#7 ← phi( gen_sintab::@16/(byte*) gen_sintab::sintab#8 ) (byte[]) gen_sintab::f_min#12 ← phi( gen_sintab::@16/(byte[]) gen_sintab::f_min#14 ) @@ -6361,7 +5728,6 @@ gen_sintab::@18: scope:[gen_sintab] from gen_sintab::@17 (byte[]) gen_sintab::f_i#15 ← phi( gen_sintab::@17/(byte[]) gen_sintab::f_i#2 ) (byte*) gen_sintab::f_2pi#12 ← phi( gen_sintab::@17/(byte*) gen_sintab::f_2pi#14 ) (byte) gen_sintab::length#11 ← phi( gen_sintab::@17/(byte) gen_sintab::length#13 ) - (byte*) BORDERCOL#20 ← phi( gen_sintab::@17/(byte*) BORDERCOL#24 ) (byte) gen_sintab::i#7 ← phi( gen_sintab::@17/(byte) gen_sintab::i#8 ) (byte*) gen_sintab::sintab#6 ← phi( gen_sintab::@17/(byte*) gen_sintab::sintab#7 ) (byte[]) gen_sintab::f_min#10 ← phi( gen_sintab::@17/(byte[]) gen_sintab::f_min#12 ) @@ -6372,7 +5738,6 @@ gen_sintab::@19: scope:[gen_sintab] from gen_sintab::@18 (byte[]) gen_sintab::f_i#13 ← phi( gen_sintab::@18/(byte[]) gen_sintab::f_i#15 ) (byte*) gen_sintab::f_2pi#10 ← phi( gen_sintab::@18/(byte*) gen_sintab::f_2pi#12 ) (byte) gen_sintab::length#9 ← phi( gen_sintab::@18/(byte) gen_sintab::length#11 ) - (byte*) BORDERCOL#15 ← phi( gen_sintab::@18/(byte*) BORDERCOL#20 ) (byte) gen_sintab::i#6 ← phi( gen_sintab::@18/(byte) gen_sintab::i#7 ) (byte*) gen_sintab::sintab#5 ← phi( gen_sintab::@18/(byte*) gen_sintab::sintab#6 ) (byte[]) gen_sintab::f_min#7 ← phi( gen_sintab::@18/(byte[]) gen_sintab::f_min#10 ) @@ -6385,7 +5750,6 @@ gen_sintab::@20: scope:[gen_sintab] from gen_sintab::@19 (byte[]) gen_sintab::f_i#11 ← phi( gen_sintab::@19/(byte[]) gen_sintab::f_i#13 ) (byte*) gen_sintab::f_2pi#8 ← phi( gen_sintab::@19/(byte*) gen_sintab::f_2pi#10 ) (byte) gen_sintab::length#7 ← phi( gen_sintab::@19/(byte) gen_sintab::length#9 ) - (byte*) BORDERCOL#11 ← phi( gen_sintab::@19/(byte*) BORDERCOL#15 ) (byte) gen_sintab::i#5 ← phi( gen_sintab::@19/(byte) gen_sintab::i#6 ) (byte*) gen_sintab::sintab#4 ← phi( gen_sintab::@19/(byte*) gen_sintab::sintab#5 ) (byte[]) gen_sintab::f_min#4 ← phi( gen_sintab::@19/(byte[]) gen_sintab::f_min#7 ) @@ -6398,7 +5762,6 @@ gen_sintab::@21: scope:[gen_sintab] from gen_sintab::@20 (byte[]) gen_sintab::f_i#9 ← phi( gen_sintab::@20/(byte[]) gen_sintab::f_i#11 ) (byte*) gen_sintab::f_2pi#6 ← phi( gen_sintab::@20/(byte*) gen_sintab::f_2pi#8 ) (byte) gen_sintab::length#5 ← phi( gen_sintab::@20/(byte) gen_sintab::length#7 ) - (byte*) BORDERCOL#7 ← phi( gen_sintab::@20/(byte*) BORDERCOL#11 ) (byte) gen_sintab::i#4 ← phi( gen_sintab::@20/(byte) gen_sintab::i#5 ) (byte*) gen_sintab::sintab#3 ← phi( gen_sintab::@20/(byte*) gen_sintab::sintab#4 ) call getFAC param-assignment @@ -6410,14 +5773,13 @@ gen_sintab::@22: scope:[gen_sintab] from gen_sintab::@21 (byte[]) gen_sintab::f_i#7 ← phi( gen_sintab::@21/(byte[]) gen_sintab::f_i#9 ) (byte*) gen_sintab::f_2pi#4 ← phi( gen_sintab::@21/(byte*) gen_sintab::f_2pi#6 ) (byte) gen_sintab::length#3 ← phi( gen_sintab::@21/(byte) gen_sintab::length#5 ) - (byte*) BORDERCOL#3 ← phi( gen_sintab::@21/(byte*) BORDERCOL#7 ) (byte) gen_sintab::i#3 ← phi( gen_sintab::@21/(byte) gen_sintab::i#4 ) (byte*) gen_sintab::sintab#2 ← phi( gen_sintab::@21/(byte*) gen_sintab::sintab#3 ) (word) getFAC::return#4 ← phi( gen_sintab::@21/(word) getFAC::return#2 ) (word~) gen_sintab::$23 ← (word) getFAC::return#4 (byte~) gen_sintab::$24 ← ((byte)) (word~) gen_sintab::$23 *((byte*) gen_sintab::sintab#2 + (byte) gen_sintab::i#3) ← (byte~) gen_sintab::$24 - *((byte*) BORDERCOL#3) ← ++ *((byte*) BORDERCOL#3) + *((byte*) BORDERCOL#0) ← ++ *((byte*) BORDERCOL#0) (byte) gen_sintab::i#1 ← ++ (byte) gen_sintab::i#3 (boolean~) gen_sintab::$25 ← (byte) gen_sintab::i#1 < (byte) gen_sintab::length#3 if((boolean~) gen_sintab::$25) goto gen_sintab::@1 @@ -6426,17 +5788,6 @@ gen_sintab::@return: scope:[gen_sintab] from gen_sintab::@22 return to:@return @39: scope:[] from @34 - (byte*) PROCPORT#20 ← phi( @34/(byte*) PROCPORT#21 ) - (byte*) CHARGEN#10 ← phi( @34/(byte*) CHARGEN#11 ) - (byte*) SPRITES_COLS#7 ← phi( @34/(byte*) SPRITES_COLS#8 ) - (byte*) SPRITES_YPOS#18 ← phi( @34/(byte*) SPRITES_YPOS#19 ) - (byte*) SPRITES_XPOS#18 ← phi( @34/(byte*) SPRITES_XPOS#19 ) - (byte*) SPRITES_EXPAND_Y#6 ← phi( @34/(byte*) SPRITES_EXPAND_Y#7 ) - (byte*) SPRITES_EXPAND_X#6 ← phi( @34/(byte*) SPRITES_EXPAND_X#7 ) - (byte*) SPRITES_ENABLE#6 ← phi( @34/(byte*) SPRITES_ENABLE#7 ) - (byte*) BORDERCOL#21 ← phi( @34/(byte*) BORDERCOL#26 ) - (byte*) RASTER#6 ← phi( @34/(byte*) RASTER#8 ) - (byte*) SCREEN#6 ← phi( @34/(byte*) SCREEN#7 ) (byte) sin_idx_y#17 ← phi( @34/(byte) sin_idx_y#2 ) (byte) sin_idx_x#16 ← phi( @34/(byte) sin_idx_x#2 ) call main param-assignment @@ -6576,61 +5927,30 @@ sinFAC::@return: scope:[sinFAC] from sinFAC (byte[]) sprites#0 ← ((byte*)) (word/signed word) 8192 to:@34 main: scope:[main] from @39 - (byte*) PROCPORT#18 ← phi( @39/(byte*) PROCPORT#20 ) - (byte*) CHARGEN#9 ← phi( @39/(byte*) CHARGEN#10 ) - (byte*) SPRITES_COLS#6 ← phi( @39/(byte*) SPRITES_COLS#7 ) - (byte*) SPRITES_YPOS#16 ← phi( @39/(byte*) SPRITES_YPOS#18 ) - (byte*) SPRITES_XPOS#16 ← phi( @39/(byte*) SPRITES_XPOS#18 ) - (byte*) SPRITES_EXPAND_Y#5 ← phi( @39/(byte*) SPRITES_EXPAND_Y#6 ) - (byte*) SPRITES_EXPAND_X#5 ← phi( @39/(byte*) SPRITES_EXPAND_X#6 ) - (byte*) SPRITES_ENABLE#5 ← phi( @39/(byte*) SPRITES_ENABLE#6 ) - (byte*) BORDERCOL#16 ← phi( @39/(byte*) BORDERCOL#21 ) (byte) sin_idx_y#24 ← phi( @39/(byte) sin_idx_y#17 ) (byte) sin_idx_x#26 ← phi( @39/(byte) sin_idx_x#16 ) - (byte*) RASTER#4 ← phi( @39/(byte*) RASTER#6 ) - (byte*) SCREEN#4 ← phi( @39/(byte*) SCREEN#6 ) call init param-assignment to:main::@5 main::@5: scope:[main] from main - (byte*) SPRITES_YPOS#14 ← phi( main/(byte*) SPRITES_YPOS#16 ) - (byte*) SPRITES_XPOS#14 ← phi( main/(byte*) SPRITES_XPOS#16 ) - (byte*) BORDERCOL#13 ← phi( main/(byte*) BORDERCOL#16 ) (byte) sin_idx_y#21 ← phi( main/(byte) sin_idx_y#24 ) (byte) sin_idx_x#23 ← phi( main/(byte) sin_idx_x#26 ) - (byte*) RASTER#3 ← phi( main/(byte*) RASTER#4 ) to:main::@2 main::@1: scope:[main] from main::@6 - (byte*) SPRITES_YPOS#13 ← phi( main::@6/(byte*) SPRITES_YPOS#17 ) - (byte*) SPRITES_XPOS#13 ← phi( main::@6/(byte*) SPRITES_XPOS#17 ) - (byte*) BORDERCOL#12 ← phi( main::@6/(byte*) BORDERCOL#17 ) (byte) sin_idx_y#20 ← phi( main::@6/(byte) sin_idx_y#0 ) (byte) sin_idx_x#22 ← phi( main::@6/(byte) sin_idx_x#0 ) - (byte*) RASTER#2 ← phi( main::@6/(byte*) RASTER#5 ) to:main::@2 main::@2: scope:[main] from main::@1 main::@2 main::@5 - (byte*) SPRITES_YPOS#10 ← phi( main::@1/(byte*) SPRITES_YPOS#13 main::@2/(byte*) SPRITES_YPOS#10 main::@5/(byte*) SPRITES_YPOS#14 ) - (byte*) SPRITES_XPOS#10 ← phi( main::@1/(byte*) SPRITES_XPOS#13 main::@2/(byte*) SPRITES_XPOS#10 main::@5/(byte*) SPRITES_XPOS#14 ) - (byte*) BORDERCOL#8 ← phi( main::@1/(byte*) BORDERCOL#12 main::@2/(byte*) BORDERCOL#8 main::@5/(byte*) BORDERCOL#13 ) (byte) sin_idx_y#18 ← phi( main::@1/(byte) sin_idx_y#20 main::@2/(byte) sin_idx_y#18 main::@5/(byte) sin_idx_y#21 ) (byte) sin_idx_x#17 ← phi( main::@1/(byte) sin_idx_x#22 main::@2/(byte) sin_idx_x#17 main::@5/(byte) sin_idx_x#23 ) - (byte*) RASTER#1 ← phi( main::@1/(byte*) RASTER#2 main::@2/(byte*) RASTER#1 main::@5/(byte*) RASTER#3 ) - (boolean~) main::$1 ← *((byte*) RASTER#1) != (byte/word/signed word) 255 + (boolean~) main::$1 ← *((byte*) RASTER#0) != (byte/word/signed word) 255 if((boolean~) main::$1) goto main::@2 to:main::@3 main::@3: scope:[main] from main::@2 - (byte*) RASTER#7 ← phi( main::@2/(byte*) RASTER#1 ) - (byte*) SPRITES_YPOS#6 ← phi( main::@2/(byte*) SPRITES_YPOS#10 ) - (byte*) SPRITES_XPOS#6 ← phi( main::@2/(byte*) SPRITES_XPOS#10 ) - (byte*) BORDERCOL#4 ← phi( main::@2/(byte*) BORDERCOL#8 ) (byte) sin_idx_y#13 ← phi( main::@2/(byte) sin_idx_y#18 ) (byte) sin_idx_x#13 ← phi( main::@2/(byte) sin_idx_x#17 ) call anim param-assignment to:main::@6 main::@6: scope:[main] from main::@3 - (byte*) SPRITES_YPOS#17 ← phi( main::@3/(byte*) SPRITES_YPOS#6 ) - (byte*) SPRITES_XPOS#17 ← phi( main::@3/(byte*) SPRITES_XPOS#6 ) - (byte*) BORDERCOL#17 ← phi( main::@3/(byte*) BORDERCOL#4 ) - (byte*) RASTER#5 ← phi( main::@3/(byte*) RASTER#7 ) (byte) sin_idx_y#7 ← phi( main::@3/(byte) sin_idx_y#5 ) (byte) sin_idx_x#7 ← phi( main::@3/(byte) sin_idx_x#5 ) (byte) sin_idx_x#0 ← (byte) sin_idx_x#7 @@ -6645,57 +5965,23 @@ main::@return: scope:[main] from main::@6 return to:@return init: scope:[init] from main - (byte*) BORDERCOL#47 ← phi( main/(byte*) BORDERCOL#16 ) - (byte*) PROCPORT#15 ← phi( main/(byte*) PROCPORT#18 ) - (byte*) CHARGEN#8 ← phi( main/(byte*) CHARGEN#9 ) - (byte*) SPRITES_COLS#5 ← phi( main/(byte*) SPRITES_COLS#6 ) - (byte*) SPRITES_YPOS#15 ← phi( main/(byte*) SPRITES_YPOS#16 ) - (byte*) SPRITES_XPOS#15 ← phi( main/(byte*) SPRITES_XPOS#16 ) - (byte*) SPRITES_EXPAND_Y#4 ← phi( main/(byte*) SPRITES_EXPAND_Y#5 ) - (byte*) SPRITES_EXPAND_X#4 ← phi( main/(byte*) SPRITES_EXPAND_X#5 ) - (byte*) SPRITES_ENABLE#4 ← phi( main/(byte*) SPRITES_ENABLE#5 ) - (byte*) SCREEN#1 ← phi( main/(byte*) SCREEN#4 ) - (byte*) init::sc#0 ← (byte*) SCREEN#1 + (byte*) init::sc#0 ← (byte*) SCREEN#0 to:init::@1 init::@1: scope:[init] from init init::@1 - (byte*) BORDERCOL#46 ← phi( init/(byte*) BORDERCOL#47 init::@1/(byte*) BORDERCOL#46 ) - (byte*) PROCPORT#13 ← phi( init/(byte*) PROCPORT#15 init::@1/(byte*) PROCPORT#13 ) - (byte*) CHARGEN#7 ← phi( init/(byte*) CHARGEN#8 init::@1/(byte*) CHARGEN#7 ) - (byte*) SPRITES_COLS#4 ← phi( init/(byte*) SPRITES_COLS#5 init::@1/(byte*) SPRITES_COLS#4 ) - (byte*) SPRITES_YPOS#11 ← phi( init/(byte*) SPRITES_YPOS#15 init::@1/(byte*) SPRITES_YPOS#11 ) - (byte*) SPRITES_XPOS#11 ← phi( init/(byte*) SPRITES_XPOS#15 init::@1/(byte*) SPRITES_XPOS#11 ) - (byte*) SPRITES_EXPAND_Y#3 ← phi( init/(byte*) SPRITES_EXPAND_Y#4 init::@1/(byte*) SPRITES_EXPAND_Y#3 ) - (byte*) SPRITES_EXPAND_X#3 ← phi( init/(byte*) SPRITES_EXPAND_X#4 init::@1/(byte*) SPRITES_EXPAND_X#3 ) - (byte*) SPRITES_ENABLE#3 ← phi( init/(byte*) SPRITES_ENABLE#4 init::@1/(byte*) SPRITES_ENABLE#3 ) - (byte*) SCREEN#2 ← phi( init/(byte*) SCREEN#1 init::@1/(byte*) SCREEN#2 ) (byte*) init::sc#2 ← phi( init/(byte*) init::sc#0 init::@1/(byte*) init::sc#1 ) *((byte*) init::sc#2) ← (byte) ' ' (byte*) init::sc#1 ← ++ (byte*) init::sc#2 - (byte*~) init::$0 ← (byte*) SCREEN#2 + (word/signed word) 1000 + (byte*~) init::$0 ← (byte*) SCREEN#0 + (word/signed word) 1000 (boolean~) init::$1 ← (byte*) init::sc#1 < (byte*~) init::$0 if((boolean~) init::$1) goto init::@1 to:init::@2 init::@2: scope:[init] from init::@1 - (byte*) BORDERCOL#45 ← phi( init::@1/(byte*) BORDERCOL#46 ) - (byte*) PROCPORT#10 ← phi( init::@1/(byte*) PROCPORT#13 ) - (byte*) CHARGEN#6 ← phi( init::@1/(byte*) CHARGEN#7 ) - (byte*) SPRITES_COLS#3 ← phi( init::@1/(byte*) SPRITES_COLS#4 ) - (byte*) SPRITES_YPOS#9 ← phi( init::@1/(byte*) SPRITES_YPOS#11 ) - (byte*) SPRITES_XPOS#9 ← phi( init::@1/(byte*) SPRITES_XPOS#11 ) - (byte*) SCREEN#5 ← phi( init::@1/(byte*) SCREEN#2 ) - (byte*) SPRITES_EXPAND_Y#2 ← phi( init::@1/(byte*) SPRITES_EXPAND_Y#3 ) - (byte*) SPRITES_EXPAND_X#2 ← phi( init::@1/(byte*) SPRITES_EXPAND_X#3 ) - (byte*) SPRITES_ENABLE#2 ← phi( init::@1/(byte*) SPRITES_ENABLE#3 ) call place_sprites param-assignment to:init::@3 init::@3: scope:[init] from init::@2 - (byte*) BORDERCOL#44 ← phi( init::@2/(byte*) BORDERCOL#45 ) - (byte*) PROCPORT#8 ← phi( init::@2/(byte*) PROCPORT#10 ) - (byte*) CHARGEN#5 ← phi( init::@2/(byte*) CHARGEN#6 ) call gen_sprites param-assignment to:init::@4 init::@4: scope:[init] from init::@3 - (byte*) BORDERCOL#42 ← phi( init::@3/(byte*) BORDERCOL#44 ) (byte*) gen_sintab::sintab#0 ← (byte[]) sintab_x#0 (byte) gen_sintab::length#0 ← (byte) sinlen_x#0 (byte) gen_sintab::min#0 ← (byte/signed byte/word/signed word) 16 @@ -6703,7 +5989,6 @@ init::@4: scope:[init] from init::@3 call gen_sintab param-assignment to:init::@5 init::@5: scope:[init] from init::@4 - (byte*) BORDERCOL#43 ← phi( init::@4/(byte*) BORDERCOL#42 ) (byte*) gen_sintab::sintab#1 ← (byte[]) sintab_y#0 (byte) gen_sintab::length#1 ← (byte) sinlen_y#0 (byte) gen_sintab::min#1 ← (byte/signed byte/word/signed word) 48 @@ -6714,57 +5999,37 @@ init::@return: scope:[init] from init::@5 return to:@return @34: scope:[] from @32 - (byte*) PROCPORT#21 ← phi( @32/(byte*) PROCPORT#0 ) - (byte*) CHARGEN#11 ← phi( @32/(byte*) CHARGEN#0 ) - (byte*) SPRITES_COLS#8 ← phi( @32/(byte*) SPRITES_COLS#0 ) - (byte*) SPRITES_YPOS#19 ← phi( @32/(byte*) SPRITES_YPOS#0 ) - (byte*) SPRITES_XPOS#19 ← phi( @32/(byte*) SPRITES_XPOS#0 ) - (byte*) SPRITES_EXPAND_Y#7 ← phi( @32/(byte*) SPRITES_EXPAND_Y#0 ) - (byte*) SPRITES_EXPAND_X#7 ← phi( @32/(byte*) SPRITES_EXPAND_X#0 ) - (byte*) SPRITES_ENABLE#7 ← phi( @32/(byte*) SPRITES_ENABLE#0 ) - (byte*) BORDERCOL#26 ← phi( @32/(byte*) BORDERCOL#0 ) - (byte*) RASTER#8 ← phi( @32/(byte*) RASTER#0 ) - (byte*) SCREEN#7 ← phi( @32/(byte*) SCREEN#0 ) (byte) sin_idx_x#2 ← (byte/signed byte/word/signed word) 0 (byte) sin_idx_y#2 ← (byte/signed byte/word/signed word) 0 to:@39 anim: scope:[anim] from main::@3 - (byte*) SPRITES_YPOS#3 ← phi( main::@3/(byte*) SPRITES_YPOS#6 ) - (byte*) SPRITES_XPOS#3 ← phi( main::@3/(byte*) SPRITES_XPOS#6 ) (byte) sin_idx_y#9 ← phi( main::@3/(byte) sin_idx_y#13 ) (byte) sin_idx_x#9 ← phi( main::@3/(byte) sin_idx_x#13 ) - (byte*) BORDERCOL#1 ← phi( main::@3/(byte*) BORDERCOL#4 ) - *((byte*) BORDERCOL#1) ← ++ *((byte*) BORDERCOL#1) + *((byte*) BORDERCOL#0) ← ++ *((byte*) BORDERCOL#0) (byte) anim::xidx#0 ← (byte) sin_idx_x#9 (byte) anim::yidx#0 ← (byte) sin_idx_y#9 (byte) anim::j2#0 ← (byte/signed byte/word/signed word) 12 (byte) anim::j#0 ← (byte/signed byte/word/signed word) 0 to:anim::@1 anim::@1: scope:[anim] from anim anim::@3 - (byte*) BORDERCOL#22 ← phi( anim/(byte*) BORDERCOL#1 anim::@3/(byte*) BORDERCOL#14 ) (byte) sin_idx_y#25 ← phi( anim/(byte) sin_idx_y#9 anim::@3/(byte) sin_idx_y#19 ) (byte) sin_idx_x#24 ← phi( anim/(byte) sin_idx_x#9 anim::@3/(byte) sin_idx_x#14 ) (byte) anim::j#5 ← phi( anim/(byte) anim::j#0 anim::@3/(byte) anim::j#1 ) - (byte*) SPRITES_YPOS#1 ← phi( anim/(byte*) SPRITES_YPOS#3 anim::@3/(byte*) SPRITES_YPOS#4 ) (byte) anim::yidx#3 ← phi( anim/(byte) anim::yidx#0 anim::@3/(byte) anim::yidx#6 ) (byte) anim::j2#3 ← phi( anim/(byte) anim::j2#0 anim::@3/(byte) anim::j2#2 ) - (byte*) SPRITES_XPOS#1 ← phi( anim/(byte*) SPRITES_XPOS#3 anim::@3/(byte*) SPRITES_XPOS#4 ) (byte) anim::xidx#3 ← phi( anim/(byte) anim::xidx#0 anim::@3/(byte) anim::xidx#5 ) (byte~) anim::$0 ← (byte[]) sintab_x#0 *idx (byte) anim::xidx#3 - *((byte*) SPRITES_XPOS#1 + (byte) anim::j2#3) ← (byte~) anim::$0 + *((byte*) SPRITES_XPOS#0 + (byte) anim::j2#3) ← (byte~) anim::$0 (byte~) anim::$1 ← (byte[]) sintab_y#0 *idx (byte) anim::yidx#3 - *((byte*) SPRITES_YPOS#1 + (byte) anim::j2#3) ← (byte~) anim::$1 + *((byte*) SPRITES_YPOS#0 + (byte) anim::j2#3) ← (byte~) anim::$1 (byte~) anim::$2 ← (byte) anim::xidx#3 + (byte/signed byte/word/signed word) 10 (byte) anim::xidx#1 ← (byte~) anim::$2 (boolean~) anim::$4 ← (byte) anim::xidx#1 < (byte) sinlen_x#0 if((boolean~) anim::$4) goto anim::@2 to:anim::@6 anim::@2: scope:[anim] from anim::@1 anim::@6 - (byte*) BORDERCOL#18 ← phi( anim::@1/(byte*) BORDERCOL#22 anim::@6/(byte*) BORDERCOL#23 ) (byte) sin_idx_y#22 ← phi( anim::@1/(byte) sin_idx_y#25 anim::@6/(byte) sin_idx_y#26 ) (byte) sin_idx_x#18 ← phi( anim::@1/(byte) sin_idx_x#24 anim::@6/(byte) sin_idx_x#25 ) - (byte*) SPRITES_YPOS#7 ← phi( anim::@1/(byte*) SPRITES_YPOS#1 anim::@6/(byte*) SPRITES_YPOS#12 ) - (byte*) SPRITES_XPOS#7 ← phi( anim::@1/(byte*) SPRITES_XPOS#1 anim::@6/(byte*) SPRITES_XPOS#12 ) (byte) anim::xidx#6 ← phi( anim::@1/(byte) anim::xidx#1 anim::@6/(byte) anim::xidx#2 ) (byte) anim::j#3 ← phi( anim::@1/(byte) anim::j#5 anim::@6/(byte) anim::j#6 ) (byte) anim::j2#5 ← phi( anim::@1/(byte) anim::j2#3 anim::@6/(byte) anim::j2#7 ) @@ -6775,11 +6040,8 @@ anim::@2: scope:[anim] from anim::@1 anim::@6 if((boolean~) anim::$8) goto anim::@3 to:anim::@7 anim::@6: scope:[anim] from anim::@1 - (byte*) BORDERCOL#23 ← phi( anim::@1/(byte*) BORDERCOL#22 ) (byte) sin_idx_y#26 ← phi( anim::@1/(byte) sin_idx_y#25 ) (byte) sin_idx_x#25 ← phi( anim::@1/(byte) sin_idx_x#24 ) - (byte*) SPRITES_YPOS#12 ← phi( anim::@1/(byte*) SPRITES_YPOS#1 ) - (byte*) SPRITES_XPOS#12 ← phi( anim::@1/(byte*) SPRITES_XPOS#1 ) (byte) anim::j#6 ← phi( anim::@1/(byte) anim::j#5 ) (byte) anim::j2#7 ← phi( anim::@1/(byte) anim::j2#3 ) (byte) anim::yidx#7 ← phi( anim::@1/(byte) anim::yidx#3 ) @@ -6788,12 +6050,9 @@ anim::@6: scope:[anim] from anim::@1 (byte) anim::xidx#2 ← (byte~) anim::$5 to:anim::@2 anim::@3: scope:[anim] from anim::@2 anim::@7 - (byte*) BORDERCOL#14 ← phi( anim::@2/(byte*) BORDERCOL#18 anim::@7/(byte*) BORDERCOL#19 ) (byte) sin_idx_y#19 ← phi( anim::@2/(byte) sin_idx_y#22 anim::@7/(byte) sin_idx_y#23 ) (byte) sin_idx_x#14 ← phi( anim::@2/(byte) sin_idx_x#18 anim::@7/(byte) sin_idx_x#19 ) - (byte*) SPRITES_YPOS#4 ← phi( anim::@2/(byte*) SPRITES_YPOS#7 anim::@7/(byte*) SPRITES_YPOS#8 ) (byte) anim::yidx#6 ← phi( anim::@2/(byte) anim::yidx#1 anim::@7/(byte) anim::yidx#2 ) - (byte*) SPRITES_XPOS#4 ← phi( anim::@2/(byte*) SPRITES_XPOS#7 anim::@7/(byte*) SPRITES_XPOS#8 ) (byte) anim::xidx#5 ← phi( anim::@2/(byte) anim::xidx#6 anim::@7/(byte) anim::xidx#7 ) (byte) anim::j#2 ← phi( anim::@2/(byte) anim::j#3 anim::@7/(byte) anim::j#4 ) (byte) anim::j2#4 ← phi( anim::@2/(byte) anim::j2#5 anim::@7/(byte) anim::j2#6 ) @@ -6804,11 +6063,8 @@ anim::@3: scope:[anim] from anim::@2 anim::@7 if((boolean~) anim::$10) goto anim::@1 to:anim::@8 anim::@7: scope:[anim] from anim::@2 - (byte*) BORDERCOL#19 ← phi( anim::@2/(byte*) BORDERCOL#18 ) (byte) sin_idx_y#23 ← phi( anim::@2/(byte) sin_idx_y#22 ) (byte) sin_idx_x#19 ← phi( anim::@2/(byte) sin_idx_x#18 ) - (byte*) SPRITES_YPOS#8 ← phi( anim::@2/(byte*) SPRITES_YPOS#7 ) - (byte*) SPRITES_XPOS#8 ← phi( anim::@2/(byte*) SPRITES_XPOS#7 ) (byte) anim::xidx#7 ← phi( anim::@2/(byte) anim::xidx#6 ) (byte) anim::j#4 ← phi( anim::@2/(byte) anim::j#3 ) (byte) anim::j2#6 ← phi( anim::@2/(byte) anim::j2#5 ) @@ -6817,7 +6073,6 @@ anim::@7: scope:[anim] from anim::@2 (byte) anim::yidx#2 ← (byte~) anim::$9 to:anim::@3 anim::@8: scope:[anim] from anim::@3 - (byte*) BORDERCOL#9 ← phi( anim::@3/(byte*) BORDERCOL#14 ) (byte) sin_idx_y#14 ← phi( anim::@3/(byte) sin_idx_y#19 ) (byte) sin_idx_x#10 ← phi( anim::@3/(byte) sin_idx_x#14 ) (byte) sin_idx_x#3 ← ++ (byte) sin_idx_x#10 @@ -6826,26 +6081,22 @@ anim::@8: scope:[anim] from anim::@3 to:anim::@9 anim::@4: scope:[anim] from anim::@8 anim::@9 (byte) sin_idx_x#21 ← phi( anim::@8/(byte) sin_idx_x#3 anim::@9/(byte) sin_idx_x#4 ) - (byte*) BORDERCOL#6 ← phi( anim::@8/(byte*) BORDERCOL#9 anim::@9/(byte*) BORDERCOL#10 ) (byte) sin_idx_y#10 ← phi( anim::@8/(byte) sin_idx_y#14 anim::@9/(byte) sin_idx_y#15 ) (byte) sin_idx_y#3 ← ++ (byte) sin_idx_y#10 (boolean~) anim::$14 ← (byte) sin_idx_y#3 < (byte) sinlen_y#0 if((boolean~) anim::$14) goto anim::@5 to:anim::@10 anim::@9: scope:[anim] from anim::@8 - (byte*) BORDERCOL#10 ← phi( anim::@8/(byte*) BORDERCOL#9 ) (byte) sin_idx_y#15 ← phi( anim::@8/(byte) sin_idx_y#14 ) (byte) sin_idx_x#4 ← (byte/signed byte/word/signed word) 0 to:anim::@4 anim::@5: scope:[anim] from anim::@10 anim::@4 (byte) sin_idx_y#16 ← phi( anim::@10/(byte) sin_idx_y#4 anim::@4/(byte) sin_idx_y#3 ) (byte) sin_idx_x#15 ← phi( anim::@10/(byte) sin_idx_x#20 anim::@4/(byte) sin_idx_x#21 ) - (byte*) BORDERCOL#2 ← phi( anim::@10/(byte*) BORDERCOL#5 anim::@4/(byte*) BORDERCOL#6 ) - *((byte*) BORDERCOL#2) ← -- *((byte*) BORDERCOL#2) + *((byte*) BORDERCOL#0) ← -- *((byte*) BORDERCOL#0) to:anim::@return anim::@10: scope:[anim] from anim::@4 (byte) sin_idx_x#20 ← phi( anim::@4/(byte) sin_idx_x#21 ) - (byte*) BORDERCOL#5 ← phi( anim::@4/(byte*) BORDERCOL#6 ) (byte) sin_idx_y#4 ← (byte/signed byte/word/signed word) 0 to:anim::@5 anim::@return: scope:[anim] from anim::@5 @@ -6856,17 +6107,10 @@ anim::@return: scope:[anim] from anim::@5 return to:@return place_sprites: scope:[place_sprites] from init::@2 - (byte*) SPRITES_COLS#2 ← phi( init::@2/(byte*) SPRITES_COLS#3 ) - (byte*) SPRITES_YPOS#5 ← phi( init::@2/(byte*) SPRITES_YPOS#9 ) - (byte*) SPRITES_XPOS#5 ← phi( init::@2/(byte*) SPRITES_XPOS#9 ) - (byte*) SCREEN#3 ← phi( init::@2/(byte*) SCREEN#5 ) - (byte*) SPRITES_EXPAND_Y#1 ← phi( init::@2/(byte*) SPRITES_EXPAND_Y#2 ) - (byte*) SPRITES_EXPAND_X#1 ← phi( init::@2/(byte*) SPRITES_EXPAND_X#2 ) - (byte*) SPRITES_ENABLE#1 ← phi( init::@2/(byte*) SPRITES_ENABLE#2 ) - *((byte*) SPRITES_ENABLE#1) ← (byte/signed byte/word/signed word) 127 - *((byte*) SPRITES_EXPAND_X#1) ← (byte/signed byte/word/signed word) 127 - *((byte*) SPRITES_EXPAND_Y#1) ← (byte/signed byte/word/signed word) 127 - (byte*~) place_sprites::$0 ← (byte*) SCREEN#3 + (word/signed word) 1016 + *((byte*) SPRITES_ENABLE#0) ← (byte/signed byte/word/signed word) 127 + *((byte*) SPRITES_EXPAND_X#0) ← (byte/signed byte/word/signed word) 127 + *((byte*) SPRITES_EXPAND_Y#0) ← (byte/signed byte/word/signed word) 127 + (byte*~) place_sprites::$0 ← (byte*) SCREEN#0 + (word/signed word) 1016 (byte*) place_sprites::sprites_ptr#0 ← (byte*~) place_sprites::$0 (byte[]~) place_sprites::$1 ← (byte[]) sprites#0 / (byte/signed byte/word/signed word) 64 (byte~) place_sprites::$2 ← ((byte)) (byte[]~) place_sprites::$1 @@ -6877,20 +6121,17 @@ place_sprites: scope:[place_sprites] from init::@2 (byte) place_sprites::j#0 ← (byte/signed byte/word/signed word) 0 to:place_sprites::@1 place_sprites::@1: scope:[place_sprites] from place_sprites place_sprites::@1 - (byte*) SPRITES_COLS#1 ← phi( place_sprites/(byte*) SPRITES_COLS#2 place_sprites::@1/(byte*) SPRITES_COLS#1 ) (byte) place_sprites::col#2 ← phi( place_sprites/(byte) place_sprites::col#0 place_sprites::@1/(byte) place_sprites::col#1 ) - (byte*) SPRITES_YPOS#2 ← phi( place_sprites/(byte*) SPRITES_YPOS#5 place_sprites::@1/(byte*) SPRITES_YPOS#2 ) (byte) place_sprites::j2#3 ← phi( place_sprites/(byte) place_sprites::j2#0 place_sprites::@1/(byte) place_sprites::j2#2 ) - (byte*) SPRITES_XPOS#2 ← phi( place_sprites/(byte*) SPRITES_XPOS#5 place_sprites::@1/(byte*) SPRITES_XPOS#2 ) (byte) place_sprites::spr_x#2 ← phi( place_sprites/(byte) place_sprites::spr_x#0 place_sprites::@1/(byte) place_sprites::spr_x#1 ) (byte) place_sprites::j#2 ← phi( place_sprites/(byte) place_sprites::j#0 place_sprites::@1/(byte) place_sprites::j#1 ) (byte*) place_sprites::sprites_ptr#1 ← phi( place_sprites/(byte*) place_sprites::sprites_ptr#0 place_sprites::@1/(byte*) place_sprites::sprites_ptr#1 ) (byte) place_sprites::spr_id#2 ← phi( place_sprites/(byte) place_sprites::spr_id#0 place_sprites::@1/(byte) place_sprites::spr_id#1 ) *((byte*) place_sprites::sprites_ptr#1 + (byte) place_sprites::j#2) ← (byte) place_sprites::spr_id#2 (byte) place_sprites::spr_id#1 ← ++ (byte) place_sprites::spr_id#2 - *((byte*) SPRITES_XPOS#2 + (byte) place_sprites::j2#3) ← (byte) place_sprites::spr_x#2 - *((byte*) SPRITES_YPOS#2 + (byte) place_sprites::j2#3) ← (byte/signed byte/word/signed word) 80 - *((byte*) SPRITES_COLS#1 + (byte) place_sprites::j#2) ← (byte) place_sprites::col#2 + *((byte*) SPRITES_XPOS#0 + (byte) place_sprites::j2#3) ← (byte) place_sprites::spr_x#2 + *((byte*) SPRITES_YPOS#0 + (byte) place_sprites::j2#3) ← (byte/signed byte/word/signed word) 80 + *((byte*) SPRITES_COLS#0 + (byte) place_sprites::j#2) ← (byte) place_sprites::col#2 (byte~) place_sprites::$3 ← (byte) place_sprites::spr_x#2 + (byte/signed byte/word/signed word) 32 (byte) place_sprites::spr_x#1 ← (byte~) place_sprites::$3 (byte~) place_sprites::$4 ← (byte/signed byte/word/signed word) 7 ^ (byte/signed byte/word/signed word) 5 @@ -6906,15 +6147,11 @@ place_sprites::@return: scope:[place_sprites] from place_sprites::@1 return to:@return gen_sprites: scope:[gen_sprites] from init::@3 - (byte*) PROCPORT#5 ← phi( init::@3/(byte*) PROCPORT#8 ) - (byte*) CHARGEN#3 ← phi( init::@3/(byte*) CHARGEN#5 ) (byte[]) gen_sprites::cml#0 ← (string) "camelot" (byte*) gen_sprites::spr#0 ← (byte[]) sprites#0 (byte) gen_sprites::i#0 ← (byte/signed byte/word/signed word) 0 to:gen_sprites::@1 gen_sprites::@1: scope:[gen_sprites] from gen_sprites gen_sprites::@3 - (byte*) PROCPORT#3 ← phi( gen_sprites/(byte*) PROCPORT#5 gen_sprites::@3/(byte*) PROCPORT#6 ) - (byte*) CHARGEN#2 ← phi( gen_sprites/(byte*) CHARGEN#3 gen_sprites::@3/(byte*) CHARGEN#4 ) (byte*) gen_sprites::spr#2 ← phi( gen_sprites/(byte*) gen_sprites::spr#0 gen_sprites::@3/(byte*) gen_sprites::spr#1 ) (byte) gen_sprites::i#2 ← phi( gen_sprites/(byte) gen_sprites::i#0 gen_sprites::@3/(byte) gen_sprites::i#1 ) (byte[]) gen_sprites::cml#1 ← phi( gen_sprites/(byte[]) gen_sprites::cml#0 gen_sprites::@3/(byte[]) gen_sprites::cml#2 ) @@ -6924,8 +6161,6 @@ gen_sprites::@1: scope:[gen_sprites] from gen_sprites gen_sprites::@3 call gen_chargen_sprite param-assignment to:gen_sprites::@3 gen_sprites::@3: scope:[gen_sprites] from gen_sprites::@1 - (byte*) PROCPORT#6 ← phi( gen_sprites::@1/(byte*) PROCPORT#3 ) - (byte*) CHARGEN#4 ← phi( gen_sprites::@1/(byte*) CHARGEN#2 ) (byte[]) gen_sprites::cml#2 ← phi( gen_sprites::@1/(byte[]) gen_sprites::cml#1 ) (byte) gen_sprites::i#3 ← phi( gen_sprites::@1/(byte) gen_sprites::i#2 ) (byte*) gen_sprites::spr#3 ← phi( gen_sprites::@1/(byte*) gen_sprites::spr#2 ) @@ -6940,19 +6175,16 @@ gen_sprites::@return: scope:[gen_sprites] from gen_sprites::@3 to:@return gen_chargen_sprite: scope:[gen_chargen_sprite] from gen_sprites::@1 (byte*) gen_chargen_sprite::sprite#12 ← phi( gen_sprites::@1/(byte*) gen_chargen_sprite::sprite#0 ) - (byte*) PROCPORT#1 ← phi( gen_sprites::@1/(byte*) PROCPORT#3 ) - (byte*) CHARGEN#1 ← phi( gen_sprites::@1/(byte*) CHARGEN#2 ) (byte) gen_chargen_sprite::ch#1 ← phi( gen_sprites::@1/(byte) gen_chargen_sprite::ch#0 ) (word~) gen_chargen_sprite::$0 ← ((word)) (byte) gen_chargen_sprite::ch#1 (word~) gen_chargen_sprite::$1 ← (word~) gen_chargen_sprite::$0 << (byte/signed byte/word/signed word) 3 - (byte*~) gen_chargen_sprite::$2 ← (byte*) CHARGEN#1 + (word~) gen_chargen_sprite::$1 + (byte*~) gen_chargen_sprite::$2 ← (byte*) CHARGEN#0 + (word~) gen_chargen_sprite::$1 (byte*) gen_chargen_sprite::chargen#0 ← (byte*~) gen_chargen_sprite::$2 asm { sei } - *((byte*) PROCPORT#1) ← (byte/signed byte/word/signed word) 50 + *((byte*) PROCPORT#0) ← (byte/signed byte/word/signed word) 50 (byte) gen_chargen_sprite::y#0 ← (byte/signed byte/word/signed word) 0 to:gen_chargen_sprite::@1 gen_chargen_sprite::@1: scope:[gen_chargen_sprite] from gen_chargen_sprite gen_chargen_sprite::@9 - (byte*) PROCPORT#19 ← phi( gen_chargen_sprite/(byte*) PROCPORT#1 gen_chargen_sprite::@9/(byte*) PROCPORT#4 ) (byte*) gen_chargen_sprite::sprite#11 ← phi( gen_chargen_sprite/(byte*) gen_chargen_sprite::sprite#12 gen_chargen_sprite::@9/(byte*) gen_chargen_sprite::sprite#2 ) (byte) gen_chargen_sprite::y#2 ← phi( gen_chargen_sprite/(byte) gen_chargen_sprite::y#0 gen_chargen_sprite::@9/(byte) gen_chargen_sprite::y#1 ) (byte*) gen_chargen_sprite::chargen#1 ← phi( gen_chargen_sprite/(byte*) gen_chargen_sprite::chargen#0 gen_chargen_sprite::@9/(byte*) gen_chargen_sprite::chargen#2 ) @@ -6963,7 +6195,6 @@ gen_chargen_sprite::@1: scope:[gen_chargen_sprite] from gen_chargen_sprite gen_ (byte) gen_chargen_sprite::x#0 ← (byte/signed byte/word/signed word) 0 to:gen_chargen_sprite::@2 gen_chargen_sprite::@2: scope:[gen_chargen_sprite] from gen_chargen_sprite::@1 gen_chargen_sprite::@8 - (byte*) PROCPORT#16 ← phi( gen_chargen_sprite::@1/(byte*) PROCPORT#19 gen_chargen_sprite::@8/(byte*) PROCPORT#7 ) (byte*) gen_chargen_sprite::chargen#8 ← phi( gen_chargen_sprite::@1/(byte*) gen_chargen_sprite::chargen#1 gen_chargen_sprite::@8/(byte*) gen_chargen_sprite::chargen#3 ) (byte) gen_chargen_sprite::y#9 ← phi( gen_chargen_sprite::@1/(byte) gen_chargen_sprite::y#2 gen_chargen_sprite::@8/(byte) gen_chargen_sprite::y#4 ) (byte) gen_chargen_sprite::x#7 ← phi( gen_chargen_sprite::@1/(byte) gen_chargen_sprite::x#0 gen_chargen_sprite::@8/(byte) gen_chargen_sprite::x#1 ) @@ -6977,7 +6208,6 @@ gen_chargen_sprite::@2: scope:[gen_chargen_sprite] from gen_chargen_sprite::@1 if((boolean~) gen_chargen_sprite::$6) goto gen_chargen_sprite::@3 to:gen_chargen_sprite::@6 gen_chargen_sprite::@3: scope:[gen_chargen_sprite] from gen_chargen_sprite::@2 gen_chargen_sprite::@6 - (byte*) PROCPORT#14 ← phi( gen_chargen_sprite::@2/(byte*) PROCPORT#16 gen_chargen_sprite::@6/(byte*) PROCPORT#17 ) (byte*) gen_chargen_sprite::chargen#7 ← phi( gen_chargen_sprite::@2/(byte*) gen_chargen_sprite::chargen#8 gen_chargen_sprite::@6/(byte*) gen_chargen_sprite::chargen#9 ) (byte) gen_chargen_sprite::y#8 ← phi( gen_chargen_sprite::@2/(byte) gen_chargen_sprite::y#9 gen_chargen_sprite::@6/(byte) gen_chargen_sprite::y#10 ) (byte) gen_chargen_sprite::x#6 ← phi( gen_chargen_sprite::@2/(byte) gen_chargen_sprite::x#7 gen_chargen_sprite::@6/(byte) gen_chargen_sprite::x#8 ) @@ -6989,7 +6219,6 @@ gen_chargen_sprite::@3: scope:[gen_chargen_sprite] from gen_chargen_sprite::@2 (byte) gen_chargen_sprite::b#0 ← (byte/signed byte/word/signed word) 0 to:gen_chargen_sprite::@4 gen_chargen_sprite::@6: scope:[gen_chargen_sprite] from gen_chargen_sprite::@2 - (byte*) PROCPORT#17 ← phi( gen_chargen_sprite::@2/(byte*) PROCPORT#16 ) (byte*) gen_chargen_sprite::chargen#9 ← phi( gen_chargen_sprite::@2/(byte*) gen_chargen_sprite::chargen#8 ) (byte) gen_chargen_sprite::y#10 ← phi( gen_chargen_sprite::@2/(byte) gen_chargen_sprite::y#9 ) (byte) gen_chargen_sprite::x#8 ← phi( gen_chargen_sprite::@2/(byte) gen_chargen_sprite::x#7 ) @@ -7000,7 +6229,6 @@ gen_chargen_sprite::@6: scope:[gen_chargen_sprite] from gen_chargen_sprite::@2 (byte) gen_chargen_sprite::c#1 ← (byte/signed byte/word/signed word) 1 to:gen_chargen_sprite::@3 gen_chargen_sprite::@4: scope:[gen_chargen_sprite] from gen_chargen_sprite::@3 gen_chargen_sprite::@5 - (byte*) PROCPORT#11 ← phi( gen_chargen_sprite::@3/(byte*) PROCPORT#14 gen_chargen_sprite::@5/(byte*) PROCPORT#9 ) (byte*) gen_chargen_sprite::chargen#5 ← phi( gen_chargen_sprite::@3/(byte*) gen_chargen_sprite::chargen#7 gen_chargen_sprite::@5/(byte*) gen_chargen_sprite::chargen#4 ) (byte) gen_chargen_sprite::y#6 ← phi( gen_chargen_sprite::@3/(byte) gen_chargen_sprite::y#8 gen_chargen_sprite::@5/(byte) gen_chargen_sprite::y#5 ) (byte) gen_chargen_sprite::x#4 ← phi( gen_chargen_sprite::@3/(byte) gen_chargen_sprite::x#6 gen_chargen_sprite::@5/(byte) gen_chargen_sprite::x#3 ) @@ -7018,7 +6246,6 @@ gen_chargen_sprite::@4: scope:[gen_chargen_sprite] from gen_chargen_sprite::@3 if((boolean~) gen_chargen_sprite::$10) goto gen_chargen_sprite::@5 to:gen_chargen_sprite::@7 gen_chargen_sprite::@5: scope:[gen_chargen_sprite] from gen_chargen_sprite::@4 gen_chargen_sprite::@7 - (byte*) PROCPORT#9 ← phi( gen_chargen_sprite::@4/(byte*) PROCPORT#11 gen_chargen_sprite::@7/(byte*) PROCPORT#12 ) (byte*) gen_chargen_sprite::chargen#4 ← phi( gen_chargen_sprite::@4/(byte*) gen_chargen_sprite::chargen#5 gen_chargen_sprite::@7/(byte*) gen_chargen_sprite::chargen#6 ) (byte) gen_chargen_sprite::y#5 ← phi( gen_chargen_sprite::@4/(byte) gen_chargen_sprite::y#6 gen_chargen_sprite::@7/(byte) gen_chargen_sprite::y#7 ) (byte*) gen_chargen_sprite::sprite#8 ← phi( gen_chargen_sprite::@4/(byte*) gen_chargen_sprite::sprite#5 gen_chargen_sprite::@7/(byte*) gen_chargen_sprite::sprite#1 ) @@ -7033,7 +6260,6 @@ gen_chargen_sprite::@5: scope:[gen_chargen_sprite] from gen_chargen_sprite::@4 if((boolean~) gen_chargen_sprite::$11) goto gen_chargen_sprite::@4 to:gen_chargen_sprite::@8 gen_chargen_sprite::@7: scope:[gen_chargen_sprite] from gen_chargen_sprite::@4 - (byte*) PROCPORT#12 ← phi( gen_chargen_sprite::@4/(byte*) PROCPORT#11 ) (byte*) gen_chargen_sprite::chargen#6 ← phi( gen_chargen_sprite::@4/(byte*) gen_chargen_sprite::chargen#5 ) (byte) gen_chargen_sprite::y#7 ← phi( gen_chargen_sprite::@4/(byte) gen_chargen_sprite::y#6 ) (byte) gen_chargen_sprite::x#5 ← phi( gen_chargen_sprite::@4/(byte) gen_chargen_sprite::x#4 ) @@ -7052,7 +6278,6 @@ gen_chargen_sprite::@7: scope:[gen_chargen_sprite] from gen_chargen_sprite::@4 gen_chargen_sprite::@8: scope:[gen_chargen_sprite] from gen_chargen_sprite::@5 (byte) gen_chargen_sprite::s_gen_cnt#8 ← phi( gen_chargen_sprite::@5/(byte) gen_chargen_sprite::s_gen_cnt#5 ) (byte) gen_chargen_sprite::s_gen#9 ← phi( gen_chargen_sprite::@5/(byte) gen_chargen_sprite::s_gen#6 ) - (byte*) PROCPORT#7 ← phi( gen_chargen_sprite::@5/(byte*) PROCPORT#9 ) (byte*) gen_chargen_sprite::chargen#3 ← phi( gen_chargen_sprite::@5/(byte*) gen_chargen_sprite::chargen#4 ) (byte) gen_chargen_sprite::y#4 ← phi( gen_chargen_sprite::@5/(byte) gen_chargen_sprite::y#5 ) (byte*) gen_chargen_sprite::sprite#6 ← phi( gen_chargen_sprite::@5/(byte*) gen_chargen_sprite::sprite#8 ) @@ -7065,7 +6290,6 @@ gen_chargen_sprite::@8: scope:[gen_chargen_sprite] from gen_chargen_sprite::@5 if((boolean~) gen_chargen_sprite::$13) goto gen_chargen_sprite::@2 to:gen_chargen_sprite::@9 gen_chargen_sprite::@9: scope:[gen_chargen_sprite] from gen_chargen_sprite::@8 - (byte*) PROCPORT#4 ← phi( gen_chargen_sprite::@8/(byte*) PROCPORT#7 ) (byte*) gen_chargen_sprite::chargen#2 ← phi( gen_chargen_sprite::@8/(byte*) gen_chargen_sprite::chargen#3 ) (byte) gen_chargen_sprite::y#3 ← phi( gen_chargen_sprite::@8/(byte) gen_chargen_sprite::y#4 ) (byte*) gen_chargen_sprite::sprite#4 ← phi( gen_chargen_sprite::@8/(byte*) gen_chargen_sprite::sprite#6 ) @@ -7076,15 +6300,13 @@ gen_chargen_sprite::@9: scope:[gen_chargen_sprite] from gen_chargen_sprite::@8 if((boolean~) gen_chargen_sprite::$15) goto gen_chargen_sprite::@1 to:gen_chargen_sprite::@10 gen_chargen_sprite::@10: scope:[gen_chargen_sprite] from gen_chargen_sprite::@9 - (byte*) PROCPORT#2 ← phi( gen_chargen_sprite::@9/(byte*) PROCPORT#4 ) - *((byte*) PROCPORT#2) ← (byte/signed byte/word/signed word) 55 + *((byte*) PROCPORT#0) ← (byte/signed byte/word/signed word) 55 asm { cli } to:gen_chargen_sprite::@return gen_chargen_sprite::@return: scope:[gen_chargen_sprite] from gen_chargen_sprite::@10 return to:@return gen_sintab: scope:[gen_sintab] from init::@4 init::@5 - (byte*) BORDERCOL#41 ← phi( init::@4/(byte*) BORDERCOL#42 init::@5/(byte*) BORDERCOL#43 ) (byte*) gen_sintab::sintab#23 ← phi( init::@4/(byte*) gen_sintab::sintab#0 init::@5/(byte*) gen_sintab::sintab#1 ) (byte) gen_sintab::length#23 ← phi( init::@4/(byte) gen_sintab::length#0 init::@5/(byte) gen_sintab::length#1 ) (byte) gen_sintab::min#4 ← phi( init::@4/(byte) gen_sintab::min#0 init::@5/(byte) gen_sintab::min#1 ) @@ -7098,7 +6320,6 @@ gen_sintab: scope:[gen_sintab] from init::@4 init::@5 call setFAC param-assignment to:gen_sintab::@3 gen_sintab::@3: scope:[gen_sintab] from gen_sintab - (byte*) BORDERCOL#40 ← phi( gen_sintab/(byte*) BORDERCOL#41 ) (byte*) gen_sintab::sintab#22 ← phi( gen_sintab/(byte*) gen_sintab::sintab#23 ) (byte) gen_sintab::length#22 ← phi( gen_sintab/(byte) gen_sintab::length#23 ) (byte[]) gen_sintab::f_i#21 ← phi( gen_sintab/(byte[]) gen_sintab::f_i#0 ) @@ -7109,7 +6330,6 @@ gen_sintab::@3: scope:[gen_sintab] from gen_sintab call setARGtoFAC param-assignment to:gen_sintab::@4 gen_sintab::@4: scope:[gen_sintab] from gen_sintab::@3 - (byte*) BORDERCOL#39 ← phi( gen_sintab::@3/(byte*) BORDERCOL#40 ) (byte*) gen_sintab::sintab#21 ← phi( gen_sintab::@3/(byte*) gen_sintab::sintab#22 ) (byte) gen_sintab::length#21 ← phi( gen_sintab::@3/(byte) gen_sintab::length#22 ) (byte[]) gen_sintab::f_i#20 ← phi( gen_sintab::@3/(byte[]) gen_sintab::f_i#21 ) @@ -7123,7 +6343,6 @@ gen_sintab::@4: scope:[gen_sintab] from gen_sintab::@3 call setFAC param-assignment to:gen_sintab::@5 gen_sintab::@5: scope:[gen_sintab] from gen_sintab::@4 - (byte*) BORDERCOL#38 ← phi( gen_sintab::@4/(byte*) BORDERCOL#39 ) (byte*) gen_sintab::sintab#20 ← phi( gen_sintab::@4/(byte*) gen_sintab::sintab#21 ) (byte) gen_sintab::length#20 ← phi( gen_sintab::@4/(byte) gen_sintab::length#21 ) (byte[]) gen_sintab::f_i#19 ← phi( gen_sintab::@4/(byte[]) gen_sintab::f_i#20 ) @@ -7134,7 +6353,6 @@ gen_sintab::@5: scope:[gen_sintab] from gen_sintab::@4 call setMEMtoFAC param-assignment to:gen_sintab::@6 gen_sintab::@6: scope:[gen_sintab] from gen_sintab::@5 - (byte*) BORDERCOL#37 ← phi( gen_sintab::@5/(byte*) BORDERCOL#38 ) (byte*) gen_sintab::sintab#19 ← phi( gen_sintab::@5/(byte*) gen_sintab::sintab#20 ) (byte) gen_sintab::length#19 ← phi( gen_sintab::@5/(byte) gen_sintab::length#20 ) (byte[]) gen_sintab::f_i#18 ← phi( gen_sintab::@5/(byte[]) gen_sintab::f_i#19 ) @@ -7144,7 +6362,6 @@ gen_sintab::@6: scope:[gen_sintab] from gen_sintab::@5 call subFACfromARG param-assignment to:gen_sintab::@7 gen_sintab::@7: scope:[gen_sintab] from gen_sintab::@6 - (byte*) BORDERCOL#36 ← phi( gen_sintab::@6/(byte*) BORDERCOL#37 ) (byte*) gen_sintab::sintab#18 ← phi( gen_sintab::@6/(byte*) gen_sintab::sintab#19 ) (byte) gen_sintab::length#18 ← phi( gen_sintab::@6/(byte) gen_sintab::length#19 ) (byte[]) gen_sintab::f_i#17 ← phi( gen_sintab::@6/(byte[]) gen_sintab::f_i#18 ) @@ -7155,7 +6372,6 @@ gen_sintab::@7: scope:[gen_sintab] from gen_sintab::@6 call setMEMtoFAC param-assignment to:gen_sintab::@8 gen_sintab::@8: scope:[gen_sintab] from gen_sintab::@7 - (byte*) BORDERCOL#35 ← phi( gen_sintab::@7/(byte*) BORDERCOL#36 ) (byte*) gen_sintab::sintab#17 ← phi( gen_sintab::@7/(byte*) gen_sintab::sintab#18 ) (byte) gen_sintab::length#17 ← phi( gen_sintab::@7/(byte) gen_sintab::length#18 ) (byte[]) gen_sintab::f_i#16 ← phi( gen_sintab::@7/(byte[]) gen_sintab::f_i#17 ) @@ -7166,7 +6382,6 @@ gen_sintab::@8: scope:[gen_sintab] from gen_sintab::@7 call setFAC param-assignment to:gen_sintab::@9 gen_sintab::@9: scope:[gen_sintab] from gen_sintab::@8 - (byte*) BORDERCOL#34 ← phi( gen_sintab::@8/(byte*) BORDERCOL#35 ) (byte*) gen_sintab::sintab#16 ← phi( gen_sintab::@8/(byte*) gen_sintab::sintab#17 ) (byte) gen_sintab::length#16 ← phi( gen_sintab::@8/(byte) gen_sintab::length#17 ) (byte[]) gen_sintab::f_i#14 ← phi( gen_sintab::@8/(byte[]) gen_sintab::f_i#16 ) @@ -7177,7 +6392,6 @@ gen_sintab::@9: scope:[gen_sintab] from gen_sintab::@8 call divMEMbyFAC param-assignment to:gen_sintab::@10 gen_sintab::@10: scope:[gen_sintab] from gen_sintab::@9 - (byte*) BORDERCOL#33 ← phi( gen_sintab::@9/(byte*) BORDERCOL#34 ) (byte*) gen_sintab::sintab#15 ← phi( gen_sintab::@9/(byte*) gen_sintab::sintab#16 ) (byte) gen_sintab::length#15 ← phi( gen_sintab::@9/(byte) gen_sintab::length#16 ) (byte[]) gen_sintab::f_i#12 ← phi( gen_sintab::@9/(byte[]) gen_sintab::f_i#14 ) @@ -7188,7 +6402,6 @@ gen_sintab::@10: scope:[gen_sintab] from gen_sintab::@9 call setMEMtoFAC param-assignment to:gen_sintab::@11 gen_sintab::@11: scope:[gen_sintab] from gen_sintab::@10 - (byte*) BORDERCOL#32 ← phi( gen_sintab::@10/(byte*) BORDERCOL#33 ) (byte*) gen_sintab::sintab#14 ← phi( gen_sintab::@10/(byte*) gen_sintab::sintab#15 ) (byte[]) gen_sintab::f_amp#20 ← phi( gen_sintab::@10/(byte[]) gen_sintab::f_amp#3 ) (byte) gen_sintab::length#14 ← phi( gen_sintab::@10/(byte) gen_sintab::length#15 ) @@ -7199,7 +6412,6 @@ gen_sintab::@11: scope:[gen_sintab] from gen_sintab::@10 call addMEMtoFAC param-assignment to:gen_sintab::@12 gen_sintab::@12: scope:[gen_sintab] from gen_sintab::@11 - (byte*) BORDERCOL#31 ← phi( gen_sintab::@11/(byte*) BORDERCOL#32 ) (byte*) gen_sintab::sintab#13 ← phi( gen_sintab::@11/(byte*) gen_sintab::sintab#14 ) (byte[]) gen_sintab::f_amp#18 ← phi( gen_sintab::@11/(byte[]) gen_sintab::f_amp#20 ) (byte) gen_sintab::length#12 ← phi( gen_sintab::@11/(byte) gen_sintab::length#14 ) @@ -7210,7 +6422,6 @@ gen_sintab::@12: scope:[gen_sintab] from gen_sintab::@11 call setMEMtoFAC param-assignment to:gen_sintab::@13 gen_sintab::@13: scope:[gen_sintab] from gen_sintab::@12 - (byte*) BORDERCOL#30 ← phi( gen_sintab::@12/(byte*) BORDERCOL#31 ) (byte*) gen_sintab::sintab#12 ← phi( gen_sintab::@12/(byte*) gen_sintab::sintab#13 ) (byte[]) gen_sintab::f_min#19 ← phi( gen_sintab::@12/(byte[]) gen_sintab::f_min#3 ) (byte[]) gen_sintab::f_amp#16 ← phi( gen_sintab::@12/(byte[]) gen_sintab::f_amp#18 ) @@ -7220,7 +6431,6 @@ gen_sintab::@13: scope:[gen_sintab] from gen_sintab::@12 (byte) gen_sintab::i#0 ← (byte/signed byte/word/signed word) 0 to:gen_sintab::@1 gen_sintab::@1: scope:[gen_sintab] from gen_sintab::@13 gen_sintab::@22 - (byte*) BORDERCOL#29 ← phi( gen_sintab::@13/(byte*) BORDERCOL#30 gen_sintab::@22/(byte*) BORDERCOL#3 ) (byte*) gen_sintab::sintab#11 ← phi( gen_sintab::@13/(byte*) gen_sintab::sintab#12 gen_sintab::@22/(byte*) gen_sintab::sintab#2 ) (byte[]) gen_sintab::f_min#18 ← phi( gen_sintab::@13/(byte[]) gen_sintab::f_min#19 gen_sintab::@22/(byte[]) gen_sintab::f_min#20 ) (byte[]) gen_sintab::f_amp#15 ← phi( gen_sintab::@13/(byte[]) gen_sintab::f_amp#16 gen_sintab::@22/(byte[]) gen_sintab::f_amp#17 ) @@ -7233,7 +6443,6 @@ gen_sintab::@1: scope:[gen_sintab] from gen_sintab::@13 gen_sintab::@22 call setFAC param-assignment to:gen_sintab::@14 gen_sintab::@14: scope:[gen_sintab] from gen_sintab::@1 - (byte*) BORDERCOL#28 ← phi( gen_sintab::@1/(byte*) BORDERCOL#29 ) (byte) gen_sintab::i#11 ← phi( gen_sintab::@1/(byte) gen_sintab::i#2 ) (byte*) gen_sintab::sintab#10 ← phi( gen_sintab::@1/(byte*) gen_sintab::sintab#11 ) (byte[]) gen_sintab::f_min#17 ← phi( gen_sintab::@1/(byte[]) gen_sintab::f_min#18 ) @@ -7246,7 +6455,6 @@ gen_sintab::@14: scope:[gen_sintab] from gen_sintab::@1 to:gen_sintab::@15 gen_sintab::@15: scope:[gen_sintab] from gen_sintab::@14 (byte*) gen_sintab::f_2pi#18 ← phi( gen_sintab::@14/(byte*) gen_sintab::f_2pi#1 ) - (byte*) BORDERCOL#27 ← phi( gen_sintab::@14/(byte*) BORDERCOL#28 ) (byte) gen_sintab::i#10 ← phi( gen_sintab::@14/(byte) gen_sintab::i#11 ) (byte*) gen_sintab::sintab#9 ← phi( gen_sintab::@14/(byte*) gen_sintab::sintab#10 ) (byte[]) gen_sintab::f_min#16 ← phi( gen_sintab::@14/(byte[]) gen_sintab::f_min#17 ) @@ -7258,7 +6466,6 @@ gen_sintab::@15: scope:[gen_sintab] from gen_sintab::@14 to:gen_sintab::@16 gen_sintab::@16: scope:[gen_sintab] from gen_sintab::@15 (byte*) gen_sintab::f_2pi#16 ← phi( gen_sintab::@15/(byte*) gen_sintab::f_2pi#18 ) - (byte*) BORDERCOL#25 ← phi( gen_sintab::@15/(byte*) BORDERCOL#27 ) (byte) gen_sintab::i#9 ← phi( gen_sintab::@15/(byte) gen_sintab::i#10 ) (byte*) gen_sintab::sintab#8 ← phi( gen_sintab::@15/(byte*) gen_sintab::sintab#9 ) (byte[]) gen_sintab::f_min#14 ← phi( gen_sintab::@15/(byte[]) gen_sintab::f_min#16 ) @@ -7272,7 +6479,6 @@ gen_sintab::@16: scope:[gen_sintab] from gen_sintab::@15 gen_sintab::@17: scope:[gen_sintab] from gen_sintab::@16 (byte*) gen_sintab::f_2pi#14 ← phi( gen_sintab::@16/(byte*) gen_sintab::f_2pi#16 ) (byte) gen_sintab::length#13 ← phi( gen_sintab::@16/(byte) gen_sintab::length#2 ) - (byte*) BORDERCOL#24 ← phi( gen_sintab::@16/(byte*) BORDERCOL#25 ) (byte) gen_sintab::i#8 ← phi( gen_sintab::@16/(byte) gen_sintab::i#9 ) (byte*) gen_sintab::sintab#7 ← phi( gen_sintab::@16/(byte*) gen_sintab::sintab#8 ) (byte[]) gen_sintab::f_min#12 ← phi( gen_sintab::@16/(byte[]) gen_sintab::f_min#14 ) @@ -7285,7 +6491,6 @@ gen_sintab::@18: scope:[gen_sintab] from gen_sintab::@17 (byte[]) gen_sintab::f_i#15 ← phi( gen_sintab::@17/(byte[]) gen_sintab::f_i#2 ) (byte*) gen_sintab::f_2pi#12 ← phi( gen_sintab::@17/(byte*) gen_sintab::f_2pi#14 ) (byte) gen_sintab::length#11 ← phi( gen_sintab::@17/(byte) gen_sintab::length#13 ) - (byte*) BORDERCOL#20 ← phi( gen_sintab::@17/(byte*) BORDERCOL#24 ) (byte) gen_sintab::i#7 ← phi( gen_sintab::@17/(byte) gen_sintab::i#8 ) (byte*) gen_sintab::sintab#6 ← phi( gen_sintab::@17/(byte*) gen_sintab::sintab#7 ) (byte[]) gen_sintab::f_min#10 ← phi( gen_sintab::@17/(byte[]) gen_sintab::f_min#12 ) @@ -7296,7 +6501,6 @@ gen_sintab::@19: scope:[gen_sintab] from gen_sintab::@18 (byte[]) gen_sintab::f_i#13 ← phi( gen_sintab::@18/(byte[]) gen_sintab::f_i#15 ) (byte*) gen_sintab::f_2pi#10 ← phi( gen_sintab::@18/(byte*) gen_sintab::f_2pi#12 ) (byte) gen_sintab::length#9 ← phi( gen_sintab::@18/(byte) gen_sintab::length#11 ) - (byte*) BORDERCOL#15 ← phi( gen_sintab::@18/(byte*) BORDERCOL#20 ) (byte) gen_sintab::i#6 ← phi( gen_sintab::@18/(byte) gen_sintab::i#7 ) (byte*) gen_sintab::sintab#5 ← phi( gen_sintab::@18/(byte*) gen_sintab::sintab#6 ) (byte[]) gen_sintab::f_min#7 ← phi( gen_sintab::@18/(byte[]) gen_sintab::f_min#10 ) @@ -7309,7 +6513,6 @@ gen_sintab::@20: scope:[gen_sintab] from gen_sintab::@19 (byte[]) gen_sintab::f_i#11 ← phi( gen_sintab::@19/(byte[]) gen_sintab::f_i#13 ) (byte*) gen_sintab::f_2pi#8 ← phi( gen_sintab::@19/(byte*) gen_sintab::f_2pi#10 ) (byte) gen_sintab::length#7 ← phi( gen_sintab::@19/(byte) gen_sintab::length#9 ) - (byte*) BORDERCOL#11 ← phi( gen_sintab::@19/(byte*) BORDERCOL#15 ) (byte) gen_sintab::i#5 ← phi( gen_sintab::@19/(byte) gen_sintab::i#6 ) (byte*) gen_sintab::sintab#4 ← phi( gen_sintab::@19/(byte*) gen_sintab::sintab#5 ) (byte[]) gen_sintab::f_min#4 ← phi( gen_sintab::@19/(byte[]) gen_sintab::f_min#7 ) @@ -7322,7 +6525,6 @@ gen_sintab::@21: scope:[gen_sintab] from gen_sintab::@20 (byte[]) gen_sintab::f_i#9 ← phi( gen_sintab::@20/(byte[]) gen_sintab::f_i#11 ) (byte*) gen_sintab::f_2pi#6 ← phi( gen_sintab::@20/(byte*) gen_sintab::f_2pi#8 ) (byte) gen_sintab::length#5 ← phi( gen_sintab::@20/(byte) gen_sintab::length#7 ) - (byte*) BORDERCOL#7 ← phi( gen_sintab::@20/(byte*) BORDERCOL#11 ) (byte) gen_sintab::i#4 ← phi( gen_sintab::@20/(byte) gen_sintab::i#5 ) (byte*) gen_sintab::sintab#3 ← phi( gen_sintab::@20/(byte*) gen_sintab::sintab#4 ) call getFAC param-assignment @@ -7334,14 +6536,13 @@ gen_sintab::@22: scope:[gen_sintab] from gen_sintab::@21 (byte[]) gen_sintab::f_i#7 ← phi( gen_sintab::@21/(byte[]) gen_sintab::f_i#9 ) (byte*) gen_sintab::f_2pi#4 ← phi( gen_sintab::@21/(byte*) gen_sintab::f_2pi#6 ) (byte) gen_sintab::length#3 ← phi( gen_sintab::@21/(byte) gen_sintab::length#5 ) - (byte*) BORDERCOL#3 ← phi( gen_sintab::@21/(byte*) BORDERCOL#7 ) (byte) gen_sintab::i#3 ← phi( gen_sintab::@21/(byte) gen_sintab::i#4 ) (byte*) gen_sintab::sintab#2 ← phi( gen_sintab::@21/(byte*) gen_sintab::sintab#3 ) (word) getFAC::return#4 ← phi( gen_sintab::@21/(word) getFAC::return#2 ) (word~) gen_sintab::$23 ← (word) getFAC::return#4 (byte~) gen_sintab::$24 ← ((byte)) (word~) gen_sintab::$23 *((byte*) gen_sintab::sintab#2 + (byte) gen_sintab::i#3) ← (byte~) gen_sintab::$24 - *((byte*) BORDERCOL#3) ← ++ *((byte*) BORDERCOL#3) + *((byte*) BORDERCOL#0) ← ++ *((byte*) BORDERCOL#0) (byte) gen_sintab::i#1 ← ++ (byte) gen_sintab::i#3 (boolean~) gen_sintab::$25 ← (byte) gen_sintab::i#1 < (byte) gen_sintab::length#3 if((boolean~) gen_sintab::$25) goto gen_sintab::@1 @@ -7350,17 +6551,6 @@ gen_sintab::@return: scope:[gen_sintab] from gen_sintab::@22 return to:@return @39: scope:[] from @34 - (byte*) PROCPORT#20 ← phi( @34/(byte*) PROCPORT#21 ) - (byte*) CHARGEN#10 ← phi( @34/(byte*) CHARGEN#11 ) - (byte*) SPRITES_COLS#7 ← phi( @34/(byte*) SPRITES_COLS#8 ) - (byte*) SPRITES_YPOS#18 ← phi( @34/(byte*) SPRITES_YPOS#19 ) - (byte*) SPRITES_XPOS#18 ← phi( @34/(byte*) SPRITES_XPOS#19 ) - (byte*) SPRITES_EXPAND_Y#6 ← phi( @34/(byte*) SPRITES_EXPAND_Y#7 ) - (byte*) SPRITES_EXPAND_X#6 ← phi( @34/(byte*) SPRITES_EXPAND_X#7 ) - (byte*) SPRITES_ENABLE#6 ← phi( @34/(byte*) SPRITES_ENABLE#7 ) - (byte*) BORDERCOL#21 ← phi( @34/(byte*) BORDERCOL#26 ) - (byte*) RASTER#6 ← phi( @34/(byte*) RASTER#8 ) - (byte*) SCREEN#6 ← phi( @34/(byte*) SCREEN#7 ) (byte) sin_idx_y#17 ← phi( @34/(byte) sin_idx_y#2 ) (byte) sin_idx_x#16 ← phi( @34/(byte) sin_idx_x#2 ) call main param-assignment @@ -7384,64 +6574,28 @@ Not aliassing across scopes: divMEMbyFAC::mem#2 divMEMbyFAC::mem#1 Not aliassing across scopes: prepareMEM::mem#3 divMEMbyFAC::mem#2 Not aliassing across scopes: mulFACbyMEM::mem#2 mulFACbyMEM::mem#0 Not aliassing across scopes: prepareMEM::mem#4 mulFACbyMEM::mem#2 -Not aliassing across scopes: SCREEN#4 SCREEN#6 -Not aliassing across scopes: RASTER#4 RASTER#6 Not aliassing across scopes: sin_idx_x#26 sin_idx_x#16 Not aliassing across scopes: sin_idx_y#24 sin_idx_y#17 -Not aliassing across scopes: BORDERCOL#16 BORDERCOL#21 -Not aliassing across scopes: SPRITES_ENABLE#5 SPRITES_ENABLE#6 -Not aliassing across scopes: SPRITES_EXPAND_X#5 SPRITES_EXPAND_X#6 -Not aliassing across scopes: SPRITES_EXPAND_Y#5 SPRITES_EXPAND_Y#6 -Not aliassing across scopes: SPRITES_XPOS#16 SPRITES_XPOS#18 -Not aliassing across scopes: SPRITES_YPOS#16 SPRITES_YPOS#18 -Not aliassing across scopes: SPRITES_COLS#6 SPRITES_COLS#7 -Not aliassing across scopes: CHARGEN#9 CHARGEN#10 -Not aliassing across scopes: PROCPORT#18 PROCPORT#20 Not aliassing across scopes: sin_idx_x#7 sin_idx_x#5 Not aliassing across scopes: sin_idx_y#7 sin_idx_y#5 -Not aliassing across scopes: SCREEN#1 SCREEN#4 -Not aliassing across scopes: SPRITES_ENABLE#4 SPRITES_ENABLE#5 -Not aliassing across scopes: SPRITES_EXPAND_X#4 SPRITES_EXPAND_X#5 -Not aliassing across scopes: SPRITES_EXPAND_Y#4 SPRITES_EXPAND_Y#5 -Not aliassing across scopes: SPRITES_XPOS#15 SPRITES_XPOS#16 -Not aliassing across scopes: SPRITES_YPOS#15 SPRITES_YPOS#16 -Not aliassing across scopes: SPRITES_COLS#5 SPRITES_COLS#6 -Not aliassing across scopes: CHARGEN#8 CHARGEN#9 -Not aliassing across scopes: PROCPORT#15 PROCPORT#18 -Not aliassing across scopes: BORDERCOL#47 BORDERCOL#16 -Not aliassing across scopes: init::sc#0 SCREEN#1 +Not aliassing across scopes: init::sc#0 SCREEN#0 Not aliassing across scopes: gen_sintab::sintab#0 sintab_x#0 Not aliassing across scopes: gen_sintab::length#0 sinlen_x#0 Not aliassing across scopes: gen_sintab::sintab#1 sintab_y#0 Not aliassing across scopes: gen_sintab::length#1 sinlen_y#0 -Not aliassing across scopes: BORDERCOL#1 BORDERCOL#4 Not aliassing across scopes: sin_idx_x#9 sin_idx_x#13 Not aliassing across scopes: sin_idx_y#9 sin_idx_y#13 -Not aliassing across scopes: SPRITES_XPOS#3 SPRITES_XPOS#6 -Not aliassing across scopes: SPRITES_YPOS#3 SPRITES_YPOS#6 Not aliassing across scopes: anim::xidx#0 sin_idx_x#9 Not aliassing across scopes: anim::yidx#0 sin_idx_y#9 -Not aliassing across scopes: SPRITES_ENABLE#1 SPRITES_ENABLE#2 -Not aliassing across scopes: SPRITES_EXPAND_X#1 SPRITES_EXPAND_X#2 -Not aliassing across scopes: SPRITES_EXPAND_Y#1 SPRITES_EXPAND_Y#2 -Not aliassing across scopes: SCREEN#3 SCREEN#5 -Not aliassing across scopes: SPRITES_XPOS#5 SPRITES_XPOS#9 -Not aliassing across scopes: SPRITES_YPOS#5 SPRITES_YPOS#9 -Not aliassing across scopes: SPRITES_COLS#2 SPRITES_COLS#3 -Not aliassing across scopes: CHARGEN#3 CHARGEN#5 -Not aliassing across scopes: PROCPORT#5 PROCPORT#8 Not aliassing across scopes: gen_sprites::spr#0 sprites#0 Not aliassing across scopes: gen_chargen_sprite::ch#0 gen_sprites::$0 Not aliassing across scopes: gen_chargen_sprite::sprite#0 gen_sprites::spr#2 Not aliassing across scopes: gen_chargen_sprite::ch#1 gen_chargen_sprite::ch#0 -Not aliassing across scopes: CHARGEN#1 CHARGEN#2 -Not aliassing across scopes: PROCPORT#1 PROCPORT#3 Not aliassing across scopes: gen_chargen_sprite::sprite#12 gen_chargen_sprite::sprite#0 Not aliassing across scopes: gen_sintab::max#2 gen_sintab::max#0 Not aliassing across scopes: gen_sintab::min#4 gen_sintab::min#0 Not aliassing across scopes: gen_sintab::length#23 gen_sintab::length#0 Not aliassing across scopes: gen_sintab::sintab#23 gen_sintab::sintab#0 -Not aliassing across scopes: BORDERCOL#41 BORDERCOL#42 Not aliassing across scopes: setFAC::w#0 gen_sintab::$0 Not aliassing across scopes: setFAC::w#1 gen_sintab::$3 Not aliassing across scopes: setMEMtoFAC::mem#0 gen_sintab::f_min#1 @@ -7462,65 +6616,28 @@ Not aliassing across scopes: gen_sintab::$23 getFAC::return#4 Not aliassing across scopes: sin_idx_x#12 sin_idx_x#1 Not aliassing across scopes: sin_idx_y#12 sin_idx_y#1 Alias (word) getFAC::return#0 = (word) getFAC::w#2 (word) getFAC::return#3 (word) getFAC::return#1 -Alias (byte*) RASTER#3 = (byte*) RASTER#4 Alias (byte) sin_idx_x#23 = (byte) sin_idx_x#26 Alias (byte) sin_idx_y#21 = (byte) sin_idx_y#24 -Alias (byte*) BORDERCOL#13 = (byte*) BORDERCOL#16 -Alias (byte*) SPRITES_XPOS#14 = (byte*) SPRITES_XPOS#16 -Alias (byte*) SPRITES_YPOS#14 = (byte*) SPRITES_YPOS#16 -Alias (byte*) RASTER#1 = (byte*) RASTER#2 (byte*) RASTER#5 (byte*) RASTER#7 Alias (byte) sin_idx_x#0 = (byte) sin_idx_x#22 (byte) sin_idx_x#7 (byte) sin_idx_x#8 (byte) sin_idx_x#1 Alias (byte) sin_idx_y#0 = (byte) sin_idx_y#20 (byte) sin_idx_y#7 (byte) sin_idx_y#8 (byte) sin_idx_y#1 -Alias (byte*) BORDERCOL#12 = (byte*) BORDERCOL#17 (byte*) BORDERCOL#4 (byte*) BORDERCOL#8 -Alias (byte*) SPRITES_XPOS#10 = (byte*) SPRITES_XPOS#13 (byte*) SPRITES_XPOS#17 (byte*) SPRITES_XPOS#6 -Alias (byte*) SPRITES_YPOS#10 = (byte*) SPRITES_YPOS#13 (byte*) SPRITES_YPOS#17 (byte*) SPRITES_YPOS#6 Alias (byte) sin_idx_x#13 = (byte) sin_idx_x#17 Alias (byte) sin_idx_y#13 = (byte) sin_idx_y#18 -Alias (byte*) SPRITES_ENABLE#2 = (byte*) SPRITES_ENABLE#3 -Alias (byte*) SPRITES_EXPAND_X#2 = (byte*) SPRITES_EXPAND_X#3 -Alias (byte*) SPRITES_EXPAND_Y#2 = (byte*) SPRITES_EXPAND_Y#3 -Alias (byte*) SCREEN#2 = (byte*) SCREEN#5 -Alias (byte*) SPRITES_XPOS#11 = (byte*) SPRITES_XPOS#9 -Alias (byte*) SPRITES_YPOS#11 = (byte*) SPRITES_YPOS#9 -Alias (byte*) SPRITES_COLS#3 = (byte*) SPRITES_COLS#4 -Alias (byte*) CHARGEN#5 = (byte*) CHARGEN#6 (byte*) CHARGEN#7 -Alias (byte*) PROCPORT#10 = (byte*) PROCPORT#13 (byte*) PROCPORT#8 -Alias (byte*) BORDERCOL#42 = (byte*) BORDERCOL#45 (byte*) BORDERCOL#46 (byte*) BORDERCOL#44 (byte*) BORDERCOL#43 -Alias (byte*) SCREEN#0 = (byte*) SCREEN#7 (byte*) SCREEN#6 -Alias (byte*) RASTER#0 = (byte*) RASTER#8 (byte*) RASTER#6 -Alias (byte*) BORDERCOL#0 = (byte*) BORDERCOL#26 (byte*) BORDERCOL#21 -Alias (byte*) SPRITES_ENABLE#0 = (byte*) SPRITES_ENABLE#7 (byte*) SPRITES_ENABLE#6 -Alias (byte*) SPRITES_EXPAND_X#0 = (byte*) SPRITES_EXPAND_X#7 (byte*) SPRITES_EXPAND_X#6 -Alias (byte*) SPRITES_EXPAND_Y#0 = (byte*) SPRITES_EXPAND_Y#7 (byte*) SPRITES_EXPAND_Y#6 -Alias (byte*) SPRITES_XPOS#0 = (byte*) SPRITES_XPOS#19 (byte*) SPRITES_XPOS#18 -Alias (byte*) SPRITES_YPOS#0 = (byte*) SPRITES_YPOS#19 (byte*) SPRITES_YPOS#18 -Alias (byte*) SPRITES_COLS#0 = (byte*) SPRITES_COLS#8 (byte*) SPRITES_COLS#7 -Alias (byte*) CHARGEN#0 = (byte*) CHARGEN#11 (byte*) CHARGEN#10 -Alias (byte*) PROCPORT#0 = (byte*) PROCPORT#21 (byte*) PROCPORT#20 Alias (byte) anim::xidx#1 = (byte~) anim::$2 (byte) anim::xidx#4 Alias (byte) anim::yidx#1 = (byte~) anim::$6 (byte) anim::yidx#5 Alias (byte) anim::yidx#3 = (byte) anim::yidx#7 Alias (byte) anim::j2#3 = (byte) anim::j2#7 Alias (byte) anim::j#5 = (byte) anim::j#6 -Alias (byte*) SPRITES_XPOS#1 = (byte*) SPRITES_XPOS#12 -Alias (byte*) SPRITES_YPOS#1 = (byte*) SPRITES_YPOS#12 Alias (byte) sin_idx_x#24 = (byte) sin_idx_x#25 Alias (byte) sin_idx_y#25 = (byte) sin_idx_y#26 -Alias (byte*) BORDERCOL#22 = (byte*) BORDERCOL#23 Alias (byte) anim::xidx#2 = (byte~) anim::$5 Alias (byte) anim::j2#5 = (byte) anim::j2#6 Alias (byte) anim::j#3 = (byte) anim::j#4 Alias (byte) anim::xidx#6 = (byte) anim::xidx#7 -Alias (byte*) SPRITES_XPOS#7 = (byte*) SPRITES_XPOS#8 -Alias (byte*) SPRITES_YPOS#7 = (byte*) SPRITES_YPOS#8 Alias (byte) sin_idx_x#18 = (byte) sin_idx_x#19 Alias (byte) sin_idx_y#22 = (byte) sin_idx_y#23 -Alias (byte*) BORDERCOL#18 = (byte*) BORDERCOL#19 Alias (byte) anim::yidx#2 = (byte~) anim::$9 Alias (byte) sin_idx_x#10 = (byte) sin_idx_x#14 Alias (byte) sin_idx_y#14 = (byte) sin_idx_y#19 (byte) sin_idx_y#15 -Alias (byte*) BORDERCOL#10 = (byte*) BORDERCOL#9 (byte*) BORDERCOL#14 -Alias (byte*) BORDERCOL#5 = (byte*) BORDERCOL#6 Alias (byte) sin_idx_x#20 = (byte) sin_idx_x#21 Alias (byte) sin_idx_x#11 = (byte) sin_idx_x#15 (byte) sin_idx_x#5 Alias (byte) sin_idx_y#11 = (byte) sin_idx_y#16 (byte) sin_idx_y#5 @@ -7531,8 +6648,6 @@ Alias (byte) place_sprites::col#1 = (byte~) place_sprites::$5 Alias (byte*) gen_sprites::spr#2 = (byte*) gen_sprites::spr#3 Alias (byte) gen_sprites::i#2 = (byte) gen_sprites::i#3 Alias (byte[]) gen_sprites::cml#1 = (byte[]) gen_sprites::cml#2 -Alias (byte*) CHARGEN#2 = (byte*) CHARGEN#4 -Alias (byte*) PROCPORT#3 = (byte*) PROCPORT#6 Alias (byte*) gen_sprites::spr#1 = (byte*~) gen_sprites::$2 Alias (byte*) gen_chargen_sprite::chargen#0 = (byte*~) gen_chargen_sprite::$2 Alias (byte) gen_chargen_sprite::bits#0 = (byte~) gen_chargen_sprite::$3 @@ -7543,7 +6658,6 @@ Alias (byte) gen_chargen_sprite::bits#2 = (byte) gen_chargen_sprite::bits#8 Alias (byte) gen_chargen_sprite::x#7 = (byte) gen_chargen_sprite::x#8 Alias (byte) gen_chargen_sprite::y#10 = (byte) gen_chargen_sprite::y#9 Alias (byte*) gen_chargen_sprite::chargen#8 = (byte*) gen_chargen_sprite::chargen#9 -Alias (byte*) PROCPORT#16 = (byte*) PROCPORT#17 Alias (byte) gen_chargen_sprite::s_gen#1 = (byte~) gen_chargen_sprite::$8 (byte) gen_chargen_sprite::s_gen#4 Alias (byte*) gen_chargen_sprite::sprite#3 = (byte*) gen_chargen_sprite::sprite#5 Alias (byte) gen_chargen_sprite::b#3 = (byte) gen_chargen_sprite::b#4 @@ -7552,13 +6666,11 @@ Alias (byte) gen_chargen_sprite::bits#5 = (byte) gen_chargen_sprite::bits#6 Alias (byte) gen_chargen_sprite::x#4 = (byte) gen_chargen_sprite::x#5 Alias (byte) gen_chargen_sprite::y#6 = (byte) gen_chargen_sprite::y#7 Alias (byte*) gen_chargen_sprite::chargen#5 = (byte*) gen_chargen_sprite::chargen#6 -Alias (byte*) PROCPORT#11 = (byte*) PROCPORT#12 Alias (byte) gen_chargen_sprite::bits#3 = (byte) gen_chargen_sprite::bits#4 Alias (byte) gen_chargen_sprite::x#2 = (byte) gen_chargen_sprite::x#3 Alias (byte*) gen_chargen_sprite::sprite#4 = (byte*) gen_chargen_sprite::sprite#6 (byte*) gen_chargen_sprite::sprite#8 Alias (byte) gen_chargen_sprite::y#3 = (byte) gen_chargen_sprite::y#4 (byte) gen_chargen_sprite::y#5 Alias (byte*) gen_chargen_sprite::chargen#2 = (byte*) gen_chargen_sprite::chargen#3 (byte*) gen_chargen_sprite::chargen#4 -Alias (byte*) PROCPORT#2 = (byte*) PROCPORT#7 (byte*) PROCPORT#9 (byte*) PROCPORT#4 Alias (byte) gen_chargen_sprite::s_gen#6 = (byte) gen_chargen_sprite::s_gen#9 Alias (byte) gen_chargen_sprite::s_gen_cnt#5 = (byte) gen_chargen_sprite::s_gen_cnt#8 Alias (byte) gen_chargen_sprite::bits#1 = (byte~) gen_chargen_sprite::$12 @@ -7570,7 +6682,6 @@ Alias (byte*) gen_sintab::f_2pi#0 = (byte*) gen_sintab::f_2pi#21 (byte*) gen_sin Alias (byte[]) gen_sintab::f_i#0 = (byte[]) gen_sintab::f_i#21 (byte[]) gen_sintab::f_i#20 (byte[]) gen_sintab::f_i#19 (byte[]) gen_sintab::f_i#18 (byte[]) gen_sintab::f_i#17 (byte[]) gen_sintab::f_i#16 (byte[]) gen_sintab::f_i#14 (byte[]) gen_sintab::f_i#12 (byte[]) gen_sintab::f_i#10 (byte[]) gen_sintab::f_i#8 (byte[]) gen_sintab::f_i#6 Alias (byte) gen_sintab::length#10 = (byte) gen_sintab::length#22 (byte) gen_sintab::length#23 (byte) gen_sintab::length#21 (byte) gen_sintab::length#20 (byte) gen_sintab::length#19 (byte) gen_sintab::length#18 (byte) gen_sintab::length#17 (byte) gen_sintab::length#16 (byte) gen_sintab::length#15 (byte) gen_sintab::length#14 (byte) gen_sintab::length#12 Alias (byte*) gen_sintab::sintab#12 = (byte*) gen_sintab::sintab#22 (byte*) gen_sintab::sintab#23 (byte*) gen_sintab::sintab#21 (byte*) gen_sintab::sintab#20 (byte*) gen_sintab::sintab#19 (byte*) gen_sintab::sintab#18 (byte*) gen_sintab::sintab#17 (byte*) gen_sintab::sintab#16 (byte*) gen_sintab::sintab#15 (byte*) gen_sintab::sintab#14 (byte*) gen_sintab::sintab#13 -Alias (byte*) BORDERCOL#30 = (byte*) BORDERCOL#40 (byte*) BORDERCOL#41 (byte*) BORDERCOL#39 (byte*) BORDERCOL#38 (byte*) BORDERCOL#37 (byte*) BORDERCOL#36 (byte*) BORDERCOL#35 (byte*) BORDERCOL#34 (byte*) BORDERCOL#33 (byte*) BORDERCOL#32 (byte*) BORDERCOL#31 Alias (byte*) gen_sintab::f_2pi#1 = (byte*) gen_sintab::f_2pi#2 (byte*) gen_sintab::f_2pi#18 (byte*) gen_sintab::f_2pi#16 (byte*) gen_sintab::f_2pi#14 (byte*) gen_sintab::f_2pi#12 (byte*) gen_sintab::f_2pi#10 (byte*) gen_sintab::f_2pi#8 (byte*) gen_sintab::f_2pi#6 (byte*) gen_sintab::f_2pi#4 Alias (byte[]) gen_sintab::f_i#1 = (byte[]) gen_sintab::f_i#3 (byte[]) gen_sintab::f_i#5 (byte[]) gen_sintab::f_i#4 (byte[]) gen_sintab::f_i#2 (byte[]) gen_sintab::f_i#15 (byte[]) gen_sintab::f_i#13 (byte[]) gen_sintab::f_i#11 (byte[]) gen_sintab::f_i#9 (byte[]) gen_sintab::f_i#7 Alias (byte) gen_sintab::length#11 = (byte) gen_sintab::length#6 (byte) gen_sintab::length#8 (byte) gen_sintab::length#4 (byte) gen_sintab::length#2 (byte) gen_sintab::length#13 (byte) gen_sintab::length#9 (byte) gen_sintab::length#7 (byte) gen_sintab::length#5 (byte) gen_sintab::length#3 @@ -7578,7 +6689,6 @@ Alias (byte[]) gen_sintab::f_amp#11 = (byte[]) gen_sintab::f_amp#14 (byte[]) gen Alias (byte[]) gen_sintab::f_min#10 = (byte[]) gen_sintab::f_min#17 (byte[]) gen_sintab::f_min#18 (byte[]) gen_sintab::f_min#16 (byte[]) gen_sintab::f_min#14 (byte[]) gen_sintab::f_min#12 (byte[]) gen_sintab::f_min#7 (byte[]) gen_sintab::f_min#4 (byte[]) gen_sintab::f_min#21 (byte[]) gen_sintab::f_min#20 Alias (byte*) gen_sintab::sintab#10 = (byte*) gen_sintab::sintab#11 (byte*) gen_sintab::sintab#9 (byte*) gen_sintab::sintab#8 (byte*) gen_sintab::sintab#7 (byte*) gen_sintab::sintab#6 (byte*) gen_sintab::sintab#5 (byte*) gen_sintab::sintab#4 (byte*) gen_sintab::sintab#3 (byte*) gen_sintab::sintab#2 Alias (byte) gen_sintab::i#10 = (byte) gen_sintab::i#11 (byte) gen_sintab::i#2 (byte) gen_sintab::i#9 (byte) gen_sintab::i#8 (byte) gen_sintab::i#7 (byte) gen_sintab::i#6 (byte) gen_sintab::i#5 (byte) gen_sintab::i#4 (byte) gen_sintab::i#3 -Alias (byte*) BORDERCOL#11 = (byte*) BORDERCOL#28 (byte*) BORDERCOL#29 (byte*) BORDERCOL#27 (byte*) BORDERCOL#25 (byte*) BORDERCOL#24 (byte*) BORDERCOL#20 (byte*) BORDERCOL#15 (byte*) BORDERCOL#7 (byte*) BORDERCOL#3 Alias (word) getFAC::return#2 = (word) getFAC::return#4 Alias (byte) sin_idx_x#16 = (byte) sin_idx_x#2 Alias (byte) sin_idx_y#17 = (byte) sin_idx_y#2 @@ -7702,19 +6812,8 @@ sinFAC::@return: scope:[sinFAC] from sinFAC (byte[]) sprites#0 ← ((byte*)) (word/signed word) 8192 to:@34 main: scope:[main] from @39 - (byte*) PROCPORT#18 ← phi( @39/(byte*) PROCPORT#0 ) - (byte*) CHARGEN#9 ← phi( @39/(byte*) CHARGEN#0 ) - (byte*) SPRITES_COLS#6 ← phi( @39/(byte*) SPRITES_COLS#0 ) - (byte*) SPRITES_YPOS#14 ← phi( @39/(byte*) SPRITES_YPOS#0 ) - (byte*) SPRITES_XPOS#14 ← phi( @39/(byte*) SPRITES_XPOS#0 ) - (byte*) SPRITES_EXPAND_Y#5 ← phi( @39/(byte*) SPRITES_EXPAND_Y#0 ) - (byte*) SPRITES_EXPAND_X#5 ← phi( @39/(byte*) SPRITES_EXPAND_X#0 ) - (byte*) SPRITES_ENABLE#5 ← phi( @39/(byte*) SPRITES_ENABLE#0 ) - (byte*) BORDERCOL#13 ← phi( @39/(byte*) BORDERCOL#0 ) (byte) sin_idx_y#21 ← phi( @39/(byte) sin_idx_y#17 ) (byte) sin_idx_x#23 ← phi( @39/(byte) sin_idx_x#16 ) - (byte*) RASTER#3 ← phi( @39/(byte*) RASTER#0 ) - (byte*) SCREEN#4 ← phi( @39/(byte*) SCREEN#0 ) call init param-assignment to:main::@5 main::@5: scope:[main] from main @@ -7722,13 +6821,9 @@ main::@5: scope:[main] from main main::@1: scope:[main] from main::@6 to:main::@2 main::@2: scope:[main] from main::@1 main::@2 main::@5 - (byte*) SPRITES_YPOS#10 ← phi( main::@1/(byte*) SPRITES_YPOS#10 main::@2/(byte*) SPRITES_YPOS#10 main::@5/(byte*) SPRITES_YPOS#14 ) - (byte*) SPRITES_XPOS#10 ← phi( main::@1/(byte*) SPRITES_XPOS#10 main::@2/(byte*) SPRITES_XPOS#10 main::@5/(byte*) SPRITES_XPOS#14 ) - (byte*) BORDERCOL#12 ← phi( main::@1/(byte*) BORDERCOL#12 main::@2/(byte*) BORDERCOL#12 main::@5/(byte*) BORDERCOL#13 ) (byte) sin_idx_y#13 ← phi( main::@1/(byte) sin_idx_y#0 main::@2/(byte) sin_idx_y#13 main::@5/(byte) sin_idx_y#21 ) (byte) sin_idx_x#13 ← phi( main::@1/(byte) sin_idx_x#0 main::@2/(byte) sin_idx_x#13 main::@5/(byte) sin_idx_x#23 ) - (byte*) RASTER#1 ← phi( main::@1/(byte*) RASTER#1 main::@2/(byte*) RASTER#1 main::@5/(byte*) RASTER#3 ) - (boolean~) main::$1 ← *((byte*) RASTER#1) != (byte/word/signed word) 255 + (boolean~) main::$1 ← *((byte*) RASTER#0) != (byte/word/signed word) 255 if((boolean~) main::$1) goto main::@2 to:main::@3 main::@3: scope:[main] from main::@2 @@ -7743,33 +6838,13 @@ main::@return: scope:[main] from main::@6 return to:@return init: scope:[init] from main - (byte*) BORDERCOL#47 ← phi( main/(byte*) BORDERCOL#13 ) - (byte*) PROCPORT#15 ← phi( main/(byte*) PROCPORT#18 ) - (byte*) CHARGEN#8 ← phi( main/(byte*) CHARGEN#9 ) - (byte*) SPRITES_COLS#5 ← phi( main/(byte*) SPRITES_COLS#6 ) - (byte*) SPRITES_YPOS#15 ← phi( main/(byte*) SPRITES_YPOS#14 ) - (byte*) SPRITES_XPOS#15 ← phi( main/(byte*) SPRITES_XPOS#14 ) - (byte*) SPRITES_EXPAND_Y#4 ← phi( main/(byte*) SPRITES_EXPAND_Y#5 ) - (byte*) SPRITES_EXPAND_X#4 ← phi( main/(byte*) SPRITES_EXPAND_X#5 ) - (byte*) SPRITES_ENABLE#4 ← phi( main/(byte*) SPRITES_ENABLE#5 ) - (byte*) SCREEN#1 ← phi( main/(byte*) SCREEN#4 ) - (byte*) init::sc#0 ← (byte*) SCREEN#1 + (byte*) init::sc#0 ← (byte*) SCREEN#0 to:init::@1 init::@1: scope:[init] from init init::@1 - (byte*) BORDERCOL#42 ← phi( init/(byte*) BORDERCOL#47 init::@1/(byte*) BORDERCOL#42 ) - (byte*) PROCPORT#10 ← phi( init/(byte*) PROCPORT#15 init::@1/(byte*) PROCPORT#10 ) - (byte*) CHARGEN#5 ← phi( init/(byte*) CHARGEN#8 init::@1/(byte*) CHARGEN#5 ) - (byte*) SPRITES_COLS#3 ← phi( init/(byte*) SPRITES_COLS#5 init::@1/(byte*) SPRITES_COLS#3 ) - (byte*) SPRITES_YPOS#11 ← phi( init/(byte*) SPRITES_YPOS#15 init::@1/(byte*) SPRITES_YPOS#11 ) - (byte*) SPRITES_XPOS#11 ← phi( init/(byte*) SPRITES_XPOS#15 init::@1/(byte*) SPRITES_XPOS#11 ) - (byte*) SPRITES_EXPAND_Y#2 ← phi( init/(byte*) SPRITES_EXPAND_Y#4 init::@1/(byte*) SPRITES_EXPAND_Y#2 ) - (byte*) SPRITES_EXPAND_X#2 ← phi( init/(byte*) SPRITES_EXPAND_X#4 init::@1/(byte*) SPRITES_EXPAND_X#2 ) - (byte*) SPRITES_ENABLE#2 ← phi( init/(byte*) SPRITES_ENABLE#4 init::@1/(byte*) SPRITES_ENABLE#2 ) - (byte*) SCREEN#2 ← phi( init/(byte*) SCREEN#1 init::@1/(byte*) SCREEN#2 ) (byte*) init::sc#2 ← phi( init/(byte*) init::sc#0 init::@1/(byte*) init::sc#1 ) *((byte*) init::sc#2) ← (byte) ' ' (byte*) init::sc#1 ← ++ (byte*) init::sc#2 - (byte*~) init::$0 ← (byte*) SCREEN#2 + (word/signed word) 1000 + (byte*~) init::$0 ← (byte*) SCREEN#0 + (word/signed word) 1000 (boolean~) init::$1 ← (byte*) init::sc#1 < (byte*~) init::$0 if((boolean~) init::$1) goto init::@1 to:init::@2 @@ -7801,41 +6876,32 @@ init::@return: scope:[init] from init::@5 (byte) sin_idx_y#17 ← (byte/signed byte/word/signed word) 0 to:@39 anim: scope:[anim] from main::@3 - (byte*) SPRITES_YPOS#3 ← phi( main::@3/(byte*) SPRITES_YPOS#10 ) - (byte*) SPRITES_XPOS#3 ← phi( main::@3/(byte*) SPRITES_XPOS#10 ) (byte) sin_idx_y#9 ← phi( main::@3/(byte) sin_idx_y#13 ) (byte) sin_idx_x#9 ← phi( main::@3/(byte) sin_idx_x#13 ) - (byte*) BORDERCOL#1 ← phi( main::@3/(byte*) BORDERCOL#12 ) - *((byte*) BORDERCOL#1) ← ++ *((byte*) BORDERCOL#1) + *((byte*) BORDERCOL#0) ← ++ *((byte*) BORDERCOL#0) (byte) anim::xidx#0 ← (byte) sin_idx_x#9 (byte) anim::yidx#0 ← (byte) sin_idx_y#9 (byte) anim::j2#0 ← (byte/signed byte/word/signed word) 12 (byte) anim::j#0 ← (byte/signed byte/word/signed word) 0 to:anim::@1 anim::@1: scope:[anim] from anim anim::@3 - (byte*) BORDERCOL#22 ← phi( anim/(byte*) BORDERCOL#1 anim::@3/(byte*) BORDERCOL#10 ) (byte) sin_idx_y#25 ← phi( anim/(byte) sin_idx_y#9 anim::@3/(byte) sin_idx_y#14 ) (byte) sin_idx_x#24 ← phi( anim/(byte) sin_idx_x#9 anim::@3/(byte) sin_idx_x#10 ) (byte) anim::j#5 ← phi( anim/(byte) anim::j#0 anim::@3/(byte) anim::j#1 ) - (byte*) SPRITES_YPOS#1 ← phi( anim/(byte*) SPRITES_YPOS#3 anim::@3/(byte*) SPRITES_YPOS#4 ) (byte) anim::yidx#3 ← phi( anim/(byte) anim::yidx#0 anim::@3/(byte) anim::yidx#6 ) (byte) anim::j2#3 ← phi( anim/(byte) anim::j2#0 anim::@3/(byte) anim::j2#2 ) - (byte*) SPRITES_XPOS#1 ← phi( anim/(byte*) SPRITES_XPOS#3 anim::@3/(byte*) SPRITES_XPOS#4 ) (byte) anim::xidx#3 ← phi( anim/(byte) anim::xidx#0 anim::@3/(byte) anim::xidx#5 ) (byte~) anim::$0 ← (byte[]) sintab_x#0 *idx (byte) anim::xidx#3 - *((byte*) SPRITES_XPOS#1 + (byte) anim::j2#3) ← (byte~) anim::$0 + *((byte*) SPRITES_XPOS#0 + (byte) anim::j2#3) ← (byte~) anim::$0 (byte~) anim::$1 ← (byte[]) sintab_y#0 *idx (byte) anim::yidx#3 - *((byte*) SPRITES_YPOS#1 + (byte) anim::j2#3) ← (byte~) anim::$1 + *((byte*) SPRITES_YPOS#0 + (byte) anim::j2#3) ← (byte~) anim::$1 (byte) anim::xidx#1 ← (byte) anim::xidx#3 + (byte/signed byte/word/signed word) 10 (boolean~) anim::$4 ← (byte) anim::xidx#1 < (byte) sinlen_x#0 if((boolean~) anim::$4) goto anim::@2 to:anim::@6 anim::@2: scope:[anim] from anim::@1 anim::@6 - (byte*) BORDERCOL#18 ← phi( anim::@1/(byte*) BORDERCOL#22 anim::@6/(byte*) BORDERCOL#22 ) (byte) sin_idx_y#22 ← phi( anim::@1/(byte) sin_idx_y#25 anim::@6/(byte) sin_idx_y#25 ) (byte) sin_idx_x#18 ← phi( anim::@1/(byte) sin_idx_x#24 anim::@6/(byte) sin_idx_x#24 ) - (byte*) SPRITES_YPOS#7 ← phi( anim::@1/(byte*) SPRITES_YPOS#1 anim::@6/(byte*) SPRITES_YPOS#1 ) - (byte*) SPRITES_XPOS#7 ← phi( anim::@1/(byte*) SPRITES_XPOS#1 anim::@6/(byte*) SPRITES_XPOS#1 ) (byte) anim::xidx#6 ← phi( anim::@1/(byte) anim::xidx#1 anim::@6/(byte) anim::xidx#2 ) (byte) anim::j#3 ← phi( anim::@1/(byte) anim::j#5 anim::@6/(byte) anim::j#5 ) (byte) anim::j2#5 ← phi( anim::@1/(byte) anim::j2#3 anim::@6/(byte) anim::j2#3 ) @@ -7848,12 +6914,9 @@ anim::@6: scope:[anim] from anim::@1 (byte) anim::xidx#2 ← (byte) anim::xidx#1 - (byte) sinlen_x#0 to:anim::@2 anim::@3: scope:[anim] from anim::@2 anim::@7 - (byte*) BORDERCOL#10 ← phi( anim::@2/(byte*) BORDERCOL#18 anim::@7/(byte*) BORDERCOL#18 ) (byte) sin_idx_y#14 ← phi( anim::@2/(byte) sin_idx_y#22 anim::@7/(byte) sin_idx_y#22 ) (byte) sin_idx_x#10 ← phi( anim::@2/(byte) sin_idx_x#18 anim::@7/(byte) sin_idx_x#18 ) - (byte*) SPRITES_YPOS#4 ← phi( anim::@2/(byte*) SPRITES_YPOS#7 anim::@7/(byte*) SPRITES_YPOS#7 ) (byte) anim::yidx#6 ← phi( anim::@2/(byte) anim::yidx#1 anim::@7/(byte) anim::yidx#2 ) - (byte*) SPRITES_XPOS#4 ← phi( anim::@2/(byte*) SPRITES_XPOS#7 anim::@7/(byte*) SPRITES_XPOS#7 ) (byte) anim::xidx#5 ← phi( anim::@2/(byte) anim::xidx#6 anim::@7/(byte) anim::xidx#6 ) (byte) anim::j#2 ← phi( anim::@2/(byte) anim::j#3 anim::@7/(byte) anim::j#3 ) (byte) anim::j2#4 ← phi( anim::@2/(byte) anim::j2#5 anim::@7/(byte) anim::j2#5 ) @@ -7873,7 +6936,6 @@ anim::@8: scope:[anim] from anim::@3 to:anim::@9 anim::@4: scope:[anim] from anim::@8 anim::@9 (byte) sin_idx_x#20 ← phi( anim::@8/(byte) sin_idx_x#3 anim::@9/(byte) sin_idx_x#4 ) - (byte*) BORDERCOL#5 ← phi( anim::@8/(byte*) BORDERCOL#10 anim::@9/(byte*) BORDERCOL#10 ) (byte) sin_idx_y#10 ← phi( anim::@8/(byte) sin_idx_y#14 anim::@9/(byte) sin_idx_y#14 ) (byte) sin_idx_y#3 ← ++ (byte) sin_idx_y#10 (boolean~) anim::$14 ← (byte) sin_idx_y#3 < (byte) sinlen_y#0 @@ -7885,8 +6947,7 @@ anim::@9: scope:[anim] from anim::@8 anim::@5: scope:[anim] from anim::@10 anim::@4 (byte) sin_idx_y#11 ← phi( anim::@10/(byte) sin_idx_y#4 anim::@4/(byte) sin_idx_y#3 ) (byte) sin_idx_x#11 ← phi( anim::@10/(byte) sin_idx_x#20 anim::@4/(byte) sin_idx_x#20 ) - (byte*) BORDERCOL#2 ← phi( anim::@10/(byte*) BORDERCOL#5 anim::@4/(byte*) BORDERCOL#5 ) - *((byte*) BORDERCOL#2) ← -- *((byte*) BORDERCOL#2) + *((byte*) BORDERCOL#0) ← -- *((byte*) BORDERCOL#0) to:anim::@return anim::@10: scope:[anim] from anim::@4 (byte) sin_idx_y#4 ← (byte/signed byte/word/signed word) 0 @@ -7895,17 +6956,10 @@ anim::@return: scope:[anim] from anim::@5 return to:@return place_sprites: scope:[place_sprites] from init::@2 - (byte*) SPRITES_COLS#2 ← phi( init::@2/(byte*) SPRITES_COLS#3 ) - (byte*) SPRITES_YPOS#5 ← phi( init::@2/(byte*) SPRITES_YPOS#11 ) - (byte*) SPRITES_XPOS#5 ← phi( init::@2/(byte*) SPRITES_XPOS#11 ) - (byte*) SCREEN#3 ← phi( init::@2/(byte*) SCREEN#2 ) - (byte*) SPRITES_EXPAND_Y#1 ← phi( init::@2/(byte*) SPRITES_EXPAND_Y#2 ) - (byte*) SPRITES_EXPAND_X#1 ← phi( init::@2/(byte*) SPRITES_EXPAND_X#2 ) - (byte*) SPRITES_ENABLE#1 ← phi( init::@2/(byte*) SPRITES_ENABLE#2 ) - *((byte*) SPRITES_ENABLE#1) ← (byte/signed byte/word/signed word) 127 - *((byte*) SPRITES_EXPAND_X#1) ← (byte/signed byte/word/signed word) 127 - *((byte*) SPRITES_EXPAND_Y#1) ← (byte/signed byte/word/signed word) 127 - (byte*) place_sprites::sprites_ptr#0 ← (byte*) SCREEN#3 + (word/signed word) 1016 + *((byte*) SPRITES_ENABLE#0) ← (byte/signed byte/word/signed word) 127 + *((byte*) SPRITES_EXPAND_X#0) ← (byte/signed byte/word/signed word) 127 + *((byte*) SPRITES_EXPAND_Y#0) ← (byte/signed byte/word/signed word) 127 + (byte*) place_sprites::sprites_ptr#0 ← (byte*) SCREEN#0 + (word/signed word) 1016 (byte[]~) place_sprites::$1 ← (byte[]) sprites#0 / (byte/signed byte/word/signed word) 64 (byte) place_sprites::spr_id#0 ← ((byte)) (byte[]~) place_sprites::$1 (byte) place_sprites::spr_x#0 ← (byte/signed byte/word/signed word) 60 @@ -7914,20 +6968,17 @@ place_sprites: scope:[place_sprites] from init::@2 (byte) place_sprites::j#0 ← (byte/signed byte/word/signed word) 0 to:place_sprites::@1 place_sprites::@1: scope:[place_sprites] from place_sprites place_sprites::@1 - (byte*) SPRITES_COLS#1 ← phi( place_sprites/(byte*) SPRITES_COLS#2 place_sprites::@1/(byte*) SPRITES_COLS#1 ) (byte) place_sprites::col#2 ← phi( place_sprites/(byte) place_sprites::col#0 place_sprites::@1/(byte) place_sprites::col#1 ) - (byte*) SPRITES_YPOS#2 ← phi( place_sprites/(byte*) SPRITES_YPOS#5 place_sprites::@1/(byte*) SPRITES_YPOS#2 ) (byte) place_sprites::j2#3 ← phi( place_sprites/(byte) place_sprites::j2#0 place_sprites::@1/(byte) place_sprites::j2#2 ) - (byte*) SPRITES_XPOS#2 ← phi( place_sprites/(byte*) SPRITES_XPOS#5 place_sprites::@1/(byte*) SPRITES_XPOS#2 ) (byte) place_sprites::spr_x#2 ← phi( place_sprites/(byte) place_sprites::spr_x#0 place_sprites::@1/(byte) place_sprites::spr_x#1 ) (byte) place_sprites::j#2 ← phi( place_sprites/(byte) place_sprites::j#0 place_sprites::@1/(byte) place_sprites::j#1 ) (byte*) place_sprites::sprites_ptr#1 ← phi( place_sprites/(byte*) place_sprites::sprites_ptr#0 place_sprites::@1/(byte*) place_sprites::sprites_ptr#1 ) (byte) place_sprites::spr_id#2 ← phi( place_sprites/(byte) place_sprites::spr_id#0 place_sprites::@1/(byte) place_sprites::spr_id#1 ) *((byte*) place_sprites::sprites_ptr#1 + (byte) place_sprites::j#2) ← (byte) place_sprites::spr_id#2 (byte) place_sprites::spr_id#1 ← ++ (byte) place_sprites::spr_id#2 - *((byte*) SPRITES_XPOS#2 + (byte) place_sprites::j2#3) ← (byte) place_sprites::spr_x#2 - *((byte*) SPRITES_YPOS#2 + (byte) place_sprites::j2#3) ← (byte/signed byte/word/signed word) 80 - *((byte*) SPRITES_COLS#1 + (byte) place_sprites::j#2) ← (byte) place_sprites::col#2 + *((byte*) SPRITES_XPOS#0 + (byte) place_sprites::j2#3) ← (byte) place_sprites::spr_x#2 + *((byte*) SPRITES_YPOS#0 + (byte) place_sprites::j2#3) ← (byte/signed byte/word/signed word) 80 + *((byte*) SPRITES_COLS#0 + (byte) place_sprites::j#2) ← (byte) place_sprites::col#2 (byte) place_sprites::spr_x#1 ← (byte) place_sprites::spr_x#2 + (byte/signed byte/word/signed word) 32 (byte~) place_sprites::$4 ← (byte/signed byte/word/signed word) 7 ^ (byte/signed byte/word/signed word) 5 (byte) place_sprites::col#1 ← (byte) place_sprites::col#2 ^ (byte~) place_sprites::$4 @@ -7941,15 +6992,11 @@ place_sprites::@return: scope:[place_sprites] from place_sprites::@1 return to:@return gen_sprites: scope:[gen_sprites] from init::@3 - (byte*) PROCPORT#5 ← phi( init::@3/(byte*) PROCPORT#10 ) - (byte*) CHARGEN#3 ← phi( init::@3/(byte*) CHARGEN#5 ) (byte[]) gen_sprites::cml#0 ← (string) "camelot" (byte*) gen_sprites::spr#0 ← (byte[]) sprites#0 (byte) gen_sprites::i#0 ← (byte/signed byte/word/signed word) 0 to:gen_sprites::@1 gen_sprites::@1: scope:[gen_sprites] from gen_sprites gen_sprites::@3 - (byte*) PROCPORT#3 ← phi( gen_sprites/(byte*) PROCPORT#5 gen_sprites::@3/(byte*) PROCPORT#3 ) - (byte*) CHARGEN#2 ← phi( gen_sprites/(byte*) CHARGEN#3 gen_sprites::@3/(byte*) CHARGEN#2 ) (byte*) gen_sprites::spr#2 ← phi( gen_sprites/(byte*) gen_sprites::spr#0 gen_sprites::@3/(byte*) gen_sprites::spr#1 ) (byte) gen_sprites::i#2 ← phi( gen_sprites/(byte) gen_sprites::i#0 gen_sprites::@3/(byte) gen_sprites::i#1 ) (byte[]) gen_sprites::cml#1 ← phi( gen_sprites/(byte[]) gen_sprites::cml#0 gen_sprites::@3/(byte[]) gen_sprites::cml#1 ) @@ -7969,18 +7016,15 @@ gen_sprites::@return: scope:[gen_sprites] from gen_sprites::@3 to:@return gen_chargen_sprite: scope:[gen_chargen_sprite] from gen_sprites::@1 (byte*) gen_chargen_sprite::sprite#12 ← phi( gen_sprites::@1/(byte*) gen_chargen_sprite::sprite#0 ) - (byte*) PROCPORT#1 ← phi( gen_sprites::@1/(byte*) PROCPORT#3 ) - (byte*) CHARGEN#1 ← phi( gen_sprites::@1/(byte*) CHARGEN#2 ) (byte) gen_chargen_sprite::ch#1 ← phi( gen_sprites::@1/(byte) gen_chargen_sprite::ch#0 ) (word~) gen_chargen_sprite::$0 ← ((word)) (byte) gen_chargen_sprite::ch#1 (word~) gen_chargen_sprite::$1 ← (word~) gen_chargen_sprite::$0 << (byte/signed byte/word/signed word) 3 - (byte*) gen_chargen_sprite::chargen#0 ← (byte*) CHARGEN#1 + (word~) gen_chargen_sprite::$1 + (byte*) gen_chargen_sprite::chargen#0 ← (byte*) CHARGEN#0 + (word~) gen_chargen_sprite::$1 asm { sei } - *((byte*) PROCPORT#1) ← (byte/signed byte/word/signed word) 50 + *((byte*) PROCPORT#0) ← (byte/signed byte/word/signed word) 50 (byte) gen_chargen_sprite::y#0 ← (byte/signed byte/word/signed word) 0 to:gen_chargen_sprite::@1 gen_chargen_sprite::@1: scope:[gen_chargen_sprite] from gen_chargen_sprite gen_chargen_sprite::@9 - (byte*) PROCPORT#19 ← phi( gen_chargen_sprite/(byte*) PROCPORT#1 gen_chargen_sprite::@9/(byte*) PROCPORT#2 ) (byte*) gen_chargen_sprite::sprite#11 ← phi( gen_chargen_sprite/(byte*) gen_chargen_sprite::sprite#12 gen_chargen_sprite::@9/(byte*) gen_chargen_sprite::sprite#2 ) (byte) gen_chargen_sprite::y#2 ← phi( gen_chargen_sprite/(byte) gen_chargen_sprite::y#0 gen_chargen_sprite::@9/(byte) gen_chargen_sprite::y#1 ) (byte*) gen_chargen_sprite::chargen#1 ← phi( gen_chargen_sprite/(byte*) gen_chargen_sprite::chargen#0 gen_chargen_sprite::@9/(byte*) gen_chargen_sprite::chargen#2 ) @@ -7990,7 +7034,6 @@ gen_chargen_sprite::@1: scope:[gen_chargen_sprite] from gen_chargen_sprite gen_ (byte) gen_chargen_sprite::x#0 ← (byte/signed byte/word/signed word) 0 to:gen_chargen_sprite::@2 gen_chargen_sprite::@2: scope:[gen_chargen_sprite] from gen_chargen_sprite::@1 gen_chargen_sprite::@8 - (byte*) PROCPORT#16 ← phi( gen_chargen_sprite::@1/(byte*) PROCPORT#19 gen_chargen_sprite::@8/(byte*) PROCPORT#2 ) (byte*) gen_chargen_sprite::chargen#8 ← phi( gen_chargen_sprite::@1/(byte*) gen_chargen_sprite::chargen#1 gen_chargen_sprite::@8/(byte*) gen_chargen_sprite::chargen#2 ) (byte) gen_chargen_sprite::y#10 ← phi( gen_chargen_sprite::@1/(byte) gen_chargen_sprite::y#2 gen_chargen_sprite::@8/(byte) gen_chargen_sprite::y#3 ) (byte) gen_chargen_sprite::x#7 ← phi( gen_chargen_sprite::@1/(byte) gen_chargen_sprite::x#0 gen_chargen_sprite::@8/(byte) gen_chargen_sprite::x#1 ) @@ -8004,7 +7047,6 @@ gen_chargen_sprite::@2: scope:[gen_chargen_sprite] from gen_chargen_sprite::@1 if((boolean~) gen_chargen_sprite::$6) goto gen_chargen_sprite::@3 to:gen_chargen_sprite::@6 gen_chargen_sprite::@3: scope:[gen_chargen_sprite] from gen_chargen_sprite::@2 gen_chargen_sprite::@6 - (byte*) PROCPORT#14 ← phi( gen_chargen_sprite::@2/(byte*) PROCPORT#16 gen_chargen_sprite::@6/(byte*) PROCPORT#16 ) (byte*) gen_chargen_sprite::chargen#7 ← phi( gen_chargen_sprite::@2/(byte*) gen_chargen_sprite::chargen#8 gen_chargen_sprite::@6/(byte*) gen_chargen_sprite::chargen#8 ) (byte) gen_chargen_sprite::y#8 ← phi( gen_chargen_sprite::@2/(byte) gen_chargen_sprite::y#10 gen_chargen_sprite::@6/(byte) gen_chargen_sprite::y#10 ) (byte) gen_chargen_sprite::x#6 ← phi( gen_chargen_sprite::@2/(byte) gen_chargen_sprite::x#7 gen_chargen_sprite::@6/(byte) gen_chargen_sprite::x#7 ) @@ -8019,7 +7061,6 @@ gen_chargen_sprite::@6: scope:[gen_chargen_sprite] from gen_chargen_sprite::@2 (byte) gen_chargen_sprite::c#1 ← (byte/signed byte/word/signed word) 1 to:gen_chargen_sprite::@3 gen_chargen_sprite::@4: scope:[gen_chargen_sprite] from gen_chargen_sprite::@3 gen_chargen_sprite::@5 - (byte*) PROCPORT#11 ← phi( gen_chargen_sprite::@3/(byte*) PROCPORT#14 gen_chargen_sprite::@5/(byte*) PROCPORT#2 ) (byte*) gen_chargen_sprite::chargen#5 ← phi( gen_chargen_sprite::@3/(byte*) gen_chargen_sprite::chargen#7 gen_chargen_sprite::@5/(byte*) gen_chargen_sprite::chargen#2 ) (byte) gen_chargen_sprite::y#6 ← phi( gen_chargen_sprite::@3/(byte) gen_chargen_sprite::y#8 gen_chargen_sprite::@5/(byte) gen_chargen_sprite::y#3 ) (byte) gen_chargen_sprite::x#4 ← phi( gen_chargen_sprite::@3/(byte) gen_chargen_sprite::x#6 gen_chargen_sprite::@5/(byte) gen_chargen_sprite::x#2 ) @@ -8036,7 +7077,6 @@ gen_chargen_sprite::@4: scope:[gen_chargen_sprite] from gen_chargen_sprite::@3 if((boolean~) gen_chargen_sprite::$10) goto gen_chargen_sprite::@5 to:gen_chargen_sprite::@7 gen_chargen_sprite::@5: scope:[gen_chargen_sprite] from gen_chargen_sprite::@4 gen_chargen_sprite::@7 - (byte*) PROCPORT#2 ← phi( gen_chargen_sprite::@4/(byte*) PROCPORT#11 gen_chargen_sprite::@7/(byte*) PROCPORT#11 ) (byte*) gen_chargen_sprite::chargen#2 ← phi( gen_chargen_sprite::@4/(byte*) gen_chargen_sprite::chargen#5 gen_chargen_sprite::@7/(byte*) gen_chargen_sprite::chargen#5 ) (byte) gen_chargen_sprite::y#3 ← phi( gen_chargen_sprite::@4/(byte) gen_chargen_sprite::y#6 gen_chargen_sprite::@7/(byte) gen_chargen_sprite::y#6 ) (byte*) gen_chargen_sprite::sprite#4 ← phi( gen_chargen_sprite::@4/(byte*) gen_chargen_sprite::sprite#3 gen_chargen_sprite::@7/(byte*) gen_chargen_sprite::sprite#1 ) @@ -8071,14 +7111,13 @@ gen_chargen_sprite::@9: scope:[gen_chargen_sprite] from gen_chargen_sprite::@8 if((boolean~) gen_chargen_sprite::$15) goto gen_chargen_sprite::@1 to:gen_chargen_sprite::@10 gen_chargen_sprite::@10: scope:[gen_chargen_sprite] from gen_chargen_sprite::@9 - *((byte*) PROCPORT#2) ← (byte/signed byte/word/signed word) 55 + *((byte*) PROCPORT#0) ← (byte/signed byte/word/signed word) 55 asm { cli } to:gen_chargen_sprite::@return gen_chargen_sprite::@return: scope:[gen_chargen_sprite] from gen_chargen_sprite::@10 return to:@return gen_sintab: scope:[gen_sintab] from init::@4 init::@5 - (byte*) BORDERCOL#30 ← phi( init::@4/(byte*) BORDERCOL#42 init::@5/(byte*) BORDERCOL#42 ) (byte*) gen_sintab::sintab#12 ← phi( init::@4/(byte*) gen_sintab::sintab#0 init::@5/(byte*) gen_sintab::sintab#1 ) (byte) gen_sintab::length#10 ← phi( init::@4/(byte) gen_sintab::length#0 init::@5/(byte) gen_sintab::length#1 ) (byte) gen_sintab::min#2 ← phi( init::@4/(byte) gen_sintab::min#0 init::@5/(byte) gen_sintab::min#1 ) @@ -8135,7 +7174,6 @@ gen_sintab::@13: scope:[gen_sintab] from gen_sintab::@12 (byte) gen_sintab::i#0 ← (byte/signed byte/word/signed word) 0 to:gen_sintab::@1 gen_sintab::@1: scope:[gen_sintab] from gen_sintab::@13 gen_sintab::@22 - (byte*) BORDERCOL#11 ← phi( gen_sintab::@13/(byte*) BORDERCOL#30 gen_sintab::@22/(byte*) BORDERCOL#11 ) (byte*) gen_sintab::sintab#10 ← phi( gen_sintab::@13/(byte*) gen_sintab::sintab#12 gen_sintab::@22/(byte*) gen_sintab::sintab#10 ) (byte[]) gen_sintab::f_min#10 ← phi( gen_sintab::@13/(byte[]) gen_sintab::f_min#0 gen_sintab::@22/(byte[]) gen_sintab::f_min#10 ) (byte[]) gen_sintab::f_amp#11 ← phi( gen_sintab::@13/(byte[]) gen_sintab::f_amp#0 gen_sintab::@22/(byte[]) gen_sintab::f_amp#11 ) @@ -8183,7 +7221,7 @@ gen_sintab::@22: scope:[gen_sintab] from gen_sintab::@21 (word~) gen_sintab::$23 ← (word) getFAC::return#2 (byte~) gen_sintab::$24 ← ((byte)) (word~) gen_sintab::$23 *((byte*) gen_sintab::sintab#10 + (byte) gen_sintab::i#10) ← (byte~) gen_sintab::$24 - *((byte*) BORDERCOL#11) ← ++ *((byte*) BORDERCOL#11) + *((byte*) BORDERCOL#0) ← ++ *((byte*) BORDERCOL#0) (byte) gen_sintab::i#1 ← ++ (byte) gen_sintab::i#10 (boolean~) gen_sintab::$25 ← (byte) gen_sintab::i#1 < (byte) gen_sintab::length#11 if((boolean~) gen_sintab::$25) goto gen_sintab::@1 @@ -8211,68 +7249,28 @@ Not aliassing across scopes: divMEMbyFAC::mem#2 divMEMbyFAC::mem#1 Not aliassing across scopes: prepareMEM::mem#3 divMEMbyFAC::mem#2 Not aliassing across scopes: mulFACbyMEM::mem#2 mulFACbyMEM::mem#0 Not aliassing across scopes: prepareMEM::mem#4 mulFACbyMEM::mem#2 -Not aliassing across scopes: SCREEN#4 SCREEN#0 -Not aliassing across scopes: RASTER#3 RASTER#0 Not aliassing across scopes: sin_idx_x#23 sin_idx_x#16 Not aliassing across scopes: sin_idx_y#21 sin_idx_y#17 -Not aliassing across scopes: BORDERCOL#13 BORDERCOL#0 -Not aliassing across scopes: SPRITES_ENABLE#5 SPRITES_ENABLE#0 -Not aliassing across scopes: SPRITES_EXPAND_X#5 SPRITES_EXPAND_X#0 -Not aliassing across scopes: SPRITES_EXPAND_Y#5 SPRITES_EXPAND_Y#0 -Not aliassing across scopes: SPRITES_XPOS#14 SPRITES_XPOS#0 -Not aliassing across scopes: SPRITES_YPOS#14 SPRITES_YPOS#0 -Not aliassing across scopes: SPRITES_COLS#6 SPRITES_COLS#0 -Not aliassing across scopes: CHARGEN#9 CHARGEN#0 -Not aliassing across scopes: PROCPORT#18 PROCPORT#0 -Not aliassing identity: RASTER#1 RASTER#1 -Not aliassing identity: BORDERCOL#12 BORDERCOL#12 -Not aliassing identity: SPRITES_XPOS#10 SPRITES_XPOS#10 -Not aliassing identity: SPRITES_YPOS#10 SPRITES_YPOS#10 Not aliassing across scopes: sin_idx_x#0 sin_idx_x#11 Not aliassing across scopes: sin_idx_y#0 sin_idx_y#11 -Not aliassing across scopes: SCREEN#1 SCREEN#4 -Not aliassing across scopes: SPRITES_ENABLE#4 SPRITES_ENABLE#5 -Not aliassing across scopes: SPRITES_EXPAND_X#4 SPRITES_EXPAND_X#5 -Not aliassing across scopes: SPRITES_EXPAND_Y#4 SPRITES_EXPAND_Y#5 -Not aliassing across scopes: SPRITES_XPOS#15 SPRITES_XPOS#14 -Not aliassing across scopes: SPRITES_YPOS#15 SPRITES_YPOS#14 -Not aliassing across scopes: SPRITES_COLS#5 SPRITES_COLS#6 -Not aliassing across scopes: CHARGEN#8 CHARGEN#9 -Not aliassing across scopes: PROCPORT#15 PROCPORT#18 -Not aliassing across scopes: BORDERCOL#47 BORDERCOL#13 -Not aliassing across scopes: init::sc#0 SCREEN#1 +Not aliassing across scopes: init::sc#0 SCREEN#0 Not aliassing across scopes: gen_sintab::sintab#0 sintab_x#0 Not aliassing across scopes: gen_sintab::length#0 sinlen_x#0 Not aliassing across scopes: gen_sintab::sintab#1 sintab_y#0 Not aliassing across scopes: gen_sintab::length#1 sinlen_y#0 -Not aliassing across scopes: BORDERCOL#1 BORDERCOL#12 Not aliassing across scopes: sin_idx_x#9 sin_idx_x#13 Not aliassing across scopes: sin_idx_y#9 sin_idx_y#13 -Not aliassing across scopes: SPRITES_XPOS#3 SPRITES_XPOS#10 -Not aliassing across scopes: SPRITES_YPOS#3 SPRITES_YPOS#10 Not aliassing across scopes: anim::xidx#0 sin_idx_x#9 Not aliassing across scopes: anim::yidx#0 sin_idx_y#9 -Not aliassing across scopes: SPRITES_ENABLE#1 SPRITES_ENABLE#2 -Not aliassing across scopes: SPRITES_EXPAND_X#1 SPRITES_EXPAND_X#2 -Not aliassing across scopes: SPRITES_EXPAND_Y#1 SPRITES_EXPAND_Y#2 -Not aliassing across scopes: SCREEN#3 SCREEN#2 -Not aliassing across scopes: SPRITES_XPOS#5 SPRITES_XPOS#11 -Not aliassing across scopes: SPRITES_YPOS#5 SPRITES_YPOS#11 -Not aliassing across scopes: SPRITES_COLS#2 SPRITES_COLS#3 -Not aliassing across scopes: CHARGEN#3 CHARGEN#5 -Not aliassing across scopes: PROCPORT#5 PROCPORT#10 Not aliassing across scopes: gen_sprites::spr#0 sprites#0 Not aliassing across scopes: gen_chargen_sprite::ch#0 gen_sprites::$0 Not aliassing across scopes: gen_chargen_sprite::sprite#0 gen_sprites::spr#2 Not aliassing across scopes: gen_chargen_sprite::ch#1 gen_chargen_sprite::ch#0 -Not aliassing across scopes: CHARGEN#1 CHARGEN#2 -Not aliassing across scopes: PROCPORT#1 PROCPORT#3 Not aliassing across scopes: gen_chargen_sprite::sprite#12 gen_chargen_sprite::sprite#0 Not aliassing across scopes: gen_sintab::max#2 gen_sintab::max#0 Not aliassing across scopes: gen_sintab::min#2 gen_sintab::min#0 Not aliassing across scopes: gen_sintab::length#10 gen_sintab::length#0 Not aliassing across scopes: gen_sintab::sintab#12 gen_sintab::sintab#0 -Not aliassing across scopes: BORDERCOL#30 BORDERCOL#42 Not aliassing across scopes: setFAC::w#0 gen_sintab::$0 Not aliassing across scopes: setFAC::w#1 gen_sintab::$3 Not aliassing across scopes: setMEMtoFAC::mem#0 gen_sintab::f_min#0 @@ -8295,11 +7293,8 @@ Not aliassing across scopes: sin_idx_y#12 sin_idx_y#0 Alias (byte) anim::yidx#3 = (byte) anim::yidx#4 Alias (byte) anim::j2#3 = (byte) anim::j2#5 (byte) anim::j2#4 Alias (byte) anim::j#2 = (byte) anim::j#3 (byte) anim::j#5 -Alias (byte*) SPRITES_XPOS#1 = (byte*) SPRITES_XPOS#7 (byte*) SPRITES_XPOS#4 -Alias (byte*) SPRITES_YPOS#1 = (byte*) SPRITES_YPOS#7 (byte*) SPRITES_YPOS#4 Alias (byte) sin_idx_x#10 = (byte) sin_idx_x#18 (byte) sin_idx_x#24 Alias (byte) sin_idx_y#10 = (byte) sin_idx_y#22 (byte) sin_idx_y#25 (byte) sin_idx_y#14 -Alias (byte*) BORDERCOL#10 = (byte*) BORDERCOL#18 (byte*) BORDERCOL#22 (byte*) BORDERCOL#5 (byte*) BORDERCOL#2 Alias (byte) anim::xidx#5 = (byte) anim::xidx#6 Alias (byte) sin_idx_x#11 = (byte) sin_idx_x#20 Alias (byte) gen_chargen_sprite::s_gen#5 = (byte) gen_chargen_sprite::s_gen#7 @@ -8309,14 +7304,12 @@ Alias (byte) gen_chargen_sprite::bits#2 = (byte) gen_chargen_sprite::bits#7 Alias (byte) gen_chargen_sprite::x#6 = (byte) gen_chargen_sprite::x#7 Alias (byte) gen_chargen_sprite::y#10 = (byte) gen_chargen_sprite::y#8 Alias (byte*) gen_chargen_sprite::chargen#7 = (byte*) gen_chargen_sprite::chargen#8 -Alias (byte*) PROCPORT#14 = (byte*) PROCPORT#16 Alias (byte) gen_chargen_sprite::b#2 = (byte) gen_chargen_sprite::b#3 Alias (byte) gen_chargen_sprite::c#2 = (byte) gen_chargen_sprite::c#4 Alias (byte) gen_chargen_sprite::bits#3 = (byte) gen_chargen_sprite::bits#5 Alias (byte) gen_chargen_sprite::x#2 = (byte) gen_chargen_sprite::x#4 Alias (byte) gen_chargen_sprite::y#3 = (byte) gen_chargen_sprite::y#6 Alias (byte*) gen_chargen_sprite::chargen#2 = (byte*) gen_chargen_sprite::chargen#5 -Alias (byte*) PROCPORT#11 = (byte*) PROCPORT#2 Succesful SSA optimization Pass2AliasElimination CONTROL FLOW GRAPH @begin: scope:[] from @@ -8435,19 +7428,8 @@ sinFAC::@return: scope:[sinFAC] from sinFAC (byte[]) sprites#0 ← ((byte*)) (word/signed word) 8192 to:@34 main: scope:[main] from @39 - (byte*) PROCPORT#18 ← phi( @39/(byte*) PROCPORT#0 ) - (byte*) CHARGEN#9 ← phi( @39/(byte*) CHARGEN#0 ) - (byte*) SPRITES_COLS#6 ← phi( @39/(byte*) SPRITES_COLS#0 ) - (byte*) SPRITES_YPOS#14 ← phi( @39/(byte*) SPRITES_YPOS#0 ) - (byte*) SPRITES_XPOS#14 ← phi( @39/(byte*) SPRITES_XPOS#0 ) - (byte*) SPRITES_EXPAND_Y#5 ← phi( @39/(byte*) SPRITES_EXPAND_Y#0 ) - (byte*) SPRITES_EXPAND_X#5 ← phi( @39/(byte*) SPRITES_EXPAND_X#0 ) - (byte*) SPRITES_ENABLE#5 ← phi( @39/(byte*) SPRITES_ENABLE#0 ) - (byte*) BORDERCOL#13 ← phi( @39/(byte*) BORDERCOL#0 ) (byte) sin_idx_y#21 ← phi( @39/(byte) sin_idx_y#17 ) (byte) sin_idx_x#23 ← phi( @39/(byte) sin_idx_x#16 ) - (byte*) RASTER#3 ← phi( @39/(byte*) RASTER#0 ) - (byte*) SCREEN#4 ← phi( @39/(byte*) SCREEN#0 ) call init param-assignment to:main::@5 main::@5: scope:[main] from main @@ -8455,13 +7437,9 @@ main::@5: scope:[main] from main main::@1: scope:[main] from main::@6 to:main::@2 main::@2: scope:[main] from main::@1 main::@2 main::@5 - (byte*) SPRITES_YPOS#10 ← phi( main::@1/(byte*) SPRITES_YPOS#10 main::@2/(byte*) SPRITES_YPOS#10 main::@5/(byte*) SPRITES_YPOS#14 ) - (byte*) SPRITES_XPOS#10 ← phi( main::@1/(byte*) SPRITES_XPOS#10 main::@2/(byte*) SPRITES_XPOS#10 main::@5/(byte*) SPRITES_XPOS#14 ) - (byte*) BORDERCOL#12 ← phi( main::@1/(byte*) BORDERCOL#12 main::@2/(byte*) BORDERCOL#12 main::@5/(byte*) BORDERCOL#13 ) (byte) sin_idx_y#13 ← phi( main::@1/(byte) sin_idx_y#0 main::@2/(byte) sin_idx_y#13 main::@5/(byte) sin_idx_y#21 ) (byte) sin_idx_x#13 ← phi( main::@1/(byte) sin_idx_x#0 main::@2/(byte) sin_idx_x#13 main::@5/(byte) sin_idx_x#23 ) - (byte*) RASTER#1 ← phi( main::@1/(byte*) RASTER#1 main::@2/(byte*) RASTER#1 main::@5/(byte*) RASTER#3 ) - (boolean~) main::$1 ← *((byte*) RASTER#1) != (byte/word/signed word) 255 + (boolean~) main::$1 ← *((byte*) RASTER#0) != (byte/word/signed word) 255 if((boolean~) main::$1) goto main::@2 to:main::@3 main::@3: scope:[main] from main::@2 @@ -8476,33 +7454,13 @@ main::@return: scope:[main] from main::@6 return to:@return init: scope:[init] from main - (byte*) BORDERCOL#47 ← phi( main/(byte*) BORDERCOL#13 ) - (byte*) PROCPORT#15 ← phi( main/(byte*) PROCPORT#18 ) - (byte*) CHARGEN#8 ← phi( main/(byte*) CHARGEN#9 ) - (byte*) SPRITES_COLS#5 ← phi( main/(byte*) SPRITES_COLS#6 ) - (byte*) SPRITES_YPOS#15 ← phi( main/(byte*) SPRITES_YPOS#14 ) - (byte*) SPRITES_XPOS#15 ← phi( main/(byte*) SPRITES_XPOS#14 ) - (byte*) SPRITES_EXPAND_Y#4 ← phi( main/(byte*) SPRITES_EXPAND_Y#5 ) - (byte*) SPRITES_EXPAND_X#4 ← phi( main/(byte*) SPRITES_EXPAND_X#5 ) - (byte*) SPRITES_ENABLE#4 ← phi( main/(byte*) SPRITES_ENABLE#5 ) - (byte*) SCREEN#1 ← phi( main/(byte*) SCREEN#4 ) - (byte*) init::sc#0 ← (byte*) SCREEN#1 + (byte*) init::sc#0 ← (byte*) SCREEN#0 to:init::@1 init::@1: scope:[init] from init init::@1 - (byte*) BORDERCOL#42 ← phi( init/(byte*) BORDERCOL#47 init::@1/(byte*) BORDERCOL#42 ) - (byte*) PROCPORT#10 ← phi( init/(byte*) PROCPORT#15 init::@1/(byte*) PROCPORT#10 ) - (byte*) CHARGEN#5 ← phi( init/(byte*) CHARGEN#8 init::@1/(byte*) CHARGEN#5 ) - (byte*) SPRITES_COLS#3 ← phi( init/(byte*) SPRITES_COLS#5 init::@1/(byte*) SPRITES_COLS#3 ) - (byte*) SPRITES_YPOS#11 ← phi( init/(byte*) SPRITES_YPOS#15 init::@1/(byte*) SPRITES_YPOS#11 ) - (byte*) SPRITES_XPOS#11 ← phi( init/(byte*) SPRITES_XPOS#15 init::@1/(byte*) SPRITES_XPOS#11 ) - (byte*) SPRITES_EXPAND_Y#2 ← phi( init/(byte*) SPRITES_EXPAND_Y#4 init::@1/(byte*) SPRITES_EXPAND_Y#2 ) - (byte*) SPRITES_EXPAND_X#2 ← phi( init/(byte*) SPRITES_EXPAND_X#4 init::@1/(byte*) SPRITES_EXPAND_X#2 ) - (byte*) SPRITES_ENABLE#2 ← phi( init/(byte*) SPRITES_ENABLE#4 init::@1/(byte*) SPRITES_ENABLE#2 ) - (byte*) SCREEN#2 ← phi( init/(byte*) SCREEN#1 init::@1/(byte*) SCREEN#2 ) (byte*) init::sc#2 ← phi( init/(byte*) init::sc#0 init::@1/(byte*) init::sc#1 ) *((byte*) init::sc#2) ← (byte) ' ' (byte*) init::sc#1 ← ++ (byte*) init::sc#2 - (byte*~) init::$0 ← (byte*) SCREEN#2 + (word/signed word) 1000 + (byte*~) init::$0 ← (byte*) SCREEN#0 + (word/signed word) 1000 (boolean~) init::$1 ← (byte*) init::sc#1 < (byte*~) init::$0 if((boolean~) init::$1) goto init::@1 to:init::@2 @@ -8534,31 +7492,25 @@ init::@return: scope:[init] from init::@5 (byte) sin_idx_y#17 ← (byte/signed byte/word/signed word) 0 to:@39 anim: scope:[anim] from main::@3 - (byte*) SPRITES_YPOS#3 ← phi( main::@3/(byte*) SPRITES_YPOS#10 ) - (byte*) SPRITES_XPOS#3 ← phi( main::@3/(byte*) SPRITES_XPOS#10 ) (byte) sin_idx_y#9 ← phi( main::@3/(byte) sin_idx_y#13 ) (byte) sin_idx_x#9 ← phi( main::@3/(byte) sin_idx_x#13 ) - (byte*) BORDERCOL#1 ← phi( main::@3/(byte*) BORDERCOL#12 ) - *((byte*) BORDERCOL#1) ← ++ *((byte*) BORDERCOL#1) + *((byte*) BORDERCOL#0) ← ++ *((byte*) BORDERCOL#0) (byte) anim::xidx#0 ← (byte) sin_idx_x#9 (byte) anim::yidx#0 ← (byte) sin_idx_y#9 (byte) anim::j2#0 ← (byte/signed byte/word/signed word) 12 (byte) anim::j#0 ← (byte/signed byte/word/signed word) 0 to:anim::@1 anim::@1: scope:[anim] from anim anim::@3 - (byte*) BORDERCOL#10 ← phi( anim/(byte*) BORDERCOL#1 anim::@3/(byte*) BORDERCOL#10 ) (byte) sin_idx_y#10 ← phi( anim/(byte) sin_idx_y#9 anim::@3/(byte) sin_idx_y#10 ) (byte) sin_idx_x#10 ← phi( anim/(byte) sin_idx_x#9 anim::@3/(byte) sin_idx_x#10 ) (byte) anim::j#2 ← phi( anim/(byte) anim::j#0 anim::@3/(byte) anim::j#1 ) - (byte*) SPRITES_YPOS#1 ← phi( anim/(byte*) SPRITES_YPOS#3 anim::@3/(byte*) SPRITES_YPOS#1 ) (byte) anim::yidx#3 ← phi( anim/(byte) anim::yidx#0 anim::@3/(byte) anim::yidx#6 ) (byte) anim::j2#3 ← phi( anim/(byte) anim::j2#0 anim::@3/(byte) anim::j2#2 ) - (byte*) SPRITES_XPOS#1 ← phi( anim/(byte*) SPRITES_XPOS#3 anim::@3/(byte*) SPRITES_XPOS#1 ) (byte) anim::xidx#3 ← phi( anim/(byte) anim::xidx#0 anim::@3/(byte) anim::xidx#5 ) (byte~) anim::$0 ← (byte[]) sintab_x#0 *idx (byte) anim::xidx#3 - *((byte*) SPRITES_XPOS#1 + (byte) anim::j2#3) ← (byte~) anim::$0 + *((byte*) SPRITES_XPOS#0 + (byte) anim::j2#3) ← (byte~) anim::$0 (byte~) anim::$1 ← (byte[]) sintab_y#0 *idx (byte) anim::yidx#3 - *((byte*) SPRITES_YPOS#1 + (byte) anim::j2#3) ← (byte~) anim::$1 + *((byte*) SPRITES_YPOS#0 + (byte) anim::j2#3) ← (byte~) anim::$1 (byte) anim::xidx#1 ← (byte) anim::xidx#3 + (byte/signed byte/word/signed word) 10 (boolean~) anim::$4 ← (byte) anim::xidx#1 < (byte) sinlen_x#0 if((boolean~) anim::$4) goto anim::@2 @@ -8599,7 +7551,7 @@ anim::@9: scope:[anim] from anim::@8 to:anim::@4 anim::@5: scope:[anim] from anim::@10 anim::@4 (byte) sin_idx_y#11 ← phi( anim::@10/(byte) sin_idx_y#4 anim::@4/(byte) sin_idx_y#3 ) - *((byte*) BORDERCOL#10) ← -- *((byte*) BORDERCOL#10) + *((byte*) BORDERCOL#0) ← -- *((byte*) BORDERCOL#0) to:anim::@return anim::@10: scope:[anim] from anim::@4 (byte) sin_idx_y#4 ← (byte/signed byte/word/signed word) 0 @@ -8608,17 +7560,10 @@ anim::@return: scope:[anim] from anim::@5 return to:@return place_sprites: scope:[place_sprites] from init::@2 - (byte*) SPRITES_COLS#2 ← phi( init::@2/(byte*) SPRITES_COLS#3 ) - (byte*) SPRITES_YPOS#5 ← phi( init::@2/(byte*) SPRITES_YPOS#11 ) - (byte*) SPRITES_XPOS#5 ← phi( init::@2/(byte*) SPRITES_XPOS#11 ) - (byte*) SCREEN#3 ← phi( init::@2/(byte*) SCREEN#2 ) - (byte*) SPRITES_EXPAND_Y#1 ← phi( init::@2/(byte*) SPRITES_EXPAND_Y#2 ) - (byte*) SPRITES_EXPAND_X#1 ← phi( init::@2/(byte*) SPRITES_EXPAND_X#2 ) - (byte*) SPRITES_ENABLE#1 ← phi( init::@2/(byte*) SPRITES_ENABLE#2 ) - *((byte*) SPRITES_ENABLE#1) ← (byte/signed byte/word/signed word) 127 - *((byte*) SPRITES_EXPAND_X#1) ← (byte/signed byte/word/signed word) 127 - *((byte*) SPRITES_EXPAND_Y#1) ← (byte/signed byte/word/signed word) 127 - (byte*) place_sprites::sprites_ptr#0 ← (byte*) SCREEN#3 + (word/signed word) 1016 + *((byte*) SPRITES_ENABLE#0) ← (byte/signed byte/word/signed word) 127 + *((byte*) SPRITES_EXPAND_X#0) ← (byte/signed byte/word/signed word) 127 + *((byte*) SPRITES_EXPAND_Y#0) ← (byte/signed byte/word/signed word) 127 + (byte*) place_sprites::sprites_ptr#0 ← (byte*) SCREEN#0 + (word/signed word) 1016 (byte[]~) place_sprites::$1 ← (byte[]) sprites#0 / (byte/signed byte/word/signed word) 64 (byte) place_sprites::spr_id#0 ← ((byte)) (byte[]~) place_sprites::$1 (byte) place_sprites::spr_x#0 ← (byte/signed byte/word/signed word) 60 @@ -8627,20 +7572,17 @@ place_sprites: scope:[place_sprites] from init::@2 (byte) place_sprites::j#0 ← (byte/signed byte/word/signed word) 0 to:place_sprites::@1 place_sprites::@1: scope:[place_sprites] from place_sprites place_sprites::@1 - (byte*) SPRITES_COLS#1 ← phi( place_sprites/(byte*) SPRITES_COLS#2 place_sprites::@1/(byte*) SPRITES_COLS#1 ) (byte) place_sprites::col#2 ← phi( place_sprites/(byte) place_sprites::col#0 place_sprites::@1/(byte) place_sprites::col#1 ) - (byte*) SPRITES_YPOS#2 ← phi( place_sprites/(byte*) SPRITES_YPOS#5 place_sprites::@1/(byte*) SPRITES_YPOS#2 ) (byte) place_sprites::j2#3 ← phi( place_sprites/(byte) place_sprites::j2#0 place_sprites::@1/(byte) place_sprites::j2#2 ) - (byte*) SPRITES_XPOS#2 ← phi( place_sprites/(byte*) SPRITES_XPOS#5 place_sprites::@1/(byte*) SPRITES_XPOS#2 ) (byte) place_sprites::spr_x#2 ← phi( place_sprites/(byte) place_sprites::spr_x#0 place_sprites::@1/(byte) place_sprites::spr_x#1 ) (byte) place_sprites::j#2 ← phi( place_sprites/(byte) place_sprites::j#0 place_sprites::@1/(byte) place_sprites::j#1 ) (byte*) place_sprites::sprites_ptr#1 ← phi( place_sprites/(byte*) place_sprites::sprites_ptr#0 place_sprites::@1/(byte*) place_sprites::sprites_ptr#1 ) (byte) place_sprites::spr_id#2 ← phi( place_sprites/(byte) place_sprites::spr_id#0 place_sprites::@1/(byte) place_sprites::spr_id#1 ) *((byte*) place_sprites::sprites_ptr#1 + (byte) place_sprites::j#2) ← (byte) place_sprites::spr_id#2 (byte) place_sprites::spr_id#1 ← ++ (byte) place_sprites::spr_id#2 - *((byte*) SPRITES_XPOS#2 + (byte) place_sprites::j2#3) ← (byte) place_sprites::spr_x#2 - *((byte*) SPRITES_YPOS#2 + (byte) place_sprites::j2#3) ← (byte/signed byte/word/signed word) 80 - *((byte*) SPRITES_COLS#1 + (byte) place_sprites::j#2) ← (byte) place_sprites::col#2 + *((byte*) SPRITES_XPOS#0 + (byte) place_sprites::j2#3) ← (byte) place_sprites::spr_x#2 + *((byte*) SPRITES_YPOS#0 + (byte) place_sprites::j2#3) ← (byte/signed byte/word/signed word) 80 + *((byte*) SPRITES_COLS#0 + (byte) place_sprites::j#2) ← (byte) place_sprites::col#2 (byte) place_sprites::spr_x#1 ← (byte) place_sprites::spr_x#2 + (byte/signed byte/word/signed word) 32 (byte~) place_sprites::$4 ← (byte/signed byte/word/signed word) 7 ^ (byte/signed byte/word/signed word) 5 (byte) place_sprites::col#1 ← (byte) place_sprites::col#2 ^ (byte~) place_sprites::$4 @@ -8654,15 +7596,11 @@ place_sprites::@return: scope:[place_sprites] from place_sprites::@1 return to:@return gen_sprites: scope:[gen_sprites] from init::@3 - (byte*) PROCPORT#5 ← phi( init::@3/(byte*) PROCPORT#10 ) - (byte*) CHARGEN#3 ← phi( init::@3/(byte*) CHARGEN#5 ) (byte[]) gen_sprites::cml#0 ← (string) "camelot" (byte*) gen_sprites::spr#0 ← (byte[]) sprites#0 (byte) gen_sprites::i#0 ← (byte/signed byte/word/signed word) 0 to:gen_sprites::@1 gen_sprites::@1: scope:[gen_sprites] from gen_sprites gen_sprites::@3 - (byte*) PROCPORT#3 ← phi( gen_sprites/(byte*) PROCPORT#5 gen_sprites::@3/(byte*) PROCPORT#3 ) - (byte*) CHARGEN#2 ← phi( gen_sprites/(byte*) CHARGEN#3 gen_sprites::@3/(byte*) CHARGEN#2 ) (byte*) gen_sprites::spr#2 ← phi( gen_sprites/(byte*) gen_sprites::spr#0 gen_sprites::@3/(byte*) gen_sprites::spr#1 ) (byte) gen_sprites::i#2 ← phi( gen_sprites/(byte) gen_sprites::i#0 gen_sprites::@3/(byte) gen_sprites::i#1 ) (byte[]) gen_sprites::cml#1 ← phi( gen_sprites/(byte[]) gen_sprites::cml#0 gen_sprites::@3/(byte[]) gen_sprites::cml#1 ) @@ -8682,18 +7620,15 @@ gen_sprites::@return: scope:[gen_sprites] from gen_sprites::@3 to:@return gen_chargen_sprite: scope:[gen_chargen_sprite] from gen_sprites::@1 (byte*) gen_chargen_sprite::sprite#12 ← phi( gen_sprites::@1/(byte*) gen_chargen_sprite::sprite#0 ) - (byte*) PROCPORT#1 ← phi( gen_sprites::@1/(byte*) PROCPORT#3 ) - (byte*) CHARGEN#1 ← phi( gen_sprites::@1/(byte*) CHARGEN#2 ) (byte) gen_chargen_sprite::ch#1 ← phi( gen_sprites::@1/(byte) gen_chargen_sprite::ch#0 ) (word~) gen_chargen_sprite::$0 ← ((word)) (byte) gen_chargen_sprite::ch#1 (word~) gen_chargen_sprite::$1 ← (word~) gen_chargen_sprite::$0 << (byte/signed byte/word/signed word) 3 - (byte*) gen_chargen_sprite::chargen#0 ← (byte*) CHARGEN#1 + (word~) gen_chargen_sprite::$1 + (byte*) gen_chargen_sprite::chargen#0 ← (byte*) CHARGEN#0 + (word~) gen_chargen_sprite::$1 asm { sei } - *((byte*) PROCPORT#1) ← (byte/signed byte/word/signed word) 50 + *((byte*) PROCPORT#0) ← (byte/signed byte/word/signed word) 50 (byte) gen_chargen_sprite::y#0 ← (byte/signed byte/word/signed word) 0 to:gen_chargen_sprite::@1 gen_chargen_sprite::@1: scope:[gen_chargen_sprite] from gen_chargen_sprite gen_chargen_sprite::@9 - (byte*) PROCPORT#19 ← phi( gen_chargen_sprite/(byte*) PROCPORT#1 gen_chargen_sprite::@9/(byte*) PROCPORT#11 ) (byte*) gen_chargen_sprite::sprite#11 ← phi( gen_chargen_sprite/(byte*) gen_chargen_sprite::sprite#12 gen_chargen_sprite::@9/(byte*) gen_chargen_sprite::sprite#2 ) (byte) gen_chargen_sprite::y#2 ← phi( gen_chargen_sprite/(byte) gen_chargen_sprite::y#0 gen_chargen_sprite::@9/(byte) gen_chargen_sprite::y#1 ) (byte*) gen_chargen_sprite::chargen#1 ← phi( gen_chargen_sprite/(byte*) gen_chargen_sprite::chargen#0 gen_chargen_sprite::@9/(byte*) gen_chargen_sprite::chargen#2 ) @@ -8703,7 +7638,6 @@ gen_chargen_sprite::@1: scope:[gen_chargen_sprite] from gen_chargen_sprite gen_ (byte) gen_chargen_sprite::x#0 ← (byte/signed byte/word/signed word) 0 to:gen_chargen_sprite::@2 gen_chargen_sprite::@2: scope:[gen_chargen_sprite] from gen_chargen_sprite::@1 gen_chargen_sprite::@8 - (byte*) PROCPORT#14 ← phi( gen_chargen_sprite::@1/(byte*) PROCPORT#19 gen_chargen_sprite::@8/(byte*) PROCPORT#11 ) (byte*) gen_chargen_sprite::chargen#7 ← phi( gen_chargen_sprite::@1/(byte*) gen_chargen_sprite::chargen#1 gen_chargen_sprite::@8/(byte*) gen_chargen_sprite::chargen#2 ) (byte) gen_chargen_sprite::y#10 ← phi( gen_chargen_sprite::@1/(byte) gen_chargen_sprite::y#2 gen_chargen_sprite::@8/(byte) gen_chargen_sprite::y#3 ) (byte) gen_chargen_sprite::x#6 ← phi( gen_chargen_sprite::@1/(byte) gen_chargen_sprite::x#0 gen_chargen_sprite::@8/(byte) gen_chargen_sprite::x#1 ) @@ -8724,7 +7658,6 @@ gen_chargen_sprite::@6: scope:[gen_chargen_sprite] from gen_chargen_sprite::@2 (byte) gen_chargen_sprite::c#1 ← (byte/signed byte/word/signed word) 1 to:gen_chargen_sprite::@3 gen_chargen_sprite::@4: scope:[gen_chargen_sprite] from gen_chargen_sprite::@3 gen_chargen_sprite::@5 - (byte*) PROCPORT#11 ← phi( gen_chargen_sprite::@3/(byte*) PROCPORT#14 gen_chargen_sprite::@5/(byte*) PROCPORT#11 ) (byte*) gen_chargen_sprite::chargen#2 ← phi( gen_chargen_sprite::@3/(byte*) gen_chargen_sprite::chargen#7 gen_chargen_sprite::@5/(byte*) gen_chargen_sprite::chargen#2 ) (byte) gen_chargen_sprite::y#3 ← phi( gen_chargen_sprite::@3/(byte) gen_chargen_sprite::y#10 gen_chargen_sprite::@5/(byte) gen_chargen_sprite::y#3 ) (byte) gen_chargen_sprite::x#2 ← phi( gen_chargen_sprite::@3/(byte) gen_chargen_sprite::x#6 gen_chargen_sprite::@5/(byte) gen_chargen_sprite::x#2 ) @@ -8769,14 +7702,13 @@ gen_chargen_sprite::@9: scope:[gen_chargen_sprite] from gen_chargen_sprite::@8 if((boolean~) gen_chargen_sprite::$15) goto gen_chargen_sprite::@1 to:gen_chargen_sprite::@10 gen_chargen_sprite::@10: scope:[gen_chargen_sprite] from gen_chargen_sprite::@9 - *((byte*) PROCPORT#11) ← (byte/signed byte/word/signed word) 55 + *((byte*) PROCPORT#0) ← (byte/signed byte/word/signed word) 55 asm { cli } to:gen_chargen_sprite::@return gen_chargen_sprite::@return: scope:[gen_chargen_sprite] from gen_chargen_sprite::@10 return to:@return gen_sintab: scope:[gen_sintab] from init::@4 init::@5 - (byte*) BORDERCOL#30 ← phi( init::@4/(byte*) BORDERCOL#42 init::@5/(byte*) BORDERCOL#42 ) (byte*) gen_sintab::sintab#12 ← phi( init::@4/(byte*) gen_sintab::sintab#0 init::@5/(byte*) gen_sintab::sintab#1 ) (byte) gen_sintab::length#10 ← phi( init::@4/(byte) gen_sintab::length#0 init::@5/(byte) gen_sintab::length#1 ) (byte) gen_sintab::min#2 ← phi( init::@4/(byte) gen_sintab::min#0 init::@5/(byte) gen_sintab::min#1 ) @@ -8833,7 +7765,6 @@ gen_sintab::@13: scope:[gen_sintab] from gen_sintab::@12 (byte) gen_sintab::i#0 ← (byte/signed byte/word/signed word) 0 to:gen_sintab::@1 gen_sintab::@1: scope:[gen_sintab] from gen_sintab::@13 gen_sintab::@22 - (byte*) BORDERCOL#11 ← phi( gen_sintab::@13/(byte*) BORDERCOL#30 gen_sintab::@22/(byte*) BORDERCOL#11 ) (byte*) gen_sintab::sintab#10 ← phi( gen_sintab::@13/(byte*) gen_sintab::sintab#12 gen_sintab::@22/(byte*) gen_sintab::sintab#10 ) (byte[]) gen_sintab::f_min#10 ← phi( gen_sintab::@13/(byte[]) gen_sintab::f_min#0 gen_sintab::@22/(byte[]) gen_sintab::f_min#10 ) (byte[]) gen_sintab::f_amp#11 ← phi( gen_sintab::@13/(byte[]) gen_sintab::f_amp#0 gen_sintab::@22/(byte[]) gen_sintab::f_amp#11 ) @@ -8881,7 +7812,7 @@ gen_sintab::@22: scope:[gen_sintab] from gen_sintab::@21 (word~) gen_sintab::$23 ← (word) getFAC::return#2 (byte~) gen_sintab::$24 ← ((byte)) (word~) gen_sintab::$23 *((byte*) gen_sintab::sintab#10 + (byte) gen_sintab::i#10) ← (byte~) gen_sintab::$24 - *((byte*) BORDERCOL#11) ← ++ *((byte*) BORDERCOL#11) + *((byte*) BORDERCOL#0) ← ++ *((byte*) BORDERCOL#0) (byte) gen_sintab::i#1 ← ++ (byte) gen_sintab::i#10 (boolean~) gen_sintab::$25 ← (byte) gen_sintab::i#1 < (byte) gen_sintab::length#11 if((boolean~) gen_sintab::$25) goto gen_sintab::@1 @@ -8909,68 +7840,28 @@ Not aliassing across scopes: divMEMbyFAC::mem#2 divMEMbyFAC::mem#1 Not aliassing across scopes: prepareMEM::mem#3 divMEMbyFAC::mem#2 Not aliassing across scopes: mulFACbyMEM::mem#2 mulFACbyMEM::mem#0 Not aliassing across scopes: prepareMEM::mem#4 mulFACbyMEM::mem#2 -Not aliassing across scopes: SCREEN#4 SCREEN#0 -Not aliassing across scopes: RASTER#3 RASTER#0 Not aliassing across scopes: sin_idx_x#23 sin_idx_x#16 Not aliassing across scopes: sin_idx_y#21 sin_idx_y#17 -Not aliassing across scopes: BORDERCOL#13 BORDERCOL#0 -Not aliassing across scopes: SPRITES_ENABLE#5 SPRITES_ENABLE#0 -Not aliassing across scopes: SPRITES_EXPAND_X#5 SPRITES_EXPAND_X#0 -Not aliassing across scopes: SPRITES_EXPAND_Y#5 SPRITES_EXPAND_Y#0 -Not aliassing across scopes: SPRITES_XPOS#14 SPRITES_XPOS#0 -Not aliassing across scopes: SPRITES_YPOS#14 SPRITES_YPOS#0 -Not aliassing across scopes: SPRITES_COLS#6 SPRITES_COLS#0 -Not aliassing across scopes: CHARGEN#9 CHARGEN#0 -Not aliassing across scopes: PROCPORT#18 PROCPORT#0 -Not aliassing identity: RASTER#1 RASTER#1 -Not aliassing identity: BORDERCOL#12 BORDERCOL#12 -Not aliassing identity: SPRITES_XPOS#10 SPRITES_XPOS#10 -Not aliassing identity: SPRITES_YPOS#10 SPRITES_YPOS#10 Not aliassing across scopes: sin_idx_x#0 sin_idx_x#11 Not aliassing across scopes: sin_idx_y#0 sin_idx_y#11 -Not aliassing across scopes: SCREEN#1 SCREEN#4 -Not aliassing across scopes: SPRITES_ENABLE#4 SPRITES_ENABLE#5 -Not aliassing across scopes: SPRITES_EXPAND_X#4 SPRITES_EXPAND_X#5 -Not aliassing across scopes: SPRITES_EXPAND_Y#4 SPRITES_EXPAND_Y#5 -Not aliassing across scopes: SPRITES_XPOS#15 SPRITES_XPOS#14 -Not aliassing across scopes: SPRITES_YPOS#15 SPRITES_YPOS#14 -Not aliassing across scopes: SPRITES_COLS#5 SPRITES_COLS#6 -Not aliassing across scopes: CHARGEN#8 CHARGEN#9 -Not aliassing across scopes: PROCPORT#15 PROCPORT#18 -Not aliassing across scopes: BORDERCOL#47 BORDERCOL#13 -Not aliassing across scopes: init::sc#0 SCREEN#1 +Not aliassing across scopes: init::sc#0 SCREEN#0 Not aliassing across scopes: gen_sintab::sintab#0 sintab_x#0 Not aliassing across scopes: gen_sintab::length#0 sinlen_x#0 Not aliassing across scopes: gen_sintab::sintab#1 sintab_y#0 Not aliassing across scopes: gen_sintab::length#1 sinlen_y#0 -Not aliassing across scopes: BORDERCOL#1 BORDERCOL#12 Not aliassing across scopes: sin_idx_x#9 sin_idx_x#13 Not aliassing across scopes: sin_idx_y#9 sin_idx_y#13 -Not aliassing across scopes: SPRITES_XPOS#3 SPRITES_XPOS#10 -Not aliassing across scopes: SPRITES_YPOS#3 SPRITES_YPOS#10 Not aliassing across scopes: anim::xidx#0 sin_idx_x#9 Not aliassing across scopes: anim::yidx#0 sin_idx_y#9 -Not aliassing across scopes: SPRITES_ENABLE#1 SPRITES_ENABLE#2 -Not aliassing across scopes: SPRITES_EXPAND_X#1 SPRITES_EXPAND_X#2 -Not aliassing across scopes: SPRITES_EXPAND_Y#1 SPRITES_EXPAND_Y#2 -Not aliassing across scopes: SCREEN#3 SCREEN#2 -Not aliassing across scopes: SPRITES_XPOS#5 SPRITES_XPOS#11 -Not aliassing across scopes: SPRITES_YPOS#5 SPRITES_YPOS#11 -Not aliassing across scopes: SPRITES_COLS#2 SPRITES_COLS#3 -Not aliassing across scopes: CHARGEN#3 CHARGEN#5 -Not aliassing across scopes: PROCPORT#5 PROCPORT#10 Not aliassing across scopes: gen_sprites::spr#0 sprites#0 Not aliassing across scopes: gen_chargen_sprite::ch#0 gen_sprites::$0 Not aliassing across scopes: gen_chargen_sprite::sprite#0 gen_sprites::spr#2 Not aliassing across scopes: gen_chargen_sprite::ch#1 gen_chargen_sprite::ch#0 -Not aliassing across scopes: CHARGEN#1 CHARGEN#2 -Not aliassing across scopes: PROCPORT#1 PROCPORT#3 Not aliassing across scopes: gen_chargen_sprite::sprite#12 gen_chargen_sprite::sprite#0 Not aliassing across scopes: gen_sintab::max#2 gen_sintab::max#0 Not aliassing across scopes: gen_sintab::min#2 gen_sintab::min#0 Not aliassing across scopes: gen_sintab::length#10 gen_sintab::length#0 Not aliassing across scopes: gen_sintab::sintab#12 gen_sintab::sintab#0 -Not aliassing across scopes: BORDERCOL#30 BORDERCOL#42 Not aliassing across scopes: setFAC::w#0 gen_sintab::$0 Not aliassing across scopes: setFAC::w#1 gen_sintab::$3 Not aliassing across scopes: setMEMtoFAC::mem#0 gen_sintab::f_min#0 @@ -8990,51 +7881,23 @@ Not aliassing across scopes: getFAC::return#2 getFAC::return#0 Not aliassing across scopes: gen_sintab::$23 getFAC::return#2 Not aliassing across scopes: sin_idx_x#12 sin_idx_x#0 Not aliassing across scopes: sin_idx_y#12 sin_idx_y#0 -Self Phi Eliminated (byte*) RASTER#1 -Self Phi Eliminated (byte*) RASTER#1 Self Phi Eliminated (byte) sin_idx_x#13 Self Phi Eliminated (byte) sin_idx_y#13 -Self Phi Eliminated (byte*) BORDERCOL#12 -Self Phi Eliminated (byte*) BORDERCOL#12 -Self Phi Eliminated (byte*) SPRITES_XPOS#10 -Self Phi Eliminated (byte*) SPRITES_XPOS#10 -Self Phi Eliminated (byte*) SPRITES_YPOS#10 -Self Phi Eliminated (byte*) SPRITES_YPOS#10 -Self Phi Eliminated (byte*) SCREEN#2 -Self Phi Eliminated (byte*) SPRITES_ENABLE#2 -Self Phi Eliminated (byte*) SPRITES_EXPAND_X#2 -Self Phi Eliminated (byte*) SPRITES_EXPAND_Y#2 -Self Phi Eliminated (byte*) SPRITES_XPOS#11 -Self Phi Eliminated (byte*) SPRITES_YPOS#11 -Self Phi Eliminated (byte*) SPRITES_COLS#3 -Self Phi Eliminated (byte*) CHARGEN#5 -Self Phi Eliminated (byte*) PROCPORT#10 -Self Phi Eliminated (byte*) BORDERCOL#42 -Self Phi Eliminated (byte*) SPRITES_XPOS#1 -Self Phi Eliminated (byte*) SPRITES_YPOS#1 Self Phi Eliminated (byte) sin_idx_x#10 Self Phi Eliminated (byte) sin_idx_y#10 -Self Phi Eliminated (byte*) BORDERCOL#10 Self Phi Eliminated (byte*) place_sprites::sprites_ptr#1 -Self Phi Eliminated (byte*) SPRITES_XPOS#2 -Self Phi Eliminated (byte*) SPRITES_YPOS#2 -Self Phi Eliminated (byte*) SPRITES_COLS#1 Self Phi Eliminated (byte[]) gen_sprites::cml#1 -Self Phi Eliminated (byte*) CHARGEN#2 -Self Phi Eliminated (byte*) PROCPORT#3 Self Phi Eliminated (byte) gen_chargen_sprite::c#2 Self Phi Eliminated (byte) gen_chargen_sprite::bits#3 Self Phi Eliminated (byte) gen_chargen_sprite::x#2 Self Phi Eliminated (byte) gen_chargen_sprite::y#3 Self Phi Eliminated (byte*) gen_chargen_sprite::chargen#2 -Self Phi Eliminated (byte*) PROCPORT#11 Self Phi Eliminated (byte*) gen_sintab::f_2pi#1 Self Phi Eliminated (byte[]) gen_sintab::f_i#1 Self Phi Eliminated (byte) gen_sintab::length#11 Self Phi Eliminated (byte[]) gen_sintab::f_amp#11 Self Phi Eliminated (byte[]) gen_sintab::f_min#10 Self Phi Eliminated (byte*) gen_sintab::sintab#10 -Self Phi Eliminated (byte*) BORDERCOL#11 Succesful SSA optimization Pass2SelfPhiElimination CONTROL FLOW GRAPH @begin: scope:[] from @@ -9153,19 +8016,8 @@ sinFAC::@return: scope:[sinFAC] from sinFAC (byte[]) sprites#0 ← ((byte*)) (word/signed word) 8192 to:@34 main: scope:[main] from @39 - (byte*) PROCPORT#18 ← phi( @39/(byte*) PROCPORT#0 ) - (byte*) CHARGEN#9 ← phi( @39/(byte*) CHARGEN#0 ) - (byte*) SPRITES_COLS#6 ← phi( @39/(byte*) SPRITES_COLS#0 ) - (byte*) SPRITES_YPOS#14 ← phi( @39/(byte*) SPRITES_YPOS#0 ) - (byte*) SPRITES_XPOS#14 ← phi( @39/(byte*) SPRITES_XPOS#0 ) - (byte*) SPRITES_EXPAND_Y#5 ← phi( @39/(byte*) SPRITES_EXPAND_Y#0 ) - (byte*) SPRITES_EXPAND_X#5 ← phi( @39/(byte*) SPRITES_EXPAND_X#0 ) - (byte*) SPRITES_ENABLE#5 ← phi( @39/(byte*) SPRITES_ENABLE#0 ) - (byte*) BORDERCOL#13 ← phi( @39/(byte*) BORDERCOL#0 ) (byte) sin_idx_y#21 ← phi( @39/(byte) sin_idx_y#17 ) (byte) sin_idx_x#23 ← phi( @39/(byte) sin_idx_x#16 ) - (byte*) RASTER#3 ← phi( @39/(byte*) RASTER#0 ) - (byte*) SCREEN#4 ← phi( @39/(byte*) SCREEN#0 ) call init param-assignment to:main::@5 main::@5: scope:[main] from main @@ -9173,13 +8025,9 @@ main::@5: scope:[main] from main main::@1: scope:[main] from main::@6 to:main::@2 main::@2: scope:[main] from main::@1 main::@2 main::@5 - (byte*) SPRITES_YPOS#10 ← phi( main::@5/(byte*) SPRITES_YPOS#14 ) - (byte*) SPRITES_XPOS#10 ← phi( main::@5/(byte*) SPRITES_XPOS#14 ) - (byte*) BORDERCOL#12 ← phi( main::@5/(byte*) BORDERCOL#13 ) (byte) sin_idx_y#13 ← phi( main::@1/(byte) sin_idx_y#0 main::@5/(byte) sin_idx_y#21 ) (byte) sin_idx_x#13 ← phi( main::@1/(byte) sin_idx_x#0 main::@5/(byte) sin_idx_x#23 ) - (byte*) RASTER#1 ← phi( main::@5/(byte*) RASTER#3 ) - (boolean~) main::$1 ← *((byte*) RASTER#1) != (byte/word/signed word) 255 + (boolean~) main::$1 ← *((byte*) RASTER#0) != (byte/word/signed word) 255 if((boolean~) main::$1) goto main::@2 to:main::@3 main::@3: scope:[main] from main::@2 @@ -9194,33 +8042,13 @@ main::@return: scope:[main] from main::@6 return to:@return init: scope:[init] from main - (byte*) BORDERCOL#47 ← phi( main/(byte*) BORDERCOL#13 ) - (byte*) PROCPORT#15 ← phi( main/(byte*) PROCPORT#18 ) - (byte*) CHARGEN#8 ← phi( main/(byte*) CHARGEN#9 ) - (byte*) SPRITES_COLS#5 ← phi( main/(byte*) SPRITES_COLS#6 ) - (byte*) SPRITES_YPOS#15 ← phi( main/(byte*) SPRITES_YPOS#14 ) - (byte*) SPRITES_XPOS#15 ← phi( main/(byte*) SPRITES_XPOS#14 ) - (byte*) SPRITES_EXPAND_Y#4 ← phi( main/(byte*) SPRITES_EXPAND_Y#5 ) - (byte*) SPRITES_EXPAND_X#4 ← phi( main/(byte*) SPRITES_EXPAND_X#5 ) - (byte*) SPRITES_ENABLE#4 ← phi( main/(byte*) SPRITES_ENABLE#5 ) - (byte*) SCREEN#1 ← phi( main/(byte*) SCREEN#4 ) - (byte*) init::sc#0 ← (byte*) SCREEN#1 + (byte*) init::sc#0 ← (byte*) SCREEN#0 to:init::@1 init::@1: scope:[init] from init init::@1 - (byte*) BORDERCOL#42 ← phi( init/(byte*) BORDERCOL#47 ) - (byte*) PROCPORT#10 ← phi( init/(byte*) PROCPORT#15 ) - (byte*) CHARGEN#5 ← phi( init/(byte*) CHARGEN#8 ) - (byte*) SPRITES_COLS#3 ← phi( init/(byte*) SPRITES_COLS#5 ) - (byte*) SPRITES_YPOS#11 ← phi( init/(byte*) SPRITES_YPOS#15 ) - (byte*) SPRITES_XPOS#11 ← phi( init/(byte*) SPRITES_XPOS#15 ) - (byte*) SPRITES_EXPAND_Y#2 ← phi( init/(byte*) SPRITES_EXPAND_Y#4 ) - (byte*) SPRITES_EXPAND_X#2 ← phi( init/(byte*) SPRITES_EXPAND_X#4 ) - (byte*) SPRITES_ENABLE#2 ← phi( init/(byte*) SPRITES_ENABLE#4 ) - (byte*) SCREEN#2 ← phi( init/(byte*) SCREEN#1 ) (byte*) init::sc#2 ← phi( init/(byte*) init::sc#0 init::@1/(byte*) init::sc#1 ) *((byte*) init::sc#2) ← (byte) ' ' (byte*) init::sc#1 ← ++ (byte*) init::sc#2 - (byte*~) init::$0 ← (byte*) SCREEN#2 + (word/signed word) 1000 + (byte*~) init::$0 ← (byte*) SCREEN#0 + (word/signed word) 1000 (boolean~) init::$1 ← (byte*) init::sc#1 < (byte*~) init::$0 if((boolean~) init::$1) goto init::@1 to:init::@2 @@ -9252,31 +8080,25 @@ init::@return: scope:[init] from init::@5 (byte) sin_idx_y#17 ← (byte/signed byte/word/signed word) 0 to:@39 anim: scope:[anim] from main::@3 - (byte*) SPRITES_YPOS#3 ← phi( main::@3/(byte*) SPRITES_YPOS#10 ) - (byte*) SPRITES_XPOS#3 ← phi( main::@3/(byte*) SPRITES_XPOS#10 ) (byte) sin_idx_y#9 ← phi( main::@3/(byte) sin_idx_y#13 ) (byte) sin_idx_x#9 ← phi( main::@3/(byte) sin_idx_x#13 ) - (byte*) BORDERCOL#1 ← phi( main::@3/(byte*) BORDERCOL#12 ) - *((byte*) BORDERCOL#1) ← ++ *((byte*) BORDERCOL#1) + *((byte*) BORDERCOL#0) ← ++ *((byte*) BORDERCOL#0) (byte) anim::xidx#0 ← (byte) sin_idx_x#9 (byte) anim::yidx#0 ← (byte) sin_idx_y#9 (byte) anim::j2#0 ← (byte/signed byte/word/signed word) 12 (byte) anim::j#0 ← (byte/signed byte/word/signed word) 0 to:anim::@1 anim::@1: scope:[anim] from anim anim::@3 - (byte*) BORDERCOL#10 ← phi( anim/(byte*) BORDERCOL#1 ) (byte) sin_idx_y#10 ← phi( anim/(byte) sin_idx_y#9 ) (byte) sin_idx_x#10 ← phi( anim/(byte) sin_idx_x#9 ) (byte) anim::j#2 ← phi( anim/(byte) anim::j#0 anim::@3/(byte) anim::j#1 ) - (byte*) SPRITES_YPOS#1 ← phi( anim/(byte*) SPRITES_YPOS#3 ) (byte) anim::yidx#3 ← phi( anim/(byte) anim::yidx#0 anim::@3/(byte) anim::yidx#6 ) (byte) anim::j2#3 ← phi( anim/(byte) anim::j2#0 anim::@3/(byte) anim::j2#2 ) - (byte*) SPRITES_XPOS#1 ← phi( anim/(byte*) SPRITES_XPOS#3 ) (byte) anim::xidx#3 ← phi( anim/(byte) anim::xidx#0 anim::@3/(byte) anim::xidx#5 ) (byte~) anim::$0 ← (byte[]) sintab_x#0 *idx (byte) anim::xidx#3 - *((byte*) SPRITES_XPOS#1 + (byte) anim::j2#3) ← (byte~) anim::$0 + *((byte*) SPRITES_XPOS#0 + (byte) anim::j2#3) ← (byte~) anim::$0 (byte~) anim::$1 ← (byte[]) sintab_y#0 *idx (byte) anim::yidx#3 - *((byte*) SPRITES_YPOS#1 + (byte) anim::j2#3) ← (byte~) anim::$1 + *((byte*) SPRITES_YPOS#0 + (byte) anim::j2#3) ← (byte~) anim::$1 (byte) anim::xidx#1 ← (byte) anim::xidx#3 + (byte/signed byte/word/signed word) 10 (boolean~) anim::$4 ← (byte) anim::xidx#1 < (byte) sinlen_x#0 if((boolean~) anim::$4) goto anim::@2 @@ -9317,7 +8139,7 @@ anim::@9: scope:[anim] from anim::@8 to:anim::@4 anim::@5: scope:[anim] from anim::@10 anim::@4 (byte) sin_idx_y#11 ← phi( anim::@10/(byte) sin_idx_y#4 anim::@4/(byte) sin_idx_y#3 ) - *((byte*) BORDERCOL#10) ← -- *((byte*) BORDERCOL#10) + *((byte*) BORDERCOL#0) ← -- *((byte*) BORDERCOL#0) to:anim::@return anim::@10: scope:[anim] from anim::@4 (byte) sin_idx_y#4 ← (byte/signed byte/word/signed word) 0 @@ -9326,17 +8148,10 @@ anim::@return: scope:[anim] from anim::@5 return to:@return place_sprites: scope:[place_sprites] from init::@2 - (byte*) SPRITES_COLS#2 ← phi( init::@2/(byte*) SPRITES_COLS#3 ) - (byte*) SPRITES_YPOS#5 ← phi( init::@2/(byte*) SPRITES_YPOS#11 ) - (byte*) SPRITES_XPOS#5 ← phi( init::@2/(byte*) SPRITES_XPOS#11 ) - (byte*) SCREEN#3 ← phi( init::@2/(byte*) SCREEN#2 ) - (byte*) SPRITES_EXPAND_Y#1 ← phi( init::@2/(byte*) SPRITES_EXPAND_Y#2 ) - (byte*) SPRITES_EXPAND_X#1 ← phi( init::@2/(byte*) SPRITES_EXPAND_X#2 ) - (byte*) SPRITES_ENABLE#1 ← phi( init::@2/(byte*) SPRITES_ENABLE#2 ) - *((byte*) SPRITES_ENABLE#1) ← (byte/signed byte/word/signed word) 127 - *((byte*) SPRITES_EXPAND_X#1) ← (byte/signed byte/word/signed word) 127 - *((byte*) SPRITES_EXPAND_Y#1) ← (byte/signed byte/word/signed word) 127 - (byte*) place_sprites::sprites_ptr#0 ← (byte*) SCREEN#3 + (word/signed word) 1016 + *((byte*) SPRITES_ENABLE#0) ← (byte/signed byte/word/signed word) 127 + *((byte*) SPRITES_EXPAND_X#0) ← (byte/signed byte/word/signed word) 127 + *((byte*) SPRITES_EXPAND_Y#0) ← (byte/signed byte/word/signed word) 127 + (byte*) place_sprites::sprites_ptr#0 ← (byte*) SCREEN#0 + (word/signed word) 1016 (byte[]~) place_sprites::$1 ← (byte[]) sprites#0 / (byte/signed byte/word/signed word) 64 (byte) place_sprites::spr_id#0 ← ((byte)) (byte[]~) place_sprites::$1 (byte) place_sprites::spr_x#0 ← (byte/signed byte/word/signed word) 60 @@ -9345,20 +8160,17 @@ place_sprites: scope:[place_sprites] from init::@2 (byte) place_sprites::j#0 ← (byte/signed byte/word/signed word) 0 to:place_sprites::@1 place_sprites::@1: scope:[place_sprites] from place_sprites place_sprites::@1 - (byte*) SPRITES_COLS#1 ← phi( place_sprites/(byte*) SPRITES_COLS#2 ) (byte) place_sprites::col#2 ← phi( place_sprites/(byte) place_sprites::col#0 place_sprites::@1/(byte) place_sprites::col#1 ) - (byte*) SPRITES_YPOS#2 ← phi( place_sprites/(byte*) SPRITES_YPOS#5 ) (byte) place_sprites::j2#3 ← phi( place_sprites/(byte) place_sprites::j2#0 place_sprites::@1/(byte) place_sprites::j2#2 ) - (byte*) SPRITES_XPOS#2 ← phi( place_sprites/(byte*) SPRITES_XPOS#5 ) (byte) place_sprites::spr_x#2 ← phi( place_sprites/(byte) place_sprites::spr_x#0 place_sprites::@1/(byte) place_sprites::spr_x#1 ) (byte) place_sprites::j#2 ← phi( place_sprites/(byte) place_sprites::j#0 place_sprites::@1/(byte) place_sprites::j#1 ) (byte*) place_sprites::sprites_ptr#1 ← phi( place_sprites/(byte*) place_sprites::sprites_ptr#0 ) (byte) place_sprites::spr_id#2 ← phi( place_sprites/(byte) place_sprites::spr_id#0 place_sprites::@1/(byte) place_sprites::spr_id#1 ) *((byte*) place_sprites::sprites_ptr#1 + (byte) place_sprites::j#2) ← (byte) place_sprites::spr_id#2 (byte) place_sprites::spr_id#1 ← ++ (byte) place_sprites::spr_id#2 - *((byte*) SPRITES_XPOS#2 + (byte) place_sprites::j2#3) ← (byte) place_sprites::spr_x#2 - *((byte*) SPRITES_YPOS#2 + (byte) place_sprites::j2#3) ← (byte/signed byte/word/signed word) 80 - *((byte*) SPRITES_COLS#1 + (byte) place_sprites::j#2) ← (byte) place_sprites::col#2 + *((byte*) SPRITES_XPOS#0 + (byte) place_sprites::j2#3) ← (byte) place_sprites::spr_x#2 + *((byte*) SPRITES_YPOS#0 + (byte) place_sprites::j2#3) ← (byte/signed byte/word/signed word) 80 + *((byte*) SPRITES_COLS#0 + (byte) place_sprites::j#2) ← (byte) place_sprites::col#2 (byte) place_sprites::spr_x#1 ← (byte) place_sprites::spr_x#2 + (byte/signed byte/word/signed word) 32 (byte~) place_sprites::$4 ← (byte/signed byte/word/signed word) 7 ^ (byte/signed byte/word/signed word) 5 (byte) place_sprites::col#1 ← (byte) place_sprites::col#2 ^ (byte~) place_sprites::$4 @@ -9372,15 +8184,11 @@ place_sprites::@return: scope:[place_sprites] from place_sprites::@1 return to:@return gen_sprites: scope:[gen_sprites] from init::@3 - (byte*) PROCPORT#5 ← phi( init::@3/(byte*) PROCPORT#10 ) - (byte*) CHARGEN#3 ← phi( init::@3/(byte*) CHARGEN#5 ) (byte[]) gen_sprites::cml#0 ← (string) "camelot" (byte*) gen_sprites::spr#0 ← (byte[]) sprites#0 (byte) gen_sprites::i#0 ← (byte/signed byte/word/signed word) 0 to:gen_sprites::@1 gen_sprites::@1: scope:[gen_sprites] from gen_sprites gen_sprites::@3 - (byte*) PROCPORT#3 ← phi( gen_sprites/(byte*) PROCPORT#5 ) - (byte*) CHARGEN#2 ← phi( gen_sprites/(byte*) CHARGEN#3 ) (byte*) gen_sprites::spr#2 ← phi( gen_sprites/(byte*) gen_sprites::spr#0 gen_sprites::@3/(byte*) gen_sprites::spr#1 ) (byte) gen_sprites::i#2 ← phi( gen_sprites/(byte) gen_sprites::i#0 gen_sprites::@3/(byte) gen_sprites::i#1 ) (byte[]) gen_sprites::cml#1 ← phi( gen_sprites/(byte[]) gen_sprites::cml#0 ) @@ -9400,18 +8208,15 @@ gen_sprites::@return: scope:[gen_sprites] from gen_sprites::@3 to:@return gen_chargen_sprite: scope:[gen_chargen_sprite] from gen_sprites::@1 (byte*) gen_chargen_sprite::sprite#12 ← phi( gen_sprites::@1/(byte*) gen_chargen_sprite::sprite#0 ) - (byte*) PROCPORT#1 ← phi( gen_sprites::@1/(byte*) PROCPORT#3 ) - (byte*) CHARGEN#1 ← phi( gen_sprites::@1/(byte*) CHARGEN#2 ) (byte) gen_chargen_sprite::ch#1 ← phi( gen_sprites::@1/(byte) gen_chargen_sprite::ch#0 ) (word~) gen_chargen_sprite::$0 ← ((word)) (byte) gen_chargen_sprite::ch#1 (word~) gen_chargen_sprite::$1 ← (word~) gen_chargen_sprite::$0 << (byte/signed byte/word/signed word) 3 - (byte*) gen_chargen_sprite::chargen#0 ← (byte*) CHARGEN#1 + (word~) gen_chargen_sprite::$1 + (byte*) gen_chargen_sprite::chargen#0 ← (byte*) CHARGEN#0 + (word~) gen_chargen_sprite::$1 asm { sei } - *((byte*) PROCPORT#1) ← (byte/signed byte/word/signed word) 50 + *((byte*) PROCPORT#0) ← (byte/signed byte/word/signed word) 50 (byte) gen_chargen_sprite::y#0 ← (byte/signed byte/word/signed word) 0 to:gen_chargen_sprite::@1 gen_chargen_sprite::@1: scope:[gen_chargen_sprite] from gen_chargen_sprite gen_chargen_sprite::@9 - (byte*) PROCPORT#19 ← phi( gen_chargen_sprite/(byte*) PROCPORT#1 gen_chargen_sprite::@9/(byte*) PROCPORT#11 ) (byte*) gen_chargen_sprite::sprite#11 ← phi( gen_chargen_sprite/(byte*) gen_chargen_sprite::sprite#12 gen_chargen_sprite::@9/(byte*) gen_chargen_sprite::sprite#2 ) (byte) gen_chargen_sprite::y#2 ← phi( gen_chargen_sprite/(byte) gen_chargen_sprite::y#0 gen_chargen_sprite::@9/(byte) gen_chargen_sprite::y#1 ) (byte*) gen_chargen_sprite::chargen#1 ← phi( gen_chargen_sprite/(byte*) gen_chargen_sprite::chargen#0 gen_chargen_sprite::@9/(byte*) gen_chargen_sprite::chargen#2 ) @@ -9421,7 +8226,6 @@ gen_chargen_sprite::@1: scope:[gen_chargen_sprite] from gen_chargen_sprite gen_ (byte) gen_chargen_sprite::x#0 ← (byte/signed byte/word/signed word) 0 to:gen_chargen_sprite::@2 gen_chargen_sprite::@2: scope:[gen_chargen_sprite] from gen_chargen_sprite::@1 gen_chargen_sprite::@8 - (byte*) PROCPORT#14 ← phi( gen_chargen_sprite::@1/(byte*) PROCPORT#19 gen_chargen_sprite::@8/(byte*) PROCPORT#11 ) (byte*) gen_chargen_sprite::chargen#7 ← phi( gen_chargen_sprite::@1/(byte*) gen_chargen_sprite::chargen#1 gen_chargen_sprite::@8/(byte*) gen_chargen_sprite::chargen#2 ) (byte) gen_chargen_sprite::y#10 ← phi( gen_chargen_sprite::@1/(byte) gen_chargen_sprite::y#2 gen_chargen_sprite::@8/(byte) gen_chargen_sprite::y#3 ) (byte) gen_chargen_sprite::x#6 ← phi( gen_chargen_sprite::@1/(byte) gen_chargen_sprite::x#0 gen_chargen_sprite::@8/(byte) gen_chargen_sprite::x#1 ) @@ -9442,7 +8246,6 @@ gen_chargen_sprite::@6: scope:[gen_chargen_sprite] from gen_chargen_sprite::@2 (byte) gen_chargen_sprite::c#1 ← (byte/signed byte/word/signed word) 1 to:gen_chargen_sprite::@3 gen_chargen_sprite::@4: scope:[gen_chargen_sprite] from gen_chargen_sprite::@3 gen_chargen_sprite::@5 - (byte*) PROCPORT#11 ← phi( gen_chargen_sprite::@3/(byte*) PROCPORT#14 ) (byte*) gen_chargen_sprite::chargen#2 ← phi( gen_chargen_sprite::@3/(byte*) gen_chargen_sprite::chargen#7 ) (byte) gen_chargen_sprite::y#3 ← phi( gen_chargen_sprite::@3/(byte) gen_chargen_sprite::y#10 ) (byte) gen_chargen_sprite::x#2 ← phi( gen_chargen_sprite::@3/(byte) gen_chargen_sprite::x#6 ) @@ -9487,14 +8290,13 @@ gen_chargen_sprite::@9: scope:[gen_chargen_sprite] from gen_chargen_sprite::@8 if((boolean~) gen_chargen_sprite::$15) goto gen_chargen_sprite::@1 to:gen_chargen_sprite::@10 gen_chargen_sprite::@10: scope:[gen_chargen_sprite] from gen_chargen_sprite::@9 - *((byte*) PROCPORT#11) ← (byte/signed byte/word/signed word) 55 + *((byte*) PROCPORT#0) ← (byte/signed byte/word/signed word) 55 asm { cli } to:gen_chargen_sprite::@return gen_chargen_sprite::@return: scope:[gen_chargen_sprite] from gen_chargen_sprite::@10 return to:@return gen_sintab: scope:[gen_sintab] from init::@4 init::@5 - (byte*) BORDERCOL#30 ← phi( init::@4/(byte*) BORDERCOL#42 init::@5/(byte*) BORDERCOL#42 ) (byte*) gen_sintab::sintab#12 ← phi( init::@4/(byte*) gen_sintab::sintab#0 init::@5/(byte*) gen_sintab::sintab#1 ) (byte) gen_sintab::length#10 ← phi( init::@4/(byte) gen_sintab::length#0 init::@5/(byte) gen_sintab::length#1 ) (byte) gen_sintab::min#2 ← phi( init::@4/(byte) gen_sintab::min#0 init::@5/(byte) gen_sintab::min#1 ) @@ -9551,7 +8353,6 @@ gen_sintab::@13: scope:[gen_sintab] from gen_sintab::@12 (byte) gen_sintab::i#0 ← (byte/signed byte/word/signed word) 0 to:gen_sintab::@1 gen_sintab::@1: scope:[gen_sintab] from gen_sintab::@13 gen_sintab::@22 - (byte*) BORDERCOL#11 ← phi( gen_sintab::@13/(byte*) BORDERCOL#30 ) (byte*) gen_sintab::sintab#10 ← phi( gen_sintab::@13/(byte*) gen_sintab::sintab#12 ) (byte[]) gen_sintab::f_min#10 ← phi( gen_sintab::@13/(byte[]) gen_sintab::f_min#0 ) (byte[]) gen_sintab::f_amp#11 ← phi( gen_sintab::@13/(byte[]) gen_sintab::f_amp#0 ) @@ -9599,7 +8400,7 @@ gen_sintab::@22: scope:[gen_sintab] from gen_sintab::@21 (word~) gen_sintab::$23 ← (word) getFAC::return#2 (byte~) gen_sintab::$24 ← ((byte)) (word~) gen_sintab::$23 *((byte*) gen_sintab::sintab#10 + (byte) gen_sintab::i#10) ← (byte~) gen_sintab::$24 - *((byte*) BORDERCOL#11) ← ++ *((byte*) BORDERCOL#11) + *((byte*) BORDERCOL#0) ← ++ *((byte*) BORDERCOL#0) (byte) gen_sintab::i#1 ← ++ (byte) gen_sintab::i#10 (boolean~) gen_sintab::$25 ← (byte) gen_sintab::i#1 < (byte) gen_sintab::length#11 if((boolean~) gen_sintab::$25) goto gen_sintab::@1 @@ -9616,89 +8417,29 @@ gen_sintab::@return: scope:[gen_sintab] from gen_sintab::@22 to:@end @end: scope:[] from @40 -Redundant Phi (byte*) SCREEN#4 (byte*) SCREEN#0 -Redundant Phi (byte*) RASTER#3 (byte*) RASTER#0 Redundant Phi (byte) sin_idx_x#23 (byte) sin_idx_x#16 Redundant Phi (byte) sin_idx_y#21 (byte) sin_idx_y#17 -Redundant Phi (byte*) BORDERCOL#13 (byte*) BORDERCOL#0 -Redundant Phi (byte*) SPRITES_ENABLE#5 (byte*) SPRITES_ENABLE#0 -Redundant Phi (byte*) SPRITES_EXPAND_X#5 (byte*) SPRITES_EXPAND_X#0 -Redundant Phi (byte*) SPRITES_EXPAND_Y#5 (byte*) SPRITES_EXPAND_Y#0 -Redundant Phi (byte*) SPRITES_XPOS#14 (byte*) SPRITES_XPOS#0 -Redundant Phi (byte*) SPRITES_YPOS#14 (byte*) SPRITES_YPOS#0 -Redundant Phi (byte*) SPRITES_COLS#6 (byte*) SPRITES_COLS#0 -Redundant Phi (byte*) CHARGEN#9 (byte*) CHARGEN#0 -Redundant Phi (byte*) PROCPORT#18 (byte*) PROCPORT#0 -Redundant Phi (byte*) RASTER#1 (byte*) RASTER#3 -Redundant Phi (byte*) BORDERCOL#12 (byte*) BORDERCOL#13 -Redundant Phi (byte*) SPRITES_XPOS#10 (byte*) SPRITES_XPOS#14 -Redundant Phi (byte*) SPRITES_YPOS#10 (byte*) SPRITES_YPOS#14 Redundant Phi (byte) sin_idx_x#0 (byte) sin_idx_x#11 Redundant Phi (byte) sin_idx_y#0 (byte) sin_idx_y#11 -Redundant Phi (byte*) SCREEN#1 (byte*) SCREEN#4 -Redundant Phi (byte*) SPRITES_ENABLE#4 (byte*) SPRITES_ENABLE#5 -Redundant Phi (byte*) SPRITES_EXPAND_X#4 (byte*) SPRITES_EXPAND_X#5 -Redundant Phi (byte*) SPRITES_EXPAND_Y#4 (byte*) SPRITES_EXPAND_Y#5 -Redundant Phi (byte*) SPRITES_XPOS#15 (byte*) SPRITES_XPOS#14 -Redundant Phi (byte*) SPRITES_YPOS#15 (byte*) SPRITES_YPOS#14 -Redundant Phi (byte*) SPRITES_COLS#5 (byte*) SPRITES_COLS#6 -Redundant Phi (byte*) CHARGEN#8 (byte*) CHARGEN#9 -Redundant Phi (byte*) PROCPORT#15 (byte*) PROCPORT#18 -Redundant Phi (byte*) BORDERCOL#47 (byte*) BORDERCOL#13 -Redundant Phi (byte*) SCREEN#2 (byte*) SCREEN#1 -Redundant Phi (byte*) SPRITES_ENABLE#2 (byte*) SPRITES_ENABLE#4 -Redundant Phi (byte*) SPRITES_EXPAND_X#2 (byte*) SPRITES_EXPAND_X#4 -Redundant Phi (byte*) SPRITES_EXPAND_Y#2 (byte*) SPRITES_EXPAND_Y#4 -Redundant Phi (byte*) SPRITES_XPOS#11 (byte*) SPRITES_XPOS#15 -Redundant Phi (byte*) SPRITES_YPOS#11 (byte*) SPRITES_YPOS#15 -Redundant Phi (byte*) SPRITES_COLS#3 (byte*) SPRITES_COLS#5 -Redundant Phi (byte*) CHARGEN#5 (byte*) CHARGEN#8 -Redundant Phi (byte*) PROCPORT#10 (byte*) PROCPORT#15 -Redundant Phi (byte*) BORDERCOL#42 (byte*) BORDERCOL#47 -Redundant Phi (byte*) BORDERCOL#1 (byte*) BORDERCOL#12 Redundant Phi (byte) sin_idx_x#9 (byte) sin_idx_x#13 Redundant Phi (byte) sin_idx_y#9 (byte) sin_idx_y#13 -Redundant Phi (byte*) SPRITES_XPOS#3 (byte*) SPRITES_XPOS#10 -Redundant Phi (byte*) SPRITES_YPOS#3 (byte*) SPRITES_YPOS#10 -Redundant Phi (byte*) SPRITES_XPOS#1 (byte*) SPRITES_XPOS#3 -Redundant Phi (byte*) SPRITES_YPOS#1 (byte*) SPRITES_YPOS#3 Redundant Phi (byte) sin_idx_x#10 (byte) sin_idx_x#9 Redundant Phi (byte) sin_idx_y#10 (byte) sin_idx_y#9 -Redundant Phi (byte*) BORDERCOL#10 (byte*) BORDERCOL#1 -Redundant Phi (byte*) SPRITES_ENABLE#1 (byte*) SPRITES_ENABLE#2 -Redundant Phi (byte*) SPRITES_EXPAND_X#1 (byte*) SPRITES_EXPAND_X#2 -Redundant Phi (byte*) SPRITES_EXPAND_Y#1 (byte*) SPRITES_EXPAND_Y#2 -Redundant Phi (byte*) SCREEN#3 (byte*) SCREEN#2 -Redundant Phi (byte*) SPRITES_XPOS#5 (byte*) SPRITES_XPOS#11 -Redundant Phi (byte*) SPRITES_YPOS#5 (byte*) SPRITES_YPOS#11 -Redundant Phi (byte*) SPRITES_COLS#2 (byte*) SPRITES_COLS#3 Redundant Phi (byte*) place_sprites::sprites_ptr#1 (byte*) place_sprites::sprites_ptr#0 -Redundant Phi (byte*) SPRITES_XPOS#2 (byte*) SPRITES_XPOS#5 -Redundant Phi (byte*) SPRITES_YPOS#2 (byte*) SPRITES_YPOS#5 -Redundant Phi (byte*) SPRITES_COLS#1 (byte*) SPRITES_COLS#2 -Redundant Phi (byte*) CHARGEN#3 (byte*) CHARGEN#5 -Redundant Phi (byte*) PROCPORT#5 (byte*) PROCPORT#10 Redundant Phi (byte[]) gen_sprites::cml#1 (byte[]) gen_sprites::cml#0 -Redundant Phi (byte*) CHARGEN#2 (byte*) CHARGEN#3 -Redundant Phi (byte*) PROCPORT#3 (byte*) PROCPORT#5 Redundant Phi (byte) gen_chargen_sprite::ch#1 (byte) gen_chargen_sprite::ch#0 -Redundant Phi (byte*) CHARGEN#1 (byte*) CHARGEN#2 -Redundant Phi (byte*) PROCPORT#1 (byte*) PROCPORT#3 Redundant Phi (byte*) gen_chargen_sprite::sprite#12 (byte*) gen_chargen_sprite::sprite#0 Redundant Phi (byte) gen_chargen_sprite::c#2 (byte) gen_chargen_sprite::c#3 Redundant Phi (byte) gen_chargen_sprite::bits#3 (byte) gen_chargen_sprite::bits#2 Redundant Phi (byte) gen_chargen_sprite::x#2 (byte) gen_chargen_sprite::x#6 Redundant Phi (byte) gen_chargen_sprite::y#3 (byte) gen_chargen_sprite::y#10 Redundant Phi (byte*) gen_chargen_sprite::chargen#2 (byte*) gen_chargen_sprite::chargen#7 -Redundant Phi (byte*) PROCPORT#11 (byte*) PROCPORT#14 -Redundant Phi (byte*) BORDERCOL#30 (byte*) BORDERCOL#42 Redundant Phi (byte*) gen_sintab::f_2pi#1 (byte*) gen_sintab::f_2pi#0 Redundant Phi (byte[]) gen_sintab::f_i#1 (byte[]) gen_sintab::f_i#0 Redundant Phi (byte) gen_sintab::length#11 (byte) gen_sintab::length#10 Redundant Phi (byte[]) gen_sintab::f_amp#11 (byte[]) gen_sintab::f_amp#0 Redundant Phi (byte[]) gen_sintab::f_min#10 (byte[]) gen_sintab::f_min#0 Redundant Phi (byte*) gen_sintab::sintab#10 (byte*) gen_sintab::sintab#12 -Redundant Phi (byte*) BORDERCOL#11 (byte*) BORDERCOL#30 Redundant Phi (byte) sin_idx_x#12 (byte) sin_idx_x#0 Redundant Phi (byte) sin_idx_y#12 (byte) sin_idx_y#0 Succesful SSA optimization Pass2RedundantPhiElimination @@ -10008,7 +8749,6 @@ gen_chargen_sprite: scope:[gen_chargen_sprite] from gen_sprites::@1 (byte) gen_chargen_sprite::y#0 ← (byte/signed byte/word/signed word) 0 to:gen_chargen_sprite::@1 gen_chargen_sprite::@1: scope:[gen_chargen_sprite] from gen_chargen_sprite gen_chargen_sprite::@9 - (byte*) PROCPORT#19 ← phi( gen_chargen_sprite/(byte*) PROCPORT#0 gen_chargen_sprite::@9/(byte*) PROCPORT#14 ) (byte*) gen_chargen_sprite::sprite#11 ← phi( gen_chargen_sprite/(byte*) gen_chargen_sprite::sprite#0 gen_chargen_sprite::@9/(byte*) gen_chargen_sprite::sprite#2 ) (byte) gen_chargen_sprite::y#2 ← phi( gen_chargen_sprite/(byte) gen_chargen_sprite::y#0 gen_chargen_sprite::@9/(byte) gen_chargen_sprite::y#1 ) (byte*) gen_chargen_sprite::chargen#1 ← phi( gen_chargen_sprite/(byte*) gen_chargen_sprite::chargen#0 gen_chargen_sprite::@9/(byte*) gen_chargen_sprite::chargen#7 ) @@ -10018,7 +8758,6 @@ gen_chargen_sprite::@1: scope:[gen_chargen_sprite] from gen_chargen_sprite gen_ (byte) gen_chargen_sprite::x#0 ← (byte/signed byte/word/signed word) 0 to:gen_chargen_sprite::@2 gen_chargen_sprite::@2: scope:[gen_chargen_sprite] from gen_chargen_sprite::@1 gen_chargen_sprite::@8 - (byte*) PROCPORT#14 ← phi( gen_chargen_sprite::@1/(byte*) PROCPORT#19 gen_chargen_sprite::@8/(byte*) PROCPORT#14 ) (byte*) gen_chargen_sprite::chargen#7 ← phi( gen_chargen_sprite::@1/(byte*) gen_chargen_sprite::chargen#1 gen_chargen_sprite::@8/(byte*) gen_chargen_sprite::chargen#7 ) (byte) gen_chargen_sprite::y#10 ← phi( gen_chargen_sprite::@1/(byte) gen_chargen_sprite::y#2 gen_chargen_sprite::@8/(byte) gen_chargen_sprite::y#10 ) (byte) gen_chargen_sprite::x#6 ← phi( gen_chargen_sprite::@1/(byte) gen_chargen_sprite::x#0 gen_chargen_sprite::@8/(byte) gen_chargen_sprite::x#1 ) @@ -10078,7 +8817,7 @@ gen_chargen_sprite::@9: scope:[gen_chargen_sprite] from gen_chargen_sprite::@8 if((boolean~) gen_chargen_sprite::$15) goto gen_chargen_sprite::@1 to:gen_chargen_sprite::@10 gen_chargen_sprite::@10: scope:[gen_chargen_sprite] from gen_chargen_sprite::@9 - *((byte*) PROCPORT#14) ← (byte/signed byte/word/signed word) 55 + *((byte*) PROCPORT#0) ← (byte/signed byte/word/signed word) 55 asm { cli } to:gen_chargen_sprite::@return gen_chargen_sprite::@return: scope:[gen_chargen_sprite] from gen_chargen_sprite::@10 @@ -10510,7 +9249,6 @@ gen_chargen_sprite: scope:[gen_chargen_sprite] from gen_sprites::@1 (byte) gen_chargen_sprite::y#0 ← (byte/signed byte/word/signed word) 0 to:gen_chargen_sprite::@1 gen_chargen_sprite::@1: scope:[gen_chargen_sprite] from gen_chargen_sprite gen_chargen_sprite::@9 - (byte*) PROCPORT#19 ← phi( gen_chargen_sprite/(byte*) PROCPORT#0 gen_chargen_sprite::@9/(byte*) PROCPORT#14 ) (byte*) gen_chargen_sprite::sprite#11 ← phi( gen_chargen_sprite/(byte*) gen_chargen_sprite::sprite#0 gen_chargen_sprite::@9/(byte*) gen_chargen_sprite::sprite#2 ) (byte) gen_chargen_sprite::y#2 ← phi( gen_chargen_sprite/(byte) gen_chargen_sprite::y#0 gen_chargen_sprite::@9/(byte) gen_chargen_sprite::y#1 ) (byte*) gen_chargen_sprite::chargen#1 ← phi( gen_chargen_sprite/(byte*) gen_chargen_sprite::chargen#0 gen_chargen_sprite::@9/(byte*) gen_chargen_sprite::chargen#7 ) @@ -10520,7 +9258,6 @@ gen_chargen_sprite::@1: scope:[gen_chargen_sprite] from gen_chargen_sprite gen_ (byte) gen_chargen_sprite::x#0 ← (byte/signed byte/word/signed word) 0 to:gen_chargen_sprite::@2 gen_chargen_sprite::@2: scope:[gen_chargen_sprite] from gen_chargen_sprite::@1 gen_chargen_sprite::@8 - (byte*) PROCPORT#14 ← phi( gen_chargen_sprite::@1/(byte*) PROCPORT#19 gen_chargen_sprite::@8/(byte*) PROCPORT#14 ) (byte*) gen_chargen_sprite::chargen#7 ← phi( gen_chargen_sprite::@1/(byte*) gen_chargen_sprite::chargen#1 gen_chargen_sprite::@8/(byte*) gen_chargen_sprite::chargen#7 ) (byte) gen_chargen_sprite::y#10 ← phi( gen_chargen_sprite::@1/(byte) gen_chargen_sprite::y#2 gen_chargen_sprite::@8/(byte) gen_chargen_sprite::y#10 ) (byte) gen_chargen_sprite::x#6 ← phi( gen_chargen_sprite::@1/(byte) gen_chargen_sprite::x#0 gen_chargen_sprite::@8/(byte) gen_chargen_sprite::x#1 ) @@ -10575,7 +9312,7 @@ gen_chargen_sprite::@9: scope:[gen_chargen_sprite] from gen_chargen_sprite::@8 if((byte) gen_chargen_sprite::y#1!=(byte/signed byte/word/signed word) 8) goto gen_chargen_sprite::@1 to:gen_chargen_sprite::@10 gen_chargen_sprite::@10: scope:[gen_chargen_sprite] from gen_chargen_sprite::@9 - *((byte*) PROCPORT#14) ← (byte/signed byte/word/signed word) 55 + *((byte*) PROCPORT#0) ← (byte/signed byte/word/signed word) 55 asm { cli } to:gen_chargen_sprite::@return gen_chargen_sprite::@return: scope:[gen_chargen_sprite] from gen_chargen_sprite::@10 @@ -11005,14 +9742,12 @@ gen_chargen_sprite: scope:[gen_chargen_sprite] from gen_sprites::@1 *((const byte*) PROCPORT#0) ← (byte/signed byte/word/signed word) 50 to:gen_chargen_sprite::@1 gen_chargen_sprite::@1: scope:[gen_chargen_sprite] from gen_chargen_sprite gen_chargen_sprite::@9 - (byte*) PROCPORT#19 ← phi( gen_chargen_sprite/(const byte*) PROCPORT#0 gen_chargen_sprite::@9/(byte*) PROCPORT#14 ) (byte*) gen_chargen_sprite::sprite#11 ← phi( gen_chargen_sprite/(byte*) gen_chargen_sprite::sprite#0 gen_chargen_sprite::@9/(byte*) gen_chargen_sprite::sprite#2 ) (byte) gen_chargen_sprite::y#2 ← phi( gen_chargen_sprite/(const byte) gen_chargen_sprite::y#0 gen_chargen_sprite::@9/(byte) gen_chargen_sprite::y#1 ) (byte*) gen_chargen_sprite::chargen#1 ← phi( gen_chargen_sprite/(byte*) gen_chargen_sprite::chargen#0 gen_chargen_sprite::@9/(byte*) gen_chargen_sprite::chargen#7 ) (byte) gen_chargen_sprite::bits#0 ← (byte*) gen_chargen_sprite::chargen#1 *idx (byte) gen_chargen_sprite::y#2 to:gen_chargen_sprite::@2 gen_chargen_sprite::@2: scope:[gen_chargen_sprite] from gen_chargen_sprite::@1 gen_chargen_sprite::@8 - (byte*) PROCPORT#14 ← phi( gen_chargen_sprite::@1/(byte*) PROCPORT#19 gen_chargen_sprite::@8/(byte*) PROCPORT#14 ) (byte*) gen_chargen_sprite::chargen#7 ← phi( gen_chargen_sprite::@1/(byte*) gen_chargen_sprite::chargen#1 gen_chargen_sprite::@8/(byte*) gen_chargen_sprite::chargen#7 ) (byte) gen_chargen_sprite::y#10 ← phi( gen_chargen_sprite::@1/(byte) gen_chargen_sprite::y#2 gen_chargen_sprite::@8/(byte) gen_chargen_sprite::y#10 ) (byte) gen_chargen_sprite::x#6 ← phi( gen_chargen_sprite::@1/(const byte) gen_chargen_sprite::x#0 gen_chargen_sprite::@8/(byte) gen_chargen_sprite::x#1 ) @@ -11062,7 +9797,7 @@ gen_chargen_sprite::@9: scope:[gen_chargen_sprite] from gen_chargen_sprite::@8 if((byte) gen_chargen_sprite::y#1!=(byte/signed byte/word/signed word) 8) goto gen_chargen_sprite::@1 to:gen_chargen_sprite::@10 gen_chargen_sprite::@10: scope:[gen_chargen_sprite] from gen_chargen_sprite::@9 - *((byte*) PROCPORT#14) ← (byte/signed byte/word/signed word) 55 + *((const byte*) PROCPORT#0) ← (byte/signed byte/word/signed word) 55 asm { cli } to:gen_chargen_sprite::@return gen_chargen_sprite::@return: scope:[gen_chargen_sprite] from gen_chargen_sprite::@10 @@ -11446,14 +10181,12 @@ gen_chargen_sprite: scope:[gen_chargen_sprite] from gen_sprites::@1 *((const byte*) PROCPORT#0) ← (byte/signed byte/word/signed word) 50 to:gen_chargen_sprite::@1 gen_chargen_sprite::@1: scope:[gen_chargen_sprite] from gen_chargen_sprite gen_chargen_sprite::@9 - (byte*) PROCPORT#19 ← phi( gen_chargen_sprite/(const byte*) PROCPORT#0 gen_chargen_sprite::@9/(byte*) PROCPORT#14 ) (byte*) gen_chargen_sprite::sprite#11 ← phi( gen_chargen_sprite/(byte*) gen_chargen_sprite::sprite#0 gen_chargen_sprite::@9/(byte*) gen_chargen_sprite::sprite#2 ) (byte) gen_chargen_sprite::y#2 ← phi( gen_chargen_sprite/(const byte) gen_chargen_sprite::y#0 gen_chargen_sprite::@9/(byte) gen_chargen_sprite::y#1 ) (byte*) gen_chargen_sprite::chargen#1 ← phi( gen_chargen_sprite/(byte*) gen_chargen_sprite::chargen#0 gen_chargen_sprite::@9/(byte*) gen_chargen_sprite::chargen#7 ) (byte) gen_chargen_sprite::bits#0 ← (byte*) gen_chargen_sprite::chargen#1 *idx (byte) gen_chargen_sprite::y#2 to:gen_chargen_sprite::@2 gen_chargen_sprite::@2: scope:[gen_chargen_sprite] from gen_chargen_sprite::@1 gen_chargen_sprite::@8 - (byte*) PROCPORT#14 ← phi( gen_chargen_sprite::@1/(byte*) PROCPORT#19 gen_chargen_sprite::@8/(byte*) PROCPORT#14 ) (byte*) gen_chargen_sprite::chargen#7 ← phi( gen_chargen_sprite::@1/(byte*) gen_chargen_sprite::chargen#1 gen_chargen_sprite::@8/(byte*) gen_chargen_sprite::chargen#7 ) (byte) gen_chargen_sprite::y#10 ← phi( gen_chargen_sprite::@1/(byte) gen_chargen_sprite::y#2 gen_chargen_sprite::@8/(byte) gen_chargen_sprite::y#10 ) (byte) gen_chargen_sprite::x#6 ← phi( gen_chargen_sprite::@1/(const byte) gen_chargen_sprite::x#0 gen_chargen_sprite::@8/(byte) gen_chargen_sprite::x#1 ) @@ -11503,7 +10236,7 @@ gen_chargen_sprite::@9: scope:[gen_chargen_sprite] from gen_chargen_sprite::@8 if((byte) gen_chargen_sprite::y#1!=(byte/signed byte/word/signed word) 8) goto gen_chargen_sprite::@1 to:gen_chargen_sprite::@10 gen_chargen_sprite::@10: scope:[gen_chargen_sprite] from gen_chargen_sprite::@9 - *((byte*) PROCPORT#14) ← (byte/signed byte/word/signed word) 55 + *((const byte*) PROCPORT#0) ← (byte/signed byte/word/signed word) 55 asm { cli } to:gen_chargen_sprite::@return gen_chargen_sprite::@return: scope:[gen_chargen_sprite] from gen_chargen_sprite::@10 @@ -11856,14 +10589,12 @@ gen_chargen_sprite: scope:[gen_chargen_sprite] from gen_sprites::@1 *((const byte*) PROCPORT#0) ← (byte/signed byte/word/signed word) 50 to:gen_chargen_sprite::@1 gen_chargen_sprite::@1: scope:[gen_chargen_sprite] from gen_chargen_sprite gen_chargen_sprite::@9 - (byte*) PROCPORT#19 ← phi( gen_chargen_sprite/(const byte*) PROCPORT#0 gen_chargen_sprite::@9/(byte*) PROCPORT#14 ) (byte*) gen_chargen_sprite::sprite#11 ← phi( gen_chargen_sprite/(byte*) gen_chargen_sprite::sprite#0 gen_chargen_sprite::@9/(byte*) gen_chargen_sprite::sprite#2 ) (byte) gen_chargen_sprite::y#2 ← phi( gen_chargen_sprite/(const byte) gen_chargen_sprite::y#0 gen_chargen_sprite::@9/(byte) gen_chargen_sprite::y#1 ) (byte*) gen_chargen_sprite::chargen#1 ← phi( gen_chargen_sprite/(byte*) gen_chargen_sprite::chargen#0 gen_chargen_sprite::@9/(byte*) gen_chargen_sprite::chargen#7 ) (byte) gen_chargen_sprite::bits#0 ← (byte*) gen_chargen_sprite::chargen#1 *idx (byte) gen_chargen_sprite::y#2 to:gen_chargen_sprite::@2 gen_chargen_sprite::@2: scope:[gen_chargen_sprite] from gen_chargen_sprite::@1 gen_chargen_sprite::@8 - (byte*) PROCPORT#14 ← phi( gen_chargen_sprite::@1/(byte*) PROCPORT#19 gen_chargen_sprite::@8/(byte*) PROCPORT#14 ) (byte*) gen_chargen_sprite::chargen#7 ← phi( gen_chargen_sprite::@1/(byte*) gen_chargen_sprite::chargen#1 gen_chargen_sprite::@8/(byte*) gen_chargen_sprite::chargen#7 ) (byte) gen_chargen_sprite::y#10 ← phi( gen_chargen_sprite::@1/(byte) gen_chargen_sprite::y#2 gen_chargen_sprite::@8/(byte) gen_chargen_sprite::y#10 ) (byte) gen_chargen_sprite::x#6 ← phi( gen_chargen_sprite::@1/(const byte) gen_chargen_sprite::x#0 gen_chargen_sprite::@8/(byte) gen_chargen_sprite::x#1 ) @@ -11913,7 +10644,7 @@ gen_chargen_sprite::@9: scope:[gen_chargen_sprite] from gen_chargen_sprite::@8 if((byte) gen_chargen_sprite::y#1!=(byte/signed byte/word/signed word) 8) goto gen_chargen_sprite::@1 to:gen_chargen_sprite::@10 gen_chargen_sprite::@10: scope:[gen_chargen_sprite] from gen_chargen_sprite::@9 - *((byte*) PROCPORT#14) ← (byte/signed byte/word/signed word) 55 + *((const byte*) PROCPORT#0) ← (byte/signed byte/word/signed word) 55 asm { cli } to:gen_chargen_sprite::@return gen_chargen_sprite::@return: scope:[gen_chargen_sprite] from gen_chargen_sprite::@10 @@ -12274,14 +11005,12 @@ gen_chargen_sprite: scope:[gen_chargen_sprite] from gen_sprites::@1 *((const byte*) PROCPORT#0) ← (byte/signed byte/word/signed word) 50 to:gen_chargen_sprite::@1 gen_chargen_sprite::@1: scope:[gen_chargen_sprite] from gen_chargen_sprite gen_chargen_sprite::@9 - (byte*) PROCPORT#19 ← phi( gen_chargen_sprite/(const byte*) PROCPORT#0 gen_chargen_sprite::@9/(byte*) PROCPORT#14 ) (byte*) gen_chargen_sprite::sprite#11 ← phi( gen_chargen_sprite/(byte*) gen_chargen_sprite::sprite#0 gen_chargen_sprite::@9/(byte*) gen_chargen_sprite::sprite#2 ) (byte) gen_chargen_sprite::y#2 ← phi( gen_chargen_sprite/(const byte) gen_chargen_sprite::y#0 gen_chargen_sprite::@9/(byte) gen_chargen_sprite::y#1 ) (byte*) gen_chargen_sprite::chargen#1 ← phi( gen_chargen_sprite/(byte*) gen_chargen_sprite::chargen#0 gen_chargen_sprite::@9/(byte*) gen_chargen_sprite::chargen#7 ) (byte) gen_chargen_sprite::bits#0 ← (byte*) gen_chargen_sprite::chargen#1 *idx (byte) gen_chargen_sprite::y#2 to:gen_chargen_sprite::@2 gen_chargen_sprite::@2: scope:[gen_chargen_sprite] from gen_chargen_sprite::@1 gen_chargen_sprite::@8 - (byte*) PROCPORT#14 ← phi( gen_chargen_sprite::@1/(byte*) PROCPORT#19 gen_chargen_sprite::@8/(byte*) PROCPORT#14 ) (byte*) gen_chargen_sprite::chargen#7 ← phi( gen_chargen_sprite::@1/(byte*) gen_chargen_sprite::chargen#1 gen_chargen_sprite::@8/(byte*) gen_chargen_sprite::chargen#7 ) (byte) gen_chargen_sprite::y#10 ← phi( gen_chargen_sprite::@1/(byte) gen_chargen_sprite::y#2 gen_chargen_sprite::@8/(byte) gen_chargen_sprite::y#10 ) (byte) gen_chargen_sprite::x#6 ← phi( gen_chargen_sprite::@1/(const byte) gen_chargen_sprite::x#0 gen_chargen_sprite::@8/(byte) gen_chargen_sprite::x#1 ) @@ -12331,7 +11060,7 @@ gen_chargen_sprite::@9: scope:[gen_chargen_sprite] from gen_chargen_sprite::@8 if((byte) gen_chargen_sprite::y#1!=(byte/signed byte/word/signed word) 8) goto gen_chargen_sprite::@1 to:gen_chargen_sprite::@10 gen_chargen_sprite::@10: scope:[gen_chargen_sprite] from gen_chargen_sprite::@9 - *((byte*) PROCPORT#14) ← (byte/signed byte/word/signed word) 55 + *((const byte*) PROCPORT#0) ← (byte/signed byte/word/signed word) 55 asm { cli } to:gen_chargen_sprite::@return gen_chargen_sprite::@return: scope:[gen_chargen_sprite] from gen_chargen_sprite::@10 @@ -12453,7 +11182,6 @@ Not aliassing across scopes: getFAC::return#2 getFAC::return#0 Not aliassing across scopes: gen_sintab::$23 getFAC::return#2 Self Phi Eliminated (byte) gen_chargen_sprite::y#10 Self Phi Eliminated (byte*) gen_chargen_sprite::chargen#7 -Self Phi Eliminated (byte*) PROCPORT#14 Succesful SSA optimization Pass2SelfPhiElimination CONTROL FLOW GRAPH @begin: scope:[] from @@ -12697,14 +11425,12 @@ gen_chargen_sprite: scope:[gen_chargen_sprite] from gen_sprites::@1 *((const byte*) PROCPORT#0) ← (byte/signed byte/word/signed word) 50 to:gen_chargen_sprite::@1 gen_chargen_sprite::@1: scope:[gen_chargen_sprite] from gen_chargen_sprite gen_chargen_sprite::@9 - (byte*) PROCPORT#19 ← phi( gen_chargen_sprite/(const byte*) PROCPORT#0 gen_chargen_sprite::@9/(byte*) PROCPORT#14 ) (byte*) gen_chargen_sprite::sprite#11 ← phi( gen_chargen_sprite/(byte*) gen_chargen_sprite::sprite#0 gen_chargen_sprite::@9/(byte*) gen_chargen_sprite::sprite#2 ) (byte) gen_chargen_sprite::y#2 ← phi( gen_chargen_sprite/(const byte) gen_chargen_sprite::y#0 gen_chargen_sprite::@9/(byte) gen_chargen_sprite::y#1 ) (byte*) gen_chargen_sprite::chargen#1 ← phi( gen_chargen_sprite/(byte*) gen_chargen_sprite::chargen#0 gen_chargen_sprite::@9/(byte*) gen_chargen_sprite::chargen#7 ) (byte) gen_chargen_sprite::bits#0 ← (byte*) gen_chargen_sprite::chargen#1 *idx (byte) gen_chargen_sprite::y#2 to:gen_chargen_sprite::@2 gen_chargen_sprite::@2: scope:[gen_chargen_sprite] from gen_chargen_sprite::@1 gen_chargen_sprite::@8 - (byte*) PROCPORT#14 ← phi( gen_chargen_sprite::@1/(byte*) PROCPORT#19 ) (byte*) gen_chargen_sprite::chargen#7 ← phi( gen_chargen_sprite::@1/(byte*) gen_chargen_sprite::chargen#1 ) (byte) gen_chargen_sprite::y#10 ← phi( gen_chargen_sprite::@1/(byte) gen_chargen_sprite::y#2 ) (byte) gen_chargen_sprite::x#6 ← phi( gen_chargen_sprite::@1/(const byte) gen_chargen_sprite::x#0 gen_chargen_sprite::@8/(byte) gen_chargen_sprite::x#1 ) @@ -12754,7 +11480,7 @@ gen_chargen_sprite::@9: scope:[gen_chargen_sprite] from gen_chargen_sprite::@8 if((byte) gen_chargen_sprite::y#1!=(byte/signed byte/word/signed word) 8) goto gen_chargen_sprite::@1 to:gen_chargen_sprite::@10 gen_chargen_sprite::@10: scope:[gen_chargen_sprite] from gen_chargen_sprite::@9 - *((byte*) PROCPORT#14) ← (byte/signed byte/word/signed word) 55 + *((const byte*) PROCPORT#0) ← (byte/signed byte/word/signed word) 55 asm { cli } to:gen_chargen_sprite::@return gen_chargen_sprite::@return: scope:[gen_chargen_sprite] from gen_chargen_sprite::@10 @@ -12853,7 +11579,6 @@ gen_sintab::@return: scope:[gen_sintab] from gen_sintab::@22 Redundant Phi (byte) gen_chargen_sprite::y#10 (byte) gen_chargen_sprite::y#2 Redundant Phi (byte*) gen_chargen_sprite::chargen#7 (byte*) gen_chargen_sprite::chargen#1 -Redundant Phi (byte*) PROCPORT#14 (byte*) PROCPORT#19 Succesful SSA optimization Pass2RedundantPhiElimination CONTROL FLOW GRAPH @begin: scope:[] from @@ -13097,7 +11822,6 @@ gen_chargen_sprite: scope:[gen_chargen_sprite] from gen_sprites::@1 *((const byte*) PROCPORT#0) ← (byte/signed byte/word/signed word) 50 to:gen_chargen_sprite::@1 gen_chargen_sprite::@1: scope:[gen_chargen_sprite] from gen_chargen_sprite gen_chargen_sprite::@9 - (byte*) PROCPORT#19 ← phi( gen_chargen_sprite/(const byte*) PROCPORT#0 gen_chargen_sprite::@9/(byte*) PROCPORT#19 ) (byte*) gen_chargen_sprite::sprite#11 ← phi( gen_chargen_sprite/(byte*) gen_chargen_sprite::sprite#0 gen_chargen_sprite::@9/(byte*) gen_chargen_sprite::sprite#2 ) (byte) gen_chargen_sprite::y#2 ← phi( gen_chargen_sprite/(const byte) gen_chargen_sprite::y#0 gen_chargen_sprite::@9/(byte) gen_chargen_sprite::y#1 ) (byte*) gen_chargen_sprite::chargen#1 ← phi( gen_chargen_sprite/(byte*) gen_chargen_sprite::chargen#0 gen_chargen_sprite::@9/(byte*) gen_chargen_sprite::chargen#1 ) @@ -13151,7 +11875,7 @@ gen_chargen_sprite::@9: scope:[gen_chargen_sprite] from gen_chargen_sprite::@8 if((byte) gen_chargen_sprite::y#1!=(byte/signed byte/word/signed word) 8) goto gen_chargen_sprite::@1 to:gen_chargen_sprite::@10 gen_chargen_sprite::@10: scope:[gen_chargen_sprite] from gen_chargen_sprite::@9 - *((byte*) PROCPORT#19) ← (byte/signed byte/word/signed word) 55 + *((const byte*) PROCPORT#0) ← (byte/signed byte/word/signed word) 55 asm { cli } to:gen_chargen_sprite::@return gen_chargen_sprite::@return: scope:[gen_chargen_sprite] from gen_chargen_sprite::@10 @@ -13280,7 +12004,6 @@ Not aliassing across scopes: setFAC::w#4 gen_sintab::$17 Not aliassing across scopes: getFAC::return#2 getFAC::return#0 Not aliassing across scopes: gen_sintab::$23 getFAC::return#2 Self Phi Eliminated (byte*) gen_chargen_sprite::chargen#1 -Self Phi Eliminated (byte*) PROCPORT#19 Succesful SSA optimization Pass2SelfPhiElimination CONTROL FLOW GRAPH @begin: scope:[] from @@ -13524,7 +12247,6 @@ gen_chargen_sprite: scope:[gen_chargen_sprite] from gen_sprites::@1 *((const byte*) PROCPORT#0) ← (byte/signed byte/word/signed word) 50 to:gen_chargen_sprite::@1 gen_chargen_sprite::@1: scope:[gen_chargen_sprite] from gen_chargen_sprite gen_chargen_sprite::@9 - (byte*) PROCPORT#19 ← phi( gen_chargen_sprite/(const byte*) PROCPORT#0 ) (byte*) gen_chargen_sprite::sprite#11 ← phi( gen_chargen_sprite/(byte*) gen_chargen_sprite::sprite#0 gen_chargen_sprite::@9/(byte*) gen_chargen_sprite::sprite#2 ) (byte) gen_chargen_sprite::y#2 ← phi( gen_chargen_sprite/(const byte) gen_chargen_sprite::y#0 gen_chargen_sprite::@9/(byte) gen_chargen_sprite::y#1 ) (byte*) gen_chargen_sprite::chargen#1 ← phi( gen_chargen_sprite/(byte*) gen_chargen_sprite::chargen#0 ) @@ -13578,7 +12300,7 @@ gen_chargen_sprite::@9: scope:[gen_chargen_sprite] from gen_chargen_sprite::@8 if((byte) gen_chargen_sprite::y#1!=(byte/signed byte/word/signed word) 8) goto gen_chargen_sprite::@1 to:gen_chargen_sprite::@10 gen_chargen_sprite::@10: scope:[gen_chargen_sprite] from gen_chargen_sprite::@9 - *((byte*) PROCPORT#19) ← (byte/signed byte/word/signed word) 55 + *((const byte*) PROCPORT#0) ← (byte/signed byte/word/signed word) 55 asm { cli } to:gen_chargen_sprite::@return gen_chargen_sprite::@return: scope:[gen_chargen_sprite] from gen_chargen_sprite::@10 @@ -13676,7 +12398,6 @@ gen_sintab::@return: scope:[gen_sintab] from gen_sintab::@22 @end: scope:[] from @39 Redundant Phi (byte*) gen_chargen_sprite::chargen#1 (byte*) gen_chargen_sprite::chargen#0 -Redundant Phi (byte*) PROCPORT#19 (const byte*) PROCPORT#0 Succesful SSA optimization Pass2RedundantPhiElimination CONTROL FLOW GRAPH @begin: scope:[] from diff --git a/src/main/java/dk/camelot64/kickc/test/sinus-sprites.kc b/src/main/java/dk/camelot64/kickc/test/sinus-sprites.kc index d196b9009..1d6cdc2d5 100644 --- a/src/main/java/dk/camelot64/kickc/test/sinus-sprites.kc +++ b/src/main/java/dk/camelot64/kickc/test/sinus-sprites.kc @@ -1,24 +1,24 @@ import "basic-floats" import "print" -byte* PROCPORT = $01; -byte* CHARGEN = $d000; -byte* SCREEN = $0400; +const byte* PROCPORT = $01; +const byte* CHARGEN = $d000; +const byte* SCREEN = $0400; -byte* RASTER = $d012; -byte* BORDERCOL = $d020; +const byte* RASTER = $d012; +const byte* BORDERCOL = $d020; -byte* SPRITES_XPOS = $d000; -byte* SPRITES_YPOS = $d001; -byte* SPRITES_XMSB = $d010; -byte* SPRITES_ENABLE = $d015; -byte* SPRITES_EXPAND_Y = $d017; -byte* SPRITES_PRIORITY = $d01b; -byte* SPRITES_MC = $d01c; -byte* SPRITES_EXPAND_X = $d01d; -byte* SPRITES_MC1 = $d025; -byte* SPRITES_MC2 = $d026; -byte* SPRITES_COLS = $d027; +const byte* SPRITES_XPOS = $d000; +const byte* SPRITES_YPOS = $d001; +const byte* SPRITES_XMSB = $d010; +const byte* SPRITES_ENABLE = $d015; +const byte* SPRITES_EXPAND_Y = $d017; +const byte* SPRITES_PRIORITY = $d01b; +const byte* SPRITES_MC = $d01c; +const byte* SPRITES_EXPAND_X = $d01d; +const byte* SPRITES_MC1 = $d025; +const byte* SPRITES_MC2 = $d026; +const byte* SPRITES_COLS = $d027; const byte sinlen_x = 221; const byte[] sintab_x = $1000;